Planet Linux Australia

Syndicate content
Planet Linux Australia - http://planet.linux.org.au
Updated: 57 min 33 sec ago

Ben Martin: Terry 2.0 includes ROS!

2 hours 35 sec ago
What started as a little tinker around the edges has resulted in many parts of Terry being updated. The Intel j1900 motherboard is now mounted in the middle of the largest square structure, and SSD is mounted (the OCZ black drive at the bottom), yet another battery is mounted which is a large external laptop supply, the Kinect is now mounted on the pan and tilt mechanism along with the 1080p webcam that was previously there. The BeagleBone Black is moved to its own piece of channel and a breadboard is sunk into the main 2nd top level channel.





I haven't cabled up the j1900 yet. On the SSD is Ubuntu and ROS including a working DSLAM (strangely some fun and games getting that to compile and then to not segv right away).



I used 3 Actobotics Beams, one IIRC is a 7.7 incher and two shorter ones. The long beam actually lines on for the right side of the motherboard that you see in the image. The beam is attached with nylon bolts and has a 6.6mm standoff between the motherboard and the beam to avoid any undesired electrical shorts. With the two shorter beams on the left side of the motherboard it is rather securely attached to Terry now. The little channel you see on the right side up a little from the bottom is there for the 7.7 inch beam to attach to (behind the motherboard) and there is a shorter beam on this side to secure the floating end of the channel to the base channel.







The alloy structure at the top of the pan and tilt now has a Kinect attached. I used a wall mount plastic adaptor which with great luck and convenience the nut traps lined up to the actobotics holes. I have offset the channel like you see so that the center of gravity is closer to directly above the pan and tilt. Perhaps I will have to add some springs to help the tilt servo when it moves the Kinect back too far from the centre point. I am also considering a counter balance weight below the tilt which would also work to try to stabilize the Kinect at the position shown.







I was originally planning to put some gripper on the front of Terry. But now I'm thinking about using the relatively clean back channel to attach a threaded rod and stepper motor so that the gripper can have access to the ground and also table top. Obviously the cameras would have to rotate 180 degrees to be able to see what the gripper was up to. Also for floor pickups the tilt might have to be able to handle a reasonable downward "look" without being too hard on the servo.



There were also some other tweaks. A 6 volt regulator is now inlined into a servo extension cable and the regulator is itself bolted to some of the channel. Nice cooling, and it means that the other end of that servo extension can take something like 7-15v and it will give the servo the 6v it wants. That is actually using the same battery pack as the drive wheels (8xAA).



One thing that might be handy for others who find this post, the BeagleBone Black Case from sparkfun attaches to Actobotics channel fairly easily. I used two cheesehead m3 nylocks and had to force them into the enclosure. The nylocks lined up to the Actobotics channel and so the attachment was very simple. You'll want a "3 big hole" or more bit of channel to attach the enclosure to. I attached it to a 3 bit holer and then attaced that channel to the top of Terry with a few threaded standoffs. Simplifies attach and remove should that ever be desired.



I know I need slip rings for the two USB cameras up top. And for the tilt servo as well. I can't use a USB hub up top because both the USB devices can fairly well saturate a USB 2.0 bus. I use the hardware encoded mjpeg from the webcam which helps bandwidth, but I'm going to give an entire USB 2.0 bus to the Kinect.



linux.conf.au News: Keynote Speaker - Professor Eben Moglen

7 hours 59 min ago

The LCA 2015 team is honoured to announce our first Keynote speaker - Professor Eben Moglen, Executive Director of the Software Freedom Law Center and professor of Law and Legal History at Columbia University Law School.

Professor Moglen's presentation is scheduled for 09:00 am Tuesday, 13 January 2015

Professor Moglen has represented many of the world's leading free software developers. He earned his PhD in History and his law degree at Yale University during what he sometimes calls his “long, dark period” in New Haven.

After law school he clerked for Judge Edward Weinfeld of the United States District Court in New York City and for Justice Thurgood Marshall of the United States Supreme Court. He has taught at Columbia Law School since 1987 and has held visiting appointments at Harvard University, Tel Aviv University and the University of Virginia.

In 2003 he was given the Electronic Frontier Foundation's Pioneer Award for efforts on behalf of freedom in the electronic society.

