dblohm7's recent activity
-
Comment on The ideal backend language to write web apps in 2023? in ~comp
-
Comment on Fifteen years after 'Iron Man,' the MCU has lost what made its debut so special in ~movies
dblohm7 As I wrote, (Emphasis mine.) And the other franchises maybe don't have as tangled a web as Marvel does, but they are also building up the same complexity in their canon.As I wrote,
if you're a movie buff, and you're sitting out the big franchises because of this... then what's left?
(Emphasis mine.)
And the other franchises maybe don't have as tangled a web as Marvel does, but they are also building up the same complexity in their canon.
-
Comment on Fifteen years after 'Iron Man,' the MCU has lost what made its debut so special in ~movies
dblohm7 In general I agree with you, with the exception of the fact that the state of the film industry has reached the point where, if you're a movie buff, and you're sitting out the big franchises...In general I agree with you, with the exception of the fact that the state of the film industry has reached the point where, if you're a movie buff, and you're sitting out the big franchises because of this... then what's left?
EDIT: (Obviously there are indie cinemas and such, but not everybody has access to those and are stuck with whatever's playing at the multiplex)
-
Comment on Is there a digital compass app (Android) for walking around? in ~tech
dblohm7 Back in the day, Google used to actually ship an app explicitly for this purpose. I think it was made by some Googlers on some 20% time, so it was probably discontinued. I can't remember what it...Back in the day, Google used to actually ship an app explicitly for this purpose. I think it was made by some Googlers on some 20% time, so it was probably discontinued. I can't remember what it was called, though.
-
Comment on Tell me your worst experience with database performance (as a developer) in ~comp
dblohm7 Part 1 Probably the worst one I can think of was an application I used to be a developer for in the mid-2000s. The application used a royalty-free clone of dBASE. To understand the rest of this...Part 1
Probably the worst one I can think of was an application I used to be a developer for in the mid-2000s.
The application used a royalty-free clone of dBASE. To understand the rest of this story, you need to understand something about the state of that database technology: it was not relational. It couldn't do things that we expect of modern databases, like joins. If you wanted to join two tables, you were obtaining cursors for each of those tables and then rolling your own nested-loop join within your application.
Our application, like most, had the concept of users. Each user could be assigned various attributes.
Our application was also very enterprisey, so it was typically sold through enterprise sales channels or indirectly by managed service providers. In this particular situation, the sale occurred through multiple middlemen, so we as the vendor did not get a very good contractual say as to how the product would be deployed.
Unfortunately for my employer, that contract did release them from obligations to provide tech support. Soon enough, support started receiving calls, and I am the developer who eventually received the escalation.
It turns out that an MSP hired by another MSP to install our product decided to hack around our per-seat licensing by only creating one single user, and then attaching all the attributes across thousands of physical
users onto that one single logical user in our app.As I mentioned before, our database did not have a query optimizer or proper execution engine. It could create individual tables, slap indexes on them, and query them individually. Complex queries were hand-rolled in the app itself, completely unequipped to deal with substantial changes to the shape of the data. There were no column statistics, there was no way to change query plans to accommodate data whose cardinality differed from what we expected. In other words, the only way to fix the customer's problem was to manually rewrite every single affected query!
As you can imagine, a situation like that was intractable in terms of responding to an urgent support request. IIRC that client was eventually "fired."
I was originally going to leave this as the conclusion of the story, until I realized that it kicked off a series of events that led to even more database performance problems in the future...
Part 2
Various experiences such as the one above finally convinced upper management that we had to switch to a relational database. Since the application contained nothing but hand-rolled queries, this changeover would necessitate a massive rewrite of most of the application so that we could decouple data access from business logic.
The edict from the VP of development was that queries would be placed into stored procedures. There would be a hand-rolled ORM that would call the stored procedures and then deserialize their results into appropriate data structures in memory.
You might have noticed the preceding paragraph mentioning things like an "edict" from an executive containing specific ideas as to how to do the rewrite. You might have also thought, "uh-oh," and you would be correct.
This development team possessed a culture of distrust and micromanagement. Only managers were considered to be competent; the ICs were expected to just be drones who did what they were told. This resulted in developers who often were afraid to think for themselves; to do so would just invite a world of hurt. I don't think that the developers were stupid people, but the culture was so stifling that they were coerced into doing stupid things.
Remember how this rewrite was needed to eliminate the hand-rolled queries? Our developers were too shellshocked to recognize that sometimes they needed to do multiple passes over the business logic: they would remove the first layer of joins, but then take those results and join them together in business logic.
That all performed just fine under dBASE, when there was virtually no latency. It performed decently on a developer's freshly installed local VM which was running the DBMS inside of it.
It did not perform well when any amount of latency was introduced between the application and the DBMS, or when there was actual data populated in the database.
Once again, nobody realized any of this until the new version of the app was being used in production.
As people started to smarten up about the situation, one developer added telemetry to track how many round-trips were required between the application and the DBMS to render a single web page in its admin panel. Each page needed dozens.
Of course, management learned the wrong lesson from this: it reinforced their views that the developers were all a bunch of mouth-breathing idiots who needed even more supervision. But that's another story for another day...
-
Comment on Once praised for its generous social safety net, Denmark now collects troves of data on welfare claimants in ~tech
-
Comment on Google and Mozilla are working on iOS browsers that do not use WebKit in ~tech
dblohm7 Which kind of proves GP's point, unfortunately for front-end developers. Instead of throwing up something that says, "We only developed against the newest nonstandardized gee-whiz APIs in Chrome,...Which kind of proves GP's point, unfortunately for front-end developers.
Instead of throwing up something that says, "We only developed against the newest nonstandardized gee-whiz APIs in Chrome, you need to download that instead," Front-end devs are forced to support WebKit's idiosyncrasies because (in Canada and the US, at least), iOS users are a significant market that cannot be ignored. It effectively serves as a brake that holds back the broader state of the webdev community.
-
Comment on Google and Mozilla are working on iOS browsers that do not use WebKit in ~tech
dblohm7 Absolutely. Containers are plumbed through Gecko in its entirety. That is an implementation detail in the Gecko engine that is unique to Gecko.That's a good point, but are you sure those are WebKit limitations?
Absolutely. Containers are plumbed through Gecko in its entirety. That is an implementation detail in the Gecko engine that is unique to Gecko.
-
Comment on Google and Mozilla are working on iOS browsers that do not use WebKit in ~tech
dblohm7 Alternate engines allow for capabilities that just cannot be achieved using the iOS WebKit. eg Firefox using Gecko could bring WebExtensions and containers to iOS.Alternate engines allow for capabilities that just cannot be achieved using the iOS WebKit.
eg Firefox using Gecko could bring WebExtensions and containers to iOS. -
Comment on Google and Mozilla are working on iOS browsers that do not use WebKit in ~tech
dblohm7 I feel the same way, even though I used to work on Firefox for Android!I feel the same way, even though I used to work on Firefox for Android!
-
Comment on What programming/technical projects have you been working on? in ~comp
dblohm7 Working on various libraries to improve Go's capabilities for writing Windows programs.Working on various libraries to improve Go's capabilities for writing Windows programs.
-
Comment on Mozilla to explore healthy social media alternative in ~tech
dblohm7 How do you figure? The simple calculus about this was that we were going to build our own reading list, but the exec at the time decided that Pocket was better than what we had planned.Things like the pocket acquisition and subsequent tight integration into the browser
How do you figure? The simple calculus about this was that we were going to build our own reading list, but the exec at the time decided that Pocket was better than what we had planned.
-
Comment on Mozilla to explore healthy social media alternative in ~tech
dblohm7 Yes, the foundation is the sole shareholder of the corporation.Yes, the foundation is the sole shareholder of the corporation.
-
Comment on Mozilla to explore healthy social media alternative in ~tech
dblohm7 (I worked at Mozilla Corporation for just under 9 years) Mozilla Corporation can (and does) send money to Mozilla Foundation. But funds can't go the other direction. But yes, the structure does...(I worked at Mozilla Corporation for just under 9 years)
Mozilla Corporation can (and does) send money to Mozilla Foundation. But funds can't go the other direction.
But yes, the structure does put the Mozilla Corporation into a bit of a bind.
For all intents and purposes for the Firefox browser, it’s developed by a for profit company which earns its keep and pays its developer from a exclusivity deal with Google.
This is technically true, but you have to look at it holistically in terms of ownership and control. The Foundation is the Corporation's sole shareholder and thus controls the Corporation. The Corporation is "for-profit" in a legal sense, but that does not mean that it is actually run that way.
-
Comment on What programming/technical projects have you been working on? in ~comp
dblohm7 We're 100% remote, so the "HQ" is more a formality than anything! It's a fast-growing place, so there's always lots to do!Their HQ is in my home province.
We're 100% remote, so the "HQ" is more a formality than anything!
How are you enjoying it so far?
It's a fast-growing place, so there's always lots to do!
-
Comment on What programming/technical projects have you been working on? in ~comp
dblohm7 I'm overhauling Tailscale's Windows installer. The default installer that users download is NSIS-based. I wrote an MSI installer over a year ago, but it was not ready yet to replace the NSIS...I'm overhauling Tailscale's Windows installer.
The default installer that users download is NSIS-based. I wrote an MSI installer over a year ago, but it was not ready yet to replace the NSIS installer by default. I'm getting the MSIs ready to go so that we may finally complete that migration in preparation for adding an auto-updater.
-
Comment on Router recommendations in 2022 in ~comp
-
Comment on What have you learned from working in tech? in ~talk
dblohm7 Given that I haven't significantly worked in other industries, that's hard to say. I don't think it's exclusive to tech, but I do think it is probably more common in tech than many industries....Would you say that's more true of tech than other industries?
Given that I haven't significantly worked in other industries, that's hard to say. I don't think it's exclusive to tech, but I do think it is probably more common in tech than many industries.
Do you think the people with titanium egos are likely to act the same way once they've passed the condescension threshold themselves? Like is the toxic environment self-sustaining because of the people, or the shape of the organizations, or something else?
Yeah, I think that fundamentally it comes down to the people the industry attracts. When I describe working in tech to people who don't, here's what I always say:
"Think back to your years in school, and that one socially-awkward smart kid who had to be right about everything, point out everybody's mistakes, and cannot read the room. Now imagine drawing upon all of those smart kids from schools around the world, throwing them onto a team, and telling them that now they all have to work together."
I have no doubt that there are other careers that also have this issue (medicine, maybe?), but I also have no doubt that there is a concentration in tech.
-
Comment on What have you learned from working in tech? in ~talk
dblohm7 (edited )LinkThe tech industry is difficult for people with fragile egos. New additions to any organization are assumed to be stupid until proven otherwise, and treated accordingly. This often manifests itself...The tech industry is difficult for people with fragile egos. New additions to any organization are assumed to be stupid until proven otherwise, and treated accordingly. This often manifests itself as condescension or patronization.
Some people simply don't have the emotional sensitivities to care and are able to push through it. Others such as myself are extremely sensitive to this, and dealing with it becomes exhausting.
-
Comment on Ladybird: A new cross-platform browser project in ~comp
dblohm7 Generally speaking, browsers already do this, however they do not necessarily do so by listing their capabilities "up front," which is perhaps what you're thinking of. As browser developers, we...If only user agents could advertise their capabilities somehow
Generally speaking, browsers already do this, however they do not necessarily do so by listing their capabilities "up front," which is perhaps what you're thinking of. As browser developers, we don't really want sites using the user agent string for anything, however that cat was let out of the bag 25 years ago and it isn't going back in, it seems...
With respect, Go was never taking "baby steps" toward web development; Go is absolutely designed for web development, and I personally think that it would be my primary choice for a new web backend in 2023.