Free version available
Magnifying Glass

Blog archive for September, 2008

Syndicated Posts

FaceBook

Twitter

  • #financialconfession of the day: "I get really annoyed when my friends spend frivolously and then complain about... http://fb.me/I1qhJW4p 4 days ago
  • "Bye Bye Quicken Online, Hello Mint!" by Jay Monee on Budgets Are Sexy - "PocketSmith: This big pull with these... http://fb.me/EuooR2LH 1 week ago
  • "Too many people spend money they haven't earned, to buy things they don't want, to impress people they don't like." Will Smith #quote 1 week ago
  • More updates...

Sales and PR…

Monday, September 29th, 2008 by Francois

I am back to business and it feels good :)

At PocketSmith, we are now shifting our focus on Sales, Marketing and PR. Finally something closer to my expertise! Because we don’t have a huge Marketing budget (in fact we don’t have a marketing budget :) , we do need to be clever and find alternative (and cheap) solutions to get PocketSmith known by the right people. So how are we going to tackle this issue?

  • First of all, the three of us are coming back to the basics of business: selling. I just finished setting up a simple CRM (thanks Google doc :) to keep track of people to contact as well as actions to be taken in the future. At this stage, it is all about “planting seeds” and taking care of our leads.
  • Then, Jas, James and I can leverage our networks to reach people in the right circles. We have spent some time meeting people, participating in business events and raising our profile. It is hard to measure the real impact of this time spent but we are confident these actions will pay in the long run.
  • Moreover, we continue to release private invitations to the people who signed up at www.pocketsmith.com. Even if most of these people are still friends and relatives, we have been delighted to get applications from people all around the world. Thanks Google analytics for helping me understand how these people got to know us!
  • Something we have learnt from our experiences is that the best way to sell an application is actually to show it to the people. Part of our sales strategy is then focused on getting opportunities to demonstrate the product as we are confident it is simple and attractive enough to raise interest immediately
  • Finally, in order to get more of these opportunities, we are exploring different ways to get press coverage in New Zealand.

We have still a long way to go but the first feedback from early demonstrations of the product have been very positive and this encourages us to keep pushing forward. After the New Zealand market, we are going to seek commerical opportunities in South-East Asia as well as in France. It is good to be international :)

It’s now time to move on from my thesis…

Thursday, September 25th, 2008 by Francois

Hey guys,

I have been away for a while not but I am pleased to announce I got my thesis done! I sent it to my supervisor yesterday and god it feels good! So I am back on track now and it feels great coming back to the office and get my brain to work on something else that writting 140 pages of academic stuff. I took a bit of time catching up with the guys but it was quite fast to identify what needs to be done…

  • We have been talking to people for a while now. Our pitch is good but I wish we could end up the conversation with a good old “this is my business card”. Yeah. That’s right. We have started the commercialization process without having business cards. First mission, woot woot!
  • As we are looking for commercial agreements over the next month, we will probably have to change our business structure. Moreover, it is a good time to catch up with our accountants and get our finances sorted. At the moment, I believe it is going to be relatively easy as we don’t spend too much (coffee being our top expense ;)
  • We are continuing to release private beta invitations to those of you who have registered on www.pocketsmith.com. As the number of users is increasing, we need to keep track on who we release the app to and make sure that early fans get to test PocketSmith as soon as possible.
  • Everyday, we dream about PocketSmith. I wish potential buyers do too! Unfortunately, it is not because we want it that it will become real. In consequence, we do need to have a strategy to make sure our message will reach the right people. It is then my job to think about the good picture and come back with a rock solid PR strategy. We are small, that’s a fact. But we believe in our ability to use leverage to get access to the decision makers. And after all, if networking, press releases and conferences dont work, I will offer a night with Jas to anyone interested to licence PocketSmith :)
  • Dunedin is not necessarily famous for being a business dynamic city. However, we got to meet very interesting people with great ideas. As entrepreneurs ourselves, it is always constructive to share knowledge and experiences with good people. We are then exploring a new concept to get more opportunities to meet these people and enhance sharing. Coming soon!

It seems I am gonna be busy for while…love it :)

Private beta launched, now heading into our first commercial discussions!

Monday, September 15th, 2008 by Jason

Well, after a couple of weeks of fussing over the finer details, PocketSmith is finally in Private Beta, and this week we’re starting discussions with a number of organisations around the possibility of taking on the application as a pilot.

It’s the point in time we’ve been waiting for pretty much since we started, really. It’s been difficult getting the last couple of weeks out of the way as the activity of developing software for our own eyes only starts to get a little tedious!