We are especially grateful to Michael Davies for his efforts in bringing Professor Moglen to LCA 2015 in Auckland for us - thank you Michael!

The LCA 2015 Auckland Team

Jan Schmidt: 2014 GStreamer Conference

21 hours 1 min ago

I’ve been home from Europe over a week, after heading to Germany for the annual GStreamer conference and Linuxcon Europe.

We had a really great turnout for the GStreamer conference this year

as well as an amazing schedule of talks. All the talks were recorded by Ubicast, who got all the videos edited and uploaded in record time. The whole conference is available for viewing at http://gstconf.ubicast.tv/channels/#gstreamer-conference-2014

I gave one of the last talks of the schedule – about my current work adding support for describing and handling stereoscopic (3D) video. That support should land upstream sometime in the next month or two, so more on that in a bit.

There were too many great talks to mention them individually, but I was excited by 3 strong themes across the talks:

  • WebRTC/HTML5/Web Streaming support
  • Improving performance and reducing resource usage
  • Building better development and debugging tools

I’m looking forward to us collectively making progress on all those things and more in the upcoming year.

Andrew Pollock: [life] Day 274: Errands, friends old and new, and swim class

Thu, 2014-10-30 22:25

In researching ways to try and help Zoe sleep for longer, I learned that there's basically two triggers for waking up in the morning: light and heat. Because Queenslanders hate daylight saving, the sun gets up ridiculously early in summer. Because Queensland is hot, it also gets very hot pretty early. Our bedrooms are on the eastern side of the apartment to boot.

I already have nice blackout curtains, and I had pelmets installed last summer to try and reduce the light leakage around the curtains. I also had reflective window film put on our bedroom windows last summer in an effort to reduce the morning heat when the sun rose, but I don't think it's made a massive difference to a closed up bedroom. I think Zoe woke up at about 5:40am this morning. I'm not sure what the room temperature was, because the Twine in her room decided not to log it this morning. Air conditioning is the next thing to try.

After breakfast, we ran a few errands, culminating at a trip to the carwash for babyccino. After that, we headed over to Toowong to pick up Geneal, who was a friend of my biological mother that I've kept in loose contact since I've been an adult. We went over to the Toowong Bowls Club for lunch, and had a nice catch up.

The Toowong Bowls Club has a rather disturbing line on the wall showing the height of the 2011 floods. It's probably taller than my raised arm from the ground level of the building.

After lunch, and dropping Geneal home, we headed over for a play date at the home of Chloe, who will be starting Prep next year at Zoe's school. I met Chloe's Mum, Kelley, at the P&C meeting I went to earlier in the year, and then proceeded to continue to bump into her at numerous school-related things ever since. She's been a good person to know, having an older daughter at the school as well, and has given me lots of advice.

Zoe and Chloe got along really well, and Chloe seems like a nice kid. After the play date, we walked to school to collect Chloe's older sister, and then to swim class. We were early, but Zoe was happy to hang out.

I am just so loving the vibe I'm getting about the school, and really loving the school community itself. I'm really looking forward to the next seven years here.

After swim class, we walked back to Chloe's house to retrieve the car, and say goodbye to Chloe, and headed home. It was another nice full, but not too full day.

Linux Users of Victoria (LUV) Announce: LUV Main November 2014 Meeting: Raspberry Pi update + systemd

Thu, 2014-10-30 12:30
Start: Nov 5 2014 19:00 End: Nov 5 2014 21:00 Start: Nov 5 2014 19:00 End: Nov 5 2014 21:00 Location: 

The Buzzard Lecture Theatre. Evan Burge Building, Trinity College, Melbourne University Main Campus, Parkville.

Link:  http://luv.asn.au/meetings/map

Please note that the November meeting is on Wednesday night rather than Tuesday night due to the Melbourne Cup.

Alec Clews, Raspberry Pi update

Russell Coker, systemd

The Buzzard Lecture Theatre, Evan Burge Building, Trinity College Main Campus Parkville Melways Map: 2B C5

Notes: Trinity College's Main Campus is located off Royal Parade. The Evan Burge Building is located near the Tennis Courts. See our Map of Trinity College. Additional maps of Trinity and the surrounding area (including its relation to the city) can be found at http://www.trinity.unimelb.edu.au/about/location/map

Parking can be found along or near Royal Parade, Grattan Street, Swanston Street and College Crescent. Parking within Trinity College is unfortunately only available to staff.

