3,209 karma · joined August 15, 2013
62% C 35% Python
Thinking actively about a problem is often all we have time for, but if you can let something stew and let your brain work on it, especially while working on other problems that might turn out to have some similar structure, the results can be quite satisfying.
The current world record for a single mile is 3:43.13, which would shave about 22 minutes off the two hours, for a hypothetical 1:38:00 minimum time if we assume perfectly linear extrapolation of human physiology given the proper training techniques (seems unlikely, given that you would need 26 pacers that could all run at world record pace or something like that). Said another way this would allow one to run about 6 additional miles in the same time if you could sustain the pace for the duration rather than the distance.
The primary design requirement for a stand alone computer system in a post-* world is simplicity, maintainability, and debugability. It must be possible for a single user to do _everything_ in situ. There are very few existing systems that meet all three of these criteria across the whole hardward-firmware-software stack, and modern technology companies are actively moving away from this.
At all levels this requires extensive and open documentation and implementations, and ideally a real standard.
The hardware level would probably need a complete rethink, and if you want good peripheral support (e.g. to be able to try to access whatever data device you come across) then you need a solution that doesn't require a subsystem kernel maintainer for everything, or you just give up on that. A potential 4th requirement here could be a large supply of parts since in most scenarios it is extremely unlikely that anyone will be able to get a fab working again for hundreds or thousands of years. Maybe radiation hardened large feature size ICs or something like that. The alternative would be a zillion RPis (with some alternate data storage interface) so that hopefully some of them survive and continue to work after 100s of years, but this seems like a much riskier bet than trying to actually engineer something to survive for a very long time. Above the IC level the ability for someone to replace parts without special tooling beyond maybe a soldering iron also seems like it is probably also important.
At the software level there are two existing systems that might serve, one of the Smalltalks, or one of the lisps (my bias says common lisp, despite the warts). Assembly and C are just not a big enough lever for a single individual, and other things like Java seem to have been intentionally engineered to deprive individual users of power. The objective here is not to be fast, the objective is to retain access to computation at all so that the knowledge of how to work with such systems is not lost. Also at the software level the requirements pretty much preclude things like browsers that are so monstrously complex that there no hope than an individual could ever hope to maintain a legacy artifact (or probably even compile one of the monsters) for interpreting modern web documents.
I do not think that we can expect the current incentive structure around software and hardware to accidentally create something that can meet these requirements. If anything it is going in the other direction as large corporations can employ technology that can _only_ be maintained by large engineering teams. We are putting little computers in everything, but they are useless to anyone in a world without a network.
relevant passage
We further expand our knowledge on the incredible strength of high-voltage electric organ discharges (EOD’s) produced by living organisms; herein demonstrated at 860 V. The discharge recorded of E. voltai is distinctly higher than any voltage previously cited for Electrophorus2,3, making it the strongest bioelectricity generator known.
This is not about the quality of any one channel, it is about needing multiple channels with distinct provenance that can be used to cross-reference each other. The fact that this article even frames the question as it does means that they have completely missed the point -- there is no such thing as bad intel, only intel that you are too blind to know is inconsistent.
Not a perfect analogy, with plenty of mixed metaphors, but simple enough to reason about and see where it breaks down.
tl;dr economy is flow in pipe, stock market is pressure gauge, if you don't know the flow through the primary pipe (hard to measure directly), then your pressure gauge could be extremely, dangerously misleading
I kind of wish the author had named his type defun `defunct` though!
I hate it.
It has an ok object system which is possibly its only redeeming quality. I found Racket about 4 years ago, and any new project that I work on will be in Racket or CL.
I could go on at length about the happy path mentality of python and the apologists who are too ignorant of other people's use cases to acknowledge that maybe there might be some shortcomings.
The syntactic affordances are awful and you can footgun yourself in stupidily simple ways when refactoring code between scopes. Python isn't really one language it is more like 4, one for each scope and type of assignment or argument passing, and all the sytactic sugar just makes it worse.
Not to mention that packaging is still braindead. I actually learned the Gentoo ebuild system because pip was so unspeakably awful the moment you stepped away from the happy path.
Blub blub blub, someone help I'm drowning in mediocrity.