Open Sourcing something MetaFilter like. June 9, 2001 2:49 PM   Subscribe

Open Sourcing something MetaFilter like. [more inside]
posted by mathowie (staff) to MetaFilter-Related at 2:49 PM (35 comments total)

Since there seems to be a lot of PHP coders out there, I'd be open to rewriting the site in PHP, as a group effort. If I didn't have a million other things on my plate, I'd start out writing the basic guts and throw it up on sourceforge for everyone to play with. I doubt I'd convert metafilter proper over to this code, but I'd definitely use the code to start new side projects.

Any takers?

In plain english, this is what the very basics of the site are:

database:
-------------
Create a user database with userID, username, password, timestamp, and email (add other fields as necessary).

Create a table for links. It will need a linkID, userID (of the link poster), timestamp, link_URL, link_URLdescription, and a link_description. Make sure the three last ones allow for null entries.

Create a comment table that has commentID, comment_content, timestamp, userID, and linkID.
(note, all IDs are auto incrementing and serve as the primary keys)
------------------


basic pages:
----------------
Create a page that allows new users to sign up by entering their information and logging in.

Create a login page that matches the username and password to an ID, then cookie their ID, username, and password (encrypt as many of those as you like so people can't screw with their cookies).

Create a page that lets users post links. It will need a link URL, URL description, and basic description area. Hide the cookied userID, username, and password in hidden fields, then check all these values on the action page before sending the data to the db.

Create a front page that lists posts, properly grouped by day, with extra lookups for username of the poster (since just userID is in the links table) and a count on each for # of comments.

Create a thread page that grabs the linkID from the URL, and does a lookup on the comment table for all entries matching the linkID, print everything out in proper timed order and with username lookups.
------------

That's the very basic guts of the system, three tables and 5-10 pages (if you count all the action pages) it's something that can be written in a matter of hours. I bought this intro PHP book a few months back and it's really, really basic (and is even written in huge type), and contains enough example code to do what I've written above. Also, if you're using windows, check out PHP Triad, a single download of PHP, Apache, and MySQL (with a web based MySQL admin). Although, the last time I tried installing PHP Triad, I got lots of errors and mysql never did work right. I ended up installing each piece myself.
posted by mathowie (staff) at 2:43 PM on June 9, 2001


This thread is 666, which I find somehow fitting.

BTW, if this project were to be done right, it could be used by hundreds, if not thousands, to create little communities. If anyone seriously wants to undertake it, I'd suggest someone patient and understanding to take the lead, and coordinate everyone.

Once it got off the ground, I would suspect it would get very far very quickly. I'd love to contribute lots of interface things (like the keystrokes in comments), and I'm sure there'd be enough sets of eyes that all the queries would be tight and fast.
posted by mathowie (staff) at 2:51 PM on June 9, 2001


I would be very VERY interested.

(First Public Disclosure) As Matt is aware, I'm currently working on a project whose code name is (and might remain beyond launch) MyMeFiFaves, although I've taken a liking recently to MyMeFiFilter. It's inspired by mainly by my own needs and by this post. Some of my earlier thoughts were posted here. For the last two or three weeks, I've been working part time on this thing and it's already totally changed the way I use MeFi.

Anyway, my point being that I love the idea Matt, and would love to work with people on it, after I finish MyMeFiFaveFilterFishFiasco.
posted by fooljay at 4:03 PM on June 9, 2001


Can I play too? So long as it doesn't borrow any code or design from PHPNuke I'll be happy.

MySQL doesn't scale too well (it's beats others at five concurrent users but soon falls off). Postgres tends to scale better, but database abstraction blah blah blah.
posted by holloway at 6:37 PM on June 9, 2001


I don't know if it's up to the same caliber as MeFi, but Ben Brown released Discuss-O-Rama™ under his Brand Ben Brown site. Similar in function to MeFi, but done in perl and xml. I put it on my site (as Monkeyfilter! the metafilter its ok to hate ;) and it works fine. Maybe a good starting point?
posted by Hackworth at 7:18 PM on June 9, 2001


Dotcomments has some similarities already built in, but I don't think Danelope GPL'd it.

I think MySQL is probably fine for the purposes of setting up smallish mini-Mefis quickly -- and it's ~widely available hosted. Anybody wishing to scale 1000s of users probably needs something more substantial in other ways, anyway.

How did you all know I was thinking about this? I've been poking around various PHP packages looking for a starting point, and my end-point was intended to have a lot of Metafilter's feel, in distinct opposition to the UBB or Slashcode feel.
posted by dhartung at 7:38 PM on June 9, 2001


Of course I would be interested, and would learn some PHP as required, but it would be best if I can do some organizing as needed. Or make the tea for everyone, which I am also good at.

One thing I was thinking about the past couple of days, and was going to mention to Matt: what if Metafilter was a distributed system? A number of servers could run Metafilter software that would share postings using XML. A couple of dozen webloggers could share the bandwidth burden for the site.

posted by tranquileye at 8:31 PM on June 9, 2001


