As a fun little project over the last few weeks, I’ve built a Web app that helps you discover more music by artists in your iTunes library. It’s called Discographer, and uses the Spotify API to fetch albums, ticking off the ones you own so you can see what you might have missed.
It was a nice opportunity to play with some new web APIs (Drag and Drop, File and Flexbox), the main benefit being your library is never uploaded but parsed locally in your browser. The only thing transmitted is the name of any artist you click.
It was linked on Lifehacker a couple of days ago and I’ve since received some great feedback. Please give it a go and let me know what you think!
At Terracoding we regularly review pull requests from each other when working on a project. GitHub’s “Commits” and “Files Changed” tabs make it pretty painless but we wanted a way to easily view Ruby implementation files alongside their specs.
I created a bookmarklet to arrange the file pairs 2-up for review. With the files side-by-side it’s easy to spot code that isn’t covered by tests and we get a better idea of what methods are meant to do. It also hides the code of deleted files which I never bother to read during review.
To install, drag this button into your bookmarks bar:
Yesterday I finished porting this site to Middleman, a static blog generator written in Ruby. Since releasing Lando, I’ve barely written a line of PHP and, short of rewriting it in Ruby (which I unfortunately don’t have time to do), I’ve been put off working on Lando because of that.
I am very proud of how Lando turned out and have genuinely enjoyed using it to power my own site but it felt like it was time to switch to something written in the language I use day-to-day. If you use Lando, I am sorry I won’t be continuing its development. Rest assured it will stay open-sourced on GitHub and if anyone wants to take over managing it please get in touch.
If you’re looking for a replacement, translating my Lando templates to Middleman was remarkably simple, with the majority of helper functions and content properties matching across the two systems. I recommend it over Jekyll/Octopress which I found to be less flexible and hampered by their Liquid templates.
Thanks to everyone who tried Lando out and gave feedback. I learned a lot building it.
The theme for presentations was ‘retrospective’ and I asked Ant if I could talk about my year developing Lando. It was a really interesting day, with some great talks on what the guys had been up to over the year. I was due on last but as my fifteen minutes approached I got cold feet.
Sat enjoying the other talks, I’d grown increasingly concerned that my presentation was going to come across as a sales pitch. I actually planned to mention as much in my slides when talking about how I’d found promoting Lando difficult but the anxiety over boring or, worse, offending the attendees by pushing a product they didn’t care about made me bail on most of what I was going to say.
I stood up, introduced myself, rushed through the demo of Lando I had prepared and instead tried to emphasise what I had learned from the year, lingering on the problem of self-promotion because that was what was eating at me standing up there.
I finished well within the time limit but, instead of wrapping up or asking questions, the Multipackers began answering mine. They explained that promoting a product isn’t, in and of itself, an evil thing to do; the trick is how you do it.
DON’T: Spam, pester, criticise, try to cause controversy or hide your motivations.
DO: Promote something of value, share your passion, persist and build relationships.
The most important thing I learned was a point Stuart made on the day, and one repeated by Paul. Paraphrased:
You can’t promote a product and come across as altruistic. That’s having your cake and eating it. Either don’t sell something or own the fact that what you’re doing is a pitch. That’s ok. People don’t mind. Just don’t try to mask it as something other than what it is.
That’s really important. I was scared of coming across as a douchebag on Saturday just by sharing my enthusiasm about something I’d created. In hindsight, that’s what everyone was doing – sharing something they’d made or done or come up with – and they didn’t come across as slimey. By bailing on my passionate pitch I strayed into trying to mask my presentation as purely altruistic when it wasn’t and people knew it wasn’t.
Second guessing myself resulted in a weak presentation and a missed opportunity but a valuable lesson in self promotion. A big thankyou to those who were there and everyone who has given me advice since. It may have been a bit of a blur in the talk but Lando is free and available open-source on GitHub. I would love to hear your feedback.
Managing the content of websites has always felt like a bit of a chore. Things like editing pages, posting blog entries and importing media should be simple but the Web-based admin interfaces of most CMSs make it fiddley. Form inputs and textareas weren’t designed for authoring content and, while WYSIWYG editors help, I dread looking at the HTML produced.
Up until a few months ago, I worked around the problem by editing content locally and pasting changes across but live and local versions quickly got out of sync. It was time to knuckle down and come up with something better.
A New Hope
Meet Lando: a new kind of CMS that lets you manage your website in the cloud. Lando lets you save plain-text files and media in special Dropbox folders and have them appear on your site. No forms, no fuss. You can create things like galleries and slideshows automatically from a folder of images and, with everything in the cloud, you can update your website from anywhere.
Lando is written in PHP and comes in a package to upload to your own server. There’s a simple installation wizard to guide you through connecting to your Dropbox account. Lando then communicates with the Dropbox API every so often to check for changes to your website content files or you can force a refresh by logging in as an admin on your website and clicking update.
Lando installs 5 folders in your Dropbox: Pages, Posts, Drafts, Collections and Snippets. Pages, blog posts and drafts are created as folders containing a main text file and any supporting media files. Content can be formatted as Markdown, Textile or HTML. Collections are folders of files that can be included anywhere in your site as a list of links, a gallery or a slideshow. Snippets are text files that can be included anywhere too, useful for content that appears on multiple pages.
Having your content as files on your hard drive is great:
You can rename, delete and move stuff easily.
You can make local backups of your website.
You can enjoy the comfort and efficiency of editing in a familiar desktop or mobile environment rather than filling in forms in a browser.
Having content automatically sync to Dropbox is awesome too:
You can edit offline and your changes will be applied next time you connect.
You can use Dropbox’s Share feature to easily collaborate with people on a single blog post or your entire website!
Your files are automatically versioned online so you can roll-back your content if something gets lost or mistakenly changed.
I’ve developed Lando as my third-year dissertation project over the past 18 months. Since then, I really have enjoyed using it to manage sites. This new version of samrayner.com is powered by Lando and it’s been a blast getting up and running so quickly with a system I know will make maintenaining it a breeze.