September 6th, 2011

whew – getting close to publishing Shopcade

small update on my whereabouts: Shopvolution is on the home stretch of opening Shopcade – a social eCommerce app -beyond our private beta. I’m very excited to see this project go live to the general public as we’ve been getting great feedback from users and have been responding to their feedback for the last few weeks (and will continue to do so over the many months to come!). But more to the point for this blog, when my head gets cleared from the current flurry of activity, I’ll see if I can post a small write up on our development path. It’s been really exciting to see the project take form from ideas on napkins to fully fledged app in just a few short months – and we even kicked out the foundation of MySQL to attack scalability a bit earlier than expected – running fully in MongoDB now – which has been a learning experience for everyone involved! Stay tuned…

June 1st, 2011

DNS solution for a small team’s sandboxed development environment

If that’s not the catchiest title of the season, I don’t know what is. But it was essentially what I kept googling over & over.

The closest thing I could find was pages & pages of BIND documentation. BIND is great – if you’re, say, actually hosting a proper DNS. But for my purposes, this would have been like using a tractor trailer to give a neighbor a cup of sugar. So, for a while I’ve been looking for a good solution for a cheap and cheerful local DNS — easy to configure and manage. The sole need was to host an internal DNS that could override, but normally be a slave to our public DNS. After a bit of focus I finally found my solution: DNSMasq. On Ubuntu, it’s super easy to install:

apt-get install dnsmasq dnsmasq-base

DNSMasq will read the local /etc/hosts file – or you can add entries to /etc/dnsmasq.conf

Each developer at Shopvolution uses a standard developer image through VirtualBox – each of which has a static IP. On an in-network server, I installed DNSMasq and added entries for each developer’s ubuntu image into it’s /etc/hosts file – ex:

On the internal server, I then added a real DNS server to the /etc/resolv.conf file – then pointed the router’s DNS to the local server. If the in-network DNSMasq server doesn’t know an entry, say, for (which is managed on our public DNS), it forwards the public DNS server’s response. If it does have an entry, it responds accordingly. Our internal DNS doesn’t interfere with the public entry (unless I explicitly override it) and the outside world has no more knowledge of our routing (nor should it care).

Voila – job done! Now everyone can reach developer workstations from their local browser without messy local /etc/hosts changes.

February 11th, 2011

Project tracking software

I just started full time (well, albeit a few handovers left w/ M&C Saatchi) at a new startup at the cross roads of 3 cultural technology movements (more on that much later). At the moment, after the last PHP meetup in London, I’m contemplating project tracking software once again. I’m setting up our development infrastructure over the next few weeks and with the new project get to revisit the fundamentals of the development environment. Our programmers will be working with HTML/JavaScript/CSS, AS3, and PHP.

This seems to be a constant obsession of mine: in agile teams, how do you best carry and share task information, sync tasks to subversion (yeah, I haven’t jumped on the GIT bandwagon just yet), and allow programmers to seamlessly submit task information (time spent, feedback questions, commit comments, etc).

In the past I’ve had the individual elements of this perfect equation by running a subversion server, Redmine, whatever text editor developers felt comfortable with (TextWrangler, FDT, Eclipse+Subclipse, Dreamweaver, whatever)  – but that usually requires a lot of jumping around to different windows to gather task info (web browser), update svn (editor/standalone svn client), edit code (editor), commit back in (editor/standalone svn client),  and update task information (again, back to a web browser).

Ideally, a programmer could view their task list, open a task as ‘in progress’, commit/update svn, and mark tasks complete all through their editor. That way programmers would have a completely (or close to it) uninterrupted workflow when addressing issues. That’s the quest for the moment, anyway. Suggestions most welcome!

September 21st, 2010

we’re having fun!

I’ve had these two articles in front of me today – I couldn’t close either, and kept reading snippets of each one throughout the day. I had a hunch that they related to each other, but couldn’t quite figure out why.

My best friend from high school told this story of their family on vacation – on their way to their holiday destination, three kids in the back of the car, mom & dad in front, they got a bit lost. A bit like National Lampoons European vacation (albeit somewhere in the Carolinas if memory serves) Dad G started driving around and around a traffic circle trying to determine which exit to take. Among the heated discussion of which way to go, someone lights up from the back “Dad, what are we doing!!?? (driving around the traffic circle when we’re supposed to be at the beach having fun already!)” – Dad replies in a stern shout …


I tell this story – no matter if my memory actually serves me well – often. The reply – ironically funny in it’s own right (especially as Rob tells it) – reminds me that you can’t force the end result. Fun / funny is simply a side effect – and you certainly can’t force it – other than in the ironic/watching-people-squirm sort of way (and you definitely don’t want that!).

