Want to install GraalVM on OSX? It's easy. First, get SDKMan. Trust me. You want it. Almost as much as brew, if you're doing anything with the JVM. You'll want to install bash - via brew - because SDKMan uses bash and the OSX bash shell is badly outdated. Once you have SDKMan installed and… Continue reading Installing GraalVM on OSX with SDKMan
Things I'm learning about, on this day of verbs: "What metrics matter: A guide for open source projects" has a lot of good information. It's interesting.I get to buy a new Macbook charger today; my "old" one is giving out, I think, which is frustrating.Testcontainers looks like an interesting project. I may have to try… Continue reading Metrics, new Macbook charger, testcontainers
Things I may have learned recently-ish: Painting pottery is fun. I'm not very good at it. I apparently also have a thing for beer steins... out of which I drink coffee, because beer isn't very good in my opinion. But steins are also a LOT of coffee, so it's impractical to drink coffee from steins.Speaking… Continue reading Art, JDBC, coffee, JSoup, Gradle, Hallelujah, Resetting
Things I have learned recently: People still don't really get JNDI, and the Java frameworks around today make it easy to ignore, even though it's still a core technology. It's not difficult to see how it can be confusing: context in JNDI is everything, and context makes it a challenge to create examples that make… Continue reading JNDI
Things I think I've learned today: Blogs are so yesterday, man. It's probably the medium and platform I've chosen - I don't use Medium, for example, although I have an account there - and I don't publish often enough, or with enough direct focus, to really attract users, because I'm really not trying to build… Continue reading Blogs are so eh
I've recently put together a new Maven archetype, based on something I saw in Freenode's ##java channel a few weeks ago. Basically, someone had built their own archetype for "standard projects," with a few sensible dependencies and defaults, and while I thought it was a worthwhile effort, it didn't fit what I found myself typically… Continue reading A New Maven Archetype for Starter Project
Grappa is a parser library for Java. It's a fork of Parboiled, which focuses more on Scala as a development environment; Grappa tries to feel more Java-like than Parboiled does. Grappa's similar in focus to other libraries like ANTLR and JavaCC; the main advantage to using something like Grappa instead of ANTLR is in the… Continue reading A Simple Grappa Tutorial
I still prefer Java over other languages. The Background: Javabot I'm a fairly regular contributor to javabot, an IRC bot written for the Freenode ##java channel. I don't know that I'd be considered a major contributor (I'm not listed in the credits, for example, so maybe I do know - and I'm not a major… Continue reading I still prefer Java.
Test-driven development is, loosely defined, a practice in which tests are written before anything else, without regard to correctness. For example, if I want to write a program to generate "Hello, world," I would write a test that validated that "Hello, world" was generated - before I had anything that might create the output. When my tests pass, I know I've "finished," because my tests define a specification. By having tests in place, though, not only do I have a record of the specification, but I also have a way that I can add to the specification in such a way that I know I'm not breaking code - I would simply add more tests that corresponded with the changing specification, and I will know if my changes break other code. Here's the thing: I wrote the Java implementation using test-driven development practices (TDD), and the automaton is kinda neat; TDD also provided me the opportunity to fix the names of structures (renaming `Dataset` to `Generation`, for example) because the tests made it obvious that the names were inaccurate. However, seeing the differences in the development process between my Python implementation and the Java implementation, I might look into TDD with Python anyway.
OWL is a language used to describe ontologies - systems of knowledge. It's found primarily in the Semantic Web, which mostly means "hardly anywhere," and part of the problem is that using OWL is really pretty difficult. You can find plenty of technical language, but very little that describes how and why you'd actually use… Continue reading An Incomplete Introduction to OWLAPI