­

melreams.com

Nerrrrd

Mel Reams

This author hasn't added his/her bio.

Merry almost Christmas, everyone!

If you celebrate Christmas, here, have one of the very few Christmas carols I can listen to without wanting to run howling into the wilderness. And if you don’t celebrate Christmas, at least it’s almost over.      

Java best practices: synchronization

Java’s synchronization can be really helpful, but it can also get you into plenty of trouble. Synchonization is in no way a magic wand that you can wave around to get rid of multi-threading issues, you have to understand how to use it. In java (and many other languages, but java’s what I’m familiar with), synchronization prevents threads from accessing the same data at the same time. Concurrency (multiple threads sharing.. Read More

Degrees aren’t everything

A common worry I see in self-taught developers is that not having a degree means that you’re not a good programmer and no one will hire you. I’m not going to lie, having a degree does make it easier to get an interview, but it in no way guarantees that everyone with a degree is a better programmer than everyone without. Here’s a fun fact about hiring developers: having a.. Read More

Cmder rocks!

Cmder is an awesome tabbed command line interface for windows. Unlike the regular windows console, cmder is resizeable, includes handy linux commands like grep, and uses a font that isn’t hideous. Honestly, while the other features are great, being able to resize the freaking window was one of the biggest selling points for me. It’s incredibly irritating to try to read a log in a window that’s only 80 characters wide.. Read More

Different languages are good for different things

As you learn to code and learn new programming languages you’ll often hear that different languages are good for different things. Technically you can do just about anything in any language, so for a long time that never meant much to me. Once you get past basic conditionals and loops, there actually are pretty major differences in how easy it is to do different things in different languages. Here’s a handy example:.. Read More

What the hell is using port 80?

Every time I need to figure out what process stole port 80 from my local server I have to look up the command again, so I’m going to share it here for my fellow windows users in hopes I’ll finally remember it :) From a command shell running as admin: netstat -anob Thanks as usual to stackoverflow, where the collective memory of nerds lives. And here’s another fun fact for windows.. Read More

Shitty hackathon!

Hackathons (and game jams) can be a lot of fun but there can also be a lot of pressure to build something that actually works and is good. Enter the stupid hackathon! The idea of a stupid hackathon is that you deliberately make something ridiculous and/or terrible. Suddenly the pressure is off and you can try stuff that you don’t know will work. A friend of mine heard about it and shared the idea,.. Read More

WordPress plugin of the day

A few weeks ago wordpress decided it didn’t feel like actually publishing my scheduled posts anymore. Technically I could’ve poured hours into figuring out exactly why wordpress was misbehaving but you know, part of being a senior dev is prioritizing :) Sometimes the five minute “install a plugin” fix is good enough. There are a bunch of plugins to fix the scheduled posts not actually posting issue, the one I chose is called.. Read More

Bridge design pattern

It’s design pattern time again! This time, let’s talk about the bridge design pattern. The bridge pattern is officially meant to “decouple an abstraction from its implementation so that the two can vary independently” which is just all kinds of helpful. The design patterns book has a lot of great ideas but they’re not always communicated especially clearly. That definition of the bridge pattern sounds an awful lot like the adapter.. Read More

Debugging tip of the day

loglevel=”TRACE” Alright, I guess I can give some details :) It’s amazing how helpful just turning up your log level can be when you’re working on a weird bug. If something you can’t immediately explain is happening, try turning up your log level. In java, where I have the most experience, it’s unusual to run your production logging at a level above warn or debug. Normally you wouldn’t want extremely verbose.. Read More