For those coming via Public Transport, the number 19 tram (North Coburg - City) passes by the main entrance of Trinity College (Get off at Morrah St, Stop 12). This tram departs from the Elizabeth Street tram terminus (Flinders Street end) and goes past Melbourne Central Timetables can be found on-line at:

http://www.metlinkmelbourne.com.au/route/view/725

Before and/or after each meeting those who are interested are welcome to join other members for dinner. We are open to suggestions for a good place to eat near our venue. Maria's on Peel Street in North Melbourne is currently the most popular place to eat after meetings.

LUV would like to acknowledge Red Hat for their help in obtaining the Buzzard Lecture Theatre venue and VPAC for hosting, and BENK Open Systems for their financial support of the Beginners Workshops

Linux Users of Victoria Inc., is an incorporated association, registration number A0040056C.

November 5, 2014 - 19:00

read more

Stewart Smith: New libeatmydata release: 105

Thu, 2014-10-30 10:27

Over on the project page and on launchpad you can now download libeatmydata 105.

This release fixes a couple of bugs that came in via the Debian project, including a rather interesting one about some binaries not running .so ctors to properly init libeatmydata and the code path in the libeatmydata open() not really dealing with being called first in this situation.

Enjoy!

linux.conf.au News: Speaker Feature: Meg Howie, Joshua Hesketh

Thu, 2014-10-30 08:28
Meg Howie Ask Away: Staking Out the Stakeholders

11:35am Friday 16th January 2015

Meg is a designer and thinker whose practice spans graphic, interactive, film, service and performance design. She is currently undertaking a Master of Design at Massey University and her research explores the influence of open source culture and participatory democracy on civic engagement. Meg’s work is deeply social, and draws from human-centred design, behavioural psychology and collaborative modes of working.

For more information on Meg and her presentation, see here. You can follow her as @howiemeg and don’t forget to mention #LCA2015.



Joshua Hesketh Who is Linux Australia?

3:40pm Thursday 15th January 2015

Joshua is a software developer for Rackspace Australia working on upstream OpenStack. He works from his home in Hobart, Tasmania. Joshua is currently President of Linux Australia, previously the co-chair for PyCon Australia and a key organiser for linux.conf.au. He has an interest in robotics having recently completed a degree in mechatronic engineering. Josh is an active contributor to the openstack-infra and nova projects.

For more information on Josh and his presentation, see here.

Andrew Pollock: [life] Day 273: Kindergarten, more startup stuff, and another Prep day

Wed, 2014-10-29 22:25

I had another busy day today. I've well and truly falled off the running wagon, which I really need to fix rather urgently. I would have liked to have gone for a run this morning, but it didn't happen.

I started off with a chiropractic adjustment, and then a bit of random cooking to use up some perishables, before the cleaners arrived.

While the cleaners were here, I managed to knock over another unit of my real estate course, which I was pretty stoked about. I'll try and get it in the mail tomorrow, and that's the last one from the first half of the course done.

I grabbed a massage, and then headed over to pick up Zoe early from Kindergarten to take her to school for another Prep introduction session. I really like Zoe's school. This year for the first time they're running a four week program where the kids can come for a couple of hours.

Today it was fine and gross motor skills. They divided the group in half, and Zoe's half did fine motor skills first. The kids rotated through three different stations, which all had three or four activities each. Zoe did pretty well with these.

Then the groups swapped over, and we returned to the hall where we started, to do some gross motor skills. I would have thought this would have been right up Zoe's alley, since a lot of it was similar to TumbleTastics, but she was very clingy, and they kept rotating between stations faster than she got warmed up to the activity.

She was a bit overwhelmed in the larger group setting in general. Hopefully next week with a bit of preparation before we come (and no Kindergarten) she'll do better.

After we got home, I showed Zoe a balloon full of water that I'd put in the freezer. She had a great time smashing it on the balcony. I'll have to do that again.

It's a hot night tonight, I hope Zoe sleeps okay. It was definitely time to bust out the fan.

Lev Lafayette: Training and Education in High Performance Computing for eReseachers

Wed, 2014-10-29 11:29

