HN user

adimitrov

1,102 karma
Posts1
Comments230
View on HN

I disagree. I prefer talks, most of the time, especially on stuff that isn't nitty gritty technical. Do I want someone explaining to me on stage how to install minikube and deploy a container? Hell no.

But take what Fowler did, namely talking about refactoring, organizing and structuring your code - the broad strokes stuff. I think it's a lot more enjoyable and effective to listen to a talk (esp in person) for that, than it is to read about it.

Humans are social creatures, and I do enjoy the human aspect of learning from another human. Teaching is performative. I don't get that from a text as much as from a talk.

Of course, everyone's different, and that's why it's good it doesn't have to be either or.

That's perverse. You shouldn't have to self-censor out of fear. The fact that Amazon (Doordash, Google, ...) can get away with just cancelling people's accounts willy nilly and they'd have no recourse is a gaping hole in regulations.

BTW, it's off-topic, but this right here is the among best arguments we can make for strong privacy, and against mass surveillance. If people are willing to swallow monetary damage out of fear to upset an algorithm that may cut back their privileges, imagine what happens to political free speech when you have to fear govt surveillance and black vans.

There are crucial differences between Java applets and JS.

- Applets tried to render their own GUI, Wasm doesn't and defers to the browser.

- applets needed a big, slow to start and resource hungry VM. Wasm is running in the same thread your JS is also running in, it's light, and loads faster than JS

- Java and flash were plugins, which needed to be installed and kept up to date separately. Wasm is baked into your browser's JS engine

- Wasm code is very fast and can achieve near native execution speeds. It can make use of advanced optimisations. SIMD has shipped in Chrome, and will soon in Firefox

- The wasm spec is very, very good, and really quite small. This means that implementing it is comparatively cheap, and this should make it easy to see it implemented by different vendors.

- Java was just Java. Wasm can serve as a platform for any language. See my earlier point about the spec

So it's apples and oranges. The need to have something besides JS hasn't gone away, so their use cases might be similar. The two technologies couldn't be more distinct, though.

I disagree. As a software engineer, R is a nuisance, it's a terrible language, and I hate doing complicated things in it.

But it's very powerful, it's exactly right for these use cases and its ecosystem is mindbogglingly huge. Also, it tends to be easier to grasp for folks who don't have prior programming knowledge (anecdotal, but I've seen people pick it up very quickly who struggled a lot with, say, Python. And Python is the only language/ecosystem that comes close to R.)

So, yeah, a lot of languages could be used for the use cases in TFA, but R is uniquely suited, weaknesses notwithstanding.

On my 6 year old mobile phone, I can do the same thing in Signal. Takes seconds to find arbitrary strings in years long very active conversations.

Honestly, I've no idea how we can accept bad performance in Teams and Slack. I can grep hundreds of megabytes of text in seconds on a raspberry pi. You have to actively try to make your software shitty to not be able to do that on a modern desktop.

Adobe did not birth Flash, they bought it, through Macromedia.

Also, Flash gets a lot of flak, but it saved us from applets and ActiveX. It also enabled multi media content on a web that was not yet as standardised and functional as today's.

Acrobat reader on the other hand, is pure cancer, and has seen many security holes. PDF is useful, but there are far better PDF readers.

Says who? Says you. Based on what?

I hear this sentiment a lot, and its proponents usually don't spend any thought on disproving other views. Such as, maybe it's better to have everyone motivated well, instead of having a few people excessively motivated while the rest trudges along.

Maybe it depends on the field? Do you need superstars or are you only as fast as you slowest team mate?

And maybe, but I barely dare say it out loud here, maybe compensation has less to do with performance and more to do with who eats dinner/cracks a beer with whom. In this case, how would the motivation argument even hold?

I don't know which one is true. I wouldn't try to sound too convinced of any one of these unless I knew the situation of the business very well.

Because we're humans and not profit-seeking self serving automatons. Or at least I aspire to not be one

If there is suffering, and if we can, we ease the suffering. The US and EU have bought way more vaccine doses than they need.

It even makes sense from a utilitarian perspective, as we live in a global market economy.

Since when did people become so nationalistic again? We're humans, first and foremost.

The BBC is publicly funded. The entire idea behind publicly funded news and broadcast is that they shouldn't care about eyeballs, singe they don't need and money.

This is just a conjecture:

If it is indeed abuse related (whether there was any abuse or Google's algorithm just decided there was some abuse) then telling the abuser what got them banned is counterproductive from Google's PoV. Same reason reddit does vote fudging.

If you are concerned about your privacy, you can use an OSS keyboard app. Hacker's keyboard is one for android. There are some on F-Droid. You may even prefer them to Google's offering.

The idiomatic error handling mechanism of Java is the checked exception. This mechanism does not work with higher order functions.

You can emulate Rust's approach with Java, by creating what is essentially a sum type like Result. You'd have to enforce that any access to its content must also handle the error case, and I don't really know how to do that generally. There are various hacks, like having a bespoke sum type for that particular operation that twrows a particular exception on access to its content. But that gets really old, really fast.

Try to stick a function that may fail into a higher order function. The best example would be .map on streams/collections.

You can only do it with unchecked exceptions in Java. In Rust, you can transparently do it with iterators and the result type.

So given xs: [A] and f: A -> Result<A, E>, it is trivial to typesafely get Result<[A], E> by xs.map(f) where map: forall T. [T] -> (T -> S) -> [S]. This is outright impossible with Java. You have to circumvent the type system, or emulate Rust's approach.

I really, really dislike exceptions.

Unchecked exceptions don't tell the caller something might go wrong. Fine for Python, where strong guarantees aren't a thing anyway, but any statically typed language cannot be content with essentially adding bottom to every single type.

Checked exceptions have failed, or at least I haven't seen anybody fix their issues. They proliferate spurious exception types in interfaces. They are inflexible, as they usually can't be generic. They suck at typing error cases for higher order functions. They're big heavy and expensive, so can't be used for hot code paths. They're exceptions but more often than not you want to signal expected failure...

The list goes on...

PHP 8 6 years ago

- but I'm only half-joking when I quip that PHP has evolved from its roots as a cargo cult version of Perl into a cargo cult version of Java.

It's a joke in so far as it is funny - but it's absolutely correct. When you only look at the language... When looking at the VM, Java has an absolutely world class VM, with great engineering and decades worth of research poured into it.

PHP has... no such thing.

This is how I git 6 years ago

I would like to say that not all git front ends are like that. I used to be a CLI only user, but now you can pry magit from my cold, dead hands. It's very close to the command line in what it does, it's very easy to see what exactly it does, and where it abstracts from git commands, it does so while following Git's mental model very well.

It has great discoverability while at the same time being an amazingly streamlined power user tool.

In other words, there can be great git front ends. It's just that most of them suck, usually because of a desire to dumb down the git UI. If you don't do that, and accept Git's complexity it can work out great.

I started using Vim in mid/late 2000s, and successfully switched to Emacs. Without knowing your specific gripes, it's hard no know what'll end up helping you, but here are my two cents:

- use emacsclient and have aliases for emacsclient -c and and emacsclient -n for popping up a new frame or using the console, respectively. I even have a window manager binding to open a new Emacs client window

- Rainer König is the best at getting across org mode workflows. if you like watching nerdy videos, go watch him.

- keep vim around, I still use it, sometimes, but with no or veery minimal config.

- centaur tabs and the new tab stuff can help vim people who like tabs. I just got used to buffers.

- M-x is really Emacs' primary UI. don't try to think of a million and one key bindings up front, just bind what you find yourself using M-x a lot for. You just need a nice completing read like ivy, helm or so, but doom has that.

- use magit. While many claim that org-mode is the Emacs killer feature, I'd say magit is even more important if you code. There simply is no better git interface, nothing comes close. You think git the new porcelain is cool? Magit is a git jacuzzi.

But I'm not proposing a solution. What I'm saying is that a vicious cycle isn't broken by shrugging and conceding defeat to whatever you feel "macroeconomics" is.

It's easy pointing fingers and blaming circumstances. But I'm asking you: what would hurt exactly? Would your life be worse without the iPhone 12? Would you me less productive, would you be less happy?

As they say, those who seek to combat traffic jams by building more roads, would also attempt to lose weight by undoing their belts.

It's not different with phones. Your 2 year old flagship phone does not have a laggy UI because it's slow. It's because people code for today's phone. And as long as enough people keep buying new phones, the software market will not optimize apps, since it's cheaper not to. And as long as software needs ever more resources, people will continue to buy new phones.

It's recursive. But it's not pure: the side effects are resource depletion, electronic waste, labour exploitation, increasing energy demand.

We won't escape this vicious cycle by perpetuating that very behaviour. And so maybe we can all do something about it, however little. Maybe by accepting a tiny bit of UI lag here and there.

Same story here. I was looking for a static site gen that was a bit more comfortable than my previous shell scripts around pandoc approach.

I settled on Hugo because it ticked all the boxes and even had org mode support.

The next three nights were horrible. I'm a professional web dev, full stack, I've used dozens of langs, frameworks, probably hundreds of tools. It took me three nights to set up a basic home page for an academic CV and some publication lists. Nothing more. And even then the whole thing was wonky and super unreliable for inscrutable reasons. Big red flag.

I was angry and frustrated, and I started doubting myself. So I pulled the plug. Tried Zola, I was done in 1.5hrs. Start to finish, just done. Zola is great.

Not only are they available online, they're better! Since internet distribution don't suffer from the same time slot problem broadcast media suffer from, they frequently add some extra discussion with the guests at the end.

These discussions are often the star of the show, because the scientists get to talk about what they really wanted to talk about but didn't fit in the condensed radio length narrative.

What with a pandemic going on, that demographic just increased in number.

We don't own a car, and used to just get everything done by bike and public transport.

But we've stopped using public transport. We do more by bike now, and use car sharing wherever that would be impossible.

The car industry has forever not given a fuck about people who aren't their direct customers, mostly because they don't have to.

Nobody's buying a car on the merit that it will protect victims of a crash that aren't in the car itself. I think that's mostly due to the cognitive dissonance that people have where they think that they're not going to be the one to cause a wreck somebody else dies in. Because if you were aware of that possibility, you'd have to be aware of your responsibility to drive safely. But driving should be cool, fun, and maybe even practical, at least that's how car companies sell their product.

Safety is only ever marketed to the consumer as something that protects them.

Isn't this more of an artifact of our memory architecture and the way we (de-)allocate memory? In that sense, the C++ flying-by-the-seat-of-your-pants approach and Rust's borrow checker solve the same problem, and I'm sure a lot of C++ insight has made it into the ideas behind the borrow checker, but I'm not sure that makes Rust in a way derivative of ideas extant in C++-land.

To me, the borrow checker just feels like an additional type layer I have to reason and think about. In that sense, my thinking when reasoning about lifetimes in Rust is a lot more along the same lines I do in Haskell than something I would be doing in C++ (which I refuse to code in, I'm not capable of writing secure C/++ code.)

What if it was a new UAV, designed just for law enforcement? No problems then?

Fewer problems. Presumably it would be much less capable. The sister comment[1] lays out how dangerous this UAV is, and how powerful. History has shown that the police/military are eager to gain capabilities, and very reluctant to part with them. If use of these very capable military grade drones becomes wide-spread, using them aggressively against live people becomes more probable. And very easy to do — they're already everywhere.

We should also think about how regulated their use should be! These have the capability to just provide 24h surveillance on certain areas, which would erode citizens' privacy greatly.

[1] https://news.ycombinator.com/item?id=23354643

Just so you know why I downvoted you:

- your comment is not at all unpolitical, even though you claim to not "have a political horse in this race." Your dismissal of the opposition to PiS as hypocritical, small, and a "certain minority" is deeply political.

- saying "evil people X" say Y thing, therefore Y thing is false/unworthy/etc. is a fallacy. Saying that (former) communists are upset about the removal of the song has no bearing on whether this is an important story or not

- all Polish people I know (my in laws and Polish friends) know about this and think it's a big deal. Yes, they live in Poland. I don't have a clear overview of all Polish newspapers, but those that I saw definitely ran the story prominently. It's also been big is Polish social media. This story made waves in Poland.

- criticizing all Polish state media in a general fashion when this story is a bout Trójka specifically is absolutely fallacious. Trójka has not praised Potassium exports or had similar stories; even the NYT piece says that Trójka has been a special case among Polish media as far back as 1982.

- there can be no doubt about the current ruling party's intention of trying to subsume all relevant media under its control. Examples [1][2][3]. Lots of pieces have been written about this, and it's nothing new. It's not even going on in secret.

Your tone is not apolitical with respect to the situation in Poland, and the content of your writing isn't either. Claiming you're apolitical is disingenuous. That's why I think you deserved the downvote.

Me, I'm against PiS, and similar movements throughout Europe. I believe they are harmful to their countries, and to the European project.

[1] https://foreignpolicy.com/2019/05/31/polands-government-is-s... [2]: https://www.publicmediaalliance.org/threats-to-media-indepen... [3]: https://www.economist.com/europe/2018/04/21/polands-ruling-l...