Perhaps another way to say it-using an evil compiler could bootstrap any kind of malicious code in the compiled artifact whether it’s a compiler or not.
Is it just me…or does article seem a bit contrived? I was expecting to read this to learn about a really powerful hijacking technique when in reality it’s just a program that manipulates your input program.
This is something that could easily occur with scripting languages, backend systems, open source, closed source, etc.
Basically any black-box system that takes in some input could pre-manipulate the input yielding an unknown/unexpected output.
As a long-time PC user, I remember going to CompUSA and seeing the Mac section of games which was laughable.
Back then you bought Apple if you were a sound engineer or into graphic/media design.
I used to tell people I’m a die-hard PC user simply: Mac sucks!
Fast forward to around 2009 and I’ve been a happy Apple user since then for all my software engineering needs.
Is the platform perfect? Nope! And nothing is.
Is it expensive? Yes, but the quality is fantastic and if one really wants to can get 5 years easy out of any Mac computer…I’ve got 11 years out of my family’s Mac mini that I was able to upgrade a few times.
Which brings me to my only real gripe: the lack of upgrade ability and the obsession with “thin” design.
Please address that because everything else I can mostly get over.
I had a similar problem. My flash content was several modules where the main module swapped in and loaded in sub-modules.
The main screen would loaded but when clicked wouldn’t resolve the sub-modules correctly but I was able to just play the sub-modules and individually and see the old content in all its cheesy glory.
Awesome blog post Ben! Question: how did you come up with your list of opcodes?
I ask because while some opcodes are obviously needed others as not so obvious and coming up with a balanced instruction set is somewhat difficult design problem.
Also for anyone wanting to learn the history from the man himself Ken Williams recently wrote a book on Sierra’s rise and fall as one of the industry’s top gaming studios.
Obviously he wasn’t there for the tail end of things during the acquisitions and fraudulent period but what I found most interesting is how Sierra was bootstrapped in the first place.
Ken is a brilliant thinker and had the foresight to build a game engine that Roberta could plug and play her game content in because she admitted to not being a great coder.
Later Ken wanted his next generation games to be built as a virtual machine (The Sierra Creative Interpreter) which meant they only had to make the game once and build the VM for different architectures. Again a brilliant move.
Oh wow, thank you Beej for this work and content! Your resource has been a tremendous reference to many of us myself included and still stands as one of the best resources to network programming today!
- Walking is great: I tell people that my days in general are always better if I started out with a walk or really just some kind of exercise.
- Also doing tasks that allow parts of your brain to be asleep. For example if you are a software engineer that relies on the logic/problem-solving part of your brain to be sharp and awake then do an activity perhaps in the evening or on the weekend that allows that part of your brain to sleep/rest. This means engaging at something that allows you to use the creative thought process, or working with your hands perhaps on a mechanical/fix-it task.
- Music also helps with mood. But finding the time when you’re ready to relax and listen to something that jives with your mental state is a challenge. It’s all about finding the alignment.
- Movies can be helpful in terms of the passive engagement and allowing you to escape your reality for an hour and half can be helpful.
Overall learning to combat the problems with anxiety and mental state are not easy. It takes some trial and error but I think the biggest piece of advice is finding ways to break up your routine is helpful. I have gone years doing the same thing over and over with days on forgetting to live a little...it’s not healthy in the long term.
I don’t know how the inner-workings of NumPy work...but this article seems quite plausible because it’s making use of parallel computation in order to achieve a faster result.
The title just seems to imply skepticism over what looks to be a legit approach.