I got my C64 in 1985. Obviously, I can revisit the graphics and sounds of that machine online now, via emulators and youtube videos. But one thing I always remember is the smell of warming circuit boards that oozed from the casing soon after you turned on the computer.
Anecdotally, the cassette player that came with the machine had a misconfigured tape head. Because there was no internet nobody knew why it didn't load most of the games I got with the machine. However, saving and loading programs did work. So, I started writing programs from the user manual and game listings from some programming books I found in the library, and saving them on my cassettes. Because the user manual covered not only some tutorial BASIC but also the machine's graphics, sprites, sounds, and what other features I eventually, after getting some hang of writing BASIC, did also realize that what I could create with the machine hardware itself was virtually unlimited. I didn't necessarily know what the commands did with the underlying hardware but I knew if I poked certain numbers into certain addresses I could make my sprites appear on the screen and make them move around.
By the time I got the cassette player fixed by some computer repair shop, learned about tuning the tape head, and I could finally load all the games bundled with the machine, I was seriously hooked with programming and the highly desired games no longer seemed that interesting in comparison. I knew someone sat down and wrote all those games and instead of playing them I could learn to do the same myself.
I remember only having enough money to buy the C64 initially and being so relieved to have the checksum on the typed in programs match up, it was ephemeral but it was either that or cartridge programs. The tape drive was the next purchase for me and finally the hard drive. It was still a bargain for the features IMHO compared to the Apple II and other competing devices like Sinclair and Ti99.
I LOVE how the C64 OS was a programming language (BASIC). Even if you used the hardware the gaming, you had to learn a little bit of programming (LOAD "*",8,1).
The only point you can conclude out of these discussions, especially in an interview, that it doesn't matter what the answer happens to be on $CC and $ARCH but you wouldn't want anyone to write stuff like that in the first place.
Failing to recognize the dangers would be an instant fail; knowing that something reeks of undefined behaviour, or even potential UB, is enough: you just write out explicitly what you want and skip the mind games.
We're still in the early ages and must discern hard what AI is good for, what it can maybe do, what it could potentially do and what it just can't do, and move those threshold marks very conservatively. AI is also cheap enough that it's worth shots of experiments. As long as you don't really rely on AI it's easy to test the capabilities of this new conversational autocomplete, and the random gains it offers can be magnificent (except when they aren't, of course).
What has generally worked for me is paraphrasing the old adage "Write the data structures and the code will follow" over to AI. Design your data, consider the design immutable and let the AI try fill in the necessary code (well, with some guidance). If it finds the data structures aren't enough, have it prompt you instead of making changes on its own. AI can do lot of the low-hanging fruit and often the harder ones as well as long as it's bound to something.
Yet, for now, AI at best has been something that relieves me from having to write a long string of boring code: it's not sustainable to keep developing stuff relying on AI alone. It's also great when quality is not an issue; for any serious work AI has not speeded me up noticeably. I still need to think through the hard parts, and whatever I gain in generating code I lose in managing the agents. But I can parallelise code generation, trying new approaches, and exploring out because AI is cheap. AI is also pretty good for going through the codebase and reasoning about dependencies whether in the context of adding a new feature or fixing a bug: I often let AI create a proof-of-concept change that does it, then I extract the important bits out of that and usually trim down the diffs down to at least 1/3 or less.
AI further helps with non-work, i.e. tasks that you have to do in order to fulfill external demands and requirements, and not strictly create anything solid and new. I can imagine AI creating various reports and summaries and documentation, perhaps mostly to be consumed and condensed by another AI at the receiving end. Sadly, all of this is mostly things not worth doing anyway.
Overall, I cringe under all the hype that's been laid on AI: it's a new tool that's still looking for its box or niche carveout, not a revolution.
I don't think we're in the early ages... LLMs technology has essentially stagnated since GPT3.5, we just have bigger models that can handle more context. We're trying to cope for the lack of progress of the actual technology by coming up with contraptions of multiple models stuck together, Mixture-of-Experts, Reviewer models, PM models...
That was surprising. Goes against the idea that deregulation allows companies to squeeze consumers and earn excess profits.
I've held the belief that an occasional bankruptcy is basically a sign of healthy competition within an industry: those companies going down literally didn't know how to be any more efficient or they could've survived.
Regarding airline business, a crapload of more people are flying now with better prices than before the industry was deregulated. Sure it must hurt someone at one end, eventually. Part of the business is standing through price wars because someone will always lose: the best companies can endure that. While airline industry probably fluctuates as described in the article there are plenty of other cyclic industries. Churn itself isn't anything new.
On the other hand, Spirit as mentioned in the article stopped making profit in 2019. Some years later, chapter 11 filings and then another round.. That's like a 7-year runway (pun intended) to insolvency.
Because fixed costs are what they are, I think, is the reason you can drive the business quite precisely to the brink of inoperation: it could literally come down to pure luck between how full your planes happen to be and how close you are to the next payment of some critical loan whether you can take off into the air for another month or so.
In principle, this is the kind of right sentiment but for the wrong things.
I can't remember a phone that died because of the battery since the era of Ni-Cd cells in early cell phones. I don't think I've never discarded a phone with a li-ion battery because of the battery. It's always physical breakage or getting too slow to be usable, because of age.
Sure, I don't spend a cycle per day. Not even every other day. That's probably rare, I get that. But much rather than because of dying batteries I'd like EU to mandate
- the phone should come with full keys so that I can own the machine if I want to
- or at the very least the hardware must become unlockable once the support period ends
- individual components should be made available for independent repairs
- repairs must not need software pairing of hardware components on unlocked devices
because of right to own and right to repair which shouldn't be "rights" but nonnegotiable traits of physical properties like they used to be.
Not sure what the behavior is like on Android, but iOS will throttle performance if your battery has degraded past a certain state. So I'm sure that there are many iPhone users that are replacing their phone due to what they think is poor performance related to the age of the phone, when it's really due to the age of the battery.
You can find it under settings, but when it goes below 80% the phone will start telling you about it regularly using a big prominent notification. Especially if it causes a crash.
That is your choice, however. Plenty of people choose to pay for a new battery rather than drop hundreds of dollars on a new phone. Apple still offers battery service for $69 for the iPhone 6, a phone released 12 years ago. You could have a new battery put in it today and then go a few more years. Nobody is forcing you to buy a whole new phone.
It's honestly been a long time since I've encountered this attitude around cryptography, where not even Schneier can be trusted and you have no hope of actually understanding cryptography so don't even try (yes, I'm referring to your math comments too). Welcome back!
For those feeling like this guy is being a dick, that's a normal reaction, but try to understand that this attitude was cultivated and used by enlightened individuals back when many people thought they were making secure software without even salting and hashing their users passwords. People thought md5 was good enough, https was barely being used, people had to be convinced to use ssh instead of telnet and ftp, and so forth. Drilling the idea into people that cryptography and security is difficult and that you should listen to experts had to be done. Don't take it personally.
So yes, as you study cryptography, do keep in mind that it's extremely unlikely that you'll learn enough to come up with something better on your own, that you will very likely make mistakes if you try to write your own implementation of any cryptographic algorithms, and that you should still just use existing libraries and the recommendations of experts on best practices.
I understand this sentiment but don't know what to do with it. "Not even Schneier can be trusted" is "not even wrong". Schneier has very little to do with modern cryptography! But a long time ago, someone created a "Bruce Schneier facts" meme site, and now it's like an article of faith that he's a cryptography engineering expert. No, not so much, and I don't think he'd disagree.
He's a perfectly nice guy with a lot to say about information security and its intersection with public policy. But I think it's been plural decades since he basically declared himself outside of modern cryptography (you could call it at the point where he said he didn't "trust the math" of elliptic curves, which he left out of Practical Cryptography, over 26 years ago).
It's not so much that you should or shouldn't take "Applied Cryptography is bad" personally; rather: if you think Applied Cryptography is a useful reference or learning tool, it's pretty important to know that it is not.
Just that book. The followup (Practical Cryptography, now called Cryptography Engineering, though it's the same book) is much, much better --- though it's also totally out of date at this point, and would also get you in trouble.
It's a book that is much more interested in presenting an almanac-esque survey of everything that was happening in cryptography at the time it was written (also unhelpful: it was written at a particularly un-rigorous point in the evolution of cryptography) than it is in teaching readers how to accomplish anything safely.
Dare I say those stuck on nostalgia for pressing keys are demonstrating that they cared more about their own personal experience than about the outcome of their work? Now that coding is automated, we have to elevate our ambitions.
YES. The beauty of programming is and always was that, first, you enjoyed it and, second, for some oddball reason you could actually get paid to do it. And one can't produce anything good unless you actually love working on it which means you want to put yourself working on it. The outcome might accidentally serve the one who pays for it but ultimately what did get the work finished was the sensation when you were reaching the point where you would finally tie things together and see everything you designed come to life and work together.
AI doesn't give you that personal involvement. We can do it but it's a different line of work and we care very little about what goes in and what comes out. We just do the grunt work of connecting the two ends. We're not for a fuck interested in elevating ambitions which is a word that relates to what is outside while all the good stuff comes from the inside.
Google Maps uses Internet access to determine the speed of traffic on your route, allowing it suggest alternate routes if there's a traffic jam.
My phone can pre-download maps into Google Maps for offline use, I've done this in foreign countries where I didn't necessarily have full data connection. There's no reason you couldn't cache the necessary maps on the car's navigation system and let it operate based on that and an incoming GPS signal, never emitting out one bit.
OTOH, if you wanted live data, dynamic routing etc. for your convenience you could explicitly turn data on but then you'd acknowledge it comes with the caveats such as potential snooping of telemetry data.
Admittedly, I would never trust a car manufacturer to actually disable telemetry no matter what they'd promise. So, disconnecting the antennae would be the only reliable method regardless. I wonder if there will ever be a car with a physical radio kill switch like laptops.
FWIW, this was precisely my point (I didn't mention it well). I'm totally cool with a car not having live data (such as traffic jams) when the device is offline, but the navigation ought to function without networking. Heck, it could download the maps from WiFi at home. You guys do have WiFi at home?
Anecdotally, the cassette player that came with the machine had a misconfigured tape head. Because there was no internet nobody knew why it didn't load most of the games I got with the machine. However, saving and loading programs did work. So, I started writing programs from the user manual and game listings from some programming books I found in the library, and saving them on my cassettes. Because the user manual covered not only some tutorial BASIC but also the machine's graphics, sprites, sounds, and what other features I eventually, after getting some hang of writing BASIC, did also realize that what I could create with the machine hardware itself was virtually unlimited. I didn't necessarily know what the commands did with the underlying hardware but I knew if I poked certain numbers into certain addresses I could make my sprites appear on the screen and make them move around.
By the time I got the cassette player fixed by some computer repair shop, learned about tuning the tape head, and I could finally load all the games bundled with the machine, I was seriously hooked with programming and the highly desired games no longer seemed that interesting in comparison. I knew someone sat down and wrote all those games and instead of playing them I could learn to do the same myself.
Been programming ever since.
reply