Category Archives: Life

Wi-Fi Thermostats are Awesome

There comes a time when a man is unsupervised for 2 weeks, and random household projects take place. Gutter cleaning, hedge trimming, pump re-piping, mysterious projects involving an angle grinder, and on top of all this, the start of what will become numerous home automation experiments.

Anyway, I made the purchase of a Wi-Fi thermostat. It is a Filtrete 3M-50, and it rocks. The same thermostat is also labeled as a Radio Thermostat CT50 and other models. I found mine as an open box model on eBay, figuring some poor guy bought it and couldn’t figure out the wiring. Judging by the few missing wire labels but otherwise perfect condition, I figured right.

Hardware installation was surprisingly easy. Thermostat wiring is somewhat standardized, although my Trane unit threw a curveball at me as far as the “C” wire, which happens to be the most important wire to get a modern thermostat working. On a Trane, it turns out this wire is labeled “B”, and it took some research to figure this out (even Nest’s website couldn’t determine my setup). Anyway, I put the 6 or so wires in their place, fired it up, and it has worked ever since.

The Wi-Fi setup is slightly weird, and maybe it doesn’t look as sexy as a Nest, but it works well, doesn’t need a battery, has a touchscreen, a scheduler, and an app to adjust temperature and scheduling settings. But the thing that sold me on it… get this, it has a well-documented JSON-based REST API. *drools uncontrollably*

Why did I buy this passé, beige, how-you-say… uninspired box when I could have bought a Nest? I guess this would be why…

1) Nest had no open API. The only info I could find was reverse-engineered. It looked nice though.
2) Nest requires the cloud. As far as I could tell, you can’t address it on your network directly.
3) I wasn’t sold on the automatic scheduling. It has to see you for that to work, and my thermostat is in a room with no real traffic.
4) Their website suggested it was incompatible with my wiring. This turned out to be untrue.
5) There are a lot of scary Amazon reviews out there. Either you love it, or it destroys your life (and freezes your pipes). Not much in-between.
6) It uses a lithium ion battery. I don’t know about you, but I don’t want to replace the batteries on a thermostat every 3 years.
7) There was apparently a (forced) software update bug that bricked a lot of people’s thermostats in the middle of winter.
8) I don’t care what the hardware interface looks like… if it’s doing its job I shouldn’t have to look at it or touch it.

I’m not a Nest Labs hater or anything though. I like their Nest Protect product, even though it has a few problems of its own, and I may end up purchasing one or two of them. Heck, does anyone else make a Wi-Fi smoke detector?

So, I managed to write an extremely basic class in PHP that allows me to get and set the temperature, and I’ll be releasing it on GitHub soon as part of a big project I’m working on. A project which is getting closer and closer to release. 🙂

#OneSpark #EdSpark #YearOfAwesome #lolhashtags

So, since I’m not busy enough these days I decided to help out my friend Courtney with a project of hers she wanted to enter into OneSpark. If you’re not familiar with OneSpark, it’s a crowdfunding festival in Jacksonville that helps get innovation and investors in the same place, to help local projects get funded. That’s the idea at least, but in practice it’s more like an idea some rich bohemians came up with to get people to remember that downtown Jacksonville exists, while simultaneously not really managing to get anybody’s projects off the ground.

Alas, I promised myself this would not turn into a rant. 🙂

The idea we entered is a nifty one. It is an ABA Therapy App (in fact, that’s the name) that allows behavior analysts and therapists to work more efficiently with autistic children. Right now it supports manding, assorted flashcards, and analytics, but we want to do all sorts of useful things with the app. The prototype is currently written in jQuery Mobile, but it may be rewritten natively for the final version. All in all it is a pretty exciting project and we got a lot of great feedback. We also got some wonderful funding and met some great allies in our cause.

screenshot-numbers

This was all born out of a pact we all made called the “Year of Awesome.” I know that sounds like some kind of Honda used car sales event, but really all it is, is the promise that we’re going to have our twenties go out with a bang instead of a whimper. You know, get the ball rolling on stuff that should have been rolling years ago, like starting a business and building cool ideas. So this was a way to do just that, and I think we succeeded. Maybe we didn’t win prizes or anything, but we built something, attracted the investors we needed, and got a nice booth at EdSpark. And hey, we got more funding than most. Now there are some next steps to take care of, and you’ll soon be seeing some exciting new mobile projects from me.

The Year of Awesome is go.

Moon Boogie

My latest game involves driving a jumping pink jalopy around on the moon, whilst shooting heart-shaped bullets at aliens. Believe it or not, no LSD was involved in the making of this app.

Moon Patrol is one of my all-time favorite games (I even have the standup arcade game), so it was only a matter of time before I wrote my own version. It follows the same formula, but I changed a few things here and there. I actually wrote a Moon Patrol clone about a decade ago, but the source code got lost in a drive crash… this one is better anyway, haha.

screen568x568

Get Moon Boogie for Android
Get Moon Boogie for iOS

You’ll notice the iOS version costs 99 cents, while the Android version is free. The reason for this is the Android version is way easier to port than the iOS version, and I don’t have to pay $99 a year for a developer license like I do with Apple. Also, what I’ve noticed is Android users expect everything to be free (like Windows and Linux software), while iOS users are fine with paying a buck or two (like MacOS software). So, lots of reasons.

The holes were the hardest thing to implement. The game is extremely difficult, even for me, the guy who made the game. I spent probably 3 days trying to track down a weird Android bug, but I spent even longer cursing at Xcode over a file path bug. One final note: Disco Nick is hidden in the game, as usual.

Enjoy.

It’s Good to be Back

So it’s been a few months since I’ve been back home now.

Home.

For those of you that don’t know, I moved from Atlanta back to Jacksonville in November and no longer have to live in a small house with 6 other people. I no longer have to take huge trips from ATL to JAX. I no longer have to deal with Atlanta traffic. I no longer have to come home to my house every few months and see what an overgrown disaster my lawn has become. I no longer have to pay for a house I don’t even live in. I can now live in my own home, in my own city. With money not being squandered on living in two places at once.

Life is good again.

That’s all I really wanted to say, is my life is awesome. Maybe it’s the mai tais talking, but I’m in love with life, and I can’t wait until summer.

546817_500

Fantasy Healthcare

I have an announcement to make: I placed 3rd in the Robert Wood Johnson foundation’s Games to Generate Data Challenge. I have been secretly working on this project for most of the year, and now that it’s over, I can talk about what I’ve been building.

Fantasy Healthcare is a game that allows friends (in the Wisconsin area for this version) to create their own healthcare provider dream team and pit it against other friends and players online. The provider data and provider names are 100% real, but the doctor/department names have been changed to protect the innocent. The idea is that players will better familiarize themselves with providers in the area, while also learning which providers perform best in certain areas.

The interesting part of all this is how it all got started. At my public sector job, I joined up with a group that was looking to enter the Games to Generate Data Challenge as a team, but alas, government red tape (and lawyers) prevented this from happening. However, since I was a contractor, I was able to take an idea of my own into the challenge and see how far it would get. It ended up being a good enough idea to place in the Top 5, so from there I developed the game on my own.

Fantasy Healthcare is written in HTML5, Canvas, CSS3, Javascript, jQuery, jQuery Mobile, PHP, and MySQL. The back end stuff runs on a Linux server. The Canvas stuff is also cross-compiled to native iOS and Android platforms for the efficiency and fast performance you expect from a game. I did it all myself, so considering I competed with some large teams and some big industry players, I guess I did pretty well for 3rd place.

So besides winning some nice prizes, I also got a trip to Boston to attend Games for Health, and a trip to the Health 2.0 Conference in San Jose to see the winner announcements. First off, Ben Sawyer’s Games for Health project in Boston was a wonderful experience, and I wish I were able to go again. There are really some amazing interactive ideas out there ready to transform the industry. As far as Health 2.0, I also had a great time hanging out in the Valley, drinking local brews and eating some In-N-Out Burger. The 1st and 2nd Place winners were totally deserving of their prizes, each having some fun-looking and interesting games, and I sincerely wish them all the best with their endeavors.

While I was in San Jose I got caught up in the government shutdown, but that’s a story for another time.

The Robert Wood Johnson Foundation and Health 2.0 are doing some wonderful things right now to provoke and promote bleeding edge ideas in the healthcare industry, so be sure to visit their challenge site.

What’s next for Fantasy Healthcare? I’d like to publish the apps and expand it to more cities. This will take some time I don’t have at the moment, though. In the meantime, it is available here for anyone to play with.

Take Care of Your Phone

Image of MyTouch 4G

It plays Angry Birds. That’s all that was important in 2010.

This phone is three years old. Don’t believe me? Let me tell you about this phone.
I got it in Christmas 2010. I had decided not to buy a smartphone until 4G rolled out, and this turned out to be an excellent decision. This phone was the absolute top of the line back then– Android 2.2 (later upgraded to 2.3.4), 1 Ghz single core, MyTouch 4G (made by HTC). It is starting to show its age, hardware and software wise, but physically it looks brand new.

