Barcamp Brisbane III: The Search For Flock Wrapup

Barcamp BrisbaneHere is my better late than never wrapup of Barcamp Brisbane III (held last weekend at the East Brisbane Bowls Club), a worthwhile meetup of locals willing to share their skills with others.

Discussion at Barcamp Brisbane III

Discussion at Barcamp Brisbane III

From the lightning talks that I attended:

Speed Intro

A new concept was the speed introductions, one minute to introduce yourself to someone you don’t know. Worked quite well, met a bunch of new people and got a good vibe of the different passions of the attendees.

Favourite Cloud Applications

Session presented by Michael Rees.

None of the applications were particularly new to me, but these were my takeaways for more of a look:

  • Gliffy – online diagram and flowchart editor
  • Slideshare – for uploading of presentations
  • Prezi – requires Flash, but is a big space to show text and is a new and interesting way to show presentations
  • Delicious – not new, but Michael uses it as a home page
  • Archive.org – from the guys that brought us the wayback machine, they have a service that allows you to upload audio and video maintaining the original resolution (although the upload is quite slow apparently)
  • Evernote – I have used OneNote for convenience of late, but a place to store and search for notes on multiple platforms and phones, this is a service that Michael pays for as well
  • Online Storage – LiveMesh is a favourite, gives you 5GB that syncs anywhere. He also mentioned Live Sync P2P, SkyDrive and Amazon S3

Introduction to Git

Attended two sessions on Git, a discussion and then an online overview.

  • A local repository, distributed
  • Competitors are Mercurial and Bazaar
  • Git is not as good on Windows environments right now
  • Github uses for public hosting
  • Gitgui is a an interface to Git, amongst many others

This is certainly the next generation of version control, but I have concerns on how to get this working in the enterprise especially since I have enough trouble convincing people to commit let alone to commit often. Can see its potential for open source and independent or small developers however.

Groovy, Griffon & Grails

Paul King and Bob Brown gave a good introduction to the G3 technologies. I was especially interested in Griffon, since I hadn’t spent any time looking at it previously.

Government 2.0

Was interested to listen into the discussion about PublicSphere / Government 2.0 by Des Walsh, and the opportunities it may present. Des has posted a more in-depth post here: http://deswalsh.com/2009/07/19/government-2-0-at-barcamp-brisbane/

Drupal Hosting

Discussion about Drupal Hosting:

  • Open Atrium – intranet website incorporating wiki, forum, internal-twitter – theme around existing modules
  • Aegir – Drupal Hosting System
  • Suspect that much like Linux, we will see many distributions in future
  • Acquia are the Red Hat of the Drupal world
  • Drupal 7 has gone full TDD with 80% coverage

Fish Shell

An online demonstration of the Fish Shell, which can be best described as a shell that adds a bunch of added functionality to bash, such as better history and visualisations.

Conclusion

A good way to get a launch into some new and interesting technologies and meet some new people. There is apparently another planned before the end of the year.

How to set JAVA_HOME in Ubuntu

JavaI can never remember this, so for mainly for my reference and anybody else who may Google this.

  • Get Java via the Synaptic Update Manager
  • sudo vi /etc/bash.bashrc and add the following to the end of the file:
    JAVA_HOME=/usr/lib/jvm/java-6-sun
    export JAVA_HOME
  • Close your command window and reopen
  • echo $JAVA_HOME to confirm it is set

Speak Social? First Learn Social!

Further to my Twitter Twaining post the other day, a colleague posted a link to this slide deck by Antony Mayfield from iCrossing on our internal Yammer network. What I really like is the literacy angle that suggests that we need to learn to read and write again and that we need to learn by doing (good examples that I left in the summary of my post).

Confluence: How To Move A Page Or A Group Of Pages In Confluence

Moving a set of pages in Confluence is extremely easy but not the most obvious function to find (until you know where it is), and is a common support question. Any user with edit access can do this. The steps are as follows:

  • Navigate to the page you wish to move (this will also move all of this pages child pages)
  • Click the Edit tab
