yWorks yEd & UML Doclet

The core products of yWorks are the yFiles libraries for Java, .NET, and JavaScript which handle graph analysis, layout, and visualization. The libraries are enterprise-priced (thousands of dollars) but yWorks also offers some very interesting free tools. Aside from the yGuard bytecode obfuscator, these are all diagramming applications based on yFiles. yEd Graph Editor The … Continue reading “yWorks yEd & UML Doclet”

Jumping out of Java finally

The definition of the return statement in the current Java Language Specification (§14.17) features an innocuous-looking sentence: It can be seen, then, that a return statement always completes abruptly. Other statements that “always complete abruptly” include break (§14.15), continue (§14.16), and of course throw (§14.18). So what? Well, Java also has try-finally blocks (§14.20). As … Continue reading “Jumping out of Java finally”

Overview: Java versus C#

Today every programmer learns Java at school, but my university (where I walked uphill, both ways, barefoot, in the snow) had used C, Pascal, and Ada of all things. Later I went straight from C/C++ to C# when Microsoft released the .NET Framework. Eventually I also picked up Java on the side, after it had … Continue reading “Overview: Java versus C#”

Effective Java & Pro JavaFX 2

Effective Java — Joshua Bloch, Addison-Wesley 2008 (2nd ed.), ISBN 978-0-321-35668-0 (The third edition of this book is now available and covered by an updated review.) Pro JavaFX 2 — James L. Weaver et al., Apress 2012, ISBN 978-1-4302-6872-7 With most JavaFX literature still based on version 1, this is the first comprehensive title for … Continue reading “Effective Java & Pro JavaFX 2”

Referrer Filter Released

The new Referrer Filter utility, or ReferFilter for short, is the result of my efforts to get a realistic idea of legitimate traffic from my server logs. ReferFilter is a small Java command-line program that reads a server log from stdin, checks the entries against a referrer whitelist, and produces a filtered log on stdout, … Continue reading “Referrer Filter Released”

Core Java & Well-Grounded Java

Core Java, Volume I: Fundamentals — Cay S. Horstmann & Gary Cornell, Prentice Hall (Oracle) 2012 (9th ed. for Java SE 7), ISBN 978-0-13-708189-9 Core Java, Volume II: Advanced Features — Cay S. Horstmann & Gary Cornell, Prentice Hall (Oracle) 2013 (9th ed. for Java SE 7), ISBN 978-0-13-708160-8 These books have been superseded by … Continue reading “Core Java & Well-Grounded Java”

Disabling the Java Browser Plugin

Oracle keeps shipping a web browser plugin with its Java Runtime Environment (JRE), even though it’s a notoriously useless malware magnet (see below). Most legitimate Java client applications found on the Internet today are intended for offline installation. These often come bundled with a private JRE, and always completely ignore the browser plugin. So the … Continue reading “Disabling the Java Browser Plugin”

Avoiding the Java Client VM

When Java applications perform poorly on Windows, Java developers blame Windows and Windows developers blame Java. But most likely, the actual cause is using the wrong virtual machine. Oracle ships two VMs for 32-bit platforms, called Client VM and Server VM, and Windows defaults to the slower one. My new article on Java Client VM … Continue reading “Avoiding the Java Client VM”

Robert Sedgewick’s Algorithms

Algorithms — Robert Sedgewick and Kevin Wayne, Addison-Wesley 2011 (4th ed.), ISBN 978-0-321-57351-3 This single volume replaces Sedgewick’s two-volume classic Algorithms in C/C++/Java (long among my favorite programming books), now without the language designator since Java is used exclusively. The associated booksite offers a chapter overview, excerpts from the printed text, dynamic visualizations, some exercise … Continue reading “Robert Sedgewick’s Algorithms”

Myriarch Implementation Notes

As there is currently no proper PDF manual for Myriarch, here are some noteworthy implementation details. This post originally covered the .NET version (released 09/2012) but has been revised for the new Java version (released 06/2017). Unit Orders The core simulation uses the QuadTree class of my Tektosyne library to locate units and their neighbors. … Continue reading “Myriarch Implementation Notes”