HNHacker News
TopNewBestAskShowJobs

borland

297 karma · joined August 4, 2010

submissionscomments
borland··on It’s time to leave the leap second in the past
Leap seconds are a "problem" in that they represent work and effort. That doesn't mean we need to discard them; they serve an important purpose.

I agree with gmiller here: https://news.ycombinator.com/item?id=32229049 that the whole thing smells like Facebook's engineers wanting to save themselves some work, at the cost of generating more problems for the future.

This kind of garbage attitude is why we have climate change, covid-19 and so many other things wrong with the world. Befitting that this one came from facebook.

borland··on The End of Localhost
This is a terrible idea. Understanding what's "underneath you" in the stack is a critical ability when things get complicated. In my experience, running the stack on your local machine as a developer gives you a huge boost in understanding the stack, being able to profile, inspect, and reconfigure it as needed.

Sure, it's quick, convenient and easy if your dev stack is also the cloud stack, because you save time not trying to figure out why localhost mismatches the cloud. BUT, when things get messy, having that understanding of HOW EXACTLY your localhost mismatches the cloud gives you a great depth of knowledge, which you can then use for great benefit in the cloud.

Also: remote debug tooling is crap.

borland··on Impressions from a first-time Mac user
This is full of stuff that isn't actually a problem, he just hasn't learnt how to use macOS yet.

> Snapping

Yes, macOS does suck in this regard. I can only hope they address it in the future.

> unlike Windows or Linux, you can’t “maximize” a window using the green “zoom” button

Hold down option when you click the green button. Annoying that Apple made this undiscoverable, but nevertheless it works and is built-in

> Command+Tab

macOS does this differently than windows or linux. I prefer the macOS way. Shrug? This is not a problem in macOS though. Your cheese got moved, deal with it :-)

> However, that keyboard doesn’t have the Option (⌥) or Command (⌘) keys like on my Macbook. This makes using keyboard shortcuts difficult due to the keys being switched, but I don’t blame Apple for this. I tried changing the modifier keys in System Preferences–>Keyboard, but that broke other keyboard shortcuts.

I'm not sure what he did here, but I've been using system preferences to swap the Windows and Alt keys so they match Option and Cmd, for over a decade and it works flawlessly. I can only assume he's misunderstanding something?

> However, plugging in a mouse with a scroll wheel means the scroll wheel is “backward”. Thankfully, I was able to download Logitech’s Options software to reverse this.

There's a checkbox in system prefs for that, you don't need any crazy logitech junk!

borland··on Apple announces 27-inch 5K Studio Display
Everything I've heard about the Pro display XDR's has been that all the things like USB/Thunderbolt connectivity are rock solid. This suggests Apple's display group has their goods together, and the Studio Display is likely to be solid too.
borland··on Ask HN: How do I feel less guilty about bugs?
This is true, but not nearly so much as FP advocates make it out to be. Once you reach a halfway decent level of competence in any programming language, most of the bugs that you write will end up being ones where you didn't understand the "requirements" correctly, or where you failed to predict some sequence of actions and account for it correctly. Type systems and immutability provide exactly zero help in situations like this.

It's better to focus on clear and simple code styles and architectures. The goal is that when you're debugging the code or explaining it to someone else, you don't want any situations where things don't make sense, or something happens in a weird order for no apparent reason. Immutability can help here, for sure, but FP is a double edged sword. Sometimes it's fantastic but at others it makes your code into an unintelligible mess.

So yeah: Don't go rushing to rewrite your perfectly functional Java/Ruby/Python app across to Haskell or Clojure. It won't help you much at all. Rather, think about how you might use some of the ideas like immutability and function composition, to make your Java/Ruby/Python app easier to work with.

borland··on iPhone 11 Emulated on QEMU
The app store has been full of "checkbox ports" since about 6 months after it launched
borland··on Chromium: Permit blocking of view-source: with URLBlocklist
> We could instead document that the URLBlocklist policy works for every scheme but one, or we could fix it. Fixing it makes more sense.

What makes more sense - a small documentation update to explain an edge case scenario, or a breaking change across the web? Hint: it's not the one that involves code changes.

borland··on EU states looking for MS Teams/O365 alternatives
Group Calendar and Email in a corporate setting with hundreds of people.

