HNHacker News
TopNewBestAskShowJobs

stefano

1,479 karma · joined June 2, 2008

I've got a passion for learning and implementing programming languages, especially those in the Lisp family.

My github account: http://github.com/stefano

submissionscomments
stefano··on Pyright: Static type checker for Python
Django and django rest framework make such a heavy use of metaclasses that I gave up on using mypy for a Python project. My code was littered with annotations and stubs and it still wasn't catching obvious type errors, and I had to fall back to use `Any` in way too many places. Couple that with the horrible typing syntax and the fact that mypy was slow, kept crashing with segfaults and often wouldn't even signal type errors on fully typed functions, and the result was a lot of effort for almost no gain.

If I compare that experience to when I switched from JS to TypeScript, it's like night and day. TypeScript is designed to work well with development tools and already existing libraries, while Python's static types feels designed by someone who never worked with static types while completely ignoring code patterns used in existing libraries.

stefano··on Google hit with €1.5B fine from EU over advertising
I don't know if that's the case with OP, but there's a good amount of HN users who think internet companies are above the law. Some of them also cheer it as a good thing.
stefano··on K7 Tutorial
The fact that every function/operator has multiple meanings, often very different, depending on the actual data passed to it doesn't help readability. It tries too hard to use only symbols, which are limited on an normal keyboard, and so it crams multiple functionalities into the same symbol.
stefano··on Why has Plan 9 chosen statically linked binaries instead of dynamic ones? (2004)
I have 971 binaries in /usr/bin alone. If they were 100mb each, I'd be looking at 94GB of space on a 250GB laptop ssd. 94GB that I'd have to re-download every time there's a security patch to a common library (e.g. libc). I'll keep living in the past and use shared libraries until download speeds and disk space increase by a couple orders of magnitude.
stefano··on 1991 – a server-side web framework written in Forth
MULTIPLY FORTH GO AND
stefano··on 1991 – a server-side web framework written in Forth
I wrote a Forth interpreter for WASM some time ago: https://github.com/stefano/wasm-forth

It's not production ready and it's missing a good JS interface, but you can use it to run Forth code in the browser with a basic console interface.

stefano··on Reahl – A Python-only web framework
Having to pay to use software commercially makes it unusable?
stefano··on Thinking Forth – A Language and Philosophy for Solving Problems (1984) [pdf]
That problem seems common in Smalltalk too. It's best described by this Adele Goldberg's quote: "In Smalltalk, everything happens somewhere else."
stefano··on Thinking Forth – A Language and Philosophy for Solving Problems (1984) [pdf]
If you're interested in Forth, I created a WASM implementation some time ago: https://github.com/stefano/wasm-forth

The main limitation is the interaction with the JS world, which is limited to textual I/O, but it's enough to run an interactive REPL.

stefano··on Slot-based UI development in Swift
Core Data comes to mind, especially when dealing with multi-threading scenarios. For new projects, I switched to a thin wrapper around SQLite (SQLite.swift) and never looked back.
stefano··on Am I logged in or not? GDPR case study on the example of Chrome browser change
Part of Chrome rise to success was, on top of its (at the time) superior performance, the massive marketing from the biggest advertising company in the world.
stefano··on Am I logged in or not? GDPR case study on the example of Chrome browser change
The question is, what about other sites? Do they also think they're signing into Chrome when logging into amazon.com?

Google services are getting preferential treatment over the rest of the web on a browser with a market share big enough to be subject to an anti trust case. Vestager must be licking her lips right now...

stefano··on Why I’m done with Chrome
On iOS they can't use their own engine, everything is just a wrapper around webkit.
stefano··on Why I’m done with Chrome
When you're looking for escape hatches, you know the software is working against you. At that point, it's better to move to an alternative browser, it's not worth it to fight it with hacks. If too many people use the escape hatch, they'll remove it.
stefano··on Why I’m done with Chrome
Firefox is completely ungoogled once you change the default search engine.
stefano··on Why I’m done with Chrome
Firefox, Edge, Safari, pretty much all non-chromium browsers are compatible with gmail.
stefano··on Google throws away 12 years of work by investors (Portfolios in Google Finance)
Funny thing is, people are lining up to do just that. I think that's a symptom of an industry where following the hype is more important than long term stability.
stefano··on EU approves internet copyright law, including ‘link tax’ and ‘upload filter’
Public broadcasters are always very soft on the party currently in power, since that's basically their boss. You need both public and private news.
stefano··on EU approves internet copyright law, including ‘link tax’ and ‘upload filter’
What would they gain? The company would get a warning from an officer telling them they're not compliant and to address it. If the company fixes the issue, all good. If it doesn't, it gets fined. The troll law firm won't see any money from that fine.
stefano··on Checked C: Making C Safer by Extension
> After 20 years like this, we can conclude that we like C as it is and are not interested in extra layers.

