Promises and E2E Testing with Protractor – AngularJS Melbourne – 5th August 2014


Event page | Meetup page


End to End (E2E) testing of JavaScript with JavaScript (Protractor JS)

  • Braiden Judd @pragmaticyclist
  • Slides
  • ProtractorJS Github
  • Similar syntax to Selenium
  • Navigate:
    • browser.get(‘/#/blogs’)
    • browser.refresh()
  • Selecting:
    • element() : single element / first element
    • element.all() : returns an array
    • Examples
      • browser.driver.findElement(‘ok’)).click();
      • browser.driver.findElement(by.binding(‘blog.title’)).getText();
      • browser.driver.findElement(by.model(‘password’)).sendKeys(‘password’);
      • browser.driver.findElement.all(by.repeater(‘blog in blogs’)).get(0).getText();
  • Events
    • click() : click the element (e.g. button)
    • sendKeys() : type into a text box

Melbourne AWS User Group – 30th July 2014

aws activateEvent page link / Meetup group

AWS Activate

  • From the folks at Amazon
  • AWS Activate
    • Website
    • A program to provide resources to startups: from free tier usage, labs, webinars, support and AWS credit
    • Self-Starter Package: for any startups
    • Portfolio Package: for startups in select accelerators or seed funds. Will be ‘audited’ by Amazon and will be given much better benefits vs Self-Start Package

Cloud Computing in Africa

  • From Thomas Shaw, the tech man behind
  • Providing unique perspectives with regards to security, reliability, scalability of AWS especially compared to local hosting.



  • Kestral
    • AWS management console for the iPhone
    • In development by Rob Amos @bok_


Introduction to Chef Meetup – 28th July 2014

28th July 2014 – Introduction to Chef held at Sacon Group for the Chef Meetup group

Chef and Chef DK: The Chef Development Kit

chef and chefdk

  • by Michael Ducy (@mfdii), a Global Partner Evangelist at Chef
  • PDF slides
  • Chef essentially enables the “infrastructure as code” devops movement
    • Versionable, testable, and repeatable as application code
    • Relies on reusable definitions known as recipes to automate infrastructure tasks
    • Recipes use building blocks called resources (e.g. file / template / package)
    • Recipes are stored in cookbooks
    • A cookbook is the fundamental unit of configuration and policy distribution
    • Chef server stores your recipes as well as other configuration data
    • Chef client is installed on each node in your network
    • Chef client periodically polls the Chef server for new configurations and applies if necessary
  • Chef DK
    • A component of Chef to enable organizations to develop internal best practices for Cookbook development and testing
    • A curated set of open source tools for Cookbook development
    • Download at
  • Tools
    • chef – a new command to make development easier
    • Berkshelf – automatically resolve cookbook dependencies
    • Test Kitchen – framework for integration testing
    • ChefSpec – unit testing of Chef cookbooks
    • Food Critic – linting tool for Chef cookbooks
    • Standard Chef tools – knife, chef-zero, ohai, chef-client
  • Other Links



MelbDjango Hackfest – 24th July 2014

24th July 2014 MelbDjango Hackfest held at Common Code and hosted by Curtis Maloney for the MelbDjango Meetup group.

Mostly being newbies and with some people interested in testing, Curtis started off showcasing his new Django Classy Settings before covering some topics on testing and other miscellany

TAkeaways / Links from the night

Buying Guide: USB Battery Packs / Powerbank


USB battery packs / powerbanks (or whatever you call them) are great when you’re out and about and need to charge your devices but there are some features which you should look out for when buying one

  1. Buy from a reputable source
  2. Sufficient capacity
    • You need a powerbank that is capable of charging all your devices and has enough juice to get you through the day
    • Phones: ~2000mAH, 7″ tablets: ~4000mAh, 10″ tablets: ~8000mAh
      (iPhone 5S: 1560mAh / HTC One M8: 2600mAh / Lumia 1520: 3400mAh / S5: 2800mAh / iPad Air 2013: 8820mAh / Nexus 7 2013: 3950mAh)
  3. Output Charge speed
    • Ensure it can charge your device at the best and fastest speed
      • Tablets usually 2A
      • Phones usually 1A
  4. Passthrough ability
    • When the powerbank is being charged when connected to a power outlet, passthrough allows it to charge any device connected to powerbank, straight from the power source and not from the powerbank itself: perfect if you want to leave all your other charges behind and charges all your devices with just a single power outlet! (Note: may want to ensure that it charges at full USB charge speed)
  5. Battery gauge
    • Nice quick way to know how much capacity is left in your powerbank
    • Allows rationing of your charge
  6. Charges via a standard USB cable
    • Being able to charge your powerbank using a standard cable is ideal as proprietary charges can be hard to replace if lost
    • Ideally the same cable as your other devices (my powerbank can charge via miniUSB but all my devices use microUSB so it is one extra cable to bring along)
  7. Multiple USB ports
    • for those with multiple devices (or for sharing with others)
  8. Port positions
    • Some USB cables may be bulkier than others and thus powers that are spaced out are useful so that you can utilise all ports at the same time
    • Ideally all ports on a single side so it can be pocketable or just easily placed on a surface standing up if needed
  9. Charges quickly via USB
    • If allows charging via several methods (e.g. proprietary cable as well as via USB), ensure that it can charge quickly over USB (my Sanyo powerbank charges very slowly over USB)
  10. If it supports passthrough, added bonus ability to maintain proper charge, amperage and voltage when plugged/unplugged from power source
    • This use case comes from using your powerbank as the power source for devices like the Raspberry Pi: you want it to provide the power to the Raspberry Pi and if the power source gets disrupted and you do not wish for the device to get restarted, the powerbank must maintain a proper current/voltage so not to trigger a restart.

Note: a 4000mAh powerbank will not charge a 2000mAh phone battery twice due to inefficiencies, battery health and other factors.

DDD Melbourne 2014 – 19th July 2014

DDD Melbourne 2014

Thanks to all organisers, speakers, volunteers and sponsors for the event!

Developer Developer Developer (DDD) Melbourne 2014 held at Swinburne University of Technology.

Key Speakers

Sponsors & Goodies Providers!



Other Links

Notes/Improvements for next year

  • Power extensions & power strips for the workshops
  • Ideally free Internet (unless Troy comes)