Configuring Emacs Org-Mode to Managing Your Tasks

Emacs Org-mode has a feature called Org-capture that makes it easy to keep track of all the to-do’s that crop up as we work on projects. With Org-capture you can make comments across all your files and projects and link to them all from one place.

Here is how to configure Emacs Org-capture so you can quickly create new tasks relevant to specific files and easily manage them all in one place. If you are not familiar with Emacs Org-mode, take a look at my article: Manage your developer life with Org-mode.

Read More

Getting to Grips With Git - Understanding the Git & Github Workflow

Learning to use Git to version your development projects can seem a little strange at first, although once you have a few basics it quickly becomes a natural and fast tool to use.

Here are some of the basics of the Git and Github workflow in word and pictures, created from my mission to teach the world (starting with London) to use Git effectively.  If you just want an overview of the basic commands, see my Git Quickstart Guide.

Read More

Hacked - a Judges View of 500 Developers Creativity in London

As a judge at Hacked I was amazed by all the developer talent concentrated into one weekend Hackathon. There were lots of great ideas realised into apps in such a short space of time. With 500 developer making up 74 teams, it was a challenge to pick out winners.

As Heroku were a major sponsor we decided to give out prizes to 5 teams, even then it was still a challenge to choose only 5. We also gave out lots of swag and the t-shirts and moleskin notebooks went down a storm.

With so many diverse creations on show Hacked really lived up to its tagline: Learn ,Build, Share.

Hacked.io: Learn

I ran a workshop introducing Heroku, a service to allow developers to deploy there apps quickly without worrying about complex scripts or managing servers. There were lots of questions about Heroku, Postgres database on demand and other addons. It was great to see enthusiasm from developers wanting to make the most out of the cloud.

I also ran a workshop on Git, so everyone could put their code up on Github or deploy on Heroku. As Heroku uses Git for code deployments, then once you are comfortable with basics of Git, deploying in this way seems very natural.

@neilmiddleton also gave a workshop on the new Heroku API, allowing you to create apps, scale them and monitor them from your own applications.

The BBC, Nokia and lots of other sponsors also gave great talks and help with their APIs. The BBC had a whole bank of TVs available to hack real TV apps on.

Hacked.io: Build

Everyone pretty quickly got into teams to start hacking. There were physical hacks, api hacks, music hacks, TV hacks and some really bizzar hacks going on all through the weekend.

When not running workshops, I interrupted teams hacking away to find out what they were up to.

The Heroku team had a few spare minutes free to build an app too. Using the Heroku API, we built an app that would show a snippet of your logs when ever someone connected to one of your running apps, showing the location of the users IP on a map.

Hacked.io: Share

It was great to get so many teams sharing their amazing creations. The diversity of the crowd produced a feast for the eyes and ears. I’ve only captured a few of my own highlights in this post.

Getting Organised

One of the apps I liked the most was the Event board for organiser by @EChesters as running developer events on the scale of Hacked is a big challenge. The Hacked team did very well, although having a good app to managing all aspects of an event in real time would help any team run a event more smoothly. I especially liked the real time alerts mobile app. Lets hope this team takes the app further.

Rise of the Machines

There were many hardware hacks at the event, especially with node copters, micro node copters, nano node copters and copters controlled by Playstation Move controllers. My favourite amongst these was Wild thumper, a node copter that could follow a remote controlled car just by attaching a small ring of lights to the car, that was really cool. Arduino powered controller for remote controlled car, with Raspberry Pi camera driving the copter.

The world needs more cuteness

There were cute hacks like the Bunzor Cam by @danielknell, @mfujica, @motoko_k and fudge the rabbit, because there are just not enough cute bunnies on the web.

Other cute hack involved a knitted darlek and a chrome extension that changed any pictures on a web page to that of a cat… great fun if you do a Google image search for dogs and watch them all change to different cats!

Let there be light

It seems the Hue Light boxes from Philips caught a fair bit of attention. These were a 3 bulb array that you could connect to over WiFi or Ethernet and control the colours and sequencing of the lights. The most useful hack for me was the BusBulb. This hack tapped into Transport for London open data on transport and gave you a lighting countdown to when you needed to leave for your bus. This would save me a lot of checking of my phone for the time and save batter.