"Big data" requires processing. Processing requires HPC. Increased processing results in increased research output. Research organisations that do not increase HPC usage will fall behind. HPC requires either 'dumb down the interface or skill up the user'. Making "user friendly" interfaces may not be the right path to take as HPC use will always have a minimum level of complexity. Training courses that use andragogical technqiues correlate with increased HPC use.

Presentation to eResearch Australasia, Melbourne, October 28, 2014

linux.conf.au News: Speaker Feature: Christoph Lameter, Brandon Philips

Wed, 2014-10-29 08:28
Christoph Lameter SL[AUO]B:Kernel memory allocator design and philosophy

12:15pm Friday 16th January 2015

Christoph specializes in High Performance Computing and High Frequency Trading technologies. As an operating system designer and kernel developer he has been developing memory management technologies for Linux to enhance performance and reduce latencies. He is fond of new technologies and new ways of thinking that disrupt existing industries and causes new development communities to emerge.

For more information on Christoph and his presentation, see here. You can follow him as @qant and don’t forget to mention #LCA2015.



Brandon Philips CoreOS: An introduction

11:35 am Friday 16th January 2015

Brandon Philips is helping to build modern Linux server infrastructure at CoreOS. Prior to CoreOS, he worked at Rackspace hacking on cloud monitoring and was a Linux kernel developer at SUSE. In addition to his work at CoreOS, Brandon sits on Docker's governance board and is one of the top contributors to Docker. As a graduate of Oregon State's Open Source Lab he is passionate about open source technologies.

Brandon has also been a speaker at many conferences including Open Source Bridge 2012 and Open Source Conference 2012.

For more information on Brandon and his presentation, see here. You can follow him as @BrandonPhilips and don’t forget to mention #LCA2015.

Andrew Pollock: [life] Day 272: Kindergarten, startup stuff

Tue, 2014-10-28 22:25

I had a great, productive day today.

I got stuck into my real estate licence coursework this morning, and finished off a unit. I biked down to the post office to mail it off, and picked up the second half of my coursework. After I finish the unit I started today, I'll have 8 more units to go. Looking at the calendar, if I can punch out a unit a week (which is optimistic, particularly considering that school holidays are approaching) I could be finished by the end of the year. More realistically, I can try to be finished by the time Zoe starts school, which will be perfect, and well inside the 12 month period I'm supposed to get it done in. We shall see how things pan out.

I biked to Kindergarten to pick up Zoe, and she wanted to watch Megan's tennis class for a while, so we hung around. She was pretty wiped out from a water play day at Kindergarten today. We biked home, and then she proceeded to eat everything in the house that wasn't tied down until Sarah arrived to pick her up.

I used the rest of the afternoon to do some more administrative stuff and tidy up a bit, before heading off to my yoga class. I had a really lovely stretch class with just me and my yoga teacher, so we spent the whole class chatting and having a great catch up. It was a great way to end the day.

Andrew Pollock: [life] Day 271: Kindergarten, lots of administrivia and some tinkering

Tue, 2014-10-28 13:25

Zoe woke up at about 6am, which gave us a bit of extra time to get moving in the morning, or so I thought.

We biked over to the Kindergarten for drop off, and I left the trailer there to make biking back in the afternoon heat easier.

I had a pretty productive day. It was insanely hot, so I figured I could run the air conditioning more or less guilt (and expense free) courtesy of my solar power. I should check just how much power it draws to see how "free" it is to run.

I mostly cleared lots of random stuff off my to do list, and made a few lengthy phone calls. I also did some more tinkering with my BeagleBone Black, trying to get it set up so I can back up daedalus. It's been fun playing with Puppet again. I now have a pretty nice set up where I can wipe the BeagleBone Black and get it back to how I want it configured in about 5 minutes, thanks to Puppet.

I biked over to Kindergarten to pick up. I got there a few minutes early, and received a very heartening phone call regarding an issue I'd been working on earlier.

Zoe and Megan wanted to have a play date, and since it was hot and I'd left the air conditioning on, I suggested it be at our place. I biked home, and Jason dropped Megan around.

The girls played inside for a bit, but then wanted to do some more craft on the balcony, so I let them get to it, with instructions to put stuff away before they took more stuff out, and the balcony ended up significantly cleaner as a result. I used the time to do some more tinkering with my backups and to book a flight down to Sydney to help a friend out with some stuff.

