Items by Tag
Items with tag "Software"
I just released v1.0.9531 which corrected the caching issue that prevented anonymous visitors from commenting.
I figured out why comments broke for anonymous users: caching is hard. I spent some time yesterday after work digging into the caching code and realized that I was an idiot. I also found where my bad decision about what to cache caused unrelated things to work, which they wouldn't have done had I done caching correctly. I'll fix that tonight.
Late afternoon links
AviationBlogsCassieChicagoElection 2028PersonalSecuritySoftwareTrumpUrban planningWinterWork
I haven't had a chance to work on the comments problem, because, you see, I have another job. I've also had a plumber and a carpet cleaner here today, traumatizing poor Cassie who couldn't show them her blanket because she got shoved into a different room. She's now on her bed in my office rather than on one of the couches downstairs. I expect she'll get over the soul-crushing exile she experienced for nearly an hour today.
I've just discovered comments aren't working for anonymous users. They appear to work, and the logs say they worked, but they're not saving to the comment index.
I just pushed a minor update to the Daily Parker's blog engine, the thing that you're looking at right now. I fixed a couple of performance bottlenecks, so I hope the experience is a bit faster. (You can always check out the release notes for a summary of what I've done.)
In my last post on how the Daily Parker blog engine works, I talked about the fundamental abstractions that I built it around. Today I'm going to talk about the code some more, but more concretely, by explaining how the application decides who can see or do what. I'm a little proud of this design, to be honest.
The first problem of developing a new software application is to determine what it does. The second problem is to decide the fundamental abstractions that will govern the system. If you don't figure this out early, you'll either write a hideous pile of rotting spaghetti that no one will want to maintain, or you'll do that and change careers entirely.
I'm David Braverman, this is my blog, and Cassie is my 7½-year-old mutt. I last updated this About... page in March 2021. Quite a lot has changed since then, most notably I wrote a whole new blog engine. (More on that in a moment.)
(After Dave and Bob got so excited about yesterday's post, I just had to give them more of what they came for. You're welcome.) It turns out, several people use RSS to keep up with The Daily Parker. I hadn't planned to write an RSS feed component before launch, but as I don't want to cut them off, I've reprioritized the feature. Plus, I have a couple more things to do before I can cut over to the new production environment: Implement Real Simple Syndication (RSS); Fix a bug caused by the interaction...
The last cold morning of 2025
BlogEngine.NETBlogsCassieChicagoClimate changeEconomicsEntertainmentEuropeFoodGeneralGeographyHistoryHumorMilitary policyMoviesPersonalPoliticsRestaurantsSoftwareSportsTrumpUrban planningUS PoliticsWeatherWinterWorkWorld Politics
Cassie and I went out right at sunrise (7:14—two more weeks before the latest one of the winter on January 3rd) just as the temperature bottomed out at -10.5°C (13.1°F) after yesterday's cold front. Tomorrow will be above freezing, Sunday will be a bit below, and then Monday through the end of the year looks like it'll be above. And the forecast for Christmas Day is 11°C (52°F). Meanwhile, as I sip my second cup of tea, these stories made me want to go back to bed: As much as we want to ignore the...
Concert weekend
Democratic PartyElection 2024Election 2026EntertainmentGeneralGeographyHealthHistoryIllinoisLawMilitary policyMoviesMusicPersonalPoliticsSoftwareTaxationTrumpUrban planningUS PoliticsWork
Ah, December, when the easy cadence of weekly rehearsals becomes a frenzy of performances and, yes, more rehearsals. This is Messiah week, so I've already spent 8 hours of it in rehearsals or helping to set up for them. Tonight I've got the first of 4 Messiah performances over the next two weeks, plus yet another rehearsal, a church service, and a Christmas Eve service. Then, after Christmas, a bunch of us will be singing at the 50th anniversary party for a couple who have sung with us for longer than...
Yes, corruption; but don't forget the abject stupidity
Climate changeDemocratic PartyElection 2026PersonalSoftwareSummerTrumpUS PoliticsWinterWork
I'm listening to the corporate annual update, which is neither corrupt nor stupid, though only about 20% of it applies to my job. So I'll just spend the other 80% lining up these articles about corruption and stupidity for lunchtime reading: Whether because of "you can't make me" or just doing the opposite of whatever President Biden's administration did, the latest toddler behavior in the administration comes from Secretary of State Marco Rubio, who decided that Calibri is too DEI so State will go back...
I'm a little delayed getting today's Morning Butters Report out for a couple of reasons. First, Butters and Cassie tag-teamed me starting just before 6:30 am. First Cassie poked me, then Butters poked me when Cassie kicked her off the dog bed in my room. Then Cassie came back when Butters used her engineering skills to ensure Cassie couldn't pull that crap again: Last night, though, Butters showed me how much she cares about me—or how much she wanted another Greenie, it's unclear: Meanwhile, all the...
I have to replace my Surface next week and I don't want to
ApolloEntertainmentGeneralMusicSoftwareWork
The Microsoft Surface Pro 3 that I got over 10 years ago continues to work just fine; in fact, I'm writing this post on it. Sadly, Microsoft will stop providing updates to Windows 10 in a week, and the tablet is so old I can't update it to Windows 11. Not only does the prospect of spending $600 to replace something that doesn't need replacing annoy me, but it also means I'm going to have to spend several hours installing and configuring everything. And next week I have 5 rehearsals and a performance, so...
Two of my favorite writers took on the same topic from different directions this morning. The first to hit was Matthew Inman, who released a (very) long cartoon digging into the artist's relationship with the collection of technologies we call "AI." It starts with his observation that "even if you don't work in the arts, you have to admit you fee it too — that disappointment when you find out something is AI-generated." (Since it's a web comic, you'll just have to read it to get his full essay.) Author...
Four-day weekend starting in 3 hours
BaseballChicagoEconomicsEntertainmentGeneralGeographyHealthJokesMappingNew YorkPersonalPoliticsRepublican PartySoftwareSummerTechnologyTrumpUrban planningUS PoliticsWeatherWork
This weekend, I expect to finish a major personal (non-technical) project I started on June 15th, walk 20 km (without Cassie), and thanks to the desperation of the minor-league team on the South Side of Chicago, attend a Yankees game. It helps that the forecast looks exactly like one would want for the last weekend of summer: highs in the mid-20s and partly cloudy skies. I might have time to read all of these things as well: Jeff Maurer, who watched (some of) this week's televised cabinet meeting so we...
Cheating at Snakes & Ladders
CorruptionCrimeElection 2026EntertainmentEnvironmentEuropeGeneralGeographyPoliticsRepublican PartyRussiaSecuritySoftwareTelevisionTransport policyTravelTrumpUkraineUrban planningUS PoliticsWorkWorld Politics
If you've ever played Snakes & Ladders (Chutes & Ladders in the US) with a small child, or really any game with a small child, you have probably cheated. Of course you have; don't deny it. Everyone knows letting the kid win is often the only way to get out of playing again. It turns out, Japan last week and the European Union this week both demonstrated mastery of that principle while negotiating "trade deals" with the world's largest toddler: [I]f the US-EU trade relationship was more or less OK last...
I'd open the windows, but it's soupy
ChicagoClimate changeGeographyMappingPoliticsRepublican PartyScienceSoftwareSummerTravelTrumpUS PoliticsWeather
Just look at that cold front, wouldn't you? And notice how the dewpoint dropped hardly at all: The same thing happened at the official Chicago station at O'Hare, where the temperature dropped from 31°C to 22°C in 15 minutes, while the dewpoint went up. At least the forecast predicts tomorrow will be lovely. In a related note, the OAFPOTUS's and the Republicans' 40% reduction in funding to the National Oceanic and Atmospheric Administration stopped the agency's Atlas 15 project, which will have a ripple...
A moment of downtime
AviationChicagoClimate changeEnvironmentGeneralGeographyImmigrationMappingPolicePoliticsRepublican PartyScienceSCOTUSSoftwareTransport policyTravelTrumpUrban planningUS PoliticsWeatherWork
I've gotten some progress on the feature update, and the build pipeline is running now, so I will take a moment to read all of these things: Radley Balko looks at the creation of what looks a lot like the OAFPOTUS's Waffen-Shutzstaffel and says we've lost the debate on police militarization: "In six months, the Trump administration made that debate irrelevant. It has taken two-and-a-half centuries of tradition, caution, and fear of standing armies and simply discarded it." Linda Greenhouse condemns the...
I have to finish a feature today, and had a ton of meetings yesterday, which is why I missed posting yesterday. If I finish the feature before it gets dark I may even read a bunch of stuff that has piled up in my browser. Until then...
Almost-normal walkies this morning
CassieChicagoDemocratic PartyEconomicsElection 2028EnvironmentFitness devicesGeneralGeographyHealthLawPoliticsRepublican PartySecuritySoftwareTaxationUrban planningUS Politics
Cassie had a solid night of post-anesthesia sleep and woke up mostly refreshed. The cone still bums her out, and the surgery bill bums me out, but at least she's walking at close to her normal speed. She gets her stiches out—and her cone off—two weeks from today. Meanwhile, in the rest of the world: Very stupid people have allowed measles, which we functionally eliminated from the US in 2000, to infect close to 1300 people this year. Jennifer Rubin argues that the Department of Homeland Security...
Halfway through the year already
AviationCassieChicagoDemocratic PartyElection 2026EntertainmentFoodSoftwareSummerTravelWeather
Somehow, tomorrow is July 1st. As far as I can tell, this is because today is June 30th, and yesterday was June 7th, and last week was sometime in 2018. And yet, I have more stuff to read at lunchtime from just the last day or so: Josh Marshall distinguishes between the energy and engagement of the Democratic Party (i.e., the actual voters) and the torpor of the Party's leadership: "[It's] not a nightmare. Certainly not for the party. It may be a nightmare for some incumbents." The Washington Post digs...
Sunny and above freezing
ChicagoCorruptionCrimeDemocratic PartyGeneralIllinoisLawPoliticsRepublican PartySecuritySoftwareSpringTrumpWeatherWork
Before getting to the weather, I don't anticipate any quiet news days for the next couple of years, do you? Someone who owns at least 16 rooms and condos in the OAFPOTUS's Wabash Ave. building in downtown Chicago has sued, alleging that—wait for it—the organization running the building is bilking investors. I mean, how preposterous! Speaking of corruption flowing from the OAFPOTUS like toxic waste from a Union Carbide plant, Molly White mourns the end of SEC oversight of the crypto industry. Former US...
As threatened promised, I'm starting to beg for money to help support The Daily Parker and Weather Now. You can go to Patreon and sign up to help us, with special member benefits as you contribute more. The Daily Parker costs about $5 a day to run (though I hope to reduce that significantly this fall), and Weather Now costs another $10. They're not entirely labors of love, as I have used Weather Now as a demo project to land new work. But after more than five years with the same full-time employer...
Weather Now v5.0.9194 just hit the hardware, with a new feature that allows you to browse the Gazetteer by finding all the places near a point. (Registration required.) I also added a couple of admin features that I will propagate to every other app I have in production, and made a few minor bug fixes. Only one minor hiccup: I forgot to add a spatial index to the Gazetteer, which caused searches around a point to take minutes instead of seconds in production. I added the index to the database...
Why The Daily Parker costs so much
BlogEngine.NETBlogsDasBlogGeneralHistoryPersonalSoftwareWindows AzureWork
A longtime Daily Parker reader asked this about yesterday's post: "The Daily Parker costs $4.87 per day" -- I'm really hoping that's a misprint, because that's almost $150 a month, which is ten times what I pay for my web hosting package which comes with unlimited domains, a full email service (IMAP+SMTP over TLS), click-to-install WordPress and MySQL database creation, SSH access to the back-end Linux machine, and excellent customer support. Also -- and I *really* hate to say this to a fellow IT...
I meant to add this earlier today, but I had to do some work for my real job. Uploading 15.4 million place records into Weather Now revealed some unexpected statistics. As you might expect from a military website, the National Geospatial-Intelligence Agency got a lot of its data from military sources. And the military tends to map things they care about in great detail. So the top 10 countries by place counts turn out to be: China, 2.1 million United States, 1.1 million Russia, 857,000 Iran, 686,000...
Punzun Ltd: 25 years (this iteration)
GeneralHistoryPersonalPoliticsReligionRepublican PartySoftwareUS PoliticsWork
Punzun Ltd. (an Illinois corporation doing business as Inner Drive Technology) turns 25 today! I set up the corporation before I moved back to Illinois from New York, so that I could take either a contract or full-time job when I got here. I can scarcely believe I've been back nearly 25 years. And 25 years ago—this was months before Bush v Gore, remember—I would not have believed that these would be the news stories I'd care about in 2025: The unelected winger specifically tasked with destroying our...
Wednesday afternoon notes
BeerBlogEngine.NETBlogsChicagoEntertainmentGeneralRailroadsSoftwareTravelWeatherWork
I'm just noting a few things and moving on with my day: Pilot Project Brewing has announced plans for a second brewery/taproom in Wrigleyville, just 500 meters from the Addison Red Line station. Google Maps turned 20 four days ago, and The Guardian has a history of how it began. Microsoft will be retiring the (11-year-old) database APIs that this build of The Daily Parker uses, so watch this space for news about a brand new Daily Parker experience this fall! I'm planning to wrap up a new release of...
Avoiding going outside
CanadaCassieChicagoCrimeDemocratic PartyEntertainmentEnvironmentGeneralGeographyIllinoisInternetLawPoliticsRepublican PartySoftwareTechnologyTelevisionTransport policyTravelUrban planningUS PoliticsWeatherWinterWorkWorld Politics
Yesterday, the temperature at Inner Drive Technology World HQ scraped along at -11°C early in the morning before "warming" up to -7.5°C around 3pm. Cassie and I got a 22-minute walk around then and she seemed fine. Today the pattern completely inverted. I woke up during the warmest part of the day: 7am, -8°C. Around 8am the temperature started dropping and now hovers around -11°C again—slightly colder than the point where I limit Cassie to 15 minutes outside. She just doesn't feel cold, apparently, and...
I've just finished updating the Weather Now gazetteer, the database of geographical information that connects weather information to locations. This involved re-importing 283 countries and 4,494 administrative divisions from the National Geospatial Information Agency, plus 25,668 weather stations from the National Climate Data Center and 20,166 airports from the Federal Aviation Administration. Most of these places already existed in the gazetteer, so they just got freshened up from the latest releases...
I've been working on a long-overdue update to Weather Now's gazetteer, the database of places that allows people to find their weather. The app uses mainly US government data for geographic names and locations, but also some international sources. This matters because the US government has a thing called "Geopolitical Entities and Codes (GEC)," which superseded Federal Information Processing Standard (FIPS) publication 10-4. Everyone else in the world use International Standards Organization publication...
The darkest decile of the year has passed
AstronomyBidenBusinessCaliforniaCanadaChicagoClimate changeEconomicsEntertainmentEnvironmentFoodGeneralGeographyPoliticsSecuritySoftwareUrban planningUS PoliticsWeatherWork
A friend pointed out that, as of this morning, we've passed the darkest 36-day period of the year: December 3rd to January 8th. On December 3rd at Inner Drive Technology World HQ, the sun rose at 7:02 and set at 16:20, with 9 hours 18 minutes of daylight. Today it rose at 7:18 and will set at 16:38, for 9 hours 20 minutes of daylight. By the end of January we'll have 10 hours of daylight and the sun will set after 5pm for the first time since November 3rd. It helps that we've had nothing but sun today....
Item the first: Weather Now got an update today. Under the hood, it got its annual .NET version refresh (to .NET 9), and some code-quality improvements. But I also added a fun new feature called "Weather Score." This gives a 0-to-100 point value to each weather report, showing at a glance where the best and worst weather is. A perfect day (by my definition) is 22°C with a 10°C dewpoint, light winds, mostly-clear skies, and no precipitation. The weather at O'Hare right now is not, however, perfect, and...
I just had a hilarious meeting with a vendor. We (at my day job) use a JavaScript library for a small but useful feature in our application. We've used it for probably the app's entire 10 year lifespan and haven't given it a second thought. Recently, a security issue showed up on a routine scan, implicating the (obsolete) version we use. So we have to get the latest version, and company policy requires us to get a commercial license to protect our own IP. So we got in touch with the vendor, which took...
The Noodle Incident
CaliforniaChicagoCrimeDemocratic PartyElection 2024EntertainmentGeneralHealthIllinoisJapanJokesPersonalPoliticsRepublican PartySecuritySoftwareUS PoliticsWorkWorld Politics
Today is the 30th anniversary of the trope-namer first appearing in Calvin and Hobbes, making the comic strip self-referential at this point. (It's the ur-noodle incident.) Unfortunately, today's mood rather more reflects The Far Side's famous "Crisis Clinic" comic from the same era: Adam Gray (D) has defeated US Representative John Duarte (R) in California's 13 district, bringing the House of Representatives to its final tally of 210 Democrats and 215 Republicans. An assassin shot and killed...
Brews & Choos walk today
AbortionAstronomyAutumnBeerCassieChicagoCrimeDemocratic PartyEconomicsEntertainmentEnvironmentGeneralGeographyPersonalPoliticsRailroadsReligionRepublican PartySoftwareTravelUrban planningUS PoliticsWeather
The weather doesn't seem that great for a planned 15-kilometer walk through Logan Square and Avondale to visit a couple of stragglers on the Brews & Choos Project. We've got 4°C under a low overcast, but only light winds and no precipitation forecast until Monday night. My Brews & Choos buddy drew up a route starting from the east end of the 606 Trail and winding up (possibly) at Jimmy's Pizza Cafe. Also, I've joined BlueSky, because it's like Xitter without the xit. The Times explains how you, too, can...
Heads-down research and development today
AviationBeerEconomicsEntertainmentGeneralHistoryMusicPersonalPoliticsSoftwareTravelTrumpWeatherWork
I usually spend the first day or two of a sprint researching and testing out approaches before I start the real coding effort. Since one of my stories this sprint requires me to refactor a fairly important feature—an effort I think will take me all of next week—I decided to read up on something today and have wound up in a rabbit hole. Naturally, that means a few interesting stories have piled up: The Presidential Greatness Project released its annual list of, well, presidents, putting Lincoln at the...
Heading for another boring deployment
AviationBidenChicagoDevOpsEnvironmentGeneralHistoryPersonalPoliticsRepublican PartySoftwareSpringTravelTrumpUS PoliticsWork
Today my real job wraps up Sprint 109, an unexciting milestone that I hope has an unexciting deployment. I think in 109 sprints we've only had 3 or 4 exciting deployments, not counting the first production deployment, which always terrifies the dev team and always reminds them of what they left out of the Runbook. The staging pipelines have already started churning, and if they uncover anything, the Dev pipelines might also run, so I've lined up a collection of stories from the last 24 hours to keep me...
The rise of Global Tetrahedron
BidenBusinessChicagoEconomicsEntertainmentGeneralHistoryJournalismJudaismLawPoliticsRepublican PartySoftwareTransport policyTravelUrban planningUS Politics
The satirical newspaper The Onion just got bought by a newly-formed LLC called, yes, Global Tetrahedron. Longtime Onion readers will probably recognize the name; I had to remind myself. Other events in the past day or so: Among the labor-rights wins on Tuesday was a tweak to wage and hour laws that will qualify millions more Americans for overtime pay. Despite having earned the title "Useful Idiot of the Year" a couple of times already, we haven't heard the last of US Representative Marjorie Taylor...
Hoping not to get rained on this afternoon
AbortionBusinessChicagoChinaClimate changeEntertainmentEnvironmentFoodGeneralGunsPoliticsRepublican PartySoftwareUrban planningUS PoliticsWeatherWorkWorld Politics
A whole knot of miserable weather is sneaking across the Mississippi River right now, on its way to Chicago. It looks like, maybe, just maybe, it'll get here after 6pm. So if I take the 4:32 instead of the 5:32, maybe I'll beat it home and not have a wet dog next to me on the couch later. To that end I'm punting most of these stories until this evening: US Representative and professional troll Marjorie Taylor Greene (R-GA) wants you to think she isn't serious, except when she is. I would say, when her...
Coding continues apace
AstronomyChicagoCrimeDogsElection 2020GeneralGeographyPoliticsSecuritySoftwareTravelTrumpUrban planningUS PoliticsWork
I'm almost done with the new feature I mentioned yesterday (day job, unfortunately, so I can't describe it further), so while the build is running, I'm queuing these up: Philip Bump analyzes the New York Supreme Court Justice Juan Merchan's dismissal of the XPOTUS's bogus immunity claim. Chicago mayor Brandon Johnson (D) told reporters he's done everything he promised to do when he took office a year ago, at which point the reporters no doubt collectively cocked their eyebrows. Molly White doesn't think...
Reading list for this week
AbortionAviationDrug policyElection 2024EnvironmentGeneralGeographyHealthLawPoliticsPsychologySoftwareTransport policyTravelTrumpUK PoliticsUrban planningUS PoliticsWeather
As I'm trying to decide which books to take with me to Germany, my regular news sources have also given me a few things to put in my reading list: Jamelle Bouie points out that the XPOTUS "owns Dobbs and everything that comes with it." A group of app users have sued the company that owns Tinder and Hinge for predatory business practices. Tyler Austin Harper reviews Molly Roden Winter's memoir about polyamorous life, and concludes polyamory "is the result of a long-gestating obsession with authenticity...
Erev Christmas Eve evening roundup
AviationChicagoCrimeElection 2020Election 2024EntertainmentFitnessGeneralHistoryMoviesPersonalPoliticsRepublican PartySoftwareTravelTrumpUS PoliticsWork
As I wait for my rice to cook and my adobo to finish cooking, I'm plunging through an unusually large number of very small changes to a codebase recommended by one of my tools. And while waiting for the CI to run just now, I lined these up for tomorrow morning: Michael Tomasky calls former House Speaker Kevin McCarthy (R-CA), who has left the House and scampered back to California, "the most incompetent House Speaker of all time." (No argument from me.) Former GOP strategist, lawyer, and generally sane...
In other news...
ChicagoConservativesEducationElection 2024GeneralHistoryIllinoisIsraelJournalismPoliticsRacismRepublican PartySCOTUSSoftwareTrumpUK PoliticsUS PoliticsWeatherWorld Politics
Despite the XPOTUS publicly declaring himself a fascist (again), the world has other things going on: Josh Marshall plots out how House Speaker Mike Johnson (R-LA) knows he has to pass a budget that Democrats can stomach, but because he still has to placate the extreme right wing of his party, he's pretending he can pass something else. And the clown show continues. The US Supreme Court has published their new ethics rules, which look a lot like a subset of the rules the rest of the Federal courts have...
Productive day, rehearsal tonight, many articles unread
ApolloAviationEconomicsElection 2024EntertainmentGeneralGeographyHistoryJournalismMusicPersonalPoliticsRepublican PartySoftwareTrumpUrban planningUS PoliticsWork
I closed a 3-point story and if the build that's running right now passes, another bug and a 1-point story. So I'm pretty comfortable with my progress through this sprint. But I haven't had time to read any of these, though I may try to sneak them in before rehearsal: The XPOTUS has started using specific terminology to describe his political opponents that we last heard from a head of government in 1945. (Guess which one.) Says Tomasky: "[Republicans] are telling us in broad daylight that they want to...
Not the long post I hope to write soon
BaseballBusinessChicagoEntertainmentGeneralGeographyHistoryIsraelLawLiteratureMilitary policyPoliticsRestaurantsSoftwareTerrorismTravelUrban planningWorld Politics
I'm still thinking about propaganda in the Gaza war, but I'm not done thinking yet. Or, at least, not at a stopping point where a Daily Parker post would make sense. That said, Julia Ioffe sent this in the introduction to her semi-weekly column; unfortunately I can't link to it: The absolutely poisonous discourse around this war, though, has taken all of that to a whole other level. The rage, the screaming, and the disinformation, ahistoricity, the anti-Semitism and Islamophobia, the propaganda—all of...
How is it Friday already?
AviationCrimeGeneralGeographyIsraelLawPoliticsRepublican PartySCOTUSSoftwareTaxationTravelUS PoliticsWorkWorld Politics
I spent way too much time chasing down an errant mock in my real job's unit test suite, but otherwise I've gotten a lot done today. Too much to read all these articles: Julia Ioffe interviews Ambassador Dennis Ross on the disappearing hopes for a two-state solution in Israel. Ruth Marcus wonders whether Associate Justice Clarence Thomas (R) committed tax fraud when he accepted a $267,000 motor home. Josh Marshall wonders WTF with House Speaker Mike Johnson's (R-LA) black "son?" Paul Krugman bemoans the...
Why am I indoors?
AutumnAviationChicagoDemocratic PartyEconomicsEntertainmentGeneralGeographyHistoryLawMappingPersonalPoliticsRepublican PartySecuritySoftwareTravelUS PoliticsWeatherWork
It's 22°C and sunny right now, making me wonder what's wrong with me that I'm putting together a software release. I probably should fire off the release, but I'm doing so under protest. I also probably won't get to read all of these things I've queued up: Peter Hamby expresses concern about the rise of the illiberal left in the younger generation. Despite the ravings of Fox News and other right-leaning propagandists, the US economy is actually doing better right now than at any point since Obama was in...
Sure Happy It's Thursday
BeerChicagoCrimeEconomicsEntertainmentEuropeGeneralGeographyHistoryIsraelPoliticsRailroadsRepublican PartySoftwareTransport policyTravelUrban planningUS PoliticsWorkWorld Politics
I'm iterating on a UI feature that wasn't 100% defined, so I'm also iterating on the API that the feature needs. Sometimes software is like that: you discover that your first design didn't quite solve the problem, so you iterate. it's just that the iteration is a bit of a context shift, so I'm going to read for about 15 minutes to clear my head: Kevin Philips, whose 1969 book The Emerging Republican Majority laid out Richard Nixon's "southern strategy" and led to the GOP's subsequent slide into...
Friday after the cold front
AutumnBaseballChicagoChinaCrimeEconomicsEntertainmentGeneralPoliticsRestaurantsSoftwareTravelTrumpUkraineUS PoliticsWeatherWorkWorld Politics
A rainy cold front passed over Inner Drive Technology WHQ just after noon, taking us from 15°C down to just above 10°C in two hours. The sun has come back out but we won't get a lot warmer until next week. I've had a lot of coding today, and I have a rehearsal in about two hours, so this list of things to read will have to do: Mother Jones's Russ Choma thinks the XPOTUS doesn't really want to win his fraud trial. Robert Wright interviewed Brown University professor Lyle Goldstein, late of the US Naval...
In other news of the day...
CrimeEconomicsEntertainmentGeneralHistoryLawMilitary policyMoviesPersonalPoliticsReligionRepublican PartySCOTUSSoftwareTelevisionTrumpWorkWriting
It's only Wednesday? Sheesh... The Writers Guild of America got nearly everything they wanted from the Alliance of Motion Picture and Television Producers (i.e., the Astroturf organization set up by the big studios and streamers to negotiate with the Guilds), especially for young writers and for hit shows, but consumers should expect more bundling and higher monthly fees for shows in the future. Josh Marshall suspects that the two competing storylines about the XPOTUS (that he's about to return to...
i just pushed a new build of Weather Now that corrects a problem no one else knew about in the way it managed time zones. The work took about 3 hours over several days this week, sneaking half an hour here and there between rehearsals, performances, and my day job. I also worked on some code to interface with my home weather station. I've gotten it to download and parse reports from my Netatmo devices, and to refresh (and securely store) the API access token. I figure it'll take about 3-5 more hours to...
Stuff to read later
BidenCassieChicagoClimate changeEconomicsElection 2024EntertainmentFoodGeneralGeographyPersonalPoliticsRailroadsSoftwareSummerTaxationTransport policyTravelUS PoliticsWeatherWork
I'm still working on the feature I described in my last post. So some articles have stacked up for me to read: The US Senate has the second-highest average age in its 234-year history, with 34 members over 70. The House is the third-oldest, with 72 members over 70. Josh Marshall (and The Daily Parker) don't extend that worry to the presidency, however: we're just fine with four more years of President Biden being the oldest president ever. The Chicago Transit Authority has cut over the CTA Red and...
I finished the main part of the feature I've been fighting since last week, only to discover that a sub-feature needs refactoring as well. Basically, before implementing this feature, the user would recalculate their model every time they changed its parameters. Calculation usually takes 5-10 seconds for most models, but (a) for some models it takes up to a minutes and (b) the calculation engine uses a first-in-first-out queue when calculating. But the calculation engine caches on a most-recently-used...
Papagena lebe!
ApolloChicagoCrimeDogsEntertainmentGeographyLawMoviesMusicNew YorkPersonalPoliticsRepublican PartyScienceSoftwareTravelUS PoliticsWriting
I'm just over a week from performing with the Chicago Symphony Orchestra at Ravinia in Mozart's Die Zauberflöte, so as I try to finish a feature that turned out to be a lot bigger than I thought, I'm hearing opera choruses in my head. Between rehearsals and actual work, I might never get to read any of these items: Jesse Wegman describes how to tell a political prosecution from a real one, which would be great except the people doing the political ones don't read the Times. Meaghan O'Rourke points to...
An entertainer, a criminal, and an architect died this week, and we should remember them all. The most notable person to die was singer Tony Bennet, 96: His peer Frank Sinatra called him the greatest popular singer in the world. His recordings – most of them made for Columbia Records, which signed him in 1950 – were characterized by ebullience, immense warmth, vocal clarity and emotional openness. A gifted and technically accomplished interpreter of the Great American Songbook, he may be best known for...
Run, you clever unit tests, and pass
COVID-19CrimeEconomicsElection 2024EntertainmentGeneralPoliticsRussiaSoftwareTelevisionTrumpUkraineUS PoliticsWorkWorld PoliticsWriting
The first day of a sprint is the best day to consolidate three interfaces with three others, touching every part of the application that uses data. So right now, I am watching most of my unit tests pass and hoping I will figure out why the ones that failed did so before I leave today. While the unit tests run, I have some stuff to keep me from getting too bored: The XPOTUS keeps confirming every theory about his behavior, this time that he only wants to run in 2024 to postpone the consequences of...
Free time resumes tomorrow
ApolloCassieChicagoEntertainmentEuropeGeneralGeographyLanguageMusicPersonalSoftwareTravelWork
During the weeks around our Spring Concert, like during the first couple of weeks of December, I have almost no free time. The Beethoven performance also took away an entire day. Yesterday I had hoped to finish a bit of code linking my home weather station to Weather Now, but alas, I studied German instead. Plus, with the aforementioned Spring Concerts on Friday and today, I felt that Cassie needed some couch time. (We both sit on the couch while I read or watch TV and she gets non-stop pats. It's good...
Lebanon's incompetent government
GeneralGeographyPoliticsSoftwareTechnologyTime zonesWorkWorld Politics
Lebanon has one of the most chaotic political systems in the world. The previous government presided over a massive ammonium nitrate explosion they could have prevented had any one person in government taken responsibility for removing a derelict Russian freighter. Once again, the Lebanese government has displayed head-shaking incompetence, this time on what seems like a minor matter but could lead to more religious unrest as hot weather combines with people not eating or drinking water during the day....
Following up on a few things
ChicagoDemocratic PartyEntertainmentGeneralHistoryIllinoisLawMilitary policyPoliticsRacismRepublican PartySoftwareUS PoliticsWorkWriting
Perhaps the first day of spring brings encourages some spring cleaning? Or at least, revisiting stories of the recent and more distant past: The Navy has revisited how it names ships, deciding that naming United States vessels after events or people from a failed rebellion doesn't quite work. As a consequence, the guided missile cruiser USS Chancellorsville (CG-62, named after a Confederate victory) will become the USS Robert Smalls, named after the former slave who stole the CSS Planter right from...
Time-boxed research
EnvironmentPoliticsRussiaSecuritySoftwareTaxationTransport policyUkraineUrban planningWorkWorld Politics
I've got an open research problem that's a bit hard to define, so I'm exploring a few different avenues of it. I hope reading these count: Dara Massicot performs an autopsy on Russia's invasion of Ukraine. Walter Kirn worries about AIs inadvertently training themselves, and the mushy content that will result. Bruce Schneier describes hacking the tax code, which I hope he goes more into in his latest book, currently on my bedside table. The Texas DOT seems to be at war with urbanism, which makes a...
Unfortunate computer issues this morning
AviationChicagoGeneralGeographyMappingRailroadsSoftwareTravel
The Federal Aviation Administration halted all takeoffs from US airports for about an hour this morning after the Notice to Air Missions (NOTAM) system failed. Planes have resumed flying, but the ripples from this morning's ground stop could take a day or two to resolve. Good thing I'm not flying until Saturday. Also this morning, Chicago's transit agencies released a new real-time train tracker that finally allows commuters to see where (many) of Metra's trains actually think they are. I tested the...
Brace yourselves: winter is coming
AstronomyAviationBeerBusinessChicagoEntertainmentGeneralMoviesPersonalSecuritySoftwareTravelWeatherWhiskyWinterWork
We get one or two every year. The National Weather Service predicts that by Friday morning, Chicago will have heavy snowfall and gale-force winds, just what everyone wants two days before Christmas. By Saturday afternoon we'll have clear skies—and -15°C temperatures with 400 mm of snow on the ground. Whee! We get to share our misery with a sizeable portion of the country as the bomb cyclone develops over the next three days. At least, once its gone and we have a clear evening Saturday or Sunday, we can...
New York City has a huge online map of every tree they manage, and they just updated their UI: Near the Tennis House in Brooklyn’s Prospect Park grows a magnificent white oak that stands out for its impressive stature, with a trunk that’s nearly four feet wide. But the massive tree does more than leave visitors in awe. It also provides a slew of ecological benefits, absorbing some 25,000 tons of carbon dioxide and intercepting nearly 9,000 gallons of stormwater each year, according to city data. It also...
The Federal Trade Commission, which has become the de-facto enforcer for Silicon Valley shenanigans, has decided the smell coming from Twitter HQ can no longer be ignored after their top privacy and security people have left: It marked the second time in two days that a federal official has expressed concern about the chaotic developments at the company, coming less than 24 hours after President Biden said Musk’s relationships with other countries deserved scrutiny. The agency said that it was “tracking...
Fifteen minutes of voting
ArchitectureAviationBeerCassieChicagoElection 2022Election 2024EntertainmentGeneralGeographyHistoryLawParkerPersonalPoliticsRepublican PartyRomeSoftwareSportsTravelTrumpUrban planningUS PoliticsWeatherWork
Even with Chicago's 1,642 judges on the ballot ("Shall NERDLY McSNOOD be retained as a circuit court judge in Cook County?"), I still got in and out of my polling place in about 15 minutes. It helped that the various bar associations only gave "not recommended" marks to two of them, which still left 1,640 little "yes" ovals to fill in. Meanwhile, in the rest of the world... Republican pollster Rick Wilson, one of the co-founders of the Lincoln Project, has a head-shaking Twitter thread warning everyone...
Elon Musk had a lot going for him when he started his first company: rich parents, being white in Apartheid South Africa, malignant narcissism, etc. Like other well-known billionaire charlatans, he has had his share of spectacular successes, and still decided to find his own little corner of the Peter Principle. So let it be with Twitter: Some might say Elon Musk, who last week became Twitter’s official new owner, has buyer’s remorse. But that implies he had actually wanted the thing before he bought...
God save our gracious King
BidenDemocratic PartyEconomicsElection 2022Election 2024GeneralGeographyHistoryPoliticsRepublican PartySecuritySoftwareTrumpUK PoliticsUS PoliticsWork
With the death of Queen Elizabeth II, the British National Anthem has changed back to "God Save the King" for the third time in 185 years. In other news: The Guardian explains Elizabeth's funeral and other events that will take place over the next 10 days. James Fallows takes a second look at President Biden's speech from last week, in the context of the predictable reaction cycle about anything he does. Dana Milbank doesn't worry the MAGA folks want a Mussolini, since some of them keep going on about...
Lunchtime links
BusinessClimate changeCrimeGeneralGeographyHistoryPersonalPoliticsSoftwareTrumpUS PoliticsWeatherWork
Happy Monday: The XPOTUS uses the same pattern of lies every time he gets caught committing a crime. Jennifer Rubin says this was his dumbest crime yet. Usability experts at the Nielsen/Norman Group lay out everything you hate about phone trees, and how companies could fix them. My generation should be your boss now, but of course, we aren't. Within 30 years, Chicago could experience 52°C heat indexes. I would now like to take a nap, but alas...
James Fallows highlights a new US government website that maps how bad the climate will get in your town: Let me give just a few illustrations from the first such climate-based public map the White House has released, HEAT.gov. The main points about all this and related “digital dashboards” (like the one for Covid) and maps: They are customizable. You can see your immediate neighborhood, or the entire world. They are configurable. You can see the “real” weather as of 2020, and the projected weather as...
Head (and kittens) exploding!
BusinessChicagoCrimeDrug policyEconomicsElection 2020EntertainmentEnvironmentGamesIllinoisPersonalPoliticsRussiaSecuritySoftwareTaxationTelevisionTrumpUS PoliticsWork
Leading off today's afternoon roundup, The Oatmeal (Matthew Inman) announced today that Netflix has a series in production based on his game Exploding Kittens. The premise: God and Satan come to Earth—in the bodies of cats. And freakin' Tom Ellis is one of the voices, because he's already played one of those parts. Meanwhile, in reality: A consumers group filed suit against Green Thumb Industries and three other Illinois-based cannabis companies under the Clayton Act, alleging collusion that has driven...
It's 5pm somewhere
AbortionChicagoCrimeEconomicsEntertainmentGeneralGeographyIllinoisMoviesPoliticsReligionRepublican PartySoftwareUS PoliticsWorld Politics
Actually, it's 5pm here. And I have a few stories queued up: Oklahoma has a new law making abortion a felony, because the 1950s were great for the white Christian men who wrote that law. Monika Bauerlein explains why authoritarians hate a free press. Not that we didn't already know. Jonathan Haidt explains "why the past 10 years of American life have been uniquely stupid." ("It's not just a phase.") Inflation in the US hit a 40-year high at 8.5% year over year, but Paul Krugman believes it will drop...
Somebody call lunch!
AstronomyBusinessEconomicsElection 2016GeneralGeographyHistoryImmigrationPoliticsRepublican PartySoftwareTime zonesTravelTrumpWork
I've gotten two solid nights of sleep in a row, and I've got a clean desk for the first time in weeks. I hope that this becomes the norm, at least until November, when I'll have a packed musical schedule for six weeks as the Apollo Chorus rehearses or performs about 30 times. But that's seven months off. That gives me plenty of time to listen to or read these: Time Zone Database coordinator Paul Eggert explains the TZDB, its history, and how it works. David Sedaris discusses how the US changed between...
The Apollo Chorus performed last night at the Big Foot Arts Festival in Walworth, Wis., so I haven't done a lot of useful things today. I did take a peek at the other weather archive I have lying around, and discovered (a) it has the same schema as the one I'm currently importing into Weather Now 5, and (b) it only goes back to August 2006. Somewhere I have older archives that I need to find... But if not, NOAA might have some.
Sunday night I finished moving all the Weather Now v4 data to v5. The v4 archives went back to March 2013, but the UI made that difficult to discover. I've also started moving v3 data, which would bring the archives back to September 2009. I think once I get that done then moving the v2 data (back to early 2003) will be as simple as connecting the 2009 import to the 2003 database. Then, someday, I'll import data from other sources, like NCEI (formerly NCDC) and the Met*, to really flesh out the...
I've just switched the DNS entries for wx-now.com over to the v5 App, and I've turned off the v4 App and worker role. It'll take some time to transfer over the 360 GB of archival data, and to upload the 9 million rows of Gazetteer data, however. I've set up a virtual machine in my Azure subscription specifically to do that. This has been quite a lift. Check out the About... page for the whole history of the application. And watch this space over the next few months for more information about how the app...
This weekend, I built the Production assets for Weather Now v5, which means that the production app exists. I haven't switched over the domain name yet, for reasons I will explain. But I've created the Production Deploy pipeline in Azure DevOps and it has pushed all of the bits up to the Production workloads. Everything works, but a couple of features don't work perfectly. Specifically, the Search feature will happily find everything in the database, but right now, the database only has about 31,000...
I just finished upgrading an old, old, old Windows service to .NET 6 and a completely different back end. It took 6.4 hours, soup to nuts, and now the .NET 6 service is happily communicating with Azure and the old .NET Framework 4.6 service is off. Meanwhile, the Post published a map (using a pretty lazy algorithm) describing county-by-county what sunrise times will look like in January 2024 if daylight saving time becomes permanent. I'd have actually used a curve tool but, hey, the jagged edges look...
Lazy Sunday
BikingCanadaCassieChicagoCOVID-19Election 2022IllinoisPersonalPoliticsRepublican PartySoftwareTravelUS PoliticsWeatherWinterWorkWorld Politics
Other than making a hearty beef stew, I have done almost nothing of value today. I mean, I did some administrative work, and some chorus work, and some condo board work. But I still haven't read a lick of the books I've got lined up, nor did I add the next feature to the Weather Now 5 app. I did read these, though: An Illinois state judge has enjoined the entire state from imposing mask mandates on schools, just as NBC reports that anti-vaxxer "influencers" are making bank off their anti-social...
All of my apps run on servers that use UTC. As it's now 00:40 UTC, that means the code I just pushed to a dev server will start running on January 1st UTC, which is in fact why I waited until after 6pm to push the code up to DevOps. It looks like Chicago will get about 150 mm of snow tomorrow during the day, giving me plenty of time to continue my four-day weekend of coding. If I can get a couple of things out of my backlog and onto my dev environment before Sunday night, I may just release the link to...
I've finally resumed progress on a major update to Weather Now. I finished everything except the user interface way back in April, but between summer, Cassie, and everything else, I paused. At least, until last week, when something clicked in my head, and I started writing again. As my dad would say, I broke the code's back. It turns out, the APIs really work well, and I'm getting used to .NET Blazor, so I'm actually getting things done. The only downside applies to Cassie, who will probably only get 90...
Having a day off with no real responsibilities gives me the space to take care of some niggling projects I've put off for a while. First, I finished updating a document for the Apollo Chorus that lists every sit and stand cue and every score marking for our Messiah performances. That took about 8 hours altogether. I also updated my main NuGet packages to .NET 6. As a nice bonus, because of a quirk in how .NET assemblies get versioned, today's release is version 4.2.8000. (I kept the previous release...
Short-term license agreements
BidenCrimeEconomicsElection 2020EntertainmentGeneralGeographyHistoryLawMappingPoliticsRailroadsSoftwareTelevisionTravelUS PoliticsWork
Today is the 50th anniversary of DB Cooper jumping out of a hijacked airplane into the wilds of Washington State. It's also the day I will try to get a Covid-19 booster shot, since I have nothing scheduled for tomorrow that I'd have to cancel if I wind up sleeping all day while my immune system tries to beat the crap out of some spike proteins in my arm. Meanwhile, for reasons passing understanding (at least if you have a good grasp of economics), President Biden's approval ratings have declined even...
The busy season
ApolloArtBeerCassieChicagoChinaCOVID-19DogsEntertainmentGeneralMicrosoftMicrosoft AzurePoliticsProgrammingSoftwareTrumpUS PoliticsWork
I've spent today alternately upgrading my code base for my real job to .NET 6.0, and preparing for the Apollo Chorus performances of Händel's Messiah on December 11th and 12th. Cassie, for her part, enjoys when I work from home, even if we haven't spent a lot of time outside today because (a) I've had a lot to do and (b) it rained from 11am to just about now. So, as I wait for the .NET 6 update to build and deploy on our dev/test CI/CD instance (I think I set the new environments on our app services...
Slouching towards fascism
BeerChicagoDemocratic PartyElection 2022EntertainmentPoliticsRepublican PartySoftwareTaxationTravelUS PoliticsWork
The software release yesterday that I thought might be exciting turned out to be fairly boring, which was a relief. Today I'm looking through an ancient data set of emails sent to and from some white-collar criminals, which is annoying only because there are millions and I have to write some parsing tools for them. So while I'm decompressing the data set, I'll amuse myself with these articles, from least to most frightening: The Chicago Tribune lists six breweries they think you should take out-of-town...
Busy day, time to read the news
AutumnCaliforniaCassieChicagoClimate changeEntertainmentEnvironmentEuropeGeneralGeographyHistoryLawMoviesPolicePoliticsRailroadsSoftwareTravelUS PoliticsWeatherWorld Politics
Oh boy: Voters have defeated billionaire, populist Czech prime minister Andrej Babiš through the simple process of banding together to kick him out, proof that an electorate can hold the line against strongmen. A school administrator in Texas told teachers that "if they have a book about the Holocaust in their classroom, they should also offer students access to a book from an 'opposing' perspective." Because Texas. Oakland Police should stop shooting Black men having medical emergencies, one would...
Via Bruce Schneier, researchers have developed software that can bamboozle facial-recognition software up to 60% of the time: The work suggests that it’s possible to generate such ‘master keys’ for more than 40% of the population using only 9 faces synthesized by the StyleGAN Generative Adversarial Network (GAN), via three leading face recognition systems. The paper is a collaboration between the Blavatnik School of Computer Science and the school of Electrical Engineering, both at Tel Aviv. StyleGAN is...
Maxis died in 2015 and made Electronic Arts king of SimCity. When I recently found a copy of SimCity 4, one of the only computer games I've ever played long enough to get good at, I thought I might waste an hour or two on a rainy Sunday playing it. Unfortunately, the CD requires a copy-protection feature in Windows Vista that Windows 7 dropped because researchers discovered a massive security flaw in it. The CD, therefore, will only work on Windows Vista or Windows XP, neither of which I have run...
Sure Happy It's Thursday! Earth Day edition
AviationBeerChicagoClimate changeCrimeEntertainmentGeneralGeographyScienceSecuritySoftwareTransport policyTravelWeatherWorkWorld Politics
Happy 51st Earth Day! In honor of that, today's first story has nothing to do with Earth: The MOXIE experiment on NASA's Perseverance rover produced 5.4 grams of oxygen in an hour on Mars, not enough to sustain human life but a major milestone in our efforts to visit the planet. Back on earth, the Nature Conservancy has released a report predicting significant climate changes for Illinois, including a potential 5°C temperature rise by 2100. Microsoft has teamed up with the UK Meteorological Office (AKA...
I've been coding most of the day because it has rained since 1pm. I'm getting very close to a series of posts on what I've been working on the past few months, so stay tuned.
The world keeps turning
AviationChicagoClimate changeEntertainmentGeneralMicrosoft AzureMoviesPersonalPoliticsRepublican PartyRussiaSecuritySoftwareTravelUS PoliticsWeatherWisconsinWorkWorld Politics
Even though my life for the past week has revolved around a happy, energetic ball of fur, the rest of the world has continued as if Cassie doesn't matter: US Senator Ron Johnson (R-WI) has taken the lead in spewing right-wing conspiracy bullshit in the Senate. Retired US Army Lt Colonel Alexander Vindman joins Garry Kasparov in an op-ed that says it's not about the individual politicians; Russia's future is about authoritarianism against democracy. Deep waters 150 meters under the surface of Lake...
The Daily WTF today takes us back to one of the worst software bugs in history, in terms of human lives ruined or lost: The ETCC incident was not the first, and sadly was not the last malfunction of the Therac-25 system. Between June 1985 and July 1987, there were six accidents involving the Therac-25, manufactured by Atomic Energy Canada Limited (AECL). Each was a severe radiation overdose, which resulted in serious injuries, maimings, and deaths. As the first incidents started to appear, no one was...
This morning I posted about some frustrations in getting our CRM system to import donations from our fundraising events so that we can then match donations with addresses to send out end-of-year tax letters. The frustrations have grown to the point where naming names seems appropriate, if only because Neon One, the CRM company, has a web-based ticketing system that doesn't really handle the level of detail their developers will need to (a) understand the problem, (b) understand the frustration, and (c)...
I'm president of the Apollo Chorus of Chicago. One of my jobs is to send out letters to all of our donors acknowledging their donations for the previous calendar year. These letters should have gone out by January 31st, but...well...OK, I'm a little delinquent. And for no other reason than I really, really did not want to merge all the data by hand. You see, we use a smallish CRM system for all of our institutional data, which works pretty well, especially with our membership and tech-savvy donors. Many...
Everyone who understands security predicted this
ConservativesPoliticsRepublican PartySecuritySoftwareUS PoliticsWork
Security is hard. Everyone who works in IT knows (or should know) this. We have well-documented security practices covering every part of software applications, from the user interface down to the hardware. Add in actual regulations like Europe's GDPR and California's privacy laws, you have a good blueprint for protecting user data. Of course, if you actively resist expertise and hate being told what to do by beanie-wearing nerds, you might find yourself reading on Gizmodo how a lone hacker exfiltrated...
Sony-made GPS chipsets failed all over the world this weekend when a GPS cheat-sheet of sorts expired: In general, the pattern of your route is correct, but it may be displaced to one side or the other. However, in many cases by the completion of the workout, it sorts itself out. In other words, it’s mostly a one-time issue. The issue has to do with the ephemeris data file, also called the EPO file (Extended Prediction Orbit) or Connected Predictive Ephemeris (CPE). Or simply the satellite pre-cache...
Today is slightly longer than yesterday
CanadaChicagoClimate changeCOVID-19EconomicsEntertainmentEuropeGeneralGeographyHistoryLawPoliticsRepublican PartySoftwareTravelTrumpUK PoliticsUS PoliticsWeatherWork
The December solstice happened about 8 hours ago, which means we'll have slightly more daylight today than we had yesterday. Today is also the 50th anniversary of Elvis Presley's meeting with Richard Nixon in the White House. More odd things of note: Former Justice Department Office of Legal Counsel attorney Erica Newland has some regrets. Congress finally passed a $900 million stimulus bill that has no real hope of stimulating anyone who's unemployed or about to lose his home. Nice work, Mitch. Canada...
Also known as: read all error messages carefully. I've just spent about 90 minutes debugging an Azure DevOps pipeline after upgrading from .NET Core 3.1 to .NET 5 RC2. Everything compiled OK, all tests ran locally, but the Test step of my pipeline failed with this error message: ##[error]Unable to find D:\a\1\s\ProjectName.Tests\bin\Debug\net5.0\ref\ProjectName.Tests.deps.json. Make sure test project has a nuget reference of package "Microsoft.NET.Test.Sdk". The test step had this Test Files...
Evening news roundup
BidenChicagoCOVID-19Election 2020EntertainmentGeneralGeographyMappingPersonalPoliticsRailroadsRepublican PartySoftwareTelevisionTransport policyTravelTrumpUS PoliticsWork
I dropped off my completed ballot this afternoon, so if Joe Biden turns out to be the devil made flesh, I can't change my vote. Tonight, the president and Joe Biden will have competing, concurrent town halls instead of debating each other, mainly because the president is an infant. The Daily Parker will not live-blog either one. Instead, I'll whip up a stir-fry and read something. In other news: Chris Christie continues the tradition of Republican politicians not understanding something until it happens...
Fifth month in a row over 50
ChicagoCrimeElection 2020EntertainmentGeneralPoliticsRacismRepublican PartySecuritySoftwareTrumpUS PoliticsWork
This is my 55th post this month, and the fifth month in a row in which I've posted over 50 times. That brings my 12-month total to 581, the third record in a row and the fifth record this year. I guess Covid-19 has been good for something. Here's what I'm reading today: Authorities in Tampa have charged 17-year-old Graham Clark with masterminding last month's massive Twitter hack. The Atlantic's David Graham says the president is trying to destroy the election's legitimacy. George Will points to the...
Even as Garmin picks up the pieces from what they now admit was a massive ransomware attack, bulk email provider SendGrid has gone down spectacularly. I use SendGrid, as does my company, for status emails and such. Here's my problem, though: I have a code update to put out that specifically targets a bug in SendGrid's .NET library that they claim to have fixed. My automated build pipelines won't release new code unless all the unit tests pass. Right now, the SendGrid tests fail sporadically, and at...
About this blog (v4.61)
ApolloAviationBaseballBlogsBusinessChicagoChicago CubsCloudDailyElection 2016EntertainmentGeographyLondonParkerPersonalPhotographyPoliticsReligionSoftwareTravelUS PoliticsWindows AzureWorkWorld PoliticsWriting
I'm David Braverman, this is my blog, and Parker is my 14-year-old mutt. I last updated this About... page in May 2019, and the world has changed. So here's the update. The Daily Parker is about: Parker, my dog, whom I adopted on 1 September 2006. Politics. I'm a moderate-lefty by international standards, which makes me a radical left-winger in today's United States. The weather. I've operated a weather website for more than 20 years. That site deals with raw data and objective observations. Many...
Did someone call "lunch?"
BusinessChicagoEnvironmentGeneralHumorIllinoisJournalismPoliticsRailroadsRepublican PartyScienceSoftwareTravelTrumpUS PoliticsWork
I think today is Tuesday, the first day of my 10th week working from home. That would make today...March 80th? April 49th? Who knows. It is, however, just past lunchtime, and today I had shawarma and mixed news: Carbon emissions have declined 17% year-over-year, thanks to Covid-19-related slowdowns reducing petroleum consumption. (See? It's not all bad news.) Crain's Chicago Business reviews how businesses rate Mayor Lori Lightfoot's first year in office. And their editorial board says we should "start...
Gosh, where to begin?
ApolloAviationCanadaChicagoCOVID-19EconomicsElection 2020EntertainmentGeneralGunsMusicPersonalPoliticsRepublican PartySoftwareSpringTrumpWeatherWork
Happy May Day! Or m'aidez? Hard to know for sure right now. The weather in Chicago is sunny and almost the right temperature, and I have had some remarkable productivity at work this week, so in that respect I'm pretty happy. But I woke up this morning to the news that Ravinia has cancelled its entire 2020 season, including a performance of Bernstein's White House Cantata that featured my group, the Apollo Chorus of Chicago. This is the first time Ravinia has done so since 1935. If only that were...
Backfield in motion
BrexitBusinessChicagoConservativesDogsElection 2020GeneralLabour PartyLondonMilitary policyObamaPoliticsRaleighSecuritySoftwareTrumpUK PoliticsUS PoliticsWeatherWinterWork
That's American for the English idiom "penny in the air." And what a penny. More like a whole roll of them. Right now, the House of Commons are wrapping up debate on the Government's bill to prorogue Parliament (for real this time) and have elections the second week of December. The second reading of the bill just passed by voice vote (the "noes" being only a few recalcitrant MPs), so the debate continues. The bill is expected to pass—assuming MPs can agree on whether to have the election on the 9th...
Lunchtime queue
EconomicsGeneralGeographyHistoryPoliticsScienceSoftwareTrumpUS PoliticsWorld Politics
I'll circle back to a couple of these later today. But at the moment, I've got the following queued up for my lunch hour: The Washington Post charitably describes yesterday's press conference in France as "a glimpse into Trump's unorthodox mind." As in, he lied through the whole thing. MSNBC says the G7 as a whole (which ended in the aforementioned presser) shows that other world leaders have learned to manipulate the president pretty well. Brazil, meanwhile has become the latest country to discover...
Things I don't have time to read right now
ArchitectureChicagoGeospatial dataHistoryMediaPoliticsRacismReligionRepublican PartyScienceSoftwareTrumpUrban planningUS PoliticsWorld PoliticsWriting
But I will take the time as soon as I get it: Conor Friedersdorf thinks Tucker Carlson "has failed to assimilate." (So do I.) Daniel Drezner says we have "the worst of all possible Iran policies." (So do I.) Author TJ Martinson won't teach at a downstate religious college this coming year because, apparently, someone got around to reading his new novel. (I just put it on my "to be read" list.) Architect Greg Tamborino won an affordable-housing contest with a bungalow that can easily convert into a...
About this Blog (v4.5)
AviationBaseballBlogsBusinessChicagoChicago CubsCloudDailyElection 2016EntertainmentGeographyLondonParkerPersonalPhotographyPoliticsReligionSoftwareTravelUS PoliticsWindows AzureWorkWorld PoliticsWriting
I'm David Braverman, this is my blog, and Parker is my 13-year-old mutt. I last updated this About... page in May 2017, and a couple have things have changed. So here's the update. The Daily Parker is about: Parker, my dog, whom I adopted on 1 September 2006. Politics. I'm a moderate-lefty by international standards, which makes me a radical left-winger in today's United States. The weather. I've operated a weather website for more than 16 years. That site deals with raw data and objective observations....
Yesterday, Microsoft made an error making a nameserver delegation chage (where they switch computers for their internal address book), causing large swaths of Azure to lose track of itself: Summary of impact: Between 19:43 and 22:35 UTC on 02 May 2019, customers may have experienced intermittent connectivity issues with Azure and other Microsoft services (including M365, Dynamics, DevOps, etc). Most services were recovered by 21:30 UTC with the remaining recovered by 22:35 UTC. Preliminary root...
"It is no one's right to despise another. It is a hard-won privilege over long experience."—Isaac Asimov, "C-Chute" For the past three months, I've worked with a programming language called Scala. When I started with it, I thought it would present a challenge to learn, but ultimately it would be worth it. Scala is derived from Java, which in turn is a C-based language. C#, my primary language of the last 18 years, is also a C-based language. So I analogized thus: C# : Java :: Spanish : Italian...
...and it has always been due to human error. Today, I don't mean the HAL-9000. Amtrak: Amtrak said “human error” is to blame for the disrupted service yesterday at Union Station. A worker fell on a circuit board, which turned off computers and led to the service interruption, according to U.S. Sen. Dick Durbin. The delay lasted more than 12 hours and caused significant overcrowding at Union Station. The error affected more than 60,000 Amtrak and Metra passengers taking trains from Union to the suburbs...
Stuff to read later
Climate changeGeneralPoliticsRepublican PartySoftwareTrumpUS PoliticsWeatherWork
Of note: Bruce Schneier discusses how propaganda is related to weakening trust in government. Former George W. Bush speechwriter Michael Gerson calls President Trump a "clownish caricature of Nixon." Paul Krugman calls Republican climate-change denial "depraved." The Atlantic outlines "the three most chilling conclusions" from the Trump Administration's report on climate change. Writer Lance Ulanoff has just a few weeks to move thousands of pictures off Flickr, reminding us that terms of service can...
Uncle Bob riffs on Martin Fowler's speech at Agile Australia this week. He is saddened: It was programmers who started the Agile movement as a way to say: “Hey look! Teams matter. Code should be clean. We want to collaborate with the customer. And we want to deliver early and often.” The Agile movement was started by programmers, and software professionals, who held the ideals of Craftsmanship dear. But then the project managers rushed in and said: “Wow! Agile is a cool new variation on how to manage...
I've finally gotten around to extending the historical weather feature in Weather Now. Now, you can get any archival report that the system has, back to 2013. (I have many more archival reports from before then but they're not online.) For example, here's the last time I arrived in London, or the time I took an amazing photo in Hermosa Beach, Calif. I don't know why it took me so long to code this feature. It only took about 4 hours, including testing. And it also led me to fix a bug that has been in...
Lunchtime reading
ChicagoCrimeGeneralPoliticsRepublican PartySoftwareTrumpUS PoliticsWorkWorld Politics
Not all of this is as depressing as yesterday's batch: Dana Milbank raises the question, once again, whether President Trump is just a liar or really mentally ill. McCay Coppins describes how professional troll Stephen Miller got and kept his job. Illinois is getting an anti-carjacking bill that doesn't go as far as Chicago's police superintendent wanted. Josh Marshall wonders why Missouri Governor Eric Greitens resigned so abruptly yesterday. Via Bruce Schneier, an explanation of numbers stations....
Here's the complete list of topics in the Daily Parker's 2018 Blogging A-to-Z challenge on the theme "Programming in C#": A is for Assembly (April 1) B is for BASIC (April 2) C is for Common Language Runtime (April 3) D is for Database (April 4) E is for Encapsulation (April 5) F is for F# (April 6) G is for Generics (April 7) H is for Human Factors (April 9) I is for Interface (April 10) J is for JetBrains (April 11) K is for Key-Value Pairs (April 12) L is for LINQ (April 13) M is for Method (April...
Here's the complete list of topics in the Daily Parker's 2018 Blogging A-to-Z challenge on the theme "Programming in C#": A is for Assembly (April 1) B is for BASIC (April 2) C is for Common Language Runtime (April 3) D is for Database (April 4) E is for Encapsulation (April 5) F is for F# (April 6) G is for Generics (April 7) H is for Human Factors (April 9) I is for Interface (April 10) J is for JetBrains (April 11) K is for Key-Value Pairs (April 12) L is for LINQ (April 13) M is for Method (April...
Today is the last day of the 2018 Blogging A-to-Z challenge. Today's topic: Nothing. Zero. Nada. Zilch. Null. The concept of "zero" only made it into Western mathematics just a few centuries ago, and still has yet to make it into many developers' brains. The problem arises in particular when dealing with arrays, and unexpected nulls. In C#, arrays are zero-based. An array's first element appears at position 0: var things = new[] { 1, 2, 3, 4, 5 }; Console.WriteLine(things[1]); // -> 2 This causes no end...
I should have posted day 25 of the Blogging A-to-Z challenge. yesterday, but life happened, as it has a lot this month. I'm looking forward to June when I might not have the over-scheduling I've experienced since mid-March. We'll see. So it's appropriate that today's topic involves one of the things most programmers get wrong: dates and times. And we can start 20 years ago when the world was young... A serious problem loomed in the software world in the late 1990s: programmers, starting as far back as...
Welcome to the antepenultimate day (i.e., the 24th) of the Blogging A-to-Z challenge. Today we'll look at how communicating between foreign systems has evolved over time, leaving us with two principal formats for information interchange: eXtensible Markup Language (XML) and JavaScript Object Notation (JSON). Back in the day, even before I started writing software, computer systems talked to each other using specific protocols. Memory, tape (!) and other storage, and communications had significant costs...
We're in the home stretch. It's day 23 of the Blogging A-to-Z challenge and it's time to loop-the-loop. C# has a number of ways to iterate over a collection of things, and a base interface that lets you know you can use an iterator. The simplest ways to iterate over code is to use while, which just keeps looping until a condition is met: var n = 1; while (n < 6) { Console.WriteLine($"n = {n}"); n++; } Console.WriteLine("Done"); while is similar to do: var n = 1; do { Console.WriteLine($"n = {n}"); n++...
For my second attempt at this post (after a BSOD), here (on time yet!) is day 22 of the Blogging A-to-Z challenge. Today's topic: the var keyword, which has sparked more religious wars since it emerged in 2007 than almost every other language improvement in the C# universe. Before C# 3.0, the language required you to declare every variable explicitly, like so: using System; using InnerDrive.Framework.Financial; Int32 x = 123; // same as int x = 123; Money m = 123; Starting with C# 3.0, you could do this...
For day 21 of the Blogging A-to-Z challenge I'm going to wade into a religious debate: UUIDs vs. integers for database primary keys. First, let's define UUID, which stands for Universally Unique Identifier. A UUID comprises 32 hexadecimal digits typically displayed in 5 groups separated by dashes. The actual identifier is 128 bits long, meaning the chance of a collision between any two of them is slightly lower than the chance of finding a specific grain of dust somewhere in the solar system. An...
Day 19 of the Blogging A-to-Z challenge was Saturday, but Apollo After Hours drained me more or less completely for the weekend. So this morning, let's pretend it's still Saturday for just a moment, and consider one of the oddest classes in the .NET Base Class Library (BCL): System.String. A string is just a sequence of one or more characters. A character could be anything: a letter, a number, a random two-byte value, what have you. System.String holds the sequence for you and gives you some tools to...
Now that I've caught up, day 20 of the Blogging A-to-Z challenge is just a few hours late. (The rest of the week should be back to noon UTC/7 am Chicago time.) Today's topic: Types. Everything in .NET is a type, even System.Type, which governs their metadata. Types exist in a hierarchy called the Common Type System (CTS). Distilled, there are two kinds of types: value types and reference types. I alluded to this distinction Saturday earlier today when discussing strings, which are reference types...
OK, I lied. I managed to find 15 minutes to bring you day 18 of the Blogging A-to-Z challenge, in which I'll discuss one of the coolest feature of the .NET ecosystem: reflection. Reflection gives .NET code the ability to inspect and use any other .NET code, full stop. If you think about it, the runtime has to have this ability just to function. But any code can use tools in the System.Reflection namespace. This lets you do some pretty cool stuff. Here's a (necessarily brief) example, from the Inner...
Posting day 17 of the Blogging A-to-Z challenge just a little late because of stuff (see next post). Apologies. Today's topic is querying, which .NET makes relatively easy through the magic of LINQ. Last week I showed how LINQ works when dealing with in-memory collections of things. In combination with Entity Framework, or another object-relational mapper (ORM), LINQ makes getting data out of your database a ton easier. When querying a database in a .NET application, you will generally need a database...
We're now past the half-way point, 16 days into the Blogging A-to-Z challenge. Time to go back to object-oriented design fundamentals. OO design has four basic concepts: Inheritance Encapsulation Abstraction Polymorphism All four have specific meanings. Today we'll just look at polymorphism (from Greek: "poly" meaning many and "morph" meaning shape). Essentially, polymorphism means using the same identifiers in different ways. Let's take a contrived but common example: animals. Imagine you have a class...
For day 15 of the Blogging A-to-Z challenge I want to talk about something that computer scientists use but application developers typically don't. Longtime readers of the Daily Parker know that I put a lot of stock in having a liberal arts education in general, and having one in my profession in specific. I have a disclosed bias against hiring people with computer science (CS) degrees unless they come from universities with rigorous liberal arts core requirements. Distilled down to the essence, I...
Day 14 of the Blogging A-to-Z challenge brings us to namespaces. Simply put, a namespace puts logical scope around a group of types. In .NET and in other languages, types typically belong to namespaces two or three levels down. Look at the sample code for this series. You'll notice that all of the types have a scope around them something like this: namespace InnerDrive.Application.Module { } (In some languages it's customary to use the complete domain name of the organization creating the code as part...
Alphabetical order doesn't actually put topics in the best sequence for learning, so we've had to wait until Day 13 of the Blogging A-to-Z challenge to talk about one of the most basic parts of an object-oriented program: methods. A method takes a message from an object and does something with it. It's the behavior part of the behavior-plus-data pairing that orients your objects in the OO universe. In .NET, even though you define fields, events, properties, and methods on your classes, under the hood...
Day 12 of the Blogging A-to-Z challenge will introduce you to LINQ, another way .NET makes your life easier. LINQ stands for Language INtegrated Query, which Microsoft describes as follows: Traditionally, queries against data are expressed as simple strings without type checking at compile time or IntelliSense support. Furthermore, you have to learn a different query language for each type of data source: SQL databases, XML documents, various Web services, and so on. With LINQ, a query is a first-class...
The Blogging A-to-Z challenge continues on Day 11 with key-value pairs and simple tuples. A tuple is a finite ordered list of elements. In mathematics, you usually see them surrounded by parentheses and delineated with commas, like so: (2, 3, 5, 8, 13). .NET has several generic Tuple classes with 2 through 7 items in the sequence, plus a KeyValuePair structure that is the equivalent of Tuple. I'm actually not a fan of the Tuple class, though I get why it exists. I prefer naming...
For day 10 of the Blogging A-to-Z challenge, I'd like to give a shout out to a Czech company that has made my life so much easier over the past five years: JetBrains. Specifically, their flagship .NET accelerator tool ReSharper makes .NET development so much easier I can't even remember life without it. (If you've downloaded the code samples for this challenge, you may have seen either in the code or in the Git log references to ReSharper, usually when I turned off an inspection for a line or two.) I'm...
Day 9 of the Blogging A-to-Z challenge brings up one of the key concepts in object-oriented design: the interface. In object-oriented design, rule #1 is "program to interfaces, not to implementation." In other words, when interacting with an object in your system, you should care about what behaviors and data you need to use, not what the object actually does with them. Going back to last week's room-and-window example: the original problem was that I want to close all the windows in the house with one...
The Blogging A-to-Z challenge enters its second week with a note about you, the human. Last week I discussed several topics that you probably thought were about computers. They weren't. They were about how you interact with computers. Computers don't need programming languages. This is a perfectly runnable program for the 6502 microprocessor: 0600: a9 01 8d 00 02 a9 05 8d 01 02 a9 08 8d 02 02 The human-readable version looks like this: $0600 a9 01 LDA #$01 $0602 8d 00 02 STA $0200 $0605 a9 05 LDA #$05...
For day 7 of the Blogging A-to-Z challenge, I'm going totally generic. A generic in C# allows your code to "defer the specification of one or more types until the class or method is declared and instantiated by client code." In other words, you can declare a class that takes a type to be named later. Imagine you have a program that represents a house. Your house has rooms, and the rooms have windows, doors, and in some cases, fireplaces. They also have furniture. And sometimes headless corpses. (Don't...
We're up to day 6 of Blogging A-to-Z challenge, FFS. The last few days I've written about the two main object-oriented languages that come with Visual Studio and .NET: C# and VB.NET. Today I want to diverge just a little into Microsoft's functional language, F#. At first glance, F# looks a lot like C#. It is, in fact, a flavor of C#; and as it runs on the .NET CLR, it uses .NET constructs. But as Microsoft says, "F# is a programming language that provides support for functional programming in addition...
Welcome to day 5 of the Blogging A-to-Z challenge. In object-oriented design, we talk about a number of basic concepts that make code easier for humans to read and maintain. Encapsulation is fundamental, by hiding the internal data of a class so that only the class can use it. To access data within the class, you can't just reach in and grab it; you need to use the public properties and methods of the class. Here's a stupid class: #region Copyright ©2018 Inner Drive Technology using System; using...
Welcome to day 4 of the Blogging A-to-Z challenge. After yesterday's more theoretical post on the CLR, today will have a practical example of how to connect to data sources from C# applications. Almost every application ever written needs to store data somewhere. If you're deploying a .NET website into Microsoft Azure (like this blog), you will probably connect it to an Azure SQL Database. Naturally, Visual Studio and C# make this pretty easy. Here's the code that opens up a database connection and...
Day 3 of the Blogging A-to-Z challenge brings us to the heart of .NET: the Common Language Runtime (CLR). Microsoft defines the CLR as the run-time environment which "runs the code and provides services that make the development process easier." That isn't the most helpful definition, so let me try to elaborate. As I described Sunday and yesterday, the .NET compiler takes your source code from C# or whatever other language you use and compiles it down to one or more managed modules containing...
For day 2 of the Blogging A-to-Z challenge, I'm going to talk about the first computer language I learned, which is still alive and kicking in the .NET universe decades after it first appeared on a MS-DOS 1.0 system disk: BASIC. BASIC stands for "Beginner's All-Purpose Symbolic Instruction Code." The original specification came from John Kemeny and Thomas Kurtz at Dartmouth College in 1964. Today it's one of the core .NET languages included with Visual Studio as "VB.NET" (for "Visual BASIC," Microsoft's...
Welcome to the Daily Parker's 2018 Blogging A-to-Z challenge! We're starting today with a fundamental concept in Microsoft .NET software development: the Assembly. Microsoft defines the assembly as "a .dll or .exe file that can contain a collection of APIs that can be called by apps or other assemblies." In other words, an assembly is the basic unit of delivering .NET software to the rest of the world. An assembly "fully describe[s] and contain[s] .NET programs." When you compile .NET source code, the...
As of just a few moments ago, I passed 1.5 billion seconds old. Yes, this is a thing most people don't really think about, but as someone who works in software, this actually has some significance—and another Y2K problem that will occur just a few months before I get to 2.0 Gigaseconds (Gs) in 2038. The problem is a thing called the Unix epoch. Computers can only count as high as they have bits to count. Unix computers, which include Macs and most of the infrastructure of the Internet, count time in...
Long weekend; just catching up
AviationBusinessChicagoDebuggingDemocratic PartyEntertainmentGeneralGeographyPoliticsRailroadsRepublican PartyScienceSoftwareTime zonesTravelTrumpUrban planningUS PoliticsWeather
Saturday and Sunday, the Apollo Chorus sang Verdi's "Requiem" three times in its entirety (one dress rehearsal, two performances), not including going back over specific passages before Sunday's performance to clean up some bits. So I'm a little tired. Here are some of the things I haven't had time to read yet: I always read Andrew Sullivan's weekly column but I haven't had a chance yet. Democratic candidate Conor Lamb might win in a heavily-Republican district in Pennsylvania. (Disclosure: I have...
The Washington Post is reporting tonight something that I've known for several weeks. My current project's customer, USMEPCOM, recently promulgated a directive to begin accepting transgender applicants into the U.S. armed forces: The military distributed its guidance throughout the force Dec. 8. Lawyers challenging President Trump’s proposed ban on transgender military service, which he announced on Twitter in July, have since included the document in their lawsuits. The memorandum states the Pentagon...
Blah day
AviationChicagoDogsGeographyPoliticsRepublican PartyRussiaSecuritySoftwareTransport policyTravelTrumpUrban planningWeatherWork
I'm under the weather today, probably owing to the two Messiah performances this weekend and all of Parker's troubles. So even though I'm taking it easy, I still have a queue of things to read: NBC is reporting that the President was warned in August that Russians would try to infiltrate his transition team. Josh Marshall thinks Trump will try to fire Robert Mueller at some point in the near future. Atlanta's Hartsfield airport—the busiest in the world—had no power for 12 hours yesterday. CityLab goes...
It's hard to believe, but if you're trying to use public transit to get to an airport, you might want to use Bing Maps instead of Google: Instead of advising you to take one of the “Airporter” buses from San Francisco International Airport, Oakland International Airport, and San Jose International Airport to the north and south of the Bay Area, the app will propose a two- or three-step odyssey on Bay Area Rapid Transit rail and then local buses. As Google describes things, putting those city-to-terminal...
I have some clarity now on what I can and can't say about the project I'm working on. In short, it's not classified (though the data we deal with is personally-identifiable information–PII—and private health information–PHI). My security clearance is "public trust," the lowest level, and in fact the only level that someone with a clearance can disclose. Also, the contracts for this project are publicly available through FOIA. So, I'm free to discuss this project in a way that I've rarely been permitted...
Yesterday and today I've been in meetings all day starting a new project at work. Unusually for my career, the project is not only a matter of public record, but the work will be in the public domain. That's right: I'm doing a project for the largest organization in the world, the United States Government. Some parts of the project touch on confidential information, and I'm going to remain professionally discrete about the project details. But the project itself is unclassified, and we have permission...
The Atlantic worries that there's a "coming software apocalypse:" There will be more bad days for software. It's important that we get better at making it, because if we don't, and as software becomes more sophisticated and connected—as it takes control of more critical functions—those days could get worse. The problem is that programmers are having a hard time keeping up with their own creations. Since the 1980s, the way programmers work and the tools they use have changed remarkably little. There is a...
I'm on the Board of Directors for the Apollo Chorus of Chicago, and information technology is my portfolio. Under that aegis, I'm in the process of taking all of our donor and membership spreadsheets and stuffing them into a new Neon CRM setup. So far, it's going well, and it's going to make the organization a lot more effective at managing membership, events, and donations. That said, in the last 24 hours I've logged five bug reports, including one of the most frustrating user experience (UX) bugs...
Stuff I'll read later
AstronomyChicagoClimate changeEntertainmentEuropeGeneralPoliticsSoftwareTechnologyTelevisionTrumpWeather
A little busy today, so I'm putting these down for later consumption: Via the Illinois State Climatologist, NOAA has released its state climate summaries for the country. Brian Beutler worries about President Trump's ego driving life-or-death decisions. Hollywood Reporter has some new photos from Game of Thrones' upcoming 7th season. Space junk and thousands of tiny, new satellites might make low orbit inaccessible in 50 years. Why are Germany's nude beaches (and parks and lawns and basically every part...
New York Times developer Jeff Sisson has put together a mapping application that can remove highways from New York: Imagine there’s no highway, it’s easy if you try—even easier, since now there’s a map for that. With this latest cartographic venture, you can make the concrete superslabs and soul-sucking underpasses that are the scourge of urbanists everywhere disappear with a mere click.This is the vision of Jeff Sisson, a developer at The New York Times who dabbles in the kinds of stuff we consider...
The Finnish manufacturer is bringing back their 2000-era 3310: Given the rising angst of a society run by technology, Nokia might have picked the perfect time to introduce an antidote to the smartphone. But even under today’s conditions, it is tempting to see the new Nokia 3310 merely as another example of retro nostalgia. Ha-ha, what if you could get a dumbphone instead? It would pair perfectly with a milk crate full of vinyl albums. But it’s also possible that the 3310 marks the start of a new period...
Starting my day
BaseballChicago CubsElection 2016GeneralHistoryLawParkerPersonalPoliticsSoftwareTrumpWork
I took a personal day yesterday to get my teeth cleaned (still no cavities, ever!) and to fork over a ton of cash to Parker's vet (five shots, three routine tests, heartworm pills, one biopsy, $843.49). That and other distractions made it a full personal day. So as I start another work day with the half-day of stuff I planned to do yesterday right in front of me, I'm queuing up some articles again: Then and Now, Armitage-Bissell Programming is Hard The Founding Fathers' Power Grab The Chicago Tribune...
Here are some things that are occupying me while I figure out who delivers matzoh ball soup: Andrew Sullivan recounts his time being an Internet addict. The Daily WTF explains how not to do caching. Deeply Trivial talks about natural-language processing. CityLab bemoans Chicago's crime wave. The AP describes how Trump screwed Gary, Ind., in much the same way he would screw the entire country. I also have a book or 50 somewhere. And I need a nap.
Courtesy of Scott Hanselman. I actually learned a few things.
About this Blog (v4.4.1)
AviationBaseballBlogsBusinessChicagoChicago CubsCloudDailyElection 2016EntertainmentGeographyLondonParkerPersonalPhotographyPoliticsReligionSoftwareTravelUS PoliticsWindows AzureWorkWorld PoliticsWriting
I'm David Braverman, this is my blog, and Parker is my 10-year-old mutt. I last updated this About... page in April 2016, and a couple have things have changed (not least of which, all the internal links changed when the blog moved to BlogEngine 3 last October). So here's the update. The Daily Parker is about: Parker, my dog, whom I adopted on 1 September 2006. Politics. I'm a moderate-lefty by international standards, which makes me a radical left-winger in today's United States. The weather. I've...
Programmer Sean Hickey demonstrates the evolution of a software engineer.
I had a meeting this morning to bring a new developer onto a maintenance-mode project. In doing so I went over some code I wrote 4 years ago. Yikes. We're doing a deep-dive on Monday...
The problem with NuGet is that installers don't always update assembly binding mappings. As I mentioned earlier, I'm trying to upgrade a very large project to a new version of the ASP.NET runtime to try to solve a lingering problem. This required updating somewhere around 20 NuGet packages, only some of which make correct changes to configuration files. I've just gone through a 15-minute publish cycle that ended with an old and familiar error message for old and familiar reasons. Guys. Quit messing with...
The New York Times Magazine has an in-depth analysis of the daily fantasy sports (DFS) industry. I'm not that interested in fantasy sports, but this article had me riveted: Here’s how it works: Let’s say you run D.F.S. Site A, and D.F.S Site B has just announced a weekly megacontest in which first place will take home $1 million. Now you have to find a way to host a comparable contest, or all your customers will flee to Site B to chase that seven-figure jackpot. The problem is that you have only 25,000...
Canadian Julia Cordray created an app described as a "Yelp for people," and apparently failed to predict the future: Except of course it took the rest of the world about two seconds to figure out that filtering the world to only include those with positive feelings was not exactly realistic, and all the app was likely to do was invite an endless stream of abuse, bullying, and stalking. It wasn't long before people were posting Cordray's personal details online – seemingly culled from the Whois...
I noted earlier that this code base I'm working with assumes all file stores look like a disk-based file system. This has forced me to do something totally ugly. All requests for files get pre-pended with a hard-coded string somewhere in the base classes—i.e., the crap I didn't write. So when I want to use the Azure storage container "myfiles", some (but not all) requests for files will use ~/App_Data/files/myfiles (or whatever is configured) as the container name. Therefore, the Azure provider has to...
Because Microsoft has deprecated 2011-era database servers, my weather demo Weather Now needed a new database. And now it has one. Migrating all 8 million records (7.2 million places included) took about 36 hours on an Azure VM. Since I migrated entirely within the U.S. East data center, there were no data transfer charges, but having a couple of VMs running for the weekend probably will cost me a few dollars more this month. While I was at it, I upgraded the app to the latest Azure and Inner Drive...
I'm still trying to debug the performance of our principal application, which shouldn't be struggling the way it is. I did, however, take two minutes out of my life to watch this:
I was here until 7:30 last night and would probably stay that late tonight if I didn't have a prior commitment. At least last night I got to see this: At least I've isolated the code causing the problem. Unfortunately it's one of the most-called methods in the application. Sigh.
With a little more than five days until my next international flight, I'm stocking up my Kindle: Richard Florida looks at youthification instead of gentrification. Cranky Flier talks about Korean Airlines code-sharing with American. American Airlines, meanwhile, is becoming the sole Chicago Cubs airline sponsor, displacing United. Should we migrate JavaScript to TypeScript? UAT release this afternoon. Back to the galley.
The apotheosis of modern aviation's intersection with modern communications—in-flight internet service—is a tease sometimes. For $50 a month, I get unlimited in-flight internet on American an U.S. Airways. And I'm on a brand-new 737-800, with a functioning seat-back entertainment unit that says I'm over south-central Utah. However, because I planned to have in-flight internet on this flight, and the internet connection appears to have dropped completely, I now have no way to communicate with my team and...
Apparently OCR software sometimes still has trouble interpreting older books: [A]s Sarah Wendell, editor of the Romance blog Smart Bitches, Trashy Books noticed recently, something has gone awry. Because, in many old texts the scanner is reading the word ‘arms’ as ‘anus’ and replacing it as such in the digital edition. As you can imagine, you don’t want to be getting those two things mixed up. The resulting sentences are hilarious, turning tender scenes of passionate embrace into something much darker...
The Inner Drive Extensible Architecture™ is about to get wider distribution. After 11 years of development, I think it's finally ready for wider distribution. And, who knows, maybe I'll make a couple of bucks. I've updated the pricing structure and the license agreement, and in the next week or so (after some additional testing), I'm going to release it to NuGet. That doesn't make it free; that makes it available. (Actually, I am making it free for development and testing, but I'm charging for...
One of my tasks at my day job today is to get continuous integration running on a Jenkins server. It didn't take too long to wrestle MSBuild to the ground and get the build working properly, but when I added an MSTest task, a bunch of unit tests failed with this error: System.IO.FileNotFoundException: Could not load file or assembly 'System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. The...
About this blog (v 4.2)
AviationBaseballBikingBlogsBusinessChicagoChicago CubsCloudDailyEntertainmentGeneralGeographyLondonParkerPersonalPhotographyPoliticsReligionSoftwareTravelUS PoliticsWeatherWindows AzureWorkWorld PoliticsWriting
I'm David Braverman, this is my blog, and Parker is my 7½-year-old mutt. I last updated this About... page in September 2011, more than 1,300 posts back, so it's time for a refresh. The Daily Parker is about: Parker, my dog, whom I adopted on 1 September 2006. Politics. I'm a moderate-lefty by international standards, which makes me a radical left-winger in today's United States. The weather. I've operated a weather website for more than 13 years. That site deals with raw data and objective...
I have an HTC Windows 8X phone. I work for a Microsoft Partner, so this seemed like a good idea at the time. After nearly a year, I can report that I am tired of this phone and want to go back to Android. The one thing my phone does well is manage two Microsoft Exchange accounts. And it does Skydrive all right too. Those are Microsoft products, so Windows should handle them. I find the touch-screen waaay too sensitive. It can't determine what letter I want more than half the time, and its auto-correct...
Fortunately, I'm in an airport with lots of power outlets. Because my laptop just warned me that it was down to its last few milliamps, even though ordinarily the 90 W/h battery I lug around can last about 8 hours. What happened? Windows Search decided that consuming 50% of my CPU (i.e., two entire cores) was a good idea while running on battery. So since I have an hour before boarding, and since I'm now plugged in (which means I don't have any worries about driving my portable HDD), here is a lovely...
I'm pulling the public repository for Orchard again, because I made a mistake with Git that I can't seem to undo. I've set up my environment to have a copy of the public repository, and then a working repository cloned from it. This allows me to try things out on my own machine, in private branches, while still pulling the public bits without the need to merge them into my working copy. Orchard, which will soon (I hope) replace dasBlog as this blog's platform, recently switched from Mercurial to Git, to...
Just a quick note about debugging. I just spent about 30 minutes tracking down a bug that caused a client to get invoiced for -18 hours of premium time and 1.12 days of regular time. The basic problem is that an appointment can begin and end at any time, but from 6pm to 8am, an appointment costs more per hour than during business hours. This particular appointment started at 5pm and went until midnight, which should be 6 hours of premium and 1 hour of regular. The bottom line: I had unit tests, which...
Last night I made the mistake of testing a deployment to Azure right before going to bed. Everything had worked beautifully in development, I'd fixed all the bugs, and I had a virgin Windows Azure affinity group complete with a pre-populated test database ready for the Weather Now worker role's first trip up to the Big Time. The first complete and total failure of the worker role I should have predicted. Just as I do in the brick-and-mortar development world, I create low-privilege SQL accounts for...
I've spent a good bit of free time lately working on migrating Weather Now to Azure. Part of this includes rewriting its Gazetteer, or catalog of places that it uses to find weather stations for users. For this version I'm using Entity Framework 5.0, which in turn allows me to use LINQ extensively. I always try to avoid duplicating code, and I always try to write sufficient unit tests to prevent (and fix) any coding errors I make. (I also use ReSharper and Visual Studio Code Analysis to keep me honest.)...
If one of the developers on one of my teams had done this, I would have (a) told him to get some sleep and (b) mocked him for at least a week afterwards. Saturday night I spent four hours trying to figure out why something that worked perfectly in my local Azure emulator failed with a cryptic "One of the request inputs is out of range" message in the Cloud. I even posted to StackOverflow for help. This morning, I spent about 90 minutes building a sample Cloud application up from scratch, adding one...
In every developer's life, there comes a time when he has to take all the software he's written on his laptop and put it into a testing environment. Microsoft Azure Tools make this really, really easy—every time after the first. Today I did one of those first-time deployments, sending a client's Version 2 up into the cloud for the first time. And I discovered, as predicted, a flurry of minor differences between my development environment (on my own computer) and the testing environment (in an Azure web...
When working with Microsoft Windows Azure, I sometimes feel like I'm back in the 1980s. They've rushed their development tools to market so that they can get us developers working on Azure projects, but they haven't yet added the kinds of error messages that one would hope to see. I've spent most of today trying to get the simplest website in my server rack up into Azure. The last hour and a half has been spent trying to figure out two related error messages that occurred when trying to debug a Web...
I have just spent an hour of my life—one that I will never get back—trying to figure out why I couldn't install any software from .msi files on one of my Windows 7 machines. Every time I tried, I would get a message that the installer "could not find the file specified." I'll spare you all the steps I went through to figure out why this was happening, and get to the punchline: > Yeah, you see, the SYSTEM account needs full control over any file you're trying to install on Windows. Here's how it should...
About this blog (v. 4.1.6)
AstronomyAviationBaseballBikingBlogsBusinessChicagoChicago CubsCoolDailyDukeEntertainmentGeneralGeographyJokesParkerPersonalPhotographyPoliticsRaleighReligionSan FranciscoSecuritySoftwareTravelUS PoliticsWeatherWorkWorld Politics
I'm David Braverman, this is my blog, and Parker is my 5-year-old mutt. I last updated this About... page in February, but some things have changed. In the interest of enlightened laziness I'm starting with the most powerful keystroke combination in the universe: Ctrl-C, Ctrl-V. Twice. Thus, the "point one" in the title. The Daily Parker is about: Parker, my dog, whom I adopted on 1 September 2006. Politics. I'm a moderate-lefty by international standards, which makes me a radical left-winger in today's...
This may actually be funny. My CCMBA class includes students from 30 countries, in every part of the world. Consequently, Duke has created a Flash-based Web portal, through which we take exams, submit assignments, attend classes, and keep in touch. The thing has worked more or less as advertised since we arrived in London two months ago. By tomorrow at 23:59 EDT, we must hand in our Accounting and Management exams. We have 24 hours from download to complete the former, and 90 minutes to complete the...
Via Sullivan, I suddenly feel very old: We extracted about 75 percent of the responses on age (representing about 700 responses, taking equally from the earliest and most recent postings, which show very similar age distributions). Per John Makinson's quip at an LBF panel, over half of reporting Kindle owners are 50 or older, and 70 percent are 40 or older. So many users said they like Kindle because they suffer from some form of arthritis that multiple posters indicate that they do or do not have...
Arriving home this evening, after three days in San Francisco and frequent email checking while there, Outlook presented me with 295 unread messages (not counting the hundreds of messages in my spam filter). Of these, almost all were on my RSS reader—75 Facebook status updates, 50 posts from Andrew Sullivan, etc., etc. It's amazing how much better you can feel after hitting +A, right-click, "Mark As Read". Problem: solved. Still, I hate feeling like I missed something....
Most Daily Parker readers can skip this (long) post about software. But if you're interested in C# 3.0, LINQ, or FogBugz, read on. I use FogBugz's time tracking tool to provide tracability in my billing. If I bill a client 2.75 hours for work on a bug, I want the client to see the exact times and dates I worked on the bug along with all the other details. And because I track non-billable time as well, and I often work in coffee shops or places like the Duke of Perth, I wind up with lots of tiny time...
Ah, family. I'm glad I got a chance to unwind with the Ps after my conference. But I do miss my dog. Tomorrow: or, rather, tonight after 7pm CDT: check out Weather Now for, well, something appropriate to the season.
Found over at Action Squad: http://independentsources.com/2006/07/12/worst-company-urls/.
The President (922 days, 4 hours remaining) still has not yet appointed an Assistant Secretary of Homeland Security for Cyberterrorism, despite computer security problems up the ying since before the post was created: Critics say the year-long vacancy is further evidence that the administration is no better prepared for responding to a major cyber-attack than it was for dealing with Hurricane Katrina, leaving vulnerable the information systems that support large portions of the economy, from...
I have a bit of work to do today, but Chicago has the kind of weather this morning that makes people skip out for lunch at 9:30. So, by way of mentally preparing to ignore the clear skies and 22°C (72°F) breezes out my window, here's what's going on this week. Over the past two days I've had to deal with four kinds of evaluations, three of myself and one of other people. One involved life-or-death decisions, one involved the future of my company, and the other two really pissed me off. First the most...
Ma Bell, risen from near death like the hydra, now says they own your phone records and will disclose them however they see fit: The new policy says that AT&T—not customers—owns customers' confidential info and can use it "to protect its legitimate business interests, safeguard others, or respond to legal process." The policy also indicates that AT&T will track the viewing habits of customers of its new video service—something that cable and satellite providers are prohibited from doing. Moreover, AT&T...
Yesterday I sent Illinois Senator Dick Durbin an email asking him to support S.2917, the "net neutrality" act currently working its way through the Senate. His office responded quickly, but I have no idea from reading it what his position is. Can anyone help? Thank you for contacting me about network neutrality. I appreciate having your thoughts on this issue. Net neutrality is a principle holding that Internet access providers should not be permitted to engage in favoritism when configuring their...
One of my daily digests contained a link to "How to choose the best database for your business." By Oracle. Golly. Which database do you suppose they recommend? Think it's MySql?
Security expert Bruce Schneier has a good article today about threats to your computer (hint: Sony is one): There are all sorts of interests vying for control of your computer. There are media companies that want to control what you can do with the music and videos they sell you. There are companies that use software as a conduit to collect marketing information, deliver advertising or do whatever it is their real owners require. And there are software companies that are trying to make money by pleasing...
Found: a cool and simple geographic tool. So here's where I've been: create your own visited country map or check our Venice travel guide create your own personalized map of the USA or check out ourCalifornia travel guide create your own personalized map of Canada or check out ourVancouver travel guide create your personalized map of europe or check out our Barcelona travel guide
I had to stop myself from snapping up this USB GPS device: This small GPS gadget can easily be placed in a car, boat, land speeder, or just about any moving object and will record its own time, date, location, speed, direction and altitude. The recorded information can then be downloaded to your computer through the USB port and optionally integrated with Google Earth or Mapquest. This feature allows you to "playback" the location points of the TrackStick and see a visual mapped history of its travels....
We spent two hours yesterday debugging some code that kept firing early. It wasn't clear to anyone, including the people who wrote it, why this happened. We patched it with the C# equivalent of duck tape, but really, it still doesn't work right. This incident shows how important it is to know what your code is supposed to do, and not to accept the code if it doesn't. Many tools exist to help—most notably, unit-testing tools like NUnit—but they have trouble with the specific problem that we encountered...
There's a privacy bug in Mozilla that has ended at least one relationship.
My colleague Cameron Beatley sent me this handy chart: Quick Guide to Programming Languages The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you're currently using. This handy reference is offered as a public service to help programmers who find themselves in such a dilemma. Task Shoot yourself in the foot. Comparison C You shoot yourself in the foot. C++ You accidentally create...
We were dark for over 6 hours today because someone at SBC did something, though no one seems to know who or what. The result was that the Inner Drive Technology World Headquarters had no phone or Internet service from 9:15 am CT/15:15 UTC until 3:30 pm CT/21:30 UTC. Sadly, this came on the first day of our Weather Now beta launch, which shows off some of our coolest stuff ever. (At this writing it's still a few hours behind, with weather from lunchtime today, but it's catching up as fast as it can.)...
First, New York Times columnist Bob Herbert has a great column today (sub.req.): [The President's] breathtaking arrogance is exceeded only by his incompetence. And that's the real problem. That's where you'll find the mind-boggling destructiveness of this regime, in its incompetence. ... [T]he plain truth is that he is the worst president in memory, and one of the worst of all time. Second, I've been ambivalent about the Times charging $49.95 per year to read most of its content, but I think more and...
Another thing government does better than business: make businesses play nicely with each other. Cable companies and telephone companies are fed up with the free Internet because they have to carry it on their backbones for free. So they're looking for ways to charge for use, including creating premium access for a fee. One of the easily foreseen ways this "premium access" could manifest, as the Washington Post reports, looks like this: [Y]ou may one day discover that Yahoo suddenly responds much faster...
Adam Sharp, of Maryland-based Sharp SEO, actually read through the Justice Deptartment's Google subpoena. He posted a blog entry excerpting and linking to the actual Google subpoena which is, in turn, hosted on Ziff-Davis' website: In Google’s understanding, Defendant would use the one million URLs requested from Google to create a sample world-wide web against which to test various filtering programs for their effectiveness. Google objects to Defendant’s view of Google’s highly proprietary search...
First, I'd like to welcome my mom to broadband. She's been on dial-up since she got her first home computer (in, I think 2001), but she finally got a cable modem. I clocked the thing at 9.1 Mbps downstream, which is about 160 times faster than her 56.6k analog modem. I mention this because yesterday she asked me to pick up a copy of Turbo Tax at the store. I pointed out that, with a super-fast Internet connection, she could simply download the product and save a tree. In an unrelated train of thought...
The Inner Drive Technology Testing Lab at IDT World Headquarters is nearly complete. Today we have a fully-functional, multi-computer testing lab. We'll be moving some computers around probably next week, and we expect to add a chair or two. We may also put some maps up on the wall, because we love maps. Here's the nascent facility:
I just finished Garbage Land, leaving only about a dozen books on my reading stack right now. Highlights: Why is this in the Software category? Because better wetware means better software. It's important to read widely in order to write better, whether your language is English or C#. Read as much as you can, about anything that interests you. Limit your professional reading to 50% of your total no matter what (but shoot for 25%). The more you know about things outside your profession, the more you can...
I've just spent the past four and a half hours trying, and failing, to get Microsoft SharePoint installed and running. I think the .NET 2.0 Beta runtime on my main server is screwing things up. I think this because, for example, other people have gotten SharePoint running without a problem, and my Das Blog difficulties only seem to affect this server. (I got Das Blog running on a laptop—which doesn't have .NET 2.0 on it—just fine.) Why doesn't stuff just work?
I'm all ready to start testing two open-source prouducts that are built for .NET 2.0, which was released about two weeks ago. I can't yet because I don't have the final version of .NET 2.0 yet; I still have the final beta, and these open-source projects won't run on the beta. My company subscribes to Microsoft Development Network, which gives us just about everything they sell, plus all the beta-test versions. They also have a site from which we can download anything we haven't received yet. So today...
About every five years I learn something about my craft. This is an average; the last seismic shift happened in 2002, but the one before it happened in 1995. It's happening again. This time, I'm learning how my craft gets in the way of my business. For the past three years (since the last time a two-by-four hit me) I've worked on the Inner Drive Extensible Architecture™, a comprehensive framework on which Inner Drive can build marketable applications. It's a masterpiece, in the way a fine, ornate table...
The Code Project has today publicized details about Sony's DRM CreepyWare that lets Sony know what CDs you're listening to. It also hides in the bowels of your Windows operating system and can't be un-installed without downloading a buggy patch from Sony. I'm all in favor of protecting copyrights. But this is creepy, and more offensive than the Mickey Mouse Protection Act of 1998. Update: The L.A. Times has the story now.
I plan to use this blog to discuss software architecture and construction, using various Inner Drive Technology projects as examples. (I may also use client projects as examples, with the names changed to protect the guilty.) Company projects Inner Drive Technology Company Site Most of the upcoming changes to Inner Drive Technology's public site are minor, except that the demonstrations will become gradually more interesting. Also, I plan to cross-post the Software part of this blog to a new one under...
Note: These "site news" historical posts come from the original data sources in the proto-blog that debuted on the Q2 website in May 1997. Thursday 5 March 1998 S-IWS Goes Away The Self-Indulgent Website will disappear from view for a while when Q2 Inc.'s web server loses Internet connectivity sometime on Friday March 6. The Self-Indulgent Website Will Return!
Note: These "site news" historical posts come from the original data sources in the proto-blog that debuted on the Q2 website in May 1997. Thursday 1 January 1998 Dave gets pager (19:30 EST) Your web designer’s employer, Q2, has provided him with a pager for an indefinite period. If you don’t already have the number, call or email Dave to get it. Q2 gets yet another voicemail system (19:40 EST) Q2, your web designer’s employer, switched last week to a Bell Atlantic voicemail system that works. You will...
Copyright ©2026 Inner Drive Technology. Donate!