Posts from 08/2024

Friday, August 02, 2024

New Edition Day

This is the URI! Zone's 28th birthday month, which means it is the only website to avoid the dreaded "27 Club" effect (where amazing founts of creativity implode through self-destructive habits).

By the numbers, here's what the URI! Zone looks like today:

  • over 206,000 unique visitors since 2003
  • 5032 blog posts since 2001
  • 9418 comments from 153 unique visitors since 2003
  • 10,202 images, MP3s, and other files, totaling 573 megabytes
  • over $4650 spent on web hosting since 2003

As regular visitors can plainly see, the URI! Zone has mostly been in maintenance mode for the past few years -- barely showing a pulse through an intravenous diet of child pictures and reviews. This is all slated to change over the next 12 months as I've spent the summer learning modern web development and becoming okay with the fact that I no longer have to account for Internet Explorer incompatibilities when implementing web interfaces.

Here are some of the areas I'd like to explore with the URI! Zone on the yearlong path towards a 30th edition:

  • Makeover the entire website, even considering a move away from the iconic "yellow sign" design.
  • Modernize the entire tech stack, from database to web page, so the makeover isn't just putting makeup on a corpse.
  • Clean up all 5032 blog posts so they're more searchable and taggable, and flow well across different devices.
  • Add an Export function that spits out PDF files of each year's posts for offline preservation.
  • Add a feature that lets me write blog posts in Markdown instead of HTML.
  • Throw the corpus of blog posts at a generative AI and see if it can figure out what I would sound like on other topics. Eventually I can take 3 month vacations and no one will know.

I have also felt the itch to get back into music composition, but from the perspective of the final product being a recording of exactly what I want to express (read: Cubase) rather than a printed score that real musicians will never be able to recreate as well as I can in my brain (read: Finale). This would require a whole 'nother skillset that I've never explored before.

Thank you for your continued friendship and readership! I hope you're around for year 30!

tagged as website | permalink | 2 comments
day in history

Monday, August 05, 2024

Weekend Wrap-up

On Friday afternoon, we went to the "closing ceremony" of Maia's STEM Camp at the Herndon Community Center. Teams of kids (Maia's team was "The Artists") had spent the week building little cars out of straws and other detritus and then raced them down a ramp. We also watched a stop-motion video that Maia had made on an iPad, showing a rainbow car driving down the road.

Afterwards, we transferred our kids to the grandparents' car at the nearest Target parking lot and drove to the Wiehle Metro station. Our kid-free trip to DC got off to an inauspicious start when our train went out of service for a broken A/C. The next train through the station experienced multiple delays, being stuck behind the out-of-service train through several more stations.

We made it to Gallery Place around 5 and checked into the Fairfield Inn which was crowded with concertgoing families as well as people heading to Otakon. After a quick dinner at the Irish pub on the ground floor of the hotel, we crossed the street to the Capital One Arena for the AJR concert.

We reached our section 121 seats without any problems (although the new Ticketmaster paradigm of "you must have a mobile phone to go to a concert" is irritating), missing the first opener, Almost Monday, but catching the second, MXMTOON.

AJR finally came on around 8:15 to a packed audience. There were more moving parts than the MUSE concert we went to back in 2008. The pageantry sometimes overshadowed the music -- I would have preferred about 20 minutes fewer of audience interactions and gimmicks and 20 minutes more of music, but they sounded great and were onstage for just over 2 hours.

The composition of the audience was sociologically interesting, spanning white, black, Asian, young, old and everyone else. There were lots of tweens and teens accompanied by their parents but I was amazed to see that both the kids and the parents knew all of the lyrics to almost every song!

The old people earplugs we brought along were definitely worth it -- I could hear the full range of timbres clearly without subjecting myself to the constant 125db speakers echoing through the arena.

The band managed to perform their whole fifth album, Maybe Man, and fit in tons of previous hits like BANG! and Burn the House Down.

On Saturday, we Metro'd back to the real world and relaxed around the house. In the evening, we drove through the massive thunderstorm to celebrate our friend Ghazaley's 40th birthday somewhere in South Riding.

