Draconis Software Blog

The invotrak blog

The invotrak blogJust a quick note to let you know about the new invotrak.com blog, launching today. If you’re not already aware, we launched a new online invoice-tracking service recently, which helps freelancers and small-businesses keep track of the invoices they send to clients. The service is free, and we’ve seen quite a few people join up.

The blog is to keep much of the invotrak-related content in one place (without cluttering up this blog). It’ll have invotrak-related news (new features, notices, etc), as well as original content we think is of interest to users. If you’re interested in freelancing/entrepreneurship/etc, you may find the invotrak blog interesting.

Application development on the iPhone

Just like every other techie in the world, we recently got our hands on some iPhones.  And, as software developers, our first thoughts were: what can we write for this thing?  Well, as everyone else has already pointed out, you’re pretty much limited to writing web apps for the iPhone only, but this doesn’t impact us as much: we’re doing web apps exclusively at the moment anyway!  I’ve been looking into creating an invotrak app for the iPhone recently, and believe I should have something available in the near future.

Craig Hunter has a good article up on his site that discusses some of the limitations of creating applications for the iPhone, though his standpoint is coming as a traditional Mac developer (and he makes great points: it doesn’t make any sense for a user to connect to a web app to input to-do list items):

Business aspects aside, the main issue I see as a traditional developer is that iPhone web app development is still very limited. Outside of some viewport settings, a couple special link types (really only the “tel:” link is new), and some new “-webkit” style attributes, there is little about making iPhone-specific web apps that differs from generic web apps. And that’s possibly the most disappointing aspect of all from my standpoint. Apple’s announcement states that “developers can create Web 2.0 applications which look and behave just like the applications built into iPhone”, but that’s not the case.

I believe there’s a lot that can still be done with the tools we’re given, and I look forward to Apple creating more tools in the future.

Capistrano deployments and MediaWiki

A friend alerted me to an article he put together recently regarding deployments in a custom build environment.  It’s intriguing, as my own software company has a similarly-setup system.  The idea is to keep logs of deployments on a MediaWiki-powered internal wiki automatically, allowing developers to see what repository revision was rolled out, the build version number, along with other salient information.

For our internal processes, we wanted to keep a running list of the code release version (such as “0.9.1″), the SVN repository revision that was deployed, the timestamp Capistrano used as the folder name in the Releases directory, and a more human-readable date and time of deployment. The first field, the release version, is an arbitrary string given by the person making the deployment; Capistrano prompts the deployer for this string as the first step in the deployment. The repository revision and release timestamp are both provided by Capistrano, and the human-readable date is provided by Media Wiki.

Some additional coolness: automatically linking to BugZilla bug numbers whenever they’re referenced in the commit messages, and automatically creating “readme” files containing commit messages for each new build.  Check out the article here.

5 Key Points of Great (Facebook) Applications

FaceReviews.com looks at the common traits in successful Facebook applications: Branding, Engaging, Viral, Useful, and Smart (or BEVUS, admittedly not the best acronym ever devised).  Although they’re looking at Facebook apps in particular, these traits more broadly apply to successful web applications in general.

I think some of these characteristics are sometimes looked at as being more than others. For example, being “viral” is considered an important part of bringing a steady flow of new visitors to a site. However, equally important in my mind is filling a real need for the user, and doing it in an intelligent way.

I also think these points nicely show the melding of the big picture ideas with the smaller, more technical details. Specifically, “branding” and “engaging” apply to the general concept of a site, but shouldn’t come at the expense of how the site handles the design and interface of the smaller details (the “useful” and “smart” aspects).

Remote editing Ruby code and timestamps

This is a programming quickie, but can be one of those gotchas if you don’t know what to look for. As I mentioned recently, I had to temporarily switch back to the Windows side of things when my MacBook died, and in doing, had to learn new tools for getting my work done. One of those tools was to replace Cyberduck, which I used to open a remote connection (via SFTP) to edit files live. Well, I was recently working on a Ruby on Rails project, and I noticed a strange side effect: whenever I would edit a file (a view, controller, etc), and hit reload in my browser, I never noticed the change. It could be the simplest or most complex, but it never seemed to appear unless I restarted Mongrel.

Turns out the problem was actually quite simple: WinSCP, the replacement I was using for Cyberduck, was set to preserve timestamps on files by default. Mongrel checks timestamps of files to determine whether to reload them live (in development mode, mind you, where I wasn’t doing any caching), and these timestamps need to be changed by WinSCP in order to show up to Mongrel.

To fix the problem, just click the Preferences icon in WinSCP, click the Transfer selection on the left, then uncheck the “Preserve timestamp” option under Common options. This should now update timetamps correctly and your changes should appear to Mongrel. Enjoy.

