crush depthAtom feed2024-01-07T11:32:20Zblog@io7m.com2024-01-07T11:32:20ZConsistent Environments In Stable Diffusionblog@io7m.com2024-01-07T11:32:20Z2024-01-07T11:32:20ZI've been working
with "Stable Diffusion" (https://en.wikipedia.org/wiki/Stable_Diffusion)
lately.
One acknowledged "problem" with these kinds of text-to-image systems is that
it's difficult to generate consistent subjects and/or background environments
b...blog@io7m.com2024-01-07T11:32:20ZNew PGP Keysblog@io7m.com2024-01-01T16:32:45Z2024-01-01T16:32:45ZIt's that time of year again.
Fingerprint | Comment
---------------------------------------------------------------------------
E362 BB4F 16A9 981D E781 2F6E 10E4 AAD0 B00D 6CDD | 2024 personal
37A9 97D5 970E 145A B9D...blog@io7m.com2024-01-01T16:32:45ZBatch Files Are Not Your Only Optionblog@io7m.com2023-11-27T18:56:12Z2023-11-27T18:56:12ZA "while ago" (/2023/11/10/batch-files-are-your-only-option.xhtml) I got into
a fight with "jpackage" (https://docs.oracle.com/en/java/javase/21/docs/specs/man/jpackage.html).
Long story short, I concluded that it wasn't possible to use "jpackage" to
produ...blog@io7m.com2023-11-27T18:56:12ZVulkan Memory Allocation (Part 1 of N)blog@io7m.com2023-11-18T13:09:33Z2023-11-18T13:09:33ZI've recently been looking into the allocation of device memory in
"Vulkan" (https://vulkan.org/). It turns out there's a lot of complexity around
balancing the various constraints that the API imposes.
Device Memory
Vulkan has the concepts of device memo...blog@io7m.com2023-11-18T13:09:33ZTo Fastmailblog@io7m.com2023-11-11T15:05:57Z2023-11-11T15:05:57ZI'm shutting down my mail server and moving to
"fastmail" (https://www.fastmail.com). If everything works correctly, nothing
should appear to be any different to the outside world; all old email addresses
will continue to work.blog@io7m.com2023-11-11T15:05:57ZBatch Files Are Your Only Optionblog@io7m.com2023-11-10T20:59:49Z2023-11-10T20:59:49ZEdit: This is "wrong" (/2023/11/27/batch-files-are-not-your-only-option.xhtml).
Wasted a day getting aggravated at the options for producing per-platform
distributions for Java applications.
I have lots of applications. None of them are platform-specific...blog@io7m.com2023-11-10T20:59:49ZJDK 21blog@io7m.com2023-10-14T20:11:30Z2023-10-14T20:11:30ZLike many people, I've been waiting for "JDK 21" (https://jdk.java.net/21/)
for a long time. Now that "Eclipse Temurin" (https://adoptium.net/) has
JDK 21 builds, I'm finally now starting the push to upgrade all of my projects
to JDK 21.
Primarily, I'm in...blog@io7m.com2023-10-14T20:11:30ZJourney To The ... Earthblog@io7m.com2023-03-11T16:09:24Z2023-03-11T16:09:24ZI bought a "Yamaha Pacifica PAC120H" (https://uk.yamaha.com/en/products/musical_instruments/guitars_basses/el_guitars/pacifica/pac_100.html)
a while back. I wanted a guitar that I could use as a testbed
for hardware experiments. Ideally, an inexpensive gui...blog@io7m.com2023-03-11T16:09:24ZNew PGP Keysblog@io7m.com2023-01-01T14:13:30Z2023-01-01T14:13:30ZIt's that time of year again.
Fingerprint | Comment
---------------------------------------------------------------------------
A438 A737 C771 7871 95CF C166 F843 51F7 2C91 8476 | 2023 personal
62AB 091D 563E 51BE 9E5...blog@io7m.com2023-01-01T14:13:30ZBoot Configblog@io7m.com2022-01-31T10:27:09Z2022-01-31T10:27:09ZDid a pile of server updates today, and for some reason one specific VPS
refused to boot with this error:
"Boot error" (/2022/01/31/booterror.png)
It turned out I hadn't updated the boot code to handle the latest zpool
version. There's a note about this ...blog@io7m.com2022-01-31T10:27:09ZNew PGP Keysblog@io7m.com2022-01-01T13:33:22Z2022-01-01T13:33:22ZIt's that time of year again.
Fingerprint | Comment
---------------------------------------------------------------------------
2680 A50E FD03 2007 FABE 8C87 B0E4 322E EE81 8BDE | 2022 personal
3CCE 5942 8B30 462D 104...blog@io7m.com2022-01-01T13:33:22ZCold Spot ABSblog@io7m.com2021-10-18T18:51:46Z2021-10-18T18:51:46ZI'm attempting to print a part like this:
""Part" (/2021/10/18/thumb_part0.png)" (/2021/10/18/part0.png)
The part must be printed in the orientation shown due to the anisotropic
properties of 3D printed parts: The part needs to be printed such that the
p...blog@io7m.com2021-10-18T18:51:46ZUsing Changelogblog@io7m.com2021-05-28T10:14:41Z2021-05-28T10:14:41ZInstallation
All of this is in the "documentation" (https://www.io7m.com/software/changelog/documentation/d2e49.xhtml),
but here's a friendly version.
First, grab the "changelog" (https://www.io7m.com/software/changelog/) "jar"
file and wrapper script. At...blog@io7m.com2021-05-28T10:14:41ZNew PGP Keysblog@io7m.com2021-01-01T11:28:08Z2021-01-01T11:28:08ZIt's that time of year again.
Fingerprint | Comment
---------------------------------------------------------------------------
2C83 11D5 E344 626A E76E B866 CB39 C234 E824 F9EA | 2021 personal
B32F A649 B192 4235 A6F...blog@io7m.com2021-01-01T11:28:08ZProtocol Versioningblog@io7m.com2020-12-15T13:30:48Z2020-12-15T13:30:48ZBeen thinking about protocol versioning recently, and this post is more or
less an attempt to organize my own thoughts on the matter.
Protocol Versioning is what it sounds like... Much like software has version
numbers to track changes over time, protocol...blog@io7m.com2020-12-15T13:30:48ZeSun ABSblog@io7m.com2020-11-01T18:15:10Z2020-11-01T18:15:10ZOrdered and received some "eSun ABS" (http://esun3d.net/products/382.html).
I must admit, I was expecting a fight. If you look on the internet regarding
the printing of various filaments, you'll find page after page describing
ABS warping, cracking, and o...blog@io7m.com2020-11-01T18:15:10ZEryone PETG (Part 3)blog@io7m.com2020-10-31T19:59:19Z2020-10-31T19:59:19ZSee "Part 1" (/2020/10/30/eryone-petg.xhtml), and
"Part 2" (/2020/10/31/eryone-petg-2.xhtml) first!
Success!
""Boats" (/2020/10/31/boats_thumb.jpg)" (/2020/10/31/boats.jpg)
It seems that the issue was printing with a "0.3mm" layer height. There's
simply...blog@io7m.com2020-10-31T19:59:19ZEryone PETG (Part 2)blog@io7m.com2020-10-31T10:49:20Z2020-10-31T10:49:20ZSee "Part 1" (/2020/10/30/eryone-petg.xhtml) first!
I realized I never checked to see if the extruder was actually consuming
"10mm" of filament each time it asked for "10mm". In other words, I never
calibrated the "extrusion multiplier" (https://www.help....blog@io7m.com2020-10-31T10:49:20ZEryone PETGblog@io7m.com2020-10-30T13:24:48Z2020-10-30T13:24:48ZI'm relatively new to 3D printing, so I don't have an intuitive understanding
of what to expect from various materials. I'm going to start documenting the
various materials each time I try a new one. Unfortunately, my testing methodology
won't be all that ...blog@io7m.com2020-10-30T13:24:48ZTukkari Enclosureblog@io7m.com2020-10-28T11:40:20Z2020-10-28T11:40:20ZFor 3D printing, I want to print with more challenging materials than the
standard "PLA" (https://en.wikipedia.org/wiki/Polylactic_acid) filament.
Materials such as "PETG" (https://en.wikipedia.org/wiki/Polyethylene_terephthalate)
benefit from the increase...blog@io7m.com2020-10-28T11:40:20ZPrusa i3 MK3Sblog@io7m.com2020-09-12T19:24:34Z2020-09-12T19:24:34ZRecently decided to start learning about 3D printing. Ordered a Prusa i3 MK3S
kit a few weeks ago, and it arrived a couple of days ago. The packaging
and documentation was excellent, and the print results essentially flawless.
""Packaging" (/2020/09/12/DS...blog@io7m.com2020-09-12T19:24:34ZHeavy Water Stationblog@io7m.com2020-09-11T19:24:34Z2020-09-11T19:24:34Z""Heavy Water Station" (/2020/09/11/heavywater.jpg)" (https://github.com/io7m/com.io7m.visual.heavywater)
"Source" (https://github.com/io7m/com.io7m.visual.heavywater)blog@io7m.com2020-09-11T19:24:34ZNexus At Library Simplifiedblog@io7m.com2020-08-26T10:37:50Z2020-08-26T10:37:50ZGave a presentation at the "Sonatype User
Conference" (https://www.sonatype.com/nexus-user-conference-2020)
back on "2020-08-12" on how the "Library
Simplified" (https://www.librarysimplified.org) project uses
"Maven Central" (https://search.maven.org/) an...blog@io7m.com2020-08-26T10:37:50ZThe Sleep Of The Engineerblog@io7m.com2020-08-23T18:49:14Z2020-08-23T18:49:14Z""The Sleep Of The Engineer" (/2020/08/23/engineer.jpg)" (https://github.com/io7m/com.io7m.visual.engineer_sleep)
"Source" (https://github.com/io7m/com.io7m.visual.engineer_sleep)blog@io7m.com2020-08-23T18:49:14ZJDK Support Range Changeblog@io7m.com2020-07-28T11:35:49Z2020-07-28T11:35:49ZI'm considering changing the range of JDKs I support.
Right now, I specify JDK "11" as the target bytecode level. That is,
you require at least JDK "11" to run any code I write. I specify the
range of allowed compiler versions as "[11, 14]". That is, you...blog@io7m.com2020-07-28T11:35:49ZMAC Address Conflicts Hurtblog@io7m.com2020-07-27T16:46:24Z2020-07-27T16:46:24ZI've been running a server on my LAN here for a couple of years. This
week, I built a new machine and am in the process of trying to migrate
to the new hardware.
However, something odd happened... With an SSH connection open to the
old server ("cranberry"...blog@io7m.com2020-07-27T16:46:24ZThe Vanishing Path 1blog@io7m.com2020-03-19T09:56:21Z2020-03-19T09:56:21Z""The Vanishing Path 1" (/2020/03/19/VanishingPath1.png)" (https://github.com/io7m/com.io7m.visual.vanishing_path1)
"Source" (https://github.com/io7m/com.io7m.visual.vanishing_path1)blog@io7m.com2020-03-19T09:56:21ZNew PGP Keysblog@io7m.com2020-01-01T14:55:38Z2020-01-01T14:55:38ZIt's that time of year again.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Fingerprint | Comment
- -------------------------------------------------------------------------
E369 81ED 130D B4F6 8D42 0248 BBFF DB75 ...blog@io7m.com2020-01-01T14:55:38ZDimenecblog@io7m.com2019-12-30T08:19:51Z2019-12-30T08:19:51Z""Dimenec" (/2019/12/30/dimenec0.jpg)" (https://github.com/io7m/v-dimenec)blog@io7m.com2019-12-30T08:19:51ZOSGi, Maven, and IDEA: Instant Code Reloadingblog@io7m.com2019-05-16T08:19:51Z2019-05-16T08:19:51ZIn a recent post to the "bndtools-users" mailing list, I
expressed a bit of frustration with my experience of trying out
"Bndtools" (https://bndtools.org/) for what I think must be about
the fourth time. Jürgen Albert had mentioned on the "osgi-dev"
list t...blog@io7m.com2019-05-16T08:19:51ZUnbolted Frontiersblog@io7m.com2019-03-14T17:31:42Z2019-03-14T17:31:42ZIn the past couple of years, I've gotten back into composing music
after a fifteen year break. I had originally stopped making music
without any expectation that I'd ever do it again. Making music
had become extremely stressful due to two factors: economic...blog@io7m.com2019-03-14T17:31:42ZNew PGP Keysblog@io7m.com2019-01-01T17:18:12Z2019-01-01T17:18:12ZIt's that time of year again.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Fingerprint | Comment
- ------------------------------------------------------------------------
E379 5957 1613 1DB4 E7AB 87DD 67B1 8CC1 F...blog@io7m.com2019-01-01T17:18:12ZA Low Budget Render Farmblog@io7m.com2018-12-19T21:46:44Z2018-12-19T21:46:44ZI do a bit of 3D rendering now and then using
"Blender" (https://www.blender.org). Blender has multiple rendering
engines: Blender Internal and Cycles. Blender Internal is a
1990s style CPU-based raytracer, and Cycles is a physically-based
renderer that ca...blog@io7m.com2018-12-19T21:46:44ZCoffeePick Shipilev.net Edition!blog@io7m.com2018-12-02T16:40:42Z2018-12-02T16:40:42ZBig thanks to "Aleksey Shipilev" (https://shipilev.net/) for adding
file lists and sizes to "builds.shipilev.net" (https://builds.shipilev.net/)
so that "CoffeePick" (https://github.com/io7m/coffeepick) can efficiently
enumerate builds on the site.
A new ...blog@io7m.com2018-12-02T16:40:42ZLurking Between Releasesblog@io7m.com2018-11-23T13:29:07Z2018-11-23T13:29:07ZA while back, I talked about moving to the
"bndtools" (https://github.com/bndtools/bndtools) suite
of "Maven" (/glossary.xhtml#maven) plugins in preference to the
"Felix" (http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-b...blog@io7m.com2018-11-23T13:29:07ZChoosing Coffeeblog@io7m.com2018-11-18T13:38:47Z2018-11-18T13:38:47ZNow that "jlink" (https://docs.oracle.com/javase/9/tools/jlink.htm)
exists, it's become fashionable to bundle a JVM along
with your Java bytecode. In applications that use the
"JPMS" (http://openjdk.java.net/projects/jigsaw/spec/), the "jlink" tool
can cal...blog@io7m.com2018-11-18T13:38:47ZYou Cannot Put That Thereblog@io7m.com2018-11-01T14:45:44Z2018-11-01T14:45:44Z"Maven 3.6.0" (http://maven.apache.org) was released today. It
adds the ability to add a "child.inherit.append.path" attribute
to various places within a POM file to turn off Maven's automatic
appending of child module names to various paths. This has been...blog@io7m.com2018-11-01T14:45:44ZJava 11 and Maven 3.6.0blog@io7m.com2018-10-28T17:29:14Z2018-10-28T17:29:14Z"Java 11" (https://jdk.java.net/11/) is out, and is the current
"LTS" (https://www.oracle.com/technetwork/java/javase/eol-135779.html)
release (at least if you're using the Oracle JDK).
I'll be moving all of my code to start requiring JDK 11 at a minimum
...blog@io7m.com2018-10-28T17:29:14ZNo More OpenGLblog@io7m.com2018-07-01T11:57:35Z2018-07-01T11:57:35ZI'm dropping "OpenGL" (/glossary.xhtml#opengl) in favour of "Vulkan" (/glossary.xhtml#vulkan).
No more broken drivers (probably). No more dealing with
source code level management of shader code at runtime (no more
"sombrero" (https://github.com/io7m/somb...blog@io7m.com2018-07-01T11:57:35ZMaven Central Signingblog@io7m.com2018-05-23T12:30:58Z2018-05-23T12:30:58ZA "while ago" (/2018/02/07/signing.xhtml) I started having a problem with
signature verification when trying to upload to "Maven Central" (http://search.maven.org).
After three months of intense debugging and a rather long conversation with
Sonatype, it t...blog@io7m.com2018-05-23T12:30:58ZCompeting Module Systemsblog@io7m.com2018-04-12T16:12:19Z2018-04-12T16:12:19ZIt's been about eight months since the release of "Java
9" (http://openjdk.java.net/projects/jdk9/).
I won't bore anyone with the details of everything it
introduced as that information is available just about
anywhere you care to look. The main thing it ...blog@io7m.com2018-04-12T16:12:19ZIPv6 And Linuxblog@io7m.com2018-02-23T19:29:33Z2018-02-23T19:29:33ZI wrote "a while back" (/2017/10/13/ipv6-and-mtu-woes.xhtml) about
issues with IPv6 on Linux. It turns out that most of the pain occurs
for two reasons:
1. Linux doesn't accept router advertisements by default. If
you configure your router to tell everyon...blog@io7m.com2018-02-23T19:29:33ZModule Chasingblog@io7m.com2018-02-23T15:27:14Z2018-02-23T15:27:14Z"https://github.com/io7m/modulechaser" (https://github.com/io7m/modulechaser)
"modulechaser" (/2018/02/23/modulechaser.jpg)
I'm trying to get to the point where all of my projects are fully
modularized as "JPMS" (http://openjdk.java.net/projects/jigsaw/s...blog@io7m.com2018-02-23T15:27:14ZLet's Encrypt For Woe And Lossblog@io7m.com2018-02-21T11:00:20Z2018-02-21T11:00:20ZIn a crippling bout of "sinusitis" (https://en.wikipedia.org/wiki/Sinusitis), and after
reading that "Chrome is going to mark http sites as insecure" (https://security.googleblog.com/2018/02/a-secure-web-is-here-to-stay.html),
I decided to put good sense a...blog@io7m.com2018-02-21T11:00:20ZCheckstyle Rulesblog@io7m.com2018-02-07T19:51:17Z2018-02-07T19:51:17ZI'm going to start making all projects use a common set of
"Checkstyle" (http://checkstyle.sourceforge.net/) rules rather than having
each project carry its own rules around. I can't remember exactly why
I avoided doing this in the beginning. I think it ma...blog@io7m.com2018-02-07T19:51:17ZChasing Modulesblog@io7m.com2018-02-07T10:53:42Z2018-02-07T10:53:42ZI've been moving all of the projects I still maintain to "Java 9
modules" (http://openjdk.java.net/projects/jigsaw/spec/). In order
to do this, however, I've needed to assist third party projects upon
which I have dependencies to either modularize their p...blog@io7m.com2018-02-07T10:53:42ZSigning Issuesblog@io7m.com2018-02-07T10:51:50Z2018-02-07T10:51:50ZI'm having trouble deploying packages to Maven Central. The repository
claims that it cannot validate the signatures I provide. I've filed
"a bug" (https://issues.sonatype.org/browse/MVNCENTRAL-3110) but haven't
gotten a response. I'm wondering if it's dow...blog@io7m.com2018-02-07T10:51:50ZNew PGP Keysblog@io7m.com2017-12-27T17:53:00Z2017-12-27T17:53:00ZNew "PGP keys" (http://io7m.com/#pgp) have been published.
Fingerprint | UID
-----------------------------------------------------------------------------------
B84E 1774 7616 C617 4C68 D5E5 5C1A 7B71 2812 CC05 | Mark...blog@io7m.com2017-12-27T17:53:00ZVerifying blog.io7m.com... Againblog@io7m.com2017-12-17T16:06:23Z2017-12-17T16:06:23ZSee the "the previous blog post" (http://blog.io7m.com/2017/12/17/verifying-content.xhtml):
$ gpg --recv-keys 8168DAE22B15D3EDC722C23D0F15B7D06FA80CB8
$ wget -r http://blog.io7m.com
$ cd blog.io7m.com
$ gpg < checksum.asc | sha512sum --check
Better.blog@io7m.com2017-12-17T16:06:23ZHow To Verify blog.io7m.comblog@io7m.com2017-12-17T14:43:09Z2017-12-17T14:43:09ZThis blog was designed to be verifiable:
$ gpg --recv-keys 8168DAE22B15D3EDC722C23D0F15B7D06FA80CB8
$ wget -r http://blog.io7m.com
$ find blog.io7m.com -name '*.asc' -exec gpg --verify {} \;
Note that the "8168DAE22B15D3EDC722C23D0F15B7D06FA80CB8" key ID ...blog@io7m.com2017-12-17T14:43:09ZNew PGP Keyblog@io7m.com2017-12-17T14:21:42Z2017-12-17T14:21:42Z-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
2017-12-17T14:19:49+0000
Pushed a new key for signing commits in Android work. I'll still be
releasing new personal and release signing keys in January (and I'll
be switching to ed25519 keys from RSA).
E1...blog@io7m.com2017-12-17T14:21:42ZBack To Javablog@io7m.com2017-12-09T13:06:49Z2017-12-09T13:06:49ZI initially wrote "jstructural" (https://github.com/io7m/jstructural/) as
a set of "XSLT" (/glossary.xhtml#xslt) stylesheets. That quickly became
unmaintainable as the complexity of the stylesheets increased. I rewrote
them in Java. I eventually got tired ...blog@io7m.com2017-12-09T13:06:49ZDKIMblog@io7m.com2017-12-04T14:56:11Z2017-12-04T14:56:11ZDeployed "DKIM" (http://www.dkim.org/) on the mail server
today. All mail that originates from "io7m.com" will be
signed, and I've published "DMARC" (https://dmarc.org/) and
"ADSP" (https://en.wikipedia.org/wiki/Author_Domain_Signing_Practices)
policies th...blog@io7m.com2017-12-04T14:56:11ZTLSblog@io7m.com2017-12-04T14:02:44Z2017-12-04T14:02:44ZI've enabled "TLS" (https://en.wikipedia.org/wiki/Transport_Layer_Security) on all io7m.com domains.
I'm using certificates from
"CaCert.org" (https://www.cacert.org/). These aren't trusted
by all browsers, but I don't care all that much. If trust
becomes...blog@io7m.com2017-12-04T14:02:44ZMaven JavaDoc Plugin Fixedblog@io7m.com2017-12-04T13:59:29Z2017-12-04T13:59:29ZThe "Maven JavaDoc plugin
3.0.0" (http://mail-archives.apache.org/mod_mbox/maven-dev/201712.mbox/%3Cop.zaoxmso5kdkhrr%40desktop-2khsk44.mshome.net%3E)
is finally ready for release. This means that I can migrate 60+
projects to Java 9 and finally get the ne...blog@io7m.com2017-12-04T13:59:29ZObstructing JavaDocblog@io7m.com2017-11-19T17:57:42Z2017-11-19T17:57:42ZI've been anxiously awaiting the "3.0.0" release of the
"maven-javadoc-plugin" (https://maven.apache.org/plugins/maven-javadoc-plugin/)
for weeks, and in an ironic twist of fate, I'm now responsible for delaying
the release even further.
I found two rathe...blog@io7m.com2017-11-19T17:57:42ZExpected But Gotblog@io7m.com2017-11-04T11:28:33Z2017-11-04T11:28:33Z"Inference" (/2017/11/04/inference.png)blog@io7m.com2017-11-04T11:28:33ZWhat To Save And Throw Awayblog@io7m.com2017-11-03T22:33:33Z2017-11-03T22:33:33Z«What to save and throw away?
pr?The last hour is on us both?mr.s?tuck this little kitty into the impenetrable
brainpan?
pr?Contents under pressure?Do not expose to excessive heat, vacuum, blunt trauma,
immersion in liquids, disintegration, reintegration...blog@io7m.com2017-11-03T22:33:33ZMaven Java 9 Bugsblog@io7m.com2017-10-30T14:55:58Z2017-10-30T14:55:58ZI'm still waiting on a set of issues to be resolved in order to push
modules to all of my projects.
* "MJAVADOC-489" (https://issues.apache.org/jira/browse/MJAVADOC-489)
causes JavaDoc generation to fail when one module requires another.
* "MDEP-559" (ht...blog@io7m.com2017-10-30T14:55:58ZTCP MSS Clampingblog@io7m.com2017-10-15T16:32:59Z2017-10-15T16:32:59ZInstead of using a non-default "MTU" (/2017/10/13/ipv6-and-mtu-woes.xhtml) on
my network, I've instead implemented "TCP MSS clamping" (http://blog.ipspace.net/2013/01/tcp-mss-clamping-what-is-it-and-why-do.html).
Specifically, I reset all of the interface...blog@io7m.com2017-10-15T16:32:59ZIPv6 And MTU Woesblog@io7m.com2017-10-13T18:08:19Z2017-10-13T18:08:19ZI've just recently deployed "IPv6" (/glossary.xhtml#ipv6). Everything
went well except for one painful issue that is still not really resolved
my satisfaction. To recount the story requires covering quite a bit of
ground and digging through a pile of acron...blog@io7m.com2017-10-13T18:08:19ZMaven Plugins Are Not Ripe Yetblog@io7m.com2017-09-24T09:01:57Z2017-09-24T09:01:57ZI wanted to start moving all my projects to Java 9, but quickly
discovered that a lot of Maven plugins I depend on aren't ready for
Java 9 yet.
* "japicmp" (https://github.com/siom79/japicmp) doesn't support
Java 9 because "javassist" (https://jboss-javas...blog@io7m.com2017-09-24T09:01:57ZChemriverblog@io7m.com2017-09-07T18:21:44Z2017-09-07T18:21:44Z"Chemriver/A on Vimeo" (https://vimeo.com/io7m/chemriver-a)
""Chemriver/A" (/2017/09/07/chemriver_a.png)" (https://vimeo.com/io7m/chemriver-a)
"Chemriver/B on Vimeo" (https://vimeo.com/io7m/chemriver-b)
""Chemriver/B" (/2017/09/07/chemriver_b.png)" (htt...blog@io7m.com2017-09-07T18:21:44ZReproducible Buildsblog@io7m.com2017-08-14T14:10:35Z2017-08-14T14:10:35ZConsidering moving to producing 100% "reproducible builds" (https://reproducible-builds.org/docs/)
for all of my packages.
It seems fairly easy. The following changes are required for
the "primogenitor" (https://github.com/io7m/primogenitor):
* Stop usin...blog@io7m.com2017-08-14T14:10:35ZSimulating Packet Loss And Damageblog@io7m.com2017-08-10T15:18:47Z2017-08-10T15:18:47ZI'm currently working on some code that implements a simple reliable delivery
protocol on top of "UDP" (/glossary.xhtml#udp). UDP is used because latency
must be minimized as much as possible.
In order to test that the protocol works properly in bad netwo...blog@io7m.com2017-08-10T15:18:47ZBhante Henepola Gunaratanablog@io7m.com2017-07-24T18:36:54Z2017-07-24T18:36:54Z«“Discipline” is a difficult word for most of us. It conjures
up images of somebody standing over you with a stick, telling you
that you’re wrong. But self-discipline is different. It’s the
skill of seeing through the hollow shouting of your own impulses
a...blog@io7m.com2017-07-24T18:36:54ZVultrblog@io7m.com2017-07-07T13:49:41Z2017-07-07T13:49:41ZIf you're reading this, then the migration to "Vultr" (http://vultr.com)
was successful. Additionally, this site should now be accessible to
"IPv6" (http://en.wikipedia.org/wiki/IPv6) users.
Host | IPv4 | IPv6
----------------------------...blog@io7m.com2017-07-07T13:49:41ZA Change Of Sceneryblog@io7m.com2017-07-04T21:28:20Z2017-07-04T21:28:20ZI'm looking at changing my VPS provider from
"DigitalOcean" (/glossary.xhtml#digitalocean) to
"Vultr" (http://vultr.com). These were the top two contenders
when I initially chose a provider. I can't fault DigitalOcean's
service, but Vultr have better prici...blog@io7m.com2017-07-04T21:28:20ZNew VPSblog@io7m.com2017-07-01T10:41:31Z2017-07-01T10:41:31ZI've moved over to the new "VPS" (/glossary.xhtml#digitalocean). Enabling
LZ4 compression on the "ZFS" (https://en.wikipedia.org/wiki/ZFS) filesystem
has immediately halved my disk usage.blog@io7m.com2017-07-01T10:41:31ZMind Your Constantsblog@io7m.com2017-06-30T10:28:43Z2017-06-30T10:28:43ZA little known feature of "javac" is that it will inline constant
references when compiling code. This can mean that it's possible to
accidentally break binary compatibility with existing clients of a
piece of code when changing the value of a constant. Wo...blog@io7m.com2017-06-30T10:28:43ZFreeBSD ZFS Rootblog@io7m.com2017-06-18T11:09:41Z2017-06-18T11:09:41ZWhen I set up the initial "FreeBSD" (/glossary.xhtml#freebsd) install
to host "io7m.com" (http://www.io7m.com), I didn't realize how trivial
it was to use "ZFS" (https://en.wikipedia.org/wiki/ZFS) as the root
partition. Having used this option several time...blog@io7m.com2017-06-18T11:09:41ZHalf Float Painblog@io7m.com2017-06-17T14:58:44Z2017-06-17T14:58:44ZWhilst working on "smf" (https://github.com/io7m/smf), I
ran into an issue when resampling 32-bit floating point
mesh data to 16-bit floating point format. The issue
turned out to be poor handling of subnormal values by my
"ieee754b16" (https://github.com/...blog@io7m.com2017-06-17T14:58:44ZMaven Assembly Plugin Reduxblog@io7m.com2017-06-17T14:53:01Z2017-06-17T14:53:01ZA "few months back" (/2017/02/23/massembly-848.xhtml),
I "filed a bug for the Maven Assembly
Plugin" (https://issues.apache.org/jira/browse/MASSEMBLY-848). "Karl
Heinz Marbaise" (https://github.com/khmarbaise) finally got back to
me and solved the issue ri...blog@io7m.com2017-06-17T14:53:01ZJEP 305 - Pattern Matchingblog@io7m.com2017-06-16T07:57:21Z2017-06-16T07:57:21Z"http://openjdk.java.net/jeps/305" (http://openjdk.java.net/jeps/305)
This is a good first step towards getting "algebraic data types" (/glossary.xhtml#algebraic_data_type) into Java.blog@io7m.com2017-06-16T07:57:21ZSender Policy Frameworkblog@io7m.com2017-06-12T16:35:02Z2017-06-12T16:35:02ZSet up "SPF" (http://www.openspf.org) for the
"io7m.com" (http://io7m.com) mail server today. Took about 30
seconds. Hopefully I'll still be able to send and receive mail when
the DNS changes propagate.blog@io7m.com2017-06-12T16:35:02ZOSGi Requirements And Capabilitiesblog@io7m.com2017-06-01T14:13:23Z2017-06-01T14:13:23Z"OSGi" (/glossary.xhtml#osgi) is an extremely
powerful "module" (/glossary.xhtml#module) system for the
"Java" (/glossary.xhtml#java) virtual machine. Code and resources are
packaged into "bundles" (/glossary.xhtml#bundle) that can be installed
into a runn...blog@io7m.com2017-06-01T14:13:23ZStack Overflowblog@io7m.com2017-05-20T19:08:06Z2017-05-20T19:08:06ZI actually asked a while back on "Stack
Overflow" (http://stackoverflow.com/questions/43757017/dividing-space-outside-of-convex-polygons-into-horizontally-spanning-quadrilater)
if anyone had any idea how to solve the
"problem" (/2017/05/19/cells.xhtml) I'v...blog@io7m.com2017-05-20T19:08:06ZCell Connectivityblog@io7m.com2017-05-20T14:01:23Z2017-05-20T14:01:23ZGood progress made on the [room model (https://github.com/io7m/roommodel0)].
[
(/2017/05/20/cell_connectivity.png)] The algorithm now correctly breaks up the space into horizontal spans, and produces a graph of cells that each have links to the cells abov...blog@io7m.com2017-05-20T14:01:23ZCellsblog@io7m.com2017-05-19T20:20:09Z2017-05-19T20:20:09ZBeen working intensely on the [room model (https://github.com/io7m/roommodel0)].
[
(/2017/05/19/cells.png)] The intention here is to analyze a set of polygons and divide the space outside the polygons into horizontal spans. The horizontal spans represent ...blog@io7m.com2017-05-19T20:20:09ZPolygonsblog@io7m.com2017-05-12T20:44:07Z2017-05-12T20:44:07ZExperimenting with a [room model (https://github.com/io7m/roommodel0)]for the engine.
[
(/2017/05/12/polygons.png)]blog@io7m.com2017-05-12T20:44:07ZZeptoblog XHTML Strictblog@io7m.com2017-05-08T13:15:30Z2017-05-08T13:15:30ZMade some corrections to "zeptoblog" (https://github.com/io7m/zeptoblog)
to ensure that the output is valid XHTML 1.0 Strict. I bring this up
because it directly affects this blog. I'm now validating the output
of this blog against the XHTML 1.0 Strict XSD...blog@io7m.com2017-05-08T13:15:30ZEvolving Generated Typesblog@io7m.com2017-05-08T11:35:32Z2017-05-08T11:35:32ZI released version "1.0.0" of
"jregions" (https://github.com/io7m/jregions) a while back and then
found that I wanted to make some changes to the API. I didn't want
to make a compatibility-breaking change this close to "1.0.0", so I
decided to make the cha...blog@io7m.com2017-05-08T11:35:32ZHow To Fix Intellij IDEA build issuesblog@io7m.com2017-04-28T18:53:39Z2017-04-28T18:53:39ZSwitch to the project directory, and:
$ find . -name '*.iml' -exec rm -v {} \;
$ rm -rfv .idea
Reopen the project and hope intensely.
"Fix" (/2017/04/28/fix.jpg)blog@io7m.com2017-04-28T18:53:39ZPulsing Headacheblog@io7m.com2017-04-23T07:26:58Z2017-04-23T07:26:58Z"PulseAudio" (https://www.freedesktop.org/wiki/Software/PulseAudio/) has some problems.
I have a laptop and various machines for testing software across
platforms, and they all send audio over the network to my main
development machine. This allows me to ...blog@io7m.com2017-04-23T07:26:58ZAmber Expert Groupblog@io7m.com2017-04-16T20:24:36Z2017-04-16T20:24:36ZA few weeks back, I was contacted by none other than "Brian
Goetz" (https://twitter.com/briangoetz) inviting me to become part of
the "Project Amber" (http://openjdk.java.net/projects/amber/) expert
group. I was quite honoured, and I accepted! It'll be my ...blog@io7m.com2017-04-16T20:24:36ZThree Day Insightblog@io7m.com2017-04-16T19:53:42Z2017-04-16T19:53:42ZBeen working on some difficult software architecture problems
lately. I'm a proponent of a method of thinking that, according to my
rather faulty memory, was attributed to Einstein, possibly by Robert
Anton Wilson. I can't actually find any evidence that E...blog@io7m.com2017-04-16T19:53:42ZLies!blog@io7m.com2017-04-15T13:42:25Z2017-04-15T13:42:25ZJust because you can convince 9 out of 10 people that your stupid
idea is a good idea doesn't make it a good idea it just makes you
a skilled liar.
Morale shall continue until beatings improve.
Etc.blog@io7m.com2017-04-15T13:42:25ZGitHub Contributionsblog@io7m.com2017-04-09T09:25:14Z2017-04-09T09:25:14ZManaged to hit 3000 "GitHub" (https://github.com/io7m) contributions today:
"GitHub" (/2017/04/09/github.png)blog@io7m.com2017-04-09T09:25:14ZRenamesblog@io7m.com2017-04-06T10:05:44Z2017-04-06T10:05:44ZHad a change of heart. Doing all of the "package renames" (http://blog.io7m.com/2017/02/25/java-module-renaming.xhtml)
now rather than waiting for Java 9. I wrote:
«There is the possibility that changing the entire name of a project
could be considered a ...blog@io7m.com2017-04-06T10:05:44ZMutable Numbersblog@io7m.com2017-04-04T21:42:22Z2017-04-04T21:42:22ZSometimes, what you really need is a mutable, boxed integer.
While updating "jcanephora" (https://github.com/io7m/jcanephora), I
discovered that I needed to update "jpra" (https://github.com/io7m/jpra)
to use the new "jtensors" (https://github.com/io7m/jt...blog@io7m.com2017-04-04T21:42:22Zjcanephora on jtensors 8blog@io7m.com2017-04-03T10:19:09Z2017-04-03T10:19:09ZGoing to start working on moving
"jcanephora" (https://github.com/io7m/jcanephora) to "jtensors
8.0.0-SNAPSHOT" (https://github.com/io7m/jtensors) in order to flush
out any problems with "jtensors" before I try to do a stable "8.0.0"
release.blog@io7m.com2017-04-03T10:19:09Zjtensors implementationblog@io7m.com2017-04-02T11:26:05Z2017-04-02T11:26:05ZThe "jtensors" (https://github.com/io7m/jtensors) implementation
is basically done. I need to release the "1.0.0" version of
the "primogenitor" (https://github.com/io7m/primogenitor),
though, and I can't do this until the "0.10.0" version of
"japicmp" (htt...blog@io7m.com2017-04-02T11:26:05ZMathematics With An Axeblog@io7m.com2017-03-22T09:26:57Z2017-03-22T09:26:57ZI've reached peak frustration with "jtensors" (https://github.com/io7m/jtensors).
The API is riddled with inconsistencies due to mistakes caused
by the ridiculous amount of hand-specialization. The design
of the API is also suboptimal on modern JVMs due t...blog@io7m.com2017-03-22T09:26:57ZDistraction Scenarioblog@io7m.com2017-03-21T15:45:12Z2017-03-21T15:45:12ZI have to admit: "Reorganizing" (/2017/03/19/inconsistency.xhtml)
a codebase to move to generating code that I've already written (and
rewritten several times over the past five years) is on the far side
of tedious.
On the plus side, I just heard about "P...blog@io7m.com2017-03-21T15:45:12ZFoolish Inconsistencyblog@io7m.com2017-03-19T16:21:15Z2017-03-19T16:21:15ZBeen working on moving the "jtensors" (https://github.com/io7m/jtensors) codebase
over to "source generation" (/2017/03/01/source-generation.xhtml) as I mentioned
previously. I've discovered some annoying inconsistencies in the API that are
making it harde...blog@io7m.com2017-03-19T16:21:15Zjapicmp updateblog@io7m.com2017-03-14T10:15:38Z2017-03-14T10:15:38ZBig thanks to "Martin Mois" (https://github.com/siom79) for implementing a
recent "feature request" (https://github.com/siom79/japicmp/issues/165)
to relax the rules for "semantic versioning" (/glossary.xhtml#semantic_versioning)
enforcement in "japicmp" (...blog@io7m.com2017-03-14T10:15:38Zjregions 0.0.2blog@io7m.com2017-03-08T15:04:42Z2017-03-08T15:04:42ZFirst public release of "jregions" (https://github.com/io7m/jregions/).
Unfortunately, the "Travis CI" (https://travis-ci.org/io7m/jregions/builds/208995146) build
is failing because "0.0.1" was never deployed to "Central" (/glossary.xhtml#maven_central)....blog@io7m.com2017-03-08T15:04:42ZThat bin directory. No, not that one, the other one.blog@io7m.com2017-03-08T10:43:54Z2017-03-08T10:43:54ZFor about a week, I've been having DNS resolution issues on
one server. The machine runs a "tinydns" (/glossary.xhtml#djbdns)
server for publishing internal domain names, and it seemed that
after roughly 24 hours of operation, the server would simply
stop ...blog@io7m.com2017-03-08T10:43:54ZOutageblog@io7m.com2017-03-06T12:47:03Z2017-03-06T12:47:03ZHad a minor outage yesterday apparently due to a bug in
the older "FreeBSD" (/glossary.xhtml#freebsd) images that
"DigitalOcean" (/glossary.xhtml#digitalocean) provide. To
their credit, they responded extremely quickly to my support
request and provided a ...blog@io7m.com2017-03-06T12:47:03ZGlossaries And Modularizationblog@io7m.com2017-03-04T20:36:37Z2017-03-04T20:36:37ZA close friend of mine suggested that this blog might be more readable
with a glossary, and I agreed. Computer science is fraught with
terms that may have one of several similar-but-not-quite-the-same
meanings depending upon the context in which they're us...blog@io7m.com2017-03-04T20:36:37ZPrimogenitorblog@io7m.com2017-03-02T21:28:14Z2017-03-02T21:28:14ZThe "Maven" (/glossary.xhtml#maven) "POM" (https://maven.apache.org/pom.html) files in
"io7m" (http://io7m.com) projects contain a fair amount of duplication
with respect to each other. The (possibly not entirely rational)
reason for this is that when I st...blog@io7m.com2017-03-02T21:28:14ZSource Generationblog@io7m.com2017-03-01T12:03:19Z2017-03-01T12:03:19ZSpent most of yesterday and a fairly decent amount of
time today replacing the bulk of the hand-specialized
"jregions" (https://github.com/io7m/jregions/) code with code
generated from a template instead. I don't typically like
"templating" (https://en.wik...blog@io7m.com2017-03-01T12:03:19ZBetter Than 100%blog@io7m.com2017-02-28T10:28:17Z2017-02-28T10:28:17ZWas amused by the "pingdom" (http://tools.pingdom.com) test results for "io7m.com" (http://io7m.com):
"io7m.com" (/2017/02/28/io7m0.jpg)
"io7m.com" (https://tools.pingdom.com/#!/bbPgV6/http://www.io7m.com/)
"blog.io7m.com" (/2017/02/28/io7m1.jpg)
"blog...blog@io7m.com2017-02-28T10:28:17Zjregionsblog@io7m.com2017-02-27T17:26:40Z2017-02-27T17:26:40ZHave started unifying "jareas" (https://github.com/io7m/jareas)
and "jboxes" (https://github.com/io7m/jboxes) into a new project:
"jregions" (https://github.com/io7m/jregions).
The original projects were written about three years apart and
I'd not realize...blog@io7m.com2017-02-27T17:26:40ZThe Questionblog@io7m.com2017-02-26T17:35:31Z2017-02-26T17:35:31Z"The Question" (/2017/02/26/thequestion.jpg)blog@io7m.com2017-02-26T17:35:31ZBreaking compatibility in a patch releaseblog@io7m.com2017-02-26T09:43:40Z2017-02-26T09:43:40ZBroke a "pure-ftpd" (https://www.pureftpd.org/project/pure-ftpd) install this
morning by recklessly failing to read the change log before upgrading.
Missed this note for "1.0.44":
The Perl and Python wrappers are gone. The daemon can now use a configurati...blog@io7m.com2017-02-26T09:43:40ZJava Module Renamingblog@io7m.com2017-02-25T14:40:37Z2017-02-25T14:40:37ZRight now, all "io7m" (http://io7m.com) "modules" (/glossary.xhtml#module) are consistently
named. For version "1.0.0" of a given project "p", the project usually
has "artifacts" (/glossary.xhtml#artifact) with
"coordinates" (https://maven.apache.org/guide...blog@io7m.com2017-02-25T14:40:37ZNo One Loves Assemblyblog@io7m.com2017-02-23T17:01:20Z2017-02-23T17:01:20ZDeeply unimpressed by the "complete lack of response" (https://issues.apache.org/jira/browse/MASSEMBLY-848)
to a report of a fairly serious bug in the
"Maven Assembly plugin" (https://maven.apache.org/plugins/maven-assembly-plugin/).
Polite "requests for a...blog@io7m.com2017-02-23T17:01:20ZLWJGL OSGiblog@io7m.com2017-02-21T15:17:23Z2017-02-21T15:17:23ZHuge respect for the "LWJGL" (http://lwjgl.org) project with
"one of the best responses to a bug report I've ever had the
pleasure to be involved with" (https://github.com/LWJGL/lwjgl3/issues/277).
As a result, I'm now maintaining "OSGi" (https://github.c...blog@io7m.com2017-02-21T15:17:23ZIndependent Module Versioningblog@io7m.com2017-02-06T12:10:21Z2017-02-06T12:10:21ZBeen experimenting with independent
"module" (/glossary.xhtml#module) versioning by developing an
"OSGi IRC bot" (https://github.com/io7m/thoth/). The idea is to
expose any deficiencies in tools when modules within a single
"Maven" (/glossary.xhtml#maven) ...blog@io7m.com2017-02-06T12:10:21ZZblog@io7m.com2017-01-01T00:00:00Z2017-01-01T00:00:00Z"Z" (/2017/01/01/z.png)blog@io7m.com2017-01-01T00:00:00Z