Meanwhile, the kids were having a great time at the grandparents' house.

On Sunday evening, the kids were returned home by the grandparents and we all ate an easy meal of ham and potatoes.

How was your weekend?

tagged as day-to-day | permalink | 1 comment
day in history

Wednesday, August 07, 2024

Memory Day: Science and Energy Camp Journal Entries

excerpts from the journal I kept at a Boy Scout Camp 30 years ago, August 7 - 14, 1994

Sunday
The three people from our Troop who went to camp were Tom, Chris, and myself. The bus ride took forever and I sat next to Chris. He's a nice kid but by about Tuesday, he really got on my nerves. We got to Goshen around four o'clock or so. The head guys divided the 43 Science and Energy guys into 4 different campsites. Dave and Ian were the Junior Staff guys who got paid 75 dollars to help out. They got into just as much trouble as the rest of us.


Monday
In the Energy class, we saw a stupid movie.


Tuesday
It became apparent that Atomic Energy was the most boring class. At the Electricity lab that night, I built an electric motor. It finally worked but it was all messed up. After the lab (at around 8), everyone gathered for a game of Manhunt in the nature area. The game had barely been going for five minutes when someone leaned against a wooden flagpole and it fell on Ian. A staff guy kicked us all out.


Wednesday
We all got in trouble for the Manhunt episode so we had to clean the nature area. But they gave us meaningless tasks. Some people had to dig a hole and fill it in while others (like me) had to pick up all the sticks and put them in a pile and then scatter them again. I whittled a bird. We had foil packs for dinner. Dave and Ian almost got into a fight. At Energy class, we made Solar Energy Boxes.


Thursday
When I went to Space Exploration class, I found that someone had taken the rocket that I brought from home and painted it. I still used it but it was a bad paint job. The camp director got mad at us again because he found a broken tree in our camp. It turned out that the tree had always been broken. At the Atomic Energy class we used Scalers for radioactivity.


Friday
Friday was the day of all quizzes in the classes which would earn us the merit badges. I passed them all. Ian read some of my books. (Before he had been burning things with my matches and this diverted his attention for a while). I whittled some and I had swordfights with Ian (using sticks).


Saturday
On Saturday we launched our rockets. Nothing else happened really. I got the Outstanding Energy guy award and I won a patch, a shirt, and a hat. The campfire that night was a bust.

tagged as memories | permalink | 0 comments
day in history

Friday, August 09, 2024

Review Day

There are no major spoilers in these reviews.

Death of Slim Shady by Eminem:
I haven't seriously listened to any Eminem albums since the early 2000s. His newest album takes me back to that era with the expected amount of clever lines and decent beats. However, it doesn't really bring anything new to the table and the album's theme of cancel culture didn't really grab my attention. After three or four repetitions of jokes about Caitlyn Jenner, the album feels like it's overstaying its welcome.

Final Grade: C+

Key and Peele, Season Three:
A fun, final season that finds the right balance between funny and weird.

Final Grade: B

Line of Duty, Season One:
This is a twisty, turny British thriller that starts with ambitious shades of The Wire, but soon narrows its focus to a typical "morally ambiguous protagonist is blackmailed" storyline. It has enough plot twists to maintain interest although some of the characters are fairly flat and do a lot of "smell the fart" acting.

Final Grade: B

Pro Kotlin Web Apps from Scratch by August Lilleaas:
This is a concise, approachable book on web development with a reasonable, opinionated "anti-Spring Framework" mindset. It's really shallow in terms of exploring each topic, but provides a perfect, high-level roadmap for people that already plan to tinker with things on their own.

Final Grade: B

tagged as reviews | permalink | 0 comments
day in history

Monday, August 12, 2024

Chad Darnell's 12 of 12

12 pictures of your day on the 12th of every month

