Blogs-james The first blog on the site. Rightfully belonging to the person who created the system. Copyright TweekedIdeas.com MatchSTD.com Blogs: James' Blog http://www.matchstd.com/blog/james http://www.matchstd.com/blog/entries/11 Hey everyone. As you may know, I went ahead and got a full-time job. Because of this I haven't really even been here. Bentley's been keeping an eye on things and making sure that the site has stayed up. Now to the points. 1) I apologize for recent downtime. Our host has been making upgrades to a few of the libraries that help run the site, and we've have had to adjust the code for a few things to keep it up. And 2) We'll be re-writing the site once more. The next site will take into account many of the things that I have learned at my new job. Mainly: simplicity first. We'll soon be conducting a poll, and having discussions with some of the more prominent members of the site to get your feedback. Thanks, James Sat, 03 March 13:21:56 GMT More updates planned http://www.matchstd.com/blog/entries/10 Apologies for the downtime. Looks like the code to delete session information from our database isn't functioning properly. No security issues or anything, just loads and loads of data bogging down the database. I haven't yet gotten to the fix yet, but I deleted everything that should have been done automatically, so we've got another three months at least of uptime before the problem hits again. I'll get on it later tonight. Thanks for your patience, and best of luck with the search. BTW: The final release of this site will bring the answer to your proposals problems :) James Sat, 21 October 14:01:35 GMT Server downtime http://www.matchstd.com/blog/entries/9 In response to a few e-mails I've gotten regarding proposals that never seem to be answered I've implemented a fairly simple feature that will tell you whether or not an account is active. On the proposals page you will now see "Last login" followed by some text that indicates how long it's been since that user has logged in to the site. To help keep your privacy we've decided to not give an exact date or time, but just a 'round about' description such as "recently" or "not in a while." I hope that helps! James Mon, 14 August 18:32:15 GMT Proposals enhancements http://www.matchstd.com/blog/entries/8 If you've been here recently you've been seeing a lot of Internal Server Error messages... This is entirely my fault, and has been making life difficult for you all. I've made quite a few updates to how the site caches information (I've gotten several comments from people regarding how much faster beta 2 is), and they've been utilizing some pretty complicated timing arrangements. This also meant that I needed to open up different threads for pulling out information from the database for some requests, and close those database connections when they went stale. This was probably a little over-kill, and after about 10 minutes from starting the MatchSTD.com server we'd start getting some database crashes. I finally figured out the timing, and removed what I THINK has been the problem (starting the different threads has also made debugging a little harder). Know that even if you don't see me I'm right behind the scenes working on MatchSTD and Kepty.com, each of which utilize pretty much the same components (Kepty's a little smaller, and that helps me narrow down some of the bugs). Good luck everyone, and I'll be here (james [at] matchstd [dot] com) for anybody that needs anything, James Wed, 19 July 21:55:55 GMT Internal Server Errors http://www.matchstd.com/blog/entries/7 No, I haven't been ignoring the fact that the chat room hasn't been working well, rather trying to figure out a way to fix it... It was using a custom built server for a while, which made the requests about 10 times faster, but I was having trouble communicating data between the normal server and the custom server. For those wondering, the normal server is still being used because it's much more standards-compliant and feature-rich. The custom server was designed simply to handle the AJAX requests, and produced one of three codes when something happened: 200, 404, and 501. That's it... And that's really all it needed... But alas, I couldn't get the shared data to work properly. I also was tyring to work on some security issues regarding the AJAX requests and setting cookies on a single domain. It was for that reason you were forced to log in again if you were viewing the site from matchstd.com and not www.matchstd.com. That problem is now resolved. Remember, the chat is now VERY slow, and probably won't handle too many users, but I've set the site to restart on heavy load, so you shouldn't experience problems with anything else. Please have patience, I'll continue working on this one. Remi and the CP team is about to release v3, which is just about as fast as the custom server. I'm porting the zippo structure to it, and hopefully that one will be behind the site. As it is we're getting build times of about .03 seconds per page, which is great, but of course, with the single server (shared) that we're on at the moment, it can be difficult to sustain the amount of requests the polling creates in the chat room. I'll also look into learning some more Java just to get something that works well, unless you guys would be interested in a simple Python+GTK system, which I could probably pull of in a week or two. Take it easy, and keep up the feedback... Remember, WE CANNOT SEND YOU A RESPONSE TO FEEDBACK WITH THE FEEDBACK BUTTON IF YOU DON'T GIVE US CONTACT INFORMATION! James Tue, 18 July 11:46:07 GMT Chat fixes http://www.matchstd.com/blog/entries/6 I bet you've all been wondering why there has been no real news on the site... It's because I've been a) working on minor bug fixes (the remember login feature, for one), and I've also been rolling out another site, kepty.com, some of the functionality of which will be added to matchstd.com. I'm still not too sure exactly how it will work, but some features include the categorization (which utilizes farey sequences for depth efficiency), and a much more advanced formatting system (I'm going to remove the source code stuff, of course). To make lookups efficient the site also utilizes a nice cache server, which I'm going to implement here, as well. All in all, mostly stuff that goes on behind the scenes, but kepty.com is certainly something I'd love for you guys to start playing with. Unfortunately I am but one coder, and any bugs there they might show up here... Take it easy, James Mon, 17 July 12:56:15 GMT Coming up... http://www.matchstd.com/blog/entries/5 As you've probably noticed, MatchSTD.com Public Beta2 is now up and running. It contains MANY improvements over Beta1, including an improved proposals system and a chat room, which is only for members not using Internet Explorer. I foresee a large number of requests for Internet Explorer support in the chat room, so I figure I'll explain a little more about the reasons we decided to remove IE from the list of supported operating systems. [b]Overview[/b] Microsoft Internet Explorer (IE), as you all know, is bundled with the Microsoft Windows operating system. Such bundling practices have made it the "standard" internet browser, despite the fact it doesn't support any web standards like other browsers do. Most computer users haven't been offered any reason to switch to a system that makes actually creating web content easier, more secure, and more fulfilling, and therefore we've decided to take it into our own hands to start converting the web to browsers such as Firefox, Opera, and Safari. [b]Security[/b] IE's security record is dismal. Recently the US-CERT organization deemed Internet Explorer unsafe and recommended it be replaced by another browser: http://www.kb.cert.org/vuls/id/713878 Despite such calls, the majority of internet users are still using Internet Explorer. All of the other major browsers have much better security records, and will help keep your computer from becoming 'hijacked' by those that wish to do you and others harm. [b]Standards[/b] Every page you visit on the internet is composed of some sort of code. Generally it's a combination of CSS and HTML. This code is interpreted by your browser and displayed appropriately on your screen. Internet Explorer fails to interpret such code properly, and forces many developers to either create overly simplistic pages, and often times forces them to deploy 'IE hacks,' or code pieces that are interpreted differently by IE than other browsers. Developers have to spend more time coding, companies spend more money on developers, and you end up paying for it when you buy a product (and in bandwidth charges, but that's probably not something too important). IE 7.0 has promised to make changes to this by supporting web standards, but every release of Internet Explorer in the past has been plagued with these problems, and frankly, we don't trust that we won't have to do even more work. To install the beta version of Internet Explorer 7, developers have to have access to an entirely different computer than the one running IE 6*, making life difficult for developers, to say the least. We've found that running such software in virtual machines is really the only way to test websites for the new Internet Explorer... This is just too much a head-ache. [b]PNG Alpha Transparency[/b] Ever come accross a page where the images just didn't look right? Where the background faded into the image improperly? Those days should have been over a while ago with the introduction of the PNG image. Every browser other than Internet Explorer fully support alpha transparency in these images, making designer work much simpler. [b]Javascript (AJAX via ActiveX)[/b] This site uses a technique in the chat rooms that utilizes javascript. Microsoft Internet Explorer supports this technique, but does so through an ActiveX object. ActiveX security is SO horrible we decided we didn't even want to force users to turn it on. If you're using Internet Explorer without ActiveX disabled, you really do need to turn it off. Google for why. In any case this is a MAJOR reason our chat rooms are not for Internet Explorer users. So. Download something else. Firefox or Opera.... Nothing that uses Internet Explorer. Both you and the world will be happier with your new browser. Thanks, James Wed, 21 June 05:35:20 GMT BETA2 Released http://www.matchstd.com/blog/entries/4 I've been neglecting this blog, obviously, but I've got some goodies coming up in the next version of the site that I've been promising, and I just realized that I should probably post somethig regarding them. If you've ever come across my main blog: http://kassemi.blogspot.com, you've probably seen that I'm working on a new server project, one designed strictly for ajax requests... Instead of processing sessions and cookies (it does a little, but not much), it can send very simple HTTP responses through it's own dedicated connection. Here's a simple HTTP query: Your browser sends this: GET /some/page HTTP/1.1 User-Agent: Your browser's name Remote-Addr: blah Referer: blah .... Where .... is just a whole load of different lines. Each of these lines in any normal server is processed, and although it doesn't take much time, it does take a little more than NOT processing it, obviously. It is then the responsibility of the server to maintain the connection with your computer and send the requested data through a socket to your page... This data will take on a format similar to this: HTTP/1.1 200 OK Date: The date sent. Content-Type: text/html Content-Length: 325 bytes Last-Modified: Date last modified .... Where the .... again means that there can be more data in addition to what was already sent. With AJAX these requests can be happening very frequently, and not all the information is necessary. In fact, when it comes to an application that polls for information (such as the chat room that I'm making right now), your server can be overloaded with these tiny requests. To avoid this from happening, I decided to make a server that will respond to these smaller requests a little quicker and with less bandwidth by sending only the necessary headers. I can't fix what your computer is sending me, but take for instance that first request I just showed you. The only information I really need from that for most purposes is the address: GET /some/page HTTP/1.1 And that's the only information this server will even try to process. In so far as the response is concerned: " HTTP/1.1 200 OK Content-Type: text/html Lots and lots of data! " By doing that, I'm able to send out about 4 times as many requests as I can via a more traditional server.... And the great part? It works! And it works well. I've simply attached it to the cherrypy server that serves up the normal requests, and it will serve all requests that come into a specified port (which I've got mapped via apache rewrite, as we ARE behind apache in the first place). Along with the chat room on the new server, I'm making a whole lot of updates to the system itself by writing a new barrage of unit tests to make sure we remain stable, and by removing a few of the more "prone-to-error" components. Stick around, hope you'll enjoy! Thu, 08 June 10:54:17 GMT Chat Systems and RSS http://www.matchstd.com/blog/entries/3 Hello everyone, You're currently using the latest version of the site. It's got a hell of a lot of improvements, including the blogs (which you could read before on beta.matchstd.com), a new search system, upgrades to the forums, a new registration form, and a whole load of bug fixes. I hate to say it, but there were a few members out there who were hiding away in the system, unable to be reached by search. That's changed. These members were few and far between, but they were still there. This was due to a little glitch in the SQL query that I used, which has been repaired. For those of you who write queries on a day to day basis, you understand how difficult it can be at times to get the syntax right when you're including them as strings within your application. To make matters worse, I use [url=http://sqlobject.org]SQLObject[/url] for about half of the system, and psycopg2 for the rest. Combining the two can be a little bit of an issue when you're trying to keep track of what you're doing with the database. The search itself is done with a raw query through psycopg2, and some items are weeded out through SQLObject models. So why do I program it like that? Because with psycopg2 and the raw queries you can get a lot more control over your database, but SQLObject keeps accessing properties of rarely grabbed items as easy as, heck, I don't know. Anyway, it was a damned little parantheses issue in the initial query. I need to get syntax highlighting to work it's magic on sql queries in vim. But first things first. Like system stability. I've got a memory leak in the code base somewhere. But despite all my tests, I can't replicate it on my testing machine. It only happens on the server. I recently installed python 2.5 alpha 1 on my development computer, and tried the application under it. There are minor improvements in stability, and I'm hoping that it might fix the memory leak, as well. I do, however, want to wait a while for that to be more stable, and also for all the accompanying software I'm using to support it. CherryPy looks like it works properly, but the PIL throws up some errors. I had to fix the locations of a few import statements in kid so that those modules would load, but other than a few warning statements thrown up every now and then, everything is functional. This is a very good sign... Heh. I ramble on... In a few hours I get to take a much needed break from it all with a trip to the mesa, something I'm looking forward to quite a bit. I haven't really left the computer for more than an hour or two since we hit CNN, but now everything is looking really good, so I'm going to give it a shot. Let's see... That's about it. Everybody take it easy, and have a good time on the site, James Sat, 22 April 07:53:17 GMT The new update http://www.matchstd.com/blog/entries/1 Hello everyone! If you haven't heard of me, you must be new to the site, or you might just never have paid attention to what's been going on. In any case, this is my new blog, an addition to my other blog: [url=http://kassemi.blogspot.com]http://kassemi.blogspot.com[/url] More specifically though, this blog will contain all things technically related to MatchSTD.com, as that is what I do. If you're more geeky than everybody in your circle, this is where you'll end up most of the time when you're bored. Hell, I can hope, can't I? In any case, stay tuned to this area. Bentley will have her blog up soon enough, and you can start talking to her as well. Have a great time on the site, James Thu, 20 April 13:50:13 GMT First Entry