The Private Beta was delayed for about a week because we realised a week prior to our planned launch that there were many things that simply weren’t good enough.

So, what have we learned thus far?

Fine details take time

Bug stomping and UI fixes really sucked up the final run up to the Private Beta launch. Hey thanks, Internet Explorer! All web developers of the world should take note of the time taken to write markup specifically for this ass of a browser and send a bill to Microsoft as penance for its remarkably poor adherence to web standards. The timesheet should add up to a couple of millennia.

If the comments above don’t make much sense – what I’m trying to say is that PocketSmith’s layout, though compliant enough to work across Firefox, Safari, Opera, Camino, the iPhone and even Google’s new Chrome – will still need further adjustment and exceptions in order to render properly in Internet Explorer. This is akin to shooting a movie that plays on just about all TVs, and having to re-enact key scenes and re-build props just for Microsoft’s special TV. You know, the one that came with your Microsoft House that you never bothered to flush down the Microsoft Toilet in favour of a better free TV, like Firefox or Chrome.

Writing copy takes time

One of the things we’ve been putting off is proper guidance for our users. It may sound strange, but when you’ve got your head so deep in the application it seems almost odd to have to take a step back to write down what seems obvious to us. 

Here’s a little something I’m experimenting with. I’ve always been enamoured with Haiku, and of its ability to convey meaning in a simple and concise manner. Nicely analogous to what we’re trying to do with financial information, and perhaps a measure of good application design is in the ability to describe what’s happening in 3 sentences, and for extra points, 5-7-5 syllables! Or maybe I’m just a lazy copywriter. 

A little ambitious perhaps. But if at all possible, I’d still like to see Haiku sprinkled in amongst PocketSmith’s pages. 

Timing is everything, perfection comes later

Words from a wise man that came just in the nick of time (a gift this particular individual seems to be endowed with). We fretted about the lack of one particular feature that we felt would bring the Final Beam of Coherence to our application. We’d built quite a bit of emphasis around this that eventually, we felt that we simply couldn’t release the application without it.

But were we losing sight of one of our core principles? We need to iterate often. If we are too focused on building to perfection, we could lose sight of what our market wants; worse, we may even miss out on a number of key opportunities. It doesn’t hurt to release a little earlier and to continue to release often.

PocketSmith is already much matured from the Alpha, and has certainly seen innovations beyond the scope of my original business plan. Fact of the matter is, the product will never be complete. So we’ve decided to release the Private Beta without the feature (which will emerge in due course, and I assure you, it will be great). Thanks, Des.

The strategy for the Private Beta release is a little bit different to the Alpha. While we really sweated it out in the final hours leading up to the Alpha launch, we decided that this should be a slightly better-managed occasion. Here’s what we’re doing.

Load-testing the server in user chunks

One of the issues plaguing usability in the Alpha was the speed of the application. We deployed to Heroku, who are still in beta themselves. The technology is amazing and they’re still free, but understandably not running at full steam until they’re ready to. 

So for the Beta we’re on Slicehost, and we’ve got a pretty good idea as to how many users a single slice can handle. So what we’re doing is shelling out private invites in stages and monitoring the load on the server. I suspect we’ll have quite a few users out there before the server starts to creak as there aren’t going to be too many concurrent users.

Setting up a mailing list

The Alpha culminated in a survey that we encouraged our users to fill out. This was good as we had a number of key assumptions we needed to validate. It was a pretty lonely affair for the users however, as communication was pretty much between themselves and us. We’d like more interaction between the users and some active discussion, and so we’ve set up a mailing list.

Our users are busy people, and so forums aren’t the best.. well… forum for hosting discussions. Mailing lists deliver messages directly into inboxes, and responses from a user go back to everyone on the list. Simple. Hopefully, this will be the start of a little community – if only for the Beta.

James has found that Google Groups does this remarkably well, and we suspect it does as much as most of the paid-for versions out there do.

Iterating often

We’ll continue to develop and deploy changes to the Beta environment. The Alpha was a static affair, save for a few bugfixes. We’re still in the process of determining a rollthrough schedule and some of the operational details that go with it, but we’d like to reward our Beta participants with continual updates to check out perhaps once a fortnight.

Talking turkey

Yes, we’re going to see if people will actually pay us money to use PocketSmith. Sticking with the principle of continuous validation even through development, we’ll figure out as early as possible what potential customers will pay for. By our reckoning, the product is *just* at the stage where we can do this – we certainly couldn’t have done it any earlier, although there’ll be continued improvement as we carry out discussions.

