Away from Livejournal
April 15, 2004 5:27 PM   Subscribe

So I am sick of livejournal, and I want to start a blog independent of any form sites. Also, I am interested in learning to create backends and architecture for sites similar to Mefi. Where should I start? What languages? Perl? Bear in mind, my own programming experience is limited to a fairly fluent grasp of HTML, which I know isn't really programming at all. Tips?
posted by lazaruslong to Computers & Internet (19 answers total)
What platform for your hosting, Windows or Linux?
posted by normy at 5:33 PM on April 15, 2004

Wow. So many pitfalls, I don't know which way to steer you. Maybe some questions would help:
  • What operating systems are you familiar with?
  • Are you more comfortable with a command line or a nice-lookin' IDE?
  • What's your attitude towards restrictions meant to save you from yourself?
  • Are you familiar with spreadsheets and/or a light programming language like Javascript or Basic?
  • If so, which do you like more?
  • What's your CSS knowledge like?
  • What did you like/dislike about your math classes?

posted by weston at 5:33 PM on April 15, 2004

I'm only about half a step ahead of you, but I have been learning quickly in the realm of Perl and PHP for "programming" purposes and find MySQL a capable database that's easy for either to interact with. Toss in your html and you have as many web apps as you can dream up. You'll need to address security and performance eventually, but just learning how to make things happen at all is the first step. I'm no expert, but you should be able to cover a lot of valuable ground with these 3 technologies quickly.

That is if you're going to go Unix/Linux, which I suggest you do.
posted by scarabic at 5:45 PM on April 15, 2004

First thing first, AMEN for being over LiveJournal. Complacency is the only thing keeping me there.

Perl will play with your mind until you're a broken, broken husk of a man. A great language, but not something I'd reccomend you start with.

For bang-for-bucks value, you can't go past the LAMP platform - Linux, Apache, MySQL and PHP. Most hosting places offer cheap domain hosting with it all available, and PHP is a dead-simple language to begin to learn with. There's plenty of tutorials and communities dedicated to PHP out there as well, so theres plenty of support.

You could go down the ASP path, but then you've got to find a windows-based host.

If you need server space/account, email me, I might be able to hook you up with something.
posted by cheaily at 6:13 PM on April 15, 2004

A second vote for LAMP. However, if you're looking for a simple system, thats easy to understand / change, then GreyMatter is a nice simple blogging tool.
posted by seanyboy at 6:29 PM on April 15, 2004

Please, do not use Greymatter. It was groundbreaking in it's day but is riddled with resource and security issues -- many hosting companies explicitly forbid it's use.

Lazuruslong, you say that you want to create a weblog independent of any 'form sites'. By this I assume you mean you are trying to stay clear of the cookie cutter look many blogs have in common, if this is the case there is no reason to reinvent the wheel. Any decent system allows you a great deal of flexibility in templates and structure -- if it's an exercise to learn a scripting language, one of the best ways to get your feet wet is to hack about in or reverse engineer an existing tool.