The point of feeling fun – of feeling ‘buzy’ – is that you’re actually doing something fun or as a result of success. It indicates that people are all on the same page, are relaxed, are doing anything other than supposedly having fun. Fun is the side benefit of the activity / mood. It’s not something you can really set out to have with any authenticity. Which is why the article in the Economist struck a chord with me. At first I thought that maybe I’m too cynical to believe the Zappos way could be fun – that sometimes work is — well, work. That bummed me right out, because of all times, I’m actually enjoying work these days. And that cynicism crept right up and hung off my back.

But then I circled back to the HBR article one more time today and had a re-epiphany: set the goals of the team around performance, around risk, around ownership – anything other than around having fun. I hope that Zappos has the right priorities to enable their CEO’s vision of corporate culture. That somehow they’ve managed to align the priorities of their employees in such a way that fun is the result. I really wish Create fun and a little weirdness wasn’t in their list – but simply a footnote to their 10 principles. Maybe having that point 3 doesn’t insert employee cynicism within their organisation – but I think it gives every other leader a cop out. The copycats will focus on 3 and nothing else.

As the Economist piece points out, CEO’s who aim to mimic an environment of the Zappos case study focus on the end result – of the “FUN FUN” bit – and lose the focus that actually generates and enables fun in the first place. They lose the focus to create a stable, goal oriented, grounded workforce that’s able to take chances – that doesn’t feel scared to fail – that doesn’t mind a bit of egg on their face when they shoot too high. Not all companies can be Zappos from the ground up (and certainly not when a culture is already in place). Sure you have to learn and take points from others – but embrace who you are, what you can bring to the table, and what makes your company and employees tick. Only then will employees enjoy their success and maybe even learn to enjoy the opportunity to take a few lessons from a bit of failure.

August 18th, 2010

internet impacts language. no kidding, Beeb.

The BBC has a rather mundane article today discussing the How the internet is changing language – and Slashdot responded in a – dare I say it again – mundane sort of way. Is it really news that LOL, Googling, and l33t speak has made the way into common language? I just can’t believe this is news – it’s a bit like today’s article in the London Metro announcing (on behalf of the Advertising Standards Authority) the PS3 has better display qualities than the XBox360. Wow. Earth shattering. I expect fluffy, poorly thought out press releases from the Metro but a bit more from BBC.

And here’s why I’m a bit miffed at the whole discussion: I think the BBC missed an opportunity to look at how the internet is changing not just language, but complete concept of regional culture. I know it didn’t start with the internet — movies, TV, and radio, and national newspapers made even the most colloquial language within a country ubiquitous – but also hinted at behavior and expectations of uniformity. The barrier to cultural exchange broke down to the point where 14 year olds who had never seen a surf board in their life were using ‘hang loose’ and dressing like white rappers dragged through Sears (in other words, not very authentic). Growing up I was always amazed and thought about the waves of popularity through the country – watching trends start on the West Coast, pop over to NYC, filter through the eastern seaboard, and migrate West. Or start in FL, move to NJ, hit NYC, then bam – throughout the country. I mean, seriously, someone has to take the blame for popped collars. Who started it?? I blame this guy.

But what I found interesting about cultural exchange through the mass media within the US, I find absolutely fascinating to watch through the internet on a cultural level. I expect to be able to not only suss out an interesting London property through Google maps, but now find myself navigating and exploring places I’ve seen on holiday, exploring places I’ve never been in order to get a feel for the place before I arrive. I can get a feel for how a town is laid out, see their signs, and not be a complete foreigner in a foreign land when I arrive. And while blogging and Twitter are tip of the sword here, Youtube, Chatroulette (Mom, be careful with that link), and even down to checking out world news sites have taken our picture of the world and it’s inhabitants, and exploded our expectations of finding unique culture. Chalk up part down to mass commercialization (I was floored to find out the popularity of 7Elevens in Thailand!) but also down to our access to the fire hose of data and knowledge that we call the internet.

June 28th, 2010

where to next for content management systems?

I haven’t written a technology related post in some time. Part of this is workload, but a bigger part is the pace of change in technology. And with the change in pace, my role and expertise changes along with it. By the time I sit down to think about writing about the impact of the ever evolving hosting solutions, development platforms, development methodologies and managing a team of developers, a new nugget of information or technology flies across and changes my view point just slightly enough that I get stuck back into the churn of thought. But today I’ll talk about a general trend that has been bubbling for a few years. For the technically adept, this probably won’t be news. But for anyone listening to an evening rant over a pint, or those few who read my proposals, requirements, and functionality specs, it might give you a bit of background on the why’s of an often non-traditional response.