The Hacked.io Hackathon Winners

It was tough deciding on winners when there were so many great submissions to choose from. I spent time finding out what the teams were building as its hard to get a true picture just from the 90 second demo at the end.

There was one app that all the judges quickly agreed was the winner, FlashMed. This app was quite simple but provided a very important service, managing a medication regime for the elderly. Most elderly people have to take a range of medicines and these are all colour coded to help them. However its easy to forget the schedule you need to take. So the app connects to a Phillips Hue lightbox and displays the colour of the medication at the time you are supposed to take it. Once you have taken it then the light will switch off. If you fall asleep then the light shows which medications you need to catch up on. Simple and effective

The peoples choice went to the crazy kids who won two giant lego Starwars kits, the death star and millenium falcon. That should keep them busy next weekend.

The Heroku Winners

API Unifier

@theNeomatrix369 created a wrapper around the Heroku API to help Java developers create cool applications easily with the Heroku API.

The API Unifier is a lightweight Java library that brings together a collection of RESTful APIs under one roof! This simplifies the use and maintenance of dependencies on external APIs. This library creates an abstraction layer between your application and APIs from disparate vendors to increase cohesion, reduce coupling.

MusicMatch.io

MusicMatch is a social music competition where you need to guess the correct 10 second clip to build up points to get you up the leader board. The quicker you answer the more points you get, but get the answer wrong and you and you lose points.

The application was developed with Nodejs and uses Nokia music API to get the music tracks. Redis (Heroku addon) is used to manage the leader board and the app was deployed on Heroku.

Boomerang

This app is a really fun idea and adds a different dimension to the experience at an event. With Boomerang you take a picture and throw it out there and see what picture you get back in return. You never get your own picture back, so you get to experience a little of what everyone else at an event experiences.

The team built this as a native android application with a back-end service running on Heroku to manage which images you received. The app could also be passed to your friends or strangers at the event if they have a NFC enabled phone.

99hours

This app helps people develop their ideas and get thought the barriers to turn those ideas into apps. 99hours connects people with those ideas to those who can help them out. The goal is to create a highly collaborative place to nurture ideas into projects. This collaboration is realised in features such as feedback from the community on ideas by up-voting, or providing a variation on the kick-starter model and allowing direct donations to a project you want to support.

Pigeon

Tom Morris created an app called pidgeon as a kind of location brokarage service, a personal api for your location. Deployed on Heroku, this app has a simple API to post location information into forsquare to give real time updates of where you are. To display map information on the website, the hack was written using Rails and used MapBox, OpenStreetmap and MogoLab Heroku addon. Sometimes you want to hide your location, so the app also had rules to hide your location when you are at home or other personal locattions. To test the app, Tom also used Macosx controlPlane to simulate different networks.

The Next Hackathon

It does take a few days for the adreneline and lack of sleep to balance themselves out after a Hackathon. Lucklly then there is a few weeks before Leeds Hack. Leeds hack is great, especially if you want to get your children involved in coding.

I’ll be at Hackference Birmingham next, the first event of its kind in Birmingham, so it should be a great event. I’ll be doing workshops around Heroku & Git and it seems there is lots of interest around Clojure, functional programming on the JVM.

Mike Elsmore - I cordially invite everyone who went to @HACKEDio to come to @hackferencebrum and help me make something awesome http://hackference.co.uk

Thank you.
@jr0cket


This work is licensed under a Creative Commons Attribution 4.0 ShareAlike License, including custom images & stylesheets. Permissions beyond the scope of this license may be available at @jr0cket
Creative Commons License

Designing Your Own Commit Graph With Git

Git log is a very powerful tool for tracking all your changes, even across different branches and multiple repositories. However git log default output is verbose and not a great way to visualise the commit history.

Fortunately Git is very customisable, both for humans and tools. This article covers one way to creating your own customised output for git log that helps you work with branches and track changes through local and remote (eg. Github) repositories.

Read More

Hacking for Good at the Accessibility Hackathon

Its not often you get a chance to make a difference the way people live their lives. As my role of judge at the recent Accessibility hackathon by Barclays I met lots of teams spending their weekend doing just that.

