Making tools for the job

Untitled2

An internship diary by Aaron Acerboni. Aaron took part in Dharmafly’s first summer internship, when three students joined us at the Lab for the Recently Possible to gain skills in developing experimental web applications. Some of their observations and reflections are posted in this blog.


August 2012 – week 7

“A good programmer is a lazy programmer” is a term which rings true in the web development community. Web applications and software in general are made with the reliance on pre-existing libraries or web APIs.

The software I write indulges in the use of somebody’s shared code with good reason; the code usually does one thing and does it quite well (the Unix Philosophy).

However you may eventually reach a stage when you can no longer rely on pre-written libraries or web services to help you. This may be because your tool no longer exists or never existed in the first place.

At Dharmafly I feel there is a tool based approach to creating the software. We’ve written our own personal substitutes for two existing web services and I am very content with their outcome.

For one of our current projects we wanted to make use of the Google Social Graph API, but it has been recently discontinued. We created a service that has similar functionality, based on the rel="me" HTML attribute. In another project we were using YQL but found that it to be too unreliable. So we then created a similar service which had similar basic functionality. We’ll be open-sourcing both tools.

The significance of this software is not that it helped us make our intended software (although it did). It’s that we now have tools for future projects and the future projects of anyone else who would like to use them.

Work that doesn’t suck

weird wheels-  by Radebaugh

An internship diary by Chris Newton. Chris took part in Dharmafly’s first summer internship, when three students joined us at the Lab for the Recently Possible to gain skills in developing experimental web applications. Some of their observations and reflections are posted in this blog.


July 2012 – week 3

So, since I’m into my third week of my shiny new internship, let’s take a moment and reflect. What have I been doing? Well there are lots of little bits of JavaScript that I never knew were there before, be them forEach loops on the server or _.each loops on the client, JS is gradually getting easier to write.

At the moment I’m working on several projects, but two stand out for me. Firstly I’m getting stuck into Node.js and am in the process of writing a social graph API in the environment. It basically works likes this: you provide it with a URL, say, a Twitter profile, and from there it follows hyperlinks that contain rel="me" to other pages owned by the same person.

For the second project, I’m using Prem’s Pablo library to create an SVG drawing webapp for both touch devices and regular desktop browsers. There’s a wide scope for this project so I’m quite excited about it; one idea was floated about using Node.js and Socket.IO to create a collaborative drawing app, which I think sounds awesome. The project has also been a great opportunity for me to get my head around the challenges of targeting a variety of different devices, along with all of the specific JavaScript and CSS that comes with that, together with a good way of architecting it all into something that’s usable and makes sense.

Basically I’m being paid to have fun – a fairly surreal experience as I was pretty sure that when you called something work it was meant to suck; apparently this is yet another instance of TV lying to me.

Git and GitHub

An internship diary by Aaron Acerboni. Aaron took part in Dharmafly’s first summer internship, when three students joined us at the Lab for the Recently Possible to gain skills in developing experimental web applications. Some of their observations and reflections are posted in this blog.


July 2012 – week 3

At Dharmafly, and modern web development in general, there is great favour in using Git and GitHub to manage software projects collaboratively.

Git is a complicated program that I have yet to fully understand. In fact I feel the majority of developers using it are the same.

Regardless of that I feel that I’ve made a good deal of progress using the software, and feel more confident working on a software project collaboratively.

On my first proper project using GitHub – Planet.js – the outcome was messy. The git messages are inconsistent and branching felt more like an adventure that my source code would not survive. My remedy is often to reclone the project if git became too cryptic. I do that far less often now!

I now feel that I have bettered my understanding of the appropriate git flow for making software changes within a team.

The most significant of these flows is making pull requests. I can really see their benefit now and GitHub’s GUI for them can really give insight to somebody’s feature changes.

This understanding of pull requests had a really good effect on me recently. Crypto.cat is a project I really admire and I’m looking at ways that I can contribute to projects similar to it. I managed to fork and contributed a pull request that was accepted with a thanks from the author.

The Summer Internship

Untitled

Over the summer months, we’ve been blessed to have had three incredible interns with us at Dharmafly – two new graduates and one first-going-on-second year student, all from the University of Brighton’s School of Computing, Engineering and Mathematics.

We’ve been creating new tools and experimental applications in our little future retro spacepod at the Lab for the Recently Possible, at the top of The Dock in Brighton & Hove. In the process, everyone’s been learning a whole lot more about application engineering, open source software, JavaScript, API design, Node.js, Git, and more than anything else, about what it takes to steer a project from idea to implementation, working with others along the way. Continue reading »

DIY Digital Art: Our events at the Brighton Digital Festival

The Brighton Digital Festival returns this September, and there’s a hugely impressive range of events. We’re offering a few events into the mix, all of which revolve around DIY digital art and film. Continue reading »

Learn to code, at “Coding For Humans”

whirl and reach out

We’ve started teaching workshops on coding for the web. Our current course is aimed at beginners (there’ll be intermediate and advanced workshops in future). It’s for people who use the web, but want to get under its skin and learn what it takes to create simple websites and web applications. Continue reading »

Summer Events at L4RP

Beautiful Beach

We’ve got some exciting events coming up at the Lab for the Recently Possible – a project we’ve been forging over the last few months. Continue reading »

2012 and All That

Node.js Lab Day

“Node.js Lab Day”, at L4RP

This year has felt downright seminal since it started. Against the backdrop of a Mayan prophecy for the new social cycle, the Arab Spring, Occupy, the (sometimes unmentionable) triumphant Olympic Games and the ensuing breakdown of the Eurozone and who knows what else… things are also changing for us, albeit in significantly less dramatic ways. Continue reading »

Bitnotes #2

Some bitnotes of these times…


The JavaScript Jungle

The JavaScript Jungle

As part of the Brighton Digital Festival, we organised two “hack nights” at our ‘Async’ JavaScript meetup group. Async is an open community of JavaScript enthusiasts, with sessions twice a month at The Skiff in Brighton. Continue reading »

Winning app for the HP TouchPad

HP webOS TouchPad app

URL: dharmafly.com/hpwebos-hackday/demo/

I went along with Andrea and Sym to The Guardian to join a hack day for HP’s new TouchPad tablet – an interesting alternative to the iPad that uses web standard technologies for creating native mobile applications.

We won the competition(!) with a prototype app for exploring live web content, such as news, reviews and photos, about any place on earth. (See all the projects from the event).

The app we produced is part magazine, part feed reader and lets you swipe and slide the magazine in any direction to shift the geographical location that the magazine’s content represents.
Continue reading »