January 2012
1 post
1 tag
My New Blog
I’m blogging over at http://www.mattmakai.com/ now. Tumblr’s been great over the past two years but I wanted more flexibility to revamp my web presence. My latest posts since January 1, 2012 are all over on my new site.
Link: Matt Makai’s Blog
December 2011
7 posts
2 tags
Django 1.4 Alpha Release 1
At last, a version of Django that isn’t a maintenance release is out, albeit in alpha form (not for production use):
https://www.djangoproject.com/weblog/2011/dec/22/14-alpha-1/
1 tag
Building and Testing with Gradle
I’m currently researching build tools. I need a build and configure tool for a iOS/Android/BlackBerry mobile app with a single set of core components but many configurations for different app deployments. I could hack something together with Python or Bash shell scripts, but there’s a reason why build tools exist. Options:
Ant/Ivy - doable, but loads of XML to write
Maven - my...
3 tags
Structuring a Combined Android & BlackBerry...
Android and BlackBerry expect two different folder locations for resources. Android has its assets/www folder while BlackBerry expects just a www folder under the project root directory. Since the BlackBerry .cod file is opaque after compilation, it makes it difficult to understand how resources are structured in the file.
I found that putting the BlackBerry config.xml file under assets/www and...
3 tags
JQuery Mobile 1.0, PhoneGap 1.2, and BlackBerry...
I spent a couple of hours yesterday evening trying to figure out why I only got a blank white screen after the app splash screen on the BlackBerry 9930 with a JQM 1.0 and PhoneGap 1.2 app that worked fine on the 9550 simulator.
Apparently this problem has been duplicated and the “recommended” fix is to use JQM Alpha 4 (not an option for me in this case). See this post on Google...
1 tag
Dear BlackBerry
Dear BlackBerry,
I’m going out of my way to develop a cross-platform app that will work on your devices. Don’t inconvenience me by making me download some “Akamai Net Session” software which I have no idea what it does before I can even download your simulator or SDK files.
Thanks,
Matt
2 tags
Upgrading from PhoneGap 1.1 to PhoneGap 1.2 for...
I upgraded from PhoneGap (Apache Callback) 1.1 to version 1.2 today. Unfortunately, I encountered the following cryptic stacktrace:
ERROR/AndroidRuntime(9469): FATAL EXCEPTION: Thread-9
java.lang.RuntimeException: Can’t create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:121)
at...
1 tag
You've Got 5-10 Years
Recent college grads and young professionals, listen up: you’ve got 5-10 years. The labor market has been changing for a couple of decades and will continue in its trajectory. Today’s reality is that large companies are willing to pay you a decent wage for your first 5-10 years worth of work. After that, the gig is up.
Depending on your industry, after your first 5-10 years, you need...
November 2011
11 posts
1 tag
The Python Ecosystem - Great Read
I came across this blog post on the Python Ecosystem while reading Hacker News yesterday. What a fantastic post. Highly recommended reading for aspiring Python developers.
Link: Python Ecosystem
2 tags
A Brief History of Django Revisions
To understand Django, it helps to know its origins and how the framework has evolved. Django’s developers have added many features since the framework’s 1.0 release back in September 2008. Some of the major additions include aggregation support in the ORM, multi-database support, CSRF protection, a messaging framework, and many improvements to the models framework. This post outlines the major...
1 tag
Hello JQuery Mobile 1.0!
JQuery Mobile 1.0 has been released! A big part of the release is the maturity of the project and speed up in page rendering time (a big previous complaint especially when creating mobile native apps wrapped with PhoneGap).
A note of caution: JQuery Mobile 1.0 is only compatible with JQuery 1.6.4. JQuery 1.7 will be supported by JQuery Mobile 1.1.
Link: JQuery Mobile 1.0 Release Announcement
5 tags
5 Great Django Deployment Links
I’m currently working on moving from my traditional Apache/mod_wsgi set up on Ubuntu to the new Django-serving community favorite, Gunicorn/Nginx.
I found the following links very beneficial for getting an initial set up going locally then moving over my production servers to the new configuration:
Run Django apps using Gunicorn and nginx (Easy set up)
Lessons Learned From The Dash: Easy...
2 tags
Python Weekly - A Great Python/Django Resource
Python Weekly has provided me a lot of value over the past couple of weeks. I originally found out about the newsletter on Hacker News. I thought, “I’ll try one newsletter then unsubscribe if it’s not worth my time.”
Boy have I been pleasantly surprised. There are loads of great articles on Django deployments, best practices for settings.py configurations, interesting pip...
1 tag
My Advice to Computer Science Majors
My primary piece of advice to college students who are computer science majors is this: double major.
Computer science is great for understanding how computers work, programming, and learning the theory of computation. But where it really matters is how you apply those principles to real world problems that exist outside the computer science field.
If you double major, you’ll be exposed to...
2 tags
Accessing a Django Server on a VirtualBox Ubuntu...
I do the majority of my development work on virtualized Ubuntu instances to closely mimic my production deployment environment. Today I needed to access a Django server running on the VirtualBox instance from my host operating system (Windows 7).
I was simply using the built-in Django server (manage.py runserver) running on a high-level port instead of deploying to Apache or gunicorn. To do a...
4 tags
Urban Airship Android C2DM Push Notifications in...
I needed push notification support for the Android C2DM platform for a Django project, but Urban Airship’s Python libraries only supported iOS push notifications.
So I forked the code on Github, modified it to incorporate support for C2DM APIDs. There’s an outstanding pull request (just issued) so hopefully it gets integrated back into Urban Airship’s official original master...
3 tags
MongoDB's Path to Maturity
There’s been a spat of links on Hacker News lately about the failings of MongoDB and 10gen (see links at the end). I see this as a very good thing, not because I want NoSQL in general and MongoDB in particular to fail, but because it is a sign of maturation. Developers are doing really interesting work with MongoDB and they are hitting the limits of the technology. There’s criticism of...
1 tag
Flow Junkie?
I recently realized I’m constantly looking for a fix. Not from an external drug or chemical substance, but from flow. I get flow most commonly from programming, although I’ve felt it before while writing and working out.
It’s scary though because I am constantly hungry for flow. If I haven’t had it in awhile I go looking for it. I browse Hacker News and Reddit Programming...
3 tags
What Happened to CouchDB? →
There’s a great discussion going on over at Hacker News about people’s opinions on what happened to CouchDB’s popularity as compared to MongoDB (and other NoSQL data stores).
My guess is that MongoDB took off lately as 10gen really gained traction with their outreach to developers while CouchDB is still fragmented despite the backing of Cloudant and Couchbase. I also found...
October 2011
4 posts
2 tags
Great Post on MongoDB versus CouchDB →
I found this blog post really insightful for understanding the differences between MongoDB and CouchDB. The key takeaways for me were in understanding the difference between the way querying works (views in CouchDB versus find queries in MongoDB) and availability versus replication (continuous availability during network partitions in CouchDB versus one master plus replication in MongoDB). This...
2 tags
Installing CouchDB 1.1.0 on Ubuntu 10.04 LTS...
I needed to piece together several sources (see the links at end of this post) to install CouchDB 1.1.0 on Ubuntu 10.04 LTS (Lucid Lynx).
First, get build essentials:
sudo apt-get install build-essential
Next, install SpiderMonkey 1.8.5:
wget http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
tar -xvf js185-1.0.0.tar.gz
cd js-1.8.5/js/src
make
make install
Get the libraries...
3 tags
Urban Airship, Push Notifications on Android, and...
I’m working on a cross-platform mobile app with the following technologies:
JQuery Mobile
PhoneGap
Urban Airship
C2DM (for Android push notifications)
While in the Urban Airship web console, I was creating a new application when I came upon the section specific to Android. The first field, Android Package, was easy enough (com.mobile.app). But I wasn’t quite sure what to put in...
2 tags
New Django Book in Progress
There are a dearth of up to date Django books that cover 1.3+ and the latest community projects. However, Reinout van Rees just announced he is working on a new Django book currently titled “Solid Django.” Hopefully this will lead to further interest in the Django project and continue the positive momentum for our community.
Link: “I’m writing a Django book”
September 2011
5 posts
2 tags
Pretty Printing JSON With Python
Oh Python, you make a developer’s life so easy.
I executed a “python manage.py datadump > db.json” which sent the contents of my Django-created database out to a file. However, I realized that the results were all on one line and I wanted to go through the output to create some test data. A quick “more db.json | python -mjson.tool > db-pretty.json” command...
1 tag
JQuery Mobile First Look Book Review
The reviews are starting to come in for JQuery Mobile: First Look, which I technical reviewed before publication. Looks like people like it so far.
Review: JQuery Mobile First Look Book Review
2 tags
Corner University Ergonomics on Standing Desks
Cornell University presents some findings that dispute the supposed health benefits from standing desks, including height-adjustable desks that go from sitting to standing position.
In short, the researchers suggest sitting to do computer work but getting up every 20-30 minutes and moving around. The moving around part is critical: a short walk to get a drink of water, go to the bathroom, or head...
Little Successes are More Fun than Big Failures
Having a bunch of little successes over time is a lot more fun than a big stinking failure after working hard on a project for years.
Well, of course, right? Isn’t it obvious that success is better than failure?
Yet why do most organizations, especially big companies, continue to produce big failure after big failure?
Look at what the federal government spends on failed IT projects each...
1 tag
Standing Desks in WSJ →
I love my home made standing desk at my apartment. I also occasionally convert my desk at work to standing position with some boxes so I can be more productive. Apparently it’s catching on. Here’s a WSJ article on standing desks.
Link: Standing Desks Are on the Rise (WSJ)
August 2011
5 posts
1 tag
Introduction to the Agile Methodology →
Arin Sime, founder of AgilityFeat and one of my former classmates at UVA, put together this great email course on the Agile Methodology. It’s great for those unfamiliar with Agile (especially clients you are trying to convince to use it!) and brushing up on your concepts.
Highly recommended!
Link: Introduction to Agile Course
1 tag
Fantastic Explanation of What a Closure is →
At 26 minutes into this video, the presenter gives a great summary and example of what a closure is in general and in JavaScript. The entire video is worth watching if you have the time.
2 tags
Oh, that's why I don't like Java parameter passing
One of my coworkers didn’t like my 10ish parameter argument Java method during a code review. I admitted it looked awful and modifying the parameters to pass in was a serious annoyance. We end up refactoring the code to use an intermediate object, which worked fine. But I wondered why I haven’t faced the same thing in Python during my Django projects.
Then I realized - when specifying...
1 tag
Django 1.4 (and beyond)
There was an interesting video of a talk given by Alex Gaynor, a Django core committer, on the direction of the framework. Here’s the summary of what’s coming.
There is currently no release date set for Django 1.4 although work towards 1.4 happens in the public development trunk that can be checked out with SVN (http://code.djangoproject.com/svn/django/trunk/).
Django 1.4 will drop...
1 tag
Meetings
If you have team of 16 developers and they spend 30 minutes in a meeting that does not help you get the product out the door, you’re 1 man day behind where you were before you walked into the meeting.
For every additional 15 minutes the team spends sitting around and not solving technical or project problems beyond that 30 minute meeting, you’re losing a 1/2 man day of work.
People...
July 2011
5 posts
3 tags
Unbreaking Your Django Application
As I contemplate moving from MySQL (or Google BigTable for AppEngine) backends to PostgreSQL for Django project, this OSCON 2011 presentation has been valuable to me.
The presentation goes into model design, efficient ORM usage, and database debugging. Worth a read for all Django developers.
Link: Unbreaking Your Django Application
Also, here’s a related Reddit Django subreddit thread on...
1 tag
The Problem With Big Data
For better or worse, the following rant is so true. Whether executed in the large or the small, ”big data” does not matter if your organization refuses to see the results of data analysis.
In addition, I agree that simply dumping data in big piles and then performing analysis on it will not lead to any insight into topics outside the domain of the data. That idea seems obvious but it...
2 tags
Gondor - "ERROR: must run gondor init from a...
I ran into this cryptic little error when trying to initialize a new Gondor project with the gondor init [key] command:
ERROR: must run gondor init from a Django project directory.
Digging through the source code for the Gondor client revealed where the error was coming from:
files = [
os.path.join(os.getcwd(), “__init__.py”),
os.path.join(os.getcwd(),...
2 tags
The Monk and the Riddle
I just finished reading The Monk and the Riddle by Randy Komisar. The book was a quick and interesting read. Here are three things I took away from the story:
Building a business is about more than finding a business model. A business must also make a positive difference in the world. The mission must be a rallying cry for you and your employees during your worst times.
Figure out how to do what...
2 tags
Two Second Impression of JQuery Mobile versus...
I looked at Sencha Touch over the weekend. Since I have experience with JQuery Mobile, I wanted to know how the two frameworks compared. Two things struck me so far:
Sencha Touch is more mature (not surprising since Sencha Touch has been out longer and JQuery Mobile is still in beta)
Sencha Touch is not targeting the non-WebKit mobile browser space, while JQuery Mobile aims to gracefully degrade...
June 2011
8 posts
2 tags
The Buzz on Redis (and NoSQL)
Redis is getting a lot of buzz for its fast read/write performance and its innovative use cases beyond just being a key/value store. For example, at the second Big Data DC meetup last week, Nick Kleinschmidt of Lucid Media discussed how they are using Redis at his firm for online display advertising.
Today the top link on Hacker News is how to add Redis to your current stack. It’s a great...
3 tags
The Blog Post Litmus Test for Prospective...
I use a simple test with every prospective employer or client as an aid to determine their culture:
Find a public article written by an interviewer (and potential colleague) at the prospective company
Write a summary of the article and some additional insightful comments based on prior related experience
Tell the interviewer her article was interesting and email the link to the new blog post
...
1 tag
How to Really Hire Developers
Well, I can’t say it any better myself so I’ll just point you to this fantastic rant on how you should actually be interviewing software development candidates.
3 tags
HPCC: Competition for Hadoop in Big Data Analysis
LexisNexus just open sourced their data analysis platform, HPCC.
Competition in the data analysis space is a good thing. I don’t know enough about HPCC to compare it to Hadoop just yet. However, developers have to learn a new language ECL, which has a relatively sophisticated syntax, to run analysis jobs on HPCC.
I find it unlikely that most developers will be willing to spend the time to...
3 tags
MongoDB: An Introduction (Part 1)
Document-Oriented Data Stores
A document-oriented data store extends the key-value pair model by providing a structure that the data store understands.[1] Document-oriented data stores are inspired by Lotus Notes[2] and the simplicity of the JavaScript Object Notation (JSON) format. The current leading document-oriented data stores are MongoDB, CouchDB, and Riak.
MongoDB
MongoDB is an open...
2 tags
"Beyond Data" in the Intelligence Sector
Bob Gleichau from In-Q-Tel wrote an interesting article entitled “Beyond Data.” As the article discusses, the intelligence sector adds complexity onto the difficult job of sorting, searching, and understanding large data sets. Some of the challenges Bob wrote about include:
The security clearance level maze between dozens of intelligence, homeland security, and financial regulatory...
3 tags
Google App Engine In-depth Article
The Register has a great article on Google App Engine, Google’s scalable Platform-as-a-Service that will be removing the beta label later this year. App Engine is built upon BigTable, Google’s proprietary Column Family NoSQL data store. I’ve create several apps on Google App Engine, including http://www.mattmakai.com/ and http://scholarmaker.com/. Once you get past the standard...
1 tag
On College and the IT Field
I needed to go to college to be successful. I required the disciplined studying, mentoring from my professors, social learning through meeting new friends, and enriching experiences from the general community at James Madison University. Even though I’ve been using computers since I was 3 years old and programming since sixth grade, I needed classes on operating systems, programming...
May 2011
10 posts
1 tag
"Everyone is building custom stuff right now"
The quote in this post’s title is from Gnip’s CEO on their challenges of handling a sustained 35MB/sec stream of constant updates from Twitter. Gnip is the only partner that receives the entire Twitter data stream for analysis.
“Everyone is building custom stuff right now” echoes what I’m seeing at companies handling big data like Clearspring. Although NoSQL data...
3 tags
Mainstream Big Data Articles
A few interesting articles came out today from mainstream sources such as The Economist, Forbes, and MIT’s Technology Review.
IBM is ratcheting up their big data PR push with a splashy $100 million investment in the field. While that $100 million will cover both basic R&D and system development, it remains to be seen whether IBM can successfully create enterprise-class products that...
2 tags
Cassandra Overview →
Monitis has a nice summary of Apache Cassandra up on their blog. It looks like they are doing a series of overviews on NoSQL solutions that will be worth checking out.
Link: Apache Cassandra Overview
1 tag
Tell me a story
I hate corporate performance reviews. Trying to fit the work you performed over the last six months to a year into pre-defined generic boxes such as “flexibility”, “interpersonal skills”, “creativity”, and so on strikes me as really dull. I doubt I’m alone in this sentiment.
I created some consternation during my first performance assessment at Excella by...