5:49 AM: 20 minute Beat Saber workout.
6:13 AM: Showered and ready for work.
6:24 AM: Bagel for breakfast.
6:51 AM: Ian is the second person to awaken (promptly at 6:29), with Maia and Rebecca outside in a tent doing backyard camping.
7:46 AM: Trying out a new dentist in Ashburn (it was a success).
9:42 AM: Working from home.
10:54 AM: Fried chicken for lunch.
12:34 PM: Taking a work break to run on the treadmill and watch season four of Veronica Mars.
3:12 PM: Joining Maia on the couch for a Pokemon Shield session.
4:00 PM: Family trip to Frying Pan Farm.
4:33 PM: Pushing his own stroller.
5:05 PM: Dinner at Taco Bamba, where I tried a taco made with Korean chicken nuggets.

tagged as 12 of 12 | permalink | 2 comments
day in history

Wednesday, August 14, 2024

Family Fragments

♠ Maia is 7 years old.

♠ Cats are in, bunnies are out.

♠ Her favourite activity is reading chapter books. She finishes them so quickly (and retains the story) that it's never cost-effective to purchase books. It's fun hearing her pronounce words she's only read in books, like "abyss" and "grotto". One of her current favourite series is Dragon Masters, but I also got her into Peggy Parish's classic Bill, Liza, and Jed mysteries that I read as a kid.

♠ After watching or reading anything, she will make crafts or games about the story. Her bedroom is often a spider web of scarves and pipe cleaners tied together for some obscure purpose.

♠ Her favorite dinner is my baked chicken wings with Italian seasonings. Runner-up is probably a hot dog.

♠ She has a high emotional intelligence and starts almost every sentence with "I feel like..."

♠ Maia plays 0 - 1 hours of video games daily, currently alternating between Animal Crossing, Pokemon Shield, Stardew Valley, and Dragon Quest IX on the DS.

♠ When dancing, she is always dancing like no one is watching.

♠ Ian is 3.

♠ His favourite game and TV show is Hot Wheels. A common dialogue pattern in the kids' show is someone saying, "I chooooose.... the <car name>!". He incorporates this template into conversations all day long, from Hot Wheels to weather conditions. "I choooose the PARTLY SUNNY!".

♠ Ian also likes puzzle balls, self-contained marble mazes that require hand-eye coordination or else your marble will fall off. He has gotten good enough to get over 1/4th of the way through the puzzle by the rules, and has also figured out how to make the marble jump near the end and finish it.

♠ Ian's favourite color is purple, and he carries his raccoon and clownfish stuffed animals all over.

♠ He's not particularly excited about any one food other than yogurt, but he'll eat tons of anything (except fish or eggs) while distracted.

♠ Ian is reading. Over the weekend, he watched me play Paper Mario: Thousand Year Door and yelled, unprompted, "You struck first!" when those words appeared on the screen.

♠ Rebecca and I sometimes say that Ian is a 7-year-old trapped in a 3-year-old body.

tagged as fragments, offspring | permalink | 2 comments
day in history

Friday, August 16, 2024

Review Day: Deep Black by Miles Cameron

Deep Black is the conclusion of the Arcana Imperii duology by Miles Cameron. The book finds a perfect endpoint for the story of Marca Nbaro with a good balance of resolved threads and open-ended future scenarios that are fun to fill in with your own imagination.

The book's identity is very much the second half of a continuing story rather than an independent sequel with its own dramatic arc -- like A Drowned Kingdom and Last of the Atalanteans in P.L. Stuart's excellent Drowned Kingdom series, or Ships of Merior and Warhost of Vastmark in Janny Wurts' finally completed 11-book Wars of Light and Shadow series, this duology should be treated as a single, continuous story across physical bindings.

The plot picks up immediately after the conclusion of Artifact Space and barrels ahead with minimal attempts at recapping. I reread the first book just last year yet still had to tab back to refresh my memory about the endless roster of supporting characters. The massive merchant ship, Athens, travels farther away from human civilization against an uneasy blend of menacing human conspiracies and novel alien interactions. (Try to put some space between this book and Children of Ruin by Adrian Tchaikovsky because you might keep trying to force assumptions between the two stories' concepts that don't actually exist). Marco Nbaro and her friends continue to thrive in their positive bubble of human friendship. All of this continues to be set against the chaotic backdrop of mundane ship life, from repair duty, to space battle drills, to filing personnel reports.

