Skip to main content

California Is About To Run Out of License Plate Numbers

3 weeks 2 days ago
California is projected to run out of its current license plate number format by the end of 2025, prompting a transition to a new sequence that flips the current structure. The new format will consist of three numbers, three letters, and one number and will debut soon. The Drive reports: The current system for non-commercial vehicles, which consists of one number, three letters, and three numbers, was rolled out in 1980, and the DMV expects this sequence to run its course before the year is out. But, running out of license plate numbers isn't as alarming as it might sound: California officials has already announced the next sequence. It's relatively difficult to predict precisely when California will issue its last current-style plate, but in June 2024, The Sacramento Bee wrote that the California DMV was sitting on about 18 months' worth of license plate numbers, pegging the final current-style plate for the end of the year. The system, which started with 1AAA000, will be replaced with its reverse. The new system will consist of three numbers, three letters, and one number, so the first one could be something like 000AAA1 or 001AAA1 or 100AAA1 depending on whether or how they exactly implement the existing "no leading zeroes" rule.

Read more of this story at Slashdot.

BeauHD

CodeSOD: Dating in Another Language

3 weeks 2 days ago

It takes a lot of time and effort to build a code base that exceeds 100kloc. Rome wasn't built in a day; it just burned down in one.

Liza was working in a Python shop. They had a mildly successful product that ran on Linux. The sales team wanted better sales software to help them out, and instead of buying something off the shelf, they hired a C# developer to make something entirely custom.

Within a few months, that developer had produced a codebase of 320kloc I say "produced" and not "wrote" because who knows how much of it was copy/pasted, stolen from Stack Overflow, or otherwise not the developer's own work.

You have to wonder, how do you get such a large codebase so quickly?

private String getDatum() { DateTime datum = new DateTime(); datum = DateTime.Now; return datum.ToShortDateString(); } public int getTag() { int tag; DateTime datum = new DateTime(); datum = DateTime.Today; tag = datum.Day; return tag; } private int getMonat() { int monat; DateTime datum = new DateTime(); datum = DateTime.Today; monat = datum.Month; return monat; } private int getJahr() { int monat; DateTime datum = new DateTime(); datum = DateTime.Today; monat = datum.Year; return monat; } private int getStunde() { int monat; DateTime datum = new DateTime(); datum = DateTime.Now; monat = datum.Hour; return monat; } private int getMinute() { int monat; DateTime datum = new DateTime(); datum = DateTime.Now; monat = datum.Minute; return monat; }

Instead of our traditional "bad date handling code" which eschews the built-in libraries, this just wraps the built in libraries with a less useful set of wrappers. Each of these could be replaced with some version of DateTime.Now.Minute.

You'll notice that most of the methods are private, but one is public. That seems strange, doesn't it? Well this set of methods was pulled from one random class which implements them in the codebase, but many classes have these methods copy/pasted in. At some point, the developer realized that duplicating that much code was a bad idea, and started marking them as public, so that you could just call them as needed. Note, said developer never learned to use the keyword static, so you end up calling the method on whatever random instance of whatever random class you happen to have handy. The idea of putting it into a common base class, or dedicated date-time utility class never occurred to the developer, but I guess that's because they were already part of a dedicated date-time utility class.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!
Remy Porter