Hacker News new | past | comments | ask | show | jobs | submit | thisislife2's favorites login

Fun facts, the author of Tcl and tk is Prof. John Ousterhout, and his Software Design book is in its 2nd edition:

A Philosophy of Software Design:

https://web.stanford.edu/~ouster/cgi-bin/book.php


My favorite is EUPL: https://joinup.ec.europa.eu/collection/eupl/introduction-eup...

Essentially licensing your software like this behaves like ASL unless you: modify + distribute (either binaries or by creating a service). Then you owe the changeset back, but it does not have a viral clause like the AGPL.

This solves a large part of the greedy AWS problem (Amazon copying entire open source projects and contributing nothing back), but also strikes a balance and allows API Compatibility.


Clickjacking has been a solved problem for over a decade. Set X-Frame-Options: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-...

That's not how registers work. Register names are not registers. Unless you are in the deepest of embedded, all operations that write to a register allocate a new one, and do not write to their input register.

edit: OoO primer, assuming x86_64 but everything else works the same way too:

Your cpu has hundreds of physical registers. There are 16 register names managed in the frontend. Whenever the frontend sees an instruction that writes to RAX, it allocates a fresh register that does not contain a value, sets it as pending, writes that register number under RAX in the register alias table (RAT), and sends the instruction forward. Once the instruction is in the scheduler, it waits until all it's inputs are ready, and then issues to an execution unit. Once it gets executed, it writes it's value to the register allocated for it and sets it as ready.

If you have an instruction that uses the same register name as input and output, those are guaranteed not to be the same register. Used registers get garbage collected once no name or pending instruction refers to them anymore.


Mostly under the (non-)guidance of one Earl Mountbatten of Burma, the one described as "every inch the King".

https://read.dukeupress.edu/cssaame/article/25/1/89/151/Gene...


Have you ever wondered why Switzerland is the world's second largest exporter of processed coffee, despite never growing a single bean? [1]. Germany is 3rd, Netherlands is 4th. Hmmmm.

Have you ever wondered why all those poor countries around the world sell unprocessed coffee to Switzerland for pennies rather than telling Switzerland to take a hike, processing it themselves and making way more money?

Have you ever wondered why many very poor countries around the world sell their raw minerals for a tiny fraction of the globally accepted price?

After three years on the ground in Africa, my eyes were very wide open. The multi-billion dollar loans from the IMF and World Bank have these countries over a barrel, and if they try to change the status quo, they will be sent back to the dark ages instantly. Spending time in Sudan was very educational, though it means I can never get a visa-wavier for the US. Why do you think that is? (Hint: gas in Sudan was 6 cents a liter..., diesel was half that)

Also very educational to try at get a visa for Ecuatorial Guninea (it has a TON of oil, and a TON of multi-national companies ripping it out). A foreigner can go to the island where the capital is no problem, but try getting permission to go to the mainland - you can't. Even with a valid visa you can't get in. (I camped in view of it here [2] )

Why? Because they don't want you to see what is happening there.

[1] https://www.statista.com/statistics/1096413/main-export-coun...

[2] http://theroadchoseme.com/cameroon-closes


Napster used a centralized server for indexing but downloads were peer-to-peer. This is what made Napster so awesome on college campuses: you could find anything, but if you chose a local peer, the actual download would happen over the college LAN at godly speeds.

Gnutella brought peer-to-peer searches. Basically it used a flood-fill algorithm: your search would be broadcast to all connected peers, which would broadcast it to all peers that hadn't seen it yet, until somebody responded with the file and their IP and you could download directly from them. Interestingly Ethereum uses basically the same algorithm for block distribution, with some optimizations that were first published by RTM, who was one of the founders of YCombinator.

Kazaa's innovation was to split the peer space into "ordinary nodes" and "superpeers", with the observation that not all bandwidth links were equal. It would enlist hosts on high-bandwidth connections to form quasi-centralized indexing nodes to organize the network topology for all the low-bandwidth consumer nodes. It's a similar principle to how the Lightning Network works for Bitcoin, or how L2s on Ethereum operate. This also made it easier to shutdown than Gnutella though, because being a superpeer made you a legal target for the RIAA.


Early treatment of cancer is not always better: "Surgery for early prostate cancer may not save lives. Most men just as likely to survive with limited or no treatment" https://medicine.wustl.edu/news/surgery-early-prostate-cance.... I wonder if this is true of other types of cancer.