The hackathon started with an amazing set of stories from the charities involved. These stories gave the teams a great insight into the challenges people in these communities faced. The presence of the the accessibility community through the hackathon helped teams stay focused and create relevant apps that would make a significant difference.

The Charities

Judging the Hackathon

With all the great ideas generated by the teams taking part, it made the judging quite tough. Although not as tough as hacking an app together in less that one weekend :)

At the end of the hackathon, each team had 3 minutes to present there app, which is really no time at all. However, as a judge I had been going round the teams over the weekend to get to know them and find out what they were doing. This also gave me insight into how they had progress over the weekend. One of the things we were looking for was if the team could carry on developing there apps afterwards, so their capability and cohesiveness played a factor in our final decision.

It was vital to have members of the accessibility community on the judging panel to be able to judge the impact of each app presented. There were several judges who had physical challenges who related closely to the value of each teams app.

Accessibility Apps that made a difference

With 19 teams to choose from, the judges had a challenge on their hands to come up with 3 winners. At one point we asked if there could be a couple more prizes. The apps that really stood out for me though were:

  • Soundbyte - filtering out noise for different types of hearing loss
  • Visual-eyes - creating a very detailed and highly accurate description of the scene in a pictue (fantastic concept)
  • Gesture Touch - controlling HTML5 apps and games simply
  • Elephants, ears for everyone - transcripting conversations in real time
  • Real assistance - guiding peoples journeys and assisting the last meters
  • Say what you mean - navigate the web by voice
  • MemoryBox - helping those suffering dementia to recall memories easily

Accessibility Apps in detail

What follows is a summary of what I thought of some of the apps presents.

Soundbyte

I really liked the concept this team opened wiht “We have all experienced sound loss”, it helped make the project very relevant. Also the way the team got everyone to stand up and clap to simulate the experience was very striking.

The project itself was great. Having a smart phone as a hearing aid takes away some of the stigma around the hearing impaired. Although phones can cancel out background noise in phone calls, this Android application can eat the sounds that you don’t need. As the app cancels out the background noise in near real time, you can then listen to only that which is valuable, based on filters defined for different types of hearing loss. The team had already created a number of options to help you find out the best sounds based on a persons hearing ability and situation.

This was a very striking project and is high on the list as it also has implications for a wider audience, not just those with hearing loss. As the app was available on the Android Play store in about an hour after they presented, the project seemed very sustainable.

Visual-eyes

This team only came together at the hackathon and found a vision inspired from talks given by the charities. There vision was simple and very relevant to the theme of the hackathon. Photos are everywhere and people love to share them with family and friends. However, its not possible to share photos in an easy way with those who are visually impaired

Their app, Visual Eyes, returns a meningful description of any picture provided. I liked that the team used random images from Facebook as they are representative of the images people share. As the images were random, then you saw how credible the software was at describing the images. I was very struck how detailed the descriptions could be, including if people were wearing sunglasses!

This app was very impressive and therefore high on my list due to the detail of description of each picture. The team had already integrated it their app with Facebook and there were many other integration possibilities. I was very confident this team would carry on developing their app.

The team were looking to open source the whole processing so that costs from 3rd party services are taken out of the process. The team are also considering the use of tags to help make the description even more relevant.

Real Assistance

This app stood out immediately. The ability to record your favourite journeys and play them back to help you find your way seemed like a real win for those with vision issues. It would give those people a lot more confidence when they are navigate to their favourite places.

This app could also be useful for a wider audience, for example to help navigate to a place in a new location or a foreign country.

This app really stood out when the final part of the app was shown, the assisted guidance for the last few meters. To be able to call someone who can direct you using the camera on your mobile device and be guided in real time was a great idea. It can be a challenge finding entrances and then navigating steps and doors, so this is a great way to deal with that issue too.

The app uses existing phone technologies and WebRTC so the team seemed to have a fully working app come time for the demo.

The team had an eye on future features, such as pre-program points of interest (Banks, restaurants). This demonstrated that they are willing to take this app further.

Gesture Touch

The team created a way of helping those with physical challenges to interact with HTML5 based apps, especially games. The team created different modes and controls to help users find the best way of interacting.

I liked that the team had simulated using their app using a device that restricted movements in the hand and what they produced looked quite effective.

This team also had future plans for their apps, including integrating voice recognition, so it seems that they will carry on with their development efforts.

