HNHacker News
TopNewBestAskShowJobs

bartread

10,868 karma · joined March 14, 2012

submissionscomments
bartread··on A brief history of Windows scroll bar shortcuts
Yes, I mean DataGrid. .NET 2.0 wasn't released until October 2005 so I think your remembrance of dates is a little bit off (understandable: it's now a long time ago).

In any case that didn't really matter. In mid-2004, when I started, the company was still targeting .NET 1.0 for all apps because it meant we could guarantee customers would have that runtime installed on their machines without the need for another dependency. The business model was download -> try -> buy so we wanted as little friction as possible and having a newer version of .NET that might require another download and install wasn't worth the dropout rate we'd experience.

That being said, .NET 1.0 also meant we were using Visual Studio.NET 2002 which was... incredibly painful to work with. I'd come from the world of IntelliJ IDEA which had all manner of code navigation, inspection, refactoring, and testing functionality built in. Not to mention Java already had generics and a much better and more comprehensive framework class library and more mature OSS scene covering whatever was missing from that. .NET 1.0 and VS2002 had none of it and, I forget, was it that VS2002 had no extension model or was it just that ReSharper didn't support it? Either way it felt like stepping back into the mid 1990s and I wasn't happy.

Eventually, sometime in summer or autumn of 2005, I managed to persuade leadership that at least allowing us to use .NET 1.1 and Visual Studio.NET 2003 would be a good idea, and would enable us to use ReSharper, which at least brought us on par with IntelliJ IDEA circa 2003 or so. I can't remember but it might have been that .NET 1.1 had been rolled out over Windows Update or enough service packs for Windows 2000 or Windows XP that we deemed the likely loss of purchases to be negligible.

Our first products developed with .NET 2.0 we didn't start working on until the back half of 2006 and this was really only because we were developing products that plugged in to SQL Server Management Studio which, again IIRC (long time ago), was based on the Visual Studio 2005 shell and required .NET 2.0.

We were always lagging on .NET versions because we wanted to make sure someone could just download, install, and run our products without needing to do anything else.

bartread··on A brief history of Windows scroll bar shortcuts
You're right, it is. I did a lot of C#/WinForms development back in the day. I never liked it but I liked the people I worked with and the company I worked for so I tolerated it.

Reasons? OK, this is going back about 20 years but, and without going on a massive ranty screed [EDIT: oops, failed], compare something like Swing's JTable to WinForms' DataGrid. One is a really nicely designed and abstracted component with a fully pluggable architecture and an out of the box capability to deal with an arbitrarily large data model (perhaps within the limits of 32-bit integers) and the other... isn't. I tried with DataGrid, I really did. I thought other developers at my employer were "doing it wrong" by reaching for third party controls from the likes of DevExpress and Actipro but... they weren't: I was wrong. If you wanted a proper table/grid control that was easy to customise and extend and wouldn't chunder on millions and millions of rows of data you forked over the money to DevExpress for their control and then you got on with your day solving your real problems that you could charge customers actual money for.

We leaned hard on third party control libraries from DevExpress (particularly grid and tree), Actipro (wizard), and Syncfusion (again, grid). To me, with WinForms, and bearing in mind I'd come from Java Swing (which is by no means perfect) it was really weird working with a UI toolkit where what came in the box wasn't sufficient to build any arbitrarily complex UI I might desire. Weird. And frustrating. Same for the lack of abstraction/separation of concerns. In my Java days, when I wanted a wizard I ripped the one out of NetBeans: I did that in at least two prior jobs using it as the basis for multiple wizards across the relevant applications.

And WPF... although architecturally a lot better, IIRC it didn't even have a proper table/grid control: you had to build your own, and when you start thinking about how rich a proper table/grid is, taking into account accessibility, keyboard shortcuts, picking up OS level settings (palette, scaling, etc.), making it behave like a table in any other application on Windows, I just couldn't be bothered building all that... so then it's back to third parties again.

I don't know what third party support for these frameworks is like nowadays but, fundamentally, for the sort of independent experiments I'm working on I don't want to either (i) fork over hundreds or thousands of dollars to third parties for (I think) basic functionality that (I think) should be available as part of the framework and should have been there since day one, or (ii) spend time wrangling the framework to implement this basic functionality because it isn't a core part of the problem I'm trying to solve or the value I'm trying to deliver.

I'd rather just use Qt or something, which at least has what I need.