A lot of these elements, such as Marco's ongoing mantra ("I'm an idiot"), her relationship banter, and the sea of characters that have minimal depth beyond their name and rank, feel too similar to what we read in Book One. This sameness is not helped by the introduction of a neural link which makes many conversations span physical, electronic, and virtual transmissions to the point where it's often hard to tell when someone is speaking, telepathing, typing, or just thinking to themselves.

However, the overarching plot methodically takes shape out of this chaotic soup as Marca's doubts trickle in about the efficacy and trustworthiness of the artificial intelligence that controls every aspect of life aboard the ship. Anytime I felt like I was about to be stuck in a story rut, the characters would have a realization that propelled the story in unexpected directions. By the climax, all of the chaff has burned away and the conclusion is absolutely worth the journey.

Deep Black fills in all of the blanks left behind in the "temporary pause point" that concluded Book One. If you enjoyed the beginning, you will be pleased with how Cameron wraps it all up.

(I also read the short story collection, Beyond the Fringe, between Books One and Two -- while I liked the additional perspectives added to the universe through those stories, I don't think they're necessarily mandatory reading to enjoy the main duology).

Final Grade: B

tagged as reviews | permalink | 0 comments
day in history

Monday, August 19, 2024

Easy Photos Day

Thumbs up for departure to Rhoadsville, VA.


His happy place.


Learning how to play Texas Hold'em.


All of the fandoms colliding in this game of pretend.


On the pond.


Tractor ride.


Newest driver.


tagged as day-to-day | permalink | 0 comments
day in history

Wednesday, August 21, 2024

Stuff In My Drawers Day: When Band Auditions Go Awry

This is an email I wrote to the band director of the Marching Virginians 25 years ago, offering specific, detailed evidence for why someone was cut from the 63-member trumpet section. The reason? That person's dad was threatening to sue the band over the cut! I thought helicopter parenting didn't become a thing until the mid-aughts, so perhaps this was one of the first.

Names have been changed to protect the embarrassed.

Mon, 23 Aug 1999 19:02:23 -0400 (EDT)
To: bobbo, dlinden, rpereira, stpeter3, drew-dogg, dshiplet, etaylor, buri, pabrown3
From: "Brian Uri!" <llamaboy@vt.edu>

Hey guys,

I talked some with Dave today about cuts and the heat he's taking based on our decisions. He does support our decision for the most part...he just wants some written reassurance. I know you'll give Dave your honest opinions in the 3 areas he asked about; here's what I wrote back:


MUSIC

Larry's audition was slightly better than "middle of the road". He was definitely not good enough to play first part but would probably have been a decent second. His tone was piercing and his upper register did not show evidence of much practice or precision. Had he been in the band, we would have placed him on second part.

MARCHING

I was not present for the majority of the marching session on Thursday morning, so I relied on the observations of the rank captains and the other section leader. Larry was isolated as one of several old-timers who's marching was slack and did not seem interested in improvement. In normal seasons, this would be the norm; however, this season saw a great jump in the number of strong freshman marchers and hard-working old timers. He had the potential to be a good marcher, as evidenced by some of his marching last year, but showed no desire to work hard this year, as if he were expecting an easy return.

ATTITUDE

Larry tended to act in a cocky high-school mentality. He played to be heard, and often spoke of how good he used to be as a trumpet player in high school. He would often tell people that he "deserved" to be a first trumpet and once confided that he would be able to play the first part even if he was assigned third. Away from the marching band field, he is definitely not a "bad" person; he just has a tendency to forget that he is not always the focal point of attention.

I was Larry's next-door neighbor last year and we spoke quite often about band and trumpet playing. It was difficult for me to allow him to be cut, but I understood the reasoning behind it and the rank captains' reasoning. One strong basis for cutting Larry was the attitude he showed the rank captains of last year. I was not in his rank and did not march near him for the most part so I will not presume to know the complete story, but old rank captains stated that he had the habit of doing things his own way, and often played the first trumpet part even though he was assigned third. In a year in which we've lost strong first players and are attempting to rebuild the sound of the section without the poor improvised antics of first players, we didn't feel that Larry would do much to help in this area. He fully expected to be a first trumpet, and I have little doubt that he would have continued to play first even if assigned another part. The rank captains felt that it would be more productive to help a freshman become a member of the band, rather than to spend that same time trying to curb Larry's attitude.

