<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dw="https://www.dreamwidth.org">
  <id>tag:dreamwidth.org,2009-05-04:263862</id>
  <title>Bill Roper's Journal</title>
  <subtitle>billroper</subtitle>
  <author>
    <name>billroper</name>
  </author>
  <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/"/>
  <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom"/>
  <updated>2026-04-09T23:30:44Z</updated>
  <dw:journal username="billroper" type="personal"/>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3350139</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3350139.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3350139"/>
    <title>All That Jazz</title>
    <published>2026-04-09T23:30:44Z</published>
    <updated>2026-04-09T23:30:44Z</updated>
    <category term="health"/>
    <category term="coding"/>
    <category term="home"/>
    <category term="musings"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Gretchen got her wisdom tooth out today.  I shortly need to go pick up her prescriptions from Walgreens, but one of the four prescriptions didn't go through, so we have made some phone calls and maybe when I go down to check in with her, she will know that the prescription is ready.  I hope. :)&lt;br /&gt;&lt;br /&gt;Meanwhile, K wrote a project in Java using IntelliJ.  I wish that she had picked VSCode and the Java extensions there for an IDE, because I've *seen* that IDE before.  Anyway, this honors project involved building a sort of choose your own adventure game.  The trick was getting it off of her computer and into a form that someone else could run.&lt;br /&gt;&lt;br /&gt;My Google Fu is strong, but this was one heckuva little problem to sort out.  I managed to find out how to get IntelliJ to build a JAR file that included all of the Swing components that K had used in building the game.  Now, if you had a matching installed version of Java on your machine, you could double click on the JAR file and get the game to run.&lt;br /&gt;&lt;br /&gt;Did I mention that K's machine does not have a matching installed version of Java?  I managed to get IntelliJ to tell me which version of the OpenJDK it is using (26!) and then we downloaded that and installed it.  This gave me access to the JPackage utility, which is used to bind a JAR file together with a matching JRE so that you can run the JAR file.  This is a trick that I had planned to investigate someday at work for one of my stalled projects.  Well, I won't be doing that for work, but I would be doing it today, because I am a minor programming deity.  (Ok, if you have done this before and you are working on your own machine, this may be fairly simple.  If you are working on your child's computer over Zoom and have never had to use this trick before, it's a bit more complex.)&lt;br /&gt;&lt;br /&gt;I managed to get everything correctly typed into the command line to launch JPackage.  This involved, among other things, downloading a copy of 7Zip so that I could peer into the contents of the JAR file and make sure that I was providing the correct class name.  Ok, it's -- not running.  It wants the WIX toolkit.&lt;br /&gt;&lt;br /&gt;I have never used the WIX toolkit.  I found it, downloaded it, and installed it.  Let's try that again.&lt;br /&gt;&lt;br /&gt;Look!  It's an EXE file.  Run it!&lt;br /&gt;&lt;br /&gt;A dialog comes up and goes through some steps and goes away.  Ok.&lt;br /&gt;&lt;br /&gt;It eventually dawns on me that I've built an installer.  Let's look over here.  Yes, there is the installed application.  Let's try running *that*.&lt;br /&gt;&lt;br /&gt;And the game popped up on the screen.&lt;br /&gt;&lt;br /&gt;And there was much rejoicing.  Right after we ate Sir Robin's minstrels.&lt;br /&gt;&lt;br /&gt;Yay, Dad!&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3350139" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3346059</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3346059.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3346059"/>
    <title>Project X</title>
    <published>2026-03-25T02:41:22Z</published>
    <updated>2026-03-25T02:41:22Z</updated>
    <category term="musings"/>
    <category term="coding"/>
    <category term="work"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">The bug list having cleared, I've embarked on a small side project at work.  It's already had one useful result, which I've checked into the code base which will eventually get merged and shipped.  Now, I'm going to use that useful result to see if I can make the side project work in a short period of time, like a couple of days.&lt;br /&gt;&lt;br /&gt;Naturally, a new bug came in during the middle of this, but I fixed it and dispatched it back to the reporter, so I hope to be able to continue on that side project tomorrow. :)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3346059" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3342255</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3342255.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3342255"/>
    <title>Back to Bugs</title>
    <published>2026-03-10T02:22:47Z</published>
    <updated>2026-03-10T02:22:47Z</updated>
    <category term="work"/>
    <category term="coding"/>
    <category term="musings"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Well, sadly, there were a number of bugs in my check in that automation turned up, so I spent today fixing those.  Happily, none of them were overly complex.&lt;br /&gt;&lt;br /&gt;Let's see what we get tomorrow.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3342255" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3340958</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3340958.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3340958"/>
    <title>You Can Count On It</title>
    <published>2026-03-05T01:00:19Z</published>
    <updated>2026-03-05T01:00:19Z</updated>
    <category term="musings"/>
    <category term="coding"/>
    <category term="work"/>
    <category term="java"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">I've merged the reference counting changes to our code so that we can build it for testing.  There will be a brief shakedown cruise, but I think we'll end up with things being much more stable once we finish this up.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3340958" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3340608</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3340608.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3340608"/>
    <title>Refactoring</title>
    <published>2026-03-04T04:46:16Z</published>
    <updated>2026-03-04T04:46:16Z</updated>
    <category term="java"/>
    <category term="work"/>
    <category term="coding"/>
    <category term="musings"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Today was another day of mild refactoring around one of my classes at work.  This included adding a reference counter (which I had removed in an excess of enthusiasm for Java reference counting that was not entirely warranted) and changing many of the calls that fetch a member of the class to use try-with-resources to guarantee that the close() method will be called and the reference count reduced.&lt;br /&gt;&lt;br /&gt;Tomorrow, I hope to start testing this.  All of the unit tests are running, but that just proves that nothing acutely stupid is happening.  It's the *system* tests where all of the action will be here.&lt;br /&gt;&lt;br /&gt;And I want to see if this runs or just sits there and starts smoking. :)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3340608" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3338933</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3338933.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3338933"/>
    <title>Testing, Testing</title>
    <published>2026-02-25T00:49:50Z</published>
    <updated>2026-02-25T00:49:50Z</updated>
    <category term="musings"/>
    <category term="work"/>
    <category term="coding"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Today was spent writing unit tests and fixing bugs that turned up when I ran the unit tests.&lt;br /&gt;&lt;br /&gt;Which is, I suppose, the best reason for writing unit tests.&lt;br /&gt;&lt;br /&gt;I have a few more unit tests to write tomorrow and then I can move on to the next project.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3338933" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3338579</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3338579.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3338579"/>
    <title>Back to Work</title>
    <published>2026-02-24T03:27:23Z</published>
    <updated>2026-02-24T03:27:23Z</updated>
    <category term="coding"/>
    <category term="work"/>
    <category term="musings"/>
    <category term="ai"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">It was back to work today.  I think I've gotten a bit of coding done, but we'll see what happens when I finish writing the unit tests *and* the guys who are supposed to hook it up to the UI take a run at it.&lt;br /&gt;&lt;br /&gt;In other news, I was pinged by one of my fellow programmers today who was playing around with the OLE compound document format that our desktop files are stored in.  I showed him the set of Java code that I wrote on top of Apache POI to provide additional support for features that we're using.  Then I said, "Watch this."&lt;br /&gt;&lt;br /&gt;I bounced into VS Code and fired up Cline and told it to look at these classes in my source base and then write a code snippet that would open up a desktop file and dump out all of the custom settings from the user defined property set.  Now this isn't overly hard code to write, but even so, the resulting code was very nice and took advantage of features like try-with-resources and such.  I cut the code out and emailed it to my coworker, suggesting that he could put this somewhere that we could get at it. :)&lt;br /&gt;&lt;br /&gt;It was, in any case, faster than writing it myself and certainly not bad code.&lt;br /&gt;&lt;br /&gt;On a completely different note, if no one is interested in the treadmill, I am going to list it sometime in the next few days as available for free on Nextdoor, which is a pretty good way to get large objects to leave my home.  If you *are* interested, let me know.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3338579" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3337328</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3337328.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3337328"/>
    <title>Learning Experiences</title>
    <published>2026-02-19T04:12:22Z</published>
    <updated>2026-02-19T04:12:22Z</updated>
    <category term="ai"/>
    <category term="musings"/>
    <category term="work"/>
    <category term="coding"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">I am working with the code assist AI at work to try to clean up our Gradle scripts.  It did a magnificent job of doing so, but managed to delete some instructions from the scripts that we use and that it didn't realize were being used.  Oops.&lt;br /&gt;&lt;br /&gt;But that's no problem.  I'll tell the AI to restore the missing parts from the version that's saved in our Git repository.&lt;br /&gt;&lt;br /&gt;If only it hadn't accidentally discarded all of the changes in one of the files when it retrieved the backup copy.  Oops again.&lt;br /&gt;&lt;br /&gt;So I have the AI remaking the changes that it discarded.&lt;br /&gt;&lt;br /&gt;And a new appreciation for knowing when to back up code changes to defend them from the AI.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3337328" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3335932</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3335932.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3335932"/>
    <title>Look On These Works and Despair</title>
    <published>2026-02-13T01:42:25Z</published>
    <updated>2026-02-13T01:42:25Z</updated>
    <category term="musings"/>
    <category term="work"/>
    <category term="coding"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">I am apparently a minor deity of some sort.&lt;br /&gt;&lt;br /&gt;It doesn't take much to be one.  You just need to read the console output from the build process and then read the documentation for the Gradle build and test processor.  Do these things and you can make all *sorts* of things behave properly.&lt;br /&gt;&lt;br /&gt;I tossed a thunderbolt as a warning shot tonight.  With any luck, it will get the attention of the right people.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3335932" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3332230</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3332230.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3332230"/>
    <title>Old School</title>
    <published>2026-01-29T04:01:11Z</published>
    <updated>2026-01-29T04:01:11Z</updated>
    <category term="musings"/>
    <category term="work"/>
    <category term="coding"/>
    <category term="java"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">We have a lot of unit tests that are running fine in the JDeveloper environment that do *not* run in the build environment.  This has been a source of a lot of frustration for my co-worker who has been trying to solve the problem so I set out to dig into it today.&lt;br /&gt;&lt;br /&gt;The first thing I did was get him to confirm that the build wasn't doing anything acutely stupid, since there are multiple separate build steps that actually rely on each other in a loop.  This is an annoying problem (and not correctable in any reasonable way), but you can check through the loop by hand and he did so and determined that my first guess was wrong.  Oh, well.&lt;br /&gt;&lt;br /&gt;Ok.  If you can't use the debugger because the failures are in the Gradle build, you can always go old school.  It was time to start modifying the code and putting in debugging statements to drop data to the console.  And so I did.&lt;br /&gt;&lt;br /&gt;I got the stack trace for the mysterious exception that was shutting down a large number of the failing unit tests and went to stare at the source.  Eventually I realized that *someone* (and it may well have been me) had written a particularly stupid little class loader that will load one class in one environment and a different class in another environment -- say, for instance, when you are running your unit test in the build environment.  And when the alternate class it is trying to load isn't in the build environment either *and* is the completely wrong class to be loading, well, you've hit the jackpot.&lt;br /&gt;&lt;br /&gt;I quickly wrote the missing class to implement the interface, causing every method to throw a NotImplementedException.  This was the right choice in this case, because the interface described how to talk to the database and none of the database code is present in this particular part of the build, so you can't get it to run the unit test.  And now my Class Not Found exception turned into a NotImplementedException -- and I was already dropping the stack trace out so that I could see that I was attempting to load the access record.&lt;br /&gt;&lt;br /&gt;Huh.  Now the model that I was working with in this set of unit tests was one that I had initialized by hand and it normally works fine -- until you try loading a feature that requires an access record, which it then tries to load from the database, which is not present.  I wrote a class to initialize the access record and tucked it into the model initialization routine and almost *everything* started running correctly.&lt;br /&gt;&lt;br /&gt;Happy dance!  Except there were still a few (like four) unit tests that were failing for some unknown reason.  One of these was working with a tiny grid that I'd initialized in my tiny model.  Other things were working correctly with the grid, so why wasn't this one?&lt;br /&gt;&lt;br /&gt;I finally wrote a routine to dump the tiny grid to the console and discovered that none of the values that I'd tried to change in the grid were actually getting stored -- with the result that the unit test didn't find the expected values and promptly failed.  I managed to find where the error codes were stored and they were all the same code, so I found all of the places that could give me that error code and stuck a debugging statement in, which eventually led me to the point of failure.&lt;br /&gt;&lt;br /&gt;I was getting an exception when I tried to parse the input value of "160.1".  The exception claimed that the character in the zero position was failing, but when I looked at the exception, I realized that I had cleverly just passed back a zero instead of looking to see which character in the string was the problem.  Well, *that's* easily fixed.  It's the character in the *third* position.  It's the decimal point.  Why do I believe that a decimal point is an illegal character?  Could it have something to do with localization and assembling the set of valid characters based on the locale's decimal separator?&lt;br /&gt;&lt;br /&gt;Yes.  Yes, it could.&lt;br /&gt;&lt;br /&gt;Gradle not only runs the unit tests in multiple threads, but it *reuses* threads.  The LocaleTest switched a thread to the French locale, where the decimal separator is a comma, and didn't switch it back.  It does now.&lt;br /&gt;&lt;br /&gt;And suddenly, the rest of the unit tests started working.  Well, except for one test where the correct files aren't present in the build environment.  I commented that particular test back out as a problem for another day.&lt;br /&gt;&lt;br /&gt;And then I pulled out all of the spurious debugging code that I'd put in.  I kept the grid printing code around though.&lt;br /&gt;&lt;br /&gt;You never can tell when you're going to need it. :)&lt;br /&gt;&lt;br /&gt;Or to quote one of my songs:&lt;br /&gt;&lt;br /&gt;"I want to be old.  I want to be wise.&lt;br /&gt;I want to be just a little bit smarter than all those younger guys."&lt;br /&gt;&lt;br /&gt;Amazing what you can learn from experience.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3332230" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3321574</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3321574.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3321574"/>
    <title>Cleaning Things Up</title>
    <published>2025-12-17T03:19:44Z</published>
    <updated>2025-12-17T03:19:44Z</updated>
    <category term="java"/>
    <category term="work"/>
    <category term="coding"/>
    <category term="musings"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">I think I have finished cleaning things up at work for a while and need to get some fresh things to work on. :)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3321574" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3276309</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3276309.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3276309"/>
    <title>Fortified</title>
    <published>2025-06-28T03:07:39Z</published>
    <updated>2025-06-28T05:33:21Z</updated>
    <category term="work"/>
    <category term="coding"/>
    <category term="musings"/>
    <category term="java"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">We've been running the Fortify app against our source code and the section that I'm responsible for has been pretty clean for the most part.  But there was one set of routines (that I did not write) that was being stubbornly difficult in being changed to avoid an unreleased resource leak.  I tried one approach (a poor one, as it turned out) that just broke everything in the area, so I backed it out and went after it again.&lt;br /&gt;&lt;br /&gt;This time, I refactored the code to avoid the particular construct that causes Fortify to lose its mind as it scans our code.  Once I did that, the code still worked, which was good.&lt;br /&gt;&lt;br /&gt;And it passed the Fortify scan that just finished.&lt;br /&gt;&lt;br /&gt;Yay, me.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3276309" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3273834</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3273834.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3273834"/>
    <title>Bits and Pieces</title>
    <published>2025-06-18T03:03:14Z</published>
    <updated>2025-06-18T03:03:14Z</updated>
    <category term="food"/>
    <category term="musings"/>
    <category term="coding"/>
    <category term="work"/>
    <category term="home"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">My annual required training for work is now completed.  Yay, me!&lt;br /&gt;&lt;br /&gt;I have also fixed all of the bugs that popped up in the scan from the static code analysis tool.  Also, yay, me!&lt;br /&gt;&lt;br /&gt;And I found the bug in the compile of an older feature branch that was introduced when we mixed the new jar from their project with their fixes for the static code analysis tool with the old branch that doesn't have those fixes yet.&lt;br /&gt;&lt;br /&gt;In other news, we decided to make superburger for dinner tonight.  I had figured that we would have potato chips with it, but when I was looking for the cranberry pecan chicken salad at Sam's Club to bring back for Gretchen, I found a tub of their loaded potato salad, which includes sour cream, cheddar cheese, and bacon.  It is very good.&lt;br /&gt;&lt;br /&gt;It is also a three pound tub of this stuff.  I foresee a lot of potato salad in the near future.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3273834" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3271848</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3271848.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3271848"/>
    <title>Spring Cleaning</title>
    <published>2025-06-10T03:04:18Z</published>
    <updated>2025-06-10T03:04:18Z</updated>
    <category term="java"/>
    <category term="musings"/>
    <category term="coding"/>
    <category term="work"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">It is amazing how deleting roughly 150,000 lines of obsolete code will improve the quality of your code base.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3271848" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3271020</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3271020.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3271020"/>
    <title>Will It Go Round In Circles?</title>
    <published>2025-06-07T03:17:22Z</published>
    <updated>2025-06-07T03:17:22Z</updated>
    <category term="musings"/>
    <category term="coding"/>
    <category term="school"/>
    <category term="home"/>
    <category term="work"/>
    <category term="college"/>
    <category term="kids"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Gretchen spent most of the day driving a long loop to the Loop and back to pick up K after her trip to Ball State for orientation.  Like, five hours, which is absurd.  She was a bit late getting to the Loop bus station, but the bus was a bit late too, so it sort of averaged out.  Meanwhile, it seems like all of the other drivers on the road were intent upon "interesting" maneuvers.  But everyone is home safe now.&lt;br /&gt;&lt;br /&gt;I spent time looping at work too.  Happily, I was able to sort out one problem and characterize another so that someone more familiar with that particular area of the code can do the further sorting that is required.&lt;br /&gt;&lt;br /&gt;And then on Monday, I hope to be able to code in a straight line again. :)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3271020" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3218573</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3218573.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3218573"/>
    <title>Eureka!</title>
    <published>2024-11-07T06:07:11Z</published>
    <updated>2024-11-07T06:07:11Z</updated>
    <category term="work"/>
    <category term="coding"/>
    <category term="musings"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">I was talking with one of my co-workers today about how to fix some particularly intractable problems with the build, when I suddenly had the "Eureka!" moment and realized how to simplify things.  Better yet, not just how to simplify things for me and my group, but for all the people in my related group of co-workers on the other side of the wall.&lt;br /&gt;&lt;br /&gt;It's nice when something like that happens.&lt;br /&gt;&lt;br /&gt;And so far, it's testing out ok.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3218573" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3212656</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3212656.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3212656"/>
    <title>Back to Work</title>
    <published>2024-10-15T03:14:16Z</published>
    <updated>2024-10-15T03:14:16Z</updated>
    <category term="musings"/>
    <category term="coding"/>
    <category term="work"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Today was spent trying to sort out various merge artifacts.  I think they're cleared up now and we should be able to make progress.&lt;br /&gt;&lt;br /&gt;That's the objective, right? :)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3212656" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3209825</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3209825.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3209825"/>
    <title>Not Regressing</title>
    <published>2024-10-04T02:40:49Z</published>
    <updated>2024-10-04T02:40:49Z</updated>
    <category term="dodeka"/>
    <category term="baseball"/>
    <category term="work"/>
    <category term="coding"/>
    <category term="home"/>
    <category term="filk"/>
    <category term="musings"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">Work is going well lately, although a bit disjointed as I jump between projects.  But I think I managed to fix a long-standing problem with some of our cookie handling yesterday (with a lot of help from another of our folks who set up the environment and ran the actual tests).  We're still testing to make sure there are no cases that defeat the new code, but it's working in all the cases we've managed to recreate so far.  This makes me happy.&lt;br /&gt;&lt;br /&gt;Home has been disjointed too, but I managed to sneak down into the basement and complete the final fades on a number of tracks.  I still need to go spend some time playing with SpectraLayers, but it's been busy and is going to continue being busy for a bit.&lt;br /&gt;&lt;br /&gt;Meanwhile, the Mets beat the Brewers tonight to win that Wild Card series, so three out of the four favorites ended up losing.  This gives whole new meanings to the word "favorites".  (Yes, I know the favorites lose, but they sure seem to be losing a lot in this small sample size of the last two years.)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3209825" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3202939</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3202939.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3202939"/>
    <title>Coding the Node</title>
    <published>2024-09-07T03:25:49Z</published>
    <updated>2024-09-07T03:25:49Z</updated>
    <category term="bandcamp"/>
    <category term="musings"/>
    <category term="work"/>
    <category term="coding"/>
    <category term="home"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Thanks to everyone who stopped by Bandcamp today.  I appreciate it!&lt;br /&gt;&lt;br /&gt;Meanwhile, back at work, my co-worker and I sat down and coded up some changes that should make the project that we're working on better.  Unfortunately, by the time it was built, there was no time to fire up the test environment and see how it works.&lt;br /&gt;&lt;br /&gt;Monday!  Monday will be a good day for this.&lt;br /&gt;&lt;br /&gt;Anticipation...&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3202939" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3198975</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3198975.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3198975"/>
    <title>Win Some, Lose Some</title>
    <published>2024-08-23T02:47:39Z</published>
    <updated>2024-08-23T02:47:39Z</updated>
    <category term="kids"/>
    <category term="cardinals"/>
    <category term="home"/>
    <category term="work"/>
    <category term="baseball"/>
    <category term="dryer"/>
    <category term="musings"/>
    <category term="coding"/>
    <category term="school"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">After my mournful look at the Cardinals' season a few days ago, they have proceeded to grab two wins against the Brewers in 24 hours.  This doesn't improve their position a whole lot, but it beats the alternatives.&lt;br /&gt;&lt;br /&gt;I have a couple of things going here at home that involve filing forms.  One worked, the other didn't.  Now I need to figure out what it was I did wrong on the bad filing and whether or not it just cost me a noticeable chunk of money.&lt;br /&gt;&lt;br /&gt;I have some code at work that looks like it's working, but the wrong thing is happening.  So I need to find out why that's going awry.  That will be tomorrow's problem at work.&lt;br /&gt;&lt;br /&gt;Returning to the good news front, I did a load of laundry this afternoon and the dryer appeared to work correctly.  This makes me happy.  I am hoping to remain happy with the dryer, but at least I got to test it before the weekend.&lt;br /&gt;&lt;br /&gt;And the trash has gone out, which is always a good thing. :)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3198975" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3195522</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3195522.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3195522"/>
    <title>One Thing Or Another</title>
    <published>2024-08-10T00:01:06Z</published>
    <updated>2024-08-10T00:01:06Z</updated>
    <category term="coding"/>
    <category term="work"/>
    <category term="musings"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">I have fixed a bunch of little things at work.  Now, we just need to build them.&lt;br /&gt;&lt;br /&gt;But this is not my problem, at least for a couple of days. :)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3195522" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3193810</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3193810.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3193810"/>
    <title>Code Smarter, Not Harder</title>
    <published>2024-08-02T23:53:14Z</published>
    <updated>2024-08-02T23:53:14Z</updated>
    <category term="coding"/>
    <category term="work"/>
    <category term="musings"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">One of my co-workers had been working on a project to fix a particular bug, but hadn't made a lot of progress on it.  I suggested that I should take it over and do it while he worked on something else, since I have more experience in that neighborhood than he does.  He readily agreed.&lt;br /&gt;&lt;br /&gt;I showed him some of my interim code and he allowed as to how it was similar to the approach he had taken, but that my code was a little cleaner, because I was more willing to change some things that needed to be changed as part of the fix to knock out things that were going to be weird.&lt;br /&gt;&lt;br /&gt;After several hours of effort yesterday and today, I suddenly realized that there was a much simpler way to fix this than the horribly invasive approach I was taking.  I went into the base class for the offending group of objects, added a boolean to control an option along with an alternate constructor, and then changed one line of code in that class.  And then I went to one of the derived classes and used the alternate constructor to enable the option for that class.&lt;br /&gt;&lt;br /&gt;Everything appears to work.  And I revised the unit test in the neighborhood and it agrees with me.&lt;br /&gt;&lt;br /&gt;I'll do some more testing just to be sure, but I think this particular problem is fixed. :)&lt;br /&gt;&lt;br /&gt;It's amazing how easy some things can be once you think about them in the right way.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3193810" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3192793</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3192793.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3192793"/>
    <title>Behaviors</title>
    <published>2024-07-30T02:44:43Z</published>
    <updated>2024-07-30T02:44:43Z</updated>
    <category term="coding"/>
    <category term="work"/>
    <category term="musings"/>
    <category term="computers"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">One of the things I've learned about complex software is that the best way to describe what it does is that it has behaviors.  The behaviors of the software are controlled by the rules that are programmed into it.&lt;br /&gt;&lt;br /&gt;If you write the rules correctly and the interactions are nice and tight, then your software will be well-behaved.  If you write the rules badly -- or, God forbid, fail to initialize parameters for the rules through one or more species of programming errors! -- then the software will be badly behaved and unpredictable.&lt;br /&gt;&lt;br /&gt;All of this turns out to be harder to get people to do than you'd think. :)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3192793" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3182265</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3182265.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3182265"/>
    <title>Traction</title>
    <published>2024-06-12T03:14:27Z</published>
    <updated>2024-06-12T03:14:27Z</updated>
    <category term="musings"/>
    <category term="work"/>
    <category term="coding"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">I suddenly got traction on the work project this afternoon and wrote a whole bunch of code that worked.&lt;br /&gt;&lt;br /&gt;I still need to write a lot *more* code that works, but the ball is now rolling downhill, which feels good.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3182265" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-04:263862:3170412</id>
    <link rel="alternate" type="text/html" href="https://billroper.dreamwidth.org/3170412.html"/>
    <link rel="self" type="text/xml" href="https://billroper.dreamwidth.org/data/atom/?itemid=3170412"/>
    <title>Various Forms of Brain Damage</title>
    <published>2024-04-27T03:44:00Z</published>
    <updated>2024-04-27T03:49:20Z</updated>
    <category term="guitar"/>
    <category term="java"/>
    <category term="computers"/>
    <category term="musings"/>
    <category term="coding"/>
    <category term="work"/>
    <category term="home"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">It's been that sort of day.&lt;br /&gt;&lt;br /&gt;I spent much of the day at work trying to untangle some of my code that interacts with the Java UI.  I have never worked with any of the Java UI code before last week and it is behaving in some extremely mysterious (and sometimes just outright weird) ways.  I suspect I will end up sending an email later this weekend begging for an explanation of the weirdness, because I need to sort out the problem and move on.  We'll see how that goes.&lt;br /&gt;&lt;br /&gt;Meanwhile, I picked up my guitar during a compile and decided to play "The Boxer".  My recollection is that playing it in the natural key of G has been causing me to bottom out on the low notes, so I dropped a capo on the neck to move the song up a full step to the key of A.&lt;br /&gt;&lt;br /&gt;And then I proceeded to sing the whole song an octave up.  Happily, it turned out that I *could* sing the song an octave up, but if I was going to do that, then why did I need the capo?&lt;br /&gt;&lt;br /&gt;Brain damage.  Clearly brain damage.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=billroper&amp;ditemid=3170412" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
</feed>
