--- layout: post title: Developer Journal, International Women's Eve date: 2022-03-07 06:46:05-0500 categories: tags: [programming, project, devjournal] summary: Progress on assorted projects thumbnail: /blog/assets/Frauentag-1914-Heraus-mit-dem-Frauenwahlrecht.png proofed: true --- Tomorrow is [International Women's Day](https://en.wikipedia.org/wiki/International_Women%27s_Day), a celebration spinning out of the global labor movement, designed to bring attention to issues that women face in society that---let's be clear---are directly responsible for most of the issues that *men* face in society. ![Rough painting of a 1910s German woman waving a large red flag](/blog/assets/Frauentag-1914-Heraus-mit-dem-Frauenwahlrecht.png "I've seen better rhythmic gymnastics routines...") If you're here to demand that someone tell you why there's no [International Men's Day](https://en.wikipedia.org/wiki/International_Men's_Day)...it's in November. And unlike International *Women's* Day, it was just created to celebrate the accomplishments of men...as if history has been covering up all the powerful men. I hope that everybody can see the difference. Likewise---and this should probably become a full post, some day---if you're worried about men having a much higher on-the-job risk of dying, the solution is to fight for *women* to be taken seriously in dangerous jobs, not to talk about how strong men are. However, being a man, I suppose that men's accomplishments are also the best opportunity for a segue that I'm going to get to what *I* did, this week... ## Iungimoji {% github jcolag/iungimoji %} While this isn't a major change to anything, **Iungimoji**'s repository now ignores the generated `game.html` file. Also, if you're a regular reader of the blog, then you probably already know that I officially launched my [**Daily Iungimoji**](/iungimoji) puzzle, in [yesterday's post]({% post_url 2022-03-06-iungimoji %}), which also explains more about what's happening in that repository. The short version, though, is that it generates implementations of a card-matching game, using emoji for the card contents. As usual, the defense against cheating is minimal, because I wrote this primarily for myself, meaning that the biggest concern is that I *accidentally* cheat, such as accidentally double-clicking and either selecting the emoji underneath without flipping the card or causing the card to match itself. The nice thing about this---if you're looking at code ideas, and assuming that I haven't already described it---is that the majority of this work gets handled in CSS transitions. Clicking a card adds or removes a class, which slowly flips and hides/reveals the face of the card. When the player finds a match, JavaScript adds a third CSS class, which shows the cards as permanently exposed. It's especially gratifying to me, because I tried to build something similar on Windows, about twenty years ago; the code to manage the cards was a nightmare, even after I worked out the geometric transformations. ## Morning Dashboard {% github jcolag/dash %} Similar to **Iungimoji**, this is hardly the end of the world, but the repository now ignores the generated `morning.html` file. It's hardly a crisis, but I keep noticing the "alien" file in my list when it's time to commit changes, which is a bit of a waste. I *could* write the output file to the system's temporary folder, but that would require embedding the CSS, and I'd rather not do that when I go in to tweak the styles. Honestly, it surprises me that I didn't do this from the start, since I literally generate the file every morning... ## G.L.O.B.E. {% github jcolag/g-l-o-b-e %} G.L.O.B.E.---or Geo-Locate Objects Before Enemies---is a third puzzle game that I'll (soon) publish daily, alongside the **Daily Iungimoji** and [**Daily Nonogram**]({% post_url 2021-02-21-nonogram %}). Unlike the others, you need to find the country displayed at the top of the page, based on both the outline and the directions given on wrong guesses. As I mention in the repository, the version of the game in my head is that you're racing against a hypothetical opponent---the "Enemies" in the title---moving at a fixed speed per mile, meaning that you have a maximum travel distance between the first and final guess to find the MacGuffin. The actual game doesn't do this, but it feels like a reasonable pretense. It also "narratively" massages a problem that most people, including myself, are going to have playing: The idea of a "country" is shockingly fuzzy, with places like the [Faroe Islands](https://en.wikipedia.org/wiki/Faroe_Islands) or [British Indian Ocean Territory](https://en.wikipedia.org/wiki/British_Indian_Ocean_Territory) sitting on the list, waiting to be selected randomly. Since most of us probably wouldn't consider either of them "countries" in any reasonable sense, the idea of a budget for distance allows the player to wander around the vicinity of an obscure country (or non-country) before finally pulling up a map of the area. One interesting aspect---to me, at least; many readers probably already know about it---is that modern HTML has a convenient way to create a text input with suggestions, what we used to call a [combo box](https://en.wikipedia.org/wiki/Combo_box), before platforms weirdly stopped providing them. ```html ``` The `` container takes a series of `