This blog is basically on an indeterminate hiatus.
I blog more often at Cross Cutting Concerns, which is a blog specifically about aspect-oriented programming.
I’m still very active on Twitter, where I tweet about similar topics to mgroves.com.
Also, I occasionally write something on Tumblr. Those tend to be very entertainment based: pop culture, comedy, comics, etc.
My goals for this year are somewhat similar to last year, with a few notable changes.
- Rehab. The “incident” was a grand mal seizure that gave me two dislocated shoulders, both of which caused fractures, which need surgery. I’m on seizure medication, and I’m not supposed to drive a car until April. I have already gotten through one surgery, the other will be coming up in February. If all goes well, I’ll be about 80% by April, and hopefully 100% by July. This goal is much lower on Maslow’s hierarchy than any of my other goals, and thus is automatically the most important.
- Certification. I’m already scheduled to take an MCTS exam to help my employer remain in good standing with Microsoft, as well as to improve my knowledge of Microsoft products. I’m not overly concerned with certification(s) this year. If I have the opportunity to take more Microsoft exams or pick up some PDUs, I’ll take them, but I’m not going to be worried if I don’t.
- Android apps. I will get a handful more of apps into the store this year, whether they be Mono for Android or native Java. I already have one in the works, and ideas for several more. I’m also going to get some Windows Phone apps in the marketplace.
- Conferences/sessions. With the exception of CodeMash, I don’t have any plans for conferences, until–at earliest–after April. I’d be open to doing local presentations if I’m needed, but that’s about it. It will be enough of a challenge just to attend CONDG group meetings in the first half of the year. I would like to definitely make it to GiveCamp this year!
- Blogging. I’ve created another blog, one with a much narrower focus than mgroves.com. It’s called Cross Cutting Concerns, and it’s all about AOP news and information.
- Business. Our MonthlySauce.com business really needs to pick up this year. I will be exploring some creative ways to get exposure on our limited budget.
- Personal/Internal. As before, I have a number of personal and internal-to-my-employer goals that I won’t state here. And I may have another surprise or two up my sleeve this year if all goes well.
It’s a little disappointing to me that my Goals for 2011 post is still on the home page of mgroves.com. But que sera.
First, a review of my 2011 goals, and how well I did:
- Read books. Bender’s TDD book, yes. DDD, not so much (it’s a long book!). F# book, no. Beautiful Code, yes a little. I’ve pretty much abandoned the old dev lunchtime book club due to dailys with my employer at that time, but I’ve managed to sneak in a couple other books too: One on PHP5, reread of Don’t Make Me Think, ASP.NET MVC 3 from Wrox, Lauren Ipsum, and a few fiction titles here and there. With my new Kindle, I’m able to read a lot more conveniently, though code-heavy books could be an issue.
- Certification: I think I got a few PDUs from going to the Cincinnati Day of Agile last year, but I’m really slacking in PDUs. I will take an MCTS exam (70-515) in a couple weeks.
- Android apps: I exceeded my goals here for sure. I have 5 apps in the store: 1 free, 1 paid. One of them (Yeah Dog!) has sold well over 150 copies. My free one has been downloaded over 1000 times.
- Conferences & presentations: I also exceeded my goals here, speaking in Pittsburgh (twice), Findlay, Codestock, Devlink, Columbus, Louisville, Detroit, Ann Arbor, Richmond, Stir Trek, New York, and probably one or two more that I’ve forgotten. The travel has been a bit of a strain on family and finances, so I was already planning to reduce my speaking, even before the “incident”, which I’ll get to later.
- User groups: I regretfully didn’t participate in GiveCamp (because of Richmond) in any capacity, but I did help to organize Central Ohio Day of .NET, and I performed okay on the board of CONDG. I chose not to pursue re-election though (mainly because of the “incident”).
- Project Euler: I definitely dropped the ball here. I ended up spending more time preparing and presenting on Euler than I did doing new problems.
- Blogging: Another fail. I spend more time on Twitter than blogging, that’s for sure.
- Surprises: My wife and I successfully launched our first small business, MonthlySauce.com. Business isn’t exactly rushing in, but we did launch it on schedule.
Stay tuned for my 2012 goals and details on the “incident”.
Well, it’s not exactly what I expected to create, but one of my goals this year was to get at least two Android apps into the market(s): one free and one paid. Those goals are now accomplished.
My free app has been in the market(s) for a while, and has actually gotten a recent update: Mono Stock Portfolio, which is totally free (and no ads), and was really just a way for me to help learn (and teach) the Mono for Android tool. According to Google, this app actually has a surprisingly large user base: 1080 total installs, and 393 active installs. And I’ve gotten several e-mails from users asking for more features!
The other app, I just threw together this weekend in a sudden fit of whimsy, inspired in no small part by this commercial:
The app is “Yeah Dog!“, which I started creating with Mono for Android, but soon realized that the 5mb+ overhead just didn’t make sense for this app. So I rewrote it, painstakingly, in Java, which wasn’t as unpleasant as I thought it might’ve been (but unpleasant nonetheless). This app will set you back 99 American cents, and is also ad-free.
In the process of creating and publishing Yeah Dog!, I came to find out that I was beaten to market! First, GEICO actually released their own “BroStache” app some time ago, but I discovered that there is a secret “Yeah Dawg” feature in that app. Secondly, some other rascal created his own YeahDawg app (albeit an inferior one!) and published a mere two days before me.
Oh well. Such is the harsh reality of free markets. But in any case, I believe I have enriched myself as a developer, speaker, and businessman throughout the process of creating, publishing, and maintaining these apps, so that alone makes it worth it.
I set a bunch of goals for myself last year, publicly, and while I didn’t meet them all exactly, I think it was a worthwhile exercise, and really helped to focus me throughout the year. One of the activities that Brian H. Prince suggests in his “Driving Your Career” series is very similar: sit down every year and figure out what your goals are, because they may change from time to time.
I’ll have a number of personal and internal-to-my-employer goals that I won’t list here, so what follows is only a subset of my overall goals set:
- Read books. I’ve already purchased way more books than I need to. Attending the book club that I helped organize last year is practically out of the question due to schedule changes, but among the books I plan to read on my own include: Domain Driven Design, at least one F# book, Beautiful Code, James Bender’s new TDD book, among other non-dev books like Soul of the Lion and Atlas Shrugs.
- I don’t really have any certification goals, but to keep my PMP I probably need to get some PDUs this year. Attend PMP user group meetings and sessions, that sort of thing.
- I will put at least one app into an Android Marketplace, hopefully one free app and one pay app.
- Conferences and presentations a-go-go: I’ve already got speaking engagements scheduled at two conferences in Louisville and Detroit, not to mention a remote speaking engagement for a college, and probably other events as the year goes on. I also intend to attend the normal array of events, including Stir Trek, Central Ohio Day of .NET, GiveCamp, etc. My goal last year was 3 speaking engagements. At this rate, I’ll quadruple that in this year.
- User group involvement: as an officer of the local .NET group now, I will definitely be involved in a major way for regular meetings and special events. I doubt this will involve much speaking, as it will a lot of behinds-the-scenes work, which is totally fine. I will do my best to help this community grow and improve as much as I can, not only in CONDG, but the community as a whole.
- Project Euler: while I definitely overachieved on this last year, the amount of time I’ve spent on it in the last quarter has dropped drastically. I’d like to get at least another 25-30 of these problems knocked out this year.
- Blogging: I’m nowhere near the volume I used to do in the pre-MBA, pre-children days, but my blog posts are rising back up, in volume certainly, but also in quality (I hope). This is in major part due to the much more interesting and fulfilling work I’m doing full-time these days.
I have some other surprises up my sleeve too, which I won’t reveal until the appropriate time. Suffice it to say, I’m very, very busy, but this could really be a red-letter year for me (and my family, of course).
So: keep me honest. If you see me slacking, or haven’t heard from me in a while, beat me over the head on Twitter, or in a comment here, or in person for that matter.
I can’t possibly thank and praise everyone who deserves it, but here goes:
Thank you Jim Holmes and the whole CodeMash board for doing all the tough grinding that goes into the delicious CodeMash sausage. Best dev conference in the world.
Thank you all the amazing speakers, including but not limited to: Shawn Wallace, Jon Kruger, Phil Japikse, Chad Fowler, Josh Holmes, Joe O’Brien, Bill Sempf, everyone! Your hard work results in insightful, inspiring sessions.
Thank you to all the awesome sponsors, including but not limited to: Rich Dudley (ComponentOne), Bart, Tim, and all the Quick Solutions guys, Pillar guys, Sophic/Improving Enterprises guys, Brian Noll and JetBrains, everyone! You guys have possibly the most thankless jobs at CodeMash–your hard work and efforts are noticed and appreciated.
Thank you to all the random friends & acquaintances (new and old) that I sat down with during meals, cocktail parties, at the bar, in the game room, etc. Including but not limited to: Arnulfo Wing and the other munchkin guys (Matt Ruma and Johannes), Dean Weber, Seth Petry-Johnson, Alexei Govorine, Kendall Miller, the guys from the MonoDroid open space (Kirk and Jeffrey), Kevin Hazzard, and, well, we would be here all day if I had a better memory. Some of the best parts of CodeMash are the conversations outside the sessions.
Thank you to the Kalahari staff. A crowded hotel packed full of nerds has to be challenging sometimes, but the service and friendliness from every staff member is never short of amazing.
Another big thank you to Bill Sempf, who gave me the opportunity to contribute in a small way as a presenter, among a lineup of superstar speakers that I otherwise have no business even being mentioned in the same breath. Bill is a remarkable man.
That wraps up another stellar CodeMash. Now I need to get cracking on my personal & professional goals for 2011.
This has been a busy year, and I’m just going to use this post as a chance to reflect on what I’ve accomplished this year. I will then probably have a 2011 goals post later (probably right after Codemash).
I started this year still working for Quick Solutions. I had a great time at Codemash 2010, and learned quite a lot. Around this time I started meeting with a mentor at Quick and laying out some plans. I generally believe that plans are for fools, but I managed to accomplish most of my plans, in spirit at least, if not to the letter.
I had a goal to read a couple dev books each quarter. I didn’t read all the books that were on my list, but I did read roughly my targeted amount. Additionally, I captained a dev book club for a few months, which was a lot of fun, and was more fulfilling than just reading a book by myself.
I did take and pass the PMP exam, which seems like such a distant memory now. I’m not a project manager or a manager of any sort yet, but I’m confident that I will get there when I need to.
I have only contributed to OSS projects in minor, minor ways this year. This is definitely a failed goal. However, in terms of community involvement, I am quite active, and was just recently elected as an officer to the CONDG user group, and I also volunteered at Stir Trek to carry pizza boxes and stuff swag bags. So I’ve not just been sitting on my duff either.
I did not write a mobile development white paper. Instead, I’ve been participating in the MonoDroid private beta program, and I will be “co-presenting” with Bill Sempf at CodeMash on MonoDroid (and possible other conferences). I am currently working on a MonoDroid app, and I hope to release that to the marketplace soon.
I had a goal to give at least 3 presentations in the local dev community. Well, take out the word “local” and I accomplished that easily with presentations in Maryland, Virginia, and Grand Rapids, as well as a couple minor sessions at local events too. It also goes without saying that I attended plenty of conferences, local and otherwise.
I’ve been recently slacking on my Project Euler, but I have solved 65 problems, for an average of about 1.25 problems solved per week, which is actually must better than the goal I set for myself initially.
I also managed to take a new job with Telligent, and transition to being a remote worker.
All of this, and one other minor thing: my second child (Emma Groves) was born this year.
So, all in all, I’d say it’s a pretty darn successful year, and I have a lot to be proud of. I couldn’t have done it alone, of course. My wife Ali has been a constant support, especially through all the travel, late nights, studying, etc. Both of the companies I worked for this year have a ton of great people that I’ve leaned on for knowledge, support, and guidance. This includes Jayme Davis, Craig McKeachie, Jim Holmes, Chris Farrell, Craig Stuntz, all my Twitter friends, the team of guys at the AG, my current product team, anyone who still reads this blog, and many many others. A cast of thousands, if you will. Thank you, everyone.
Well, it’s been a long journey, but I’ve finally arrived at WordPress. In case you haven’t been here since the beginning, here’s a brief history of mgroves.com:
I first bought the domain/hosting through easycgi.com. I really didn’t have a clear reason why, but I put some stuff up there like my resume, some music reviews, and some other random junk. All static. I was employed with OSU, but not as a web developer.
Blogs and RSS were really starting to take off (not that they were brand new, but they were really getting popular) in late 2005. I decided that blogging might be fun, so I slapped together a home-made blog engine with PHP (which I was just starting to learn). I had a layout and structure similar to slashdot, and I borrowed the slashdot “image-representing-a-category” motif too. I had a table-based layout. Unlike slashdot, my site was really ugly.
A few months later, I moved to the web development group at OSU, which had a fantastic designer. He saw my site and practically hung himself. I convinced him to live, and also to make a nice new design for me. I also took that opportunity to improve my blog-engine a little bit as well.
Soon, I was posting like a madman, up to 3 times a day. Not particularly rich content, but certainly there was plenty of it. During this period, I reached the front page of Digg twice, once for a post I did about hidden stuff in logos, and once indirectly about AJAX (which was also becoming a big deal at the time). The traffic blew up my site (the fabled Digg effect), so I once again adjusted my blog engine to give it caching. Hotlinking was also sucking up a lot of bandwidth, so I adjusted my software to watermark every image. At some point, I switched hosting to Dreamhost to save some money (though I lost the ability to use ASP/ASP.NET, which I still kinda regret).
And that’s where I was for a long while. I got another redesign, and made minor tweaks here and there. I got a couple checks from Google AdSense, Commission Junction, etc. Not much, but it easily covered hosting. My blogging frequency dropped off when I was getting my MBA at night, and then dropped even further when my son was born.
Early last year, I decided that my blog engine was becoming too painful to use. I was married, had a kid, and didn’t have time for fooling around with my weak homegrown engine when there are so many free, feature-rich engines out there already. The Habari guys had visited the Columbus PHP Group, so I decided to give them a go. The migration from my database schema to their’s wasn’t too bad at all.
However, as much as I liked the Habari guys, and their ideas about blogging/CMS, Habari had some flaws, missing features, and wasn’t getting updated very much (one or two updates in a year). Sure, it’s open source and I could contribute, but that’s really at odds with my purpose for getting a blogging engine in the first place. In the interim, I had used WordPress for a couple of projects and sites here and there and really got to like it.
So, here I am. Static -> Custom blog engine -> More custom blog engine -> Habari -> WordPress.
So maybe you’ve heard that Mexican Coke is made with ‘real’ sugar (i.e. cane sugar), unlike Coke from the USA, which is made with evil, corporate sugar (i.e. corn syrup). Mexicans who drink USA Coke often claim that it’s not as good as Mexican Coke, and older people from the US claim that Mexican Coke is the Coke that ‘they remember’ from the pre-government-meddling-in-sugar era. Go check out Snopes or Google for more background about the whole ridiculous controversy.
I’m not interested in any of the political nonsense (though I am against corn subsidies and sugar tariffs/quotas) as much as I’m interested in Coke itself: I drink a lot of Coke. A lot. Just ask anyone I know, and the first thing they’ll mention about me is their concern for the abusive amounts of Coke that I drink. Between this word and the last period, I just drank some. It’s a relatively large part of my dietary life, so naturally, I’m interested in all kinds of Coke lore, and even the promise of a better Coke from below the border.
One day, bottles of Mexican Coke showed up in the convenience store in the lobby of the office where I work. In the interest of science, I bought 6 of them. I drank a few, and put a few in the fridge for later testing. I wanted to do a taste test to see if I could tell the difference, and which I preferred. Here is the science:
Question: What’s the big deal about Mexican Coke and real sugar?
Background Research: See above. Additionally, I have tried some other drinks (namely Hank’s Root Beer) made with cane sugar, and found them to be very tasty.
Hypothesis: Despite all the context I’ve mentioned, I was skeptical that I could tell the difference.
Experiment: I purchased glass bottles of Mexican Coke and put them in the fridge to chill. To isolate the variable (sugar/corn syrup) as much as possible, I also purchased glass bottles of US Coke and put them in the fridge to chill. When the bottles were chilled enough, I asked my wife to pour three shot glasses of Coke: 2 of them with one type, and 1 of them with the other type. It was up to her what to pour in what, as long as both flavors are in there at least once. She hid the bottles from me. I drank each shot glass and drank water between each glass.
Results: The first glass was really good. The second glass seemed wrong. Not terrible, but wrong. I was excited that I already had a result! The third glass also seemed wrong. I guessed that the first glass was US Coke and the second two were Mexican. I was exactly right!
Conclusion: There is a difference in taste! Even Coke maintains that there is no taste difference, but that clearly is not the case. However, as much as I tried to isolate the variables, there are still many differences that I can’t account for: water differences, carbonation amounts, the effect of transport, etc. If I were in Mexico, I would not hesitate to drink their Coke–it’s very good. But, given the choice, I’ll stick to good old US Coke.
The first quarter is now over, so I thought I’d recap what I’ve accomplished, in terms of the person & professional goals that I layed out at the beginning of the year, and preview what the second quarter will contain.
Recap of 1Q
I have almost finished two book on my list: Clean Code (which I have been blogging about at a much slower pace than I have been reading), and What Every Programmer Should Know About Object-Oriented Design. Both of these books came highly recommended, and both have lived up to my expectations. I should finished these books shortly.
I did not take my PMP exam, because I was picked at random for an audit. The audit took a long time to complete, but it is now complete, and I have scheduled my exam for mid-April.
I gave my CakePHP presentation internally to Quick, and I have submitted two talks to CodeStock.
I have given up the CodeKatas in favor of focusing on Project Euler, which I have also decided to do just in C#.
Blogging and tweeting are going pretty well, but maybe not as frequently as I’d like.
Preview of 2Q
I have already purchased Head-first Design Patterns (in lieu of the GoF book) and it is on its way from Amazon. I haven’t decided what the 2nd book will be yet.
I will take the PMP exam here in a couple of weeks.
I plan to come up with one more presentation topic and submit it as a lightning talk somewhere.
I also plan to keep chugging away on the Project Euler, and hopefully do a couple more commits to PHPExcel.
My one year anniversary with Quick Solutions is coming up this quarter as well.