The decision to cut Larry was by no means easy. When the leadership sat down at lunch on Friday, we had narrowed the list down to the following people (from which we had to cut 3):

  • Perry
  • Gary
  • Mary
  • Terry
  • Larry
  • Barry
  • Kerry

Once this list was compiled, each rank captain and section leader stated both good and bad points concerning each person. Larry was not cut until the 3rd and most difficult round. In fact, there was almost complete deadlock between Larry and another old timer.

In the end, every rank captain expressed some reservations about cutting Larry. However, the final decision came when all the rank captains realized amongst themselves that no one was willing to have Larry in their rank. They were afraid of the adverse effect his attitude would have on both the rank and the new malleable freshmen.

I will say now that Larry's cut was definitely not a personal vendetta by any single or group of rank captains. The section leaders did not press the issue on any cut; they just supplied the rank captains with information pertaining to auditions and some of the things they saw on the field. Contrary to popular belief, Larry's cut was not endorsed by fraternity rank captains or oldtimer rank captains or people who did not personally like Larry. In fact, one rank captain said at first that they were not certain they would cut Larry, despite their dislike of him, because of his medium audition.

Larry was not removed because he was disliked or because he is a poor player. Larry was cut simply because the section has a limited number of seats, and there were people in the section who worked harder to gain those seats, and who would be a more positive influence on the trumpet section.

tagged as memories | permalink | 1 comment
day in history

Friday, August 23, 2024

Review Day

There are no major spoilers in these reviews.

Supacell, Season One:
This superhero show feels like a British version of Heroes before it went off the rails. It isn't very different from what has come before it, but offers a fresh setting and a lot of hip-hop music. There's one frustrating episode where delaying the plot hinges on a contrived unwillingness to communicate by the lead character, but it wraps up in an excellent season finale with twist after twist. On Netflix.

Final Grade: B

Warcraft (PG-13):
This movie flopped enough when it came out that there probably won't be a sequel -- it's not as bad as described, but has an uncertain identity. It felt like it couldn't decide whether it was catering to new viewers, casual fans of World of Warcraft, or diehard fans of the original Warcraft lore, and only did a passable job for each audience. The movie is also overwhelmed by CGI which, while pretty well done, makes it hard to take anything seriously. Watch it as a throwaway popcorn movie and it will probably entertain your teenager. On Netflix.

Final Grade: C+

Veronica Mars 4:
The fourth season of Veronica Mars starts ten years after the original series and movie. It's uneven, with some dropped unexplained threads originally raised to make the central mystery more chaotic, and sometimes feels like an excuse to get the cast back together. However, the core relationship between Veronica and her dad is still a strong tent pole that gives everything heart. I do love that there's no "case of the week" B story -- a device that worked fine in the aughts, but that modern TV has long since grown out of.

Final Grade: B

Welcome to the Madhouse by Tones and I:
This Australian artist came on my Pandora station on one of the rare occasions where it wasn't trying to force that "I need a dollar" song down my throat. The songs are catchy in isolation, but the album has too many similar timbres (like Eisley, or the third act of Les Mis). The singer is ALWAYS singing, which makes every song start to sound the same. If she took some breaks and inserted some interesting interludes into the (very repetitive) backing tracks, there'd be more uniqueness.

Final Grade: C+

tagged as reviews | permalink | 0 comments
day in history

Monday, August 26, 2024

Bringing Fantasy Worlds to Life: An Unanticipated Use Case for Leaflet.js

originally posted on LinkedIn

The Wars of Light and Shadow by Janny Wurts might be the longest fantasy series you've never heard of. Spanning 11 books, 6 short stories, almost 7000 pages, and 50 years of development from outline to final published book, the series is often overshadowed by the more visible Daughter of the Empire trilogy, which Wurts co-authored with Raymond E. Feist in the 1980s.

