APIs should be easy to use and hard to misuse. It should be easy to do simple things; possible to do complex things; and impossible, or at least difficult, to do wrong things.

APIs can be among your greatest assets or liabilities. Good APIs create long-term customers; bad ones create long-term support nightmares.

Joshua Bloch

Joshua Bloch: Bumper-Sticker API Design
In this article, Joshua Bloch, head of Java on Google and former Distinguished Engineer at Sun Microsystems, presents a list of maxims intended to be a concise summary of good API design guidelines. The maxims represent the abstract written by Joshua for his session “How to Design a Good API and Why it Matters” held during JavaPolis 2006.

Bitcoin style Blockchain permanently store every transaction to ensure verifiability. Now Bitcoin blockchain has already surpassed 40GB in size, growing at an exponential rate. If nothing is done, it will certainly "collapse under its own weight".

Yottabytes of storage in your iPhone 29++, virtually unlimited bandwith to download, faster than light computing … Moore's Law is great, but Murphy's Law supersedes everything:

Everything what can go wrong will go wrong.

The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination.

Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures.

Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.

Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.

Fred Brooks – Wikiquote
Frederick Phillips Brooks, Jr. (born April 19, 1931) is a computer architect, software engineer, and computer scientist, most famous for managing the development of IBM’s System/360 Computer family hardware and then OS/360, then later writing candidly about the process in his seminal book The …

Good Design is design that leads to simplicity in implementation and maintenance, and makes it easy to understand the code.

Embedded Link

Code Simplicity » What Is Overengineering?
Software developers throw around this word, “overengineering,” quite a bit. “That code was overengineered.” “This is an overengineered solution.” Strangely enough, though, it’s hard to find an actual definition for the word online! People are always giving examples of overengineered code, …

Just last year Grunt was effectively dethroned by Gulp. And now, just as Gulp and Browserify are finally reaching critical mass, Webpack threatens to unseat them both. Webpack offers enough power out of the box that you typically don’t need Grunt or Gulp at all.

Build tooling shouldn’t require a custom build from the ground up. It should provide customization points that allow you to handle the few things that make you truly unique.

Browserify vs Webpack
If you need a cabin, why start
with a mere pile of logs?

Collection.toArray(new T[0]) or Collection.toArray(new T[size]), that's the question.

Arrays of Wisdom of the Ancients
The Java Language and JDK Class Library have two distinct, yet connected, ways to group elements: arrays and Collections. There are pros and cons for using either one, so both are prevalent in real programs. To aid conversion between the two, there are standard methods to make a reference array …