Posts Tagged ‘apps’

Don’t Stand Still

Wednesday, March 31st, 2010

Too often developers allow their applications to remain stagnant after launch. This is not something I want to happen with TimeTable. A couple days ago I pushed a small update which gave immediate access to a simple API allowing developers to get data into TimeTable. The biggest request I’ve heard from people is that they want to be able to use a timer outside of TimeTable. This is now being opened up with the announcement of the first companion TimeTable application, the TimeTable Work Timer.

Because TimeTable is written using the Cappuccino web framework and Objective-J it closely resembles the native programing environment on Mac OS X (Cocoa). This makes it extremely easy to port software from one platform to another. As a result I ported the work timer from TimeTable to Cocoa. The result gives you a simple, stand alone, work timer which integrates seamlessly with TimeTable.

The timer itself looks like this:
TimeTable Work Timer

Once you close the timer you will be prompted if you want to send the data to TimeTable. If you click yes TimeTable will load up and you will be prompted to select the project you wish to add the timed work to.

TimeTable Once you select the project the you can add the work time just like you would any other work time in TimeTable.

Remember, this is the first version of this timer, I will continue to work on it adding more functionality. Since I’m opening the TimeTable API I hope other developer will also build TimeTable integration into their products. If you have a favorite timer application you use for your work, let them know you want TimeTable integration.

If you’re a developer you can read more about the TimeTable API at http://timetableapp.com/developers.html

This API will continue to grow with time, so more features will be added and better integration will be supported. If there is something specific you would like to see also feel free to email support!

The new TimeTable downloads page is located here, or you can download the new TimeTable Work Timer directly.

Update: added support for Mac OS X 10.5

3… 2… 1… SHIP!

Saturday, February 20th, 2010

Well, almost. So the purpose of this blog post is to let you know I missed another internal deadline. There have been a few new problems that arose with TimeTable. A couple were technical related, a few real life delays, and then there is the matter of me wanting to have  every feature I could think of in the product.

So let me give you a small update on TimeTable itself before I talk about shipping.
I’m so proud of this product.  I went back to RC2 the other day just to see how much work I’ve actually done and I was blown away. Some companies would ship RC2 as a finished 1.0 product and the GM I’ve got running as version 2.0. So the first thing I did that the user will love is updated the deadline picker. When you select the deadline for a project you can now use the text date picker control, or the calendar view.

The next thing noticeable is the interface improvements. I’ve gone ahead and added a boarder around the top of windows in order to make them stand out from the background below them. This means I can essentially remove most of the unneeded dark HUD windows in favor of a more consistent interface. Small things like a auto-completing textfield was added. So when you assign a client to a particular project you no longer have to type the name perfectly. I also added some hooks in the application for account renewal. So basically when you login and your account is about to expire you get alerted. You’ve also got a way to renew your account from within the application.

A lot of work has gone into the tables themselves. Your projects and clients are not re-orderable. So you can simply drag a project or client from the sidebar and change the order of it. I’ve gone above and beyond that though! You can also drag work time and expenses to different projects thereby moving it! The same holds true for clients too. If you drag a project from the clients view to another client the project is then associated with the new client. The behavior is a bit difficult to describe, but it’s very intuitive once you see it. With drag and drop there is also sorting. Your projects, work data, and expenses are now sortable by clicking the header for each column. In addition to sorting there is also resizing. If you need more or less room to display your data the tables are all user resizable.

Obviously the point of this release is to focus on bug fixes, and that’s all I’m going to focus on for now.

What you probably care about most is the shipment date though, so lets talk about that. I was ready to ship TimeTable 2 weeks ago until I found one bug in the latest builds that I can’t live with. Once that is fixed I’m shipping the product. I hope to also ship with a series of screencasts to help you, the users, easily jump in and start using TimeTable. So what about a rock solid date? I simply can’t give one. I’m pushing for the end of March at the latest, but it’s up in the error.

I really want to get the new Gold Master in the hands of the users, but with the renewal system tied in I simply can’t do that.

Thank you all for the support.
-Randy Luecke

Ending a year and missing deadlines

Wednesday, December 23rd, 2009

It’s not uncommon for software engineers to miss deadlines; in fact it’s far too common. As the end of the year rolls around I wanted to share some internal stuff regarding TimeTable. TimeTable development began in early March of 2009. Since that data I set an internal deadline for myself of shipping TimeTable 1.0 by my birthday, December 31st of 2009.

When I began TimeTable development I thought I could write a web app using PHP, XHTML, JS (with jQuery), and CSS. For the most part this was a decent application. The problem I had with using traditional web technologies became much more prevalent when I reached several thousands of lines of code. It wasn’t pretty. If I needed to change one line of code I could spend fifteen minutes looking through a single file for the javascript, or CSS if it was a style that I needed to change. Then it could have been a style that I needed to change but the style was set in javascript instead of CSS. Some people would say I was just sloppy with my code, and they would be right, to an extent. But in the process of being sloppy I uncovered a sad truth in the use of jQuery and traditional web technologies for web application development: It simply doesn’t work. jQuery is a javascript library designed to be used for websites, not applications. Then as I approached the launch of a product I began to spend more and more of my time squashing browser bugs. Every browser had its own problems, and it was unmanageable.

