I have been reading Fabien's book over the past few nights and it has been enormous fun.
Programming for most of us has moved a long way from the metal our code eventually executes on. And it's quite fun to go real low level and understand at an almost atomic how to make a computer do what you want it to do.
That's why this (and Michael Abrash's earlier Graphics Black Book that served as inspiration for this)is so much fun. As an kid who grew up playing games on these machines at that time it all seemed like magic. With quality documentation and the power of nostalgia you can now fully understand (and appreciate) what the likes of Carmack achieved in the early 90s on these machines and now we too can go in and hack around and achieve the same results.
I hope the book does well and Fabien can do the proposed 486 and Pentium companion editions.
On an emotional level, the further down the stack, the more excited and enthralled I am, and the higher up, the more disillusioned I am with how and why things are done. I've been looking for a foot in the door to embedded.
I agree, I hope this does well. Born around the time to be in "suitable age" when Amos the creator on Amiga, and similar things, where the foshnizzle.
This is a really cool thing with today though - the technical barrier to creating and publishing physical books (and ebooks too of course) is just so so low. Making it financially viable and worth it is another thing. I certainly hope this does well and will buy a physical copy.
Agree, indeed barriers to entry in computing generally is getting lower and lower all the time. The issue is that computers are so good now that the need to 'play around with them' is getting less and less. But for those of us that remember peeking and poking memory addresses and programming by trial and error can recognise how good we have it today.
Not sure I agree. Entry into computing is definitely getting easier, but it's decelerating due to a number of factors, namely the slow death of Moore's law and the huge amount of data you need to crunch to create useful solution. Tech is improving, but it feels like we're falling off the exponential into something more linear.
As computer performance improvements decelerate, we're starting to see more specialization into particular tech verticals. This specialization makes it harder for people to break into.
For example, it used to be that if you wanted to crunch more data in Excel, you'd just wait six months for the better intel chip. It was faster and easier to do that than write custom software. Now the new chips are only marginally better than the last, and we need to rely on distributed systems linking dozens or hundreds of computers.
A 10 year old kid in the 1990s could easily create and launch a website from scratch, which was the state of the art medium at the time. It will be far more difficult for a 10 year old in the 2010s to grab terabytes of data and process it easily.
But that's moving the goal posts...? It's significantly easier to launch a website from scratch today, there are even more frameworks with very easy to follow tutorials and hello world-examples to extend to also make it look good. One simple one-liner copy for eg bootstrap.
What's changed is that it is today even _possible_ "for a 10 year old in the 2010s to grab terabytes of data and process it". Wait a little while for the "easy" part :)
> It's significantly easier to launch a website from scratch today,
Write HTML, copy to server, press f5/open URL. It doesn't get easier than the 90s in that regard. You didn't even need a framework for that, so ... I'm not so sure.
I was mostly thinking of the "copy to server" step. I was about to say that now there are many providers and platforms etc, but now thinking about it, there were plenty even back then. Perhaps, if you just have a small nugget of something you want out there, today you can just paste it on pastebin/twitter/instagram or any other platform...
Sign up with ISP, fill out phone number & info into modem settings, click connect, wait, use ISPs server space they provided for free to each customer. Done?
In many ways I find that easier than dealing with cable companies and their systems.
A basic internet connection was easier in some ways. There were disks with free hours all over the place. And hosting wasn't hard. Tripod, Geocities, Angelfire, ISP-provided hosting were all available, and easy enough for me to figure out when I was 10 years old. I had a few sites up on Geocities in the mid-to-late 90s.
We have to move the goalposts, otherwise we'd still be talking in terms of attaching stones to sticks.
The comment was about the reduction of progress, which is like talking about derivative functions. The value of the function is the goalpost, and it moves.
My point is more about the rate of change. If computing power continued to increase in the 2010s at the same rate it was increasing from the 1950s through mid 2000s, that 10yo kid would be playing with terabytes of data on his laptop.
> A 10 year old kid in the 1990s could easily create and launch a website from scratch, which was the state of the art medium at the time.
I disagree, because i was that 10 year old kid in the 90s who fantasized about having his own website and domain - but had no idea how to go about the domain and the only way i knew for making a website was to keep my computer online all the time. So all i did was to make random "fake" sites in Netscape, pretending to be the real thing :-P.
Today it is so easy it is a no brainer. Of course at the same time, since it is so easy now, nobody is impressed by that anymore :-P.
I was the 10 year old kid who signed up on Geocities and followed the instructions to put up a site. I didn't care about owning a domain; almost everything I went to was on user-generated sites, hosted on the major webhosts.
One thing I never get tired of is taking stuff apart. I can rarely reassemble them, alas, but such is life. I see it as doing my part to ease recycling of electronics. In fact, I let my then 2-yo daughter help me take the family color laser printer apart last year. Great fun, great fun.
Now, a couple of things one can do as a curious adult is buying a simple embedded system such as Atmel-based arduino, TI MSP430 Launchpad, or STM8-based devboard, for just a couple of dollars. Set up a toolchain and a LED blinker project, programming in C (asm is a little bit _too_ low level to start with, while Arduino is a little bit too high).
Yeah, the deeper I go into CS, the more it reinforces the idea that learning things makes them more interesting. Sounds obvious, I guess, but you wouldn't know it from how turned off people are to books or online lectures.
It's a bad idea to worry about writing and formatting at the same time, you get distracted. For me, when writing papers and blog posts, it helps to break it down into three steps:
1. First, I write just the ideas I want to convey, in bullet points. I don't worry too much about the exact phrasing of these ideas, or how they flow together. If I want to put a diagram, I just sketch a quick concept idea on a notebook.
2. Next, I go through and turn all the ideas into readable paragraphs. This is easy because I know what I'm going to say, I just have to figure out exactly how I want to say it.
3. In the last step, I worry about formatting, like making sure the fonts are consistent, the size and margins on images, etc. This is a purely mechanical task and it's nice not worrying about it when writing.
I remember I accidentally come to know about Masters of Doom which got me interested in Game Programming. Googling around I found a number of interesting articles such as "1500 archers on a 28.8: Network programming in Age of Empires and beyond", and I eventually stumbled upon Fabien Sanglard's site. The guy is great and I waited eagerly for the release of his book (hopefully the first of a long series) :)
I find the author's experience with latex very similar to my own.
The core parts of LaTeX are very simple to learn, and you get to produce high-quality documents fairly easily thanks to its sane defaults. However, once you want to get a bit advanced, all its abstractions leak and it's impossible to comprehend anything without knowing implementation details.
I’ve been refreshing Fabien’s twitter for years waiting for this book. Just ordered the physical edition from amazon. Feels good to finally get my hands on this :)
I already have the wolf3d source code building in dosbox with borland c++ 3.1. Great fun awaits!
He put years into making this book, you want to read it ("love"), but you won't buy it because he wants to protect his labor of love? (Not interested in arguments why DRM is ineffectual as it has no bearing on this).
Buy the paperback. I just did. If you would really and truly "love" to read it, then buy it.
But really, is the DRM just an excuse? A reason not to part with $32 dollars? A way to virtue signal that you are appreciative of his work without actually showing that appreciation in the only way that matters?
(I didn't mean for this argument to become a larger criticism of how people act to new products and services in general; but I guess that's what it has become).
I can fit every book I own in my jacket pocket, read them whenever I want, wherever I want, annotate them, search them, lookup words in the middle of them, whatever I need to do.
Or I can buy a single book that takes up more room than my entire library combined. No thanks.
As far as DRM goes, people are going to pirate it, and I'm not. But I also don't want to pay money to get a worse, more limited experience than those who pirate it. If the DRM prevents me from doing things that would be trivial for a pirate, something has gone horribly wrong. Yet that's our standard now.
> If the DRM prevents me from doing things that would be trivial for a pirate, something has gone horribly wrong.
The "solution" is to pay for the legitimate version and then get the pirate anyway. I often do that with stuff that can't contain malware/viruses (such as movies and tv shows).
It's sort of a solution but still it's breaking the letter of the law no matter how we feel morally about "pirating" something we've already paid for. I'd rather see more authors/publishers make DRM-free editions of the product in the first place so that I don't have to break any laws in order to make use of what I've paid to have access to. I am willing to pay a premium rate for this.
> He put years into making this book, you want to read it ("love"), but you won't buy it because he wants to protect his labor of love?
I have ethical principles. And one of them is to avoid buying DRMed stuff - even if I loved to read it.
> Buy the paperback. I just did. If you would really and truly "love" to read it, then buy it.
In former days when I simply had no money, I pirated movies. Now I have sufficient money to buy a Bluray disc. But I won't (but won't pirate either). Since I will strongly avoid buying DRMed stuff and don't want to finance companies who DRM their products. If they put out DRMed stuff, they don't want me as a customer and don't want my money - a clear message to me that I respect as a potential customer.
I don't think the parent is opposed to buying it, he does say "put up for sale".
DRM can be a big enough reason to not buy something. I once bought a game, only to realize I need a Games For Windows Live account to play it, then promptly pirated a "DRM free" version and played it without GFWL because I don't want another gaming service.
I am pretty sure to not be able to read a DRM PDF file. I don't know if my e-reader supports that (never had the Adobe DRM account needed for that). I definitely think my Linux workstation won't like it. So, it's more about being able to read it now and in the future. DRM is a pretty strong guarantee that I won't be able to read it.
As we all know, a DRM free version is available (or will be soon) from ahem other sources. I personally don't have any ethical problems with buying a paper copy then downloading the DRM free version.
It would be nice though to be able to buy it in an unrestricted format in the first place.
I sometimes wonder if DRM is more successful at turning potential thieves into customers or turning away potential customers.
It's not clear cut. You have to decide if you want to support the author or avoid DRM. In this case, it's hard to do both.
I dislike DRM as well, but as long as I could easily remove it I was okay with it.
I've bought a lot of ebooks from Amazon for my Kindle. Now that their most recent DRM scheme (KFX) has been uncracked for a long time, I'm having second thoughts about ebooks.
> It's not clear cut. You have to decide if you want to support the author or avoid DRM. In this case, it's hard to do both.
Tell the author that you despise DRM. And as soon as a DRM-free version appears, buy. This sends a clear signal to the market.
On the other hand: As long as the author only sells a DRM-tainted electronic version, he gives a clear signal to the world that he abhors customers who are against DRM. Why should I give him my money then (or more money than necessary)?
It turns away more potential customers. The DRM has helped absolutely nothing to protect against copying. The book is already out there on the net as a now "DRM-free" PDF. It's a shame that illegally downloading it is currently the only way to get the format that many customers would be happy to pay for. If I were the author I'd hurry up and quickly put a DRM-free version on a service like Leanpub.
Absolutely. There are even studies [1, plus another recent one I can't find atm] suggesting that piracy can increase overall revenue due to larger exposure.
You don't have to guess, you helped make it a bit of a flame-fest. Asking for a DRM-free version is not unreasonable (they're quite common among self-published technical books), you started accusing the poster of being a stingy liar.
A way to virtue signal
Just 'signal' or 'suggest' or simply 'say' would do here. 'Virtue-signal' is a way to vice-signal 'I am a pompous butthead who is a accusing you of being a fraud. Good day, Sir!'.
This was on HN yesterday, and according to that thread the only ebook option was a DRMed PDF.
I'll buy this book in a heartbeat if either of those two acronyms goes away. Ideologically the DRM should go, but practically I'd rather the PDF would go.
PDF and formats like EPUB are different use cases.
Definitely without PDF, audiences would not benefit from the very careful editing that has been done, plus other tools associated to fixed-layout renderers, like freehand drawing.
No audience benefits from DRM, but definitely a part of it does from the PDF format.
Perhaps I worded it poorly, but my intent is not to remove PDF versions from distribution.
I understand the benefits of PDF. My Kindle Voyage does not. If I had a 13" eink display with frontlighting, plenty of storage, the ability to read all my books that I've purchased, in slim profile, with low weight, then I'd love PDFs. But based on what's available and what I'm willing to spend, I've settled on the Voyage, which is perfect for my needs in all respects apart from size. Which means PDF is right out.
Even if we ignore what you call "pixel perfection" (which is actually more significant than that, as without fixed layout it's impossible for example, to lay images where intended, or with an expected proportion with the text), it's simply that some tools (any form of annotation essentially) doesn't make sense on a variable layout.
Of course, EPUB makes sense for allowing reading on a variety of screen sizes/devices, but expecting PDF to disappear ignores important use cases.
On the other hand, I read a lot of things as PDF. I basically read: paper, kindle and PDF, roughly in equal measure.
I typically prefer kindle (which I read on a kindle paperwhite and occasionally on iPad, although I prefer PDF here), but if I'm reading on laptop or desktop, I prefer PDF. When possible, I like to have both Kindle and PDF formatted books, so that I can read whatever I prefer for the device I'm currently using.
But, besides all of that, if I can only choose a single of those formats, I would choose PDF.
> Maybe it's more important to have some readers rather than to have a pixel perfect layout. I and others will not read it as a PDF.
What formats would you prefer? Serious question.
My own position on PDF is that it has the central problem that it is a very complicated format for which it is error-prone to write a sufficiently compliant implementation.
But most alternative ebook formats also have a rather complicated specification, so most common alternative ebook formats arre replacing one evil by another.
My book [1] is available in print, Kindle, EPUB, and PDF versions. I sell many more EPUB versions than PDF, and way more Kindle (which is basically EPUB) versions.
Most of that likely has to do with visibility — Kindle and Amazon are highly-used storefronts and platforms. But part of it is also I think fewer people actually do want a PDF version.
PDF does look much better than EPUB — it has the fonts and layout that I carefully crafted for the print edition. But it's less flexible and responsible to the device you're viewing it on. That quickly takes its toll. A beautiful page layout that you have to keep pinch-zooming and scrolling around on to see everything isn't really "beautiful" when you consider the whole user experience.
Oh also, I skimmed over the link last time I replied. I love your book, found individual sections while researching years and years ago and as soon as I saw there was a book available I grabbed it.
Thanks for both providing that resource and for making it available in whichever I bought, Kindle or EPUB. The website is also very pleasant to read, and I like the way you handled asides across breakpoints.
Thank you! I put a lot of effort into the design of the site, print, and EPUB editions try to make each as readable as possible within their own unique constraints.
My judgment is skewed by having a Surface Book, which is 13.5" (3:2), which makes reading PDFs very comfortable in almost all the cases (exception being only the badly edited PDFs with extremely small fonts).
I am very surprised though, that there are essentially no large tablets on the market, as I think 12.* is the minimum for comfortable reading, and I assume there is plenty of people using tablets for reading.
I understand that cramming a Windows-capable machine in 13.5 inches and 700gr is reserved to high end machines, but I wonder why they don't do that with ARM CPUs (I'm aware of the Chuwi, but it's 1.1 kg, and 700 is barely the limit for reading for hours).
Am I the only one that jokingly thinks the book title might be just a little bit pretentious? Don't get me wrong, I love what this guy does, I follow him on Twitter, and I have no doubts that the book is great.
But the "color" books like the Red Book or the Orange Book have other actual names, and people just gave them the "color" name because they were classic references. It's like this one just presumes that it's as important as the others and has to have a classic name.
Disclaimer: This complaint is obviously not serious.
I doubt it's really an attempt to emulate the 'color' books of the Hacker Lexicon
It's more likely a reference to the Michael Abrash games programming black book (a big, thick, book of finicky assembly-level hacks for general use in the DOS era), which I'm sure is an inspiration for this work, and this one, as with Sangard's blog, could be seen to be a game-specific spiritual successor.
How pretentious that is, I'll leave you to figure out.
I don't know the red or orange books you mentioned, my first thought was that it was a play on 'little black book', a book of dirty secrets and hidden knowledge.
I've always used the term "black book" when referring to a "compendium of nasty details", though this use might not be en vogue anymore (in English, in German it still is).
Programming for most of us has moved a long way from the metal our code eventually executes on. And it's quite fun to go real low level and understand at an almost atomic how to make a computer do what you want it to do.
That's why this (and Michael Abrash's earlier Graphics Black Book that served as inspiration for this)is so much fun. As an kid who grew up playing games on these machines at that time it all seemed like magic. With quality documentation and the power of nostalgia you can now fully understand (and appreciate) what the likes of Carmack achieved in the early 90s on these machines and now we too can go in and hack around and achieve the same results.
I hope the book does well and Fabien can do the proposed 486 and Pentium companion editions.