Confluence Screenshot

Confluence Screenshot

  • Underneath the page title there is Location label with the location of the page and a highlighted word EDIT next to it. Click the word EDIT.
Confluence Screenshot

Confluence Screenshot

  • A box will drop down allowing you to change the space and the parent page. If you know the name of the parent page you can type it in, or click the icon next to this field to select from some options. You can also choose here whether to move all of the child pages as well.*
Confluence Screenshot

Confluence Screenshot

  • If you use the Choose Page view, you can choose the page from a number of views. A hint here is sometimes the search can be a bit frustrating, so if you view or edit the page you wish to change just before starting this process, it will show up in the History or Recently Modified tab.
Confluence Screenshot

Confluence Screenshot

  • Click Save and your page (and, by default, it’s children) will be moved.
  • Check the links at the top of the page to confirm your page is moved.
Confluence Screenshot

Confluence Screenshot

One last hint, if you wish to move your page to the home page of the space, in most cases this is called Home by default.

Don’t forget the Confluence online help is always extremely helpful at: http://confluence.atlassian.com/display/DOC/Confluence+Documentation+Home

(for Confluence 2.x)

Twitter Twaining

I delivered some rather impromptu and unprepared training last week for some colleagues on their use of Twitter in the Enterprise. Amongst the millions of training threads, I found a very good (but also a very customer specific) Tweetcamp presentation.

So using this slide deck as a guide, I delivered the following training points:

Twitter vs Facebook

  • Facebook is primarily about connections with your friends and your social connections (photos, walls, games, applications, gifts)
  • Facebook has become more like Twitter in recent releases by asking the question “what is on your mind”?
  • Twitter can be viewed more about your connection with people who have common interests (although many of them are your friends)
  • Twitter is less rich out of the box
  • Following somebody on Twitter you are following the thoughts of the whole person, not just the ideas you might best know them for

Twitter vs Blogs

  • Twitter is what is referred to as micro-blogging
  • Twitter is limited to 140 characters, so is a snapshot of the authors thoughts
  • Blogs provide a facility for more in-depth thoughts, analysis and reporting
  • If summarising an event, use Twitter to throw out live snippets, thoughts and quotes and blog after the event to review and synthesise in greater detail
  • Twitter is a good way to advertise new posts to your blog

Twitter vs Email

  • There is no expectation to read and/or respond to everything on Twitter. You dive in and out of the stream as it suits you and take notice of as much or as little as makes sense
  • Twitter conversations are open and discoverable to all
  • Direct messages can be used somewhat like email for a point to point conversation
  • Twitter allows you to unfollow or block “spammers”
  • Email is still much better for more “personal” messages

Why Do I Care?

  • Twitter usage is growing exponentially, on the back of big celebrity support of people such as Oprah and Ellen as well as traditional media such as CNN and 60 Minutes
  • Twitter is still has a much smaller user base than Facebook
  • Social media like Twitter is here to stay, but you need to be ready for the next thing if and when it comes along.

Going Viral

  • Using these tools may make you go viral. Many traditional media outlets have attempted this, very few are successful, but those that are successful are extremely successful.
  • You Tube is currently the platform that is feeding virality

Twitter vs Yammer

  • Yammer is Twitter for the enterprise, posts are blocked to those that can sign up with an email on your domain
  • Can dual post to Yammer and Twitter by setting up your Twitter account in the Yammer settings and adding the #yam tag to the end of your posts
  • Many other services allow you to dual tweet. Facebook has a similar #fb plugin or the ability to import all of your tweets automatically

Conventions

  • #hashtags allow people to tweet on a common searchable topic, especially useful for conferences for combining posts. There is nothing to setup, just announce your hash tag to the attendees.
  • @replies allows you to reply to someone and get their attention (and tell others your message is directed at them more specifically)
  • RT @re-tweets allow you to re-tweet someones idea but you wish to credit them for it as well as highlight to them you like their idea

