Showing posts with label barcamp. Show all posts
Showing posts with label barcamp. Show all posts

Monday, 29 September 2014

BarCampLondon X

So that was a pretty busy weekend! Thank you to all the organisers and the sponsors for yet another amazing BarCamp London.

If you don’t know what a BarCamp is, go read about how it works, and then come back to read my notes on some of the sessions I attended.

Here’s a picture of all the sessions that the attendees ran over the weekend (that’s a lot!) and it doesn’t list all the random conversations, games and general meeting people that happened outside of the posted schedule.

devoxx4kids

Dan Hardiker @dhardiker

http://www.devoxx4kids.org/

  • one day workshop
  • aimed at age 8-16
    • 8-9 year olds treated a bit differently — they need a bit more guidance
  • with specific goals
    • make a robot
    • iOS game development
  • want to say “I made that”
  • one child been building iOS apps since age 6:
  • worldwide
  • dominican republic had > 1000 kids over 2 days
  • > 30% people who come are girls/women
  • generally 5 or 6 tracks selected from:
    • minecraft modding
    • scratch
    • python
    • lego mindstorms
    • raspberry pi
    • arduino
    • greenfoot
    • alice
    • kojo
    • iOS
    • mathbreakers
    • NAO robot
  • 4 sessions in a day
  • also go to big conferences and run devoxx4kids for the adults
  • first London event in June
    • got 95% attendance from people who signed up!!
    • 4 x 1hr sessions
    • 40 volunteers
    • had an 11 year-old fly over on his own (met his dad at airport) to run a group of 20 x 11-15 year-olds how to do minecraft modding
    • he also did a closing keynote
  • had the creator of greenfoot teaching how to build a minesweeper game
  • have a load of volunteers available to help children build stuff
  • have a show and tell at the end of the day
  • mindstorms:
    • build the main wheelbase
    • children add grab arms to grab a ball
    • get children to control by hand first
    • program the same steps (5 steps forward etc)
    • add touch & distance sensors
    • program to grab without hard-wiring distance

how to start a hackerspace

Matt Copperwaite @mattcopp

  • start a company - level of protection
    • limited company - need 3 people, can then state not for profit
    • community interest - lots of paperwork
  • business bank account
    • barclays have APIs, £50 cashback at the time…
  • insurance: paid £300/year
    • recommendation from London Hackspace
    • BIS will issue advice on this shortly
  • keep trustees involved
    • raise issues that split them: colour of the logo…!
  • system designed so you can cancel the membership at any point
  • get people signed up with open days
  • people really like laser cutters!

See current UK Hackspaces at:

kinect v2

Mike Taulty @mtaulty

  • v2 is £159 (cheaper than v1 at £199!)
  • HD video
  • infrared
  • depth sensor
  • can track up to 6 bodies (25 skeletal joints)
  • tracks depth from 0.5m to about 8m
  • infrared & depth is much lower res: 512 x 424 pixels
  • body index separates pixels of different bodies
    • lets you do green screen really easily
  • MS’s SDK is Windows only (doesn’t work with Windows VMs since it needs USB 3 & DirectX 11)
  • but libfreenect2 is an alternative open source driver for Mac/Linux

mobile network in a field

Sam Machin @sammachin and Kevin Prince @kevinprince

https://fieldphone.org at EMF Camp 2014

  • EMF Camp was c.1200 people
  • runs every two years
  • “a very british burning man” or “glastonbury for nerds”
  • aiming for phone calls but not data
    • mainly because of there was already fast wifi
  • just three base stations, so could simply architecture a fair bit…
  • using OpenBTS, Asterisk + Twilio & Heroku
  • Asterisk server sat in the on-site hosting centre
    • a refrigerated shipping container with servers on pallets
  • recreated phone supply chain by using Amazon & a tent
    • bought some Amazon burner phones on 30 day return…
  • SIMs were the hardest things to sort
    • wanted to play nicely with other networks
    • didn’t want people on real networks to connect to camp network
    • SIMs are pretty expensive: 50p to £1 each
    • hard to order in low quantities
  • bought OpenBTS boxes from RangeNetworks
    • startup in SF
    • mostly selling to small Pacific islands
    • massively cheaper than normal kit (c.$5K)
    • also put one in a search & rescue helicopter in Iceland
    • connects to someone’s phone as it flies over
    • locates to area of a football field
    • allows helicopter to call phone!
  • need spectrum to run in the UK…
    • O2 had some they had forgotten about ;-)
    • concurrent spectrum license: shared by 15 companies
    • better in other countries:
      • Netherlands: just need landowner permission
      • Germany: just need 30 days notice
      • Burning Man: use DARPA military spectrum not in use in the middle of the Nevada desert
  • antennas make a big difference
    • need a proper site survey
  • EMF Camp provide about 40 routers around the site
    • set up in locked portaloos! Datenklos (term from CCC)
  • created everybody’s accounts ahead of time
    • needed to map phone numbers to IMSIs
    • got people to type in last 4 digits of SIM
  • set up voicemail using twilio to record and forward via email
  • SMSs are harder if you need to store & forward
  • dealt with inbound calls by having a single central public number
    • call it and then dial 5 digit account number
  • added outgoing calls as well (via Twilio)
    • limited to c.3 minutes
    • but even so fairly cheap
  • also set up a few group rooms to see if people used them
  • stats:
    • ~200 SIMs handed out
    • ~100 attached users at any time
    • close to 100% coverage
    • about 1800 minutes of twilio
  • ideas for next time:
    • phone boxes
    • POTS to tent: turn up and plug in a BT phone!

managing CSS

Ben Scott @BPScott