I guess gmail/google calendar can play in this space, but are there any open source options?

borland··on Big Tech are supposed to be the plumbers, not patricians of internet discourse
A horrible person got deplatformed and they're all angry with the world. Companies get to decide how to run their platforms; if you don't like it, send your money to other horrible companies, or try and convince lawmakers that your horrible case should be protected. Ultimately though, stopping being horrible is probably the easiest option but these people never seem to want to take it?

HN doesn't allow downvotes so I upvoted literally everything else on the front page to compensate. Thx

borland··on One Bad Apple
The "legal" section talks about local scanning, and possible transmission of CSAM from devices to Apple, in pursuit of verification, however Apple have made clear that the scanning happens only for files that have been uploaded to iCloud Photo Library -- in which case they are not deliberately transmitting the CSAM but rather flagging something which the user already sent them.

Likewise the copyright issue; The user has already sent these files to Apple themselves by enabling iCloud photo library, and Apple are not making any additional copies that I am aware of.

It also says "The problem is that you don't know which pictures will be sent to Apple." - but we do know exactly which pictures will and will not be sent to apple; the ones that are already sent by iCloud Photo library.

[To be clear, I don't like the precedent/slippery slope that this kind of technique might lead towards in the future, but it doesn't seem like all the criticisms of it today are valid]

borland··on The Crypto-Chernobyl
Let's all agree that yes, it's complicated and that Bitcoin interacts with fiat currency, and that SOME of bitcoin's energy waste could be attributed to external factors.

That still leaves us with bitcoin being an environmental disaster and a net loss for humanity, apart from the few people who are benefitting from the pyramid scheme right now; Thus, changing none of the arguments against it.

borland··on Coinbase announces proposed direct listing
LOL Isn't the whole point of cryptocurrency to produce an alternative to the current financial system?

Coinbase entering the traditional stock-market is a flat-out rejection of that; They're just another bank, except they trade in ponzi schemes rather than government-backed currency. Awful

borland··on AMD Zen 3/Ryzen 5000 announcement [video]
We moved some of our AWS things over to "a" instances as they were cheaper per unit of performance than the intel ones. They've been great
borland··on .NET Orleans
The whole “serious language” thing is ridiculous. You are reading this on a web service originally developed using Paul Graham’s custom made-up dialect of LISP called ARC, which runs on top of Common Lisp.

It’s pretty much as far away from “serious language” as it’s possible to get, but here you are happily using it anyway.

Take your Gatekeeping and get in the sea, thanks

