2013 and me.
I did a wrap up like this at the end of last year and thought if there’s any habits I should stick to from then, maybe it’s this. (Here’s last year’s.)
Besides the pounds I intended to lose, and the miles of travel I wanted to do, I met my goals. I had an app in the app store downloaded over 2000 times, I got paying work doing some iOS development on weekends. I did some work on the house.
I’m almost done with an app that is unlike anything out there and very niche, but something I want to use badly. I’ve also written something that I’m really excited about.
I became a Rollergirls season ticket holder. It’s fun to see the camaraderie between the skaters, everybody in the organization, and the fans.
I rediscovered a joy of cooking and baking that had been missing for a while - I think that’s tied to the pounds not being lost. I also visited a lot of local breweries.
I was recruited for a really cool job at a new employer that I start in a week and a half.
I made a few new friends.
2014? Who knows? I want to get the latest app out there and another one that’s been fermenting in my head for a bit. I want to put myself out there a bit more, personally. I want to see how far what I’ve written will go after I edit it. I want to travel more for sure this year.
Still going, beta in February.
The app is still coming along. Work slowed down with the holiday baking, and since I was interviewing for a new job, which I got. This one is going to be working more closely with iOS and XCode on a full time basis, so it should have (buzzword warning) synergistic effects with my side projects.
What I didn’t realize
Up until now most of my apps have been pretty data light, and I never had to foot the bill for the servers and storage on the backend. I got them to work with what was there or the app was a stand alone that just needed to be hosted on the company’s intranet.
Not anymore. The app I’m working on now, and to the point of putting on the web so I can start hitting it with an iOS app, is going to be data intensive for good portions of it, specifically with regards to images. To the point that I had serious reservations today about everything related to the app, I thought I was going to have to reengineer a portion of it, again. But I figured out a solution to the image problem when I got home from the real job and I’m plugging along.
Next week I might update with a screenshot, who know. But it’s coming along.
It’s all in a name and now I’ve got one.
I’ll update later (hopefully today) with some notes about progress, but thought I’d leave this note as it’s interesting, to me at least.
I think a big part of an app’s success is its name. The movie “The Social Network” dramatizes the meeting between Sean Parker and Mark Zuckerberg as a pivotal moment in the history of the world’s most famous social network. If it’s true you have to hand it to them, “we’re Facebook friends” sounds better than “we’re The Facebook friends.” How silly would introductions be? Here’s Mark Zuckerberg, the The Facebook CEO and Founder. “The the?” I don’t know if I’ve ever listened to the band of that name just because that word in repetition gets on my nerves. Besides then if somebody asked “what are you listening to?” I’d have to say “The The The” and I don’t know if I could without devolving into semantic saturation.
Anyway, to the point at hand, I woke up with my app’s name in my mind and the URL of the same name was available. And the name is fun to say. Again, I’ll let you know what it is closer to completion.
Day 1 - IDE & DB
I’ll expand on this
tomorrow later, but I’ve got the IDE setup, the local database server, and the database is designed.
Edit: September 28, 2013.
So much for “tomorrow”, from now on I’m going to use “later.”
Anyway, to explain what this meant.
When a person is developing code they can really use whatever methodology they want to keep track of their files and projects. Some people decide they want to do everything from a text console using command line. Others decide to use text files that they edit in a text editor. Another group like to use an Integrated Development Environment (IDE). I’m part of the last group. Since I’m going to be programming a backend app in java, and apps for iOS and Android, the IDEs that I’m going to end up using are Eclipse for the java backend, Xcode for the iOS app(s), and Android Studio for Android.
For my database I’m currently going to use the default install of MySQL, but try to make the data layer abstract enough that I can quickly switch to other solutions if the application becomes too large for MySQL.
As for the design, I learned a bit of this in school and while doing QA, development, and support for a large medical company’s online application. Plus it’s one of my favorite skills that doesn’t get exercised enough. Since the design of the database drives a lot of the development it’s done first and seldom changed, and improvements tend to focus on speeding up the application given the existing design of the database.
Tomorrow the fun really begins, it’ll be Day 0.
For this project I was going to teach myself Grails, which is a web framework that focuses on convention over configuration, and I still might, but I decided that I wanted to use something that has a little more community support, so I’m going with Spring MVC instead. (I’ve included a pic down below that shows there’s almost double the web resources for Spring MVC versus Grails. Both are java based, which is grand, because I’ve been using java for every role I’ve had since finishing school. Another benefit of Spring MVC is that it’s a recognized enterprise solution, Grails, while fun and entirely serviceable, doesn’t look quite as good on a resume.
Some people are against the idea of buying physical books to learn how to code, I totally understand this mindset, I buy books to only watch them obsolete a few weeks or months after getting them. That’s the unfortunate nature of software development, especially if you’re using anything open source. But as indicated, I am a book guy, I like to have pages in front of me that I can mark up, carry in a back pack, and physically book mark. Don’t get me wrong, I still go to the web for references, but a book lets me not rely on a connection for a while, it makes me feel like the era before ubiquitous information, I kind of like that once in a while. So the book I bought is Developing Enterprise Applications with Spring: An End-to-End Approach, it’s highly rated and contains call outs to the specific features I’ll be developing.
The funny thing about it is that I’m going to be developing a fully functioning RESTful web app solely to server as a back end for native mobile apps.
Another thing that just dawned on me regarding the reason I’m going with Spring over Grails: I already designed the data model. Spring allows you to build an application over an existing database/data model; but Grails, playing to its strengths, uses a top down representation of its domain objects, the database is dictated by the application as it’s built. I love databases and queries and I want a little more control over everything, I think Spring’s going to provide that.
I’ll probably update tomorrow night with progress, but I’ve got a cool dinner thing tonight and a beer fest tomorrow, so who knows.
Oh, here’s that picture:
Oops, or Why iOS Releases Can Bite the Occasional Weekend iOS Developer.
This is on me, it really is. I don’t install the betas to make sure the few enterprise apps I’ve made don’t break like I should. Hopefully blogging this stuff will make it go a little easier.
During lunch at the real job I decided to download iOS7 on both my iPhone 5 and iPad Retina 4G and test one of the enterprise apps I’ve developed to make sure it still works. After a few annoying “unable to verify” pop-ups due to the shear number of people doing the exact same thing I was doing I finally had the new iOS installed on both devices. Yay.
After messing around on the phone for a bit, because it finished installing first, I turn my attention to the iPad and scroll to the screen that consists of apps I’ve developed as part of various tutorials and for actual pay. I find the icon that looks garish among the minimalism of the iOS apps and touch it.
It launches. Then crashes. Shoot. I reach out to the client to let them know that the little elevator pitch app that I developed is crashing on the operating system that their sales reps are probably downloading right now. I let them know that the first thing I’ll do when I get home is check my crash logs and see what’s what.
I ride the bus home. I try to use another app (not mine) to draw some class diagrams and data model stuff for the app I’m actually going to dev blog. That app crashes. I launch again and use it for the rest of the ride with no issues. I realize that I need to download and install the new xCode too.
Pet the dogs, drop the bag, grab cable and iPad, head to office.
Download xCode, install xCode. Check logs - nothing. Delete app on iPad, rebuild and deploy. No provisioning profile. Odd. Dev Center, make sure all profiles and certs are current. Build again, provisioning profile. Check project and target, that’s weird provisioning profiles are empty but signing identities are still filled in correctly. Update profile entries, build, launches on iPad, crashes with unable to add to process.
Quick stack overflow check, tells me to clean, I clean. Command - r again, iPad asking me if I trust the computer and associated profiles, weird but makes sense. App launches, navigates fine. Try to launch PDF, crash, process id error, that’s weird. A few obsolescence warnings in the logs for a class Note to self: refactor this app.
Try to launch app on iPad, not xCode, works as expected, no errors in log file. Build for archiving, throw it up on local server in old location, delete it off iPad, click link. Installs. Launches. Displays PDFs. Rotates. Let client know immediate issues are solved. Still need to run instruments.
Next up is Spring MVC 3 backend work for new app. Yay.
I might be repurposing this as a dev blog soon to chronicle the development of an iOS/Android/Groovy app, and potentially moving it off the tumblr platform to something self hosted. I’ll likely only push updates to Facebook on a weekly basis, but twitter whenever I update.
So, that was 2012?
I’m getting ready to head out and celebrate the end of one year and the beginning of a new one, but before I partake in the revelry and unlikely debauchery I wanted to sum up my year and my hopes for the next.
This year - great, okay, ugh, okay, ugh, whee, whee, whee, oh - ouch, yay, hmm, whew.
Lost a few people, a few pounds, exercised a bit, gained a new job, a couple of pounds. Did a lot of research and some writing, discovered I like brewing beer - which inadvertently may be tied to the pounds.
Next year I will to do a lot more writing than research, lose a few more pounds and not find them again. Finish a couple of apps I’m working on and fix up the house a bit. I will travel more than I did this year, a lot more.
Above all I hope everyone has a great new year, for a lot of you that might be tough, you had amazing years, for some it might be a cake walk. I’m off to celebrate with some great friends and pay homage to Bacchus.
will be coming soon, and with a greater frequency. I’m not sure what they’ll entail. I’ll let them decide. They’ve been banging at the prison bars waiting for parole or escape.