Elephants - ears for everyone

The team develop a real time transcription of conversations taking place, aimed at those with hearing disabilities. They had tried to get hold of some Google Class equipment so that they could have had real time sub-titles when talking to other people.

The team instead created a simple and clean mobile app, allowing you to open up a “channel” in which two or more people could talk and the text of their conversation would be displayed in a similar form to modern text apps.

The team did a great demo, although there was some doubt about how effective this would be if there was background noise. The team seemed keen to keep on with the development if they got positive feedback, so if they can also include filtering of the background noise I believe they have a valuable app.

Say what you mean

I appreciated that the team invested time in the experience of being blind and accessing the web. That they discussed ideas with the people from RNIB helped them identify a real need, that the key desire people had was to go faster. Screen readers linearised the experiences when people acutally wanted a content driven experiences

The app had a very simple user interface, press a key and say a word. You are then sent to a link that matches that word. This is acceptable for websites your are familiar with.

For other sites you don’t know well, then its used like a search that returns the links at the start of the page so you don’t have to go hunting for them.

As their app works as a browser extension, then it works for all web sites without specific configuration.

It was great that the team have considered future functionality, like related terms and filtering search criteria. I can see this app being quite useful to many.

Teams that had a great idea but had not gone far enough with the development

Food for though

The team had a great presentation and I really appreciated the use of using Alice as a persona to help us understand who the audience was the were trying to reach.

The concern they were talking was memmory loss which affects a great number of people. Without a good memory your experiences from a human perspective is about having your independence.

The team continued to tell the story around the persona. Alice does not always eat properly, because she forgets if she hasnt eaten. The app the team developed reminds Alice of key meals, helps her select from different meals and talks her through the making of the meal she has selected. The meals can be put together by family members, doctors or nutritionist, to give more diversity to Alice’s diet.

Although this was a great concept, I felt that the team had not developed the application far enough in the time they had. There were unanswered questions and I hope that the team are able to get more of the app developed.

MemoryBox

The team chose a really powerful sounding topic, remenicance therapy. This was a great technique for helping family and friends to engage with those with dementia By creating a wide range of media to form a collection that would trigger memories about events and people, it would help those with the condition feel more positive and help them relive experiences.

The challenge was to create something that would easily create this experience and be significant improvement on the basic photo collections you can do with many online services. The app would need to help the supporting family members create these collections easily and relate them to specific memory categories. An app would also need to help the family members by relating images to each other automatically, I guess in the same way that Amazon relates other products.

Leap Motion accessibility device

The sole developer on this personally driven project - his grandmother has difficulties with her hands and finds interaction with computing devices almost impossible. However, she has a very active mind and the developer wanted a way to help her engage with the Internet which most of us take for granted.

The project was quite simple, more like a proof of concept as no real substantial application was created. The developer used an open source project and a Chrome extension to support the leap motion device. Whilst this is a great device, I was looking for something specific to be built from this concept.

Although this was a enthusiastic developer that may create some good ideas, he didnt really create much of an app to realise this concept.

Library accessibility

I liked the idea of improve accessibility of other apps by identifying libraries that apps that are used, then sending in patches to make them have accessibility features. This was a great effort by one developer, although if its only one developer I was not sure on the impact. This wasnt an app that made it easier for people to improve libraries or even encourage other developers to get involved.

Its a very worthwhile effort on this sole developers behalf. I would have like to have seen something that would help lots of other developers do the same thing.

Thank you.
@jr0cket


This work is licensed under a Creative Commons Attribution 4.0 ShareAlike License, including custom images & stylesheets. Permissions beyond the scope of this license may be available at @jr0cket
Creative Commons License

Starting Nodejs Development on Ubuntu

Outdated: please disregard this article as it is out of date. I install node in my local filespace on Ubuntu now as its so much easier to manage. Basicaly I download the Linux binaries and put them in ~/apps/nodejs/current, then add ~/apps/nodejs/current/bin to my path using my shell profile (~/.profile). This makes using npm -g really easy and does not require the sudo command.

nodejs is a very popular framework for JavaScript development, but as I found out at the MongoDB hackathon its not that straight forward to get going. So here is a quick guide to get going with Node.js on Ubuntu.

Read More