http://reload.me.uk/talk-structuring-css

  • people keep on writing new CSS
  • not obvious how and where things are used
  • no confidence in what you can change and if it will break anything
  • build smaller isolated things
    • single responsibilities

structure

  • components
    • domain-specific objects
    • text next to image in a particular way
  • macro layout
    • grid system
    • layout of components within a page
  • theming
    • colouring of components

resulting composition

  • this thing, here on the page, in this colour
  • mobile first & extend from core functionality
    • much easier to reason about adding in CSS
    • harder to take things out
  • use additional classes to toggle additional behaviour
  • Brad Frost: atomic design
    • pages are accidents — what happens when you put components in a particular order
  • create a styleguide page
    • component, layout variations
    • automatically generated from HTML partials in application
    • HTML partials are essentially custom tags

tips

  • avoid using IDs in CSS selectors
  • try to keep selectors to max 3 levels
  • naming convention: BEM
    • double underscore = within
    • double hyphen = modifier

problems & breaking up

  • mobile first, but oldIE needs to be desktop first as it doesn’t understand media queries
  • could use respond.js but takes a lot longer to load
  • created Breakup
    • SASS/Compass plugin
    • generates different CSS files from the same SASS input
    • according to directives in top-level
    • lets you avoid wrapping specific elements in media queries

real life brain training

SenseLabs http://getversus.com

  • split activity into different frequency bands = EEG
  • delta < 4 KHz
    • babies have this all the time
  • theta 4 - 7 KHz
  • alpha 7 - 14 KHz
  • beta 15 - 30 KHz
    • focused
  • gamma 30 - 100 KHz
    • complex active stuff
  • other stuff:
    • Mu (8 - 12 KHz)
    • SMR (13 - 15 KHz)
  • neurofeedback
    • constant feedback, close to realtime (~200ms)
    • useful to use more than one sense to enable different people to relate to it better
  • current system has five measurement points
  • Chief Science Office is Leslie Sherlin

training

  • focus:
    • augment low beta
    • inhibit theta & alpha
  • can train stress response too
  • sports consistency
  • exam preparation

problems

  • QA engineer was overusing focus training
  • had problems sleeping…

uses (not scientifically proven)

  • worked with Felix Baumgartner
  • tennis players
  • reported to alleviate long term ADHD…
  • improved sleep patterns amongst developers…

available systems

  • medical
    • existing $10K for bare minimum
    • require expensive software, only run on Windows XP
  • kickstarter systems
    • cool, but not much neuroscientist input
    • not so accurate or useful
  • versus
    • looks like headphones
    • rebaseline every time you put it on
    • connects over bluetooth to iPad
    • uses dry spikes sensors that contact scalp
    • first consumer product $750, aiming for $500

toys & gadgets

  • thalmic myo
    • bluetooth armband picking up arm and hand actions
  • oculus rift
  • NFC ring
    • lower range than usual
    • internal and external tags (private & public?)
  • Google Glass
  • estimote beacons
    • use at least three to get indoor location fixes
    • google have set up mountain view…
  • chromecast
    • don’t bother with a digital picture frame — just get a cheap TV and one of these
    • great for broadcasting any media around the house
  • almond+ touchscreen router & home security
  • 3D printer
    • check out 3d printer subreddit
    • solidoodle
    • arduino will be launching one v. soon
  • MIOPS camera trigger
    • plugs in to flash hotshoe
    • light sensor
    • laser sensor

scaling agile

Matt Walton, Head of Product @ FutureLearn @matt_walton

spotify

  • have documented a lot of their processes
  • think it, build it, ship it, tweak it
  • now about 2000 people
  • squads consist of engineers, designers & agile coaches
  • autonomous teams with long running missions
  • spotify engineering culture
  • “agile at scale requires trust at scale”

GDS

  • lots of information radiators
  • product roadmap split into team “swimlanes”
  • have a scrum of scrums

songkick

  • similar teams
  • each team needs:
    • product management
    • design lead
    • tech lead
  • how to organise a roadmap
    • KIPs broken into themes
    • time box themes
    • agree measurements
    • form autonomous team
  • lean analytics (book)
    • ratio or rate, not a total number
  • business focussed aims:
    • if … then … because
    • based on lean analytics experiments
  • two backlogs: separate “hygiene”
    • then add 70% valid features, 30% bugs, tech support to each iteration

futurelearn

  • product strategy themed by vision areas
  • each sprint split by % of work for BAU, products, etc
  • standups and retrospectives still whole team to encourage community
  • though work done in smaller project teams

conclusion

  • share vision, mission & values
  • give autonomy and create community
  • rhythm & reflection

Friday, 9 September 2011

iOS Dev UK: Your App Sounds Great

Dave Addey, Agant Ltd, @daveaddey

This was one of the barcamp slots in the evening. Dave went through the presentation he gave previously at NSConference on VoiceOver, Apple's device support for blind and partially sighted users.

  • RNIB have an accessible app of the month
    • they’re really interested in helping people
  • 2m blind or partially sighted people in the UK
    • equivalent to population of Birmingham, or lefties, or gingers!
  • How it works:
    • label - description
    • hint - results of interaction
    • traits - only need if making a custom control
  • triple tap with voiceover enabled to turn screen curtain on — blacks out the screen so you can test it without cheating
  • use UIAccessibilityPostNotification(UIAccessibilityNotification, ...) to post sounds on events rather than touches
  • iOS knows quite a lot of UK place names, but not all (and especially not Welsh names)
  • can set your own usability tags, but uses normal spelling, not phonetic characters
    • can use say "word" on a Mac to test
  • can define accessibility containers to group stuff
  • it’s not just about making it accessible for a blind user or a partially sighted user, it’s also about making it usable for a sighted and non-sighted person using the app at the same time
  • At the bottom of accessibility options there’s a triple click home option — you can make this toggle VoiceOver
  • Maps do not have accessibility other than the pins
  • If stuff is still being selected by VoiceOver, then you might need to set them to be disabled