I want to help, though I will be starting PHP from scratch.
posted by register at 9:04 PM on June 9, 2001


I'll help, if only because PHPNuke is poorly written, and the output is even uglier than the code.

MeFi's homepage is already available via XML, ya know. It's all right here. Anybody wanna make a new-look MeFi?
posted by anildash at 9:19 PM on June 9, 2001


Ooh, ooh, I'd like to play, too...
posted by SpecialK at 10:46 PM on June 9, 2001


I'm the guy who wrote dotcomments (that dhartung mentioned above. ) I'm very well versed in PHP. Most of what Matt has listed above could be copied-and-pasted from my existing projects (specifically, grendel, my personal Blogger replacement.) The core features could be written in little more than an hour. The problem, however, is end-user customizability.

When I released dotcomments back in March, I was giving out what I believed to be a fast, streamlined, self-sufficient one-page utility for adding comments to PHP-enabled weblogs. What I soon learned is that you can never write a PHP script that won't blow up on some servers. PHP configuration allows certain functions/errors/warnings to be enabled or disabled at will, and if hundreds of lines of code rely on a single function that no longer works, your carefully-crafted framework comes crashing down.

I suppose my point is that releasing a PHP version of MeFi to the public will be a thorn (read: support nightmare) in many sides, and while I'd love to throw my hat into the ring, I can barely stay afloat supporting a one-page comment script.* But if there are others willing to shoulder the burden of playing clean-up, I'd be happy to contribute. Also, I know nothing of this "XML" of which you speak.

* I've been unemployed for the past three months, too, though not for lack of trying to become gainfully employed.
posted by Danelope at 2:54 AM on June 10, 2001


Great idea, Matt!!

I'd like to help too, although my knowlege of PHP is zero (my language of choice is Java).
posted by lagado at 4:31 AM on June 10, 2001


Count me in.
posted by y6y6y6 at 8:00 AM on June 10, 2001


Me too.
posted by waxpancake at 8:40 AM on June 10, 2001


Me too. (ha! a valid me-too post!)
posted by rodii at 11:14 AM on June 10, 2001


So ummmm, should we maybe create a Yahoo group or something?
posted by fooljay at 1:25 PM on June 10, 2001


Matt great idea. I talked to you briefly about this at SXSW if you were interested in doing this as PHP. The ghost of conversations past whispers again. Count me in. I have been working with PHP for about 18 months and have built a content management tool for a government website with the Apache, MySQL, PHP trio.

Like mentioned previously, MySQL may not be up to the gentle pounding MeFi'er can produce. I use MySQL as an object store, including to store components for SQL strings to hit the Oracle DB which holds the couple hundred GB of data.

PHP is very easy to learn. I built an on-line document management system with it in about 3 hours, which included teaching myself the basics of PHP. There is more to it than CF, but much slimmer coding than Perl, ASP, JSP. I can put together a list PHP books and give assessments of each if this is preferred.

posted by vanderwal at 2:30 PM on June 10, 2001


So many coincidences! Last night I was building a list of geeky books to buy over the summer and couldn't decide which PHP book to look at. And along comes this thread. Yes, please, vanderwal, tell us what you think of various books. Anybody else want to chime in with book reviews?
posted by kathryn at 5:27 PM on June 10, 2001


I'm not vanderwal, but...

PHP Essentials was a pretty good starter, for me. I was pleased to see the admittedly simple form-to-email program made simple. Roughly 1/2 of the book is devoted to database interaction, and it's done in plain English. Nicely written.

Right now I'm glued to Beginning PHP4 but mostly for reference; the chapter on file/directory interaction is a constant source. In fact, it's cracked open to page 166 on my desk right now.

For quicker references, there's always php.net.
posted by hijinx at 6:50 PM on June 10, 2001


The WROX Professional PHP is great for walking through the essentials of how-to for PHP. I used this to get my feet under me with PHP. I use that and Atkinson's Core PHP Programming on a regular basis. The Core book I use as a solid reference. These are the two that I and now others on the team use as our basics.

I like the New Riders Web Application Development with PHP 4.0, which I use as a task resource. This walks through many common components used in building applications. The PHP Developer's Cookbook (by Sterling Hughes for SAMS) is great if you have some understanding of another Web programming language and want to translate that knowledge into PHP. The last PHP book I own is MySQL/PHP Database Applications (by Jay Greenspan and Brad Bulger for M and T Books), which walks you through some general basics and builds on these modules you learn. The knowledge modules are used to build survey's, catalogs, a content management system, a threaded discussion board, problem tracking system, and shopping cart.

This should give a rough overview of some of the books available and what they contain. Each person thinks and learns best in different ways, so what may be right for some may not be right for others. I have good things about the WROX Beginning PHP book, but I have not spent much time looking at it.
posted by vanderwal at 8:12 PM on June 10, 2001


I'm partial to online resources, just cuz.

PHP.net is great as is PHPBuilder.
posted by fooljay at 8:56 PM on June 10, 2001


PHPBuilder is dying so get what you can.

