Free version available
Magnifying Glass

Blog archive for July, 2008

Syndicated Posts

FaceBook

Twitter

OK, I admit I was wrong – charting in Rails Redux

Thursday, July 17th, 2008 by James

After messing around with the Google Charts API for a good 12 hours or so, I realised very quickly the limitations of the solution. Although this system does have its positive aspects, there were a few omissions that resulted in us moving way from Google Charts.

  • Inability to handle negative numbers
  • Axes labels that are set based upon spacing (i.e. at the bottom, half way up, at the top), not the data it represents
  • Inflexibility when it comes to tooltips / displaying the values at a particular point

This first of these can be worked around with a hack which can be seen here, however although this works well for relatively stable, administrator created graphs, it gets a bit hairier when we are graphing user data. And offsetting data just to get it to display correctly is just, well, painful (despite the fact that I had some pretty nifty calculations happening to find the zero-point line on a scale of 0% to 100% between the maximum and minimum values to be graphed – not that this helped at all or anything).

The second is a bit of show-stopper – basically you define where the axes are placed but the number of items that you provide Google. This means that giving it (0, 50, 100) would set 0 at the bottom, 50 half way up and 100 at the top. (0, 25, 50, 75, 100) would break the axes into five regions. Ugly.

The third… well. I was hoping to get at least a little bit of the way towards really nice Google Analytics type graphing interaction, but no dice, not here.

So I went back out onto the market as it were to find other alternatives that would not add additional strain onto the server. Flash based chart tools best fit into this category, and boy did I luck out.

I found the Open Flash Chart project, which is damn near perfect for what we require. All processing is done on the user’s machine through the embedded flash file, which gets passed data from our Ruby on Rails application.

A nice little plugin / Rails wrapper for Open Flash Chart is provided by the good people at PullMonkey, who ported the PHP wrapper to Rails. This means that we now have graphs the handle negative numbers, have automatic axes label generation, and little tooltips showing the specific value of a day on hover. So basically we now have graphs that a much more user-friendly, being generated by the wonders of Flash.

So the lesson I have learned – dig a bit deeper before deciding on a solution!

Graphing and charting data in Ruby on Rails

Tuesday, July 15th, 2008 by James

Despite my documented tendency to be a secret squirrel about what we are doing, I believe that I can let this particular cat out of the bag. We are going to be using graphs to do something within the site at some stage – no surprises here really as we are dealing with numbers so it is really a logical progression. As we have also mentioned previously, we are using Ruby on Rails as the framework to develop PocketSmith.

There are a number of different methods of generating graphs within rails web applications – the two that I am most familiar with (but have never implemented properly) are Gruff and Scruffy. Both of these require the installation of the RMagick / ImageMagick libraries onto the machine that the web application is running on. I was looking into how to go about this tasks and just about to start pounding my console, but then I stumbled upon the Google Charts API.

Basically, Google pumps out a lot of charts and graphs for its applications, and they have opened up the API (or, part of the API) to the community at large. The charts that are created are generated from a URL, which you just throw into an image tag and you are good to go.

Fortunately, there are also a few ruby / rails wrappers for the use of the chart API, making things extremely simple:

So with these in mind, I had a decision to make. Now I am not one for things being difficult, so I went for the first option on the list, Google Charts. The reason for this choice is that the documentation is very clear and linear in nature, examples are concise, and it all feels intuitive. This means I could get a chart up and running very quickly; although the syntax is fairly similar between all of the listed Ruby on Rails plugins. Additionally, the Google Charts plugin is installed as a gem as opposed to cluttering up the PocketSmith plugins folder too much. And the documentation is, sorry, far prettier than the RDoc’s for the gchart’s :D
Now we have charts to play with. Although they do not appear to be as flexible as Gruff or Scruffy, they do make up for this shortcoming in a variety of ways:
  • No additional libraries to install beyond the gem / plugin for the ruby wrapper of your choice
  • No load on the application server when generating the graphs – Google does it for you
  • Simple configuration and well documented API
  • Completely free use of the API, with up to 250,000 requests in a day being available without notifying Google
