HNHacker News
TopNewBestAskShowJobs

edwintorok

5,779 karma · joined February 19, 2013

Mastodon: https://discuss.systems/@edwintorok
submissionscomments
edwintorok··on We're bringing Pebble back
Do you have a link to the 'Small Android Phone'?
edwintorok··on OCaml Syntax Sucks (2016)
With OCaml 5 and effects it might be possible to use direct style, and rely on effect handlers to schedule IO. Here is an example of how structured concurrency in OCaml could look like https://ocaml.org/p/picos_std/latest/doc/Picos_std_structure...
edwintorok··on OCaml Syntax Sucks (2016)
That can be indeed very confusing when you initially learn the language. However there are 3 things that can help:

* An auto-formatter (ocamlformat integration in your editor, or ocaml-top) that shows how the actual nesting looks like

* You can add ;; at the end of a top-level function to get a syntax error at a better location

* Use the LSP integration of your editor which will show you where the error is as you type, so you catch the problem early

edwintorok··on Show HN: Bullshit Remover
Lets try it on itself: > add bullshit: Paste crap, get truth.

Output: > Revolutionize your digital content strategy by leveraging our cutting-edge AI-powered semantic transformation platform to seamlessly transmute suboptimal textual inputs into crystal-clear, paradigm-shifting prose that resonates with your target demographic and drives engagement metrics through the roof!

Use above as input and get as output: > Use our AI writing tool to make your crappy text suck less and maybe get some clicks.

Slightly different one as input: > add bullshit: Bullshit Remover. Paste crap, get truth.

Output: > Introducing our revolutionary Linguistic Veracity Enhancement Solution™! This cutting-edge, AI-powered content optimization platform seamlessly transforms convoluted verbiage into streamlined, high-impact messaging. Simply input your suboptimal text, and our proprietary algorithms will distill it into pure, unadulterated truth nuggets. Elevate your communication paradigm today!

Reverse: > Bullshit translator: We made an app that cuts the crap out of your writing. It's not revolutionary, it's just a fancy spell-check. But hey, at least you'll sound less like a pompous ass when you use it.

Again: > We made an app that edits your writing. It's basically spell-check on steroids. It'll make you sound less pretentious.

Again: > We made a glorified spell-checker. It'll stop you sounding like a pompous ass.

Again: > We made a fancy autocorrect. It'll keep you from sounding like a pretentious jerk.

Again: > We made spellcheck. It'll stop you sounding like an idiot.

Again: > We fixed your typos. You're welcome.

Again: > We changed your words without asking. Deal with it.

...

edwintorok··on QUIC is not quick enough over fast internet
TCP has a lot of offloads that may not all be available for UDP.
edwintorok··on Gnome Files: A detailed UI examination
How do you find out what that keyboard shortcut is? I only found out when reading a similar article as the OP many years ago that complained about the removal of the textbox.

Otherwise I never would've known it is possible to activate the path textbox with a keyboard shortcut.

A UI needs to be both easy to use and discoverable. If "power users" have trouble discovering where the features they need are, why do we think the rest of the UI is easy to use/discoverable for everyone else?

