Driving Git With Emacs - Pure Magic With Magit - Part One

Getting to grips with Git was not to much of a learning curve, although I found it quicker to work on the command line than using graphical tools. Using git status and git log made it easy to keep a handle on my code changes.

As I do most of my Clojure development in Emacs, it was great to discover I could drive git from Emacs using Magit. What follows is a flow through the first steps with Magit.

In part two I look at Git logs with Magit

Read More

GitIgnore for Clojure and Emacs - Ignore Emacs Backup & Temp Files

Even though I use .gitignore files to control common files that should not be committed to a git repository, its very easy to forget about the backup or temporary files that my development tools generate. As these auto-generated files are development tool specific, they are not always included in a .gitignore file.

Especially when you are under pressure to commit changes or deploy your code its easy to include a few things you dont need, especially when using the commands git add . or git commit -am "".

So when I discovered the idea of using a .gitignore_global file, I quicky adopted this and saved myself a lot of time with this simple approach.

Read More

Continuous Integration With Travis-CI, Scala, Play2 and Heroku

During the London Scala community hackday at the Guardian, we first put together the LSug community webapp. For this we used Play2 framework, MongoDB, Github for pull requests and deployed onto Heroku.

Towards the end of the hackathon, someone suggested we also wired the project up to Travis-CI, although none of us knew much about using it. As the hackday was all about discovering how to use new stuff, I decided to add Travis-CI and worry about setting it up when we got to it.

What is Travis-CI ?

Travis-CI** is a continuous integration service that allows you to run build jobs and tests automatically, straight from Github. Its ideal for open source projects.

As its on the web then there is no installation required and its really easier to configure. You simply point Travis-CI to your Github account and you can choose which projects you want Travis-CI to run on. Travis-CI will scan you public repositories, as well as any Github organisations you are part of. Its then an easy matter of switching on those repositories you want Travis-CI to monitor (eg. build, run tests, etc.)

Travis-CI in action

Whilst Travis-CI has been pointed to the the lsug-dojo/lsug-website repo on github via my account, no one got round to adding a Travis-CI configuration file. The down side of this is that those contributors to the lsug-dojo/lsug-website repository received an emailed error message each time something was pushed to the repository or a pull request was accepted.

Not having a working Travis-CI was also noticeable when reviewing pull requests, as Travis-CI talks to Github and lets it know that your projects have failed. It then up to you wether you still want to merge.

Screenshot taken from travis-ci blog

With a quick Google I found an example travis-ci configuration file for Play 2 framework. I just dropped in a new .travis.yml file into the lsug-website github repository and that triggered another travis-ci build. This time the test ran and passed!!

Screenshot taken from travis-ci blog

One benefit of using Travis-CI is to encourage the use of tests, it also gives information about the state of the github repository. This is especially useful when working with pull requests.

This is the first time I have used Travis-CI and it was really easy to configure. If you have any comments or ideas about this, please share them with the group or myself directly.

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

LightTable 0.2.3 - Even More Light for Clojure

So as soon as I decided to write about LightTable, the developers go and improve a whole bunch of things. With the 0.2.3 release that happened earlier today the configuration of LightTable now works correctly.

This change is going to make it so much easier to use LightTable for demo’s and coding dojo’s. The has been an update to the default solarized light theme that looks very pretty to me.

Read More

Clojure Development With LightTable 0.2.x

LightTable is a kickstarter project to create new kind of developer tool for Clojure development, inspired by the Inventing on Principle talk by Bret Victor.

LightTable aims to give developers instant feedback about their code, showing how any change affects their applications. Giving you a developer “surface” to work on, which will bring information to the places you need it the most. The principles of the LightTable design include:

  • Documentation there when you need it, no need to search
  • Edit anywhere and anything - not just text and not just as files
  • Discover by doing, changes produces instantaneous results
  • Shine a light on related pieces of code

Read More

Heroku Hackathon for Media Industry Developers

Bringing developers with similar experiences and interests together is a great way to organise a Hackathon. At the latest Heroku hack, it brought together developers from media companies including the Financial Times, RBI, UBM, TicketMaster, Precursive and Tquila.

As this was the first event, I am very grateful to the 20 developers that braved the awful weather that day.

The evening started with a chance for developers to “talk tech” over free beer & pizza and discuss what challenges they wanted to work on that evening. In the end we split into teams based on the main language they wanted to work in and each team worked on a different application.

As most of the developers were new to Heroku, went over a check-list to get started. As its so easy to use Heroku then this only took a couple of minutes.

Thanks to the developers at Salesforce, we also had a “Heroku mentor” for each team to help them get going. Once everyone was over the initial steps with Heroku, the only challenging part was to work together to build their application in a short space of time.

Getting creative with Application Development

The different teams chose to develop applications with Java, Ruby and Node.js.

One team was quite ambitions in trying to build a location based app for seeing where the most popular tweets were coming from. Using Heroku Postgres they quickly extracted the data they needed. The location information would be shown using Google maps and unfortunately they introduced a bug they didn’t quite fix in in time that stopped those locations showing up as pins on the map.

One developer also succeeded in deploying something he had written previously, a graphical to-do list. Although it was a fairly static HTML & JavaScript site, by changing the index.html file to index.php then Heroku was happy to run it as an application.

The other teams created a voting application and an “all I want for christmas” wish list, similar to Amazon.

So every team got something deployed live to the Internet, some teams even got more than one app live!

The hackathons go on and the next one will be an all day Hack the Tower at one of the tallest buildings in London, Tower 42. Salesforce has an office with amazing views and we 50 developers signed up across different technical communities.

Update: December 2013 - HackTheTower has now moved to the Salesforce Tower in London, previously known as the Heron tower.

Back to basics

By popular demand, I’m also planning some Heroku workshops at Tower42 (where I am also running “Hack the Tower”). These workshops will give developers the experience needed to help them deploying their apps naturally and give them an effective deployment workflow with other common tools such as Github.

The workshops will also give developers insight into how they can learn other cool technology such as MongoDB & Redis without the hassle of installation and configuration.

Sign up for free to the London Salesforce Developer community to keep up with these events.I am also planning a talk for the London Java Community (3,000 members) on “Heroku for Java Developers”. This will help give developers a good overview of the platform capabilities, the developer workflow & tools as well as add-ons and cool technology they can easily try out.

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

All Your Base Aftermath - the Afternoon

The second half of All your base was just as great as the first, although there was so many interesting ideas and new shiny things to try I will be busy through the holidays trying to process it all.

The talks this in the afternoon treated us to a feast of: Git as a NoSQL db, Redis, MySQL at Twitter, LawnChair mobile web persistence, Postgres Demystified and Apache Cassandra. What follows is just some of that data goodness…

Read More

All Your Base Aftermath - Morning Round Up

The All Your Base conference was a brilliant example of getting a conference right. Everything was ideal. The venue was right next to the train station and the after party was directly opposite, so staggering for the trainback home.

The network was awesome, actually getting a hard line and even a free ethernet cable in the goody bag (because who is going to remember to bring one).

And of course an amazing line up of speakers from cool companies including MongoDB (10gen), Heroku, Basho, MariaDB and many more.

Here is part one of my experiences at All Your Base.

Read More

The Master Plan for Salesforce Community Developers

The promise of fast application development using the Salesforce platform is very appealing and the latest release has attracted over 800,000 developers.

Heroku (part of the Salesforce family) is also attracting a lot of attention. By allowing developers to deploy their applications with a simple git push command, it helps make continuous deployment becomes a reality.

These are just two of the reasons I took the opportunity to join the amazing team at salesforce.com. So you can imagine I was overjoyed when I started as Developer Advocate for EMEA. Here is what that role is all about.

Read More