January 24, 2004

Curious George: A Cry for Help Coders needed, hi.
  • Sorry tracicle, I'd love to help, but I don't think I'll be much use. I'm currently learning asp and will soon be learning jsp (whatever that is) but I've never used php. (Getting all my excuses out of the way, its currently the last semester of my degree, so I don't know how much free time I'll have either) Other than all of that, I'd love to help. (That sounds sarcastic, but it isn't).
  • Would a donation box help so we could move to a larger bandwidth and storage facility as a stopgap measure? I know I and a few other would happily contribute instead of waiting until July 27th to bestow you with gifts.
  • I don't know any php but I'm fairly familiar with more basic facets of web design and programming. Plus, I have a lot of time to learn and code in the next month.
  • stripe, I'm about where you are. I don't know php but I'm about to learn the fun way. I'd prefer not to do it alone. :) Thanks to those who'd like to help but can't. I understand. As for moving hosts, I think we're fine where we are for now and our current MonkeyHosts are actually running a pretty decent server. It's just that MoFi as it stands hogs a heck of a lot of a server's resources. I'd prefer to stay here and improve the site than keep shifting from place to place.
  • I just downloaded and installed apache server + php on my comp. here so count me in.
  • I barely know how to type...
  • As for learning PHP, there's this good book. First 4 chapters are online. Now that I think about it, won't almost _any_ blogging system do? What we need is a software that allows multiple users to post entries alongwith a commenting system. And, most softwares that don't call themselves *filter do this as well. Movable Type for one. b2 for another.
  • Oops, forgot to fill in the links ;-) Here's book, online chapters.
  • I'd like to keep the metafilter look and the features that we already have and are in the process of developing. Can you suggest a system that does that? There used to be freefilter (?) but I understand it's no longer being developed or supported. Although pre-built engines are nice and easy, you end up taking the bad with the good and it can end up being almost as much work anyway. Metaphilter, for example, was perfect for us until we started hogging our server's processing power at the expense of the other hosted sites. Stripe, it looks like you and I will make a start anyway, and I'm sure we'll have some help along the way. I know a couple of non-online friends who know php also that will be able to offer technical advice. Like I said, we could do a trial run by creating a Nitpicking site to replace my blog as a complaints place (although not a metatalk).
  • I am pretty sure Movable Type with its template system, will allow you to create a Filter look. When I had it installed on another site, I created a customized template. Just look through some of the sites on that page, and there should be no doubt.
  • Are you optimising/running update statistics on your database at regular intervals? It might be a simple matter of doing this, or at worst, rebuilding the indexes for the tables, to significantly reduce the load on the processor. (I'm not familiar with MySql - more used to informix databases).
  • I think it is always good for a website to have its own software, because it gives the power to experiment with new ideas, a great example is MetaFilter's AskMe system. Developing a 'filter system would not be very complicated, as in the most simple view, 'filters retrieve lists from databases, format them, and print the data out. If the database design is effective, there should be no reason why there would be any slowdown. I downloaded MetaPhilter and at first glance, I think the reason it may be slow is that PHP may have trouble interpreting its object-oriented style. Object-oriented code requires a great deal more overhead than structured programming. I have a great deal of experience with Perl, so learning PHP would not be difficult. I have also worked with MySQL before and have also developed several threaded discussion products and even written a simplified MetaFilter system once before. Therefore, I would like to help. The only parts that I do not understand are the trackback and rss feeds. What do they do?
  • I think it is always good for a website to have its own software, because it gives the power to experiment with new ideas Well, all you need for that is a software with a modular-plugin system and a clean base code. While I would relish the idea of writing our own filter, using pre-existing software has the advantage that 1) it works 2) other people have already written plugins 3) bugs and inefficiency have been spotted and corrected 4) the software's available now Of course, best thing to do now is for tracicle to open a thread/site where we can do feature requests and software specs. Once we knoe what we want, we can see if a solution already exists.
  • Using premade code does make a lot of sense. I think our general priorities are whatever offers us the best performance and power (aka features and customizability) with the least amount of frustration. Minimal frustration would probably be optimizing the current metaphilter code, provided we start with a working knowledge of what makes databases faster. (I don't posses this yet, certainly) If we do want to improve mofi feature-wise, I would say Movable Type or another pre-built interface is the clear choice because, while I would like to learn everything it would take to build such a system, it probably still wouldn't end up as good of a program anyway.
  • 1. What BigCalm said. 2. I hate to join in the Little-Red-Hen pig-pile ("And who will help me FIX this community weblog?" asked the Little Red Hen. "Not I," said the Monkey. "Not I," said the Cat. etc.), but I can't help directly, either. 3. Where more precisely is the performance bottleneck? You describe it as being associated with frequently hit pages, but you don't cite the front page as an offender. Is it really a function of the number of entries, or the total amount of text displayed thereon? If so, you might get a quick fix by partitioning the monthly archives into weekly archives. 4. MT has its own very real scability problems, but they're a function of posting or commenting, not of reading (a MT "post" operation generates a set of static-unless-otherwise-PHPified pages that the server will regurgitate on demand). You can mitigate these by reducing the number and times that archives are autogenerated. Also, it's in Perl, albeit very well written Perl. I've never had to dive into the Perl, fortunately. 5. What does SportFilter use? Did Mr. MeFi just fork the MeFi code for them?
  • goetter, the front page was recently rewritten because of this exact problem, which is why I'm not concerned about that particular part of the site (any more). Niccolo has described the problem exactly. "...PHP may have trouble interpreting its object-oriented style. Object-oriented code requires a great deal more overhead than structured programming." So in layman's terms: final output is made by eval-ing this object oriented tree-thing, which is both slow and breaks standard caching. The way PHP works is you have a chunk of PHP sourcecode. It's parsed by a PHP engine, done in C, very fast. The parsed output can be cached to speed things up for the next run. MetaPhilter bypasses all this - the parsing is slow, the parsed data hard to work with and the output so dynamic that it can't be cached. I guess the overhead is around 90% and the work (database, etc) is the other 10%. Optimising the front page took the generate time down to 0.7s from 20. I think we'll have to optimise MePhi with the long-term future plan of building our own software (I'm being sort of dictatorial with the whole "build our own site" thing, I know. It's a personal mission of mine). If we do a hack on MePhi now, those who are interested can work on developing a new MoFi in our own time with room for mistakes. We'd need to identify the worst parts of the code and translate them into real PHP from the template. We can either do this with Jack at metaphilter.org with his approval, if he has the facilities, or do it through sourceforge and submit patches back to him. Sourceforge also provide mailing lists and that sort of thing, so we'd have ease of communication and other monkeys could check on progress or bring us bananas when we've worked too hard. Niccolo: rss is a different view of the site, giving headlines and some body, useful for newsfeeds, sidebars, that sort of thing. Trackback is what you see at the bottom of some metafilter posts, where pings are sent to other sites carrying the same story. I don't know how this works, though.
  • Hello. I'm running six blogs on four domains (and dreaming of adding several more) using Nucleus, a php/mySql-based system that serves dynamic pages, is open-source and well-supported, and has let me learn a little php through its system of PlugIns. I even made a skin for Nucleus for a MetaFilter lookalike (that developed into the MeetUp site) MetaLifter. The problem is, its comment function is krappy with a kapital k, and I've never tested its multi-user capabilities. I'm actually considering changing to MT. (I did try b2 before Nucleus, and preferred the latter)
  • Hmm, thanks for that, Wendell. I wonder if we could set up a test-MoFi side-site and give Nucleus a try. There might be a patch out there to make the comments better, and if not I bet we could make one if it turns out to be worthwhile. I'll check it out asap.
  • Formatting in Nucleus is a three-part job: Skin, Template and good-ol' CSS stylesheet. (I found the initial learning curve a little steep and making changes, I usually alter the wrong element first... but I never said I was an expert on anything) I'll forward you the formats I made for MetaLifter if you start testing the N. But you have to promise to give me the comments-page fixes when you make them.
  • I promise on my banana. Thanks again for the advice. :)
  • We now have a Sourceforge project page (the Unix name for the project is "mephi-fork"), so anyone who's interested in helping out, or just wants to see what's happening, can join up at sourceforge and then send me an email/comment in my blog with your sf username. If you're not actually able to help, you'll still be able to make feature requests or post bugs that you've come across relevant to the code (in other words, HTML or CSS problems aren't counted) and there will be a developer mailing list that members will automatically receive.
  • Maybe this guy can help. Good luck, y'all!
  • I've put my name down to help, tracicle. Hopefully i'll be able to help.
  • My above comment sounds like it was written by some piss poor sentence constructing robot. Sorry about that. I really must learn to preview first. Or at least write sentences which don't sound fucking braindead and stupid and monotonous.
  • And neither of my comments actually point out what my user name is: dnguk Sorry and all that, again.
  • For want of a better place to put this: Ideas for the Monkey Filter rewrite I have no idea what tracicle plans for the rewrite, or what other people really want. These were some ideas and suggestions of mine. Some of these are probably shit, or unwanted, and most have probably been thought of already. New Features: Links to posts/comments on user page Preferences page - Allow choice of different css layouts, fonts, colours etc Improvements: Better guidelines on post page Make sure everyone previews at least once(?) when posting/commenting - not that necessary, but will stop me, at least, posting when i mean to preview improved search - allow to search for comments by user (for example search for "monkey" in comments by "dng") Preview button on Change Profile page Changes: New comments should be reset when you look at the thread Categories (?) - I'd like to see categories, allowing two or three per post (one compulsory, maybe). When someone deletes an account, don't let it revert to anonymous - just lock the account, say when it was closed (and who by - user or tracicle) and delete all the user bio information Allow images(?) - maybe, were these turned off because of our wonderful friend cock? 1 post per day limit - i don't know if this is necessary yet, but might be soon - if we did have it, it would have to not include curious george posts, and the like, which might be dificult, or at least irritating, to code Self-Indulgent toss no one but me would probably be interested in: A page which lists all members - and their websites A statistics page - number of posts/comments by day/month etc - number of different posters/ number of users (including those not commenting posting), maybe others Location on profile - Allow users to input their location - using long/lat coordinates, maybe showing monkey proliferation on a world map Suggested Categories: In no particular order... News Curious George Bugs - maybe have a separate metatalk alike - MonkeyGrooming maybe, or something similar. certainly something funnier or cleverer Sport Science Monkey Art Games Flash/Animation Archives/Databases (such as the internet movie database, or the computer game archive) Music Downloads Toys Language Animals/Pets (but not monkeys) Books/comics Film IT/Programming/Tech/Computers Philosophy History Photography Places (I can't think of the correct word/name, but I'm thinking of posts like "pictures of new york" or something) Others probably, and some of these could be amalgamated with others, or cut entirely.
  • I've set up a wishlist on the sourceforge page, so you (and anyone else) are welcome to put things on it you'd like to see. Preferences page - Allow choice of different css layouts, fonts, colours etc You're the second person to ask, so it's probably worth considering. Better guidelines on post page I can do this any time; I just didn't want to put too many restrictions on posting. Or do you mean a how-to, like the FAQ? Make sure everyone previews at least once(?) when posting/commenting - not that necessary, but will stop me, at least, posting when i mean to preview Heh, I do this too. Maybe a two-step posting process, then. improved search - allow to search for comments by user (for example search for "monkey" in comments by "dng") So like a two-pronged search thingy? Sounds doable. Preview button on Change Profile page I don't know that this is necessary, because it's easier to change stuff there just by checking back and hitting "Save" again. It's not like the front page where what you say will be seen instantly by dozens, if not scores of people. :) New comments should be reset when you look at the thread Agreed. That's a cookie thing, and argh. Categories (?) - I'd like to see categories, allowing two or three per post (one compulsory, maybe). Also agreed, and I've put it in the wishlist already. I never thought about multiple categories, though. If the categories are specific enough, surely we don't need more than one? Especially if we have the multiple-variable search. When someone deletes an account, don't let it revert to anonymous - just lock the account, say when it was closed (and who by - user or tracicle) and delete all the user bio information Good idea, although I don't see the benefit of saying who closed the account. Allow images(?) - maybe, were these turned off because of our wonderful friend cock? No, I never turned them on to save bandwidth. Once we've redone the code we'll have more leeway, but there'll be a strict rule of no images on the front page. We could probably disable images in FPPs if we wanted, actually. 1 post per day limit - i don't know if this is necessary yet, but might be soon - if we did have it, it would have to not include curious george posts, and the like, which might be dificult, or at least irritating, to code Yep. Overall we want to maintain ease of use over anything else, so by adding steps to the posting process we may lose people who can't be bothered going through an extra previewing step and listing multiple categories, not to mention putting too many restrictions on posting. I think what you're leaning toward is a combination of MoFi, MeFi and 9622.net, and it has much potential to be a really great site. The "self-indulgent" stuff is stuff I wouldn't mind seeing either, but they're extraneous to the purpose of the site. I'd help someone who wanted to do these offsite, though, and possibly provide hosting if necessary. (Although thinking about it, it would probably be simple enough to pull up nicks and web URLs out of the database from the user info provided.) And there will be a separate "Nitpicking" page later, along the lines of MeTa. I like the categories you've offered.
  • Thanks, tracicle. These were just brainstorming stuff - its always better to have ideas and discard them - and I also didn't really have any idea of the scope you were wanting on the rewrite - I wasn't sure if it was a redesign, or if you were just looking for a coding solution for the loading speed problem you previously mentioned. The reason I thought of multiple categories is because often posts cover multiple topics - such as this one I posted - its both a music post, and a computer game related post (I'm sure there are better examples). So if I could only choose 1 topic, I'd choose music, obviously. But then, if later I was searching just for computer game stuff, I'd miss it. /justification
  • I see where you're coming from. Maybe we could put in the ability to choose multiple comments, even if MoFi doesn't use it for now -- that way if we decide to, or if we want to try it out on the monkeys*, it's there. (*Monkeys = guinea pigs, apparently.)
  • Also, I'm getting a PHP book delivered tomorrow, and looking forward - if that's the word - to learning yet another bloody web language. And all my topics this term are web based stuff - asp, jsp, xml, and my dissertation is a data mining project - which should all help, unless my brain decides to dissolve due to too many similar topics, and churns them all into some incomprehensible hybrid language.
  • Tracicle- a thought on the preview/posting issue- would it be very hard to just make the space bigger between the two buttons, so that maybe one would have to move the mouse more to hit "post"- I know that I've hit "post" accidentally more than once just because the two buttons are pretty close together. I know nothing about coding, but I'm guessing adding blank space would be simpler than making posting a two-step process...or maybe make the "preview" button bigger than the "post" button? Sorry if this should go in your blog instead...
  • Better guidelines on post page I can do this any time; I just didn't want to put too many restrictions on posting. Or do you mean a how-to, like the FAQ? Prettymuch. I was thinking of a short explanation by the side of the each text box, explaining what they do. Yeah, nothing major, really.
  • ambrosia, this thread is fine, and any suggestions that make sense I'll put into the wishlist. That might work, they are sort of close together, and cursors do jump. dng, yay! I'll have to get moving myself, been slacking the past few days. Your idea about the explanations in the post page makes sense, too.
  • Regarding ambrosia's comment. I also find it confusing that the "change" button in Profile requires me to scroll down so that the comments window isn't visible. It looks as though "change" relates only to passwords. Maybe there should be 2 change buttons!
  • I could just rename the "Change" button to "Change Profile" or something. Or would that not help?
  • Caveat: I do not personally know any of you people and I do not know what background you have :) I am a professional software developer and have worked on several enterprise level projects, although never a web-discussion board kind of thingy. Reading through the commments here I see quite a few warning signs. Developing a piece of software is not just a matter of picking up a book about a programming language. Many a hobby project have died when the people doing it discover that things are actually complex :) I would suggest that that a large effort is put into the architecture of the solution before any coding is started (not to mention requirements, but it is the architecture people tend to forget about). And document everything. This is essential, especially for what looks to be a distributed development effort. I am happy to help, but will have very limited time.
  • Oh, and a pony: Given that a user has a unique id that is not the same as the user name, I would like to be able to change the user name without losing old history etc. The user page could e.g. say something like 'XXX was previously know as YYY'
  • I'm not sure what you mean there, TC -- you will always be known as The Carolingian on your posts and comments. It's impossible to change your nick. Changing your...wait a second, I never noticed that before! I'll add it to the list. And thanks for your offer of help, it's appreciated. I have a very kind mentor who's experienced in a buttload of languages (the technical term, I believe), and I'm going to sit down once I know exactly what's required and come up with a gameplan. We're in no hurry so there's room for learning and for error. I'm glad sourceforge has a tracker so we can regress to earlier sections of code if we need to fix a mistake. Gyan and dng are both, I think, experienced in other languages so I have faith in them. It's me that'll be the handicap. :) I just looked at this thread from the start -- whatever happened to stripe and niccolo? They were so enthusiastic. *sniffs*
  • tracicle: what kind of restraints are there with regards to building tools? Is it possible to use anything else than php/mysql? I suppose this will largely depend on the host, unless you will be running your own server. "whatever happened to stripe and niccolo? They were so enthusiastic." The curse of the hobby project :)
  • Gyan and dng are both, I think, experienced in other languages I've been programming with C++ and Java for about four years, and I'm in the final term of my degree. Its only in the last year, though, that I've done any web programming, so at the moment its all a learning curve, and may well prove beyond me. Not knowing much about PHP, could anyone tell me how it differs from ASP, which is what I've used before. (Also, where exactly in a sentence like that do I put the question mark?)