At Likemind, not only do we design & develop online annual reports, but during the better part of the year, we’re designing and developing large .com sites for pan-European clients. These sites are often 150+ pages and tie into investor relations, careers information, and PR efforts.

Often our clients have a vision of 10-15 geographically dispersed editors and several stages of approval. Web editors are often staffed with their day jobs plus the responsibility of keeping the site fresh. Clients with large, involved IT teams took the requirements from the business and dictated requirements to agencies asking for large, enterprise scale content management systems (CMS) that had the ability to manage workflow (ie, what happens when an editor pushes the “publish” button), integrate SAP HR functions, create custom forms, perform on-the-spot surveys, custom analytics, and allow certain editors limited privileges over certain sections, full permissions over other sections, and no permission to edit yet another area. In all, these were huge development efforts – and products like SDL Tridion, Documentum, and Sharepoint quickly filled RFPs and developers minds for months on end as there were no other real viable systems or strategies for solving the challenges. These systems – from a technology perspective – were *fun* to build. Teams of developers joining together to bang out a scalable site that had all the bells and whistles imaginable.

And what happened? Huge enterprise content management systems were deployed with UIs inherited from the CMS — so complicated all but a handful of editors who performed content edits day-in and day-out knew how to use the system, obliterating the need for system complexity in the first place.

Don’t get me wrong – when users were trained correctly and knowledge about the system was passed from editor to their replacements over the years, the systems themselves performed brilliantly. But just as often, knowledge of the system resided in the handful of editors and stayed there.

Working on sites for the likes of Yara, Shell, and EDF Energy (to name a very few), Likemind has been learning these lessons and altering our expertise and training guidelines. We’ve also learned that after you answer IT’s questions, it’s time to go back to the business drivers and validate and justify cost & requirements.

But also, emerging open source CMS projects like Drupal, Joomla, Magnolia CMS, and up-and-comer Concrete5 have narrowed the gap between smaller content management systems and the heavy hitters. And not only have these projects become viable contenders for the system themselves, but they’ve put tremendous pressure on the larger content management systems to innovate, clean up their UI, and streamline editorial duties forcing a bit of technical evolution. Also, sister systems – like HR and investor feeds have cleaned up their application programming interfaces (APIs) and XML feeds to work with much less effort with the web content management system. This makes incorporating their data and functionality much much easier and eases the need for detailed custom development.

And so while my friends on the design side of Likemind focus on experiences for the website vistor, ever increasingly our technology team is focusing on the experience of content editors. Every week it seems we evaluate a new RFP for an enterprise CMS & remember to put CMS user needs right up with IT needs. Sometimes scrutinizing these requirements and talking to the client team leads us to a much simpler option. An option that meets the multi-editor requirements, permissions based editing, custom workflows, a shorter technical development, and flexible deployment.

A while back, Chris Bray, a friend back in NYC posted: Another installment of “What you sold, what you built, and what they needed”. A perfect graphic representation for technologists to keep in mind.

May 9th, 2010

String of bad luck

Well – my string of bad luck culminated this weekend in getting my backpack nicked out from under me while in a pub this weekend. Literally out from under me – Carrie & I were deep in conversation (yes, this love struck absorption still occasionally happens even after 10+ years of marriage) and the pack was between us (but I think a bit under the table) so the snatcher really must have been slick. Unfortunately, it had my work laptop and various bits and bobs in it – none of which is the stuff of blog posts, really. (unless Mr/Ms Thief is reading this, in which case: keep the laptop – I’ll give you money for my old passport / visa permit & my sunglasses – the iPod is on it’s last leg & was occasionally skipping, so feel free to get 10 quid for that too).

But moving on – lesson learned for me: even after umpteen years living in large metro areas, I still need to do a better job of keeping my belongings in sight.

The positives:
First off, the laptop had been on a time machine backup for a few months – but unfortunately the backup had filled up & I had taken to just hitting cancel. Not smart. But I also keep source code checked into a subversion server & email is all server based, so there won’t be a huge problem getting back up & running w/ new hardware.

The negatives:
A few things are just a pain: first, my visa to stay in the UK was in the backpack. Dealing with that will take weeks off my life. My prescription sunglasses as you might know if you’ve ever purchased these sorts of things before, are priceless to me & useless to someone else. So I have a bit of an incentive to get these things back – and thought the stolen laptop might inadvertently come to my aid.

I have dropbox & xmarks on the computer – programs that automatically hit a server and do things (like sync a file directory & sync my bookmarks). Now chances are the thief will just drop a fresh install on to get around my login password & wipe the computer clean before selling it on. But – if – and a big if – they actually manage to get my password or figure out how to login any other way those two programs will hit & I’ll be notified of my new friend’s IP address, hopefully getting me one step closer. A long shot to be fair.


