<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Crazy Or Genius?: Category Programming</title>
    <link>http://www.crazyorgenius.com/articles/category/programming</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>When You Are Right 90% Of The Time, Why Quible Over The Remaining 3%?</description>
    <item>
      <title>Google App Engine</title>
      <description>&lt;p&gt;Today Google announced &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt;, a free (within certain limits) deployment environment in which people can develop, deploy and host web apps. Currently, the offering is for python only, and you are kind of tied to Google&amp;#8217;s data store, but in return you don&amp;#8217;t have to worry about server management, infrastructure, or paying money. Additionally, they have a pre-packaged &lt;span class="caps"&gt;SDK&lt;/span&gt; to give developers an identical development sandbox, as well as a method to deploy local code to the production environment.&lt;/p&gt;


	&lt;p&gt;However, I think they missed a way to make it even &lt;span class="caps"&gt;MORE&lt;/span&gt; awesome. Imagine, if you will, that they had integrated this package with Google Code. Suddenly, developers have an entire managed development and deploy framework. Develop on your workstation with an environment that is identical to the production environment, check in code so that it is managed, have a web interface that manages deployment from the repository so that you could deploy specific revisions/branches to either a staging area for testing or the production environment, with easy rollbacks if a problem is noticed&amp;#8230;... since one of App Engine&amp;#8217;s goals appears to be to lower the total cost of entry into the app development world, this just seems like it would make sense and work so well.&lt;/p&gt;</description>
      <pubDate>Tue, 08 Apr 2008 23:56:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:3242493a-224d-4b83-8d19-faf2620fe878</guid>
      <author>Sean</author>
      <link>http://www.crazyorgenius.com/articles/2008/04/08/google-app-engine</link>
      <category>Programming</category>
      <category>Ideas</category>
      <category>google</category>
      <category>integration</category>
      <category>app engine</category>
      <category>development</category>
      <category>deployment</category>
    </item>
    <item>
      <title>FreeBSD, Ruby And The Case Of The Failing Gems</title>
      <description>&lt;p&gt;The server I happen to host some of my stuff (ie. this site) happens to be running FreeBSD. In most cases, this doesn&amp;#8217;t cause any problems. However, in the case of installing certain ruby gems, I would get an error when compiling native extensions. In particular, with the fastthread gem (I was trying to upgrade Mongrel), I received the output:&lt;/p&gt;


&lt;code&gt;
make install
/usr/bin/install -c -o root -g wheel -m 0755 fastthread.so /home/ssmith/gems/gems/fastthread-0.6.4.1/lib
install: /home/ssmith/gems/gems/fastthread-0.6.4.1/lib/fastthread.so: chown/chgrp: Operation not permitted
&lt;/code&gt;

	&lt;p&gt;I received a similar error a while back when trying to install mongrel, and at the time I had asked one of the friendly admins to just install it as root. However, I like installing my gems locally, so they are easy to update, and this was preventing that. Additionally, I wasn&amp;#8217;t experiencing this on another machine running Debian, so what was going on?&lt;/p&gt;


	&lt;p&gt;Some investigation showed that on Debian, install wasn&amp;#8217;t being told to change the owner and group, while for some reason it was on the FreeBSD machine. So where was this being set?&lt;/p&gt;


	&lt;p&gt;Turns out that rbconfig.rb, a part of the actual Ruby distribution, was the culprit. A collection of configuration variables for Ruby, it had the following line:&lt;/p&gt;


&lt;code&gt;
  CONFIG["INSTALL"] = '/usr/bin/install -c -o root -g wheel'
&lt;/code&gt;

	&lt;p&gt;while on Debian we only had:&lt;/p&gt;


&lt;code&gt;
  CONFIG["INSTALL"] = '/usr/bin/install -c'