bartread··on A brief history of Windows scroll bar shortcuts
Yeah, I think that’s probably fair. Games and media apps certainly get a pass from me. Not so much corporate chat apps that are shipped as part of the most popular productivity suite in history (as one example).

Also agree with you on both Win32 and Cocoa widgets.

bartread··on 28% of job postings on company career sites have been open over 90 days
I mean, in 26 years in the industry I’ve never worked anywhere that kept ads up for jobs that had already been filled. Not even on their own websites where hosting those ads is effectively free (as opposed to LinkedIn et al where you have to pay).

I’m not saying there are no companies that keep non-live job ads up purely for fishing purposes but, in my experience, it’s not the norm. It would really piss jobseekers off and that’s the kind of word that tends to get around and make it harder to hire in future. Maybe not if you’re a FAANG, because so many people want to work for you anyway, but it’s going to cause problems for “normal” companies.

bartread··on Tokens too cheap to meter
It’s OK: you can just tell us you have a financially and relationally crippling Eurorack addiction. You’re amongst friends here.
bartread··on A brief history of Windows scroll bar shortcuts
> Sadly, almost nobody uses Win32 scroll bars any more. Everybody uses frameworks that provide their own custom scroll bars.

Yeah and, sadly, those framework implementations are all mired in some amount of bollocks due to lack of care, attention, or interest from their creators. And by bollocks I mean they either behave differently or do less.

But I very much miss the days of consistent UX across Windows applications, or indeed applications on any other OS.

I don’t mind if you want a custom look and feel for your application: I very much do mind if your widgets don’t behave like other widgets of the same type or, at least, where any variance is at least a superset of OS level functionality rather than a crippled subset.

I was always frustrated by how hard Microsoft made this as time wore on and they moved through more and more UI frameworks, and then offerings like CEF and Electron entered the mix as well. The UI story on Windows started getting particularly messy around 2007 or so and has been in an awful state of confusion for at least 15 years now.

I literally have no idea what I’d use to develop a Windows desktop app nowadays and, honestly, none of the options fill me with enthusiasm. With more recent desktop experiments, partly because whilst I might want them to run on Windows I don’t primarily work on Windows, I’ve gone the Rust + Qt route simply because it offers native performance and it doesn’t feel like I’m getting rug pulled by either set of creators any time soon.

bartread··on Rate limits on GitLab.com are changing
I think the main issue here is that the access point for many OSS projects most of the time is package managers.

People often aren’t hitting up GitHub directly to get or install open source projects: they’re going via homebrew, npm, or whatever, so the registry becomes the source. Of course you can install directly from GitHub even with package managers but most times you don’t and it’s increasingly seen as a security issue.

On your second point, ugh, yes, you’re absolutely right. I don’t think it would work exactly the way you describe but, if there’s some automated revenue sharing/distribution, you can bet that people will find ways to exploit it via some form of spamming.

bartread··on Wax motor
This is why wax motors are used for washing machine door locks.
bartread··on Can we stop with the uptime percentages?
One thing I would like to see is how many of those hours are during normal business hours in my country.

Not all hours are created equal when it comes to downtime and my intuition is that most of these 12 landed within my working hours.

In terms of impact that then might mean they were down for 7.5% of the time I needed them, or had business hours uptime of 92.5% which is… both not very good and very disruptive.

On the other hand, downtime at 4AM would be much less impactful even if it happened every day and added up to more overall downtime.

bartread··on Show HN: I made a flight simulator, except you're just a passenger
> Horse Magnifier

I can only imagine: clearly I need to check that out.

bartread··on Show HN: I made a flight simulator, except you're just a passenger
That one predates vibe coding by quite a few years though: a lot of hard work went into Goat Simulator, and there were no doubt other more obvious choices for how the developers spent their time, but they still chose to make Goat Simulator.
bartread··on How to write an effective software design document
Same goes for highly regulated financial environments. If you work in banking you generally can't just FTX-and-hope your prototype, which is very much what GP sounds like they're advocating.

For starters you're going to have traceability requirements that can only be satisfied if you have a product requirements document and then often a software design document. Now you might well choose to manage all of that in JIRA and Confluence (or whatever) rather than sitting down and writing an actual document intended to be laid out and printed on paper but the fact remains the documentation exists and, indeed, is a must to satisfy compliance and regulatory frameworks.

As always, the domain you're working in and the organisation you're working for make a huge difference but, as much as there are plenty of places where none of this stuff matters at all, there are also plenty of places where it's incredibly important and that isn't going to change anytime soon.