A massive storm rolled in, not long after Anshu arrived, so we all went out on the balcony to watch the lightning, and then Sarah arrived to pick up Zoe. Megan hung out for a bit longer until Jason arrived to pick her up.

linux.conf.au News: Speaker Feature: Lillian Grace, David Rowe

Tue, 2014-10-28 09:28
Lillian Grace Wiki New Zealand: Winning through collaboration

4:35pm Thursday 15th January 2015

Lillian is the founder and chief of Wiki New Zealand.

Wiki New Zealand is a collaborative website making data about New Zealand visually accessible to everyone. The site presents data in simple, visual form only, so that it remains as unbiased and as accessible to everyone as possible. The content is easy to understand and digest, and is presented from multiple angles, wide contexts and over time, inviting users to compare, contrast and interpret. Lillian is an accomplished presenter who was invited to speak at OSDC 2013, was a keynote speaker at Gather 2014 and a speaker at TEDx Auckland 2013.

For more information on Lillian and her presentation, see here. You can follow her as @GracefulLillian and don’t forget to mention #LCA2015.



David Rowe The Democratisation of Radio

10:40am Thursday 15th January 2015

David is an electronic engineer living in Adelaide, South Australia. His mission is to improve the world – just a little bit, through designing open hardware and writing open source software for telephony.

In January 2006 David quit corporate life as an Engineering Manager to become an open source developer. He now develops open telephony hardware and software full time. David likes to build advanced telephony technology – then give it away.

For more information on David and his presentation, see here. You can follow him as @davidgrowe67 and don’t forget to mention #LCA2015.

James Morris: Linux Security Summit 2014 Wrap-Up

Tue, 2014-10-28 00:26

The slides from the 2014 Linux Security Summit in August may be found linked at the schedule.

LWN covered both the James Bottomley keynote, and the SELinux on Android talk by Stephen Smalley.

We had an engaging and productive two days, with strong attendance throughout.  We’ll likely follow a similar format next year at LinuxCon.  I hope we can continue to expand the contributor base beyond mostly kernel developers.  We’re doing ok, but can certainly do better.  We’ll also look at finding a sponsor for food next year.

Thanks to those who contributed and attended, to the program committee, and of course, to the events crew at Linux Foundation, who do all of the heavy lifting logistics-wise.

See you next year!

linux.conf.au News: Speaker Feature: Lana Brindley & Alexandra Settle, Olivier Bilodeau

Mon, 2014-10-27 11:28
Lana Brindley and Alexandra Settle 8 writers in under 8 months: from zero to a docs team in no time flat

11:35am Thursday 15th January 2015

Lana and Alexandra are both technical writers as Rackspace, the open Cloud Company.

Lana has been writing open source technical documentation for about eight years, and right now I’m working on documenting OpenStack with Rackspace, she does a lot of speaking, mostly about writing. She also talks about other topics from open source software to geek feminism and working in IT.

Lana is also involved in several volunteer projects including linux.conf.au, Girl Geek Dinners, LinuxChix, OWOOT (Oceania Women of Open Tech), and various Linux Users Groups (LUGs). Alexandra is a technical writer with the Rackspace Cloud Builders Australia team. She began her career as a writer for the cloud documentation team at Red Hat, Australia. Alexandra prefers Fedora over other Linux distributions.

Recently she was part of a team that authored the OpenStack Design Architecture Guide, and hopes to further promote involvement in the OpenStack community within Australia.

For more information on Lana and Alexandra and their presentation, see here. You can follow them as @Loquacities (Lana) or @dewsday (Alexandra) and don’t forget to mention #LCA2015.



Olivier Bilodeau Advanced Linux Server-Side, Threats: How they work and what you can do about them

1:20pm Friday 16th January 2015

Olivier is an engineer that loves technology, software, security, open source, linux, brewing beer, travels and android.

Coming from the dusty Unix server room world, Olivier evolved professionally in networking, information security and open source software development to finally become malware researcher at ESET Canada. Presenting at Defcon, publishing in (In)secure Mag, teaching infosec to undergrads (ÉTS), driving the NorthSec Hacker Jeopardy and co-organizer of the MontréHack training initiative are among its note-worthy successes.

For more information on Olivier and his presentation, see here. You can follow him as @obilodeau and don’t forget to mention #LCA2015.

Sridhar Dhanapalan: Twitter posts: 2014-10-20 to 2014-10-26