Sunday, 14 November 2010

BarCamp London 8: Real time notifications

Tim Nash @tnashhttp://codingfutures.co.uk & http://timnash.co.uk

More details may be available on lanyrd

  • HTTP not designed to be real time
  • PayPal postbacks are a pain the butt
    • don’t use the recommended system
    • just return 200 and make a call to a standard fetch transaction
  • XMPP is just XML underneath
  • Favourite: XMPP PubSub
    • publish ATOM in a message
    • though doesn’t have to be ATOM, but helps if it’s XML
  • implementations: OpenFire (Java) & EJabbard (Erlang)
  • avoid BOSH & similar (XMPP over javascript) unless you have no choice
    • i.e. if you need to do the final step to an AJAX front end

BarCamp London 8: The Future of TV

Simon Maddox — @simonmaddox

Simon gave a brief intro into how he watches television shows (I missed the beginning, but part of his setup involves using plex on his iPad and on his screen at home). He then invited a discussion which centred around whether TV would move totally to online streaming in the future, or whether the broadcast model still had some life left…

  • coming soon: YouView (Project Canvas in a box)
  • how do I find out what I should watch next?
    • often it gets a series or so in before I hear about it…
  • where’s the last.fm for tv?
  • some TV is funnier with the commentary on twitter (e.g. x-factor)
    • have to watch that live to experience it properly
  • sports are also something people want to watch live
    • but there are not enough broadcast channels to cover all the matches…
  • can’t ignore those without digital…
  • olympic games will be a big test and a switchover
  • does broadcast save money over streaming?
    • possibly at the moment
    • but being solved and won’t be so much of problem in the future
    • e.g. bittorrent being modified to support streaming
  • perhaps the biggest change will be content producers
    • big players (ITV etc) may get smaller
  • would like to have pay-based or advertising
    • Disney DVDs with non-skippable adverts are taking the piss
    • also problem with DVDs that treat customers as pirates
  • older people may be afraid of giving away information
    • may be afraid of a personalised EPG
  • sidereel.com — personalised EPG
  • music industry revolution has been going for 10 years and is still not finished
    • TV industry revolution is going to take longer

Saturday, 13 November 2010

BarCamp London 8: British Sign Language

@lallyd http://www.learningbsl.com

More details may be available on lanyrd

  • learning level 2 at the moment
  • Deaf with big D is about how you would like to communicate, not about hearing
  • some words look similar but mean very different things…
    • facial expression / shitty
    • black / prostitute
  • dialects also differ across the UK
    • you can have a northern accent in BSL…
    • “live” (asin “I live in…”) in London is stroking shoulder
    • in Blackpool, the same sign means “toilet”…
  • vowels are RH pointing at fingers on LH
    • i.e. A is RH pointing at thumb; U is pointing at pinkie
  • computer: screen LH, RH typing
  • engineer: two hands together as cogs
  • please and thank you use the same sign, but different lips
  • resources:

BarCamp London 8: A Beginner's Guide To Whisky

Billy Abbot @cowfish

Billy’s Booze Blog

Slides available via lanyrd

  • Colour comes from the cask
  • Grain whisky has other grains as well as malted barley
    • also distilled in fractional towers
    • comes out much lighter
    • often used as the base for other products
  • whisky flavours change mostly due to tradition
  • campbeltown do briny salty whiskies
  • master of malt — sell 3cl sample jars so you can try before you buy a whole bottle
  • many distillers are teetotal
    • including half the staff of one distillery
    • don’t need to drink to check the whisky — can nose it
  • Richard Paterson is chief taster of Whyte & Mackay
  • Port Charlotte — bought by Bruichladdich
    • had a lot of stock which was boring
    • doing experimental things with it
    • Port Charlotte is very peaty
  • nosing:
    • stick your nose in, move it around a bit
  • taiwanese whisky comes out black as it evaporates so fast
  • watering down changes flavour
    1. partly reveals flavours amongst very strong flavour
    2. also has a chemical change
  • can get whisky barrel speakers!
    • a Japanese company will do so…
  • biggest single malt market in the world is… France!

BarCamp London 8: One year running it all on the cloud

Alistair Hann — runs Zoombu

More detail may be available on lanyrd

  • started off running a dedicated host, LAMP stack
  • started using flexiant (FlexiScale)
  • moved to AWS to have images (flexiant didn’t have them -- though it does now)
  • use ElasticFox to manage instances
  • elastic IP can be moved from machine to machine within a few minutes
    • useful for IP-restricted services
  • zoombu have four servers running continually
    • 1 front end
    • 1 Java services
    • 2 MySql servers
  • failures can be grim — make sure you have redundancy
    • backups of EBS volumes
    • backups of images

BarCamp London 8: giffgaff - getting what you want from Mobile network APIs

Heather Taylor @giffgaff & Vincent Boon @vincentboon

  • starting to open APIs
  • giffgaff is:
    • SIM only
    • 100% online
    • mutual — give & take
    • no call centres — only 16 full time staff!
  • “goodybag” data is currently completely unlimited, no fair use policy!
    • have agreed a charge with community for when they do start to charge
  • customers generally get an answer from community in under 3 minutes!
  • current plan for APIs (steps 1 & 2 pretty much done!):
    1. info services: read-only >
      • balance
      • goodybags
      • points
      • call records
    2. get services:
      • order SIM
      • top up
      • purchase goodybag
    3. non giffgaff
      • status update
      • share links
      • email/SMS
  • working with O2 Litmus and HashBlue guys to integrate their work (giffgaff is an MVNO on top of O2)

