“Abstraction is the elimination of the irrelevant and the amplification of the essential”
—Robert C. Martin, Agile Principles, Patterns, and Practices in C#
Rob Pike’s 5 Rules of Programming
Rule 1. You can’t tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don’t try to second guess and put in a speed hack until you’ve proven that’s where the bottleneck is.
Rule 2. Measure. Don’t tune for speed until you’ve measured, and even then don’t unless one part of the code overwhelms the rest.
Rule 3. Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don’t get fancy. (Even if n does get big, use Rule 2 first.)
Rule 4. Fancy algorithms are buggier than simple ones, and they’re much harder to implement. Use simple algorithms as well as simple data structures.
Rule 5. Data dominates. If you’ve chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.
A bit more can be found at the source here: http://users.ece.utexas.edu/~adnan/pike.html
In my experience, I’ve come across Rule 1 enough times to know how to avoid the lesser obvious bottlenecks (which for me generally focus on data merging). I’ve definitely come across Rule 4. Rule 5 trumps them all, as it were. A deep understanding of the appropriateness of data structures is core to good code. Rules 2 and 3 don’t generally impact my day-to-day programming.
Via Hacker News, which I’m sure will lead to a killer comments thread.
“What this back-and-forth underscores is an inconvenient fact of life, and politics: It’s much easier to hold your principles in theory than in reality.”
—Boston Globe: “Even Republicans are upset at Ted Cruz for doing a 180 on hurricane relief”
HTML is the kind of thing that can only be loved by a computer scientist. Yes, it expresses the underlying structure of a document, but documents are more than just structured text databases; they have visual impact. HTML totally eliminates any visual creativity that a document’s designer might have.
— Roy Smith
HTML today is no different without CSS.
Just saw this on Ars Technica:
Flash will be supported through to the end of 2020, after which the Flash player will cease to be developed and distributed.
I’m not going add anything of value here other than to echo what I think a lot of other people are going to say: Good fucking riddance. Flash has been a thorn in my side for years now. They could get rid of it today and my world wouldn’t change one bit.
Pro tip: When using Excel as a poor man’s database, don’t use the cell color to highlight rows. Instead, add a column and populate each cell in that column with some meaningful value where needed. You can sort by column, but you can’t (easily as far as I know) sort by cell color. It’s a little extra work with a lot of utility.
That is all.
No, I have not started watching the new season of Game of Thrones.
No, I am not busy; I’ve had time. I’ve chosen to do other things with it.
I don’t know. Next week, maybe? Probably just before Verizon and HBO decide to charging me to watch episodes. How long is that? Two weeks?
Yes, you can talk about it in front of me. No, I don’t care.
No, I am not the person who reads the last pages of a book first. My life simply does not revolve around TV shows. I have other things that I do, too.