Mon, 2014-10-27 01:27

Craige McWhirter: Craige McWhirter: Automating Building and Synchronising Local & Remote Git Repos With Github

Sat, 2014-10-25 22:28

I've blogged about some git configurations in the past. In particular working with remote git repos.

I have a particular workflow for most git repos

  • I have a local repo on my laptop
  • I have a remote git repo on my server
  • I have a public repo on Github that functions as a back up.

When I push to my remote server, a post receive hook automatically pushes the updates to Github. Yay for automation.

However this wasn't enough automation, as I found myself creating git repos and running through the setup steps more often than I'd like. As a result I created gitweb_repo_build.sh which takes all the manual steps I go through to setup my workflow and automates it.

The script currently does the following:

  • Builds a git repo locally
  • Adds a README.mdwn and a LICENCE. Commits the changes.
  • Builds a git repo hosted via your remote git server
  • Adds to the remote server, a git hook for automatically pushing to github
  • Adds to the remote server, a git remote for github.
  • Creates a repo at GitHub a via API 3
  • Pushes the READEME and LICENCE to the remote, which pushes to github.

It's currently written in bash and has no error handling.

I've planned a re-write in Haskell which will have error handling.

If this is of use to you, enjoy :-)

Mark Terle: That rare feeling …

Sat, 2014-10-25 16:25

… of actually completing things.

Upon reflection, it appears to have been a sucessful week.

Work – We relocated offices (including my own desk (again)) over the previous week from one slightly pre-used office building to another more well-used office building. My role as part of this project was to ensure that the mechanics of the move as far as IT and Comms occured and proceed smoothly. After recabling the floor, working with networks, telephones and desktops staff it was an almost flawless move, and everyone was up and running easily on Monday morning. I received lots of positive feedback which was good.

Choir – The wrap up SGM for the 62nd Australian Intervarsity Choral Festival Perth 2011, Inc happened. Pending the incorporation of the next festival, it is all over bar a few cheques and paperwork. Overall it was a great festival and as Treasurer was pleased with the final financial result (positive).

Hacking – This weeks little project has been virtualsnack. This is a curses emulator of the UCC Snack Machine and associated ROM. It is based on a previous emulator written with PyGTK and Glade that had bitrotted in the past ten years to be non-functioning and not worth the effort to ressurect. The purpose of the emulator is enable development of code to speak to the machine without having to have the real machine available to test against.

I chose to continue to have the code in python and used npyscreen as the curses UI library. One of the intermediate steps was creating a code sample, EXAMPLE-socket.py, which creates a daemon that speaks to a curses interfaces.

I hereby present V1.0 “Gobbledok” of virtualsnack. virtualsnack is hosted up on Github for the moment, but may move in future. I suspect this item of software will only be of interest to my friends at UCC.

Andrew Pollock: [life] Day 268: Science Friday, TumbleTastics, haircuts and a big bike outing

Fri, 2014-10-24 23:26

I didn't realise how jam packed today was until we sat down at dinner time and recounted what we'd done today.

I started the day pretty early, because Anshu had to be up for an early flight. I pottered around at home cleaning up a bit until Sarah dropped Zoe off.

After Zoe had watched a bit of TV, I thought we'd try some bottle rocket launching for Science Friday. I'd impulse purchased an AquaPod at Jaycar last year, and haven't gotten around to using it yet.

We wandered down to Hawthorne Park with the AquaPod, an empty 2 litre Sprite bottle, the bicycle pump and a funnel.

My one complaint with the AquaPod would have to be that the feet are too smooth. If you don't tug the string strongly enough you end up just dragging the whole thing across the ground, which isn't really what you want to be doing. Once Zoe figured out how to yank the string the right way, we were all good.

We launched the bottle a few times, but I didn't want to waste a huge amount of water, so we stopped after about half a dozen launches. Zoe wanted to have a play in the playground, so we wandered over to that side of the park for a bit.

It was getting close to time for TumbleTastics, and we needed to go via home to get changed, so we started the longish walk back home. It was slow going in the mid-morning heat and no scooter, but we got there eventually. We had another mad rush to get to TumbleTastics on time, and miraculously managed to make it there just as they were calling her name.

Lachlan wasn't there today, and I was feeling lazy, and Zoe was keen for a milkshake, so we dropped into Ooniverse on the way home. Zoe had a great old time playing with everything there.