It was hard to bring myself to rewrite something which I had put so much time into, but it was painfully obvious I wasn’t really happy with where TimeTable had gone. So it was around the middle of May I found myself looking for new options. It was about this time that 280North introduced a new product called Atlas which took the internet a storm at the Future of Web Apps conference. Atlas in short is a web app Integrated Development Environment (IDE) for the new web application framework Cappuccino. Coupled with the new Aristo theme designed by Sofa I became very interested in Cappuccino when developing my 2nd iteration of TimeTable.

I wasn’t totally sold on Cappuccino at first. Cappuccino is designed to abstract you from the “web layer” you’re working on. That is, you should never use traditional web technologies (HTML, CSS, Javascript) to design your app. Instead Cappuccino actually requires you to use a whole new language called Objective-J. Based off Objective-C which is used almost exclusively on Mac OS X and the iPhone Objective-J takes a little bit to get used to. Objective-J is actually compiled down to javascript later on using either a parser on the browser or on your development machine if you’re putting out a release version. Objective-J is a strict superset of Javascript though, which means any bit of javascript you write is still perfectly valid. Because you’re sitting on another layer I wasn’t sure how comfortable I would be using it. I explored other options like SproutCore which Apple uses for their MobileMe web applications and GWT which Google uses, but each of them had their own fall backs. In the end 280Slides and Atlas sold me on Cappuccino.

I spent the next several months hacking together some ugly code. It got to the point where I began to wonder if using such a cutting edge technology was such a good idea for TimeTable. Cappuccino was obviously incomplete, specifically  missing a key component: the TableView! How could I actually choose a framework which didn’t even have a component necessary for the product I was going to ship? Well after a few days of stalling I went and looked to see what SproutCore was doing about the tableview, only to find that Sproutcore through it would be a good idea to ship a 1.0 framework without a decent method of displaying tabular data. The TableView for Cappuccino had already seen quite a bit of work from 280North, but development had kind of stalled a little bit. It was at this time that I contributed my first bit of code to an open source project. I brought the tableview up to spec enough that it could actually display data as needed and look decent too. After several weeks of work I push the new CPTableView up to my Cappuccino repository and it was merged into the main branch. Since then, several other parties have contributed features including theme-able cells (included the selected state) and inline editing to the TableView. I also added things like keyboard support, better support for scrolling to rows and columns, and automatic resizing of columns. You should see these features merged into the main Cappuccino repository come the first of the year. The TableView is a key component for many different projects so don’t expect development to stop; I’m sure many people will contribute to the TableView and TimeTable will only get better because of it.

Over the many months of working with Cappuccino I gained access to the private Alpha of Atlas. Before the beta went out I got to see exactly what Atlas could do. Again, I was impressed, but more so because of what I saw I could do with my application after I compiled it. It wasn’t until the public beta of Atlas shipped that I was able to talk about it, but I saw TimeTable running on the desktop, side by side with my native applications. It’s pretty amazing to see it in person and got my head spinning with ideas. It was at this time I knew my “gamble” with Cappuccino had actually paid off.

As the end of the year rolls around it’s become obvious to me that I won’t be shipping the final version of TimeTable by my internal deadline of December 31st.  That’s okay though because TimeTable has simply blown me away. I couldn’t be happier with my decision to move TimeTable to Cappuccino and likewise I couldn’t be happier with the way TimeTable has turned out. I planned on shipping the 2nd release candidate today however there are a couple features I want to implement. Once the 2nd RC is out the door I’ll be locking the feature set down for 1.0. Meaning, there will be no new features added to TimeTable between RC2 and the Gold Master (GM). Gold Master will be the version I ship which will be sold. After I ship the GM I will be focusing my effort on getting the TimeTable website which has been sadly neglected up to spec with the application. This includes getting pricing information, frequently asked questions, up date help files, screenshots, and screencasts online.

I’ve already begun developing a feature set for a 1.5/2.0 release, which will of course be free to most TimeTable users (more details about this when the pricing information goes up). I want to thank all of you who have supplied feedback for TimeTable. You will be receiving coupon codes when TimeTable ships for your discount. I also want to thank all of you who have provided support, you’ve been invaluable. TimeTable will ship as a rock solid product and this couldn’t have been done without the Cappuccino community, and all the support I’ve received from you guys.

I hope you all have a happy holiday season.

Thank You,
Randy Luecke

The Future of Applications

Monday, July 20th, 2009

Applications have come a long way in the last 30 years. From punch cards, to a simple command line interface, to the first graphical user interfaces, to high end editing of photographs and videos. We said “wow” when we watched Steve Jobs introduce the Macintosh in 1984 and we said “wow” when we saw Steve Jobs demo the iPhone in 2007. What makes hardware great is not how fast the processor runs or how shiny the box is. Software makes hardware worth spending money on. Software engineers have been through it all: punch cards, the command line (we’re still there), the mouse, pretty animations. It really is amazing how quickly things have changed but what’s even more amazing is how quickly things are still changing; it’s exciting! So where is the future of applications? Why is the future so exciting? What does the future have in store for individuals, businesses, and enterprises?

(more…)