Updated: http://time.onrails.org 3

Posted by Daniel Wanja Sat, 14 Jul 2007 04:46:24 GMT

Time.onrails.org – a simple time tracking application has been updated.

  • Time shifting – Let’s assume you entered time from 08:00-12:00 13:00-17:00. Then you notice that you effectively took a longer lunch. Simply edit the 12:00 to 11:45, then tab to the next field and change 13:00 to 13:15 and press enter. In the same way, if you didn’t come back from lunch at all that day. Simply clear out the 13:00-17:00 field and press enter. This will delete this time slot.
  • Running Timers – When a timer is running (i.e. 11:30- ), the time line (day) is highlighted in green. That way it’s easy to detect which timers are still running.
  • IE6 Support. Time entry was pretty broken with IE. This should have been fixed. I haven’t installed IE7…so I assume it doesn’t work there.
  • Rails Migration. Behind the scenes Rails was migrated from 1.1.6 to 1.2.3.

20070713_timeonrails.jpg

Please let me know if you find anything unusual.

Enjoy! Daniel.

Certified Flex 2.0 Developer. 16

Posted by Daniel Wanja Wed, 07 Feb 2007 07:03:00 GMT

Last week I passed Adobe's Flex 2 Developer Exam. Now what's that got to with Rails. Like you may have seen in my previous post I like both technologies, Flex and Ruby on Rails, and I see the strength of both coming together and allowing to build some really cool applications. Now WebORB for Ruby on Rails will play a big element in tying both together. WebORB is not the only way to build a Flex app on top of a Ruby on Rails server, but it provides an efficient mechanism to transfer data between the UI and the server. Beginning of 2005 with Lee we wrote Flex::OnRails, a now "deprecated" (as in don't even try to use it) framework, that was build on top of AMF4R. At that time combining Flex and Rails was an odd match, due to the pure enterprise nature of Flex with it's very high price sticker. Now that Flex is free, I can see many projects benefiting from integrating both. It is true that many web sites don't need a Rich User interfaces that go beyond what can be achieve with javascript. There are many javascript based websites that are incredible. See http://www.fluxiom.com/ or http://wufoo.com/ as two refined examples. However with Flex it's often faster to build an application than with html and javascript, the applications often perform better, are easier to skin for a developer, the code is more readable and can support very large projects. Don't take me wrong, I love the Prototype library and Scriptaculous is really cool, and I will do many more "pure" Ruby on Rails projects, but at least now there is a serious alternative that I will consider in many scenarios.

Now before you ask why did I even bother doing a certification, let me answer it. The first reason is that it forces me to read and study material that I would never have the patience to read otherwise as there is always too many cool things to try out. Now everyone has it's own style of learning. I started Rails by reading all the rdoc that was available and I also love to read the source code. The second reasons is marketing, and this worked really well for me in the past and opened several doors. Personally, I wouldn't value a developer by it's certification but rather by the projects he worked on, the code he writes and it's personality.

I haven't found much information out there on the Flex certification which is pretty new . The Exam Preparation Guide by Adobe provides an overview and there is a more detailed version on the net which is not the official one. I found lot's of information in Adobe's online documentation and in the Flex 2, Training from the source book.

So be ready to hear a little more on Flex and Rails on this blog.

Time.onrails.org now with Blinksale integration.

Posted by Daniel Wanja Thu, 05 Oct 2006 22:36:00 GMT

Blinksale is the easiest way to send invoices online. Now time.onrails.org is the easiest way to create Blinksale invoices. Check http://time.onrails.org/doc/blinksale/blinksale.html for more details.

Blinksale API 12

Posted by Daniel Wanja Mon, 02 Oct 2006 21:52:00 GMT

Today Blinksale published it’s data API. See http://www.blinksale.com/api for the details.

It’s good news for time.onrails.org as now we can use the api to generate a draft Blinksale invoice with one click. I have started coding the integration and expect to release it once I have completed extensive testing.

In short, time.onrails.org interacts in the following way with Blinksale:

  1. get list of client names
  2. get highest invoice number
  3. create invoice

Let’s have a peek at how this is implemented.

Accessing Blinksale

A Blinksale class is provided to interact with your Blinksale data. You need to provide your blinksale id, username, and password.

@blinksale = Blinksale.new 'blinksaleid', 'username', 'password'

In time.onrails.org we will let you define your Blinksale credentials once to avoid having to retype them each time you create an invoice. Storing the password is optional, and if not provided it will be prompted each time. A use_ssl flag can also be specified if you have a paid Blinksale subscription. This is of course recommended for security reasons.

Get the list of clients

clients = @blinksale.clients
names = clients.collect { |c| c.name }

Get the highest invoice number

invoices = @blinksale.invoices
invoices.collect{|invoice| invoice.number}.max  

Create An Invoice

invoice_data =  BlinksaleGenerator.to_xml(INVOICE)
new_invoice = @blinksale.invoices.new invoice_data
new_invoice.save

BlinksaleGenerator is a time.onrails.org class that helps creating the following ‘invoice’ xml.

<?xml version="1.0" encoding="UTF-8"?>
<invoice>
   <client>http://#{blinksaleid}.blinksale.com/clients/#{@client_id}</client>
   <number>34</number>
   <date>2006-09-27</date>
   <terms>30</terms>
   <currency>USD</currency>
   <lines>
     <line>
       <name>Consulting</name>
       <quantity>2.0</quantity>
       <kind>Hours</kind>
       <unit_price>150.00</unit_price>
       <taxed>false</taxed>
     </line>
   </lines>
 </invoice>

The integration is pretty straight forward. Don’t you think? Thanks Scott and your team for this cool application. To find out more on the blinksale api see the online documentation at http://www.blinksale.com/api

UPDATED: time.onrails.org - new features, fast server. 2

Posted by Daniel Wanja Tue, 05 Sep 2006 21:08:00 GMT

Time.onrails.org, the simplest and most efficient time tracking application out there, just got better!

Speed: We moved it to a new server. The application is now really responsive!
More Projects: We also took the opportunity to extend the number of projects you can manage from 4 to 12 projects and sections from 12 to 52.
Sorting and Filtering: Added new functionality like project reordering and filtering.
Project Sharing: You can now share a read-only view of your projects for your customers or coworkers.

So, no time to loose, go try it out and let us know what you think.

Dreamhost out, Slicehost in. 20

Posted by Daniel Wanja Fri, 04 Aug 2006 21:00:00 GMT

I must say I like Dreamhost but we had too much downtime recently. Even if we offer time.onrails.org for free it must be up and running when the users need it. This is especially true for a time management application. When you are done with your workday, one click and go home. Lee and I are using time.onrails.org daily for all of our customer projects and recently it has been down once too many time. In addition it’s getting really slow, but then again with a $9 a month shared host plan, I must admit we went already a long way. So time to move on and find a better solution.

We went the last two days on the search for a new hosting provider that would provide dedicated or virtual private servers. There is lots of offerings out there and good information. Lee stumble upon slicehost.com and liked the idea of a small hosting company, that diggs Ruby on Rails, and is about to be launched. They are small and hopefully will work hard to make it. I was not too convinced so we decided to contact them, and had a nice chat with them over their campfire support room. See the campfire transcript. I gave them a hard-time, but they provided us with lots of good information. Check them out if you want to find out what’s going on at slicehost

Transcript: http://onrails.org/files/20060804_slicehost.html

So time.onrails.org users, thank for your patience. In the next month we will move over our application to a way faster environment.

Update: time.onrails.org has been moved. If you sign up with slicehost because of us, feel free to say we referred you. :) Just use this referrel link.