What’s my secret? First off, let me tell you what I didn’t do. I have never once used a screen protector on this phone. I have never used a bumper case of any kind. I’ve carried this phone in my pocket every single day for 3 years, and there’s barely a scratch on it, and the screen is perfect. All I did was follow common-sense notions of how to treat a smartphone, basically. Stuff like, I dunno… don’t put it in the same pocket as your keys; don’t put it in your back pocket; hold onto it firmly at all times; keep out of reach of pets and children. Do these things, and you will not need any extra crap tacked on to your stock phone. Treat it for what it is, a $500+ fragile box of awesome, and it will treat you well in return.

All that said, I really need to upgrade to something new. At this point in time I’m considering a Moto X, a Galaxy S4, a Galaxy Note, or an iPhone 5C. But if I wait until the holidays, I could probably Get a Galaxy S5 by then (64 bit, I bet). Basically I want something with a massive screen, newest Android, and excellent processing power.

So I was kidding about the iPhone, of course.

Project Workflow for Lone Developers

I’m not ashamed to admit I’m a designer-developer hybrid. I worked as a graphic and web designer for several years. I did back end development professionally for 4 years. I’ve done UX development professionally for 3 years. I love design and I love coding, and I love doing both at the same time. So it’s not uncommon for me to build entire web applications by myself. This practice gets a bad rap because developers are typically awful designers, and vice-versa, but for me it comes naturally.

I’ve been designing since age 6 and programming since age 11, and never quite knew how I could merge those talents. Since kindergarten, everyone always told me I would grow up to be an artist, but I wanted to be a programmer. Once the time came when I needed to choose a major, I chickened out at the last minute and chose multimedia (I hated math and still do). Back in 2001, CD-ROMs and VB were king, and Director and Flash were still in their heyday. That was how you built interactive applications. But slowly, web and mobile took over this space, and bridged the gap between design and development. I was lucky to be caught in the middle of that merge.

Throughout the years, I’ve typically been unmanaged throughout the web development process, since the stuff I do is usually highly experimental. Because of this, I’ve developed and refined my own process for development that seems to work great for me. Your mileage may vary, but I’ve found this workflow to be the winning combination, especially for projects where I’m going it solo.

Lone Developer Workflow

  1. “Liveframing”, what I call wireframing with HTML. Create a preliminary GUI with no design, just basic structure. I prefer this to wireframing in most cases… honestly, I’ve never been a fan of wireframing tools, and I avoid them whenever possible. It depends on the project though.
  2. Mockup. Based on your liveframe, use Photoshop to design what the final website will look like. You want to throw a bone to the client to keep them busy awhile, but you also want to put a vision in your head of what you’re working towards.
  3. Database schema. This is the third thing I usually do, for two reasons. One, after building the GUI I have a pretty good idea of what data I’m collecting and how it will be used, and second, I want to do this before starting on the back end. I usually use Excel or pen and paper to draft a schema, and then build the actual tables as I need them. The schema will always change from start to finish, but usually I nail it with 90% accuracy. And usually, I end up needing fewer tables than I had originally schemed.
  4. Back end development. Once I have a barebones liveframe and a schema, I’m ready to start back end development. Of course I start in the planning stages, figuring out which pages do what, how the API will work, .htaccess considerations, etc. and generally decide how communications will be coded. Communication formats will also be decided in this stage (XML vs JSON, data structure, REST considerations, etc.). Then, I start coding, and hook the liveframe up to the code as I go for testing purposes.
  5. UX development. I start elaborating on the liveframe by adding the necessary Javascript and jQuery.
  6. Test, test, test. As I move through my prototype on the front and back, I add or modify decisions for both sides. The pieces slowly come together. The client should be engaged during this time to verify the project is functioning under the proper requirements.
  7. Once the project is 90% solid, then I start slicing the front end. The liveframe’s header, footer, and CSS will be replaced with the new design, and if you did it right, it should pop right in.
  8. Beta and QA testing. This is probably something you don’t want to do yourself. Find friends willing to test it out.

Behold, and Impart My Learned Wisdom Unto Others

Bartek’s Law of Coworking
Nothing says the digital era like piling people into a downtown office building with tons of talent and zero ideas.

Bartek’s Law of Private Sector Employment
Make the boss love you. Make management respect you. Make HR fear you.

Bartek’s Law of Project Management
“Man, it’s really hard to find developers. Let’s add more esoteric technologies to the stack and hopefully that’ll make hiring easier.”

Bartek’s Law of User Experience
“The client called. They’re worried that by simplifying the design, you’re confusing the user.”

Bartek’s Law of Software Engineering
The only career path where more money gets you fewer of the opposite sex.

