PHP Status is a PHP5-based web service status board website. It displays the status of whatever service you add to the system on a nice little dashboard-style website. Status boards are used by Google, Amazon, and other SaaS (Software as a Service) companies to let customers and clients know which services are up, down or experiencing difficulties.

Click here to view a demo.

Click here to view the source code. PHP Status is licensed under the GNU Affero General Public License version 3.
I've been thinking about starting a Toronto Free Software group for many many months (since around October 2009) and decided that I finally have enough time to do so.

So here we go, the first meetup of the Toronto Free Software group will take place on the 14th of July (a Wednesday) at the LinuxCaffe, 326 Harbord St, Toronto. Click here to get directions.

It will start at around 5:30pm and I'll have a sign or something that says Free Software on it. Or maybe I'll just hold up a book on C++?
In order to build up my skills I'm starting a new project with my cousin. We're calling it GoAugust and currently we're focusing on website design and have started designing website templates and will eventually work on blog templates for WordPress. The templates will be sold and we're making an effort to stick to free & open source software and we're also trying to use images and other works that use a Creative Commons license.

In this way we can avoid legal hassles (lots of people use weird license terms for their images) and we can support free culture and spread someone's work so that more people can enjoy it! I really like that last part and I've been trying to take more pictures so that I could release them under the Creative Commons licenses.

For the GoAugust project we may also be programming desktop applications using the Titanium Application framework. I'm curious to see how flexible JavaScript is and to see how (hopefully) painless building an application using HTML/CSS/Javascript is.

I've been taking a class in discrete maths and accounting and I'll do a post covering the topics from class. I have a huge bunch of notes on maths and I can't seem to understand some of the function and set theory stuff :/

The article, "Trains, Elevators, and Computer Science", begins with a brief history of trains and elevators and specifically their braking systems. The writer, Dick Lipton, a computer science professor at Georgia Tech university, positions his article as practical by first stating that George Westinghouse was "not a theoretician, but was one of the great inventors of the 1800's", then fully explaining the braking problems and adding little comments such as "Pretty neat" and "extremely clever" after some engineering idea.

After 10 paragraphs of history we finally reach the point where Lipton explains the "general principle" behind both and the relation to computing science. This principle is

...do not rely on an action, but on the structure of the system. Make the default, a passive state, a safe state so that when the system fails, it gets to the safe state by default.

The writer of this article, Neal Ford, apparently dislikes any comments and calls them "code smells".

He suggests that inline comments are unnecessary when method/function/procedure names are specific and they have one specific purpose.

Ford may be onto something here but he obsesses over the latest and supposedly greatest software methdologies. Some of the obsessions are dynamic languages, "agile" methodology, and "test/behaviour-driven" development. What I found worse was the re-labeling and mis-crediting of an old software development idea. Ford credits Kent Beck and calls it the "compose method" pattern but everyone else (at least those who know their history) will recognize it as a central idea in structured programming. This apparent pattern, really an old idea given a new name, describes the writing of smaller functions/methods with a clear, specific purpose. The beauty of structured programming is that it gives us a way to convert blocks of code into smaller functions.

A few weeks ago I picked up the books A Discipline in Programming and Structured Programming. The first is by E. W. Dijkstra and the second includes a large section written by him. I became interested in these books after reading a few of Dijkstra's other papers and about Donald Knuth's great works. The computer science field could stand to have a bit more formalism in it and less hand-waving about "real-world" tools and methodologies.

Here are some quotes that I found especially good.

Yesterday I was looking at a listing of updates for free software projects. I commented that the package moe could be used as a replacement for nano or zile, that is, when you need to quickly edit files from the command-line.

So today I'm giving it a go. I downloaded moe via the GNU project's FTP server and installed it. The compilation was insanely fast, I think it took less than 10 seconds to get it all built and installed.

Free Software Supporter is a newsletter run by the FSF (Free Software Foundation) and in it they have a section announcing a few software releases from the GNU project. However, they do not seem to provide any description of the projects aside from their name and version.

I was reading a bit about PLATO, a computer system for computer-aided instruction, and it is astonishingly old. It was around in the 70s, the 80s, etc. The language originally used for creating lessons and tutorials was called TUTOR. I've been extremely curious about the language since I first read about it on the weekend and I'm glad to say that I've found the manual.

It can be found here.

Here is a mirror hosted on this web server just in case.

I bet there are a few gems in this manual. History is awesome ;-)
There is a proposal to allow the inclusion of Java applets into Wikipedia to increase interactivity. What this says to me is that the Web is not enough and that it is mainly a document system. Instead, the Wikipedians should build a proper desktop application for viewing Wikipedia articles and then separate it from the Web and HTML. This would allow them to display the information in a variety of forms and fix the flaws of the Web.

The first thing I would add is a way of linking to specific paragraphs or sentences. The second thing I would add is a proper discussion board system and possibly add an IRC chat component. For the chat component, I would also make it easy to paste snippets of the conversations into the discussion board. This is useful because you may have discussed an article with someone and then made changes to it, but everyone else would be unaware of your discussion unless they checked the discussion board and the discussion may have provided a rationale for why you made the change.

Java applets and more interactivity would be a fine addition to Wikipedia, but this is solving the wrong problem.

Find recent content on the main index or look in the archives to find all content.

Creative Commons License
This weblog is licensed under a Creative Commons License.
Powered by Movable Type 4.1