&lt;/code&gt;

	&lt;p&gt;Apparently, the FreeBSD Ruby port sets things a little bit differently, which causes pain for local installation of gems. I&amp;#8217;ve currently had the problem fixed by having that line set to the same values as Debian. However, as that file is automatically generated each time Ruby is updated, hopefully the root issue will be fixed in the next version for FreeBSD.&lt;/p&gt;</description>
      <pubDate>Tue, 06 Mar 2007 14:34:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:84cfefe0-ff27-431f-9799-a1fbbf72ac93</guid>
      <author>Sean</author>
      <link>http://www.crazyorgenius.com/articles/2007/03/06/freebsd-ruby-and-the-case-of-the-failing-gems</link>
      <category>Programming</category>
      <category>ruby</category>
      <category>gems</category>
      <category>freebsd</category>
      <trackback:ping>http://www.crazyorgenius.com/articles/trackback/805</trackback:ping>
    </item>
    <item>
      <title>Formats, Microformats, and Exporting, Oh My!</title>
      <description>&lt;p&gt;The other day, I came across this &lt;a href="http://leftlogic.com/info/articles/microformats_bookmarklet"&gt;Microformat Bookmarklet&lt;/a&gt;, designed to extract &lt;a href="http://microformats.org/wiki/hcard"&gt;hcard&lt;/a&gt; and &lt;a href="http://microformats.org/wiki/hcalendar"&gt;hCalendar&lt;/a&gt; markup from a website and into a format that people can use. &amp;#8216;Hey&amp;#8217;, I though, &amp;#8216;that&amp;#8217;s pretty cool, why don&amp;#8217;t I use those in places&amp;#8217;.&lt;/p&gt;


	&lt;p&gt;It was the motivator that finally got me to fix a long open feature request for TigerEvents. Now, the event view has hCalendar markup for those who care.&lt;/p&gt;


	&lt;p&gt;Once that was done, I thought, since I had already done hCal, why not figure out iCal export? Easier than I would have thought, thanks to the &lt;a href="http://icalendar.rubyforge.org"&gt;iCalendar gem&lt;/a&gt; and the &lt;a href="http://api.rubyonrails.com/classes/ActionController/Streaming.html#M000073"&gt;send_data&lt;/a&gt; method. Now people can grab iCalender export by individual event, group, or category. People should even be able to subscribe to iCal files and have events automatically shown in their calendar app (if said app has this feature). Only future events are shown, however, in order to cut down on file size.&lt;/p&gt;


	&lt;p&gt;Finally, while I was working on the above,  a friend stopped by, saw what I was doing and commented, &amp;#8216;you know&amp;#8230; it would be awesome if I could click on a link and have the event loaded into my google calendar&amp;#8217;. So, quickly scouring the web came up with &lt;a href="http://www.google.com/googlecalendar/event_publisher_guide.html"&gt;Google Calendar event publishing guide&lt;/a&gt; and after a few minutes, I managed to add that functionality as well.&lt;/p&gt;


	&lt;p&gt;Now for &lt;span class="caps"&gt;RSS&lt;/span&gt; feeds&amp;#8230;&lt;/p&gt;</description>
      <pubDate>Sun, 01 Oct 2006 19:27:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:8272ae88-584e-455e-b572-f301ee233592</guid>
      <author>Sean</author>
      <link>http://www.crazyorgenius.com/articles/2006/10/01/microformats-microformats-microformats</link>
      <category>Programming</category>
      <category>Projects</category>
      <category>tigerevents</category>
      <category>microformats</category>
      <category>hCalendar</category>
      <category>hCard</category>
      <category>iCalendar</category>
      <trackback:ping>http://www.crazyorgenius.com/articles/trackback/199</trackback:ping>
    </item>
    <item>
      <title>Sneaking Ruby Into The System</title>
      <description>&lt;p&gt;Many of you may know of my love for the Ruby language. Used for most of my own projects and quick scripts, but have never been able to use it in any of my paid work. Until now.&lt;/p&gt;


	&lt;p&gt;It started a few weeks ago with a script I wanted to write. As I am the &amp;#8216;translator guy&amp;#8217; at work, from time to time I need to convert the &lt;span class="caps"&gt;XML&lt;/span&gt; files that store the English text to something that a non-technical translator can easily read (I thought the &lt;span class="caps"&gt;XML&lt;/span&gt; was readable, but apparently I need to hand over Excel spreadsheets). As Ruby has nice &lt;span class="caps"&gt;XML&lt;/span&gt; library included, I just quickly whipped something up, and away I went. Never intending this to be anything more than a tool for myself and knowing my boss wouldn&amp;#8217;t care as long as it got done without me having to spend a few hours, it seemed like the thing to do at the time.&lt;/p&gt;


	&lt;p&gt;Fast forward another two weeks. I overheard a few of my coworkers talking about how they can&amp;#8217;t manipulate &lt;span class="caps"&gt;XML&lt;/span&gt; files in &lt;a href="http://www.autoitscript.com/autoit3/"&gt;Auto-it&lt;/a&gt;, which they were using to cover some deficiencies in another build tool we were using called FinalBuilder. They started talking about either writing their own &lt;span class="caps"&gt;XML&lt;/span&gt; parser, or using yet another tool/language to do what they wanted.&lt;/p&gt;&lt;p&gt;A few of my coworks obviously didn&amp;#8217;t like either idea. I mean, sure it was &lt;strong&gt;a solution&lt;/strong&gt;, but it wasn&amp;#8217;t an &lt;strong&gt;ideal&lt;/strong&gt; solution. None of us liked the thought of debugging build/test/release scripts cobbled together from 3 different programs/languages. Some of us thought that if we were going to take the time to do something like write our own &lt;span class="caps"&gt;XML&lt;/span&gt; parser, we might as well spend the time to do something even smarter, like rewrite all our scripts in a single language. This would have several advantages, including things being uniform (1 language vs 3 helps there) and making it easy to track changes in svn (FinalBuilder has binary files, which caused problems when multiple people made enhancements).&lt;/p&gt;


	&lt;p&gt;So a number of suggestions were made, including batch files (ugh) and php. I obviously suggested Ruby, pointing out its portability (as opposed to Windows only solutions), readability, and the existence of desired functionality (eg. &lt;span class="caps"&gt;XML&lt;/span&gt; Parsing). The individual who was going to write the scripts had never used Ruby before, and so wanted to know more before making a decision.  Coincidentally, I had a copy of Enterprise Integration With Ruby sitting on my desk,and was able to toss it over so he could take a look at the syntax (bonus points for its section on &lt;span class="caps"&gt;XML&lt;/span&gt; parsing). I also pointed out the &lt;a href="www.ruby-doc.org"&gt;ruby-doc&lt;/a&gt; site and pointed out &lt;a href="http://docs.rubyrake.org/"&gt;rake&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Now, we have all of our build scripts written in rake format, and I reworked my translation scripts slightly to be rake tasks as well. At the moment we are working out some kinks in another series of scripts a coworker has written for creating packages for our clients, and we won&amp;#8217;t have to waste time making small tweaks to packages manually.&lt;/p&gt;</description>
      <pubDate>Tue, 05 Sep 2006 15:47:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:e2a9a533-2857-4d7e-a341-8a8b056ac26a</guid>
      <author>Sean</author>
      <link>http://www.crazyorgenius.com/articles/2006/09/05/sneaking-ruby-into-the-system</link>
      <category>Programming</category>
      <category>ruby</category>
      <category>rake</category>
      <trackback:ping>http://www.crazyorgenius.com/articles/trackback/176</trackback:ping>
    </item>
    <item>
      <title>Railsday 2006</title>
      <description>&lt;p&gt;So yesterday was &lt;a href="http://www.railsday2006.com"&gt;RailsDay2006&lt;/a&gt;.  The objective: Write an entire web app of your choosing (with some restrictions) in a span of 24 hours.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://nobits.org"&gt;Oliver&lt;/a&gt; and I decided to participate together. I came up with a bunch of ideas, but we ended up doing something Oliver had in mind. The goal: a deli.cio.us clone that we called Tasti.er. We wanted a simple interface, where everything happens on one screen. We put it together in under 18 hours (with the final commit happening just as the competition closed).&lt;/p&gt;


	&lt;p&gt;Check out our &lt;a href="http://spectate.railsday2006.com/changesets/teams/152/"&gt;performance log&lt;/a&gt; or &lt;a href="http://nobits.org/articles/2006/06/18/rails-day-2006-awesomeness/"&gt;Oliver&amp;#8217;s RailsDay Post&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 16 Jun 2006 15:43:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:7b72a7dc-1e44-45c9-a469-69ff361da7de</guid>
      <author>Sean</author>
      <link>http://www.crazyorgenius.com/articles/2006/06/16/railsday-2006</link>
      <category>Programming</category>
      <category>ruby</category>
      <category>railsday</category>
      <trackback:ping>http://www.crazyorgenius.com/articles/trackback/174</trackback:ping>
    </item>
    <item>
      <title>Let's Get Ready To Roombaaaaaaaa!!!!!</title>
      <description>&lt;p&gt;So, lately I have been spending some late nights on campus. I mean &lt;span class="caps"&gt;LATE&lt;/span&gt; nights, 1&amp;#8230;.. 2&amp;#8230;.. almost 3 in the morning. Have I been spending late nights working on my schoolwork? Ok, you can stop laughing now. No, instead I have been doing some hardware/software hacking with a Roomba. My friend &lt;a href="http://racon.net"&gt;Oliver&lt;/a&gt; and I have been busy putting the Roomba together and doing cool stuff with it. Ok, ok, Oliver did most of the hardware work, I just provided ideas and suggestions along the way. End result: A Roomba being controlled using a &lt;span class="caps"&gt;USB&lt;/span&gt; Gamepad over the wireless network in the Computer Science building. Over the break, several individuals from tech support came to take a look at it cause it sounded cool, and we even showed it off to the high school students that showed up at the Open House last Saturday (they also thought it was cool. Right now, we have the movement controlled via one of the analog sticks, though we have a lot of cool ideas (which I am sure I will write about as they are accomplished).&lt;/p&gt;


	&lt;p&gt;More information (as well as pictures) can be found at &lt;a href="http://racon.net/news/roomba_hacking"&gt;Oliver&amp;#8217;s site here&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Additionally, Make Magazine has &lt;a href="http://www.makezine.com/blog/archive/2006/02/roomba_hacking_gamepad_control.html"&gt;already featured it in their Make Blog&lt;/a&gt;. How cool is that?&lt;/p&gt;</description>
      <pubDate>Tue, 28 Feb 2006 01:06:56 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:3a9a8b159bffb71472a9e29aebdcd489</guid>
      <author>Sean</author>
      <link>http://www.crazyorgenius.com/articles/2006/02/28/lets-get-ready-to-roombaaaaaaaa</link>
      <category>Geek</category>
      <category>Programming</category>
      <trackback:ping>http://www.crazyorgenius.com/articles/trackback/69</trackback:ping>
    </item>
    <item>
      <title>Writing Database Code In Rails: Migrations and Neutrility</title>
      <description>&lt;p&gt;As I &lt;a href="http://torch.cs.dal.ca/~ssmith/?p=40"&gt;recently said&lt;/a&gt;, I switched TigerEvents over from using a MySQL input file to migrations. There were many decisions behind this choice.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;I wanted the code to be database neutral. Using migrations would allow me to automatically support MySQL, PostgreSQL, and SQLite by making changes to one file instead of 3.&lt;/li&gt;
		&lt;li&gt;I know that the database for TigerEvents is going to change at some point in the near future. Rather than write multiple upgrade scripts manually, I could just use the built in migration functions to do it better.&lt;/li&gt;
		&lt;li&gt;If for some reason I make a mistake and problems occur on the production site, it is easier to roll back to a previous version using migrations than dump the database, roll back the code, reload the database, etc. (Note, we still make sure to back up the database, cause not doing that is just tempting fate)&lt;/li&gt;
		&lt;li&gt;Migrations will, in theory, make development easier. Someone made a change to the schema? Just run &lt;em&gt;&lt;strong&gt;rake migrate&lt;/strong&gt;&lt;/em&gt;, and your database is automatically updated. I think this is easier than reinitializing a database and then loading it with data repeatedly (though the second part of this can be handled with Fixtures).&lt;/li&gt;
	&lt;/ul&gt;&lt;p&gt;While an &lt;a href="http://glu.ttono.us/articles/2005/10/27/the-joy-of-migrations"&gt;awesome introduction&lt;/a&gt; to getting started with Migrations has already been written, I feel that the &amp;#8216;database neutral&amp;#8217; stuff is missing. Using my own experience, several items must be taken into account, mostly due to MySQL usage and certain programming that were being used.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Already Existant Database&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;So we already had a database. A somewhat large database with a number of tables. I didn&amp;#8217;t want to spend a lot of time manually creating the migration code from scratch. Was there a quicker way? You betcha. There was a rake task called db_schema_dump which will dump all the table data from your database to a file called schema.rb. So, once we do that, all we have to do is copy this information to the self.up section of a migration and we are done, right? Unfortunatly, it is &lt;strong&gt;&lt;span class="caps"&gt;NOT&lt;/span&gt;&lt;/strong&gt; that easy. The problem is (in my case) that MySQL data types do not necessarily behave the same. Mostly, this deals with constraints, but also has to do with the boolean data type itself.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Constraints&lt;/strong&gt;&lt;/p&gt;