But to the point – there’s an open source project that I’ve (too late) realized would have helped me that much more: Prey is a lightweight application that will help you track and find your laptop if it ever gets stolen. It works in all operating systems and not only is it Open Source but also completely free. We like. It is now going on all my computers & recommending that my office install on all portables as well.

Also, I should have registered mobile belongings here at the UK’s property registrar which may have helped stop the person selling on the laptop on the open market.

Finally, I’m thinking of several ideas which might electronically tie items to me. Say, if my bag had a RFID chip & talked to my phone, I could program it to go off if my bag went out of range….though peripherals are in development and look half baked at the moment, it’s rumored that the next iPhone will have reader built in…here’s hoping…

November 3rd, 2009

Somehow Goliath looks like David at the moment

A few weeks ago, I received an invite to Google Wave, but didn’t get a chance to really think much about it until now.

Though it’s been said that Wave is email’s Segway, Google has a pattern of seeming to bite off more than they can chew – only to succeed in the end. Gmail was, at the time of release, yet another web mail client with seemingly too much hype. But only a few years on, Gmail’s killer feature of unlimited size of your inbox has not only transformed their users’ behavior but now unlimited storage is ubiquitous among web mail providers. Wave is in fact a protocol, not just a Google hosted service and Google is planning on releasing the source code for their implementation, hoping that there will be as many Wave servers running as there are email servers today. With the vision clearly set on completely transforming online conversations, I’m not underestimating their prowess in revolutionizing a seemingly ingrained technology.

However, Wave is pushing boundaries and making bets users will change several engrained behaviors. While developers have been using versioning systems for years, Mom & Dad (unless software engineers) will grope to understand the power of tracking file versions (‘playback’ in wave). Also, users need to switch from thinking linearly about online conversations (email, chat, forums, even twitter) to an asynchronous model – which again is a basic human behavior that will have significant barriers to change.

Unlike Search, Gmail, Google Voice, Calendar, and Docs, in order for Wave to be useful, let alone truly powerful, everyone in your conversation will need a Wave account – either on Google’s servers or elsewhere. Here, Google is counting on two curves of adoption – first in Google Wave, then in the ubiquity of everyone having a Wave account somewhere in the federation of Wave servers. The first will likely have to be a success before the second curve starts its uptrend. At this point with a limited user base and a slow invite process, it’ll be some time until Google Wave hits it’s inflection point.

If you want a Google Wave invite comment & I’ll put your email into the queue.

May 4th, 2009

Easter Eggs

I am a big fan of Easter Eggs. The kind I leave for myself and don’t find for months, or sometimes years. My natural tendency is to pack things away in the smallest of corners and never think once about throwing something out – drives Carrie a bit nuts with physical things — and if you still think I’m referring to the eggs you eat, you’re probably thinking that maybe you don’t want to come visit my house. But of course I’m referring to euphemistic easter egg. The favorite guitar pick left in a coat pocket. The photos from Phoenix, AZ squirreled away in some random cupboard. And today, this file, simply named “READ.rtf” buried in my mini’s hard drive. Every few months or so, I come across this file, and every so often I actually am curious enough to open it. And every time I’m glad I did – it slays me everytime…it’s contents read:

Walt Whitman

Others will enter the gates of the ferry and cross from shore to shore,
Others will watch the run of the flood-tide,
Others will see the shipping of Manhattan north and west, and the heights of Brooklyn to the south and east,
Others will see the islands large and small;
Fifty years hence, others will see them as they cross, the sun half an hour high,
A hundred years hence, or ever so many hundred years hence, others will see them,
Will enjoy the sunset, the pouring-in of the flood-tide, the falling back to the sea of the ebb-tide.

It avails not, time nor place–distance avails not,
I am with you, you men and women of a generation, or ever so many generations hence,
Just as you feel when you look on the river and sky, so I felt,
Just as any of you is one of a living crowd, I was one of a crowd,
Just as you are refresh’d by the gladness of the river and the bright flow, I was refresh’d…

I’m overall still very happy with the move to London – but at this moment, right now, I miss NYC. I feel like I’m in high school again with a crush on two different girls.

May 1st, 2009

Blogger Search

Ouch – I was just schooled by a project manager – it happens sometimes. Couldn’t find a search module for Blogger – he suggested I just look at the code in the header bar for a blog that had the Blogger header bar active. Doh – I was clearly over-thinking things. Just create a search field input box, name it “q” and send the action of the form to your blog’s url/search – and example result would be like this:

If you’re really lazy, just hit this:

There you go! Happy Blogger Search!