Honestly, I was never convinced that concentrating all developer effort onto Wayland was the best idea. Wayland seemed like a massive over-correction from X11, where the protocol and core were "simple" in comparison to X11 which did everything. Being simple, by itself, is not a virtue -- Wayland basically forced all the essential complexity of the problem to the compositors (a la Waterbed theory of Complexity [1]). Given there are so many compositor implementations, they essentially end up reinventing the wheels all the time. This is a bit better now with wlroots, but unfortunately, the ecosystem is already fragmented. I'm not saying X11 is superior to Wayland or vice-versa, but frankly I would be surprised if we couldn't improve X11 if it got 0.1% of the amount of effort collectively gone into Wayland.

I would highly recommend reading through some of these blog posts who expound upon the problems of Wayland more eloquently than I can [2,3,4].

[1]: https://en.wikipedia.org/wiki/Waterbed_theory

[2]: https://dudemanguy.github.io/blog/posts/2022-06-10-wayland-x...

[3]: https://pointieststick.com/2023/09/17/so-lets-talk-about-thi...

[4]: https://utcc.utoronto.ca/~cks/space/blog/unix/WaylandTechnic...


Vaclav Smil's books about energy give some extra context. I have read his Power Density book (eye opening comparison of solar, wind, nuclear, fossil).

IIRC Gas extraction has an extremely high EROI (30x) initially, making it a highly productive extractive resource. But each gas well has a productive lifespan of approx 7 years requiring constant activity to sustain development.


The only reason that natural gas prices in Australia have gone up in the past 10 years is that gas producers in the eastern states were able to start exporting gas as LNG.

As of 2023, Australia is the world's second largest LNG exporter (source: https://www.statista.com/statistics/1262074/global-lng-expor...) after the US (take that Russia!) and ahead of Qatar. Great for the gas exporting cartel but not so great for ordinary Australians in eastern states who now pay the same for gas as people in Tokyo. (And Aussies wonder why manufacturers keep leaving...)

Banning domestic gas usage for new homes (which the fools running Victoria, the state I live in, have done) will do nothing for emissions but will mean that the gas cartel can make even more money exporting LNG to Asia. Bravo!

The exception is Western Australia which is also a massive LNG exporter but has stricter domestic reservation requirements than the eastern states.

All of the above has been extensively documented at https://www.macrobusiness.com.au/ (source: https://www.google.com.au/search?q=site%3Ahttps%3A%2F%2Fwww....).


Two talks given by Ben Collins-Sussman absolutely changed my career path from being a hot headed programmer to thinking like a professional engineer.

The Myth of the Genius Programmer: https://www.youtube.com/watch?v=0SARbwvhupQ

The Art of Organizational Manipulation: https://www.youtube.com/watch?v=OTCuYzAw31Y

I rewatch these every few years, or before an interview. Puts me back in the right headspace.

If you're reading this Ben, thank you.


Sounds like you might like the idea coined as "HTML Web Components": https://blog.jim-nielsen.com/2023/html-web-components/

You basically write all the normal HTML and CSS so it's loaded in right away. But then you also make use of the advantages that defining a custom element gives you.


If you're interested in actually making this a reality, I recommend in engaging in your country's environmental policy community -- and bringing a lot of patience.

Over at KDE we've some something in that direction - we've worked with the German federal environment ministry on extending the criteria for Germany's Blue Angel environmental label with rules for software products. The resulting criteria include language about what's needed to keep old hardware running and useful (as unnecessary HW replacement spikes the environmental footprint); including using open source to enable the required maintenance.

Eventually, this will have an effect, e.g. when government procurement rounds require bidders to achieve this label, and others start aligning with government practice.

https://eco.kde.org/


After this follow up on the Oberon System 3, with its Gadgets component model, and a mix of JIT/AOT compilers,

"The Oberon companion - a guide to using and programming Oberon System 3"

https://www.semanticscholar.org/paper/The-Oberon-companion-a...

You can access the source code from Rochus fork,

https://github.com/rochus-keller/OberonSystem3

Or the Active Oberon evolution, although not directly done by Niklaus Wirth,

https://gitlab.inf.ethz.ch/felixf/oberon

Screenshots and OS Manual,

https://gitlab.inf.ethz.ch/felixf/oberon/-/blob/main/ocp/Doc...

Or Component Pascal and Blackbox IDE, created by a startup out of ETHZ

https://blackboxframework.org/index.php


Vitamin D boosts calcium in the blood, which is important for coherent intercellular communication. However, if your calcium metabolism is off due to low magnesium/low vitamin K the extra calcium in your blood might deposit in the wrong places. Vitamin D is also interlinked with circadian rhythm signalling so the time you're exposed to it could potentially modify how it effects you.

It does a bunch of other things too. Like specific things. That can be and have been shown to be beneficial in the right contexts for the right people.

So what purpose do these kinds of articles serve?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: