Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The @lncd toolchain

The @lncd toolchain

Delivered at #dev8ed 2012 in Birmingham, UK on 30th May 2012.

Alex Bilbie

May 30, 2012
Tweet

More Decks by Alex Bilbie

Other Decks in Technology

Transcript

  1. LNCD LNCD is Not a Central Development group! lncd.org Set

    up summer 2011 under Lincoln's Student as Producer project. Core contributors are from CERD, Library, ICT. 1 x Intern Web Developer. £20K budget, mostly to give away as incentives to staff and students.
  2. What LNCD do Mainly API-driven open data projects. #agile, #opensource,

    #opendata #LAMP, #php, #codeigniter, #mongoDB, #OAuth, #APIs, #HTML5, #CSS3, #github and moving towards #RDF and #LinkedData.
  3. Hacking the university Hacking has always been an academic practise

    - http:/ /lncn.eu/jp23 Hacking was born in universities - MIT AI lab 1960s Peer review Don’t let the (business) system get you down
  4. Lazy f*cking students ViolaWWW (first graphical web browser) created in

    1992 by a student Torvolds created Linux in 1991 whilst at university
  5. Seat people close together, communicating frequently and with goodwill. Get

    most of the bureaucracy out of their way and let them design. Get a real user directly involved. Have a good automated regression test suite available. Produce shippable functionality early and often. Crystal Clear Agile
  6. Pivotal Tracker It’s free for public projects, individual projects and

    academia. Collaborative — everyone can see what’s going on. Tracks development tasks, bugs, chores and releases. Allows instant customer/client feedback loop. Integrates with all kinds of stuff.
  7. Git 101 Distributed version control system. Flexible branching and tagging

    model. Intelligent code merging. Task-centric CLI interface, or nice GUIs for most platforms.
  8. ‣ cd dev-bliss ‣ git init Initialized empty Git repository

    in /dev-bliss/.git/ ‣ touch readme.md
  9. ‣ cd dev-bliss ‣ git init Initialized empty Git repository

    in /dev-bliss/.git/ ‣ touch readme.md ‣ git add readme.md
  10. ‣ cd dev-bliss ‣ git init Initialized empty Git repository

    in /dev-bliss/.git/ ‣ touch readme.md ‣ git add readme.md ‣ git commit -m “Readme file” [master (root-commit) 7de2713] Readme file 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 readme.md
  11. ‣ nano readme.md ‣ git add readme.md ‣ git commit

    -m "Changed the readme" [master 9fdb5a2] Changed the readme 1 files changed, 3 insertions(+), 0 deletions(-)
  12. More awesomeness: Syncing with remote code repositories. Creating branches to

    work on development versions or specific features. Merging different people’s work together. Tagging releases. Lots of other goodness.
  13. ‣ cd dev-bliss ‣ git remote add origin [email protected]:alexbilbie/Developer- Bliss-Demo.git

    ‣ git push -u origin master Counting objects: 3, done. Writing objects: 100% (3/3), 214 bytes, done. Total 3 (delta 0), reused 0 (delta 0) To [email protected]:alexbilbie/Developer-Bliss-Demo.git * [new branch] master -> master Branch master set up to track remote branch master from origin.
  14. Github 101 It’s free for public projects. Private ones vary

    based on personal or team pricing. Built around making collaborative coding easy. Has a native Windows and OS X client to make life easy for users. Happy with any other Git client for people on other platforms.
  15. Test all of the things! Linting and compilation testing makes

    sure your code is valid. Unit testing makes sure the code does what it should. Mess analysis makes sure you can find things that go wrong. Complexity analysis makes sure your code isn’t difficult to run.
  16. Delicious paperwork Documentation from code is accurate and helps downstream

    development get up to speed. Analysis documentation helps you fix problems quickly.
  17. Building... Compiled code runs faster. Compilation means that code itself

    is valid. Compiled code can be smaller, or easier to distribute.
  18. ‣ run lint ‣ run lines of code analysis ‣

    run dependency analysis ‣ run mess detector ‣ run code style analysis ‣ run copy/paste detection ‣ generate code api documentation ‣ perform token replacement ‣ run unit testing ‣ generate browsable code ‣ generate violation reports ‣ generate code statistics report ‣ bundle for distribution
  19. Jenkins 101 Open Source continuous integration server. Does the repetitive

    task of compiling, testing and analysis. Displays it all nicely in a web-accessible interface. Easily extensible, loads of plugins already available.
  20. Install Jenkins. Ubuntu packages are available. Configure Jenkins. Templates available

    for most languages. We use http:/ /jenkins-php.org/ Add necessary files to your project’s source. Enjoy knowing more about your code.
  21. Campfire 101 Private chat rooms Allows distributed teams to communicate

    Full chat history Automated bots to help us out
  22. Rackspace £7+ (256MB/10GB) per server PointHQ £0 Pingdom £0 Github

    organisation £15 Pivotal Tracker £0 Jenkins £0 Campfire £15 Hubot £0 Monthly cost