However as Google is generating these charts from the data sent via the URL, and offering the service for free (and they are a publicly owned corporation driven by profit at the end of the day) some people are concerned about the storage and use of this data. Google states in the Google Chart API FAQ:
The chart data included in the HTTP request is saved in temporary logs for no longer than two weeks for internal testing and debugging purposes.
Of course you should understand that if your chart appears in an image tag on a public webpage it could be crawled.
Sufficiently vague, yes. Enough to be concerned about what they are doing with the data? Not really, but then again I am not the paranoid type. Talk to Francois about that.

The art of blogging!

Monday, July 14th, 2008 by Francois
The PocketSmith blog is finally out there! James, Jason and I will now have the responsibility to inform people about what we are working on. It might actually help me proving I am not playing video games all day long but I am part of something a bit more exiting and hopefully more rewarding J Now that we have decided to be part of the blogsphere, it’s time to get serious about it! So part my job at the moment is learning the art of blogging. Here are the main lessons I have learnt so far:

Take a couple of minutes to think about why do you want to blog and who is going to read it. In our case, the PocketSmith blog is an awesome way to share our experience with people around us. It is also a great opportunity to introduce our team and the product to our future users. Creating this relationship from the start is really important for us as our success will directly depends on users’ willing to share their experience with us and help us to make the product better.

This first step done, we had a lot of work to get done! To cover the multiple aspects to consider when setting up your blog, I advise you to read “Blog Setup: 40 practical tips” by dailyblogips. You can then follow your own step by step process as we did:

Blog set up:

  1. Register your domain name carefully as changing url as been proved to be detrimental to your blog attraction.
  2. Install wordpress in the root directory. We found wordpress very intuitive and customizable enough to meet our needs.

Theme and design:

  1. Choose a theme that suits to our idea of “keep it simple, keep it real”. The design of the blog will change as we develop our brand. We will take some time tomorrow to look at first mockups by Jason, our crazy designer!
  2. Write down a blog description including a short introduction to your product. Putting in writing a blog description must be taken very seriously as you point out what you hope your reader will learn or gain from reading your blog. Moreover, you can use this description later to submit your chef d’oeuvre to blog directory and topsites.
  3. Organize posts by categories. Use appropriate titles for your categories as it will facilitate the navigation through your blog.

Plugins, SEO and Analytics:

  1. Install google webmaster tools. These tools will be essential to analyze and increase your blog traffic
  2. Validate your site so you can access your google statistics and crawl errors about the pages in your sites.
  3. Install meta-tags plugin for wordpress. If your are new to SEO techniques, have a look at Seomoz.org, a true reference!
  4. Submit your blog to search engine
  5. Add share/save/bookmark links

Increase traffic:

There are plenty of excellent articles giving tips to increase traffics. I have particularly enjoyed reading “21 tactics to increase blog traffic” and “How to advertise your blog” which provided me with the basics. It is also important to learn from other bloggers experiences who went through the all process of blog creation (check the blogging mistakes project to get more information) . From my very little experience, the combination of good content + simplicity + regularity + web promotion + constant improvement = awesome blog!

To conclude this post, remember that there’s no urgency to get it right from the very beginning. Play around a little. Experiment. Try different things and keep what works for you!

A consideration when developing the brand

Thursday, July 10th, 2008 by James

When a brand is developed, you need to delve into what you want your product or service to mean to your consumers – whether your brand represents  a soft drink, a plumber, or a web application. This is a difficult task, as it can be extremely easy to slip straight into cliche.

Although drawing upon cliche in the development of brands does have a significant short-term benefit for the company through the immediate and easy transfer of meaning to the user – if we were developing a product that combated piracy, running with a swash-buckler with a big red cross over ‘im would be a safe bet, but an extremely uninspired one.

If the intention is to create a brand that has a long-standing impact upon the public, it is better to draw only a little from the symbols and cliches associated with the product or brand name. You need to develop and allow the brand it to stand on its own two feet, creating unique meaning for the brand that does not rely heavily upon established symbols and cliches.

Examples – Mountain Dew has neither mountains nor dew prominently displaying in their branding. Master Plumbers New Zealand does not have pipes or spanners displayed in their brand. And not a single tent is in sight in the Basecamp branding. (Note here that I am predominantly referring to the logos – a full examination of all elements of these brands is outside of the scope of this post).

