?

Log in

No account? Create an account
Hey! My name is Adam (I just joined this community). I'd like to… - LiveJournal Client Discussions [entries|archive|friends|userinfo]
LiveJournal Client Discussions

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

[May. 14th, 2002|03:09 am]
LiveJournal Client Discussions

lj_clients

[musus]
[mood |chillin]

Hey! My name is Adam (I just joined this community). I'd like to create a LiveJournal client, but my knowledge & understanding of programming languages is rather limited.
Over this past semester I designed & developed a professional website for the music department at my school (I'm a music major), which you can see by clicking here. It's still under quite a bit of construction, but it might give you (if you're curious) an idea of what I'm capable of. I created several javascripts for the site, as well as linking css, and a slew of other components. I hard-coded the site (no shortcut programs here), so you can see what's going on, structurally-speaking.

So, as I was saying... although I kind-of have a semi-basic (no pun intended) framework of understand for programming languages, my official/not self taught training is lacking. Can anyone recommend a good starting point for me? I've read bits & pieces of the database schema, the LiveJournal server code, and the section on writing your own client...but, again, I know I'm not understanding things as in depth as I can be (that's kinda awkwardly put, but whatever).

So my questions are: Where should I start? Is it possible to start & finish the entire program by the end of the summer? If so, how labor/time intensive is it going to be (still gotta earn some cash for school)? And anything else you can think of that would help is most appreciated.

Thanks in advance!
linkReply

Comments:
[User Picture]From: thelovebug
2002-05-14 01:34 am (UTC)
Ok, well... that's a really good question... I've been in the exact same situation when I was starting to develop my client.

First of all, you need to understand the LiveJournal Client/Server Protocol, then you'll need to understand how to make HTTP requests from whichever programming language you are going to use.

Once you've mastered that, you can then build your user interface around that.

This is the exact method that I used to create my client, although I did have the advantage of a good programming background before I started.

lj_clients is a good place to ask questions about the development of your client, but do make sure you try and find the answers for yourself before you ask :-)

Good luck!!
(Reply) (Thread)
[User Picture]From: musus
2002-05-14 02:22 am (UTC)
Thanks for the suggestions. :) Do you prefer any programming language over another (ie VB, C++, Perl, etc)? I've heard VB is easiest to learn, but I don't want my UI to look crappy (if that's the trade off).

Thanks again!
(Reply) (Parent) (Thread)
[User Picture]From: thelovebug
2002-05-14 04:44 am (UTC)
I'm more of a web programmer than application programmer.

I suppose that, given the choice, I'd work in VB, 'cos I'm lazy.
But if you want a challenge, definately go for C++.

It really depends what you already know. :-)
(Reply) (Parent) (Thread)
[User Picture]From: xb95
2002-05-14 09:17 am (UTC)
Delphi all the way. Not only does it give you the ease of UI creation like Visual Basic, it has a language that can kick BASIC to the curb! And if you don't know either, it's about the same difficulty to learn one over the other, really. :)

Anyway, yes, you can develop a client in a summer. Heck, you can develop one in a weekend, if all you want it to do is post. What gets difficult is when you want it to watch for new posts, let you edit your friends, your friend groups, view past posts, have customizeable colors and interface, support multiple journals, et cetera. Augh. LochJournal has suffered from that. I want to do so much with it that I start coding, and then get myself burned out, so I only release an update every few months. I'm horrible about it. I need to work on it more. Heh.

Good luck. Feel free to ask questions, but please, make sure you've exhausted your resources first. I love to help people, but only if they've tried to help themselves. :
(Reply) (Parent) (Thread)
[User Picture]From: musus
2002-05-14 01:21 pm (UTC)
Delphi...hummmm <looks into that>

I downloaded LochJournal (as I've been meaning to do for a while), but I keep getting an error when I try to install it saying something about an "illegal instruction." Hopefully I'll catch you online sometime in the near future to see if it's just my possessed computer, or what. :)

I'm the same way about helping people, so I'll definitely be sure to exhaust resources before asking for help. :)

Thanks again for your comments!
(Reply) (Parent) (Thread)
[User Picture]From: xb95
2002-05-14 03:43 pm (UTC)
There should be a new version of LochJournal out this weekend. (Of course, now that I've said that, it won't happen.)

You can try a VERY ROUGH demo at here. That's just the executable file, it doesn't have the installer or anything. Most of the features are missing. I'm still rewriting from 1.0ab's code into this one. Please let me know if you get an illegal instruction error or not, so I know if it's just 1.0ab being crappy or if it's something with Delphi.

Thanks
(Reply) (Parent) (Thread)
[User Picture]From: musus
2002-05-14 04:34 pm (UTC)
Worked like a charm. No errors what-so-ever. I must also say I'm very impressed with its overall user-friendliness, and general ease (I think I spelled that right) on the eyes.

Murphy & his stupid laws...<encourages you> I'm sure you can do it!

Also, if you want someone to give any beta versions a test drive, drop me a line. I'm happy to help however I can. :) You can usually find me on AIM as "crawford131313"
(Reply) (Parent) (Thread)
From: evan
2002-05-14 10:13 am (UTC)
What sort of client exactly do you want to write? There already are about 1251341 clients for LJ already... :)