In MySQL, you can do int(8). In rails, this would be translated into something like &lt;code&gt;:integer, :limit =&amp;gt; 8&lt;/code&gt;. However, PostgreSQL only has smallint, integer, and bigint, not constraint values. Therefore, the previous rails code returns an error, as PostgreSQL chokes on the &lt;span class="caps"&gt;SQL&lt;/span&gt; command that rails sends it. Therefore, while it is true that you don&amp;#8217;t need to know specific &lt;span class="caps"&gt;SQL&lt;/span&gt; syntax, you DO need to know what kind of data you can feed various databases. For TigerEvents, I just generalized items and made the following changes:
&lt;code&gt;:integer, :limit =&amp;gt; 8&lt;/code&gt; became &lt;code&gt;:integer&lt;/code&gt;
&lt;code&gt;:integer, :limit =&amp;gt; 1&lt;/code&gt; which translated to tinyint(1) in MySQL became &lt;code&gt;:boolean&lt;/code&gt;
&lt;code&gt;:timestamp&lt;/code&gt; became &lt;code&gt;:datetime&lt;/code&gt; (which gave me extra functionality). Now, I by no means know if these are the optimal solutions, but they did work.

	&lt;p&gt;&lt;strong&gt;Boolean Data&lt;/strong&gt;&lt;/p&gt;