What all of the above do have however is the subtle use of cues and symbols in the logo which relate to their industry, but are not cliched. Mountain Dew’s most recent logo has an “edgy” appearance, relating to the jaggedness of mountains; Master Plumbers use watery-lines in their brand to represent flowing water; and Basecamp’s logo (to me, anyway) looks like a grassy hill – which has an association with camping.

The symbols used in these examples, while having a subconcious association with the product, are not cliched. They have developed brands and devices that portray, with subtlety, the nature of the product or service being offered, without making the point too obvious.

The pirate with a cross over his face is now a parrot.

Vodafone NZ’s iPhone 3G plans – an exercise in profiteering

Tuesday, July 8th, 2008 by Jason
Sticking with my 2G, tanks!

Sticking with my 2G, thanks!

So I’ve been taunting James with this thing since last year, and we’ve both been vaguely interested in picking up the 3G model when it comes out this Friday, July 11 (early birthday presents perhaps!). The iPhone has its fair share of detractors, however coming from an iMate SP5 running Windows Mobile, this device is easily the most lovely, fun and engaging thing I’ve ever owned. I’m not saying it’s the best cellphone ever invented – to each their own for sure; but for me, this has everything I need to keep me going:

  • It syncs with Outlook – contacts, mail and calendars – through iTunes
  • Now all my mail accounts are on Gmail, and it easily gets those over the wire
  • Phonecalls with the supplied earphones are really comfortable
  • Text messages are fun and accessible
  • iTunes, camera, Google maps, Safari, iPod, etc etc
  • ..and I haven’t even tapped Installer.app that much either, so I doubt I’ve scratched the potential of third-party apps

I could go on forever, but there’s no point. I <3 my iPhone, but this post is not about the phone itself – Vodafone announced their iPhone plans an hour ago, and to my dismay, they’re pricier than expected. The Vodafone site is was currently inaccessible, but Geekzone has a running post on it.

Here’s the gist – you can get one for NZD199 (yay!) but you’ll be held to a 2-year contract at NZD250/month (zomg). This is the biggest plan, which gives you 600 minutes, 600 texts, and 1GB of data. The smallest plan will set you back $80/month for 120 minutes, 600 texts and 250MB of data. 250MB of data is probably equivalent to the size of some of my friends’ Facebook pages – you know who you are! Okay, perhaps not completely relevant as Facebook has an iPhone interface without all of that stuff – my point is (as if it wasn’t obvious enough), you’re not getting much for your money here in NZ.

Compare these plans to the ones offered by Rogers Wireless in Canada: the biggest plan is CAN115/month for 800 weekday minutes, 2GB of data, and 300 text messages. The smallest plan is CAN60/mo for 150 weekday minutes, 400MB of data, and 75 text messages.

Here’s the thing, see. Both plans offer unlimited evenings and weekends.

The Canadians are up in arms over these plans, and are considering boycotting the iPhone until prices come down. The Americans considered the original AT&T iPhone plans pretty pricey too. No, don’t look at them, they’ll break your heart.

Well, here in New Zealand, we’ll just be grateful that we have cellphones at all! Surely the luxury of being able to make a phone call when away from your landline is nothing short of sheer wizardry.

I guess I’ll be sticking to my trusty 1st-generation iPhone for now. I guess I can put up with its recessed headphone jack for a bit longer.

Update, 2.37pm: Kiwis have started a petition! Currently 276 signatures and counting. I don’t think I’ve seen the words ‘rip-off’ mentioned so many times on a page.

Secret Squirrels

Tuesday, July 8th, 2008 by Jason

Francois

One thing we’ve discovered amongst us is that we each have varying levels of paranoia around discussing the nature of our application with the wider community. Francois is on high alert; James is reasonably cautious; I have a propensity to flit around and tell all and sundry. Ask me nicely, and I might even give you our source code to date.

How cagey should one really be about their business idea? There are a couple of conventional schools of thought in this area: one is that the startup’s idea is not worth the paper it’s written on, and that execution is the key determinant in the success of the startup itself. Furthermore, while it’s tempting to think that an idea is completely unique, it probably isn’t. I place a lot of value in a team’s ability to not only pull it off in the initial stages, but to continue to innovate and provide a unique solution to a problem from a best approach possible.

