HNHacker News
TopNewBestAskShowJobs

vnorilo

1,989 karma · joined November 29, 2017

Music tech researcher, cellist; clojure, c++ and compilers.

https://norilo.me (portfolio) https://kronoslang.io (compiler/language project)

submissionscomments
vnorilo··on After 50 years, Michael Heizer is finally ready to unveil City, his life's work
One could (and many do) burn 30M rather quickly building and trying to scale up some completely pointless app or service.
vnorilo··on The Latest Study on Red Meat and Heart Disease: A Red Herring
Regarding B, I had the pleasure of meeting a handful of San [1] elders to record some of their songs. I learned that some of them walked ~10km to meet with the rest of us and did not think much of it. In general their lifestyle is probably a lot less sedentary than mine.

1: https://en.m.wikipedia.org/wiki/San_people

vnorilo··on Considering Sourcehut
Indeed. A pull request is indeed a ... request to pull changes! One fetch/apply later you can use your local merge tools to evaluate.

I guess the various hubs, labs and buckets make it slightly harder to run malicious code on your own box, but the difference might be smaller than one would think.

vnorilo··on Ask HN: What are some cool but obscure data structures you know about?
One of my favourites is treap [1], which doubles as a great excuse to forget how to balance binary trees. It is similarly "probably efficient" as HAMT, mentioned in other comments; both require a well-behaving distribution in the hash function.

1: https://en.m.wikipedia.org/wiki/Treap

vnorilo··on Show HN: I'm building a browser-based DAW
There's been some work on Web Audio Modules, including glue for prior native plugin frameworks like Juce.

https://www.webaudiomodules.org/

vnorilo··on Scratch is a big deal
Since it is from the constructionist tradition, I believe it is intended as a "microworld" [1] so being powerful and general purpose is an anti-goal. It is optimized for trial-and-error exploration, which works best when the functionality is reduced and there are not too many tools in the shed.

Producing text and formatting strings is likely deemed out of scope for that reason. People figuring out clever workarounds is a bonus!

1: https://edutechwiki.unige.ch/en/Microworld

edit: better link

vnorilo··on Covid learning loss has been a global disaster
that a present-day Von Neumann is probably somewhere working on ad/fintech is in many ways even more depressing.
vnorilo··on Give up GitHub: The time has come
I'm the guy people at $work call to do git submodule reorganization, troubleshoot lfs or recover disasters. I'm certainly comfortable with git. It gets the job done. The same can be said of svn.

However my own projects always start with hg init. In addition to the UI being less insane it also feels consistent and nice to use.

At one point I was on a team using Darcs, which was another level of beautiful but clunky in many ways. It is why I'm rooting for the Pijul team. [1]

1: https://pijul.org/

vnorilo··on Why I still recommend Julia
Seems to me that you are describing something that should be a relational database, and where object orientation doesn't seem to bring anything of value.
vnorilo··on Ask HN: How to level up your technical writing?
Their style guide [1] is one of my references when trying to improve my own writing.

While my professional writing has been mostly academic, I find the progression is similar to tech writing.

First you learn to show your erudition and command of the ingroup speech.

Then, if you have a genuine desire to communicate, you progress to simpler yet precise language, stop using the big words when not necessary (often, they are just signaling and gatekeeping) and develop empathy for and understanding of the audience.

1: https://cdn.static-economist.com/sites/default/files/store/S...

vnorilo··on The Grug Brained Developer
And gotos are made of jump instructions which are made of NAND gates, transistors and silicon. Good abstraction is all about hiding the details that are not essential to the problem at hand.
vnorilo··on Surprising result while transpiling C to Go
Transpiler is a pretty old word too. My understanding is that it's a compiler whose output is human readable. Readability is more about whether it is an explicit goal: all compiler output is readable by some humans.

I don't think anyone would say Unity's il2cpp is a transpiler even though it compiles .net bytecode into C++: producing readable C++ is a non-goal for il2cpp.

vnorilo··on Surprising result while transpiling C to Go
I think Clojure on Go (Gojure)? Would probably do nearly as well as the JVM hosted version if done well.
vnorilo··on Cold Showers
Yes. Dynamic types, mutability and complex OOP types are the toxic mix.

It is very hard to make large programs simple, but lisps are some of the best PLs for that, especially if you stick with immutable data.

vnorilo··on The case of the vanishing cafeteria tray
It is mostly the energy used to produce and transport the food and other required inputs (like fertilizer), not so much the gases it belches out in compost.
vnorilo··on The case of the vanishing cafeteria tray
According to our world in data, it's 6% of carbon emissions, a significant chunk!

https://ourworldindata.org/food-waste-emissions

vnorilo··on Bleh
I too have found programming languages on the internet that I don't like.

I have survived through my awesome power of not having to use them.