(Although TBH I rarely use UI, and normally just use the terminal, except when upgrading the firmware of my keyboard, in which case I use Jade's file manager).

edwintorok··on Windows 11 is now enabling OneDrive folder backup without asking permission
Is there a case where Google Docs or LibreOffice cannot open a docx or pptx correctly? I haven't used Word or Excel since their '97 version. Even at work I can't remember a situation where I specifically needed the MS implementation.
edwintorok··on The return of the frame pointers
https://www.phoronix.com/news/AMD-Zen-4-LbrExtV2 LBR is supposed to work on AMD too, except it doesn't. I'll have to open a bug report (it records the data, it just can't parse it afterwards)
edwintorok··on The return of the frame pointers
You probably already know, but with OCaml 5 the only way to get flamegraphs working is to either:

* use framepointers [1]

* use LBR (but LBR has a limited depth, and may not work on on all CPUs, I'm assuming due to bugs in perf)

* implement some deep changes in how perf works to handle the 2 stacks in OCaml (I don't even know if this would be possible), or write/adapt some eBPF code to do it

OCaml 5 has a separate stack for OCaml code and C code, and although GDB can link them based on DWARF info, perf DWARF call-graphs cannot (https://github.com/ocaml/ocaml/issues/12563#issuecomment-193...)

If you need more evidence to keep it enabled in future releases, you can use OCaml 5 as an example (unfortunately there aren't many OCaml applications, so that may not carry too much weight on its own).

[1]: I haven't actually realised that Fedora39 has already enabled FP by default, nice! (I still do most of my day-to-day profiling on an ~CentOS 7 system with 'perf record --call-graph dwarf -F 47 -a', I was aware that there was a discussion to enable FP by default, but haven't noticed it has actually been done already)

edwintorok··on Lichee Console 4A – RISC-V mini laptop: Review, benchmarks and early issues
Interesting, I had the opposite experience: the GUI was very slow and nearly unusable on most RISC-V boards that I have, except the LicheePi4a. But that is probably just due to the GPU (which unfortunately doesn't have open source drivers yet?), and not the CPU, and they're all running different kernels and distros. When I have some time I'll need to compare again with the latest distro available for each, and also a fully open source one.
edwintorok··on SAT can be solved surprisingly quickly via superposed bools on Interaction Nets
The description of interaction nets sounds a bit like hash-consing, with some extra optimisations.
edwintorok··on Ask HN: Who is hiring? (January 2024)
XenServer | (Senior) Software Engineer - Xenserver toolstack | ONSITE (Cambridge, UK)

https://www.xenserver.com/story

We build and ship a Linux distro that runs on Xen as its control domain (Dom0). This role is about developing and maintaining the public API server: https://xapi-project.github.io/. There is both a junior and a senior role.

The majority of the control-plane is written in OCaml, with some Python scripts, and OCaml<->C bindings. The codebase is more than a decade old, and has >240K lines of OCaml code, most of which is open source. We have an automated test suite that exercises various OS and x86-64 CPU families every night.

Vacation: 25 days/year + UK bank holidays. Salary depends on the position, with opportunities for advancement, and bonuses depending on individual and business unit performance. Private pension plan, and health insurance.

Apply directly for one of these positions https://careers.cloud.com/jobs/senior-software-engineer-xens... https://careers.cloud.com/jobs/software-engineer-xenserver-t...

edwintorok··on The New York Times is suing OpenAI and Microsoft for copyright infringement
If you overtrain the model may include verbatim copies of your training material, and may be able to produce verbatim copies of the original in its output.

If Microsoft truly believes that the trained output doesn't violate copyright then it should be forced to prove that by training it on all its internal source code, including Windows.

edwintorok··on The New York Times is suing OpenAI and Microsoft for copyright infringement
They are not the only ones to sue. There is also a class action: https://githubcopilotlitigation.com/
edwintorok··on The New York Times is suing OpenAI and Microsoft for copyright infringement
It is questionable whether that filtering mechanism works, previous discussion: https://news.ycombinator.com/item?id=33226515

But even if it did an exact match search is not enough here. What if you take the source code and rename all variables and functions? The filter wouldn't trigger, but it'd still be copyright infringement (whether a human or a machine does that).

For such a filter to be effective it'd at least have to build a canonical representation of the program's AST and then check for similarities with existing programs. Doing that at scale would be challenging.

Wouldn't it be better to: * Either not include copyrighted content in the training material in the first place * Explicitly tag the training material with license and origin infornation, such that the final output can produce a proof of what training material was relevant for producing that output and don't mix differently licensed content.

edwintorok··on VMware is now part of Broadcom
Small nitpick: Next version of Citrix Hypervisor is now called Xenserver again, see https://www.xenserver.com/story

Disclaimer: I work here

edwintorok··on VMware is now part of Broadcom
Xenserver is not part of Citrix anymore. It is a sibling business unit, part of its parent company Cloud Software Group. See https://cloud.com and https://www.xenserver.com/story

Disclaimer: I work here

edwintorok··on VMware is now part of Broadcom
Memory and storage live migration across hosts and pools is possible with Xen too.

See VM.pool_migrate and VM.migrate_send https://xapi-project.github.io/xen-api/classes/vm.html. Those features got introduced in Xenserver 4.0 (2007) and 6.1 (2012).

Disclaimer: I work at XenServer.

edwintorok··on BeagleV-Ahead open-source RISC-V single board computer
Thanks for pointing these out. I was not sure whether I should wait for Horse Creek or get the MilkV now, but with all these bugs I'd rather wait and see which one will be less buggy.
edwintorok··on Bad numbers in the “gzip beats BERT” paper?
Why gzip, and not a more complex compression algorithm like 'xz'? Or if you want it to be fast then 'zstd' or 'lz4'. Gzip is an odd choice: is it neither the highest compression ratio, nor the fastest.
edwintorok··on 55 GiB/s FizzBuzz (2021)
This doesn't use io_uring so it might be possible to make this go even faster these days...
edwintorok··on Distrobox: Use any Linux distribution inside your terminal
Distrobox also works on top of other distributions like Ubuntu.
edwintorok··on Distrobox: Use any Linux distribution inside your terminal
I've been using this on top of both Ububtu and Fedora Silver blue, to run a Fedora toolbox, works nicely. There is also a host-exec script that allows to spawn commands outside the container while inside. E.g. it is not possible to run 'podman' nested, but with host-exec can still run containers while inside distrobox (distrobox isn't used for isolation, but for the ability to run a mutable OS of your choice).

There are a small number of programs, usually those that need root (such as 'cpupower') which also need to be run "outside".

edwintorok··on Check if your IKEA chair is compatible with your screen
Had similar problem with my Steelcase chair: every time I'd stand up and my heels touched or came close to metalic part of the chair there was an electrostatic discharge that causes the screen to flicker on/off for a moment. My previous chair never had the problem.

Solved by an anti-static floor mat from Floortex. Interestingly only one of the screens reacted this way, the one connected through displayport, HDMI seems more forgiving of electrostatic interferences like this.

edwintorok··on Unbundling Tools for Thought
Bookmarks are a good middle ground between saving everything and not being able to find something you read later. It is integrated in the browser's address bar as autocompletion/search and if you can vaguely recall some words from the title you can find it. I've been using this system for years, works great with Firefox sync and Firefox on Android too (to remember articles I discover on both mobile and desktop in same place)
edwintorok··on OCaml 5.0 Multicore is out
The XAPI toolstack is written in OCaml: https://xenproject.org/developers/teams/xen-api/

I've recently completed bugfixing/testing on 4.14.1+no-naked-pointers, and 5.0 compatibility is not far behind (we're usually 1 or 2 compiler versions behind latest, e.g. current production releases are built using 4.13.1)

Disclaimer: I work on the XAPI project as part of my job, the project itself is >15 years old at this point.

edwintorok··on OCaml 5.0 Multicore is out
This backwards compatibility decision to separate threads from domains has been very useful and allows to gradually "port" existing code to 5.0: first just fixup C bindings to avoid naked pointers, and then code can safely run on OCaml 5 just as before.

And once a program (and all its dependencies) have removed dependence on global state they can opt-in to multicore by spawning additional domains.

edwintorok··on OCaml 5.0 Multicore is out
Make sure to check out the new chapter on parallelism too that is linked from the release notes: https://v2.ocaml.org/releases/5.0/manual/parallelism.html
edwintorok··on Goodbye to the C++ Implementation of Zig
Can the stage1 wasm binary be reproduced by the stage2 or stage3 executable? Aside from a "trusting trust" type of attack that seems fine, and every modern distro relies on some bootstrap binary for C compilers anyway (usually older versions of them), so it wouldn't be that much different of a bootstrapping problem than bootstrapping GCC itself. (See the GNU Mes project which attempts to bootstrap from just a very small hex interpreter)
edwintorok··on The Talos II, Blackbird POWER9 systems support tagged memory
Interesting that it does ECC on blocks of 64 byte instead of 64-bit, freeing up some of the bits in ECC RAM to be used for other things like extra tag bits.
Page 1 of 26Next →