bartread··on I spent $220 on Google app ads and 60% of the installs were robots
I’ve seen and reported that exact ad, and variations thereof, multiple times. Each time my report has been rejected on the basis the ad didn’t violate ToS for advertisers. Google absolutely sucks nowadays.
bartread··on How I advertise malicious software on Google Ads
> People willingly do business with companies who are actively against them.

Sometimes it's because they don't have a choice.

Case in point, since we're already talking about them: Ryanair. I'd cheerfully never fly with them again after, several years ago, they denied my wife and I boarding to a plane despite the fact the screens round about were still saying final call. Not just us either: about half a dozen other people missed that flight because the screens in the main terminal only updated with the departure gate a few minutes before final call and we happened to be quite a long way away when that happened. I've never had anything like it happen at any airport before or since.

Be that as it may: we can't practically avoid using Ryanair. My wife is from another country and Ryanair is one of only two airlines that fly there from the UK at all and the only airline that flies there from the nearest international airport (roughly half an hour away as opposed to 2+ hours away).

So we fly Ryanair even though neither of us want to: there simply isn't another practical or sensible choice.

bartread··on Claude, change the “Add to Cart” button to blue
This is an amazing piece of satire but it's really not so far from reality.

I've lost count of the number of times I've submitted a prompt to Claude, had it interview me about areas of uncertainty, iterated on the plan a handful of times and then had it one shot the generation of 1000 - 3000 lines of code and tests that work pretty much perfectly first time but then had it chew through six figures of tokens and achieve absolutely nothing useful at all on the seemingly simplest of tasks.

This site is clearly based on bitter and hard won experience with the real product.

bartread··on The two Christian saints who are the Buddha
> No religion knowingly offers its followers "bad teachings". Anybody who thinks a religion has "bad teachings" quickly becomes an impostor and gets pushed out. The self selection means that there are no "bad teachings".

I mean "bad teachings" from the point of view of an outsider who might not agree with the religion. What I'm saying is that even where that's the case, it's the people following the religion choosing to do so and choosing how they behave.

And I'm not pretending anything: I know full well about group psychology and indoctrination. But it still boils down to people being people, and people being hypocritical.

> The Catholic Church internal policies target the ages of 4-14 for indoctrination and habit forming.

Exactly. And what did I say about letting leaders off the hook? Grown adult church leaders choosing to indoctrinate, brainwash, and sometimes exploit children. It's people. Again. It's all people.

Sooner or later we all have to grow up and take responsibility and accountability for our own actions.

bartread··on The two Christian saints who are the Buddha
> I struggle with the hypocrisy of religion sometimes

That doesn’t really make sense to me. Do you mean the hypocrisy of people who follow those religions?

I tend to think that blaming outside forces for bad behaviour by people lets them off the hook a bit too easily - in particular it lets leaders off the hook far too easily - and disincentivises change because “I do X because Y makes me” rather than “I do X because I choose to”, which is the truth.

Religions might contain good teachings and bad teachings but, ultimately, people choose how they behave and so it’s the people who show hypocrisy.

bartread··on Adult Film Producer Unmasks Prolific 'John DOE' Torrent Pirate as Meta Executive
Mate, I got rejected by Cambridge University.

I've lived in and around Cambridge for a very long time now. I've met a lot of Cambridge undergrads and graduates. Let me tell you: they are a mixed bag.

Don't misunderstand me: there are some very smart people at Cambridge University. Very smart indeed. And I think if you took any cohort from Cambridge Uni versus a similar cohort from another university you'd certainly find that, against most universities, the Cambridge cohort would be smarter on average. In fact the place is genuinely awash with very smart people literally everywhere.

But that doesn't mean there aren't plenty of people that went to Cambridge who clearly found a way to blag their way through the interview process that may not have been particularly closely correlated with their intellect. The same will be true of Meta, Google, etc. I swear, the interview processes at these companies are probably more of a sop to the egos of company leadership and people who already work there than they are any more effective at filtering down to good talent than less byzantine and overwrought hiring processes.

You just have to make your peace with it.

bartread··on True Rate of Unemployment
I think the thing is it’s no easier to hire someone to do a job you need done outside of work (at least the first time you need that job done) than it is to hire someone for a job at your workplace.

Genuinely qualified candidates are hard to find, nearly half of candidates are worse than average, and there are still skilled bullshitters aplenty.

Oh, and people who are good still cost real money.

