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)

ITLT: Power/Home Button Placement

Power button

Turning on a device should be easy and simple and shouldn’t take a lot of effort. Physical buttons are the best: giving you tactile and instant feedback.

Power Button - one finger vs the claw

Which would you rather?

Devices with physical home buttons (e.g. iPhone / Samsung S series) are the ideal IMO while Nexus devices (e.g. Nexus 4 pictured above) force you to use ‘the claw’.

ITLT: Headphone and USB port placement

Port Positions

How does one pocket this?


  • both USB/charging port and headphone ports should be on the bottom
  • ensures pocketability when charging on the go with a USB battery pack while listening to music


  • iPhone 5S
  • HTC One M8


  • Nexus 5
  • Samsung Galaxy S5
  • Lumia 930

Other Notes

If you’re stuck on with a device with non optimal port placement, I suggest getting right angle connectors for your headphones as it at least allows the device to rest on the connector without straining anything too much (you could also get a right angled USB connector, but it is yet another thing to worry about if you care about USB charging speeds)

Right Angled Headphone Connector

ITLT: USB Charging Speeds

USB chargers with USB cable

Ever had that moment where you plug your device in, see the charging symbol and thought that you were getting a good charge? Well I’ve had times when despite the charging icon showing, that the battery was actually getting slowly depleted, so here are some tips to make sure you’re charging optimally:

  • Check your charger
    • bigger devices usually require a charger that provides more amperage (tablets usually 2A, phones usually 1A)
  • Check your cables:
  • Check your USB port
    • for your computer / USB external battery packs with multiple USB ports: some ports could charge faster than others
    • find out how much power you’re getting via a device like the Practical Meter
  • Check your charging speed
    • Android
      • CurrentWidget (currently using this an available as a widget and/or on-going notification)
      • Charger Timer (haven’t used but looks good)
  • Force a faster charge
    • There seems to be a few Android apps that do this but it may also be device/kernel dependant. I have not tested these but there are apps like this

Other Notes

  • You can charge a device with a higher amperage charger: the amperage is the maximum rating that the charger can supply. If a device requests 1A then it will supply 1A even if the charger says 2A.
  • Voltage should be matched. 5V is the standard but I’ve seen slight variations of like 4.9V/5.2V but as it is only a small amount they shouldn’t be detrimental unless the device is very sensitive to it.
  • Also if you have chargers that specify power rating (e.g. Apple chargers), use the following formula:
    Power (W) = Current (A) x Voltage (V)

    So given a standard 5V

    • 12W charger will charge at 2.4A
    • 5W charger will charge at 1A.

Deleting files that give an error of “The filename or extension is too long”

del 0-Namespace-https???
The filename or extension is too long.

Cleaning up after a Windows 8 restore and had problems deleting some files. According to KB320081 one possible way was to “Use an auto-generated 8.3 name to access the file”. After some searching I found what this means thanks to this post (it annoys me to no end that lot’s of posts just copy and pasted the details in the KB320081 page and don’t explain how to use the 8.3 name for deleting stuff). So the 8.3 name is the first 6 letters of the file name appended with a ~1 with any similar files will have an incremented number (~2, ~3, etc) as shown below.

1. My Chicagotech A.doc => MYchic~1.DOC
2. My Chicagotech B.doc => MYchic~2.DOC

I used this to help delete some files but even that didn’t manage to delete some files. In the end a “del name*” helped

C:\Windows.old\Users\Tim\AppData\Local\Packages\WinStore_cw5n1h2txyewy\AC\Microsoft\Windows Store\Cache>dir
 Volume in drive C is Windows8

 Directory of C:\Windows.old\Users\Tim\AppData\Local\Packages\WinStore_cw5n1h2txyewy\AC\Microsoft\Windows Store\Cache

13/Apr/2014 16:09 <DIR> .
13/Apr/2014 16:09 <DIR> ..
01/Nov/2013 21:35 5,578 0-Namespace-https???
28/Oct/2013 13:04 5,578 0-Namespace-https???
27/Oct/2013 18:42 5,574 0-Namespace-https???
01/Nov/2013 21:35 474 0-ProductTileExtendedByProductGuidForOS-https???

del 0-Prod~1.dat   # worked

del 0-Name~1.dat   # didn't work
Could Not Find C:\Windows.old\Users\Tim\AppData\Local\Packages\WinStore_cw5n1h2txyewy\AC\Microsoft\Windows Store\Cache-Name~1.dat

del 0-Name*        # worked

Sublime Text Plugin Quickstart

Based on the fact that the Sublime Text plugin example page is outdated below is a quick guide to create a Sublime Text Plugin for Sublime Text 2

  1. Go to Tools > New Plugin to auto generate a template for a plug-in
    import sublime, sublime_plugin
    class ExampleCommand(sublime_plugin.TextCommand):
        def run(self, edit):
            self.view.insert(edit, 0, "Hello, World!")
  2. Save it as a .py file in Packages/User folder (it should be the default folder when you select save). I chose
  3. You can run in from the Sublime Text console (Ctrl + ~ in Windows) using the following command. (if it doesn’t work try, try saving the file again with the console open to see any errors and also try closing and reopening Sublime Text)

Running Camel Case Commands

Use underscores

class ExampleTextCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.insert(edit, 0, "Hello, World!")

sublime.Edit & sublime_plugin.EventListener

If an edit object is needed (seems to be needed for writing things on the page), use view.begin_edit() but don’t forget to end_edit()

They can be created by view.begin_edit(). Every call to view.begin_edit() must have a corresponding call to view.end_edit(), typically wrapped in a try … finally block.

Sublime Text 2 API reference

The EventListener class let’s you trigger things on an event happening and the code below shows inserting text to a document when it is opened. (Disclaimer: I’m not fluent in Python so I’m not sure if the below is fully correct but it does seem to work)

import sublime, sublime_plugin
class OnOpenCommand( sublime_plugin.EventListener):
   def on_load(self, view):
       try :
           edit = view.begin_edit()
           view.insert(edit, 0, "on load")
       finally :