Monday, August 29, 2016

Watch: Hidden costs in Java

Once an empty class file is compiled, how many methods are there? 0, 1, 2? There's at least the default constructor.

Knowing how many methods the Java and Android is important because there is a dex method limit of 64k. Nested classes (including anonymous classes) add addition hidden methods too.

Watch here:

 - Danial Goodwin -

Sunday, March 6, 2016

Video: Clean Architecture (a philosophy, not just the chart)

Great examples for how to build the architecture for a program and what really matters. The use case and business logic can be more important than the tools used.

The first five minutes or so can be skipped without loss.

Clean Architecture by Robert C. Martin

Thursday, February 4, 2016

Read: Social Engineering Amazon In Action

You can be very secure with your details. If you use third-party services, then you just might have opened backdoor access to your information.

Thursday, January 28, 2016

Video: Apache Samza (Kappa Architecture)

Newest big programming topic to me: Kappa Architecture

It's been around for a long time, and it's about time I jump on board. Streams everywhere.

"Turning the database inside out with Apache Samza" by Martin Kleppmann

Friday, January 22, 2016

Video: Dynamic Typing > Static Typing?

A must-watch for anybody that's interested in type systems or thinking about programming language design. Then, the comments after the article are a great read for more views.

Dynamic Typing > Static Typing?

Thursday, January 21, 2016

Wednesday, January 20, 2016

Java Puzzler

I thought I already knew about Java's static and dynamic binding rules, but after trying this code snippet, I had to learn a few more things. Looks like those binding rules don't actually cover arguments and parameters.

public class Test {

    private static int count = 0;

    public boolean equals(Test testje) {
        System.out.println("count = " + count);
        return false;

    public static void main(String [] args) {
        Object t1 = new Test();
        Object t2 = new Test();
        Test t3 = new Test();
        Object o1 = new Object();

        ++count; t1.equals(t2);
        ++count; t1.equals(t3);
        ++count; t3.equals(o1);
        ++count; t3.equals(t3);
        ++count; t3.equals(t2);


Sunday, January 3, 2016

Code Intuitiveness

A test for intuitiveness. Ask a non-programmer what some code does.