I would consider installing Apache, PHP and MySQL locally (it's trivial, just Google for a bundle) and downloading WordPress or Textpattern. After a few days muddling about in the code and bending it to your will, you'll have a much better idea what's involved and whether rolling your own is something you want to pursue. If Perl appeals to you, throw that on your drive and fiddle with Bloxsom.

If you want to jump right in making your own, there is a tutorial at Evolt that might help you get going.
posted by cedar at 7:19 PM on April 15, 2004

I'd second (third?) the recommendations to use PHP. Coming from the other side of the equasion - years of programming a veriety of languages for school / work - it is easily the most powerful for the low amount of time invested in order to do cool things. The online docs ( rock, as they include plenty of user comments which often include code snippets that do exactly what you need. You also don't have to do the LAMP side - there are PHP libraries for Window's IIS as well.

PHP5 is going to fill in the few remaining holes, and I can't wait until it is stable enough to roll out in some of my bigger projects.
posted by woil at 7:26 PM on April 15, 2004

you might try plone/zope. it's better engineered that php (more modern, learnt from others mistakes etc), but less popular, so less help and support.
posted by andrew cooke at 8:07 PM on April 15, 2004

Personally, I'd recommend picking up Perl -- it's fairly easy to get into, and when you're ready for more advanced stuff there is lots of room to expand. You also get the benefit of the huge code library that is CPAN and the wealth of information and support at PerlMonks.
posted by thebabelfish at 8:21 PM on April 15, 2004

Response by poster: Okay. So I think there are lots of good pointers here, but maybe I should make the depths of my ignorance known. Basically, I gave up on keeping up with the programming/design race when I realized that it is a constant game of catch-up. Now, I am forced to deal with the fact that I have almost no knowledge whatsoever of how modern day pages are made.

I am familiar with pretty much all windows os's, and I use XPro. I am not going to use Linux, as I know next to nothing about it (save that it is, I get the feeling, superior in almost every way to any other OS).

I am not familiar with command line interfaces, but that doesn't mean I don't want to learn. The whole point is, I want to be able to manipulate the code to build and maintain a blog/page from the bones up.

Restrictions meant to save me from myself are probably a good thing, but I want to educate myself to the point where I don't need them.

I am familiar with Basic, but no java.

Zero CSS knowledge.

I never liked math class, but I like math. Heh.

I know that I must seem woefully inadequate to the task I have set myself, but I am fully cognizant of the fact that it will take me upwards of 6 months to a year to begin to learn all this stuff, and that's cool with me. I just need to know where to start. So to perhaps clarify, I know HTML, a bit of Basic, and nothing else. But I want to learn, dammit!

I have heard lots of good things about MySQL, but hell, I don't even know what SQL stands for. Maybe some of you gurus out there could give me like a linear, step by step list of languages and apps that I should become familiar with? I know that's asking a lot, but hell, it is AxMe after all. Thanks for the advice, everyone.
posted by lazaruslong at 10:21 PM on April 15, 2004

Response by poster: Oh, and cheaily, thanks for the offer! Once I figure out where to start, I will definitely email you about some server space and stuff. Thanks!
posted by lazaruslong at 10:22 PM on April 15, 2004

Here's a nice article with subjective comparisons of programming languages.

I'd have to recommend PHP over PERL, though. There's a reason why that site is called PerlMonks and not PerlMonkeys.
posted by 4easypayments at 10:26 PM on April 15, 2004

Disclaimer: I don't program at all. All the following comes from my interest (as a reasonably competent HTML/CSS person) in content management. I have no opinion about Perl v PHP, but I'll be honest: I cannot understand wanting to do any web-related programming on a non-unixy platform.

Plone/Zope requires a hosting plan that specifically supports Zope, and may be the wrong choice if you want to replace LiveJournal, not just play with something locally. Zope has a list of compatible companies at the site, but for similar feature scopes, the Zope-OK plans I've seen cost 3 to 5 times as much per month as plans with plain-old Apache, Perl, PHP, and MySQL. However, you can run Plone on your XP box, if local experimentation is up your alley.

There is an ultra-small PHP product called Pages that uses Textile (also by Dean Allen, author of TextPattern) and that takes plugins - which the author encourages people to contribute as they develop them. Could be another route for something that will give you some extensibility options with a very low barrier to getting started. (No database required, which might be nice at first.)

Movable Type is Perl-based, and has an extremely active community of Perl and PHP plugin writers - another possible avenue for getting a feel for how people use code and implementing it or modding it as suits you.
posted by caitlinb at 10:30 PM on April 15, 2004

I "rolled my own" blog using PHP and MySQL a couple years ago and I wouldn't consider myself a hard-core programmer, so I'd definitely recommend it. I mean, what's a weblog? Basically you're just saving bits of text into a database and then pulling them out again. It's pretty much the simplest thing you can do programming-wise. Then everything else gets bolted on top of that.

Don't worry about it being "on Linux"; that won't really affect you. You just write the code on your computer and FTP it to your server the same way you do HTML. You can even get away with not knowing much about databases, since many host providers include an excellent GUI for MySQL called PHPMyAdmin. You can build an entire site that runs on Linux without once touching the command line.

(Self-link: I've actually got some of my weblog code available on my site if you wanna take a look. I know it's not great - and there may be some bugs still lurking - but a couple people have e-mailed to say it got them started.)
posted by web-goddess at 10:40 PM on April 15, 2004

I have no idea how to use Perl, PHP, MySQL, or anything really... I kinda self-taught myself HTML and some CSS using online tutorials and the like. That alone has been enough for me to use Movable Type with relative ease - although I did fork over the $40 for them to install it. Once they got it up and running (in about a day or two), it was simple... I was able to upgrade it myself too. I highly recommend it - lets you build the site how you want it, and posting is as easy if not easier than using LJ/Xanga/etc.
posted by swank6 at 10:59 PM on April 15, 2004

If you're more comfortable with windows and want to be reasonable productive within a sensible time, I'd strongly recommend ASP.NET with C# or Visual Basic. There's lots of good and affordable hosts for it these days, too. The Visual Studio IDE is nice, but you can get by without it fine for ASP development. Plenty of good books and resources online for learning. With ADO, MS have made interfacing with data sources less painful than any other platform. Especially with SQL Server, for which hosting is now quite affordable. ASP.NET has by far the most powerful low-cost framework for web development. The SDK is a free download. It's not Linux and it's not open-source, so it's not cool, but it works very well.

If you decide to go the Linux route, your best bet is to learn Python, host on Apache and for a weblog type of database MySQL is adequate. Perl was a good language for it's time but it's unnecessarily verbose, syntactically much tougher for a beginner and does nothing Python doesn't in a more readable form.
posted by normy at 12:30 AM on April 16, 2004

lazaruslong: since you've been so gracious as to answer my questions, I don't think I can help but try to give you a good broad answer.

Python. Possibly the most elegant scripting language out there, certainly of those that start with P. Tends to operate on the "principle of least surprise". I'd recommend this first. It is a language that will try to save you from yourself (white space indentation has meaning in the language, so you must indent your code in a certain way) but it's very powerful.

PHP is a close second, though for different reasons. It's designed for the web, it has a huge grassroots network of supporters and developers, and its server-parsed, designed-to-drop-into pages nature makes it an ever-so-easy transition from HTML. That last bit, however, is also a downside... there's a lot of poor-pracitces code that's been produced, and the first time you invent the wheel using PHP, you will probably produce more of it. PHP also operates less on the principle of least surprise than I think Python does. Still, good-practices are available for PHP, and there's a lot of free code out there for you to utilize and extend.

Perl.... I like perl. It's amazingly good for quick-n'-dirty work and there's a decent chance that a CPAN module exists for most things you can conceive of. I've built some extensive web applications in it, and appreciate its flexibility and power. It is, however, also full of surprises and I have spent many an hour cursing it sorely.

You may also want to consider XML/XSLT if you're really thinking adventurously. I asked about spreadsheet programming because the functional nature of complex spreadsheet programming is somewhat analogous to the kind of thinking you have to do with XSLT.

Ultimately, I think the answer probably depends, though, not so much on relative qualities of different languages available to you, but what your goal is. If your goal is to get a better blog, I'd agree with suggestions like Dean Allen's Textile, or pMachine and learning a bit of PHP to hack around with. Moveable Type is cool (and extensible with a large community of enthusiastic supporters as well), but as far as hacking it goes, well, I'm a competent Perl programmer and I find the experience of working with its code disorienting at best and often frustrating.

If you're more interesting in stretching your skills to be a programmer, go Python... or maybe PHP as an intermediate route.
posted by weston at 12:40 AM on April 16, 2004

If you want a fast learning-curve, I recommend ColdFusion since it has a HTML-like syntax. You can try the Developer License which lets you run ColdFusion under Windows or Linux, but access is limited to one IP address. I don't know what CF hosting costs in the US, though.

If you want a free solution, go for LAMP.
posted by tcp at 2:08 AM on April 16, 2004

there are many different answers here, but i would like to add my two cents to caution you against the use of perl. if you do not have traditional programming experience, or a *nix background with shell scripting, regular expressions, awk/sed etc, you will find will likely find perl completely inpenetrable. and c# or php is my suggestion, with java running third.
posted by lescour at 1:20 PM on April 16, 2004

« Older Help me write new text ads!   |   One Site for Camp's Online... Newer »
This thread is closed to new comments.