September 10, 2015
Create Application (Gear) on OpenShift Cloud
Install Application Dependencies
Create “Hello, World!” Application
Verify Application Works
Test the app
December 20, 2014
About a week or two ago, I started running into problems with my QA team and had a terrible time reproducing some issues in our iOS app. At first I checked for inconsistencies with the build server. Everything looked ok, so I started digging a little deeper. After far too long I came to the conclusion that the only logical reason I could be out of sync was becuase of some files that I wasn’t checking in. Below I outline what I did, and how I could have done it better, but that is not the point of this post.
Why did it happen?
October 26, 2014
What is WoWLAN?
WoWLAN or Wake on Wireless LAN provides network enabled devices the ability to be brought out of sleep by other devices on the network. WOL or Wake On Lan has been around for a while and used in many different scenarios. WoWLAN really just adds WOL functionality to wireless interfaces instead of just hard wired ethernet connections.
Who uses WoWLAN?
The first time I was asked about WoWLAN was at work, when a customer wanted to wake up their Mac Mini with iRule. Mac Mini’s are used a fair amount as HTPC’s and keeping them awake isn’t a very big deal, but allowing it to sleep is the default functionality.
The previous scenario...
September 14, 2014
It’s important to learn and use these tools before you NEED them.
The two tools I have used in the past and had great success with are :
How this can help
The heap analyzer can be used to view what memory is allocated. It should help you identify any memory leaks. Yes, Java has a garbage collector, but No, that does not make it immune to memory leaks. Even if you aren’t too concerned with memory leaks,...
June 23, 2014
Detecting if an Android application is in the foreground or the background seems like it might be obvious, but it actually isn’t as easy of a problem as I thought.
Working on older devices
Android has come a long way from it’s 2.X days, but there are still a lot of users out there looking for good apps that have 2.3.X devices ( I have given up on 2.2 ). So, I was looking for the best way to see if an app is in the foreground or the background. There are few different approaches discussed on this stackoverflow post : Android: Is Application running in background?. The solution I came up with is mostly adapted from that post, but it involves implementing reference counting in the activities manually.
Copying an existing solution
April 23, 2014
What are variadic functions?
Well, to be honest, I wasn’t exactly sure the name of these kinds of functions for years after I started programming. Just knowing the terminology will make your life a lot easier when googling for this same kind of thing in different programming languages.
In computer programming, a variadic function is a function of indefinite arity, i.e., one which accepts a variable number of arguments. Support for variadic functions differs widely among programming languages. (stolen from Wikipedia)
In the simplest of terms, it is a function that takes any number of arguments vs a function that takes a defined number of arguments.
iOS Library usage
There are multiple places that you run into variadic functions when doing iOS development. They are fairly simple to understand and use. The variable parameter can contain a comma seperated list of values and must be
Nil terminated. Example below demonstratest creating a
April 4, 2014
Building the Bridge
I started my career at a software shop that worked on enterprise software and was very successful at it. I was placed as a build and install engineer, which was never a problem for me. Althought the work was fun, one thing that really wasn’t my cup of tea was “Corporate America”. I don’t like rules for the sake of rules, or rules because thats “how it has always been”. For example, I didn’t like wearing a shirt and tie, now I actually wear sweats and a tee shirt everyday (I’m nicknamed Captain Sweatpants!). While I learned a lot and will always cherish my days as a DevOps engineer, I wanted to move to a smaller team that moved swiftly.
Landing a job at a startup, I was in a much faster paced environment with a lot more freedom and responsibility. I loved it, and loved it way too much. I was addicted to work. Working...
March 2, 2014
NancyFx has recently become one of the most popular web development tools for C# developers. It is largely inspired by ruby’s sinatra, but this didn’t mean much to me as I don’t write any ruby stuff, but it is much more of a flask than a django if you come from the python world. Getting back into C# and learning various web platforms and tools, I have found NancyFx to be intuitive and it stays the hell out of my way. If I want to do something my own way, I just do it. It’s one of the nicest web development libraries / frameworks I have used, I highly recommend it. Shortly after any decent amount of web development a database is needed, I opted to go with a Microsoft supported framework in Entity Framework. That leads me to this article, after a few hours trying to figure out...
February 9, 2014
The setup for sharing jinja2 templates in the browser is fairly simple. It should take less than 10 minutes in a brand new project. Just follow the steps below and you should be up and running in no time.
Serve Templates to the Client
Flask by default serves things in the static folder. Add...
December 28, 2013
jQuery, a necessary language extension
Recently, having started a new job and picking up a lot of frontend work, I have been working with a lot of jQuery and jQuery plugins. 3rd party libraries, other devs, and I all have our own styles. So I set out to provide some structure and organization into my life. Here is my attempt at writing a jQuery “Hello World” plugin to use as my template for future jQuery plugins.
Let the code do the talking
October 1, 2013
August 24, 2013
One of the biggest gripes I have run into with the Google Web Toolkit is the ability to debug without having to re-compile, clear cache, and be stuck on the Java side of the debugger ( if you use JSNI, you can’t really debug it with Eclipse plugin). Also, the browser plugin often gets broken with new versions of Chrome, and Firefox. It is not the most “seemless” experience, so I looked for a better option. Super dev mode works nice in Chrome, which is what I use for GWT development.
August 4, 2013
After I installed the Windows 8.1 update, and I kind of destroyed my machine and had to re-install Windows fresh. This was pretty easy, but I lost all the configuration I had setup for developing with Github and Bitbucket.
Installation of Tools
To solve my ssh requirement, which I use for both git and mercurial, I simply installed Putty, which I belive is pretty standard for ssh on windows. I opted to go with the Putty Installer. It should install a few different tools that will be necessary in the future.
July 25, 2013
How I got the gig
As a younger developer, I had never really pursuited speaking about technical topics. I recently graduated from University of Michigan : Dearborn, so full-time work and school doesn’t leave a ton of free time. This opportunity kind of fell in my lap. Randomly, my boss received an email from the Detroit Google Developers Group. They were looking for speakers on non-Android related topics (the group has primarily been dominated by Android related topics). Someone had referred them to iRule because we use GWT (Google Web Toolkit) pretty heavily throughout our solution. At the end there is a link to the speakerdeck slides.
First Time Speaking
I have never thought of public speaking as one of my stronger points, so I was pretty nervous about talking in front of a crowd. I don’t claim to be an expert or think my ideas are gospel. I am writing from the short and brief...
July 16, 2013
New Android Build System
If you haven’t seen / heard of the new android build system ( still work in progress ), then you should definitely go read up on it. There is some great material on the Android Tools Project Site.
Building Android projects with Ant
Ant has it’s strengths, but the lack of IDE integration (can’t run task and attach debugger and a pain to use with Eclipse) is really what has made me an early adopter of the new Gradle based build system. I currently have an ant script that is powered by the default build that is packaged with the androd sdk. I hijacked a few tasks to add the
sourceVersion (build ID) to the output file. Also, in the midst of the madness, I get the current revision number from Mercurial and use that as my build ID. It has become very useful for traceability...
June 1, 2013
Engine / Site Generator
I work on Mac OS X at work, but often times find myself learning new technologies or “messing around” on a Windows 8.X machine. So, I looked at a C# blog engine. Didn’t really find anything that was really simple to host and easy to modify (I am lazy, anything that required significant work, I gave up on).
After reading a few other posts about setting up blogs, I read about static-site generators. Did a little research, and Jekyll seems to be the most popular, probably because of its origins and support on Github. This made my choice a lot simpler. Something that is used widely and has a lot of support, it even comes with free hosting from Github (Thank you, Github).