As far as programming goes, you're definitely best off learning a high-level language. I endorse Ruby and Python, but I hear Delphi (mentioned above) is cool, and LiveJournal is written in Perl. Ruby, Python, and Perl are all free, too, so if you look around on the internet you can download them and find whole books for free written on learning the languages.
(Reply) (Thread)
[User Picture]From: musus
2002-05-14 01:47 pm (UTC)
Good question. For the most part, I'd like to develop a client that the user can customize. By customize, I not only mean the basic UI (like colors, schemes, etc), but also the organization of the program. For example, the toolbar menus (file, edit, view, etc). I'd like to enable the user to be able to rearrange these menus, and their contents in such a way that is most logical & functional for them. Take the standard LiveJournal windows client, as another example. I'd like to again, enable the user to redesign the main window so that the "post options" aren't necessarily hidden behind a button. And who says that little button even has to be named "post options." Why not name it "flipper" or "jim?" The user should have these options.

I might be getting in a little over my head for my first full-fledge programming project, but maybe it'll turn into a more long-term aspiration. <shrug> tough to say.

Anyway, thoughts, comments, suggestions? I'll look into Ruby, Python & Perl, as well as Delphi. Have you had particular success with any one over the other? Or even maybe just a general preference?

Thanks again!
(Reply) (Parent) (Thread)
[User Picture]From: xb95
2002-05-14 07:09 pm (UTC)
I have written a half functional scriptable UI system that enables users to script the location of components, the colors, background graphics, et cetera. It was like 5000 lines and had a ton of problems. I wouldn't recommend something like this as a *first* project... but it is a heckuva lot of fun. Takes a ton of patience though. You may want to use something like XML for your scripting language, then you can use third party XML parsers without much trouble. :)
(Reply) (Parent) (Thread)
From: evan
2002-05-15 10:11 am (UTC)
I hate to disagree here, but:

- http://www.joelonsoftware.com/uibook/chapters/fog0000000059.html
- I once read a description of some program that read, "Fully themable-- just edit the source!" I really agree with that; there's something to be said for keeping the code simple instead of abstracting everything (though xb95's client above is kinda cool).

But the cool thing is that it's a free country, and you can write whatever you please. :)

I've recently fallen in love with Ruby, and that's the language I endorse, but it's the least popular of the three. With that said, none of those scripting languages can really make a "real"-looking Win32 program, so if you're aiming for that you're pretty much stuck with C. Ignoring that, I know that at least Perl and Python can do GUI stuff and I would be surprised if Ruby doesn't.
(Reply) (Parent) (Thread)
[User Picture]From: musus
2002-05-15 03:14 pm (UTC)
Just to clarify...
Are you saying you disagree that a program should be customizable (if that's even a word) by joe-shmoe? I understand your point regarding keeping things simple (going with the old adage, 'keep it simple, stupid')...obviously you're going to run into more challenges when creating such a customizable program/application. If I am understanding you correctly, why do you think that?
:)
(Reply) (Parent) (Thread)
From: evan
2002-05-15 06:13 pm (UTC)
I was just saying that customizability in and of itself is not such an admirable goal. I've dealt with enough programs with unusable user interfaces (Sonique comes to mind, though Winamp is annoying too) to tire of customizability. I'd rather see a client that had useful features (for example, nobody has yet written a reliable journal backup client...).

But again, this is just me. A lot of people really like that sort of thing and it's not my place to say what they can and can't do.
(Reply) (Parent) (Thread)
(Deleted comment)
[User Picture]From: musus
2002-05-20 04:24 am (UTC)
ROCK ON! *high five*
...this is why open source is good! It's all about the healthy competition that results in new & (often times) improved products.
I definitely support the release of your client. :)
(Reply) (Parent) (Thread)
(Deleted comment)
[User Picture]From: musus
2002-05-20 04:54 am (UTC)
Awesome! Feel free to let me know if you need help in any way. I'm happy to do what I can. :)
(Reply) (Parent) (Thread)
From: evan
2002-05-20 08:38 am (UTC)
Depending on how reliable it is... :)
(Reply) (Parent) (Thread)
From: compwiz
2002-05-16 10:15 am (UTC)
You know what's really sad? That bit about "half the screen is grey" after accidentally dragging the Windows taskbar and resizing it.. The same thing happens with the GNOME panel, but if I take a normal-sized panel from the bottom of the screen, click an open area and drag it to the side of the screen, it automatically takes up half the screen (due to the tasklist), without me even resizing it.. Talk about UI stupidity.
(Reply) (Parent) (Thread)
From: evan
2002-05-16 11:00 am (UTC)
Heh... GNOME has a ways to go. I always see patches from usability engineers from Sun in Ireland (?) on the mailing list so maybe it'll improve, but it seems pretty clear to me that KDE has won the desktop battle.
(Reply) (Parent) (Thread)
From: compwiz
2002-05-16 11:01 am (UTC)

Re:

What GNOME loses in usability wins in sheer speed. KDE is dreadfully slow to run and start up, and it doesn't look like it's getting any better.
(Reply) (Parent) (Thread)
From: evan
2002-05-16 11:04 am (UTC)
Ah, really? I haven't noticed... but then my slow computer that I don't use is an Athlon 800 and this one is a 1.somethingGHz. :P
(Reply) (Parent) (Thread)
[User Picture]From: ravinald
2002-05-14 09:19 pm (UTC)
1251341 + 1

:)
(Reply) (Parent) (Thread)