bartread··on Urban Congestion Pricing and the Response Times of Emergency Medical Services
That's correct. I said they tried it, as in tried to introduce it. It was never actually introduced.

It is quite likely to be tried again in future.

bartread··on Urban Congestion Pricing and the Response Times of Emergency Medical Services
Cambridge in the UK tried it. They promised to improve the bus service only after introducing the charge.

It didn’t go over well.

And even for a small city like Cambridge it is a huge lift to go from an already inadequate public transport infrastructure and set of services to infrastructure and services suitable for a city where cars have been largely eliminated.

The irony of course is that bus services, specifically the guided busway, will be cut again soon due to ongoing lack of use. But the lack of use has been caused by long-running and poorly managed maintenance on the busway disrupting services to the point of unusability, rather than because of any real lack of demand.

Some people didn’t trust that promises would be delivered on public transport when it came to the congestion charge. Obviously cuts like this add fuel to that fire.

On a more positive note we have, over the past 10 years or so, gained two new railway stations, and that’s good. But we haven’t gained new rail lines and rail routes so they haven’t done anything really to improve the transport and congestion situations around the city. It’s easier and more convenient to get to London though, depending on where you are.

bartread··on That's a Lot of YAML
I used to think the same but I've mellowed.

Modern editors make this a non-issue. I use both Python and YAML fairly regularly, both have significant whitespace, and I don't have any issues with either.

Also, because YAML doesn't involve things like curly braces all over the place, it's actually notably less friction to type rapidly by hand than something like JSON. I don't think YAML is amazing or anything like that but I do find myself nowadays preferring it, for config at any rate, over JSON.

JSON definitely wins for machine readable data sent over a pipe though because the lack of significant whitespace means it'll compress better.

bartread··on We found a division by zero bug in FFmpeg with a vibecoded fuzzer
It's weird to me that people are pushing back on me for expecting anti-bot services to actually solve the problem they already claim to solve.
bartread··on We found a division by zero bug in FFmpeg with a vibecoded fuzzer
> I assume you're offering to pay for the increased server costs?

Such a non-argument.

I'm expecting people to create better, more effective, and less intrusive anti-bot measures. Measures that accurately detect bots but don't exclude real people from the web simply because of the browser they're using, or the country they either appear to be in or are in fact in, for example.

bartread··on It’s so hard to finish an idea that is not yours and is just suggested by AI
Delete the comments: I’ve gone on a tear with these recently because they’re nothing but trouble.

The absolute least worst outcome is they chew up your token budget. But what tends to happen, and this is much more serious, is they poison future work and make further modification of the codebase more burdensome and error prone.

bartread··on AliExpress runs silent WebAudio fingerprinting that breaks Bluetooth multipoint
Yeah, that’s always an automatic nope. No explanation of who/what is really asking or why so, no: your shit software or website can’t go snooping around on whatever network I happen to be on, whether that’s at home or at work.
bartread··on Clamiga: Common Lisp for the Amiga
I mean, I’m British and I immediately thought of chlamydia. But, considering it, we are absolutely world renowned for our filthy and degenerate sense of humour, so it’s probably just that.

Still, Common Lisp on an Amiga: interesting.

bartread··on A True Telnet BBS on a Casio Calculator
I think it’s the contrast that’s the problem, rather than the choice of font (although serif fonts can be slightly harder to read). Lighten the background slightly, and darken the text slightly, and it would be much more readable.

(But I too love the project, and am interested to see the result when the BBS is available via packet radio.)

bartread··on Stripe 2.9% vs. Adyen 0.6% vs. Braintree 2.59%: 2026 Fees
What makes it frustrating is that the information, assuming it’s accurate, is actually useful and interesting, but it’s swaddled and interleaved in these bulky layers of unnecessary verbiage.

AI prose really is the thick crust pizza of writing.

bartread··on Software Engineering fundamentals matter more
> IKEA also refuse to sell you spare parts.

Sorry to call bullshit but I think that’s exactly what this statement is.

Just looking at our wardrobe and thinking about how it’s actually not one thing at all, but made up of dozens of different SKUs, and how I could reorder any of them individually if I needed. There are also third party sellers of parts such as runners, door rails, and the like (not that you need them since these can all be purchased from IKEA anyway).

The challenge with IKEA is colours: they used to offer more colours, but now lots of stuff is black white, grey, or beige with no other options (and sometimes white is the only option). If you need to replace a part in a colour other than that nowadays, you’ll perhaps find it difficult to impossible.

← PreviousPage 3 of 34Next →