So how do we start the ball rolling? Matt, if you could sign up a sourceforge project (and decide the name so there's no bickering... PHP + Mefi + open source = PHPilfer?) and get a mailing list going others could take over from there.
posted by holloway at 10:32 PM on June 10, 2001


Gentlemen, I give you php-mefi, a Yahoo group for those interested in joining this project or merely following it. It's a little early, but I'll also create a Sourceforge project. Since I'm not a hardcore coder, I'm willing to ride along in a project-manager type role. (I have some Microsoft Solutions Framework training, which would be great to actually put to use.)
posted by dhartung at 10:36 PM on June 10, 2001


Whoops. Already doing ...
posted by dhartung at 10:44 PM on June 10, 2001


Arg, PHPBuilder has been an amazing resource. It is where I turn first and where I pointed others to learn PHP. I can try and dig out my other PHP on-line resources. Fooljay, other ideas? I had put some in my web-log at one point so as to remind myself. Anil has a list he uses as does Saphireblue.
posted by vanderwal at 5:28 AM on June 11, 2001


I'd love to work on this. I've been using PHP & MySQL for a few months so I am 1 step above a PHP newbie :)
posted by riffola at 10:08 AM on June 11, 2001


PHPBuilder is dying so get what you can.

Oh that's so SAD!!! It's a great site! I hope they at least leave it online in an unmaintained state. I already noticed that the search has somehow degenrated...

Fooljay, other ideas?

Yeah, I have a ton, but they're on my other computer. I'll post them here and to the Yahoo group later. Michelle pointed us all to Hotscripts.com a while back. It looked pretty good but it's a script repository covering more than just PHP...
posted by fooljay at 11:32 AM on June 11, 2001


whoops, I'm late to the geekparty:

yeah, Hotscripts has lots of different stuff, but a programmer I was talking to recently swears by the PHP section. I haven't played in it too much but he recommended that and also the PHP Developer's Cookbook. I adore me some ONLamp.com: "lamp" is Linux/Apache/MySQL/PHP-Perl-Python, lots of good stuff over there. I hadn't heard PHPBuilder was dying---it hurts my heart---but Devshed has a not-bad PHP section. I started learning with the book Core PHP Programming, first edition, which has now been updated to a second edition covering PHP4, though I haven't looked at it yet. A recent buy is Web Application Development with PHP 4.0 which is great if you're a little more advanced: doesn't spent 3 chapters explaining what a for loop is, which is nice.

As already mentioned, php.net can't be beat. I love the user annotation of the official manual; those comments can be just about as valuable as the docs themselves. And the official PHP mailing list is handy too. Rasmus Lerdorf once helped me with a *supernewbie* problem [isset() vs. ==""] and I was mighty tickled he bothered. So they're nice folks over there. The php.net support page gives info on the mailing lists (temporarily down unfortunately) and also pointers to some other resources. If you're an IRCer, some pretty prominent folks in the PHP community hang on EFnet #php as well.

Lastly, there's php.weblogs.com, a bit of a hodgepodge but valuable, best explored when you are in no hurry :)

oh yeah and: I'd adore to help PHPify MetaFilter. As I told a new net.friend last week, if PHP was a religion, I'd be at least a deacon now---or maybe just a televangelist.
posted by Sapphireblue at 12:39 PM on June 11, 2001


Mainly because I've been craving an open-source MeFi like weblog package, and I thoroughly despise PHP, I started work a while ago on a community weblog in perl. Anyone who is interested, feel free to let me know.
posted by jammer at 3:42 PM on June 11, 2001


Count me out. Let's all meet in the wet forest and grunt. Like it should be done.
posted by crasspastor at 1:54 AM on June 12, 2001


Is anyone interested in an ASP version? I have some ASP scripting experience and would like to get a lot more (we run IIS at my day job and the knowledge would come in handy). Perhaps the ASP could be developed sorta in parallel to the PHP version.
posted by kindall at 5:42 PM on June 12, 2001


I started coding a PHP MeFi clone 2-3 months ago, and gave up due to work demands...

The only thing I had left to do was code in the user login/cookies/sessioning sections...

I'd love to collaborate on getting a fully functional polished version out!

Once a PHP version is done, it could be translated to ASP (or an equivalent scripting language) in a couple hours...
posted by Neb at 6:43 PM on June 12, 2001


I have a php clone of Metafilter running at Verbamanent.org. It could be a good starting point. (I'll be available to give more information later in the day).
posted by sja at 6:13 AM on June 15, 2001


I'm the other guy behind verbamanent.org: sja did all the coding stuff and I can assure you his work is truly valuable. Why reinvent the wheel? :)
posted by cavedoni at 11:48 AM on June 15, 2001


I think it should be called "metaPHPilter". Or not. Or even "MetaPHilter.
posted by mecran01 at 9:16 AM on July 6, 2001


« Older Can we bring back the floaty DHTML log list?   |   please post my comments!! (closed membership) Newer »

You are not logged in, either login or create an account to post comments