Bartek’s Law of Google Image Search
No matter what the search term, you will always end up with furries in the results. Once you see the first one, you’ve reached the end of relevance.

Bartek’s Law of Design
Apple sets all trends, because that’s what your boss and clients want. If that means ushering in the return of early ’90s hypercolor, then so be it.

Bartek’s Law of Web Design
Take any random picture, blow it up and add 1000% gaussian blur. Add some aquamarine and coral buttons. Congratulations, you made a website.

Bartek’s Law of IT Jobs
Everbank has had those jobs posted for 4 years now. Ignore those, they have no clue who they want to hire.

Bartek’s Law of Front End Job Hunting
The search term you’re looking for is not “frontend”; it’s not “front-end” either. The standard search term is “ninja“.

Bartek’s Law of Modern Web Development
Yo dawg, I heard you like having to learn 5 languages. So we put languages on top of those languages.

Bartek’s Law of IT Careers
You can live where there are awesome jobs. You can live where life is relaxed and easy. But you can’t live in both at the same time.

Bartek’s Law of Search
If you’re searching the web and can’t figure out why Google is giving you unusually awful results… you’re accidentally using Bing again.

Bartek’s Law of Photoshop
“Client: My 11 year-old nephew knows Photoshop. I’ll have him design the website to save money.”

Bartek’s Law of Art School
Congratulations, you graduated. Hang that piece of paper on the wall and commence to starving.

This Ain’t Your Dad’s Job Market

Time and time again, you see bad information about how to get a job. Times have definitely changed now, and they continue to change. There are so many recruiters and employers out there doing so many different things that it’s hard to really have any sort of rules about how to and how not to get a job, but I’ll at least share what I’ve personally noticed. What follows is weeding out the facts vs. fiction of job hunting.

1) Cover letters are important.
False. They’re a waste of time. The only time you need a cover letter is if you’re sending an email directly to an employer. The email is your cover letter. So it’s important to know how to write a cover letter, but only as a brief intro to your resume.

2) Never go over one page on a resume.
False. I fell for this garbage suggestion for a decade before I realized how stupid it was, and how many jobs I was getting passed over on because of this. 1 page makes you look like a noob. You should shoot for 2-4 pages. If you’re an executive or trying to get a government job, at least 8 pages. Bottom line is, unless you’re just starting out, it should be impossible to have a one page resume. For each job you worked, you should be describing in some detail what you did at the job and how it impacted the company, not simply skills used and hats worn.

3) Pack your resume full of buzzwords so that the computer can find you.
True. This is extremely important. Practice good “Resume SEO”. However, just like real SEO, it can be overdone to detriment. Do not use buzzwords for things you don’t know how to do. Don’t list old-school technologies like ASP Classic, HTML4, Flash, COBOL, etc. unless you know what you’re doing. Avoid using corporate buzzwords like leverage, synergy, low-hanging fruit, incentivize, team player, etc.. Don’t hide buzzwords in small white letters at the bottom of the page. And certainly don’t pack your resume so full of buzzwords that it has a hard time saying anything coherent.

4) Always have an Objective in your resume.
False. Throw that crap away, nobody cares. Replace it with a summary instead. Keep it brief, and don’t tell your boring life story. Also, throw away your high school and college stuff. Nobody cares what your GPA is, and they certainly don’t care about high school. Finally, check for typos. A typo on your resume will get a first-class ticket to the trash can.

5) Employers are bored with template resumes. Go crazy with the resume layout.
False. This is a huge gamble, and should only be done if you’re a designer. The problem with fancy resumes is the computers don’t know how to read them, and colors may not turn out on the office printer. You also will have a hard time fitting important information if you’re trying to make shapes with the paragraphs, etc. Also, don’t put any pictures of yourself or your work in your resume. That can go in your portfolio. Lastly, don’t use “resume paper”. It’s just silly.

6) Education is everything.
False. Portfolio and work experience are everything. If you have neither, you’re going to have a hell of a time getting a job — but you will eventually. Keep with it, and eventually an employer will take a risk on you. Make them glad they did. Education is unnecessary if your job is in demand.

7) LinkedIn and GitHub are the new resume.
True, pretty much, although GitHub is more of a portfolio technically. But LinkedIn is definitely the new and improved resume system.

8) Certifications are everything.
False. They help, but they’re usually not necessary to most jobs. If you’re shooting for a job that’s $100k+ though, it’s definitely a good idea.

9) Constantly follow up during the process, calling the employer and sending them thank you cards.
False. Most employers hate candidates that do this. Their time is valuable, quit pestering them. They don’t want to hire you, so deal with it.