After we got home again, we biked down to the Bulimba post office to collect some mail, and then biked over for a haircut.

After our haircuts, Zoe wanted to play in Hardcastle Park, so we biked over there for a bit. I'd been wanting to go and check out the newly opened Riverwalk and try taking the bike and trailer on a CityCat. A CityCat just happened to be arriving when we got to the park, but Zoe wasn't initially up for it. As luck would have it, she changed her mind as the CityCat docked, but it was too late to try and get on that one. We got on the next one instead.

I wasn't sure how the bike and the trailer were going to work out on the CityCat, but it worked out pretty well going from Hawthorne to New Farm Park. We boarded at Hawthorne from the front left hand side, and disembarked at New Farm Park from the front right hand side, so I basically just rolled the bike on and off again, without needing to worry about turning it around. It was a bit tight cornering from the pontoon to the gangway, but the deckhand helped me manoeuvre the trailer.

It was quite a nice little ride through the back streets of New Farm to get to the start of the Riverwalk, and we had a nice quick ride into the city. We biked all the way along the riverside through to the Old Botanic Gardens. We stopped for a little play in the playground that Zoe had played in the other weekend when we were wandering around for Brisbane Open House, and then continued through the gardens, over the Goodwill Bridge, and the bottom of the Kangaroo Point cliffs.

We wound our way back home through Dockside, and Mowbray Park and along the bikeway alongside Wynnum Road. It was a pretty huge ride, and I'm excited that it's opened up an easy way to access Southbank by bicycle. I'm looking forward to some bigger forays in the near future.

Tim Serong: Watching Grass Grow

Fri, 2014-10-24 19:27

For Hackweek 11 I thought it’d be fun to learn something about creating Android apps. The basic training is pretty straightforward, and the auto-completion (and auto-just-about-everything-else) in Android Studio is excellent. So having created a “hello world” app, and having learned something about activities and application lifecycle, I figured it was time to create something else. Something fun, but something I could reasonably complete in a few days. Given that Android devices are essentially just high res handheld screens with a bit of phone hardware tacked on, it seemed a crime not to write an app that draws something pretty.

The openSUSE desktop wallpaper, with its happy little Geeko sitting on a vine, combined with all the green growing stuff outside my house (it’s spring here) made me wonder if I couldn’t grow a little vine jungle on my phone, with many happy Geekos inhabiting it.

Android has OpenGL ES, so thinking that might be the way to go I went through the relevant lesson, and was surprised to see nothing on the screen where there should have been a triangle. Turns out the view is wrong in the sample code. I also realised I’d probably have to be generating triangle strips from curvy lines, then animating them, and the brain cells I have that were once devoted to this sort of graphical trickery are so covered in rust that I decided I’d probably be better off fiddling around with beziers on a canvas.

So, I created an app with a SurfaceView and a rendering thread which draws one vine after another, up from the bottom of the screen. Depending on Math.random() it extends a branch out to one side, or the other, or both, and might draw a Geeko sitting on the bottom most branch. Originally the thread lifecycle was tied to the Activity (started in onResume(), killed in onPause()), but this causes problems when you blank the screen while the app is running. So I simplified the implementation by tying the thread lifecycle to Surface create/destroy, at the probable expense of continuing to chew battery if you blank the screen while the app is active.

Then I realised that it would make much more sense to implement this as live wallpaper, rather than as a separate app, because then I’d see it running any time I used my phone. Turns out this simplified the implementation further. Goodbye annoying thread logic and lifecycle problems (although I did keep the previous source just in case). Here’s a screenshot:

The final source is on github, and I’ve put up a release build APK too in case anyone would like to try it out – assuming of course that you trust me not to have built a malicious binary, trust github to host it, and trust SSL to deliver it safely

Enjoy!

Update 2014-10-27: The Geeko Live Wallpaper is now up on the Google Play store, although for some reason the “Live Wallpaper” category wasn’t available, so it’s in “Personalization” until (hopefully) someone in support gets back to me and tells me what I’m missing to get it into the right category.

Updated Update: Someone in support got back to me. “Live Wallpaper” can’t be selected as a category in the developer console, rather you have to wait for Google’s algorithms to detect that the app is live wallpaper and recategorize it automatically.