As a manager, one of the trickiest situations to handle is when you and a team member clash over a technical or business issue. What do you do? Do you override them, at risk of crushing their motivation? Do you get into a heated argument? Do you let them go their own way, only to silently stew as you watch them screw up the project? Do you give some mealy-mouthed suggestion, e.g. “I feel like we would be better off if you did it this way…”? This predicament also arises when arguing with peers or supervisors.
Dynamic languages lack the IDE intellisense that tells us the type of every variable. Thus it is necessary to choose variable names that allow future readers of the code to unambiguously determine the type and contents of the variable.
Your phone buzzes with the server alert ring-tone. The director of customer support taps you on the shoulder: "Um, it looks like we're down." Not a single screen in your web app loads. You attempt to SSH into your server but connecting takes for...ev...er. Finally you connect to the shell and see the CPU pegged at 100%. You tail the access logs, but nothing looks fishy. Site traffic is normal. Frantic and desperate, you reboot the server. The server comes back up ... but immediately the CPU spikes back to 100%.
For the many years, the requirements of my job forced me to use Windows for working on parts of our code base. When working in Windows, I dearly missed the tools of a unix environment (ls, grep, the shell, etc). But over the years I've figured out a bunch of hacks that make using Windows a lot more tolerable. Here they are: