[HN Gopher] Hacker's Delight (2012)
___________________________________________________________________
Hacker's Delight (2012)
Author : kjhughes
Score : 120 points
Date : 2022-08-07 13:43 UTC (9 hours ago)
(HTM) web link (books.google.com)
(TXT) w3m dump (books.google.com)
| tintedfireglass wrote:
| Nice book but I feel the title should be something like
| principles of computer science or something of that sort.
| jxi wrote:
| FabHK wrote:
| _Programming Tricks Close to the Metal_ seems more appropriate.
| brianrisk wrote:
| This is a nice title! At the very least a new book should be
| written to use it.
| djmips wrote:
| People on a site called Hacker News complaining about the name of
| a book called Hacker's Delight.
| KingOfCoders wrote:
| Bioshock!
| O__________O wrote:
| TDLR: Author systematically collected little programming tricks,
| thematically organized them, and clearly explains them.
| [deleted]
| fefe23 wrote:
| Compilers have improved a lot, to the point where you don't need
| to read this book for many of the tricks. For example, if you
| divide by a constant in gcc, you can see the tricks from this
| book being applied if you look at the disassembly.
|
| Still, this is a standard textbook for little tricks. Knowing
| these kind of tricks used to be enough to make you a hacker in
| the original sense. I greatly enjoyed reading it and still
| recommend it even today.
|
| It really is a delight for hackers.
| anonymoushn wrote:
| The section on computing magic numbers for integer division is
| quite useful if you find yourself implementing a vectorized
| version of an algorithm that calls for integer division or
| integer modulus, since these instructions typically don't exist
| mhh__ wrote:
| Note that some fairly big hardware didn't have them either.
|
| Itanium and DEC Alpha didn't have integer divide IIRC.
|
| Cheap RISC-V also probably won't.
| fanf2 wrote:
| I have copies of both the first and second editions of Hacker's
| Delight. The second edition is mostly the same, but with a few
| additions and corrections. (Also printed on thicker paper with a
| smaller text area so it looks 2.2x thicker for 1.1x the content.)
|
| I use it occasionally for things like optimizing tolower()
| https://news.ycombinator.com/item?id=31900872 and for popcount
| hacks https://dotat.at/prog/qp or for quickly updating a log-
| linear histogram https://dotat.at/@/2022-07-15-histogram.html
| cbisnett wrote:
| This is a really great book for anyone interested in compiler
| development, JIT compilation of higher-level languages, reverse
| engineering, or anything that involves understanding or
| generating assembly instructions. This is not a book about
| hacking from the perspective of breaking into systems or finding
| and exploiting vulnerabilities in software. The term Hacker in
| the title is a reference to an early meaning of the word that
| referred to someone who liked to tinker and understand how things
| worked.
|
| When I was doing a lot of reverse engineering and vulnerability
| research work this book gave some really great insight into some
| of the compiler optimizations that I would come across. Highly
| recommended for anyone trying to take their skills to the next
| level.
| FabHK wrote:
| You might be thinking about a different book? Hacker's Delight
| is mostly about bit fiddling (counting bits, finding the
| longest string of 1-bits, multiplication and division, Gray
| code, CRC, the famous approximate reciprocal square root) and
| such.
| EdwardCoffin wrote:
| These are just the kinds of things that an optimizing
| compiler can use, so would be quite useful for reverse
| engineering the product of an optimizing compiler to figure
| out what it is doing.
| smrtinsert wrote:
| I have my physical copy of this around somewhere
| 2OEH8eoCRo0 wrote:
| Mine taunts me in plain view from my bookshelf. It's a cool
| book but I have little use for what it provides so I haven't
| been able to dig into it much.
| davegauer wrote:
| Ha ha, this falls firmly into the "I _wish_ I needed to
| reference this more " category for me as well.
| mabster wrote:
| When I was doing low-level optimisation for games (lots of
| SIMD), I was using mine quite frequently.
|
| Now that I'm doing more application development it's sitting
| on my bookshelf looking neglected.
| mtlmtlmtlmtl wrote:
| Same. But sometimes I like skimming it just as a distraction.
| There's something so satisfying about seeing these tricks I'm
| far too stupid to come up with on my own. A couple of times,
| I've had some breakthroughs when stuck on an unrelated
| problem, while reading this book, because the "psychedelic
| hackery" sort of leads me down an alley I wouldn't otherwise
| have thought of, due to some superficial similarity.
| kevin_thibedeau wrote:
| I use mine on occasion. It's particularly useful when
| targeting architectures that don't have modern intrinsics for
| special operations.
|
| It's worth noting that some of the solutions aren't optimal
| for modern devices with conditional moves. In some cases you
| can get equal or better performance with straightforward code
| than some of the stuff in the book that goes out of its way
| to avoid branching control flow.
| AlotOfReading wrote:
| It has a pretty cool niche as a set of toy problems to
| verify cryptography tooling and I've found some of the
| recipes inside useful inspiration for constant time
| programming and other constrained domains. It's not as
| useful as it used to be for exactly the reasons you
| mentioned though.
| huqedato wrote:
| A fine book with a very misleading name. The book is about basic
| computer science and algorithms.
| night-rider wrote:
| Reminded me of Smokers Delight by Nightmares on Wax:
| https://www.last.fm/music/Nightmares%20on%20Wax/Smokers%20De...
| fknorangesite wrote:
| And Rapper's Delight before that.
| brianrisk wrote:
| I hear all of you about how it's not misleading, but I must
| admit that when I clicked on this link I was expecting a
| different kind of book.
| AlotOfReading wrote:
| It's not misleading, it's just an older meaning of the word
| "hacker" and one that still exists in the name of this site.
| Hacker's delight is a spiritual successor to the HAKMEM memo
| from the 70s. Guy Steele even wrote the foreword.
| SeanLuke wrote:
| The term hacker has a long and storied history. A hacker is
| someone who makes hacks. A hack is a thing, typically a piece
| of code, which must be appreciated for its aesthetic beauty,
| regardless of whether it's particularly useful. [This term was
| obviously originally used sarcastically]. People strove to
| become hackers. It was a badge of honor.
|
| In the 1980s the term "hacker" was possibly conflated with
| "cracker" by stupids in the media, and came to mean a software
| pirate or kid who broke into the Pentagon. But the proper
| meaning still hasn't been lost with the graybeards among us.
___________________________________________________________________
(page generated 2022-08-07 23:00 UTC)