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.
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.
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.)
I feel a little chagrined today as I expect to release the new version of The Daily Parker this evening, and yesterday I failed to write even a cursory post. I blame meetings and a very long dentist appointment (I'm fine; still no cavities; but the new dentist patient intake took a while). I also didn't have any time to read these: Brian Beutler outlines a workable plan for getting rid of the Schutzstaffel Immigration and Customs Enforcement permanently. Yascha Mounk warns that the OAFPOTUS's threats...
The events in Venezuela earlier today are a bit more important than the soft launch of a beta blog engine's dev-test environment. Still, if you're curious what I've been working on for (checks Git log) more than five years, here is the Daily Parker's next iteration. A big caveat: It's still in development. I've gotten to the minimal feature set where I feel comfortable letting people play with it, but it still has a ways to go before I can move this blog off BlogEngine.NET. I still need to add search...
I've just pushed Weather Now release 5.0.9497, which has a few minor tweaks plus one really obvious one: I switched typefaces. For consistency with the new Daily Parker and the soon-to-be-refreshed Inner Drive Technology corporate site, I decided to switch to the IBM Plex Sans typeface. The app had used Łukasz Dziedzic's Lato typeface, which I like a lot. I think Plex has a cleaner design, no more modern than Lato but just more to my taste. Check out the Weather Now refresh, and let me know what you...
Because I've spent almost all my computer time on my real job and on getting the next version of The Daily Parker ready for its Beta launch, I haven't had many of these link roundups for the last couple of weeks. Another reason: all the end-of-year retrospectives, floofy non-news stories, and all those damned "send us money" emails. I promise you, I will never send you an email begging for money. Of course, if you enjoy either this blog or Weather Now, or find them vaguely useful, please consider...
I've basically finished everything I'd planned for Weather Now this year, and I've made significant progress on the new blog engine. For the former, I just need to make one more small bug fix, so I expect to release the new version tomorrow afternoon. For the latter, I expect to finish the comments feature set Thursday; then I'll publish the link to the dev/test site. Today, though, I have a few other things to do before making more progress on either. But don't change that dial!
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...
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...
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...
A weak La Niña has already started affecting the weather in the United States, as this week's cold snap demonstrates. Weak La Niña events typically cause cooler, wetter winters in Chicago. Last night's temperature got down to -12.8°C (9°F), just a few degrees above the coldest December 5th on record. Normal for today would be 4.3°C (39.8°F); this godawful cold is 5°C below the normal low for the coldest day of the year, January 24th. Fortunately the forecast this weekend calls for more seasonable...
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...
Even though I have a cute beagle hanging around my office this week, and even though I've had a lot to do at work (including a very exciting deployment today), the world keeps turning: The OAFPOTUS pardoned Binance founder Changpeng Zhao for the crime of running a massive money-laundering website, because of course Zhao bribed him. Brian Beutler thinks the OAFPOTUS's corruption has gotten too obvious for even his supporters to ignore, leading to "the things Democrats like to talk about and the things I...
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...
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...
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...
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...
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. (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...
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...
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...
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...
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...
The hot, humid weather we've had for the past couple of weeks has finally broken. I'm in the Loop today, and spent a good 20 minutes outside reading, and would have stayed longer, except I got a little chilly. I dressed today more for the 24°C at home and less for the cooler, breezier air this close to the lake. Elsewhere in the world: I was waiting for Russia expert Julia Ioffe to weigh in on last week's hostage release. The Chicago White Sox failed to set the all-time record for most consecutive...
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...
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...
After a week of rehearsals capped by two performances of some really challenging works by French and Swiss composers, I finally got a full 8½ hours of sleep last night. What a difference. Not just the needed rest, but also having a much smaller inbox (just one task for the chorus left until next week) and less to worry about. Until I open a newspaper, of course: The head of the political arm of Hamas, the terrorist group and de jure governing party in Gaza which has called for the annihilation of all...
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...
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...
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...
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...
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...
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 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...
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...
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 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....
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...
The world continues to turn outside the Chicago icebox: Julia Ioffe sees an interesting power play between the US and China taking shape in Africa. Ed Zitron experiences unbridled Schadenfreude as three billionaires experience the Dunning-Krueger effect up close and personal. David Frum says we should thank Ukrainian president Volodymyr Zelensky for reminding us of our own history. 538 created an interactive map where you can see for yourself that moving time zone boundaries will probably make more...
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...
Photo number 1: Cassie, from above. (My office is in a loft over the master bedroom, where Cassie has a bed.) Photo number 2: can anyone give this 1½-meter (5'3") scratching post a good home? I'm keeping it for a friend who went back home to Spain "for 6 weeks" in August 2020. He will come back to Chicago eventually—for a visit. Photo number 3: a Tweet that made me laugh out loud. I know that the super-rich in previous eras also had more narcissism than good sense, but watching Musk destroy Twitter in...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
Bit of a frustrating day, today. I spent 2½ hours trying to deploy an Azure function using the Az package in PowerShell, before giving up and going back to the AzureCLI. All of this to confirm a massive performance issue that I suspected but needed to see in a setting that eliminated network throughput as a possible factor. Yep: running everything completely within Azure sped it up by 11%, meaning an architecture choice I made a long time ago is definitely the problem. I factored the code well enough...
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.
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...
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...
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...

Another outage

    David Braverman
CrimeSoftwareWork
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...
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...
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...
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...
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...
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...

I hate Scala

    David Braverman  1
GeneralPersonalSoftwareWork
"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...

The tragedy of Agile

    David Braverman
SoftwareWork
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...
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...
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 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...

F is for F#

    David Braverman
A-to-ZGeneralSoftwareWork
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 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...
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...
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...
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...
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...
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.

Seems about right

    David Braverman
SoftwareWork
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...

So kludgy

    David Braverman
BlogsSoftwareWork
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:

Still debugging

    David Braverman
SoftwareWork
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...
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...
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...

Border cases

    David Braverman
SoftwareWork
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...
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'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....

LINQ to FogBugz fun

    David Braverman
SoftwareWork
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...

Heading home

    David Braverman
GeneralSoftwareWork
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.

Do walk buttons work?

    David Braverman
SoftwareWork
Chicago Tribune transportation reporter Jon Hilkevich channels Cecil Adams: The actual answer is fuzzy, depending on the location, the time of day, vehicle traffic volumes, when the walk button is activated—and luck too. Many pedestrians refuse to press walk buttons due to suspicions they are a trick or a placebo concocted by the traffic gods to keep walkers calm while breathing fumes from tailpipes as they wait for green lights at busy street corners. Steve Travia, IDOT's bureau chief of traffic for...
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...
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...

Where I've been

    David Braverman
SoftwareWork
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

Predictable software

    David Braverman
SoftwareWork
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...
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...

More on Google

    David Braverman
PoliticsSoftwareWork
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...

Also on my reading stack

    David Braverman
SoftwareWork
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...

Waiting for Microsoft

    David Braverman
SoftwareWork
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...

Build or buy?

    David Braverman
SoftwareWork
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!