For early-stage commercial discussions, it’s all about striking the balance between having a good working prototype that won’t let you down, versus an over-developed final product that has either needlessly cost you months of opportunities, or one that needs to be re-engineered to suit the client or market.

Throughout the process, we’ll be polling our colleagues and friends in related industries to get a rounded opinion. 

So this is where we’re at! When it’s a little less commercially sensitive, I’ll write a bit more about our recent change in strategy too. I’m particularly excited about this one, and have been somewhat looking forward to our first fundamental change in the perception of the direction of our business.

Paul Graham of the Y-Combinator states that the initial idea is just a starting point – not a blueprint: 

The fact is, most startups end up nothing like the initial idea. It would be closer to the truth to say the main value of your initial idea is that, in the process of discovering it’s broken, you’ll come up with your real idea.

We’ve been making little iterations along the way, but it’s actually reassuring to know that we’re on our toes enough to perceive – and even more importantly, agree on – the changes in our plan that need to happen in order to make the business as much of a success as it can be. The journey continues, and with it, our exploration.

PocketSmith, Rails, Programming, Business, and I

Tuesday, September 9th, 2008 by James

Whoah! It’s been a long time since I’ve been around these blog parts. Lets get that French monkey off my back aye.

The interesting thing about being on both sides of the fence, both a developer and a business person (I graduated with a Master of Commerce in Marketing in 2005. *toot* – thats my trumpet done) and shutting off one half of your brain to get things done. First and foremost in this venture, we need to build the product, and but before this we need to be able to build the product.

Growing into Rails and Programming

I have had to learn and extremely large amount about rails, ruby and programming in general. Basically I came into this startup with some extremely rudimentary rails skills (through building a seat-of-your-pants, kick-ass sales tracking system for a small web development firm here in Dunedin, where I was the Sales and Marketing Manager) and some pretty good (I would like to think) CSS and HTML skills. These were gained primarily from building, updating (and unfortunately designing) the Dunedin Drum n Bass website, launched in February 2007 after 6 months in development. Pure, straight HTML, CSS and Javascript, no content management, weekly updates. And still going. Fun.

I had basically learnt rails as a away of enabling me to learn how to do more programming and build what is I believe a very good take on a sales logging and tracking system for small sales teams. It better be a good take; I built it purely out of need. I wasn’t a programmer, however such was the beauty of the company I was working with – I was able to do what ever was required to succeed. Prospector enabled extensive sales-process streamlining, in a very short space of time. Microsoft CRM freakin sucked, and it also sucked our souls. So it died a quiet death on that day of Prospectors launch in September 2007.

However I have not looked at this code in around two months; and although I knew at the time I started building it that the code was ugly and extremely inefficient, and it only got more so through further iterations of the least DRY code ever (or you could say, extremely wet code, haw haw). Now however, I see it as completely grotesque and would certainly bring servers to their knees with extreme database thrashing left right and center.

One mongrel instance was hurting my dual-core workstation pretty bad with a three-person sales team. Bad, bad rails code.

But I couldn’t do a fresh install, start over and build it fresh; that was completely out of the question. Firstly in a SME sized web development firm where team member roles are as loosely defined as they were, your PC stores a huge amount of (seemingly important) data. Secondly, I had no freakin’ idea how I got the application working, it just kind of happened. I knew nothing of gems, servers, databases (especially); nothing. I followed one tutorial religiously for syntax. Rough. So it was a dash of good luck that it was running at all; so I wasn’t touching that. Thirdly: time. No time. Struggling web SME being turned around. Can’t rebuild work machine.

The Next Stage – codenameplannr

Then serious planning discussions started taking place with Jason and Francois right at the end of last year. I started tinkering with rails more then; from reading more rails to coding the first draft of the application with the most butchered AJAX interfaces you ever would see. But you won’t ever see them, rest assured. By March however I had learned a lot and was more than ready to get started.

However the horizon was fixed on 12 – 18 months – ourselves and the entire team we were working with (10 including us) were turning this dog around; it was challenging for every one of us. But fuck it we were up to it and we had already been doing it for nine months. However things did not quite pan out in this way, so we three became full-time codenameplannr on the 23rd of June 2008.

Anyway; I have been heads down in code for eleven weeks now. Pulling crazy hours, not sleeping, all the good stuff. Thinking about very little else, but achieving a helluva lot. The learning about the craft gets much deeper when a feature complete, public application is being developed. The challenge is massive, and I am loving every second of it. I look forward to solving tomorrow’s inevitable problems.

If I can. Which is probably about a 50/50 chance at best. User interface problem, no worries. Anything that makes those numbers mutate into data that is usable beyond a spreadsheet – talk to Jase on that one at this stage.  I am getting there; however a wee while to go… yeah.