Update: time.onrails.org. Add Notes to your time entries! 2

Posted by Daniel Wanja Mon, 08 May 2006 21:58:00 GMT

Updated time.onrails.org The new functionality is
  • Add notes to your time entries. You can now add notes from the Dashboard or your project pages.
  • Improved CSV export.
Some functionality I am considering next:
  • fixing the rendering in Internet Explorer. I just saw this bug since I installed Parallels on my MacBook pro.
  • Blinksale integration, I started to write the UI to submit a time section to generate an invoice via Blinksale, but I am still waiting to get access to the api. Unfortunatly I didn’t make to the beta of the API. I even tried to convince Josh Williams from Firewheel Design, to let me in on it, but without success. Thanks Josh for the quick response anyhow!

Update: time.onrails.org. Capistrano Rocks!

Posted by Daniel Wanja Wed, 19 Apr 2006 21:50:00 GMT

Updated time.onrails.org The new functionality is
  • A first version of data export to text, csv, and xml. See the export icons in the bottom right of the projects and dashboard page.
  • A mini system message board. So we can leave you a message, i.e. for planned system maintenance downtime, or to announce new functionality.
  • The latest version of the Gruff Graphs

I realized that data export needs some more work as in Safari the xml doesn’t appear unless you do a view source and the csv doesn’t load Microsoft Excel directly nor adds a default .csv extension to the generated data.

We will deploy new functionality or fixes issues once a week if possible. Note that we are going to keep this application simple, but any suggestion is welcome. Contact us at time@onrails.org.

I deployed the application using Capistrano. It is pretty stressless and consists of the following steps:
rake remote:disable_web
rake remote:deploy_with_migrations
rake remote:enable_web

In this case we had a database migration, the new ‘messages’ table.

The only issue that persists is that the application doesn’t start right away after the deployment and seems to hang for about 10 minutes before comming back to life. The application is hosted on Dreamhost and we don’t have full control on how the displatch.fcgi processes are launched.

It’s now up and running, so enjoy!