This says a lot about how little the industry cares about software quality. You'd think a bunch of people who make a living out of automating tasks would happily use tools that automate the checking of an importnt source of bugs. Instead, many prefer to use tools that look simpler on the surface and then end up manually testing for the same kind of bugs over and over. So you have people writing in dynamically typed languages who rely on (manually written!) unit tests to check that their program is not mixing up types, and others using unsafe languages and then relying on tests to catch memory access violations. Inevitably, tests never catch all issues and you end up with type errors and segfaults in production.

stefano··on Checked C: Making C Safer by Extension
This is the same argument that was used when Microsoft launched Typescript. As it turns out, their strategy of extending an existing language to make it safer worked great, while brand new languages that are safer than Typescript are now miles behind it in terms of adoption. So it seems to be a pretty solid strategy, and if it brings people closer to a safe language, even if not 100% safe, it's still an improvement on the status quo.
stefano··on Beyond Spotify and iZettle: How Sweden became Europe’s capital of startup exits
They could get their money back by (gasp) getting their share of the company profits. Which is actually how it usually works outside of SV-like investments.
stefano··on TypeScript at Google
> My aim with Typescript is to turn JS into OCaml

If that's the goal, why not use the real thing http://ocsigen.org/js_of_ocaml/ ?

stefano··on Ask HN: My Microsoft account has been suspended by Microsoft without details
What happens if your domain registrar bans you? Is it something they can do?
stefano··on Teach Yourself Computer Science
"I know sorting algorithms so intimately that I know to not reach for the built in .sort() when the array is already 99% sorted"

Built-ins are made to work well on the most common case. Often, you can use domain knowledge to come up with better solutions. But you need to know how common sorting algorithms work to understand if and when that domain knowledge can be used to speed up your program.

stefano··on Teach Yourself Computer Science
I used what I learned in my linear programming class (i.e. optimizations of a linear function under a system of linear constraints) not too long ago to solve a problem involving multiple non-trivial constraints.

Also, CS is different from programming, just like Math is different from bulding a house.

stefano··on 2018 MacBook Pro Review
That's a very unfair comparison. You need to compare the relative price against comparable laptops produced today.

Also Apple seems to be the first laptop producer to raise prices instead of lowering them. In 2010, I could get a MacBook for 1000 euros. The equivalent laptop upgraded to today's standards would cost 2-3 times that.

stefano··on APL at Its Core
If you want mass adoption, yes. For whatever reason, few developers want to pay for their tools. Maybe we've been spoiled by all the open source ones.

A few companies manage to get people to pay for tools (e.g. Unity, Visual Studio), but they're the exception, and it's more due to a lack of open source offerings with comparable features.

No one would pay a license for a new JS framework or for a compiler outside of niches, which is where proprietary tools still survive.

If you want mass adoption, you need a complete free offering (as in beer and as in freedom). Which sucks for the tool vendors, since that's a lot harder to monetize, if not impossible.

On the other hand, it's a boon for people getting started since they can try out all these tools without a monetary investement, and it's great for companies who don't need to pay for the code they base their whole business on.

stefano··on APL at Its Core
It requires a license (https://code.jsoftware.com/wiki/Jd/License#License).
stefano··on Google Cloud Platform – The Good, Bad, and Ugly
You can have the client upload to a cloud storage bucket, then notify the server that the file is ready. Upon receiving the notification, the server can start a background task that reads the file from the bucket and uploads it to the Maven repository.

It's a few extra steps for something that should be simpler, but it's workable.

← PreviousPage 4 of 9Next →