Architecting the human interface
The answer to this question has ended friendships, ruined relationships and lives. OK maybe not, but I am certain for the friendship parts. Just like people call themselves PC or Mac, the mobile industry has found a way to segregate us once more. We have the iPhone people, and the Android people. There are no Windows people, sorry. (Just like there are no Linux people)
A couple times a months, I play call of duty online. It is fascinating that when you are really into the game, you forget that the people you are playing with are no where near you. They could be thousands of miles away yet, playing the game feels instantaneous.
After the hello world application, the logical step for a beginner is to learn to build a CRUD. CRUD stands for Create Read Update and Delete. It refers to an application that can perform each of those tasks the name implies. The term is also often used to say a project is too simple, it's just a CRUD app. Most applications on the web do just that and after so many years of working as a web programmer, I can assure you that it is not so simple.
One of the things that get usually ignored on a server is the firewall. A firewall is a security measure to block all unwanted connections. Unfortunately, the rules are written in gibberish. That's how I felt every time I had set up a new server. I have to search through multiple tutorials to find the right values to add to my settings. This is my attempt to document as much as possible so I can come back here to refresh my mind, and you can help yourself too of course.
When you follow a CSS tutorial, you are presented with the simplest situations possible. When you want to change the color to a paragraph, write some pseudo code including `color: red` and the color changes to red. This is simple enough. However the moment you start creating styling for a whole website, you realize that things don't work the way you want them too. Sometimes you set a color to white, but it shows black. Other times, no matter how much you try, any of the styles you are applying simply refuse to work.
When was the last time you needed to buy a new PC? Two years ago? Three years ago? The last PC I built was in 2009. I had to upgrade because I pushed the previous one I built to the limit and that was in 2004. A 2009 desktop is old in computer years, but not so much in processing power. It maybe true that there are a zillion new processors out in the market and their benchmark show exponential improvement. But to me benchmarking is just a marketing gimmick. PC sales are plunging but they are the wrong indicator to determine the advancement of the technology. The reason we are not buying PCs anymore is because those we have are already pretty amazing.
There are a lot of tools I built throughout the years and it was very hard to watch them die (or get neglected). I once posted a new project on reddit and received a lot of good feedback. The comments that gave me most hope were the ones that said: If you add _X_ and _Y_ features I will definitely pay for it.
Tip of the day
Every little corner has a story. Sometimes a camera tells the story and a picture is worth a thousand words.
There are professional photographers and then there is me who happens to have a camera on my phone. Here's to what came out.