borland··on .NET Orleans
Agree, and I wouldn’t trade rails for a perf boost if I had to go to a horrible Java web stack (or a horrible C# web stack prior to .NET core)

Right now though, the dev ergonomics and productivity of .NET core are not actually very far behind rails at all, so you can serve your pages in 2ms instead of 200ms without suffering for it.

In some regards actually, perf helps a lot. Running a large bank of tests for example - those are going to complete a LOT more quickly in .NET which means you can iterate faster and have a better dev experience

borland··on .NET Orleans
I’m an ex rails dev (from about 2010, so a while back, but still)

ASP.NET MVC (which is now ASP.NET Core) is a fairly carbon copy ripoff of what rails was back then. Initially I was annoyed about this; there were efforts to run Ruby on .NET via IronRuby and thus get a nice rails-on-windows environment, and ASP.NET MVC came along and sucked all the wind out of that like a tent collapsing. Controllers, Views, Routing are all the same, and like rails can be reconfigured if you prefer.

Later on though, I’m happy with it. A new blank project doesn’t quite have all that stuff, but you can add the postgres driver, migrations, etc with a few lines of code.

You do lose out on all the more advanced Ruby meta-magic things that rails does like with_scope on ActiveRecord, but in exchange you get a 1000x performance boost, and static typing - especially now with null safety in C#8 is really helpful as your codebase grows. The productivity hit you take compared to rails is actually pretty minimal I think, and those other benefits outweigh that and some. I would chose ASP.NET core over rails for any web project at any time these days

Good luck!

borland··on Response to Google open letter
The google letter makes non-existent claims that aren't part of the proposed law. Like that youtube and google will somehow magically offer worse results. They can offer the exact same results they do now - they might just have to pay for it. "If we had to pay more for news content, we would probably just cut it out because we don't want to pay - thus leading to worse results" doesn't quite have the same ring, does it :-)

As such the ACCC response is also full of bullshit. This is how politics go, and the sad part is that most people seem to simply read one side of the argument and go ranting off angrily based on the bullshit claims, rather than investigating the truth behind both sides

borland··on United Airlines plans to resume service on more than 25 international routes
The policy here in New Zealand is that ALL travelers must quarantine in a managed facility for 14 days after arrival.

COVID tests on day 3 and day 12.

Reports have indicated that a fair number of people appear symptom free, but then test positive on day 3.

Of the people that test negative on day 3, some then later test positive on day 12. I'd imagine this percentage would be even higher if they did the first test on day 1

Goes to show that if we just did a single test we'd be allowing enough COVID positive people through the gates to re-ignite the pandemic. You need multiple tests over a time period

borland··on Apple Threatens to Remove App 'Hey' from App Store over No In-App Subscriptions
I don't mind that Apple curates the app store. I find it a useful service for stopping malware and stuff like that.

I DO mind that Apple is forcing companies to give them a 30% revenue cut even when the companies fully comply with all their rules. The line about "consumer" vs "business" apps is obvious horseshit, otherwise they best be kicking out all those other consumer apps like Amazon, Netflix, Spotify, etc

borland··on Ask HN: Best Way to Mock APIs in 2020?
What I find works well is to use dependency inversion to mock things out within your code, but mock out the transport layer.

I.e: If you have a "stack" like this:

- Application

- MainService

- ApiService

- HttpClient

What you might think of doing is replacing the ApiService with a mock, such that you can test your MainService's interactions with it.

You can do that, sure, and it's useful - but as you rightly point out now you can't find any bugs in your ApiService.

Instead, mock out the HttpClient (or if it's not Http, mock out the Socket). Typically because these kinds of things are at the bottom of the stack, they have very simple interfaces and are really easy to mock, and because the interfaces are so simple the mocks don't introduce much - if any - damage to the rest of your code around them.

There are significant advantages to doing it this way too, over using an external mocked API.

- Way faster

- More reliable

- Single codebase (if the mock API is some external NodeJS thing now you have to wrangle that too)

- You have perfect control over timing. For example, if you have a bug in your ApiService which happens when two packets get interleaved in exactly the wrong way, you can reproduce this easily. If you had a real HttpClient talking to an external process it's nigh impossible.

Good luck!

borland··on AltStore: Alternative iOS app store that doesn't require a jailbreak
I wouldn't be AT ALL surprised if Apple decides to break the kid/teen developers over this. People like the AltStore developer are why we can't have nice things.
borland··on ISP Association Nominates Mozilla as “Internet Villain”
Association of criminals nominates the police as "City's worst Villain"
borland··on The Tragedy of Given-When-Then
That's a bit inflammatory... My experience with BA's is that they're like anyone else on a team. They are more skilled in certain areas, and they can provide a lot of value if their skills are used appropriately.

I've found BA's are very useful in the following areas specifically

- Communication with the market (either customers or in-market staff such as sales/support) to gather feedback about what they'd want

- Orchestrating decisions (asking all the dozen stakeholders what they want to do and arriving at a sensible conclusing)

- Arbitrating feature/UI decisions (people on the team aren't agreeing on whether we should do something or not)

- Documenting requirements (by this I mean the desired functionality that we believe customers need/want)

- Iterating and getting feedback on requirements

- there's more, but off the top of my head that's all I can think of

Sure, I as a lead developer have business knowledge and can also do the job of business analysis, but a dedicated BA will be able to spend more time doing that - increasing their skills, and freeing up me to do other things. If I take on all of the above tasks in a decent-sized project, it's going to suck up a huge amount of my time - in many cases almost all of it - so then basically I'm just a BA with a different job title. BA's are great if you learn to understand the role and how it can help a team

borland··on What should go into the C++ standard library (2018)
He referenced someone wanting to put a 2d graphics library into the standard library. That seems completely insane.

IMHO, something should be in the standard library if a large class of programs would want to use it, and if a "lowest common denominator" approach would be good enough for the majority of those

Example: JSON parsing and generation should be IN. A tremendous number of programs want to produce and consume JSON, and the bulk of these are not performance critical and don't have too many edge cases. Just boring normal JSON.

Example: Sockets should be IN. As above, vast numbers of programs want to use sockets and a standard approach would suit almost all of them perfectly well.

Example: Graphics should be OUT. A lot of programs could potentially use a graphics library, but many of these would not be satisfied by a "standard" approach. Cross platform is the main thing - having to interface with GDI, SDL, Quartz, and whatever else, and doing a bad job of all of that.

borland··on A Newly-Generated Create-React-App 2.1.5 App Has 1,568 Dependencies
I think the "package count" is perhaps a bit of a red herring. IMHO the "publisher count" is more important.

I don't care if there are 700 packages if they all come from the Apache Foundation. I trust the Apache foundation and as such they can be considered one "block" when it comes to reviewing their chance of releasing a malicious/hacked package.

Visual studio is basically ONE package from ONE publisher Internally it's made up of thousands of tiny components, and includes third-party open source software such as Newtonsoft.JSON, but Microsoft is responsible for vetting all that stuff, and they do.

The problem with the JS ecosystem is that many of the packages come from all over the place. For example, create-react-app depends on envinfo which is published by "Trevor Brindle". It also wants cross-spawn, from "André Cruz", chalk from "Josh Junon", Commander.js from "abe tomo", fs-extra from "JP Richardson", this list goes on and on.

Who are all these people and are they all trustworthy? I don't know, I can't tell, and neither does anyone else, which is the core problem.

borland··on A Newly-Generated Create-React-App 2.1.5 App Has 1,568 Dependencies
yep. In theory a dotnet project pulling in nuget packages is in the same class as a node project pulling in NPM packages.

In practice, it's tremendously different.

As mentioned, a do-nothing react app has 1500 dependencies, all managed by who-knows-how-many different companies and individuals

A do-nothing aspnetcore app has maybe a few dozen dependencies, and with the exception of Newtonsoft.JSON, all of these are managed and supported by Microsoft.

When you scale that up to a real app, I don't even know what you get with Node/npm? 2500 dependencies? With aspnetcore you probably end up adding 10-20 more dependencies, and some of them are probably written by Microsoft.

So, your "potentially untrustworthy package count" in node is about 2000 packages, whereas for aspnet it's about 10 packages. You can review and pay attention to 10 packages. 2000? Not so much

Aside: A java/maven project probably falls somewhere in between, but closer to the aspnet scenario. Instead of a few dozen dependencies you might have 50, but it's still realistically possible to review them all, and they're far more likely to come from trusted publishers such as the Apache foundation.

borland··on Swift value constant can mutate using Copy-on-Write (CoW) and multi-threading
I don't understand the reason behind this example?

It boils down to "I did a read-modify-write without a lock, now there is a bug". Of course there is! that's what locks are for!

The swift value system and copy-on-write do not somehow absolve you from locking.

borland··on Letter from Tim Cook to Apple Investors
He dances around the point so many times, but never comes out and says it (and of course he wouldn't) - The 2018/2019 lineup of iPhones is TOO EXPENSIVE and this is causing a significant number of people, particularly in "emerging markets" (i.e. poor people) not to buy iPhones.

The surprise is that they didn't expect that raising the price by 20% wouldn't have an impact like this

borland··on Commons Clause
If you read the article, it implies that people like Heroku and others offering hosted Redis is EXACTLY the kind of thing they are trying to prevent with this clause.

To quote: "today’s cloud providers have repeatedly violated this ethos by taking advantage of successful open source projects and repackaging them into competitive, proprietary service offerings. Cloud providers contribute very little (if anything) to those open source projects. Instead, they use their monopolistic nature to derive hundreds of millions dollars in revenues from them. Already, this behavior has damaged open source communities and put some of the companies that support them out of business."

borland··on Telerik gets Fiddler unlisted from Chocolatey
Good on them. Software vendors should be able to excercise some control over how their software is distributed.

Also, I find any system where someone else tries to "add value" by wrapping or aggregating a bunch of pre-existing stuff without asking for permission from the pre-existing owners to be distasteful and somewhat rude.

What's the bet that Chocolately obtained prior permission from Telerik, Mozilla, Google or any other of the software vendors to redistribute their packages? It seems unlikely

← PreviousPage 2 of 3Next →