In large organizations, I guess a big chunk of success comes from being able to navigate all these political ups and downs.
12,951 karma · joined August 6, 2013
Oxford, UK
In large organizations, I guess a big chunk of success comes from being able to navigate all these political ups and downs.
I agree that in case of Linux, a udev rule generator would be a fantastic step ahead in terms of usability.
The problem with Linux performance on laptops boils down to i) no energy tweaks by default and ii) poor device drivers due to the lack of manufacturer cooperation. If you pick a machine with well supported hardware and you are diligent with some udev rules, which are quite trivial to write thanks to powertop suggestions, performance can be very good.
I am getting a bit more than 10 hours from a cheap ThinkPad E14 Gen7, with a 64 Wh battery, and light coding use. That's less than a MacBook Air, where I would be getting around 13-14 hours, but it's not bad at all. The difference comes mainly from the cheap screen that is more power consuming and ARMs superior efficiency when idling.
But I prefer not to trade the convenience and openness of x86_64 plus NixOS for a bit more battery range. IMHO, the gap is not sufficiently wide to make a big difference in most usage scenarios.
Excellent textbook, intended for non-CS majors as well.
Builds solid timeless understanding.
Dafny can compile to and interface with a few languages, including C#.
Formal methods are really broad, ranging from lightweight type systems to theorem proving. Some techniques are fantastic for one type of problem but fail at others. This is quite natural, the same thing happens with different programming paradigms.
For example, what is adequate for a hard real-time system (timed automata) is useless for a typical CRUD application.
Concrete Semantics [1] has a little example in §9.2.
My bet is on refinement types. Dafny fits that bill quite well, it's simple, it offers refinement types, and verification is automated with SAT/SMT.
In fact, there are already serious industrial efforts to generate Dafny using LLMs.
Besides, some of the largest verification efforts have been achieved with this language [1].
[1] https://www.andrew.cmu.edu/user/bparno/papers/ironfleet.pdf
All it takes is a lack of principles, exaggerating a bit, and getting a letter from a doctor. Imagine you have poor eyesight requiring a substantial correction, but you can still drive. That's not a disability. Now, if you create a compelling story inflating how this had an adverse impact on your education and get support letters, you might successfully cheat the system.
I have seen several such cases. The admissions system is not effectively dealing with this type of fraud. In my opinion, a more serious audit-based system is necessary. Applicants that claim to be disabled but that are not recognized as such by the Government should go through some extra checks.
Otherwise, we end up in the current situation where truly disabled students are extremely rare, but we have a large corpus of unscrupulous little Machiavelli, which is also worrying on its own sake.
This is the case even on high-end devices. Our 12-month-old Galaxy Tab is slower than a 7-year-old Pixel. Hard to understand.
Plus, they make really odd tweaks to the UI, such as adding a permanent button overlay that clashes with most hamburger icons in websites and apps. This drives novice users insane.
If you wanna ship a custom Android, at least get it right. Otherwise, just stick to stock. Sony does this really well: https://developerworld.wpp.developer.sony.com/open-source
NixOS has a declarative configuration that is simply key=value for most use cases. Whatever you configure stays configured, and you can also rollback when doing dramatic changes e.g, migrating from Xorg to Wayland takes 2 min and changing 1 LOC in your configuration.
It would also facilitate keeping engineers in the loop, who would decompose the problem into an appropriate set of formally specified functions.
They could also chip in when necessary to complete difficult proofs or redefine the functions.
Amazon AWS uses Dafny to prove the correctness of some complex components.
Then, they extract verified Java code. There are other target languages.
Being based on Hoare logic, Dafny is really simple. The barrier of entry is low.
Simplifying a lot, R is heavily inspired by Scheme, with some lazy evaluation added on top. Julia is another take at the design space first explored by Dylan.
Galois, Inc. (https://www.galois.com) is employee-owned, and they do lots of great formal methods work.
But not sure whether this model is appropriate for a startup. I guess splitting stock more evenly is a good starting point.
For example, https://opam.ocaml.org/packages/why3 is a little marvel of engineering.
Ideally, watches should do like Garmin's. Mount as mass storage devices via USB, and let the user download activity data and upload updates or routes.
Imagine a medical doctor or a lawyer. At the end of the day, their entire reasoning process can be abstracted into some probabilistic logic program which they synthesize on-the-fly using prior knowledge, access to their domain-specific literature, and observed case evidence.
There is a growing body of publications exploring various aspects of synthesis, e.g. references included in [1] are a good starting point.
[1] https://proceedings.neurips.cc/paper_files/paper/2024/file/8...
The GPR-B1000 was promising, as it signaled Casio might be heading towards making watches with advanced features like GPS, yet a bit different from regular smartwatches and close to their traditional models. This model was tied to a phone app, but I thought this was OK for their first iteration.
Fast forward to 2023, their expensive DW-H5600 was very disappointing. They included a Polar heart rate monitor, which are known for their reliability. Nevertheless, hear rate readouts are extremely noisy to the point of being useless. Also, setting up the watch requires pairing it with a Casio app, which is absurd for a non-smartwatch.
I would love to be able to buy a normal watch that offers heart rate monitoring and basic GPS tracking but can be operated fully offline, doesn't need updates, and will not become abandonware in 5 years time. Garmin is nearly there with some models. Some Casio, Withings, Polar, and Suunto models also have interesting features but overall still far from that ideal goal.
Besides, in many regulated environments you can't have a watch with hardware radios like Bluetooth. Only Garmin seems to understand this. Suunto had terrific models, but is slowly falling behind and has been sold to a Chinese conglomerate.
I think that, at least in software engineering, his point has not been disproven. Isabelle (classical) has a great track record in software verification. I don't see it as something inherently inferior to Rocq (dependently typed), which also has a great track record.
Lean doesn't have a great focus (yet?) on software verification. And Agda is also not mainstream on large-scale industrial verification. One interesting thing would be to compare Concrete Semantics [1] (Isabelle) vs The Hitchhiker's Guide to Logical Verification [2] (an approximate rewrite in Lean). I am still starting with the second one, so I can't say much yet, but it might be too basic to draw any conclusions.
Ultimately, refinement types embedded in general-purpose languages might be a more pragmatic approach. Leftpad proofs using Rust Creusot, Dafny, or LiquidHaskell are quite straightforward [3], but again this is just a toy problem.
[1] http://concrete-semantics.org
[2] https://github.com/lean-forward/logical_verification_2025
Right now, the quality and attention to detail have plummeted. There is also a lot of iOS-ification going on. I wish they focused less on adding random features, and more on correctness, efficiency, and user experience. The attention to detail of UI elements in e.g. Snow Leopard, with a touch of skeuomorphism and reminiscent of classic Mac OS, is long gone.