All this coding has meant however that I have pretty much turned that other half of my brain off.

And Moving to the Other Side

But now as we approach the closing stages of the primary initial development cycle, I will soon be switching my head to the strategies involved in pimping this thing we call PocketSmith. So more things will be popping up on the blog from me in this frame of mind – as you would notice the majority of my posts so far are tending towards my discoveries for tech problems; the preceeding ones are likely to be bit of a different flavour. In parts.

Anyway, through all the learning that I have done, and through knowing all that we have yet to do, I think we three have ended up building something that is pretty awesome and will help a lot of people. I hope that you think so as well when you get to test it out in a few weeks or so. If you haven’t, hit the beta signup!

Marketing, user experience, and intensive testing…

Monday, September 8th, 2008 by Francois

Hey folks,

Long time no see! As you should have guessed if you read my last post, I have been away writing pages after pages trying to get my thesis done.Unfortunately, I have not finished yet… Recently, I took some time off and went back to work.And I liked it! I mean, damn I love my job, I love the people I work with, I love the product we are putting together, and I love…you. Question: Who are you? In a perfect world, you will be a regular reader of this blog dreaming about being the first to try our application. Sweet. But it does not quite yet answer my question…At least it is not enough to get a good idea of the future users of PocketSmith. And we need this information. Not because my marketing teacher told me so, but because we want to build the application around the user experience. For example, decisions about the user interface have to be made regarding on potential users. Moreover, our marketing effort will be directed toward these people.

Problem: as the Internet is a global market, it could be a tricky exercise to identify our target. Consequently,I have decided to share some tips with you to deal with this issue:

  1. Get knowledge about your market. Don’t limit yourself to Internet. On the contrary, read a lot about what is happening outside (In the real world ;p ).
  2. Discuss with your business partners about potential targets. Ask yourself: Why would they use PocketSmith? Remember that motivation is the key. The last thing you want is having to educate the people your are targeting cause it will cost you double time and energy to sell them what you have to offer.
  3. Talk with people about your application and what it does. Ask them if they will use it. If not, ask them if they know people who will use it.
  4. Release of an alpha and a beta versions. Make people test your application. Make sure you pick your testers from a wide range of people. Get their feedback and identify who are the most reactive
  5. Keep discussing with your business partners as the product changes. It is crazy how fast we have to rethink everything as the application is growing so quickly!

If you follow these steps, you should come out with a good idea about the potential users of your application. But remember that it is likely to change as you confront your product to the market so keep your mind open!

Right, I have dealt with Marketing and user experience. It is now time to speak about intensive testing! So why is it related? Simply because I have been in charge to test the application by simulating I am a user. You think it is fun? Wrong! Cause Jas and James hate me for that :) In fact, my job is to hammer the application to make sure there are no errors or bugs left. Moreover, I report some tweaks that have to be done to get a perfect product. I have to think about different case scenarios to make sure I cover everything. I pretend to use a computer for the first time or try to do random actions to see if I can break something.That is the problem. My job is to point out the annoying little details so you can understand why Jas or James want to kick my French butt sometimes!

Actually, the three of us understand that these details are important as we dont have to much chance to make a good first impression. Sign up for the beta and get a chance to see why we are confident this first impression will be the good one!

Sessions with memcached for Rails on Leopard

Wednesday, September 3rd, 2008 by Jason
Geek time. James has been getting our new beta environment up and running on Slicehost, making some impressive strides in the right direction. In the last 12 hours, we’ve noticed a significant increase in speed from a single Mongrel instance, to a combination of Thin and Nginx. James will write more as he forges on, in the meantime I’m working on performance from a session-management perspective, and will post a step-by-step that I emailed the team this morning.

PocketSmith’s current architecture loads most of its forecasting data into sessions by utilising non-database backed models. When the user logs in, the application generates the user’s cashflow forecast from a list of stored events and matches it to a series of uploaded bank transaction data, amongst other things. Subsequent modifications to the user’s account require a complete update from point x forward as the information is refactored (cash forecasts, vs actuals, cashflow information, date and time-related events, goals etc).

Given we’re currently generating forecasts for 365 days (and soon to be more), there’s a lot of data shuffling around every time the user makes a change, and the initial assumption from this Rails newbie is that multiple read/writes of volatile data to a database is inefficient. Hence, forecast data is stored in the air. Or in less romantic terms, in a chunky-ass session that’s also not particularly efficient, as we’ve discovered in deploying PocketSmith to the new hosting environment. Sessions themselves have to be stored somewhere in order to persist.