BarCamp London 8: Windows Phone 7 & app development

Jess Meats

More details may be available later on lanyrd

  • Marketplace purchases
    • can link to an existing Live ID with a credit card
    • or can register card details on the phone
  • development kit for phone
    • get templates for visual studio & expression blend
    • get an emulator (includes IE mobile)
  • visual design all done in XAML
  • can use Expression Blend for design
    • allows you to drag & drop and design animations visually too
  • when registering as a developer, have to go through XBox Live…
    • in order to sign up to terms and conditions
  • app submission:
    • testing happens overnight
    • if there are test failures, get a report in the developer dashboard
    • problems may happen with GeoTrust…
    • need a notary to sign and stamp a physical document
    • getting paid requires you talking to US Embassy in London…
  • @simonmaddox: SDK works in Fusion, but not Parallels
    • requires a VM inside a VM
  • can register a device for development
  • sync to Google only gets main calendar at the moment
  • background processes can now put things on the lock screen (recent change)
    • as before, can also change the home screen tile and put toast notifications in the status bar

BarCamp London 8: wheelmap.org

Holger Dieterich@holgerd

More details on lanyrd

  • http://wheelmap.org — find wheelchair accessible places to eat & drink
  • Made by http://sozialhelden.de — Social Heroes
    • one of the founders is in a wheelchair
    • problem is not how to get somewhere, but how to find somewhere suitable
    • is there a step? is the toilet accessible?
  • databases in Germany have 30,000 places, but they’re not so easy to use (mostly commercial)
  • had a wheelchair tag in OpenStreetMap before they started, but only about 5,000 places were tagged
  • now have about 18,000 places in germany
    • 300-400 places edited a day!
  • website finds your location by IP and offers you places to edit/add
  • also an iPhone app
    • using OpenLayers to display
  • CloudMade is good, but is read-only and not updated regularly (once a month!)
    • want to have immediate update
    • don’t yet have immediate, but 3 minutes is close
    • OpenStreetMap itself is sometimes down (for three days at one point), so had to implement caching and their own intermediate API
  • also approaching companies to share their data…
    • they’re really scared… so talking with Berlin government to convince them
  • having slight issues with OSM community as wheelmap data is added anonymously by a pseudonymous user
    • but it’s better that data gets added
    • and there’s no real chance of spam since the data is added automatically

Thursday, 28 October 2010

Droidcon London 2010 - Day One

I’m heading home with my brain stuffed full of new knowledge from Droidcon London 2010. And this was just the first day, with unplanned, unprepared barcamp-style presentations!

Most of the presentations today were technical (tomorrow there’s a design and business thread as well) but they varied from doing continuous integration through discussing low-level TCP details to a Q&A session with some of Google’s Android team.

I’m seriously looking forward to the second day’s programme.

In the meantime, here’s my notes for the sessions I attended:

Android UI tricks from Sony Ericsson

  • limit of 200ms to respond to user interactions — don’t do long running tasks in the UI thread
  • so how do you deal with longer lasting processes? use the Handler & Service classes
  • …and use Toasts to show quick popup status
  • number of devices on 1.5 is below 10%
  • all demos will be available on the Sony Ericsson developer blog

Handler

  • don’t use inner class Runnables inside a Handler (save heap & garbage collector)
  • within XML use onClick for buttons
  • handler.sendEmptyMessageDelayed(message, delay);
  • then have a message handler that deals with loop & sends next message
    • any UI activity should be in a Runnable called with runOnUiThread(runnable)
  • don’t forget onDestroy

Service

  • used for downloading
  • pass a message from service to activity by implementing your own Application class
  • Application defines callback interface and methods to fire & receive
  • use IntentService for your service
    • deals with sequential handling automatically
  • call to the application (need to cast getApplication())
  • don’t use AIDL interfaces — unless you want to share service with other apps or between multiple processes in your app

Animation

  • create an AnimationSet and add Animations within the getAnimation call
  • second parameters for RotateAnimation are relative to view, not screen
  • can also do animations in layout.xml
  • Twitter app removed animations from their home screen…
    • the background was a live wallpaper — consumes a lot of battery
    • continuous animations can use up battery so be careful
    • shouldn’t be a problem with performance though
  • see also Zooming demo and