Like all respectably chonky fantasy series, the Wars of Light and Shadow also boasts a detailed world map. This is the story of how I used open-source libraries and an iterative development cycle to bring that world map into the 21st century, offering readers a new way to explore the continent of Paravia.

When "State of the Art" Is a Moving Target

The online map of Paravia was beautifully modern upon release? in 1998. It featured Dreamweaver-generated image maps using the HTML <map> tag, allowing readers to click on different regions to go to other web pages containing larger inset maps. Images were crisp, black and white GIF files that looked spectacular on 800x600 monitors. The whole thing even worked in Internet Explorer 3!

Image maps require you to explicitly define the clickable area, making them very brittle if the map changes or your Dreamweaver license expires.

When I inherited the project, it was clear that a full modernization was needed. Web-based mapping has come a long way in 20 years and the "click around" experience that sufficed back then was too small and limiting for modern audiences. I realized that if I could implement even half of the user experience (UX) patterns that we're accustomed to today, the new map of Paravia could be incredibly immersive. I can easily dive into Google Maps, find my childhood home, see Street View pictures of my dad mowing the lawn, and even rewind time to see how it looked 10 years ago. Why not apply this to the map of a world that only exists in our imaginations?

Defining the Requirements

I spent a few days studying Google Maps, Apple Maps, and even the wizened Mapquest before capturing these basic requirements for my project:

  • The map has a consistent UX on desktop, mobile, and tablet devices.
  • Users can zoom in and out and move around the map without going to a different web page.
  • The map has "point of interest" pins showing important locations from the books and cross-referenced with other series resources (like the author's original artwork depicting those locations and the comprehensive series wiki).
  • Users can move forwards and backwards on a timeline to see how the map changes throughout the course of the story (which spans several wars and nearly 500 years).

It was actually very straightforward to meet every requirement except for the last one. The technology is there to make it happen in the future, but the data is not ? the author would need to ink additional maps showing cataclysmic, tectonic changes, like a 2nd continent laid to waste by drake fire and a 3rd continent that sank into the sea during the Second Sundering.

Prototyping

I chose Leaflet.js, an open-source JavaScript mapping library, as the backbone for the new map because of its wonderful documentation and extensibility. Though Leaflet.js is commonly used with real geospatial data, it can work with any image-based data, even a giant picture of a cat. I wrote the supporting code (PHP, CSS, and JavaScript) in IntelliJ IDEA and used Adobe Photoshop for image alterations. With this technology stack in place, I obtained a massive (10,000px width) TIFF file of the map from the author and got to work.

Leaflet.js works by seamlessly loading sliced up map images in the background as the user drags the map around. For example, zoom level 0 (as far away as possible to see the whole continent) is a single image that takes up the whole screen. Zoom level 1 gets a little closer, and uses 4 tiled images to render the map. My map goes up to zoom level 6, which uses 1024 tiled images to show the maximum detail possible.

Street View is not available because cameras and other technology are proscribed on this planet.

The first thing I realized was that I would probably end up doing a lot of experimentation with the map images and color palettes, and I wouldn't want to slice the map up by hand (requiring 1365 map tiles for the 6 zoom levels) every time. I added the open-source utility ImageMagick to the tech stack and wrote a small Kotlin script that automatically slices, resizes, and stores all the required map tile images with a single click.

Automate anything you're going to do more than 3 times, especially when the 3rd time is going to be years later when you've forgotten how to do it.

From here, it took only a few lines of JavaScript code to get a prototype map working. I could zoom in and out flawlessly (even with pinch gestures on touch screens) and navigate across the map simply by dragging it or using the arrow keys. These features worked out-of-the-box with Leaftlet.js and didn't require any custom code.

Adding Points of Interest

I wanted users to be able to click on towns, fortresses, and natural landmarks to learn more about them. Each point of interest has a name, a brief description, a link to a more detailed write-up in the series wiki, and (if applicable) a thumbnail of the artwork that the author had created of that location.

Clicking on the links takes the user to a full-page write-up about the location and sometimes high-resolution original artwork created by the author.

To begin, I added a special DEBUG mode to the map which displayed the current latitude and longitude whenever I click somewhere. This allowed me to click on a spot where a point of interest is supposed to go and copy/paste the coordinates into my code. I used DEBUG mode to build a list of over 120 locations, stored in the code as an array of JavaScript objects.

At this point in the development cycle, a user could open the map, zoom in on a region, and click on a point of interest to see its popup window. So far, so good!

Polish

With the primary features implemented, I started testing on different platforms and evaluating UX to figure out how to improve the minimum viable product. These are the enhancements I implemented:

  • I realized that it would be nice to be able to bookmark a specific view of the map and revisit it later. I added a simple JavaScript function to update the web browser URL to include the coordinates and zoom level whenever the user moves around. Visiting the bookmark immediately loads that data and jumps to the right region.
  • I realized that some of the points of interest might contain spoilers if someone hasn't gotten far in the series yet. I used Leaflet.js Layers and CSS hidden DIVs to add a Spoilers toggle, making sure the map doesn't reveal important information by accident.

Most important for usability, I noticed that the level of detail needed to decrease as the user zooms out. While it's great to have intricately detailed maps at the highest zoom level, that detail is noisy and distracting while zoomed out. It would be like Google Maps showing every street name when you're far enough away to care about the countries and continents. This was especially noticeable with points of interest, which obscured the entire map when at zoom level 0.

The fix for this was twofold: First, I created an alternate version of the map image tiles that blurred out the detail and focused on kingdom names and borders at the lowest zoom levels. Then, I adjusted the Leaflet.js Layers to only show points of interest when at higher zoom levels. This combination lets the user gradually zoom in and see more precision only when it becomes useful.

Thanks to my earlier automation, it was very simple to direct ImageMagick to slice up a different image for the lower zoom levels.

Conclusion

The entire project was completed in just 10 days, thanks to my reuse of open-source libraries. You can try out the map at the link below (and you can "View Source" in your browser to see the JavaScript code that brought it all together).

https://www.paravia.com/map

Beyond any technical interest you might have in the mapping technology, you might be interested in reading the series itself. The Wars of Light and Shadow is a challenging read that rewards your patience. It requires space and focus to savor. The prose is dense, poetic, and uniquely structured, intentionally asking you to slow down and linger over each idea. This is truly literature that I would have been much more excited to read in my high school English classes than yet another Shakespeare play.

tagged as programming | permalink | 0 comments
day in history

Wednesday, August 28, 2024

Finale Day

The music composition world (which I am barely even an honorary member of anymore) is up in arms about sudden end of Finale, the music software which I used to craft all of my MIDI recordings and scores during my music career. The president of the software company posted this letter on Monday:

The end of Finale

35 years ago, Coda Music Technologies, now MakeMusic, released the first version of Finale, a groundbreaking and user-centered approach to notation software. For over four decades, our engineers and product teams have passionately crafted what would quickly become the gold standard for music notation.

Four decades is a very long time in the software industry. Technology stacks change, Mac and Windows operating systems evolve, and Finale's millions of lines of code add up. This has made the delivery of incremental value for our customers exponentially harder over time.

Today, Finale is no longer the future of the notation industry -- a reality after 35 years, and I want to be candid about this. Instead of releasing new versions of Finale that would offer only marginal value to our users, we've made the decision to end its development.

I appreciate the challenge of monetizing and improving 40 years worth of code and the honest introspection it took to pull the plug. I also get how disruptive this change is to people actively using Finale in their daily careers. Hopefully, the company will add more off-ramps based on the uproar (more ways to convert file formats, longer time before shutting off the authorization server, and maybe executables that no longer have a "phone home" requirement).

Update: In the span of just 3 days, the company has already agreed to host the authorization server for the forseeable future instead of just 1 year, and plans to bundle the latest version of Finale (v27) with cross-upgrade to another company's software, Dorico.

I started using Finale in tenth grade (May 1994), when my dad purchased it and a dedicated MIDI Interface card that used up one of the valuable expansion slots in our Pentium family computer. I spent that summer inputting existing scores (such as Shostakovich's Festive Overture) so I could hear them played back as tinny MIDI, and then used Finale in my junior year to arrange really bad pep band charts. By my senior year, I was composing original music and ended up using Finale on a daily basis through grad school and even a little more afterwards.

Finale was never a great piece of software, but it could definitely do everything you needed and a bunch of stuff you didn't. The music notation software hewed too close to how computer people think about music and not how composers did. I recall sending tons of feedback over the years (always acknowledged but never implemented) on ways to make things more intuitive. For example, adding an accelerando to a score required the composer to type in a bunch of numbers representing the tempos and then defining the rate of change across the period of time using a shape designer. Having a preset like "go steadily from 80 beats per minute to 120 beats per minute over 4 beats" would have made so much more sense to anyone not thinking like a computer.

I'm currently trying to get my last purchased version of Finale (v25.5) working in Windows 11, after which I'll convert all my files to an interim format, MusicXML, that should be transferable to another software choice. I probably won't learn a new scoring tool any time soon, given my recently posted idea to go in a different direction:

I have also felt the itch to get back into music composition, but from the perspective of the final product being a recording of exactly what I want to express (read: Cubase) rather than a printed score that real musicians will never be able to recreate as well as I can in my brain (read: Finale). This would require a whole 'nother skillset that I've never explored before.

tagged as memories, music, programming | permalink | 1 comment
day in history

Friday, August 30, 2024

End-of-the-Month Highlights Day

New photos have been added to the Life, 2024 album.

  • Events
    • Solo dad dinner at Local Provisions on H 8/1.

    • The kids visited the grandparents, F 8/2 - S 8/4.

    • Rebecca and I went into DC by Metro for the AJR concert on F 8/2. Dinner at Irish Channel and lodging at the Fairfield Inn.

    • Rebecca and I went to Ghazaley's 40th Birthday Party on S 8/3.

    • Dinner with the grandparents and kids on S 8/4 (ham).

    • Family dinner at Fire Works Pizza followed by a splash pad visit on T 8/6.

    • Family trip to Claude Moore pool and climbing wall on F 8/9. Maia lost another tooth.

    • Visit from Catherine and Autumn on S 8/10 - 8/11.

    • Went to a new dentist on M 8/12. Family trip to Frying Pan Park with dinner at Taco Bamba.

    • Solo dad dinner at Local Provisions on W 8/14.

    • Solo dad dinner at Miller's on H 8/15.

    • Visited the Ahlbins in Rhoadesville, F 8/16 - S 8/17.

    • Visited the grandparents in Alexandria on M 8/19.

    • Went to the HOA meeting on W 8/21. Rebecca smashed her toe.

    • Maia started 2nd grade on H 8/22 in Ms. Schaljo's class.

    • Took the kids to Runnymede Park on F 8/23, followed by a family dinner at Cantina d'Italia.

    • Maia tried out a Girl Scout troop on S 8/25.

    • Solo dad dinner at Local Provisions on M 8/26.

    • Date night at Coopers Hawk and the Reston Town Center on F 8/30.

    • Went to CatVideoFest at the Alamo Drafthouse on S 8/31. Maia went to Rahel's for a play date afterwards.

  • Projects
    • Thawed out another AC coil freeze on S 8/11.

    • Completed the 17 year journey of finishing the Paravia Wiki on S 8/18.

    • Backed up all of my Finale music files on S 8/31.

  • Consumerism
    • Bought a new dryer to replace the 20-year-old Whirlpool Duet.

    • No amazing new music, books, shows, or movies this month.

    • Tried playing Elden Ring and bounced off. Dabbling in Starfield in my sparse downtime.

August's Final Grade: B, first half of the month was too busy with homeownership, balanced out by a chill last half

tagged as day-to-day | permalink | 1 comment
day in history

 

You are currently viewing a monthly archive, so the posts are in chronological order with the oldest at the top. On the front page, the newest post is at the top. The entire URI! Zone is © 1996 - 2024 by Brian Uri!. Please see the About page for further information.

Jump to Top
Jump to the Front Page


August 2024
SMTWHFS
123
45678910
11121314151617
18192021222324
25262728293031
OLD POSTS
Old News Years J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
visitors since November 2003