Saturday, December 31, 2011

On the Seventh Day of PhoneGapping: Debugging

One of the truly horrible things about doing web application development on mobile phones is the lack of web development tools that you'd see in modern desktop web browsers. Luckily for us a couple of folks have made it a lot easier to do web dev with tools like weinre by Patrick Mueller and iWebInspector by Maximiliano Firtman. I'm going to spend my time talking about weinre not because iWebInspector isn't as good but because I spend most of my time in Android land so I'm much more familiar with weinre.

The description from the home page:

"weinre is a debugger for web pages, like FireBug (for FireFox) and Web Inspector (for WebKit-based browsers), except it's designed to work remotely, and in particular, to allow you debug web pages on a mobile device such as a phone."

Isn't that great? You can have the developer tools you are used to back in your greedy little hands again.

The weinre home page has detailed instructions on how to setup your own server, which is not that difficult, but if you are like me (i.e. lazy) there is already a server setup for you at debug.phonegap.com where getting started is only three steps away. 


Friday, December 30, 2011

On the Sixth Day of PhoneGapping: Downloading a File

Did you know that the FileTransfer object got a new download method in PhoneGap 1.3.0? You didn't, well thanks to Alexander Heinrich for spurring it's  development and getting it checked in for Android and iOS (download is also available to you BlackBerry users). Finally PhoneGap developers have a convenient way to download binary files.

The method signature is:
download(source, destination, successCallback, errorCallback);
Where the parameters are:

source: The URL you want to download
destination: The full file path you want the file stored at
successCallback: called with a FileEntry object that represents the new file
errorCallback: called when something goes wrong

So say we want to download a PNG image and store it on the SD card. Well you'd write some code that looks like this:

Thursday, December 29, 2011

On the Fifth Day of PhoneGapping: Five Two Minute Tutorials

Another re-blog but there are some gems here as the folks at Mobile Development Solutions have put together 5 two minute tutorials using PhoneGap Android.

They've put together tutorials on:

1) Media Player
2) Getting your app market ready
3) Barcode Scanning
4) Google Maps
5) Twitter and OAuth

Thanks to Libby and Paul for everything they do to support the PhoneGap community.

Wednesday, December 28, 2011

On the Fourth Day of PhoneGapping: Creating a Database from a SQL Dump

On a slightly different track than Day 2 we are going to create a SQLiteDB from scratch using only JavaScript on startup of our application. In order to do this we are going to use the handy JavaScript library HTML5SQL.js by Ken Corbett Jr.

First we'll do a check to see if we've already created our database. If we haven't we'll do a XHR to get the SQL dump file containing all the statements we need to create and populate our tables. Finally, upon success we'll set a flag so this doesn't run every time we start our application.

and here is our sql file:


The html5sql.js lib makes working with the Web SQL specification much easier than hard coding it yourself. You owe it to yourself to look into this library as it will save you some time and hair.

Tuesday, December 27, 2011

On the Third Day of PhoneGapping: Getting Data from a Server

Well your application would be pretty useless if you couldn't get data from a remote server now wouldn't it? Luckily since your PhoneGap application is running off of the file:// protocol it isn't limited by the same origin policy. This means we can request data using XmlHttpRequest from any domain.

I'm going to give you an example of searching for all tweets that mention PhoneGap that demonstrates this ability without the use of any extra JavaScript library like jQuery or Dojo.



So that is the example in a nutshell. It isn't very different from your normal XHR call except for one line that I need to bring to your attention:
if (request.status == 200 || request.status == 0) {
Most of the time you are just looking for the 200 status code you also need to accept the status code of 0 as also OK. Sometimes when you are requesting data via XHR from the file:// protocol you will get a 0 status code. As I said that is perfectly normal and you should treat it as a 200 and move on with your application.

Much of the rest of this code is just building up a HTML string I can do an insert into a div I've set aside for displaying the tweets. Just wanted to show everyone how easy it is to communicate with a remote server.

Monday, December 26, 2011

On the Second Day of PhoneGapping: Copying a native database

The topic of creating a large SQLiteDB to persist data on the device comes up a lot on the Google Group. Sadly, most of the modern web browsers limit you to a maximum database size of 5 megabytes. If you really need a database bigger than that you'll need to jump through a few hoops.

Luckily a developer by the name of Gaurav S Tomar has already gone through the process of explaining how to do this in his excellent blog post:

Prepopulate SQLite DataBase in PhoneGap Application

So go check it out!

What you say? Here we are on the second day and he's already pointing us to other people's blog posts. Well I never said I was going to write the all just want to make you aware of some tricks you can use in your PhoneGap applications.

Sunday, December 25, 2011

On the First Day of PhoneGapping: Get to deviceready faster on Android

This tip is courtesy of a question that Pamela Fox posted up over on the PhoneGap Google Group as she was wondering why it sometimes takes longer for the PhoneGap deviceready event to fire.

As all good PhoneGappers know you need to wait until you receive the deviceready event before you can call any of the PhoneGap API's. But, what has to happen before the deviceready event fires? Well here is breakdown of events that fire before deviceready:

  1. onDOMContentLoaded Internal event that is received when the web page is loaded and parsed.
  2. window.onload Body onload event.
  3. onNativeReady Internal event that indicates the PhoneGap native side is ready.
  4. onPhoneGapInit Internal event that kicks off creation of all PhoneGap JavaScript objects (runs constructors).
  5. onPhoneGapReady Internal event fired when all PhoneGap JavaScript objects have been created
  6. onPhoneGapInfoReady Internal event fired when device properties are available
  7. onPhoneGapConnectionReady Internal event fired when the connection property has been set.
  8. onDeviceReady User event fired to indicate that PhoneGap is ready
That may seem like a lot but you don't have to worry about it as you can't speed up the process any. That is, except in one area. The onNativeReady event does not fire until the the onPageFinished method gets called on the Android WebViewClient.

So anything you do that increases the amount of time before the web view understands the page is completely loaded will keep you from getting to deviceready. For instance if you are doing a lot of things  in the window.onload method it will delay deviceready. In Pamela's particular instance she was doing an XmlHttpRequest in the onload method which delayed things.

The fix and the tip in this case is to move as many things from your onload event handler to your deviceready event handler.


Friday, December 23, 2011

Books I've Read This Week

I still haven't finished The Children of the Sky but here are some awfully short reviews to tie you over.

B.P.R.D. Volume 10: The Warning Liz is kidnapped and it is up to the team to track down the creepy guy who took her. In the background the teams main enemies get together and get organized.

B.P.R.D. Volume 11: The Black Goddess the team successfully tracks down Liz but will they be able to save her against the Frogs, the Black Flame and the remnants of Hyperborea. Plus, I'm really really beginning to hate Johann.

X-Factor, Vol. 1: The Longest Night by Peter David is a book I've been meaning to read for awhile now. I like this hard boiled detective story set in the Marvel Universe where the detectives are all mutants with super powers. I really enjoyed the first volume and I'm looking forward to the second.

See you next Friday.

Twelve Days of PhoneGapping!

Starting on Christmas Day, December 25th, I'll be posting one PhoneGap tip per day for 12 days in what I'm grandiosely calling The Twelve Days of PhoneGap. Some of these tips you'll already know and some you won't but hopefully we'll all learn something.

For most of those days I'll actually be on vacation so it may take a bit for me to respond to any comments left on the post. Here's hoping everyone has a great holiday season!

Friday, December 16, 2011

Books I've Read This Week

I know I hinted at a review for The Children of the Sky but I haven't finished with it yet so you'll have to be happy with:

Naruto, Vol. 52 is the last volume I'll be reading for awhile as I've completely caught up on the series with volume 53 just being released on Dec 6th and my local library does not have it yet. We get the beginnings of a battle between Naruto and Sasuke who were once best of friends but now are mortal enemies as Sasuke has been led down a dark path. Stop me if you've heard this one before. Anyway, I don't want to be flippant but you can see how Naruto is maturing so much so I'm beginning to like him more. Funny that the title's main character was not always your favourite character.

Morning Glories, Vol. 2 by Nick Spencer is like the movie The Breakfast Club mixed with a horror movie that's on crack. In the first volume we are introduced the the school, Morning Glory Academy but we don't really get to know a lot about the 6 kids that are the main characters as they are struggling to fit in and well not be killed by the school and the creepy faculty. Now in volume 2 we are treated to 6 individual stories each one focusing on a main character. We get to see there is more depth behind, the rich kid, the jock, the smart one, the geek, the cheerleader and the goth in a number of surprising ways. All the while Spencer is able to move the story forward while giving valuable background information.

Also, the series artist Joe Eisma is absolutely killing it and you should check this recent breakdown of his art on the series.

See you next Friday.

Friday, December 9, 2011

Books I've Read This Week

Nothing to report this week. My daughter was sick for about five days with a fever/flu which cut into my reading time. I'm just cracking open The Children of the Sky by Vernor Vinge which promisses to be a great read.

See you next Friday.

Friday, December 2, 2011

Installing the Barcode Plugin for PhoneGap Android

Some folks are having problems getting the Barcode Scanner plugin up and running for PhoneGap Android so I figured I'd write a more detailed explanation on how to get it up and running.

First you'll want to go download the Library Project part from GitHub. You'll want to use the code from github as I've modified it slightly so that it is responds to the correct intent.

Once downloaded you'll want to create a new Android project from existing source in Eclipse. The project name shows up as CaptureActivity but I'm going to change it to BarcodeLibrary which is more descriptive.


but don't click on Finish yet. Click the Next button...


and select the highest level of Android SDK you have installed before clicking Finish.

Now that you've created the library project which contains the barcode scanning code you'll want to right mouse click on the BarcodeLibrary project and select Properties. In the Properties dialog, select the Android tab and ensure the Is Library checkbox is click. The benefit of doing things this way is you can link this library into multiple Android projects without needing to copy a bunch of source around.

Now that we've got our library setup let's add it to our project. Right click on your PhoneGap project, in my case it is called BarTest, and select Properties.


In the Android tab under the library section click the Add button.


In the Project Selection dialog select BarcodeLibrary.


Now our application can use the BarcodeLibrary project so we can click OK.

Let's now add in the BarcodeScanning plugin code. Under the assets/www directory copy in the barcodescanner.js file from github. Under src, right click and create a new package com.phonegap.plugins.barcodescanner then copy in the BarcodeScanner.java file from github.

So were all set now right? Well know we forgot one thing. We need to add a line for our plugin under the res/xml/plugins.xml file so let's open that up now and add this line after the last <plugin/> tag but before the </plugins> line.

<plugin name="BarcodeScanner" value="com.phonegap.plugins.barcodescanner.BarcodeScanner"/>

Okay, so were good now. Well no, there is one more bit to take care of. Open up your AndroidManifest.xml file so we can add some new activities that will take care of the scanning and encoding. You'll need to paste these activity lines inside the <application/> tag.

<activity android:name="com.google.zxing.client.android.CaptureActivity"
    android:screenOrientation="landscape"
    android:configChanges="orientation|keyboardHidden"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:windowSoftInputMode="stateAlwaysHidden">
  <intent-filter>
    <action android:name="com.phonegap.plugins.barcodescanner.SCAN"/>
    <category android:name="android.intent.category.DEFAULT"/>
  </intent-filter>
</activity>
<activity android:name="com.google.zxing.client.android.encode.EncodeActivity" 
    android:label="@string/share_name">
  <intent-filter>
    <action android:name="com.phonegap.plugins.barcodescanner.ENCODE"/>
    <category android:name="android.intent.category.DEFAULT"/>
  </intent-filter>
</activity>
Update: With later versions of PhoneGap the CAMERA permission was removed as it was not required. However, for the barcode scanner it is. So add the following permissions line:

<uses-permission android:name="android.permission.CAMERA" />

Alright, finally we are all setup. But how does one call the BarcodeScanner? Well we provide two main piece of functionality.

Scan
window.plugins.barcodeScanner.scan( function(result) {
        alert("We got a barcode\n" +
                  "Result: " + result.text + "\n" +
                  "Format: " + result.format + "\n" +
                  "Cancelled: " + result.cancelled);
    }, function(error) {
        alert("Scanning failed: " + error);
    }
);

Encode
window.plugins.barcodeScanner.encode(BarcodeScanner.Encode.TEXT_TYPE, "http://www.nytimes.com", function(success) {
        alert("encode success: " + success);
      }, function(fail) {
        alert("encoding failed: " + fail);
      }
    );

I've put together a small example html (and css) page which will be listed below that you can use to test the BarcodeScanner.



If you have problems with the Barcode Scanner the best place to ask questions is over on the PhoneGap Google Group where I check multiple times per day for questions I can answer.

Books I've Read This Week


Programming HTML5 Applications by Zachary Kessin is a good overview of a number of new HTML5 JavaScript API's that are becoming available in your browser. Wherever possible these are the specs we try to follow when implementing the PhoneGap API. It is a relatively short book at 130 pages so you should really look for it on the O'Reilly's Deal of the Day feed.

Snuff by Terry Prachett is another home run by a master storyteller. I wasn't a fan of Sir Prachett when I read his first book The Color of Magic but he really didn't hit his stride as an author until his third or fourth book. Since I didn't like the first book I kinda ignored Discworld for a long time much to my detriment.

Snuff is the 39th novel set in Discworld and it features my favourite character in the series, Commander Sam Vimes of the City Watch. This is a novel about the slavery and racism that Sam Vimes runs into while on vacation. No other author that I know of can tackle such a serious issue with as much humour as Terry Prachett can while at the same time making the reader really think.

Can't recommend Snuff and Prachett's earlier works highly enough.

Rule 34 by Charles Stross is sort of a sequel to his earlier Halting State but luckily you don't need to read the previous book to enjoy this one. This book is more of a police procedural set in a near future where the internet permeates our lives completely. You follow a number of main characters as the detectives try and track down who is killing spammers.

The real joy of this book is Charlie's extrapolation on how the internet will affect our near future society and policing in general. It was a pretty fun and interesting book to read.

See you next Friday.

Thursday, December 1, 2011

Living with Android

I just wanted to give a brief update on how things have been going living with Android full time. Back in September I decided not to re-up my three year contract with Rogers on my iPhone 3G and give Android a month to woo me. The experiment was not without it's tribulations as attempting to upgrade my OS from 2.1 to 2.3 using the Samsung Kies software bricked my phone. Luckily, I was able to resolve that problem by flashing my firmware with ODIN.

Honestly, since that time life with Android has been pretty great. That is until my trip to AnDevCon in San Francisco. While on that trip I noticed my phone was extremely hot which was unusual. Once I took it out of my pocket I saw that it was rebooting to which I assumed I was out of battery but that was not the case. The phone was constantly rebooting loading the Samsung welcome screen and then rebooting again. In order to make it stop I needed to pull the battery out of the back.

Initially I wasn't concerned as I figured it either needed a full charge or worse case scenario I could flash the firmware again using ODIN. Sadly, upon return home to Ottawa nothing I tried to fix the phone would work. The phone would flash to Android 2.3.5 but still it was stuck in the rebooting cycle.

I called Bell Canada from whom we purchased the phone. Since the phone died 1 week after it's 1 year warranty Bell wanted $50 to look at the phone and anywhere between $50 to $200 in order to fix the phone. This really didn't make a lot of sense to me as at that point I might as well buy a new phone.

Thanks to a suggestion by my bosses boss I called Samsung Canada. After about 10-15 minutes on the phone with first and second line support Samsung emailed me a UPS shipping label for me to send the phone into them where they would fix it for free. Oh happy day! Finally, a company that still stands behind their product and provides good customer support.

So I got the phone back after about 2 weeks and it is working good. I've already flashed it to the latest Gingerbread release 2.3.5 and I've never been happier with my Android phone.

However, after using my iPhone for almost a month as just a music player and browser I gotta say it is pretty sweet. I'm going to try to hold off a bit longer but I'm pretty sure there will be an iPhone 5 in my future once that magical new device is releases.

Friday, November 25, 2011

Books I've Read This Week


Ganymede by Cherie Priest is not my favourite book of her Clockwork Century series as it is just okay. It seems to be a bit of a rearranging the deck chairs type of novel more of a setup for future novels than anything else. I'm still interested in reading more of this series but don't let this be the first of Cherie Priest's book you pick up. I really have to recommend the Boneshaker audio book with Wil Wheaton and Kate Reading alternating the narration of the book from the two main characters point of view.

Fables Vol. 15: Rose Red along with Vol. 14: Witches it really feels like this series is starting to get moving again recovering from the disastrous Great Fables Crossover which took up all of volume 13. Really happy to see Rose Red finally getting out of bed for the first time in what seems like 4 volumes of this story. We are starting to get characters moving forwards again and certain hidden bits of information being uncovered that will cause problems in future stories.

Anything You Want by Derek Sivers was one of those nice short, quick to read books that the Domino Project is cranking out. There is some really great advice for entrepreneurs from someone who's done it themselves. Mr. Sivers grew CD Baby from his own home coded website to an 85 person company he sold from 22 million once it stopped being fun for him.

See you next Friday.

Monday, November 21, 2011

Video Player Plugin for PhoneGap Android

One of the more annoying problems when using an Android WebView is that the <video/> tag is not well supported. In fact it is pretty much broken. To that end I spent some time writing a VideoPlayer plugin to help work around the issue. As of the weekend I put in a fix making playing YouTube videos easier so I figured I'd share it with all of you.

Installation of the plugin is pretty simple:

1. To install the plugin, move www/video.js to your project's www folder and include a reference to it in your html file after phonegap.{ver}.js.

<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>

<script type="text/javascript" charset="utf-8" src="video.js"></script>

2. Create a directory within your project called "src/com/phonegap/plugins/video" and copy "src/com/phonegap/plugins/video/VideoPlayer.java" into it.

3. In your res/xml/plugins.xml file add the following line:
<plugin name="VideoPlayer" value="com.phonegap.plugins.video.VideoPlayer"/>

Once installed you will be able to play a video by calling:
window.plugins.videoPlayer.play(url);
The url parameter can be one of three types:

1. The file:// protocol to play something native to the device such as:
window.plugins.videoPlayer.play("file:///sdcard/MyMovie.mp4");
2. The http:// protocol to play something on the internet such as:
window.plugins.videoPlayer.play("http://path.to.my/file.mp4");
3. The http:// protocol pointing to a video on YouTube such as:
window.plugins.videoPlayer.play("http://www.youtube.com/watch?v=E0UV5i5jY50");
As long as your url has "youtube.com" and contains the video ID (i.e. the v parameter) the VideoPlayer should be able to start the YouTube app on your phone to play the video without any additional user interaction. However, if the phone does not have the YouTube app you are out of luck. In the future I may add a check for this that will ask the user to install the YouTube app first.

Sadly at this point in time the VideoPlayer does not support playing videos from your android asset directory. That is an enhancement for a later date.

So, there you go a pretty simple and easy to use plugin which can get you unstuck if you really need to play a video in your Android PhoneGap application. Lemme know you feedback.

Friday, November 18, 2011

Books I've Read This Week

After two weeks of travel and attending conferences I came down with a case of con crud and I've been sick for a week. Consequently most of my reading time went to sleeping instead. Although I did get in some quick comic book hits.

American Vampire Vol. 2 I know that vampires are hot right now but these aren't your sparkly Twilight types. They are brutal, violent creatures who manipulate the human race from behind the scenes and treat us as food. In short it's awesome. You really should pick up the first two trades of this great series from Scott Synder and Rafael Albuquerque.

Casanova - Volume 2: Gula I loved, loved, loved Casanova Volume 1 but I found this one a bit hard to follow. I'm going to hold off making any rating until I do a second read through.


See you next Friday.

Friday, November 11, 2011

Books I've Read This Week


All Clear by Connie Willis is the second part of this time travelling World War II drama that started in Blackout. I really, really enjoyed this two book series by Willis. The time travel from 2060 is interwoven into the narrative extremely well. The crux of the tension comes down to "can the historians observing WWII actually change history?"

The books have some really engaging characters and if you don't fall in love with the kids Alph and Vinnie then apparently you don't like smart mouth artful dodger types.

Monstrous Regiment by Terry Pratchett is one of the few books I missed by Pratchett when it originally came out much to my detriment. Again Pratchett is at this satirical best. Obstinately he is taking on the subject of women in the military but also the ridiculousness of many wars.  As always Pratchett makes you laugh and laugh a lot but it also makes you think.

High Performance JavaScript by Nicholas Zakas was a good book for me. I learned a number of tips and tricks in reading this book that can be implemented in my code. This is one that I can say I recommend to others. Mind you don't blindly implement all the changes before you profile your code as you may find a performance fix actually turns out to be a detriment. So remember to measure your code before and after any change.

See you next Friday.

Friday, November 4, 2011

Books I've Read This Week


Responsive Web Design by Ethan Marcotte is a great book and you can have it for only $9 in an eBook format which is a steal of a deal. I was just in Denver and Boulder and ran into a bunch of people who were asking how to support multiple screen sizes in PhoneGap for things like phones and tablets. Well the techniques you learn in this book are really the way you should be doing it. Hint: use CSS media queries.

Cognitive Surplus by Clay Shirky asks the question what are we going to do with all of the free time we have? You are probably thinking I don't have any free time but compared to your forefathers who got up and worked all day in the fields you really do. We blog, if that isn't a cognitive surplus I don't know what is. The challenge is using collaborative tools to find other people who share the same interests as you to create something amazing.

B.P.R.D. Volume 5: The Black Flame the War on Frogs is heating up and what happened to Roger? Ah man, I love Roger.


See you next Friday.

Sunday, October 30, 2011

Books I've Read This Week

Whoops forgot to put this down as a schedule post.

Ghost in the Wires by Kevin Mitnick is his memoir of his time as the World's Most Wanted Hacker. While I must say that it is an entertaining book and I don't think there is any harm in Mr. Mitnick but I had a hard time feeling bad for some of the things he went through. Certainly when he started his hacking activities the actions he was taking were not illegal but they certainly were immoral. So while I feel he got a raw deal a lot of the time he brought it on himself.

The Map of Time by Felix J. Palma is a really inventive Victorian era time travel book. There are three intertwined stories all with some connection to Time Machine's author H.G. Wells

Fables Vol. 14: Witches to me is a return to form for Bill Willingham and the Fables universe. Volume 13 was the great Fables crossover with Jack of Fables. Now that, that debacle is behind us we once again get the story moving forward. The Fables have a new "adversary"in the form of Mr. Dark. In this volume we get to learn a lot more about Mr. Dark and the challenges that our favourite Fables are currently facing. All in all it's got me very excited about volume 15.

See you next Friday for real this time.

The Matrix Has Given Up

Today I have irrefutable proof that we are actually living in a giant computer simulation. I'm in Denver, Colorado to give a workshop at the Interlab conference on Monday. When I landed at the airport I was walking down the concourse where I noticed a gentleman ordering a sandwich. I was pretty sure that it was the author J.C. Hutchins. Since I have no problem chatting people up I decided to ask the guy, "Hey are you J.C. Hutchins?" and of course it was.

I spent about ten minutes chatting up the affable Mr. Hutchins before heading out to get my rental car. All the way to my hotel I was wondering what the odds of such a meeting would be. Since Dever is a city of approximately 2.5 million people I'll have to assume that it was a pretty slim chance.

Anyway, that's unlikely but it isn't really proof that we are all living in a simulation, that is until you factor in the next coincidence. I popped out of the hotel to grab a bite to eat and pick up a book for the plan rides home. Once I got to the counter I recognized the guy working the cash. I immediately said, "I know you!" to which started a bit of back and forth only to discover that he moved to Denver 7 years ago from Ottawa where he worked at the Pinecrest Chapters store. That's the book store of which I'm a life time member of their discount club since I shop their so damn much.

So one unlikely meeting is a co-incidence two means we are all figments of a computers imagination. An imagination which must be taxed as I keep meeting the same programs over and over again.

Friday, October 21, 2011

Books I've Read This Week


The Magic of Reality: How We Know What's Really True by Richard Dawkins is a very interesting book that does a great job explaining everyday phenomenon in a clear and concise manner. Learn the scientific magic behind rainbows, earthquakes, tsunamis , etc.

Goliath by Scott Westerfeld is the third book in this alternate history series set in World War 1. I don't want to give too many details away about this book since it is the third in the series so go read my review of the first book, Leviathan or the second book Behemoth

We Are All Weird by Seth Godin is a great book about niche marketing. With the advent of the internet there is no need to target the mean or the average consumer. It is now possible to find your target niche and sell directly to them.

See you next Friday.

Tuesday, October 18, 2011

Guest Review of Atomic Robo: The Ghost of Station X over at the Signal Watch

Hey, once again my buddy Ryan has put up another one of my comic reviews at his site The Signal Watch. This time I'm talking about the latest Atomic Robo mini series.

Friday, October 14, 2011

Books I've Read This Week

Well this has been a very manga week as a glut of books showed up from my library pull list.

Fullmetal Alchemist, Vol. 8 This is an oddly compelling book for me. Sure this is a bunch of fun ninja fighting but there is something poignant about one brother searching for a way to get his younger brother his body back. Part of the mystery of this series is you are never quite sure if that suit of armour really is animated by the soul of Alphonse animating that hunk of metal or not.

B.P.R.D. Volume 3: Plague of Frogs okay I know it isn't manga and sadly my local library doesn't have volume 2 but that's okay, I guess. This is where B.P.R.D. really starts getting going as it evolves from a bunch of one or two issue hits into a full 5 to 6 issue storyline. There is some great callbacks for folks who are also fans of Hellboy and we finally get the secret origin of Abe Sapien.

One Piece, Vol. 24 marks the end of the Baroque Works saga and the beginning of Skypiea. It's and island in the sky! Good jumping on point for new readers.

Naruto, Vol. 49 We catch up with Naruto after his traumatic battle with Pain. There is some real character development in this volume as the normally hot headed Naruto is learning that you don't always need to fight.

See you next Friday for a decidedly less manga'ish week.

Tuesday, October 11, 2011

Ottawa Android PhoneGap Droidhack

On Saturday the Ottawa Android group was having our latest Droidhack. This months Droidhack was sponsored by the fine folks at Nitobi who may be better know to you as the guys who started the PhoneGap project. They sent out some nice swag in the form of shirts and stickers that were well received by the group. Since this was a themed event on PhoneGap Android Plugins I did a quick presentation to get everyone up to speed and then we got to hacking.

Most of the day I spent helping others setup their environments and getting them going with their first PhoneGap application. I was able to provide some helpful hints to Chris Saunders who works for Shopify and put together an Android Shopify plugin. I was able to spend sometime on working on my DropBox plugin for Android. So far I can login and logout of DropBox but there is still a bunch of stuff to do that I hope to get to in the next few weeks.

All in all it was a pretty good day of hacking and I think a bunch of people learned some new ways to think and got exposed to PhoneGap. Also, huge shout out to Macadamian for providing us with the office space, wifi and food for this event. I know that I and the other Ottawa Android organizers really appreciate it.

Friday, October 7, 2011

Books I've Read This Week


The Wise Man's Fear by Patrick Rothfuss is pretty great sequel to his debut novel, Name of the Wind. Usually, when someone works their entire life on their first book or album the sequel is a bit of a disappointment. Not so in this case. The second book is every bit as engaging and well written as the first. I highly recommend this series to any fantasy fans. As an added bonus Rothfuss is young enough to be able to finish this epic tale which is something I now look for in an author.

B.P.R.D. Volume 1: Hollow Earth and Other Stories is actually the first time I've read a B.P.R.D. collection. While a big fan of Hellboy I've never picked up B.P.R.D. before. This collection picks up shortly after Hellboy leaves B.P.R.D. and introduces a new character, Johann Krauss who is a dead medium in an ectoplasmic form. He gets to walk around in a containment suit which is just hilarious.

It is a collection of a few shorter stories and features the art of Ryan Sook. I really enjoyed the small taste of B.P.R.D. I got and can't wait to get some of the later trades where the entire volume focuses on one storyline.

One Piece, Vol. 23 the battle between Crocodile and Luffy comes to a conclusion. 

See you next Friday