BootListener

  • when the phone is rebooted, the alarms are cleared
  • don’t listen for boot completed unless you really have to
    • slows down startup if you have too many
  • can have a broadcast receiver that is disabled
  • in app xml set bootlistener disabled by default
  • then in listener when intent comes through: {{{ context.getPackageManager().setComponentEnabledSetting( new(ComponentName(context, BootListener.class), PackageManger.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP) }}}

3D & OpenGL with Android views

  • combine the strengths of Android views (text, layout, etc) with OpenGL (3D but not text)
  • create a bitmap
  • use MeasureSpec method
  • draw the view onto the OpenGL texture bitmap
  • GLUtils.texImage2D(...)
  • if you do this today, suggest you use OpenGL ES 2.0

Location services

led by Nick Black, Founder & Head of Products at Cloudmade

cloudmade

  • cloudmade will support Android later this year with a Maps SDK
    • based on OpenStreetMaps
    • worked out a way to squeeze vector data onto the device
    • map data comes as you need it and is stored locally on device
    • downloadable data includes searchable street names, etc
    • early access available end of this year, early next year
  • cloudmade also has http://maps.cloudmade.com/editor to let you choose and configure your design —- your style will work on mobile too!

Impleo

  • formed from ex-Motorola & Alcatel employees
  • also adding tracking for insurance
    • includes accelerometer info so can tell how good a driver you are!

cloudmade location-based advertising

  • created a network that finds highest value ads from other networks
  • goes out to other ad networks, will also go out to more specialist networks
  • trying to deal with the fill-rate problem…
  • some android apps got backlash when adding advertising after the app release
    • put the ads in at the beginning!

map data

  • most owned by Google, Nokia or Tomtom (Navteq)
  • skobbler Android app - built on cloudmade’s navigation service
  • cloudmade see navigation services not as an app but as a feature within apps
  • Google don’t allow access to driving directions API on Android

google latitude and other services

  • Is anyone using the latitude API?
  • GPS in Android drains the battery quite heavily
  • if things are further away then turn off GPS temporarily
  • battery management isn’t good built-in
    • have to manage your own choice between coarse and fine location services
  • Motorola went to use Skyhook instead of Google location API on Android
    • that way they would get data for their customers WiFi location
    • Google forced them to switch back to Google location
    • Skyhook now suing Google…

Always in sync client & local unit testing

Carl from Novoda (@charroch)[http://twitter.com/charroch]

RESTProvider

  • available on github
    • depends on JacksonJSON etc
  • makes a RESTful API available as a Content Provider
  • couple of branches — caching_carl one stores locally in SQLite
  • can start service with loads of requests — it will handle them in a queue
  • can add params: putExtra("params", new List(...))
  • Tip: adb shell setprop log.tag.Database VERBOSE
    • slows it down a lot
    • can add your own tags too
  • ResultReceiver: a way of passing back status to app UI
  • if connectivity is lost, it stops the queue
  • need to watch out for the user setting to disable background downloading
  • extend HttpQueuedService
    • override getMarshaller
    • create a LoggableJsonRequest with a marshall method to store data using a ContentProviderOperation
  • library supports ETags too — saves a download as server data is just a HEAD response
  • also created novoda.mixml (minimal XML) which works in same way as Jackson JSON
    • integrated into RestProvider to cope with XML content as well as JSON
  • hopefully have time to build a more stable version over the new year
  • end goal: to have declarations in application XML and service definition

Unit testing of android classes without emulator

  • see also the RestProvider code on github
  • android.jar only contains stubs, so can’t even instantiate
    • major problem for your subclasses even when you only want to test your additional methods
  • PowerMock works somewhat
  • need to find a different way of doing the tests
  • Carl has copied the source of the Android classes into his test source and modified them to ensure no call to the system…
    • not too hard — just need to ensure that the constructor can work
  • have to keep your code copy up to date with the base Android source
    • but it doesn’t matter that much as you won’t be testing Android code
  • possible next step: Android will run on Intel — could run locally with unit tests
  • currently have three projects:
    1. main classes
    2. local tests using this mechanism
    3. instrumentation tests
  • changing to have a single folder with tests marked with annotations
    • want to have some tests marked as local if possible
    • android instrumentation tests should run all of tests (including local tests)
  • maven could be overkill for Android development
    • build process is quite well-defined, not that many other libs
  • SBT could be interesting (simple build tool, written in Scala)

App Analytics from Capptain

  • combining in-app analytics with CRM
  • collect/measure -> analysis -> engage
  • send messages to users and get feedback
  • SDK available in Android and iOS
  • similar services: motally (acquired by Nokia) & xtify
  • released beta two days ago
  • have REST/JSON API for data
    • not publicly available right now, but available on a case-by-case basis
  • also have a real-time API

  • pricing:

    • free during beta period
    • haven’t decided pricing structure
    • probably freemium — pay for additional functions/users

new analytics capabilities

  • how long users are spending in each screen of your app
  • really nice user path — based on screens, not events
  • real-time analytics — can monitor where people are in your app right now
  • crash logs with device, firmware, etc details
  • as per other analytics, store data locally and send later if not connected
  • Android SDK automatically picks up activities

CRM

  • announcements and polls
  • target by carrier, country
  • test before publish by sending to a single device
  • schedule for particular times

Qualcomm Alljoyn

http://developer.qualcomm.com/dev/alljoyn-p2p

  • exposes a shared communication bus based on DBus
  • automatically uses Wi-Fi and Bluetooth as device allows
  • Java and C interfaces
  • Java interface lets you just send/receive/call POJOs
  • Wi-Fi uses mDNS to find services by well known name (a URI)

Continuous Integration with Maven & Hudson

Hugo Josefson from Jayway (founded Maven Android plugin)

http://code.google.com/p/maven-android-plugin/

Slides and Hudson installation script available from http://code.google.com/p/maven-android-plugin/wiki/Presentations

Android and Maven

  • there’s also a proguard plugin — can use to trim unused classes
  • maven can handle inter-project dependencies
    • keep pure Java code in a Library (so can have local unit tests)
    • then can have app depend on library and on-device tests depend on app
    • see Samples project for MorseFlash example
  • there’s also an Eclipse plugin that helps ADT & Eclipse understand that they’re dealing with Maven
  • the process that takes the longest time is the DEXing

Android, Maven and Hudson

  • don’t see any reason to run Hudson in Tomcat — it comes with its own webserver
    • though it should work fine within Tomcat too
  • Android emulator plugin for Hudson: http://wiki.hudson-ci.org/display/HUDSON/Android+Emulator+Plugin
  • emulator settings: 2.2, mdpi, hvga, en_US, 64M
  • can loop through different settings for emulator
  • Hudson server needs some X libraries but will still run headless
  • currently don’t find out which tests fail when Android tests fail — have to look at logs

Google Q & A

I only noted down one question from the second Google Bootcamp Q & A session:

  • can you target apps at Android tablets?
    • can target large screen devices (currently Galaxy Tab + Dell Streak)
    • will also hit Evo 4G as that has hi resolution too, but smaller screen

Monday, 26 October 2009

BarCampLondon7: Alternative Input - Striking a Chord

Stephen Nicholas

3rd year project

  • Stephen works with Dale Lane @ IBM on microbroker & GUI testing
  • multitap & mini-qwerty not really suited for mobile input…
    • qwerty not really suited for desktop input either :-)
    • multitap gets up to 20 WPM
  • braille keyboard has one key for each dot
  • can get faster than qwerty keyboard input
    • qwerty 80 wpm
    • stenographers much faster: 200-300 WPM
  • can possibly reduce RSI since not moving your arm quite so much
  • drawbacks:
    • have to use non-obvious input schemes (no hunt and peck)
  • microwriter, introduced in 1978
    • got speeds up to 40 WPM after 7 months practice
    • had great mnemonic method for encoding
    • recently been redeveloped as the CyKey
  • twiddler
    • has 3 x 4 keys, might work well on mobile keyboard
  • ChordTap for phones:
    • has three additional buttons on back of phone to distinguish between multitap letters

BarCampLondon7: Social Manipulation on the web and in person

Tim Nash

Social Engineering is still just as valid as ever…

  • If asked for photo ID, people will give it up willingly
  • given a photo ID with details, you can call up somewhere and say you’ve forgotten your ID
  • often the front desk will give you a new ID…
  • people are more likely to buy when there’s an official badge…
    • doesn’t really matter what the badge is
    • virtually no-one who clicks on the badge actually purchases
    • but buy rate will increase anyway
  • paypal did an experiment about a year ago
    • to see if it made a difference to not use the word PayPal on their “paypal verified” badges
    • made no difference to sales conversions
    • click-through rate to paypal went down
  • certain colours affect buying moods
    • brain doesn’t like bright colours
    • big red “buy now” button does not attract people — your eyes will avoid it
    • instead have a big grey “buy now” button with two red arrows on either side
    • eye tracking study shows people look for price and “buy now” button
    • sales rates go up when the price is just above the buy now button
  • best place for comments on a blog:
    • new comment box just under post
    • other comments can be down the side
  • use the word “reply” rather than “submit” comment
  • scienceforseo blog
    • highlight a part of the text and the comment will appear alongside

BarCampLondon7: Project Lombok - the end of Java boilerplate?

Reinier Zwitserloot - @surial

Project Lombok is an extension to Java that allows you to write less boilerplate code by using annotations.

  • examples:
    • @Data to provide automatic getters and setters for private fields, equality and hashCode, and a constructor for final fields
    • @Cleanup to tidy up inputstreams when block ends
    • @Synchronized to lock on private Object instance rather than this
    • @SneakyThrows() hides a checked exception from javac, but leaves it for JVM
    • (in JVM all exceptions are unchecked)
  • integrates with Eclipse (e.g. getters/setters provided without you having to type)
  • does mucking around through its jar, so can work easily with Ant & Maven etc
    • use com.sun...ProcessingEnvironment to
  • Java Posse — podcast
    • inventor of annotations happy that lombok exists, but not so happy that private APIs being used…

BarCampLondon7: Supporting the masses

Tony McCrae

Experience from squadlist.co.uk — an online tool for organising rowing outings. Set up during a Guardian employee’s spare time for his own rowing club, but suddenly getting over 1000 users. He needed to support the users of the site without spending time on them.

  • sort out forgotten logins
    • though have to be careful about security
    • generate nice passwords using pwgen
    • facebook isn’t permitted in some firms (so no facebook connect)
    • prompt end users to talk to someone else other than you!
  • can your users be divided into groups?
    • form a relationship with one member in each group
  • demo as documentation — install a full demo system with sample data and let them play
    • reset its data regularly (but make sure you tell people!)
    • Jira now has jQuery-based inline popup help
  • invest in getting your domain unblocked
    • put SPF in your DNS
  • even if you send from noreply@, check the volume going to it!
    • a spike may indicate something going wrong
  • don’t tell everyone when changes happen
    • just senior users
  • introduce new features to a smaller test group
    • enable beta group
  • allow users to export their data automatically
  • http://uservoice.com and http://getsatisfaction.com
    • with a forum on-site, people keep on requesting the same new features, even if you provide a roadmap
    • moving to these customer satisfaction sites means that existing feature requests no longer generate complaints!
    • instead, people vote up the existing requests
    • of course, if the requests never get monitored or picked up, you’ve still got disgruntled users
  • really loud heavy users can be very powerful for good or bad
    • hire them! or at least make them happy
  • gmail labs has “canned responses”
  • open source core product to ensure continuity
  • provide “paid for” additional capabilities

Saturday, 24 October 2009

BarCampLondon7: Release London's Data -- Feedback from #londonsdata

Emer Coleman (assistant chief exec for London Borough of Barnet)

  • has been doing research this year about what data has been collected in london boroughs
  • big crisis in public finance after next election — what will happen?
  • to have a meaningful conversation, you need to have information available…
  • lack of trust at the moment (esp. for MP’s finances)
  • GLA holds a lot of data and wants to publish
  • already publish financial data
  • hoping to put pressure on subsidiary bodies to release more
  • invited developers to ask for what they wanted
    • 65 developers gathering information
    • TfL & transport info is really where they want to get to
  • developers have gone as far as they can to push agencies
  • “we’re just gonna do it”
  • asked “do you want raw data, or with some contextual data?”
    • didn’t come to any firm view
  • should we just release with the cabinet office?
  • now an email list, and a google group set up
  • will be running a competition
  • aiming to release data store in January
  • data avilable
    • air quality maps
    • number of people in social housing
    • school catchment areas
  • message coming from developers — just put the data out there
  • Daniel Shore (@LDN): what’s the attitude of TfL to scraping the journey planner?
  • IanForrester: other authorities (e.g .Manchester) trying to do things too
  • DIY Birmingham — scraped version of local authority site, but much more accessible
  • Cloudmade: NaPTAN data being imported into OpenStreetMap
    • then allows it to be updated, corrected and extended
  • Beth Noveck (Obama’s advisor on transparency) has written a book about wiki government

BarCampLondon7: Non-relational Databases

Simon Willison

Back channel notes on etherpad

  • why?
    • scalability issues — have to do bizarre things to get to Flickr/Google size
    • some models don’t fit schemas
  • Voldemort — used by LinkedIn
    • needs at least four servers to get started!
  • CouchDB, MongoDB, etc
    • download and type make
    • MongoDB was much faster, tho’ CouchDB has improved
  • whenever you hit a tag page on on flickr, you hit a search
    • if you hit “my photos, tagged X” you hit a relational database
  • Programming the Semantic Web
    • by the guy who wrote Programming the Collective Intelligence — very good: all people who like X will like Y
  • redis
    • key-value store, network accessible
    • ridiculously fast
    • doesn’t persist to disk — every 15 seconds it dumps the entire database to disk
    • can improve reliability by replicating
    • e.g. live stats services
    • can have a key-set, with add to set, set intersection
  • Git
    • has shown that it can scale to the size of the linux kernel
    • so can scale to storing your desktop settings!
    • git is not just a RCS it’s a file system with revision control
    • there’s also git# and jGit
  • jaiku migrated to app engine
    • including all the history
    • need to think of queries at design time, otherwise you’re stuck and have to do a big MapReduce to extract data

BarCampLondon7: iPhone Stats

Chris and Simon gave a good description of what it’s like to be popular in the Apple App Store.

  • get an angle for the app
    • 0870 talked about in Guardian, twitter, TechCrunch, …
  • 0870 download stats available on simon’s website
  • marketing from Apple is not the be all and end all
    • and you have no control, so no warning when serious traffic hits…
  • top 5/top 10 is the big hit
  • when you put out an upgrade, 60-70% of new downloads will hit your app (and your feed)
    • again you have no control of when this happens
    • it’s usually at night (in the UK)
  • hosting:
    • simon started on slicehost
    • went down after a couple of hours…
    • moved to rackspace cloud (engineX)
    • their cheapest server — has cost about $10 so far
  • Kieran: tune apache so it can handle more connections at once since mobiles will talk for longer
  • Ads:
    • good at the beginning but tailed off rapidly
    • Simon looking at premium ad suppliers
    • need 500K impressions/month
    • made $800 this month, but could make more on a premium network
  • Q: Is it a point against you if you release your app on Cydia?
    • A: don’t think so, but then haven’t tried
  • stats for paid:
    • if you’re lucky you’ll get 1000 a day
    • that will get you into top 25
    • a little more will get you top 10
    • if you’re focussing on a single territory, make it the US!
  • iPhone apps are a great marketing tool
    • but probably won’t cover your costs…
    • Nigel saw a company that saw increase on their mobile web site when the iPhone app went live
  • subscriptions are rolling:
    • app will warn you that you need to purchase a renewal
  • Kieran: in-app purchasing is extremely successful — much more than subscriptions
  • Even Nike couldn’t get app fast-tracked….!
  • submitting & checking by Apple:
    • even new versions get treated as a new app
    • they only tell you one problem at a time
    • it’s about a 2-minute review — not a QA test
  • AppViz — you need it for viewing your stats
  • 0.5% of users write a review, and less than that actually write a comment
    • paid apps get more reviews — people have invested
    • people don’t know how to do reviews unless they delete the app
    • appirater is an open source library that will prompt people to put in a review and take you to the right place on the app store
    • definitely put a feedback screen in the app
  • putting apps cheaper at the beginning doesn’t seem to make much difference
    • there’s a bit chasm from free to paid, but then once you’ve made it paid there’s much less of a drop-off

BarCampLondon7: Energy Efficiency & Usage Monitoring

Nigel Crawley

  • digital meter — LED flashes fast or slow depending on how much electricity you use
  • can pick that up with an arduino with wifi and then make available as EEML
  • EEML (eeml.org) — XML for electricity cost
    • can humm output eeml?
  • can then input into Pachube
  • can then do visualization like this: BBC spiral viz of podcast #bcl7 on Twitpic
  • lilypad arduino — can sew into clothes
    • can include a vibra-ball
  • can recognise individual devices by whole home electricity usage
    • fridge, kettle, toaster, electric oven
  • Tom Raftery — greenmonk.net
    • devices using too much electricity — an organisation will offer to replace it and tell you the savings
    • Camden, New Jersey: government offers subsidies on lower energy appliances
  • visualisations:
    • one for schools that showed a polar bear running out of iceberg
    • DisplayLink have done a blog post on energy visualisation

Gbenga Kogbe

  • the UK will run out of energy by 2014… we must save
  • comparing with your neighbours
  • mancini project — plug by plug usage
  • there was some effort in the Zigbee standard — all appliances would publish their usage to a standard hub
  • energyhive provided reduced price meters
    • research that came out showed that by the end of the trial, loads of meters were in the drawer and not used
    • several 1000 homes included in trial
  • putting information online and sharing it is much more effective than a little meter in the corner
  • in some places, there are dynamic tariffs
    • would like to tell dishwasher to wash when it’s cheap
    • not in the UK…
    • energy providers buy at realtime, but sell at flat rate
  • Dale Lane: energy costs vary between 2p and £3 a unit!!
    • it’s in their interest to get us to use it at the right times
  • base electricity is provided by nuclear power
  • peak is provided by hydro
  • DynamicDemand.co.uk: figure out national supply by checking frequency
    • brownouts caused by frequency going too low
    • looking at making fridges turn themselves off when the frequency is lower
    • if all fridges did this, then peaks would be made less
    • see also caniturniton.com
  • in California they have battery farms (since the 80s)
  • solar panels are less efficient in the heat…
    • they get powered by light, not heat
  • bike generators:
    • bikes available for free — have generators
    • when they are parked, they provide their power for the local buses

Friday, 10 April 2009

BarCampLondon6: Get Google's 20% Time for Yourself

Flexible working has recently come under the spotlight — due to the change in UK law from the beginning of April, all parents with children under 17 are now able to request flexible working from their employers. Employers are only allowed to reject demands if there are “good business reasons for doing so”.

Parents often want to take time off to be with their children and to provide childcare during school holidays, but time off work is not just for looking after kids. Sometimes you might want to change the balance of your life and invest in your own ideas rather than those of a company.

This BarCampLondon session was a discussion on how you could take time for yourself, and what you would do with it once you’ve got it.

Introductions

  • Ben — a computer science student on his year out working for an ISP 2 days a week with flexible hours
  • Shadi — a “person of leisure”, problem solving for friends and family
  • Dale — working full time on flexible hours for a large IT company
    • shifted hours to be primary caregiver when first child was born, now wondering how to adjust hours to deal with second child
  • Adam — took off half a day a week when son was born; that time now used for himself since son is at school; recently thinking of moving to a full day off each week
  • Melanie — working full time but dreams of finding her own project; hasn’t found a solution yet
    • disappointed with work leaking in to personal time — e.g. people working on a Sunday to be ready for Monday morning
  • Anna — likes travelling; would like to have some work of her own she can take with her while she’s finding her feet in another country
  • Sarah — works full time but is setting up another company based in India in her spare time

Sarah’s experience

Sarah used to work for company similar to the one she has created. It was taken over a while ago, so she decided to set up something similar but better. She had a vague acquaintance who set up the contacts in India where development costs are very low (£300 per month!). At the moment she’s working on the English translation of the work done in India in her evenings, whilst working full time at her existing job during the day. This results in her working more hours than she would normally, but she has something of her own that she’s building up.

Ben’s experience

Ben is currently a student, trying to avoid going straight into full-time work. Instead, he’s working part time to his schedule. He has quit twice from his current employer as he didn’t want to work long hours. He wants to be able to work on his own projects.

Is working part-time really less hours?

Adam takes a day off every other week and gets to take that day completely for himself. However, Shadi used to work three days a week, but found that she was working until midnight to complete her tasks — her job was tech support so she had to get the customer back online. She also occasionally received calls on her days off if she was the last person to deal with a particular situation, asking her to deal with it. Since she had commitments to be in on certain days, she found she couldn’t alter her hours to compensate for working on her days off.

Ben pointed out that Carsonified have a company-wide policy to work a four day week — the whole office is closed on Fridays.

There’s also more choice than just full time or part time: some of Dale’s colleagues work compressed hours — working more hours a day, but four days a week. They still get paid full time. Others work longer hours during term time but have school holidays off so they can do childcare. See http://www.direct.gov.uk/en/Employment/Employees/WorkingHoursAndTimeOff/DG_10029491 for more information.

Sharing responsibility

As Shadi’s experience shows, you do need a job that can be put to one side — or a company environment that promotes sharing responsibility. Agile processes such as Extreme Programming make this a central part of the culture, not just to enable people going away but to encourage greater flexibility in the whole team. Hospitals also deal with sharing responsibilities regularly, with staff coming on and off shift but providing continuous cover.

Anna wondered whether the people sharing roles needed a certain level of communication skills in order to make this working style possible. Adam agreed: his company hire developers partly according to their ability to communicate in a paired programming exercise — the ability to clearly discuss what they’re working on is at least as important as being able to solve the programming exercise.

This approach clashes with a top-down, command and control culture: employees have to be able to trust their peers and communicate without going up and down the hierarchy. You can’t share a job with someone who you fear might take on your role and replace you when you’re not around.

When you have time to yourself, what do you do with it?

Setting up a new business is risky — so it’s good to balance it with the security of an existing job. Start-ups costs for online businesses are coming down — you can rent your servers in the cloud and only pay for as much CPU and bandwidth as you use.

There are also sites such as One Click Orgs which will enable you to set up a legal entity very quickly for little cost.

Sarah’s approach shows the value of capitalising on your experience — make sure that you’ve made the contacts and make sure that you build on them.

Involving other people

If you need to involve other people in your new venture, you have to balance their commitment with their involvement: if they’re doing you a favour for little money, they won’t necessarily work to your timescales.

Local currency systems like LETS (Local Exchange Trading Systems) can provide a community of people willing to help each other. The local currency is based on trust and disclosure, with everyone able to see everyone else’s trading history at all times. Members will hold to their commitments or risk other members never doing business with them (a bit like eBay reputations). Note that LETS are not a way of avoiding tax — if you’re operating a business that sells in LETS currency, you’re still eligible for paying tax on the income.

One of the original benefits of LETS schemes was the lack of interest on loans — you can easily have a negative balance and just agree to contribute more in the future. Given that bank interest rates are currently close to 0% anyway, this may not be such an incentive at the moment…

Anna pointed out that one of the most useful people to involve in setting up something new is a mentor — someone to get you moving and be there to provide advice on basic things like planning.