We have a few boolean flags in our database. However, MySQL does not have a boolean data type. Instead, tinyint(1) is generally used. Well, generally that is ok, as ActiveRecord will automatically use tinyint(1) when connecting to MySQL and boolean when connecting to PostgreSQL and SQLite. However, since we started out with MySQL, there were numerous statements such as 
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;@newgroups = Group.find(:all, :conditions =&amp;gt; [&amp;quot;approved = 0&amp;quot;])&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
where 0 is supposed to indicate false. However, since this does not translate to false with PostgreSQL and SQLite, we have a problem. Solution: use placeholders. You are acually allowed to do this:
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;@newgroups = Group.find(:all, :conditions =&amp;gt; [&amp;quot;approved = ?&amp;quot;, false])&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
ActiveRecord takes the value and automatically translates the value into the proper data type, depending on the database type.

	&lt;p&gt;So once again, while you don&amp;#8217;t need to know specific &lt;span class="caps"&gt;SQL&lt;/span&gt; query usage, it is important to keep data types general, and passed values abstracted if you want to create database code which is database neutral (at least for MySQL, PostgreSQL, and SQLite).&lt;/p&gt;</description>
      <pubDate>Wed, 23 Nov 2005 18:12:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:f22c340f171ad04deddfaaba1bccc54c</guid>
      <author>Sean</author>
      <link>http://www.crazyorgenius.com/articles/2005/11/23/writing-database-code-in-rails-migrations-and-neutrility</link>
      <category>Programming</category>
      <category>ruby</category>
      <category>rails</category>
      <category>migrations</category>
      <trackback:ping>http://www.crazyorgenius.com/articles/trackback/41</trackback:ping>
    </item>
    <item>
      <title>World Usability Day!</title>
      <description>&lt;p&gt;Today is &lt;a href="http://www.worldusabilityday.org/"&gt;World Usability Day&lt;/a&gt;. A day to work towards better user experiences in products and experiences. I also decided to use this day as a deadline for the  next release of &lt;a href="http://sourceforge.net/projects/tigerevents/"&gt;TigerEvents&lt;/a&gt;, one of the software packages I work on. 39 closed issues later&amp;#8230;............... a brand new release. All that remains is to migrate my.dsu.ca to a new server, upgrade to the new version, and then all users can revel in&amp;#8230;..... well&amp;#8230;.... errr&amp;#8230;....... actually, I must admit there isn&amp;#8217;t anything major in a regular user&amp;#8217;s perspective.&lt;/p&gt;


	&lt;p&gt;Removing that pesky sidebar proved troublesome (due to Javascripting and &lt;span class="caps"&gt;CSS&lt;/span&gt; issues), and is unfortunatly pushed back (I&amp;#8217;m working on it!). You will see that events actually have their formatting preserved, so no more giant block paragraph that is a pain in the ass to read. There are also some more subtle rearrangements and additions to some options, which I think will make posting events easier for people. Admins get a little more, mostly avoiding huge lists of groups and users when trying to navigate (pagination helper is your friend).&lt;/p&gt;


	&lt;p&gt;And the backend stuff is where most of the changes occured. I personally refactored the code so that the authentication stuff is easier to drop into other code (important since we want to use it in multiple projects. Additionally, I refactored the code to make the entire system database neutral, and to have as much as possible done through ruby. This includes important things such as setup and schema migration. This was the longest and largest changeset I have done in a while, and I am glad it is over. Of course, I need to pass this on to several budding developers so they don&amp;#8217;t make the same mistakes, so&amp;#8230;....... check back at some point in the future.&lt;/p&gt;


	&lt;p&gt;What however, is the future of this project? The individuals working on it (and by that I mean myself and &lt;a href="http://racon.net"&gt;Oliver&lt;/a&gt;) have decided we want to refocus on putting the &amp;#8216;my&amp;#8217; into the &amp;#8216;my.dsu&amp;#8217;. Upcoming, expect to see new skins, a better actual interface devoid of those confusing multiple columns, and other things that will help the &lt;span class="caps"&gt;USER&lt;/span&gt; kick ass. So think of this World Usability Day not as a day for which we bring out a ton of usability fixes, but a day where we begin to devote more attention to where it is needed.&lt;/p&gt;


	&lt;p&gt;You know, after we take a much needed break.&lt;/p&gt;</description>
      <pubDate>Thu, 03 Nov 2005 19:44:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:7a03c0ef0eec803030598be96ae642fc</guid>
      <author>Sean</author>
      <link>http://www.crazyorgenius.com/articles/2005/11/03/world-usability-day</link>
      <category>Programming</category>
      <category>Projects</category>
      <category>ruby</category>
      <category>rails</category>
      <category>usability</category>
      <category>refactoring</category>
      <trackback:ping>http://www.crazyorgenius.com/articles/trackback/40</trackback:ping>
    </item>
    <item>
      <title>Woo! TigerEvents 0.5.0 Public Release</title>
      <description>&lt;p&gt;Finally, after long hours, little sleep, and lots of work, the 0.5.0 release of TigerEvents, code named &amp;#8220;It&amp;#8217;s Finally Our So I Can Take A Break&amp;#8221; was released the other day on both &lt;a href="http://sourceforge.net/projects/tigerevents"&gt;Sourceforge&lt;/a&gt; and &lt;a href="http://rubyforge.org/projects/tigerevents/"&gt;Rubyforge&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;The focus of this release was getting all the proper administration interface stuff working properly (sorry front end only users) and trying to document it enough so a person can take the code, set it up, and run it on another machine.&lt;/p&gt;


	&lt;p&gt;Now that the initial file release is out, all I have to do is upgrade my.dsu.ca (merging is going to be a pain in the ass), work on 0.6.0 (which involves merging my development branch back into the trunk, ugh), and redo that ugly, ugly interface.&lt;/p&gt;


	&lt;p&gt;Regarding the interface, I plan to do something even more minimalistic than some people&amp;#8217;s ideas (the one&amp;#8217;s I am getting are awesome though, don&amp;#8217;t stop). It will, at the very least, grant more open space, as opposed to cramming everything important into a small area. A primary advantage of starting out small is that it will be simple (except for all the XMLHTTPRequest stuff I need to do), and if people want more, I just add more, instead of scalling back and forth.&lt;/p&gt;


	&lt;p&gt;Oh, and I will do my best to get rid of that blinking text box.&lt;/p&gt;</description>
      <pubDate>Fri, 07 Oct 2005 12:42:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:200181e6942ded74440f083716e434d1</guid>
      <author>Sean</author>
      <link>http://www.crazyorgenius.com/articles/2005/10/07/woo-tigerevents-0-5-0-public-release</link>
      <category>Programming</category>
      <category>Projects</category>
      <category>ruby</category>
      <category>rails</category>
      <category>tigerevents</category>
      <trackback:ping>http://www.crazyorgenius.com/articles/trackback/36</trackback:ping>
    </item>
    <item>
      <title>A License To Bitch</title>
      <description>&lt;p&gt;As already &lt;a href="http://torch.cs.dal.ca/~ssmith/?p=29"&gt;mentioned&lt;/a&gt; I have been working on a project called TigerEvents, which powers the &lt;a href="http://my.dsu.ca"&gt;my.dsu.ca&lt;/a&gt; website.&lt;/p&gt;


	&lt;p&gt;This project, written entirely in &lt;a href="http://www.rubyonrails.com"&gt;Ruby On Rails&lt;/a&gt;, took 4 part time students 2 months to code a working, publicably usable beta. Pretty sweet, since some of us had other, paying, supposedly full time jobs on the go as well, and all of us had other responsibilities.&lt;/p&gt;


	&lt;p&gt;The &lt;a href="http://my.dsu.ca"&gt;my.dsu.ca&lt;/a&gt; website has gotten 102430 requests since Aug 25. Not bad I suppose, but I think we can do better than that.&lt;/p&gt;


	&lt;p&gt;The main problems? I know it, you know, it&amp;#8217;s the visual layout. Sure it sucks. A layout like this is when a graphical artist that is supposed to do work totally flakes out and techies are left in charge. Also high up on that list is usability. Some things work well, some things&amp;#8230;...... not so well (hey, it&amp;#8217;s beta). So how do we fix this? Well&amp;#8230;..... I am hoping that you, the public, the intended audience, the actual, non-involved &lt;span class="caps"&gt;USERS&lt;/span&gt; could give me a hand here. Let me know what you like, let me know what you don&amp;#8217;t like, let me know what &lt;span class="caps"&gt;YOU&lt;/span&gt; would like to see.&lt;/p&gt;


	&lt;p&gt;Go ahead, chew me out, rip it to shreds, praise it, stomp it, love it, hate it. Just give me something I can use.&lt;/p&gt;</description>
      <pubDate>Tue, 04 Oct 2005 21:16:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:b784f23e30d0ddbc65836896fff908aa</guid>
      <author>Sean</author>
      <link>http://www.crazyorgenius.com/articles/2005/10/04/a-license-to-bitch</link>
      <category>Geek</category>
      <category>Programming</category>
      <category>Projects</category>
      <category>Work</category>
      <category>ruby</category>
      <category>rails</category>
      <category>tigerevents</category>
      <trackback:ping>http://www.crazyorgenius.com/articles/trackback/35</trackback:ping>
    </item>
  </channel>
</rss>