The other school of thought of course, is the cynic’s standpoint: everyone’s out to get ahead, so keep your treasures close to your chest for as long as possible. Perhaps it takes one who’s been around the traps for a bit to fully appreciate this perspective, however I’d hate to be in this camp. I have faith in people.

I had a good chat to Bhavneet and Tim about this yesterday; both have been brewing ideas and wearing the entrepreneurial mindset for longer than I have. One obvious solution is to pick who you have your conversations with. I believe that having conversations about PocketSmith as we go forward is important from two perspectives:

  • It helps us continue validating the product in the market as we build it, before we launch. While we’ll conduct market research surveys over the coming weeks, it’s equally important to gauge initial reactions to the idea and take them on board as we ramp up to PocketSmith’s closed beta.
  • I think it’s important to start building a community of supporters who have expressed an interest and early affiliation with the product. Expressing thought leadership in a field is one thing, however one should never discount the wisdom that the community will bring to the table.

Dunedin’s a fantastic place to test this theory. The networks here are great: people are supportive and enthusiastic, and there is a enough diversity in entrepreneurial ventures and a healthy amount of respect for the range of different ideas in the community.

At some point soon I’ll write a bit more about what PocketSmith is, in order to provide the reader with some context. But one more point that illustrates why community support has been great.

Last Friday evening, I had beers with our friends at Enabling (they’ve got some great digs down at the old Wilson’s Distillery building), and the conversation circled around cashflow and financial management for individuals and small businesses. Their expertise extends to the enterprise level, and is a good blend of having strong development capacity as well as understanding business requirements when it comes to accounting software.

It was really good to connect with them and share some insights; I think they’re as excited as we are to see what becomes of the application. I took some thoughts away as well as an invitation to present a beta to them when we’re ready. Enabling might be becoming an adoptive big brother to PocketSmith!

I’d like to think that the presence of an idea in the mindshare of its community is in fact some protection of its own. Through greater transparency in the initial stages, the product should start to build its own identity and grow into its own skin.

James gets back from Auckland in a couple of hours. I wonder if I should greet him at the airport with a bunch of flowers and love-heart balloons.

I miss you guys!

Sunday, July 6th, 2008 by Francois

I must confess this second week has been pretty crazy for all of us! I have to say we are sorry for the (obvious) lack of feed this week! But don’t worry, it only means we have been really busy working on the beta version of PocketSmith. Let’s have a look of what happened this week:

  1. James went to Auckland to spend some time with his family. It might sounds like good times but in fact, James spent most of his late night rocking piece of code on dial up *sigh* :) Eventually, we bounced up ideas  until 5am to get the first mockup of what might PocketSmith splash page look like! James has this unique perspective on problem-solving, which has proved in many time to be or a great advantage for the team.
  2. Jason has been a good boy and got his Ruby on Rail exercises done! Actually, he has been fantastic (as usual) being able to learn more coding tricks, getting his hands on the beta version, and promoting PocketSmith within his network! I suspect him to have two brains (at least)! He also managed to get an appointment with the National Bank which will become our (lucky) bank! We are just waiting for James to come back and we can officially open our bank account. First of all, I must confess I have been impressed by the warm welcome from Matthew Elliott, our banker who is professional and friendly (welcome to New Zealand ;) The funny story is Jason start pitching him about PocketSmith and he seemed really interested by our idea! He understood it and immediatly saw its huge potential…Sounds good ahah
  3. I have been myself involved in a networking event this week as I attended the Dunedin ICT group meeting on Wednesday. Basically, it is an initiative by three agencies: New Zealand Trade & Entreprise (NZTE) ,Upstart Business Incubator and Otago Polytechnic to create an ICT cluster in Dunedin. The idea is to create a brand to promote Dunedin vibrant IT sector. I found this idea very promising and I am looking forward to see what concrete actions this group of CEOs will intend in the future. I believe Dunedin is a great place to start a business, especially if the business is as sexy as PocketSmith :)

We all have been juggling with other commitments as well as Jason and I still need to study (hard ahah) to get our final diploma. But I found that the biggest difficulty we have encountered this week has been being far away from each other! Even if we all understand we need to focus on our own missions, teamwork is really important within our small-and-strong team. I personally feel more inspired and motivated to work hard when Jas and James are in the same room!
In conclusion, the three of us will start working at James place after he installs our “super-office” :) Can’t wait!