10) Networking is extremely important.
True. The old adage, “it’s not what you know, it’s who you know” is true, always has been true, and always will be true. Get on LinkedIn and start making contacts. Go to conferences and trade shows. Get friends to introduce you to their contacts. It’s a silly game we play, but this is the reality of business.

11) Recruiters are your friends.
True, when you need them, but they’re also your worst enemy when you already have a job and 100 of them are beating down the door trying to talk to you. This is a good problem to have, though. Let them call, and get to know them over Thai food. When the time comes, you will be thankful. These people are like real estate agents, but for jobs; free consultants who genuinely want to help you. You should always have 2-5 recruiters you talk to on a regular basis. Anymore than that and they’ll drive you crazy.

12) Don’t discount Craigslist as a source for jobs.
True. But this is probably a last resort. I generally start with Indeed, which covers most job websites. It used to spider CL, but knowing them, they probably sued. Also, get your resume out on LinkedIn and Career Builder, as those sites are used to harvest resumes all the time. But keep in mind: you shouldn’t have to look for jobs yourself, you should know enough recruiters to let that magic work for itself.

13) Your credit score is important.
True. Believe it or not, many employers check your score, and it helps to have a good one. But what’s more important is to make sure you have a clean reputation on the Internets. If your MySpace is still sitting around — delete it. Search your name + city, full name, street address, email, and username and make sure anything weird is cleaned up. Also, get your name out of all those robodirectories to avoid future issues. If you’ve got a mugshot you can’t expunge, then, well, you’re screwed I guess.

14) If at first you don’t succeed, you’re doing it wrong.
True, in almost all cases. If you aren’t even getting calls, there’s probably something seriously wrong with your resume. Read up on how to write a resume, and fix it. If you’re not passing interviews, then read up on how to interview (be confident and have all the answers!). If you’re still failing, you may be over or underqualified for that type of job, and you should try something else. Try different search keywords that mean the same thing. If you’re a web designer, try “web developer”, “mobile design”, “front end”, or “ux designer”. They all mean basically the same thing, they just become more specialized and professional-level.

15) Hire a life consultant to help.
False. Don’t waste your money. If you can’t figure out how to get a job from yourself, you’re hopeless. Go back to school and learn something else, or move somewhere where there are jobs.

16) Start saving for retirement at age 70.
False. Start saving for retirement at age 40, heh. Because nobody will hire you in IT past that age.

17) Racism and sexism are rampant in IT.
False. For some reason IT jobs are just popular with white guys. Generally, there’s really no such thing as the employment gap; actually, women will be better-paid then men in a short number of years. There’s definitely an ageism problem though.

18) Don’t let other employers know you’re interviewing with other people.
False. They aren’t stupid, they know you’re talking to several firms. You might even use it as leverage for a better negotiation. When jobs compete, you win.

19) Don’t burn bridges when leaving a job.
True. Never burn bridges, even if you’re getting laid off. You never know when those people will be helpful later on in your career. I personally don’t burn bridges, and what I’ve gotten from this is 1) Offer of double salary to stay, 2) Given opportunity to work remotely, 3) Given contractor/consultant opportunity (twice this happened), 4) Rehired at a significant raise. 5) Given investor opportunities. This is why you don’t burn bridges. You know they were wrong to lay you off, let them call you back when they realize they made a mistake.

20) Refuse an offer that doesn’t pay well.
False, unless you have a backup job. It’s better to continue interviewing elsewhere after being hired, than to stay on unemployment or worse. Employers take this risk when they lowball your salary.

In case anyone was wondering where I’ve been

It’s been a difficult few months.

Tomorrow I fly out to Boston to present a personal project at the Games For Health conference. I have something major in the works and have neglected to mention it so far, but I’ll post about it in the coming weeks or months, once I’m more at liberty to discuss it. I’ve been working on this game for months now, and it’s one of the most intricate projects I’ve ever done.

I got a second job last month. This has also been cutting down on my free time considerably, which is another reason why I haven’t been updating. I’m now working an additional front end development job using jQuery Mobile and Appcelerator, and also involved in some exciting projects.

Possibly due to the above, I have been having some health issues these last few months. Since I am at the keyboard every moment of my life now, my blood pressure has shot through the roof, and I’m experiencing numbness, chest pains, and dizziness. Yes, I went to the ER. Yes, I went to a doctor. My blood pressure issues are likely caused by poor diet and exercise, and my doctor seems to be convinced the numbness in my arms and hands is due to Carpal Tunnel Syndrome.

In response to all this, I may be making some changes in my life, but I haven’t decided what yet. In the meantime, I’m hanging in there, just not as responsive as usual.