Twitter API

Twitter Ettiquette & Ideas

  • In general, for business, follow legitimate users that follow you (ignore spam followers). This is less so for personal users, follow who you have interest in
  • Following somebody does not mean you endorse them
  • Auto replies to new users is not recommended, it is just useless spam
  • Locking updates is not recommended, if you want to lock your ideas write a journal in a pad with a lock
  • Replying and retweeting is recommended when it makes sense
  • Retweeting introduces your followers to new followers as well as crediting the original source
  • Clients make it much easier to manage Twitter over the basic website by automating functions and managing searches

I then followed up with a few real examples. The key takeaway is that the attendees need to get in and try out using the tool on their own accounts before tweeting on behalf of the organisation. It is much easier to understand Twitter just by using it.

Wrap up from CITCON Brisbane

CITCONI attended the CITCON (Continuous Integration and Testing Conference) in Brisbane last weekend and had an awesome time discussing a range of topics with the most passionate in this field.

Deep in CITCON discussion

Deep in CITCON discussion

I have added my notes to the conference wiki,but my takeaways from the sessions I attended are:

Elements of Enterprise Continuous Integration

Jeff Frederick led a discussion based around the Elements of Continuous Integration maturity model:

  • for teams that are already doing continuous intgration, it gives you a target to obtain
  • is obnoxious after insane (where to for teams that are already at the top level)?
  • tooling makes continuous integration trivial now (when Cruise Control was released many people thought it crazy that you might build on every release, not its a given)
  • the model was developed because people assume what is possible is based around their personal experiences
  • the model shows the industry norms and targets, and if your team is not at these levels you are behind the curve

The discussion branched out around the following ideas:

  • scrum does not prescribe continuous integration, but continuous integration is a good development technique
  • that it should be acknowledged that there is a difference between project builds and full product builds (which can take days)
  • I raised the idea that perhaps there should be an element around team principles, and that things like performance (and more importantly, the team realisation that performance should be monitored and improved) should be an indicator to maturity (there was much debate about this!)
  • a number of industries potentially have their continuous integration processes audited, such as defence, gaming  and financial organisations that have Sarbanes-Oxley requirements
  • it was acknowledged that most large organisations have teams at different levels on the maturity scale (this is certainly my experience)
  • dynamic languages and don’t really build or deploy. This then raised discussion that dynamic languages are not compiling as opposed to not building, and that in many cases one man consultants can manage their deployment process in a much more lightweight manner
  • parallel to CMMI, is there a payoff to getting to insane?
  • maturity is often determined when we move from dropping code to testers versus testing the development build (where testers are writing the code while the code is being developed)
  • where is the line that determines that the build is complete? It should be the entire team, not just the developers or the QA team
  • the QA team is traditionally where much of the auditing happens, therefore many testers are reluctant to change as they have built up processes to deal with audits over a number of years

For the record, the cutting-edge agile teams I have worked with over the last few years were at the following levels:

  • Building (Intermediate)
  • Deploying (Intermediate)
  • Testing (Insane)
  • Reporting (Intermediate)

We still have work to do!

Virtualisation & CI

I used the “law of two feet” during this session, but was interested to hear that many people are using virtualisation very effectively in their test labs, and that it makes getting environments and data ready for testing much easier.

Long Build Times

The discussion was well-established by the time I got to this session, but some of the key points for me from the discussion were:

  • question as to when static analysis checks should be run in the build – the consensus that running them first means you get the quickest feedback
  • longer builds should be run nightly so as not to hold up developers
  • prioritising build queues or using different machines sounds like a good idea, but nobody is doing it
  • you can reuse functional tests for performance tests, but targeting specific tests seems to work better
  • Atlassian use JMeter for performance tests and have a variety of Maven and Ant builds, but use Maven for managing repositories
  • Ant is still well regarded, Idea support is awesome, many people do not understand the power of custom ant tasks or the ant idoms
  • the build should be regarded as part of your code
  • discussion about using a Java build tool, such as Hammer and why we can’t articulate why it seems wrong
  • not enough people understand Maven, usually there is “one guy” on the team
  • Vizant is a good tool to graph the build
  • EasyAnt combines all of the Ant idioms plus Ivy