I’ve also come to realise that rapid writes of multiple rows to the database don’t have to be slow, as evidenced by how quickly we’re importing bank transactions via CSV upload using ar-extensions. For the beta, we’ll stay this course and refactor to suit in the near future, if necessary.

Anyway, the size of these sessions has been impeding the application’s performance in terms of speed; furthermore they’ve been causing frequent 500 server errors as MySQL occasionally fails in its attempts to write the session to the database.

Having not given much thought to session handling since the first lines of the forecasting system were written a couple of months back, some quick research yielded a number of alternatives to what we were using (ActiveRecordStore). Seeing how we’ve heard very good things about memcached (mem-cache-dee), in particular how well it plays with Nginx (engine-exxx), I thought I’d give it a shot.

Memcached is a distributed memory caching system that yields a significant increase in performance mainly because it avoids reading and writing to disk; in addition to this it should scale well as we load-balance and proxy through Nginx.

Email below – we’ll post the results of the migration in due course :-)



Righto – there’ll be a few tweaks here and there as we go forward, but here’re some quick steps to getting memcached running on Leopard. The attached shell script should also work for installing memcached on Ubuntu.

1. Install memcached by running the attached shell script, save it to a separate folder first for neatness:
chmod u+x install-memcached.sh
bash -x install-memcached.sh
2. As per the echo, add this line to your ~/.bash_profile
EVENTNOKQUEUE=1
3. Pull the configuration into your current environment
source ~/.bash_profile
4. Install the memcache client
sudo gem install memcache-client
-
FYI this is what I’ve added to environment.rb

5. New requirement and constant

require 'memcache'
CACHE = MemCache.new :namespace => "pocketsmith",
:cthreshold => 10000, :compression => true, :debug => false,
:readonly => false, :urlencode => false
CACHE.servers = '127.0.0.1:11211'  

6. Flicked the switch
from :active_record_store to :mem_cache_store

config.action_controller.session_store = :mem_cache_store

7. Added cache and expires values to the session config

config.action_controller.session = {
:session_key => '_pocketsmith_session',
:secret      => '_secret_squirrels_code_here_',
:cache       => CACHE,
:expires     => 900
}

I haven’t pushed this yet as it will break everything. Actually, doing this will most likely make it not run on Heroku as I don’t think they support memcached yet (or even SQLSessions, if they’re running on postgresql?) When you have installed memcached and the updated copy of PocketSmith, you’ll need to have it running in order for the application to work.

8. Start memcache in verbose mode

memcached -vv
Note: if you quit memcached PocketSmith will crash, and you’ll need to restart the webserver in order to reconnect :-T

9. Optionally, get memcached to run every time you login to the console by adding this to your .bash_profile:

memcached -d -m 24 -p 11211
echo "memcached started. also, francois wears lacy panties."
Multiple terminal windows will not spawn multiple instances of memcached as it can only serve up at one address and port at a time.

10. To nuke the running instances of memcached:

killall memcached
…and that should be it :-) Keen to see how speedy Nginx is with memcached in tow!

p/s These references were valuable:

Why do I have to write this thesis?

Wednesday, September 3rd, 2008 by Francois

Well, it is not a secret, studying can be very annoying, especially if you have to write a 85 pages thesis in 2 months (ok i had more time but I was busy ;) Oh and I forgot, it can become even trickier if you are running a business at the same time! So what is my secret to deal with my workload?

Actually there is no secret… I am just lucky my business partners encourage me to take some time off to write my thesis as opposed as doing the job I am supposed to do…I swear I will catch up after the end of September (deadline), learn Ruby and stop calling James a bloody kiwi (maybe not this one :) .  Then, I dedicate most of my nights trying to nail chapters after chapters. I must confess I can not study during the day cause it makes me feel I am wasting my day! But everybody has is own style and I respect it… Finally, I got the support of my parents who offered to correct my essay before sending it to my supervisor. Regarding the size of this piece of work, I really appreciate they take the time to do it!

Who know what I hate about this thesis? It forces me to look at the past, analyze what happen and try to understand how people can do better next time… I mean, it is great, I learn heaps and everybody is happy. HOWEVER, why asking me to write 85 pages when I could do a great job in 20? Why asking me to write it when I am supposed to work? and finally, why do I have to look at the past when I reached the point where I will get more knowledge from future experience? I guess the answer is to get my precious master degree…Yeah, I guess so :) But you know what? One day the way we are educated will change…More interaction, more sharing of knowledge (yes Mr Tuloup, sharing is the future!), more creativity and…more web off course :) That could be the start of some serious talks for our next app…What do you think Jas and James?

Peace