Updated Draconis Homepage

Check out the updated Draconis homepage - it’s quite a bit different from before, with no flash!  The remaining RSP pages and other related content is still the same, but that will be converted over at some point in the near future.  I spent quite a bit of time on this design, so be sure to let me know your thoughts!

My MacBook died

MacBookI’m very sad - the logic board on my MacBook died on me several days ago. I’m very glad I bought the AppleCare extended warranty, though, as it was almost exactly one year and one month since I bought it (and would have been one month out of warranty had I not purchased the extended plan).

It’s currently being repaired now, which means I’m stuck using an old machine until I get it back (an aging Windows Pentium 4 I had). It’s tough going back to Windows now that I’ve been used to the Mac for so long, but I’m still able to get work done. I’m using Gmail for my email (I had set it up to automatically download all of my work email to Gmail before my Mac died, so I have most of my important messages there), the e text editor, which is very similar to TextMate, WinSCP (to replace Cyberduck), and Putty for my terminal.

When the MacBook died, I was getting very nervous, as I had a deadline (today) for a client. I brought the laptop to the Apple Store nearest me, and they helped me get the documents I needed off the drive before sending it in for repair (they pulled out the drive and inserted it into another MacBook, as I had FileVault turned on - big mistake - where I was able to plug in my external USB hard disk and trasfer the docs I needed). That was way cool, and extremely helpful, as I wasn’t able to get it to boot into target mode.

So, long story short, I should have it back early next week. First problem I’ve had with it, and luckily I had all my important documents backed up (and I met my deadline!). So the process was about as painless as it could have been, and I should have it back early next week.

Update: I got my Macbook back from Apple.  It powered on and was working fine until I went to plugin the power adapter.  Turns out the light on the power adapter (green or orange) doesn’t light up, and it doesn’t charge my battery.  Very frustrating, so I brought it back to the Apple Store, which they are now repairing (again).

Bad Webapp Names

There’s a funny article up on ReadWriteWeb about some of the worst webapp names, though only 10? Almost every day there’s a stupid name coming across the TechCrunch wires. But on the flip side, you have to give a lot of these people credit: coming up with a name for a product is very difficult.

Case in point: for a long time, we’ve been calling our monitoring software RSP (which, for those paying attention, doesn’t stand for anything). The name is forgettable and boring, and really doesn’t convey what the product is all about. So, in a teaser for the future, we’ll be ditching the name RSP in favor of something else. It’s a bit more web 2.0-ish, it’s kind of fun, and it’s different. I won’t say just what it is yet, but it’s coming soon. :)

Linux 2.6.22 Released

LinuxThe latest and greatest Linux kernel (2.6.22) has just been released. Of the numerous interesting new features, I’m especially excited about two things: a new way to measure approximately how much memory a process is using (via the process footprint measurement facility), and the ability to measure file timestamps using nanoseconds for greater precision.

In addition, there’s a new wireless stack, a new Firewire stack (very cool), and a slew of new drivers and other changes. Check out details about this release here, then download the kernel. Enjoy!

How I work: Web browsers

Camino LogoI was thinking I’d start a new thread on this blog about some of the things I do on a regular basis to get work done. Lately (like since the release of the new Safari beta), I’ve been trying out different web browsers to find one that really fits. For a long time, I was using Firefox on my Mac and was doing just fine, until I really gave Safari a chance and realized how much FASTER Safari is over Firefox (and how much that really makes a difference for me).

Using Safari was good for some time, though my biggest issues were the plugins (I really need a good ad-blocking program, and SafariBlock seemed buggy and missing some features), and site support. Since many sites are setup to allow only the most popular browsers, certain features weren’t available within Safari. With Apple’s latest version of the browser being released for Windows as well (most likely in a ploy to get more developers on board for the iPhone), this will probably change. But for now, I found Firefox was still a better choice for me over Safari.

I then tried out Camino (which is what I’m using currently). Camino is different from Safari in that it uses the same rendering engine as Firefox (so pages that work in Firefox should also work in Camino), though has a much more MacOS-friendly interface than Firefox (and seems a bit faster). So far, I’ve been very happy with Camino, and I like the built-in ad-blocking feature. One downside, however, is the lack of a Javascript console. Since I do a lot of web development, I’ve come to rely on Firefox’s Javascript console (and the Firebug plugin), so unfortunately, I still need to use Firefox to do this.

Hope you found this useful. I’d like to turn this into a regular thing: discussing what tools I use in my work, why I choose to use that tool, etc.

« Older PostsNewer Posts »