Is Scrum Evil?

Jeff Frederick led a discussion that he is led at previous CITCON’s around the world

The team first debated why Scrum is Evil. During this discussion I really thought the whole agile movement was done for. Jeff asked the group to finish the sentence Scrum Is Evil because…:

  • it becomes an excuse
  • that’s not Scrum
  • tested as a silver bullet
  • hides poor personal estimation
  • master as dictator, project manager
  • two days to agile master certification
  • daily standup equals agile
  • agile by the numbers
  • is dessert first
  • you lose the baby with the bathwater
  • Scrum teams don’y play well with others including customers
  • it has certification
  • is the new RUP

Jeff then proposed a way to think about Scrum adoption as outlined in Geoffrey Moore’s “Crossing The Chasm”. The early adopters had success while the early majority are putting their faith in training everybody as Certified Scrum Masters (a problem that appears to be a far greater issue in Europe than Australia).

Then, just as though all hope had gone, Jeff asked the group to finish the sentence Scrum is Good beacuse…:

  • people can get it
  • an easy introduction
  • a good starting point
  • it is better than a cowboy shop
  • people can actually follow it
  • improves visibility
  • blockers are highlighted
  • testers can start work early
  • provides a forum for communication
  • can engage customers in a much richer way
  • states there should be a facilitator
  • results focussed
  • makes everybody responsible for end result
  • better communication from end result

The key outcome by the group was “Scrum is not evil… people are evil”

This was a great way of trying to tease out the issues and advantages to using an agile process and one that we may be able to use in the enterprise with teams who have been on training but appear to be resistant to change.

Seeding Test Data

A good discussion about ways to seed test data

  • Erik Petersen introduced the group to GenerateData.com, a free site that generates real adddresses and data based on factors a random amount of times that you can then inject into SQL – the site looks awesome!
  • others in the group mentioned LiquiBase that can be used to version the database, is designed for database management but can be used to seed data
  • Unitils is used to setup data scripts
  • one suggestion was to build a reset database function into the system
  • HSQL (Hypersonic) is a good way to create databases from Hibernate, in memory

The discussion got a little more generic and talked about:

  • Roo, a java Grails-like platform
  • WebObjects by Apple is a lot better than it used to be

Extending CI Past Traditional Dev & Release Process

I led this discussion, and whilst it focussed mainly on different usages that I have been involved with (with assistance from Paul O’Keeffe and Paul King), we also had a good discussion about Tableaux and the build process at Atlassian.

Conclusions

A great open conference attended by people passionate enough to give up their Saturday to talk about continuous integration and testing.

Different perspectives of Twitter

Today I got invited to a meeting where some of my colleagues were trying to map out their approach to using Twitter as a marketing tool for a spin-off venture they are re-launching. They had all seen Twitter and all have all setup their own accounts and understand about the 140 character limit, @replies and re-tweets. However, what was hard to explain was the difference between the logged in and public views of Twitter.

You see, if you look at somebody’s Twitter account publicly, you only see their tweets, not their @replies and certainly not the updates of those they are following. But, if you are logged into your own account, you obviously see your update, your replies plus the updates from all of those you are following. And as this is the view most people see once they are in the Twitterverse, it can be hard to describe the difference to those that are new to this world.

Given that the Twitter account they were discussing is for a venture, meaning that my colleagues would only be logging in when creating tweets, it then begs the question of who this account should follow. Being a venture, following those legitimate users who follow them seems to make sense. It makes less sense, however, to follow experts in their domain, given that nobody will actually be looking at the follower stream. Furthermore, Twitter only supports one user being logged in as a time (it was never really designed for teams to be tweeting).

The best they can do now is start to use their personal twitter accounts more and get used to the way Twitter works. The rest will then make sense.