vnorilo··on Bleh
You are not wrong - there is no web UI for pull requests or merge checks. However the features it does have are simple and thus easily interoperable and composable. There's no push to adopt ever more interlocked services or upsell premium features.

Like a nice buffet that just does not have a particular (albeit popular) dish on offer. Where you can bring your own bottle or even an appetizer and nobody will mind.

vnorilo··on Bleh
I guess I should have known better but I was surprised to learn that Drew would be on the receiving end of that stuff.

The vibe I got from sourcehut is that it's built by peers for peers, they are remarkably open about everything. The service is straightforward and doesn't force you to a particular workflow. It's a solid hosted version control with a no-nonsense web UI - open source to boot. What's not to like?

It blows my mind that someone would actively hate on such a project. Oh well, internet.

(I signed up for srht and pay a small amount for my personal non-work stuff.)

vnorilo··on Building a Cloud Database from Scratch: Why We Moved from C++ to Rust
The charitable interpretation is they mean the code runs without a VM, and interfaces with OS syscalls instead of an inner platform like node, java, .net...
vnorilo··on I was forced to be a child star. It was never my dream or my idea
Some amount of external pressure may help you try something that's slightly difficult and not the most obvious instant gratification available.

The main thing is to not chase some dumb good-parenting metric but to give your kid suitable obstacles so she can experience overcoming them and feel success and gain self-confidence. That's what parenting is all about: the little push that helps kids reach their potential. Easier said than done of course.

I agree though that if that does not stay in the fun zone, the outcome will most likely be bad. Especially if there is some vicarious competition in the parent's head.

vnorilo··on On rebooting: the unreasonable effectiveness of turning computers off and on
The worst is when adding log lines changes timings and hides the race!
vnorilo··on Is anyone still using assembly language? You betcha (2007)
There are degrees to "assembly". There's .s source files. There is inline assembly with varying degrees of compiler plumbing/spilling/automation. There are intrinsics where you delegate register allocation to the compiler and allow it to optimize if it can.

Then, sometimes you write specific C idioms that you know LLVM is going to turn into certain instructions.

For highest performance, you will always think in assembly, and in fact in the internals of your target CPU (as far as they are known), even if you have various layers of software to produce the bitstream in your object files.

vnorilo··on Tilde.town is a computer meant for sharing
Reading the emails is not enough: they would need to send some secret to the email associated with the account to link the power to exhange keys to ownership of the account. Just reading a legit-sounding email and relying on from-address is 100% suspectible to abuse.
vnorilo··on Tilde.town is a computer meant for sharing
The procedure for credential reset sounds a little concerning:

> are you a town resident that lost their ssh key? try this: using the email address with which you registered, send an email to root@tilde.town. put "new public key" in the subject. include the new public key in the body of the email

Hopefully they will at least reply to confirm the person can actually read the email instead of just replacing pubkeys from any forged from-address.

vnorilo··on Ask HN: Teach me something new
I have migraine once or twice a year, and the most recent attack indeed interrupted my reading, quite simply did not see the letters through the zigzag. As it gradually covered the focal point of my vision I was trying to "squint" mentally but eventually gave up. There was no followup headache, just a slight vertigo.
vnorilo··on Low-Latency, High-Throughput Garbage Collection [pdf]
Simple implementation of RC with multithreading implies a lot of atomic counter updates which clog a multicore cpu fast.

Therefore you apply techniques like Apple's ARC, or deferred-coalesced counter mutation.

Add cycle leak detectors and the RC scheme is looking more and more like a really slow garbage collector, albeit a low latency one.

Note that simple RC is not deterministic or good for real time either because of the possibility of release/destruct cascade. Which looks pretty much like a GC pause (because it is one).

vnorilo··on Snowman native code to C/C++ decompiler for x86/x86_64/ARM
Strictly speaking all x86 MOVs would have to decompile to some level of atomic load/stores, because of the ordering guarantees on x86.

That's an example of "lost in translation" as we don't know if the original source required ordering or not. x86 cannot express the weakest memory model supported by C.

vnorilo··on Snowman native code to C/C++ decompiler for x86/x86_64/ARM
Some architectural/program assumptions may not be encoded in assembly or preserved in the asm -> C -> asm roundtrip, especially if the assemblers are for different architectures. The obvious example is pointer word size and memory model.
vnorilo··on A downtick is coming for online advertising
I've seen a handful of cases where a small software house with very limited name recognition that provides some genuine value to customers gets a big bump from advertising targeted to "lookalike audiences" on facebook. Some of these shops run either 0 or 1 ad campaigns at any time, so the correlation is actually visible and quite irrefutable.

However, that is also the exact type of adtech that is extremely dodgy in terms of privacy, because it thirsts for data. I'd love the whole thing to end in favor of some genuine user recommendation system. But as always, any ranking system that drives revenue will be gamed to no end.

← PreviousPage 3 of 18Next →