Random Notes

The following are random ideas, quotes, or thoughts that I have come across.

Choices

The obvious choice isn't always the best choice, but sometimes, by golly, it is.

Programming

I used to be an architect before I became a programmer, so since I started programming I noticed I hag a big advantage over my peers when it comes to the high level designing and structuring a program.

Thing is, the more experienced I become at programming, the less of that I end up doing. I more and more tend to break everything down into tiny parts that can all work independently and be composed into bigger bits. Most of my career I've used OO languages, especially C#, but nowadays I usually avoid using a lot of the features of OO, like inheritance, and just try and make everything from tiny little methods (functions) big things are just made from several of those methods in sequence and really big things are just made from several of the big ones.

From a development perspective it means I can just go ahead and start writing useful little snippets of code and start composing them together into bigger and bigger features as I go. So, I'm switching from a top-down style to more of a bottom-up one.

“Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.”

-Donald Knuth

Under the immense time pressures of industrial software development, developers are heeding one part of Knuth’s advice: they are avoiding premature optimisation. Indeed, developers appear to be avoiding optimisation altogether and neglecting the “critical 3%".

-Darwinian data structure selection

C is a fantastic low-level systems language which is well-suited for non-concurrent applications. Rust has the potential to become a fantastic low-level systems language which is well-suited for concurrent applications. Unfortunately the different domain means Rust is going to be more complicated.

-/u/PracticalCartoonist, post on /r/CProgramming

Technology

Arguments about medium always compare the best of the old to the worst of the new. See previously, books vs. TV, and before that, oral story tradition vs books.

It is a way now, approximately, of being at home. The forum has become one of the most consistent places in her life, like a familiar café that exists somehow outside of geography and beyond time zones.

The United States

Today the United States is at once a hypermodern society in its embrace of the contemporary free-market system, but an antiquarian society in leaving it to families and other community institutions to address the problems the system creates. Seen from a Nordic perspective, the United States is stuck in a conflict, but it’s not the conflict between liberals and conservatives, or between Democrats and Republicans, and it’s not the old debate about bigger government versus smaller government. It’s the conflict between the past and the future. Much of America’s government does look ridiculously bloated and intrusive in all the wrong ways for modernity. The way the United States government micromanages society with case-by-case policies, and hands out uniquely tailored gifts left and right to special interests, strikes a Nordic as a clearly outdated way to govern. And whether the United States wants to admit this to itself or not, staying stuck in the past is putting itself at an ever-increasing disadvantage in the world.

Work

Imagine your mind like your desk. Every morning it's empty. (Usually) You wake up you load it up with all sorts of crap to entertain yourself, social media, Reddit, hacker news etc, etc.

By the time you get to work, there is no place to put work stuff on that desk. You try to put work stuff on it, but pretty much the whole desk is filled with Twitter/Tumblr/Facebook shit. So even if you make some space for the work stuff, sooner or later you focus on Tumblr again. Work stuff gets pushed out.

Generally in my case, by 2PM I manage to clear out all the distracting stuff and get focused. The solution was this: BORE YOURSELF at every available opportunity.

When I start my morning, I refused to pick up my phone and check out social media (usually I would take a 45 minute dump just catching up on stuff posted last night). Sure my morning chores became a bit boring, but I also became more efficient (I started getting to work sooner).

Basically, by the time I get to my desk, I am so bored that the most interesting thing I can do is work. And my work (programming) is a very interesting task, it used to keep me engaged for hours and hours, it's just that Social Media defeated it.

I do check social media. I check it around 2PM after my standup. That 'impulsive' desire to constantly check it is gone. I catch up on all the social media in the evening or at night (but it doesn't create that compulsive pattern anymore.

End result: My productivity has gone up by 5-6 times. I have a performance enhancement story to work on and I managed to fix 6-7