Blog
Kony2012 Campaign
Yesterday, Invisible Children launched their 2012 campaign, Kony 2012, with a mission to make Joseph Kony, the leader of the Lord's Resistance Army (LRA), world famous within the year, and maintain American military presence in Central Africa. My wife and I have been working in Uganda for the past three years and I cannot say how important Invisible Children is to the country. They have been working with the all of Central Africa for many years now to try to end the war that's been going on for almost 30 years, and this is the year to end the war. Go and watch the campaign video, and if you have any questions about Uganda or the war, post them in the comments below and I'll help you find the answers.
Also if you want to track the LRA with the radio network that Invisible Children has setup, checkout the LRA Crisis Tracker and follow @crisistracker on Twitter or get the app in the [iPhone app store].
Getting Started with the Ti Gem
Since getting back from Uganda, I have been focusing on getting into mobile development. I dabbled in taking the AIR for Mobile path, but I found that it didn't support enough of the native APIs across devices, specifically the contacts API. I know that I could build my own native extension, but I wanted something that had that built in... not to mention, I have no interest in learning any more Objective-C than to do a simple Hello World app. I had messed around with Titanium in the past, but abandoned it, because I didn't like that it didn't really have any sort of framework. I felt like it was just a throw it all into one file kind of thing, and I didn't like that one bit. Anyways, I thought I would take a look again at Titanium because it's support for Native APIs was pretty good and I did like that it compiled down to pseaudo-native code.
Simple: Replace your bank with a web application
I just discovered a new application that's still in development called Simple. Simple is designed to replace your bank with something brand new in finance. They are making some pretty big claims too for what they plan to have when they make their launch; things like the largest ATM network, zero fees and a web tool that looks very similar to Mint.com. Your money will even be FDIC-secured so it is under the same insurance as a bank of credit union.
Experiences with Nesta - The Comment Form
With rebuilding a site on any new CMS platform, there are always hurdles to over come and with Nesta CMS it's no different, which is why I have launched a new series titled Experiences with Nesta. The series will be all about the hurdles that I ran into with Nesta and how I overcame them.
To start out with let's take a look at the comment form. Nesta doesn't have it's own comment system, but instead uses Disqus to enable commenting. By default when I include the HAML page for Disqus comments on my page template it gets included on every page that uses that template. I really didn't want to have to create a new create a template specifically for blog posts so I came up with a way to control the comment page using something that I do on every blog post I create. I used the date metadata to control if the comment form with display.
The stock comment form code looks like this:
- if short_name = Nesta::Config.disqus_short_name
#disqus_thread
- if Sinatra::Application.environment == :development
:javascript
var disqus_developer = true;
%script{:type => 'text/javascript', :src => "http://#{short_name}.disqus.com/embed.js", :async => true}
%noscript
%a(href="http://#{short_name}.disqus.com/embed.js?url=ref") View comments.
That code will display the comment form everywhere that you add = haml :comments, :layout => false, which for me was no good, so what I did was add an extra piece of code to the first if statement that checks for the existence of the date metadata changing the original if statement to this one - if short_name = Nesta::Config.disqus_short_name && !page.date.nil?.
Before I could publish the comments template, I had make sure that the page template was passing the page it was rendering to the comment template.
= haml :comments, :layout => false, :locals => { :page => @page }
With that I could publish my theme and the comments section woudl only display on pages with the date, which in my case are only blog posts.
Bringing Computers to KCC in Uganda
Many of you probably know that my wife, Torrie, and I work with an orphanage in Uganda; making anual trips with a team of people to do things like run a camp, work on construction projects and help to faciliatate a child sponsorship program. This year marked a new step for us in Uganda, one that we are very excited about.
After our trip was cancelled in May, Torrie and I put together a proposal to do an extended trip on our own this winter in order to expand on a project that was planned for the original two week trip. The proposal was to build a full computer lab at the Destiny Bridge Academy on KCC's campus. The money would go towards buying 8 workstations for children to use, 1 workstation for the teach and building a network in the school's lab to connect the children to the world around them.
Why No Mura for Mobous?
When I undertook the task to redesign my website, I started to build the design on the Mura CMS platform, but part way through I decided that I wanted to use a different system as an experiment. With the experiment I wanted to get a few things out of it.
- I wanted a system that allowed me full control over all the content on my site.
- I wanted a system that would handle the extensiveness needed from a true CMS, but also let me blog really easily
- I wanted something that had a theming and plugin architecture so that I could develop them seperately from the site itself
- I wasn't going to use ColdFusion (I'd already found a great CMS there, so I wanted to see what other platforms had)
So I put the goals on the table and decided that I would use a platform that I already new, which was either Ruby or Node.js. After downloading a few packages and not finding anything with the kind of power I needed, I discovered another interesting feature to add to my list of CMS desires, a database-less CMS. The idea of not having any sort of database behind the CMS was very interesting to me, because I am used to storing everything in one.
Eventually I discovered the (Nesta CMS)[nesta] platform, which was a no database CMS that would instead use text files for all the content. The CMS comes with HAML, Markdown and Textile support builtin, which I think is awesome. I've been using HAML for the content pages so that I can do fun things, like write Ruby code directly on pages, and Markdown for the blog posts so that I can write very easily. If I need to add categories, tags, credits, etc. to my pages and posts, I can just specify in the metadata of the file what I want to; likewise to specify the layout and templates for pages and posts.
How Node.js, Mongolab and Heroku Saved an Application
I was recently hired to help a band and friend launch their new album for free online. The band is Life In Your Way and their new album, Kingdoms, came out today, completely free to download. The project was to build an embeddable widget and analytics tool for people to enter their name, email and zip code to get a customized link emailed to them to download the album. The download file would be stored elsewhere and the application would proxy the download to mask the origin. Two weeks ago I was hired and last night the album was launched on Twitter and Facebook.
How to use Arduino's map function
The other day I was working on a new project with my trusty Arduino board. I had used the Sparkfun Danger Shield (a shield that I recommend for anyone getting into Arduino) to create a mixing board for iTunes. I combined the Arduino board with a Node.js server to control the volume, play/pause and next/previous controls in iTunes, and it works dang well for it.
