2017-10-21
Dear recruiter...
2017-10-01
Migrating a project from java 8 to java 9
Now that Java 9 is out, I decided to migrate to it my pet project, which is around 120K lines of java.
The first step is to just start compiling and running against jdk9, without using any of its features yet.
This is an account of the surprisingly few issues that I encountered during this first step and how I resolved them.
Issue #1: Object.finalize() has been deprecated.
2017-09-26
A Hacker's Tale (With a Human Side)
2017-07-17
Grumpy Posts
Here is a list of them:
On JUnit's random order of test method execution
On UUIDs and GUIDs
On scripting languages
Why Oracle sucks
The GWX (Get Windows 10) KB3035583 trojan horse
"By using this site, you agree to the use of cookies."
2017-07-12
Rich Hickey - Simple Made Easy
My notes on the presentation:
"Simplicity is prerequisite for reliability" - Edsger W. Dijkstra
Simple vs. Complex, Easy vs. Hard
2017-06-18
What is wrong with UUIDs and GUIDs
Introduction
Universally Unique Identifiers (UUIDs) otherwise known as Globally Unique Identifiers (GUIDs) are 128-bit numbers that are often used to identify information. In its canonical representation, a UUID looks like this: 2205cf3e-139c-4abc-be2d-e29b692934b0.
The Wikipedia entry for Universally Unique Identifier (⬀) says that they are for practical purposes unique and that while the probability that a UUID will be duplicated is not zero, it is so close to zero as to be negligible. Wikipedia then does the math and shows that if 103 trillion UUIDs are generated, the chance of duplication among them is one in a billion.
Despite the infinitesimally small chances of receiving a duplicate UUID, there exist programmers out there who are afraid of this actually happening, and who will not hesitate to suspect duplicate UUIDs as being responsible for an observed malfunction rather than first look for a bug in their code. Clearly, these folks do not understand the meaning of infinitesimally small chance, so let me try to explain it:
Infinitessimally small chance means practically impossible to happen, and the practically part is only mentioned for scientific correctness: practically, you can disregard the word practically and consider it as simply impossible to happen.
Great. Now, let me tell you why I hate UUIDs.
2017-06-16
6 videos from TechSummit Amsterdam 2017 (Jun 1st)
2017-06-03
My notes on the Fielding Dissertation (REST)
Roy Thomas Fielding is: chief Scientist in some tech company; Chairman, Apache Software Foundation; Visiting Scholar, W3C @ MIT CS Lab; etc; Publications, Honors, Awards, Fellowships etc. Involved in the authoring of the Internet standards for the Hypertext Transfer Protocol (HTTP) and Uniform Resource Identifiers (URI).
"The World Wide Web has succeeded in large part because its software architecture has been designed to meet the needs of an Internet-scale distributed hypermedia system."
"In order to identify [...] aspects of the Web that needed improvement and avoid undesirable modifications, a model for the modern Web architecture was needed to guide its design, definition, and deployment."
(So, he admits the need to build a model after the fact.)
"An architectural style is a named, coordinated set of architectural constraints."
2017-05-23
YouTube: Roy T. Fielding: Understanding the REST Style
2017-05-20
On scripting languages
Foreword
Historically, the difference between scripting languages and real programming languages has been understood as the presence or absence of a compilation step. However, in recent decades the distinction has blurred; from time to time we have seen:
- Interpreters for languages that were originally meant to be compiled.
- Compilers for languages that were originally meant to be interpreted.
- Scripting engines internally converting source code to bytecode before interpreting it.
- Real languages compiling to bytecode which is then mostly interpreted and rarely converted to machine code.
So, compiled vs. interpreted does not seem to be the real differentiating factor; nonetheless, we can usually tell a scripting language when we see one. So, what is it that we see?