Common Sense Versioning

If you browse GitHub issues on popular projects long enough you’ll find a healthy argument about versioning eventually. A few years ago the topic got so hot that someone posted detailed rules for software version numbering called Semantic Versioning. A few years later someone else came up with a pretty good system they called Monotonic Versioning. Whenever I init a new npm module it always defaults my version to 1.0.0. That got me thinking about the silliness of some of these arguments over how to properly assign version numbers to your code so I decided I’d throw my (very small, humble, and insignificant) hat into the ring and come up with a common sense versioning system that I’m calling “Common Versioning”.

Read on

Step Away From the Code

As a professional software engineer I had to work hard to master my craft and get to where I am now. It takes a lot of passion to make it to the top (where “the top” is always subjective and subject to change). I have that passion for programming but in recent years it took me over and turned me into a one dimensional being. My identity was wrapped up in my work. It was a boring, fragile existence. I lost sight of who I was as a whole person. I recently turned 30, took a trip to Seattle, and came back with some perspective. So today instead of my usual programming tips or tutorials I want to talk about something equally important and that’s learning to step away from the code, disconnect, and remember who you are. Here’s how I went from a one dimensional person to living a fuller, healthier, more satisfying life.

Read on

Take Over Any Domain in 2 Easy Steps

Want to hijack a domain name? Ever wanted to “hack” Google and point their domain to a porn website or something equally NSFW? Well it turns out it’s super easy. But besides wreaking havoc and setting up practical jokes there’s a useful case for using this information. Today I’ll show you how to host a domain name without having to buy it. All you need is web hosting with a static IP address.

Read on

Staying Current as a Developer

After the collapse of my last startup I took a sort of gap year where I taught full stack development. I always knew that the less you code the faster the industry passes you by. I figured one year wouldn’t hurt. Now I’m working again for a technology company and I can see how fast things have changed in just a year.

Read on

DNS for Beginners or How Do I Connect a Domain to My Website?

Building websites is fun and easy but unfortunately the http://localhost: domain and 127.0.0.1 IP addresses aren’t accessible to the public. So now that the site’s done, you bought a domain, and picked out a web host you need to hook up it all up for the public to see. How does that all work!? Don’t worry, it’s easy. I’ll explain how DNS works and, more importantly, how it’s used to hook domain names up to web hosts so the whole world (except China and North Korea) can see the beautiful sites you’re building.

Read on

Breaking the Rules of the MEAN Stack

If you were learning to program back in the old days then you remember that the LAMP stack was all the rage. Linux, Apache, MySQL, and PHP. Everything you needed to create a great web application. Can you believe that Facebook started out as a simple LAMP stack application? Now that the MEAN stack is all the rage I want to make sure you’re not putting together SPA’s using that stack as prescribed because “that’s how it’s done”. Remember, the one rule trumps all others is that you use the right tool for the job. I’ll explain here what the MEAN stack is, how it’s used, and how to know when to break the rules.

Read on

Getting a Job as a Developer

My students are always asking me how to get a job as a developer. Where I currently work we have a program that’s specifically designed to help guide students through that process. Whether you’re a man or a woman, young or old, there’s a place for you out there right now and our team gives you great advice about resumes and job hunting and how to fill in your LinkedIn profile but nevertheless students are always wanting to know, first hand, how to get a job as a developer from an employed developer’s experience. So here’s the story of how I got job as a software engineer (an upgrade from developer) and how you can too.

Read on

Using Bookshelf With Node.js

Yes, you can and you probably fucking should use a relational database in your Node/Express apps. Most data you come across is relational so I’ll never understand this dogma being preached that if you use Node as your back-end then you have to pair it with MongoDB as your persistence layer (a database). You know, that MEAN stack crap everyone cheers on. Bullshit! It’s utter bullshit and anyone who’s used Node.js whilst actually thinking about their data models can see it. You use the database that best fits your dataset. Sort of like that whole “right tool for the job” idea (which is excellent advice, by the way)? Now let’s get you set up with the Bookshelf ORM and do some relational database modeling. We’ll also talk about integrating this into an Express application.

Read on

Deploying to Heroku

Heroku is billed as the easiest way to deploy your apps no matter the language. Node.js, PHP, Python, or Ruby – they’re all super easy to deploy says their marketing materials. What they don’t tell you is that it isn’t that simple. The value prop is that you get to focus on deployment without having to worry about servers. Trouble is, while that might technically be true, you’re trading in one set of problems for another. There’s no one size fits all “how to deploy your app to Heroku” guide but there are a few tips you can follow that’ll at least get your in the right direction and help you think of things you might not have thought of.

Read on

MySQL Cheat Sheet

MySQL is my production database of choice but I always forget a few commands like how to create new users and managing permissions for those users. That’s why I’m publishing my own personal MySQL cheat sheet that covers everything from creating new databases to managing users and permissions. I still haven’t switched over to MariaDB yet but seeing how it’s a drop-in replacement for MySQL this cheat sheet should work for MariaDB as well (their APIs are compatible, MariaDB just has more optimized internals). So here’s a MySQL cheat sheet. Enjoy.

Read on