The Strange Art of Writing Release Notes

Software development is never just about writing code.  Programming is only a small part of the software development work.  The rest touches and intervenes with a whole lot of other areas – documentation, support, testing, marketing, and so on and so forth.  Recently, Slashdot ran this story on the art of writing release notes.  There are a couple of links from the story to this article on IEEE and this on TechCrunch.

These provide a lot to think about, at least for someone who wrote nearly 300 release notes just this year alone (yeah, we had to catch up on historical releases).

Defensive Programming : Object Calisthenics

I came across this nice and somewhat strongly opinionated video on Defensive Programming:

Marco Pivetta makes quite a few good points with I agree (and a few with which I disagree).  One thing that he mentioned though I haven’t heard about – Object Calisthenics.  Which turns out to be yet another set of rules and best practices for the object-oriented design and programming.  Here are the rules to get you started:

  1. Only One Level Of Indentation Per Method
  2. Don’t Use The ELSE Keyword
  3. Wrap All Primitives And Strings
  4. First Class Collections
  5. One Dot Per Line
  6. Don’t Abbreviate
  7. Keep All Entities Small
  8. No Classes With More Than Two Instance Variables
  9. No Getters/Setters/Properties

Read the whole article for explanations and examples.

Fungal Intelligence

With all the recent hype around artificial intelligence, this thing that I came across today is a breath of fresh air.  The subject is: fungal intelligence.  “WTF?”, I hear you ask.  Have a look at this tiny video:

Crazy, right?  Well, crazy enough to be found in this article at Nature.com.  And, how the heck did I end up there?  That’s the first link in the Google search results for “fungal intelligence”, which I had to look up after watching this video:

Fascinating stuff!

MySQL optimize, repair, and analyze

Years ago I had the following script running as a cron job, but then I lost it somewhere.  It took me a few minutes to find it again, but just in case I need it in the future, I’m saving it here.

#!/bin/bash
mysqlcheck --all-databases
mysqlcheck --all-databases -o
mysqlcheck --all-databases --auto-repair
mysqlcheck --all-databases --analyze

Found it here this time.

Nginx Performance Tuning – Tips & Tricks

Here are a whole lot of “Performance Tuning – Tips & Tricks” directly from the Nginx team.  I’m sure you’ve seen bits and pieces of these all over the place, but it’s nice to have them all together and from the credible source as well.