Hacker News new | past | comments | ask | show | jobs | submit login
Is true hacking dead? What we lost (c0de517e.blogspot.com)
255 points by Impossible on Dec 2, 2019 | hide | past | favorite | 182 comments

I don't think true hacking is dead, its just lost in a sea of non-hacking.

The number of students who could write code in my high school of 2000 was perhaps 35. Those 35 were amazing because they had to work to get access to a computer, so we had already eliminated everyone who was just "oh that's too hard". Of the 35 perhaps a dozen kept at it beyond one class in BASIC.

In my daughter's similarly sized highschool 400 to 500 of the students had some proficiency in writing code, and perhaps 200 had the motivation to keep at it on a serious level after graduation. Of those, perhaps a dozen were people who I would equate to the 'hackers' that we had at my high school.

This led me to conclude that its a small fraction of the population that has what I think of as the 'compulsive puzzle' gene. That is they find themselves driven to solve puzzles which they understand must have a solution.

There are ways to identify them. If you have the ability to give puzzles, leave some around to be found. Watch for the ones who solve them.

In the world where 'everyone is a coder' though it is super easy to not see them.

An astonishing thing happened when we finally made it possible for everyone in the world to tell a computer what to do: We discovered nobody knows what they want the computer to do!

We were surprised (if also for other reasons) because we confused the product with the means, or to paraphrase Feynman, hacking is like sex: sure, it may give some practical results, but that's not why we do it.

> An astonishing thing happened when we finally made it possible for everyone in the world to tell a computer what to do: We discovered nobody knows what they want the computer to do!

I'm not sure if that's true all that much, if you take into account the scary things regular people do with Excel and Access, or did in the past with HyperCard.

I think a big part is that as an industry, we've told people that the right way to use a computer to solve your problem is to track down and buy some piece of software that does it (proliferation of open source merely made the "buy" part optional). We then proceeded to take away the means of self-sufficiency, widening the initially small gap between "end-user" and "programmer" into a chasm and hollowing out the middle. It's no surprise people only consume apps, when solving any problem yourself without an off-the-shelf solution requires you to become a programmer. And now the final nail is driven into the coffin with proliferation of SaaS which take away both your data and any ability to control and modify the behavior of an application.

I miss Macromedia Flash, although not from a security point of view. I think there are a lot of parallels between it and HyperCard. I know several people that learned to program because Flash made it so easy to get a prototype running without programming and you just needed to learn just a dash of programming to make it better. There has been nothing like it since.

I'm not the person to do it, but I wish someone would design Flash2.0.

But excel, google sheets, IFTTT and other tools still exist. Some of them are just more successful than others. There is still a lot of people out there who can access computers and before couldn't, but have no interest in automating any of the work.

Case in point: a lot of people don't even use keyboard shortcuts, why would they use a hypercard clone?

Discoverability. Knowing how to connect together multiple services isn't obvious. What kind of information can IFTTT take in and what does google sheets output? That's not obvious. I use Beorg (an org-mode interface) on my iPhone and I still look up recipes the developer puts online showing how to hook it up with the Shortcuts app and do clever things. Mostly because I don't have a good idea of what interfaces between things are available on my phone.

The time of hoping that non-technical users would write little things on the command line seems to have past. I recently read an interview where Aho said that in the beginning awk was used by non-technical people. Now awk usage is probably even on the technical end of technical.

But I'm betting that there are plenty of savvy users who could put together complex automation workflows if they had a unifying tool that demonstrated the potential.

Right. Discoverability. And I'd also add, paradox of choice. If you have 20 different ways you could use to automate some things you need (but not all, and solutions only partially overlap in the problem space), you may as well have none. Defaults matter. I doubt we would be able to have a third-party solution reach ubiquity again, the way e.g. Flash had, so having powerful functionality integrated at the OS level would be very helpful, as it would remove the problem of figuring out what to use.

macOS had automator for a long time and even usage of that must have went quite down for them to let Sal go. It's quite sad because as others have said I think the percentage went down mostly because of more people coming in.

Now that they have introduced Shortcuts to iOS I would be curious about how many people use them and to what extent.

It's always been difficult to discover this stuff. There has always been a very small subset of people who were driven to figure it out, in part at least, because it was hard.

To reiterate what ChuckMcM said at the top of this thread. The "hackers" who would figure that stuff out are still there still doing things no one expected could be done systems that no one thought would be used in those ways. We didn't actually lose anything. It's just a little obscured by the sea of consumers of computing who aren't hacking on those systems.

The filters that kept the consumer away from computing are mostly gone but that didn't make the consumer magically become interested in tinkering with those systems.

One of the things that makes me sigh is how we've gone and built up a huge slate of "required features" for apps that are very effective at professionalizing software and yet may not do much of anything for the end user.

In that respect I think we've hit some kind of endgame for software as it's historically been done - the bells-and-whistles show - because smaller, more targeted software so often hits the mark better.

For example, when people ask how to get into playing piano, I steer them away from a MIDI controller and software and towards the cheap home portable hardware. The hardware has nearly ideal software for the task: it starts instantly, never crashes or glitches, never needs to update, can only be hacked with physical access, has ideal latency, and does not require additional plugs or configuration. Put in batteries and flip the switch and you can practice. And past the very most inexpensive ones, they all have the connectivity needed to control software.

And yet many technically inclined people - my previous self, friends, etc. - will hear that recommendation and still opt for that MIDI controller and get a gadget with more knobs and wheels, instead of a perfect learning tool, just because of the temptations of software that could "do anything." There's a shopper's high in it. But guess what the last software purchase I made was? An emulation of old home portable keyboard sounds(Plogue PortaFM). What goes around, comes around.

I think that it is more accurate to say that people don't realize that they can tell the computer to do something.

My boss had a time consuming task to do weekly. I looked at the steps, which were very basic and repetitive. It is the type of thing that a small program could easily handle. So I automated it. The problem is that most people see the tasks that they perform as a job that must be done. They may think about delegating it to other people, but they rarely think that it can be delegated to the machine. Which is ironic when the machine is involved in the process.

I suspect that there are many reasons why people don't think about writing a program. One reason is that software developers rarely make such possibilities clear to the end user. Another reason is that there is an aura of wizardry around programming. In a sense there is: programming languages rarely allow users to express a task in the terms process that they would use while performing it in an application. (Another irony, since the user is essentially telling the program what code to execute.)

It is a mix of challenge, curiosity and (probably) the will to be in total control of a little subsection of reality.

And it certainly isn’t dead.

> And it certainly isn’t dead.

Or to put it another way, it's alive and kicking ass :-)

> An astonishing thing happened when we finally made it possible for everyone in the world to tell a computer what to do: We discovered nobody knows what they want the computer to do!

I feel this way. I've been at this a long time but all my non-work computing is either futzing about or incredibly low-value. Spreadsheets are pretty nice but I could do without them. Some kind of instant messaging or email is pretty useful. Calendar reminders are nice. But there are decent alternatives to all of them that aren't really that much worse, for personal use, while computers are expensive and take up a lot of time, especially to get good enough to use them without constantly being confused and mystified (see: any non-nerds using computers).

90%ish of what I get out of all this, personally, is media access, which could be almost perfectly replaced by living somewhat closer to a library and having a Netflix DVD subscription. I kinda think the everything-always-available aspect actually makes things worse, so a little extra friction or forcing choices might be an improvement. Ditto spending—I think any savings from online shopping is probably exceeded, for most people, by increased total spending.

It's looking increasingly likely I'll never start a significant side-project, let alone found a product of any significance whatsoever, because I just can't think of anything useful to do with these magical boxes that's not already being done. Since everyone says that business ideas are the easy part I guess I'm truly fucked because I can't even come up with one of those that survives a day of thought and research. I look at computers and the Internet and see a time-suck that is, most of the time, ill-applied, dangerous, and probably harming productivity in most areas.

[EDIT] to support the "expensive" thing, say it's about $2000 every four years per person to keep in smartphones and larger computing devices that don't take up too much space (laptop or tablet), that work well enough to actually be semi-useful rather than just a constant pain in your ass, and that will actually probably last and remain usable for four years, on average. Two adults in a household, that's about $1,000/yr in hardware, no tinkering, no gaming consoles, no bling'd out new phone every year, no peripherals, just to basically get the "job" done. Two streaming services of some kind, call it $20/mo, and that's a pretty low count. Good home Internet plus the Internet portion of your cell phone bill, for me, that's about $110/mo combined for the two of us (kids don't have their own stuff yet, and hell, may not at all until they can pay for it, because this stuff's expensive). That totals to about $2500/yr. You can buy a hell of a lot of physical media, (physical) games, postage stamps, puzzle books, whatever, for $2500/yr, and if you don't just throw it away you can keep using all that stuff the next year, and the one after, without paying again.

Some of us started around with ZX Spectrum and C64, playing some games we wouldn't bother glancing at today. You actually can find emulators for this stuff, but we're living in a much higher vibration for this stuff to even trigger a yawn. What did we "create" at the time?


20 GOTO 10

Aside from futzing around with C++, x86 assembler (never could find a book for C64, so never got to learn it on 6510), there were the same "rules" then as now. The builders build, and most just futz around, play and watch some movies.

It will take time. Dedicated effort. Sweats, pain and troubleshooting. There's never been a better time than now. No need to lay the foundation, one can start right off the bat. The trick is that it has to be fun, involving and based on true motivation (hunger).


I'm leaning on the conclusion that nothing fundamentally really changed.

My first program on my Spectrum was

10 GOTO 20

20 GOTO 10

I quite enjoyed but was baffled at the time that this caused the loading screen behaviour to kick in.

Try it online here: http://torinak.com/qaop

There's no reason your side-project needs to do anything that hasn't been done before; not every new business needs to be a unicorn.

In fact, if you consider that someone else aims to "solve" these media access problems as a thing you can learn from and tweak (perhaps adding some value, or shortening the delivery chain for someone else), then perhaps you can be freed up from having to feel like you have to do everything yourself.

One of the hardest things to learn to do well is to create and run a business, and in my experience it takes more hard work than good ideas to be successful.

Puzzles don't interest me much, but composition, building and designing things does.

When hiring engineers, I sometimes worry that too much puzzle-orientation shows a bias towards "clever" solutions - and complex code - where not necessarily warranted. There's definitely a place for that kind of focus, but it's usually quite low down in the stack, and that's increasingly far away from business value these days.

> complex solutions

Puzzles aren't really about that. It's about making a model of a problem and finding solutions to it. Complex solutions are as bad in puzzles as in any other area. Not sure what you mean by "clever" (maybe "clever" as in unreadable code). Sometimes you come to an aha moment and realise that you can solve something in a trivial way, aka clever way, and that's a desirable event.

Agreed. Levy's "Hackers" is still the best book I know about the mindset that begets hacking and hackers. I can't recommend it highly enough. It opened the door to my first job in programming.

The author seems to be bemoaning the lack of opportunities today to return to the halcyon days of yore. Mostly I agree. I was coding back in the early 80's, and the energy surrounding computers then was much more dynamic, open-ended, and seemingly limited only by one's imagination. Alas the rise of open source inevitably grew hobbyist computing into the panoply of richly ornamented computing tools we know so well today, from the Linux kernel to the GNU toolchain and far beyond. It was probably inevitable when millions of youngsters with copious free time can dive deep into the bowels of PC hardware using a wealth of S/W tools that the formation of a big complex (daunting) computing ecosphere was inevitable. And all that technical mass makes it much harder to perturb the universe and do something new and cool and share your hack with like-minded friends.

As to the roots of hacking... solving a puzzle is where the adventure begins, but solving it elegantly, even optimally, is where it goes from there. The best hacks open doors to other hackerfolk, enabling them to go where nobody you know has gone before, and they make ever deeper dives into computing that much more compelling. AFAIK, this is true of all hackerfolk, be they white or black hatted, in S/W or H/W.

For sure. However most code doesn't require "aha moments"; it requires readable code with tests that cover edge cases, following the same pattern as similar code that does similar things.

The worry around puzzle orientation is when someone e.g. takes advantage of an obscure feature or does something unusual for a performance gain at the cost of readibility or maintenance. I've seen several repeated instances of clever people writing complex code because they could, and spending too little time thinking about whether they should.

There's a place for that kind of thinking. It's usually when non-functional requirements are limiting factors; minimizing memory, CPU time, network round trips, etc.

> It's usually when non-functional requirements are limiting factors; minimizing memory, CPU time, network round trips, etc.

Unless you’re working on something trivially easy, isn’t this almost always the case? The puzzle does not actually show up as “high cpu utilization”, but seeing process stalling, string handling edge cases, weird packaging based problems or that one issue for that one customer happen on a weekly basis for my teams over the past decade of me programming professionally.

Also, the best puzzle solvers or hackers almost always come up with the simplest solutions that solves problem and are literally the only people I’ve seen being able to take on the toughest bugs.

I could put it another way. Some people who are comfortable with complexity don't actually come up with the simplest solutions, and instead come up with more complex solutions because they themselves find them relatively simple.

It's a pattern I've seen in talented engineers with less experience.

And on your question, I don't think it's the case. If it were, then there would be little excuse to use Ruby over Java, or Java over C++ / Rust / etc. In the same way as we pay a performance penalty in return for productivity when we use an expressive, high-level language, we pay a performance penalty for maintainable code with clear abstraction boundaries. Efficiencies, when they must be found, often come through vertical integration that burrows through abstraction layers.

Ideally we build our architectures so that we can scale out rather than up, for both hardware (easy) but also the team (the much tighter constraint - aiming for fungibility and elasticity of labour). If we get to the size of a Google or FB, then we can worry about squeezing out more profit, but first comes growth, and that means product, which means features.

A puzzle will more often than not have one right way to do it, unlike real engineering problems which are made of trade-offs, and that one way is unintuitive, otherwise it wouldn't be much of a puzzle at all.

A puzzle is just a packaged problem. I think it's hard to argue that certain puzzles are more prevalent than others. This weekend we were doing these puzzles where you have to align unique pieces into a specified shape. It's basically a bruteforce search. The creativity is expressed in how you reduce the search-space and how you memorize the alignments you've already tried. There's definitely more than one way to do it.

Even when there is only one solution there is generally a vast array of possible approaches to solving it. A Rubik's Cube for example does not care about the intermediate states.

Puzzle interest may be one aspect of it, but I and others too I would assume, are in it for the creativity and fantasy. I knew basic in 2nd grade and made simple little games. Later I learned to use a hex editor to hack saved computer games. I switched to CompSci in college because of the Internet. Today, I love building projects and hacking electronics (and wish I knew more!). I never really had a thing for puzzles, just creative creation.

Yup. I'm pretty anti-puzzle, I don't like solving completely arbitrary, artificial, self-contained problems. I've always found them boring (though these days I appreciate their instrumental value). That's why in high school I could easily code circles around everyone else (including the teachers), but I never was the best in the algorithm olympiad. I learned programming to make games, not solve random word problems from exercise books.

I was actually put off taking up programming for a while because of this "it's for people who like solving puzzles" attitude.

Admittedly I have spent days tracking down bugs in personal projects because I couldn't leave them in a broken state, but that was partly because I'd done so much work already that to leave it crippled by a bug seemed criminal. But solving Rubik's cubes? If you enjoy that go right ahead, I'll be over here doing something interesting.

I feel the same way about the kind of problems that appear in pure mathematics books and I worry I'm missing out. Colouring adjacent tiles or whatever doesn't intrinsically interest me.

> I have spent days tracking down bugs in personal projects because I couldn't leave them in a broken state

I would still call this "puzzle" solving like the OP was talking about.

Also often the puzzles have very little to do with your coding skills and everything to do with knowing some mathematical trick. Don’t know if it’s still the case but when I was in uni everyone told you to do Project Euler to prepare for interviews/learn coding. God help the people who had that as one of their first encounters with programming, I would have been turned off it for life!

> Also often the puzzles have very little to do with your coding skills and everything to do with knowing some mathematical trick

Yeah, my favorite "puzzle" that highlights the folly of such things is this; write a function which, given the number of participants (n), returns the number of games/matches necessary to be played in a single elimination tournament to determine a winner.

I actually asked this question in an interview once, only I was the interviewee. I had just fumbled about with all the nonsense algorithm problems that had no relevance for the job when the interviewer asked if I had any questions. I popped that one on him and to my surprise he actually took up the challenge. But since he didn't know the trick he fumbled about on some recursive goose chase.

A cognitive psychologist I worked with referred to these as insight problems. You need to have one critical piece of insight to solve the problem, and then it's done. If you have the insight, you solve it, if you don't, you don't.

He was constantly bemoaning how much of the research into human thinking revolved around insight problems, which you can give each subject once and at best time how long it takes for the insight to occur, instead of repeatable cognitive tasks that you could give the same subjects over and over while varying different parameters, to draw richer conclusions from.

This doesn't sound much like a trick[0] question to me, it just takes working out a few examples by hand to guess that it's `n-1`, and the proof isn't hard either. And the result shouldn't be surprising: if sorting can be done in O(n log n) comparisons, it should be easier than `n log n` to just find the maximum/minimum element.

Even without doing any math, or proofs, or having any algorithmic background, it shouldn't take "fumbling about on some recursive goose chase" to write the function from first principles:

    >>> def games(players):
    ...   if players <= 1: return 0
    ...   if players == 2: return 1
    ...   return 1 + 2 * games(players // 2)
    >>> games(8)

If your interviewer couldn't come up with that, I wonder how well they do with real-world recursive algorithms on the job. It bears some resemblance to real-world problems I've had: groups of IPs combining into groups-of-groups-of-groups for addressing, computing permissions for teams-of-teams on the org chart, etc.

[0] To me, trick questions involve some hard-to-come-by "aha" moment, like the XOR trick to swap two variables without a temp. This one doesn't seem to have that.

It's even easier than that... return players - 1. The trick is knowing in any single elimination tournament in order for there to be one winner there must be n - 1 losers.

edit: Also, I'm not sure your solution works for 13 players.

I wrote that it was `n-1` in my comment. Doesn't seem like much of a trick to me.

I don't even know what a single elimination tournament is.

It's a tournament where the loser of each match is immediately eliminated from the tournament. Normally with a tree-structured bracket, or as nearly as possible.

Exactly. Now to be honest, over the years I've learned to appreciate the power multiplier deep math knowledge is, but that's not what interested me in programming. And most of the time, it's also not what's useful in a job context.

The 'compulsive puzzle' gene really hits home with me.

Really nails my childhood and my life - and explains why I am where I am in life.

It was never enough for me to take something (anything) for granted - I had to know how it did what it did. Whether that be by taking something apart, reading a design sheet, rebuilding something, writing code, whatever, I had to figure it out. This applies to anything from a gas pedal in my vehicle to a mechanical pencil or power lines, a module in programming, etc...

I can pick out those who share this trait from people around me at work and in life - it all makes so much more sense now.

> Compulsive puzzle gene

Did you observe this in _all_ of the mentioned 35 students in your high school? Do you think that an aptitude for puzzles is a de-facto pre-requisite? I know that it shouldn't be, but I'm wondering if you have actually met people who are not good with puzzles but are extremely good when it comes to making a computer do things.

> Did you observe this in _all_ of the mentioned 35 students in your high school?

No. The one trait that was common to all of these students in my high school and in my daughter's high school was curiosity. The question "Why does that work that way?" or "How does that even work?" were common.

When friends have asked how to raise their kids to be more engaged technically with the world I have always advised them to feed their curiosity. Keep answering 'Why?' questions until you both have to look it up in a good reference. (Also answered the question for them why, in this day and age, did I have an encyclopedia set in my living room. Answer, to do tactile research and explore the world in real time with my kids.)

I think there are two approaches of computer lovers. One is for the puzzle solvers, and one is for the escapers.

I think there's other types of compulsive people too. I'm not, in my view, a compulsive puzzle solver. Rather, I'm obsessive about understanding elegant solutions to complex problems. Usually I define elegance in different ways, but nevertheless that's the thing I most enjoy.

So puzzles by themselves don't often hook me too much. Especially if the puzzle itself has 1 way to solve it. But I'll spend days obsessing, losing sleep, forgetting to eat and etc all because I "feel" a problem has a more clean solution.

Though, I'm probably not a hacker in this sense.. hmm. /shrug

> If you have the ability to give puzzles, leave some around to be found. Watch for the ones who solve them.

Brilliant explanation, I tried to examine that both reading and experiments. The closest thing I got was state called flow where you lose track of time, yourself and give all of your attention to the task.

But most importantly the task has to be in the perfect place between enough hard for you to give all your attention and enough easy for you to solve it.


people who solve puzzles and the 8 of 1500 students who became software engineers at my school had little if any overlap.

I was always concerned that as more high schools taught programming, six-figure salaries would cease to exist because of an increase in programmer supply.

I remember when I was in high school reading the weekly horror stories on Slashdot about how every job was going to be outsourced, everyone was doomed, etc

Turns out that if anything, the opposite happened. The best engineers in India and China got sucked into six figure jobs in the USA. Software Engineers are now the most valuable part of every business in the world. The demand for them just keeps going up endlessly, outstripping supply even though just about everyone who can rub two bits of logic together gets sucked into the industry

"compulsive puzzle gene"

I like that a lot. I'm curious if you hire people and if you use that concept in that process.

I do, and I do. Although it is more about unconstrained thinking rather than strictly puzzles. I have observed a high correlation between people who can temporarily 'change the rules' and think about things with a different mindset, with original and creative solutions to problems. Solutions to problems that people with constrained thinking cannot see.

Thanks for that. This led to a great conversation with my coach about our next hire.

There was a time when I used to fret that the era of tinkering was coming to an end. Crypto was going to be illegal, they were going to put DRM on speakers, and our computers are designed to be completely locked down to the degree that you can't even add more RAM to a MacBook Pro.

However, I think that the rise of Linux, Raspberry Pi and Arduino, OSS and Github and massive package repos for every language, Adafruit, even 3D printers have replaced stuff that didn't want to be hacked with an endless array of stuff that is literally begging to be hacked. Between YouTube and coding bootcamps, you have to actively not want to learn technical skills.

The author also calls out Unity as part of the problem, which pretty much confirms to me that we're not reading advanced analysis. Unity is fucking incredible; not only is it an engineering marvel with cross-platform compilation capacity that makes Babel look like a total joke, but it is probably the single most capable, interesting and fun platform for artistic expression in modern computing.

Seriously, the way to get kids to keep interested once Scratch gets dull is to throw them into a AAA 3D engine that lets you build a compelling VR creation in an hour from free, downloadable assets. Unity should be in high school classrooms. The breadth and quality of assets available on their store is shocking. If you have artist's block, just scroll through a few pages of assets. Problem solved.

I think what really got to me was the overwhelming sense that the author wasn't talking about hacking but recreating the exact same conditions that existed when he was a young person... while completely ignoring the huge amounts of privilege that he enjoyed to be able to have a computer in the house and have such a incredible headstart on his learning compared to the other 99.99% of the population - many of whom don't look like him or believe the same things.

Today, even relatively poor kids have access to tablets which means that they can build games in apps like Roblox. Who makes him the authority on what counts as hacking? If a young woman makes a game where her friends all want to hang out together after school and talk about their lives in a safe space, isn't that the ultimate hack?

I really didn't enjoy this op-ed, and I wish people wouldn't bring it a larger audience by posting on HN.

the author wasn't talking about hacking but recreating the exact same conditions that existed when he was a young person...

That sums up the article. Kids can do far more today than in the Commodore 64 era. On the other hand, the field is much bigger, so they won't be doing the same thing as their local friends. But there will be someone on the web doing something similar to talk to.

It reminds me of one of the reasons why I stopped using Getoffmylawnbook: far too many of my friends were using it to complain about "kids today". They were angry and indignant about things like kids being allowed to use calculators in math class and not enough kids knowing how to drive a car with a manual transmission. It's like there's this arbitrary "right point" at which kids are supposed to start from and it's coincidentally the same as the point where we started from.

> Kids can do far more today than in the Commodore 64 era.

Kids can do far more but they're not instantly warped into a fully programmable environment. You enter the following:

    POKE 53281,8
And you're immediately changing stuff like the background color, something you also saw happening in turbo loaders or those quick color cycling screens before a game started. You get the feeling that it's possible to achieve anything yourself.

It's pretty empowering and a lot of kids knew these kind of "secrets" and some basic BASIC.

Nowadays it's actually easier to do a lot of things with autocompleting IDE's and Stack Overflow but you're not exposed to it so directly.

First, I think you need to be realistic: we're going into the third decade of the 21st century and no kids are going to be POKEing, not even on Facebook.

Second, I think you underestimate how tangibly incredible it is to hit play on a basic scene in Unity and see it come to life. I think that this is the reason Roblox is so popular, and Unity is the next step.

> no kids are going to be POKEing, not even on Facebook

If they can be tricked into executing random JavaScript in the Chrome debugger on Facebook we're actually pretty close. The difference is that the C64 dumped you straight into it and you would have to load your first website using the debugger command line.

Hacking is just interesting only if you are not following any "tutorial". Today you can run an embedded linux under 10 minutes with less that 20 bucks with a RPI by reading some tutorial or watching a youtube video. What's the fun about that?

I remember too hacking my commodore and the only help I had was just a book in a strange language (english in my case) and my dad (he was into 8086 at that time) when I was a kid. Today everyone pretends there should be step-by-step guides on how to do everything.

The most similar thing to that hacking feeling I get in the present is implementing some unknown HW component (i.e. a sensor, I2C device, microcontroller) that there is no source code or help for it (of course, when doing it for fun and not work). When the thing starts to work, there is a very little spark similar to those felt when I was a kid.

I'm guessing you didn't rediscover programming from first principles. There are always tutorials (or books) you learn from. Hacking starts when you start to deviate from a tutorial, when you have a goal of your own and have to figure out how to connect all the various pieces of knowledge and references you have available, and how to fill in the missing pieces.

Yeah, I just don't agree. I don't think you (or we) get to decide what makes someone feel that hacking feeling.

There's a term for not finding "you can run an embedded linux under 10 minutes with less that 20 bucks with a RPI by reading some tutorial or watching a youtube video" exciting: jaded. "What's the fun about that?"... seriously, dude? Listen to yourself. It's only not fun because you've done it so many times. It's fucking incredible.

News flash: the fact that you were able to be alive at a time when C64s and XTs were happening, that you had someone who loved you in your immediate family that could help you if you got stuck was an enormous privilege.

I challenge you to explain to me how someone today learning to hack a Pi from a Youtube video even though their parents are manual labourers and electricity isn't always available is somehow less hacker than you ever were. Get out of your own head.

> get to decide what makes someone feel that hacking feeling

I agree, but I wasn't deciding for anyone; just saying what happens in my case.

> It's fucking incredible.

I totally agree, but it's not hacking. It assembling LEGO with instructions.

I am not saying I'm a better hacker or that it has to be done the way I say. What I'm just saying is that if you follow the instruction books, tutorials or videos, you are not doing any hacking. You are just assembling IKEA furniture. I am not saying that is not useful, that won't teach you anything or that you should be doing something else. I'm just saying that is not hacking.

I guess you tell your current or future children that their feeling of excitement at the realization that they can build anything they can imagine with time and effort is less legitimate than the pure rush you experienced on a C64 just because you didn't have any access to reference material?

I just think you're being a bit of a temporal chauvinist. I'm not angry with you and it's okay if we disagree. :)


Well, yeah, the video tutorials / step by step guides are for people who do not care about hacking, or deep understanding of how the system works. It is like McDonalds of software world - ypu are no loger hungry, but the food is pretty bad.

You can always grab a book (and a manpage, and a sample config) and do it the old fashioned way. It will take longer, but will teach you more.

Back in the day I had to setup a TV tuner for Linux by hand, by spicifying its module parameters such as the PLL, the tuner and so on. No internet at home, not even by a GSM phone.

Also I had to setup XawTV and AleVT which was no easy task with a Pal tuner and some quirks.

I never learnt so much about IT except when I installed OpenBSD a few years later.

Linux is... a little alienating, isn't it? How many people can hold the whole thing in their head? Not many - and I don't think it's seamless enough to work as another layer of magic, either. People accept OS X because it's another layer of magic.

TempleOS was written by one guy, so I assume it can fit inside one head. Linux has been written by a lot of people over several decades.

Maybe I'm completely wrong about this, I don't know. But I'm getting old and lazy, so these days I'm on Windows.

I'm a little surprised there aren't more weird OSes going around these days, now that everything runs in the browser except text editors and fancy video games.

> I'm a little surprised there aren't more weird OSes going around these days, now that everything runs in the browser except text editors and fancy video games.

Don't know what you're talking about, but I've used plenty of text editors and played fancy video games in a browser.

The day will come when your can run a hardware emulator in your browser and use to it run your hobby OS or even a C64 image for you to hack on.

TempleOS was written by one guy. He just happened to be a lunatic who did little else. It was a very sad story, TBH. Thankfully, there's very little about TempleOS that has anything to do with a massive influx of kids hacking.

He doesn't call the closed tools part of the problem, rather he asks why it is the case that these tools remain more successful at engaging newcomers than all the open source stuff, and draws a connection between the fully proprietary devices of yesteryear and these modern environments:

Whatever the causes, we have software and hardware systems that strive to be entirely open, yet time and again are closed ones that are more accessible in practice, that drive social revolutions. Linux didn't change the desktop, nor the way software is made.

And he suggests the answer that's been in the air lately: open software is now seen as a corporate business strategy, a cost-cutting measure. Which in turn means that proprietary software is now the stuff at the vanguard for the "little guy", creatively speaking, and many of the old hacker credos that correlate with "information wants to be free" are false, are in fact as elitist as you state.

I agree with your comment and feel similarly about the piece.

The last paragraph though:

> I really didn't enjoy this op-ed, and I wish people wouldn't bring it a larger audience by posting on HN.

I think it’s good to have it here, even if I disagree with the article it made me think why and started a valuable discussion in the comments.

I mildly disagree. I've been reading variants of this sentiment for over a decade, and I agree with peteforde's take: not only is it not true, it's even less true than ever before, and this statement holds as time goes on.

God this was a breath of fresh air to read. Can we stop pretending hacking is reading plain-text websites and nerding out on them?

Thank you for mentioning Roblox because I see kids hacking way more interesting stuff there than anything I’ve ever seen done on a Raspberry Pi. And the kids are learning Lua!

If I'm going to wax nostalgic about what I thought hacking was as a teenager, then I would bemoan the decline of IRC. I know many of us are still on Freenode, but I'm talking about the wild-west days of Undernet and Dalnet.

I met some interesting characters back then. And it was my first exposure to people I would describe as hackers, since there were none I knew in real life. I was friends with a guy who was convinced the military was controlling his brain with microwave radiation. He was an amazing coder, and he introduced me to coding actually.

Unity is amazing, I agree. Moving from scratch to unity seem like a big step. Why not play with a 2d game library on the browser (with typescript, and a teacher to give a starter project and the basics) ? Making games in 2d is a very similar experience a smaking game in 3d, just easier. Unity can be overhelming with the richness of what it propose.

I was getting into games when Unity was around. But I didn’t just wanted to make a game. I wanted to understand how it works. I knew a bit about computers and played games since beeing a child, but could never understand how a computer does games.

And Unity would never have been able to teach me that. So the obvious next step was to write my own little sidescroller from the ground up, with naive physics and collision etc.

I think the whole discussion about “true” hacking is a generational shift combined with a change of the role technology plays in society. It became bigger and more accessible and that is a good thing.

It is just a bad thing in the eyes of people who tie their whole identity to beeing some kind of mysterious tech wizard only to have the kid next to you solve the same problem with some mobile app in a fraction of the time.

That must be how those mathematicians who first operated computers must have felt when a ton of people started flooded in who had no or little math knowledge.

The thing that worries me more than easy instructions and tutorials on any possible thing is the degree of abstraction. It is necessary to make understanding tech easy, because it is everywhere and it is getting more and more invisible.

I promise you that you can build something interesting in VR in Unity with free assets and without writing a single line of code. The optimal outcome - "can I do X?" - where the young person in question is asking to take it further... that's achieved far faster than anything in a browser context. Keep in mind: kids today are not likely to be so impressed with moving a square up and down in a browser. Maybe interesting, but who cares? vs "wait, you can make this sword into a FIRE SWORD?"

> The author also calls out Unity as part of the problem

I am sorry, where does he do that?

Because your Ctrl-F key is broken:

> Steam, the Apple store, Microsoft XBLIG, Youtube, Twitch, Spotify... Unity, Pico8, Dreams passing through Minecraft and Roblox and the game modding community.

In other words: all of these perfect souls are being captured by less-pure tools before they can make their way to someone experiencing the frustration of learning BASIC on a C64 in the early 1980s.

I think you misinterpreted that passage. The larger context is:

> Look at my industry. Videogames. What did make games tinkerable? Liberated individual creativity, art, even the ability to make a living?

> Steam, the Apple app store, Microsoft XBLIG, Youtube, Twitch, Spotify, Patreon... Unity, Pico8, Dreams passing through Minecraft and Roblox and the game modding community... Not the blockchain, not linux or torrents and so on.

I interpreted this as saying the free software, linux, torrent, blockchain, torrent communities, which are nominally attempting to empower and liberate users ultimately failed to do so, and it was actually these proprietary products which successfully did by focusing on an accessible user experience open to tinkering. He compares these proprietary products to the proprietary C64.

Author here - indeed this is the correct interpretation. Sorry if the post isn't clear. I do love Unity (and all the other things listed).

Please use Godot rather than Unity. Hackers and educational institutions should not be advocating for proprietary software that locks in its users.

This point was made a lot in the article - Hackers didn't care about Open Source or the ideology. I tend to agree with that.

First it's "don't use Unity", then it's "don't publish your Godot game for Windows", then it's "don't publish your Godot game in a form that requires proprietary graphics drivers", then it's "don't allow your game to run on Ubuntu", and so on. There's always another step to achieve ideological perfection.

Perfect is the enemy of done. Getting stuff done is the important thing.

It's much better to raise kids knowing that they can make their own games than not. If that's easier to do on Unity, then that's the way to go.

If it's easier to do it on Unity, the way to go is to improve Godot until it's even easier to use than Unity! :-) And the actual point of using something open like Godot is to raise kids who will internalize the fact that they could make not just their games, but their game engines as well - indeed, that nothing is 'magic' and anything can be thoroughly understood from first principles if one cares enough to do so. Every hacker knows this already, of course - but normies don't, even though that's the most useful lesson that 'hacking' can teach.

I get that. But again it's an endless stair of complexity and tool-building. So you can't write your game because first you need to improve your game engine! But your game engine needs improved graphics drivers, so you need to work on that! But graphics drivers only work well on a decent compositor, so you need to work on that! But a decent compositor needs a kernel architecture that actually does what it says on the tin, so you need to work on that!

At what point do you say "enough!" and start writing the game not the tool? I say that for a kid starting out, that point is right at the start.

IF they get good at games coding, THEN by all means get them interested in Godot and helping to write a new games engine. By then they'll have the understanding to be able to contribute.

On a fundamental problem solving level, open source spoils the part of the fun. I only need the executable file, and part of the fun is figuring out how it works and how can I morph that file to make it do other things, or completely change the functioning of the software.

One example I give is rock climbing. Logically, everyone should just take a helicopter to reach the top, or let the community contribute and build the road. But where is fun in that? We are rock climbers and we will rock climb.

If you define hacking as gaining access to scarce compute resources, then yes, hacking is dead because compute scarcity is dead.

If you define hacking as controlling your computer hardware at the lowest level, then hacking is dead because no-one wants to write device drivers.

If you define hacking as *making the lights blink in interesting ways"[1] then hacking is incredibly, richly, and totally alive! You can make the lights blink in so many interesting ways!

To sum up, that's one really good change, one somewhat unfortunate but understandable change, and another really incredibly good change. (BTW I don't think the OP's point about complex OSS really fits in this particular essay - minimalism is important topic and deserves it's own essay, but it's not related to hacking, IMHO).

[1] I don't recall where I read this, but Feynman wrote about being involved with the Manhattan project, with the simulations they were trying to run on very early, primitive computers, and how one or two scientists put on that part of the project had to be replaced because they got too fascinated with the "blinking lights" to get any work done. I find this anecdote very easy to believe.

I think people do sometimes want to "communicate directly with the machine", but they don't want to deal with the huge and often crufty layers of abstraction that are currently in the way.

In the AT era, reading a byte from the keyboard could be done with a single IN instruction. In the present PC era, the bare minimum for doing that is a multitasking operating system capable of enumerating USB. Or indirecting it through something huge and opaque like UEFI.

I see this occasionally on electronics.stackexchange: "how do I attach a light to the end of a USB cable and turn it on and off from the computer". The answer to that is astonishingly complicated.

> The answer to that is astonishingly complicated.

It is, and I think we've lost something valuable by having USB, which is pretty complicated, as the dominant interface. However, the Raspberry Pi makes it pretty easy to blink an LED, and it's pretty accessible. Certainly more accessible that a computer was in the era where it was easy to toggle a parallel port pin.

Right this instant you can talk to the bare metal of a computer with more power than anything you had way back when C64's roamed the planet. Get yourself an ESP32 and you can talk directly to the metal with no OS to get in your way. Get two, they only cost a few bucks each.

> I see this occasionally on electronics.stackexchange: "how do I attach a light to the end of a USB cable and turn it on and off from the computer". The answer to that is astonishingly complicated.

It is astonishingly complicated because what they are asking the wrong question.

> It is astonishingly complicated because what they are asking the wrong question.

No, I see this argument a lot on electronics.stackexchange and I think it's over-used. That's their question. They have some larger objective in mind, which it may be useful to know; if they want to control the light from UI on the PC then that's a natural way of phrasing the question.

If you want to do this over the ESP, sure, then you've got to get networking involved, and that's how you end up with all the usual IOT disasters. How do you "securely pair" an ESP32 with a PC? Again it involves a huge amount of software. Whereas if you just had a wire you wouldn't have to worry about security.

Answers of the form "buy a different computer" or "install a different OS" serve to make the answerer feel smug without usually helping the questioner at all.

> If you define hacking as controlling your computer hardware at the lowest level, then hacking is dead because no-one wants to write device drivers.

This is absurd. Dude, let me be clear - Just because you write Java all day long does not mean that there are hundreds if not thousands of embedded system developers who engineer (quite passionately!) the thing that powers your SSD or your wireless card or the thing that heats your home.

We often take these substrates (in this context - the firmware and device drivers etc.) for granted in the modern hardware and often fail to even acknowledge them. I am not one of them and I vehemently defend these silent heroes of our generation.

You know, I had a moment where I thought "perhaps I should add a disclaimer about what 'no-one' means", but then I decided against proactive defense against a pedantic retort, assuming that HN would understand how tiring it is to qualify statements like that.

Clearly I was wrong.

Thousands do care. So here's what I mean: When you take the ratio of the thousands that do compared to the millions who don't, you get a number that's pretty close to zero (one tenth of a percent, back of envelope).

> Thousands do care. So here's what I mean: When you take the ratio of the thousands that do compared to the millions who don't, you get a number that's pretty close to zero (one tenth of a percent, back of envelope).

Fair enough.

His same argument means there were never any hackers if you compare it to the entire human race.

There have always been very few "true hackers". That continues to be the case. It doesn't mean they died out, it means that nothing has changed other than that it's harder to find them using the same search terms.

Your first 3 points reassembles too much to embedded programming + electronics. And no, there is not just a few or no-one of them: it's an entire industry. I do it all day long and I don't feel like I'm hacking if I know and understand what I am doing.

You don't need to necessarily code to hack. You can hack with just electronics.

Perhaps you are too inclined to java or upper layers of abstraction.

I disagree, but I think there's something here worth figuring out.

Just like particle physicists aren't the only real scientists because their objects are the smallest ones, low-level programming (and FPGA/electronics work) isn't the only kind of hacking. People hacking genes with CRISPR are still hackers even though there are also people hacking the smaller components (at several levels of zoom) of those systems.

Look, personally I want really clean memory layouts and elegant lead routing, simple causal chains, and open, verifiable designs in hardware. Even without that I would like to understand DRAM refresh protocols, Bluetooth, USB, and every detail of how PCI works. It's not that I don't want to, it's that I don't have time. (And honestly it's such a mess "down there" I'd really like someone to clean it up before I get in there.)

Re Java: after using Python+MyPy I've never appreciated Java more. I've read the JVM spec and the language spec more than once; I'm sort of a "JVM hacker", if you will. I will happily edit a class file with a hex editor to achieve an effect. It's a simplified machine that is fully specified; it's a kind of opinionated VM that, unlike it's Xen counterparts, attempts to jettison some of the annoying stuff from real machines. Also ironically, Java was originally intended for embedded systems.

I was just referring to your 3 definitions of hacking... To hack doesn't necessarily mean to go particle-level or low-level, or learn something from the bottom-up or master some field.

And your first comment also gave me the impression that you think hacking can happen only at low-levels, like embedded or electronics. Manipulating and hex-editing a binary... I call it a hack, and congrats, it seems like you are doing it already.

Read (or watch) The Martian for one hack after the other, at several levels and different fields.

> no-one wants to write device drivers

I sure as hell do. I rediscovered my love for programming starting to integrate old hardware with new software after a few years of being burnt out working on trivial CRUD apps

Hackers were like the hotrodders before. Here's a thing. Make it work. Make it faster. Improve it. Change it. Know how it works. Master it.

I don't think its died. Its more likely morphed into something you don't recognise because its always been dynamic and now you're attempting to apply a static definition. Then you get frustrated or lament "its not the same as in the good old days". But the reality is that people are tinkering right now with the new tech or the new thing in ways you don't even know about.

This is definitely the case with cars, computers, electronics, gardening, clothes, food etc etc. Gardening, clothes? Why did I include those?! "Thats not hacking!" People are tinkering with these things. Making them better. Making them their own.

Hacking was never just bits and bytes. Learn how this puzzle works. Change it. Make your own. That hasn't stopped.

> Make it work. Make it faster.

This is not hacking.

Why not?

Sounds like gatekeeping to me.

Hacking of yore largely was like theoretical maths. Isolated from the real world and of little practicable use, yet.

It was a closed eco system in the 70s-90s. You either had to steal or be rich to get access to a machine.

Yes, real steel from the likes of DEC, IBM, ICL et al were magic. The early days of networked OSs equally wonderful.


Now, with an ESP I can have a battery powered, wirelessly networked computer to do pretty much anything I want, for $10 and power budget of 100ma.

If you want to see where low lever hacking has gone, look at the micro-controllers. They are literally taking over the world, run by no small part, by keen amateurs.

I'd setup a micro-controller based BSD 4.4 lite 2, but they are very short in RAM. If they were 4-8MB, they could be my main microPC setup.

I've never understood the appeal of hot-patching and full process image save and restore. Yes, this technology is neat for some use cases, but as a fundamental way of computing it's broken, because it throws reproducibility out of the window. Reproducibility is everything in complex systems, and being able to reset and start fresh is powerful.

Evolution figured that out as well. It's why basically all species propagate via the birth of new individuals and the death of the old ones.

As soon as one works on a non-trivial piece of software and has a team >2 SCM becomes important. There was one SCM system for PP Smalltalk if memory serves right called Envy but it was quite expensive. But even more important than SCM is a module/library eco system. We can’t trade without reproducibility. Without it we are destined to re-invent the wheel.

There is value in reinventing wheel - it is entertaining and stress free - as it does not matter for anyone but yourself.

You always have a team >2, unless you're just writing a quick throwaway hack. Your future selves are members of the team, and there might be quite a few of them over time as you simply forget what you were working on earlier.

There’s no reason why you couldn’t have an image based system that also supported versioned images. Then you wouldn’t need any source code at all and still rollback changes.

You can have the best of both worlds. In some Smalltalks (like Pharo), the image is bootstrapped from the source code but you can still use image persistency.

> Even the Demoscene, one of the last bastions of true hackerism, is completely uninterested in the ideology of software licenses and contracts.

Demoscene never cared about this kind of stuff.

In fact of the interesting challenges of the Demoscene was trying to find out how competing groups achieved some demos, without having access to the said information, while in process outperforming their demos at parties.

This is one of the key differences between Demoscene and anything FOSS related.

And also why game developers as offsprings from Demoscene, also don't care about them, rather about IP and how to extract the best experience out of a given piece of hardware, regardless of the OS, API or NDAs that one has to go through.

In fact of the interesting challenges of the Demoscene was trying to find out how competing groups achieved some demos, without having access to the said information, while in process outperforming their demos at parties.

The demoscene has its roots in software cracking, where reverse-engineering is the norm and you're not expected to be given source or told but to find out yourself, so that's not too surprising. Of course they don't care about licenses, because from that perspective they are merely arbitrary restrictions to be broken at will.

> Demoscene never cared about this kind of stuff.

Well, in a way, they did - they cared a lot (and still care) about credit and reputation, even to the extent of making "not for commercial use" licensing terms quite popular. Someone with an attitude of 'true' openness would simply not care about commercial use 'tainting' one's creative output, and trust that good-enough attribution would be kept most of the time, out of simple reciprocity.

Three things:

1. I have no idea why "hacking" aka "going fast and breaking things" is so glorified while "building good reliable programs" aka "good programming" is not.

2. How come that someone thinks of himself/herself that he/she has the right to say who is a "true hacker" and who is not.

3. AND THIS: https://www.youtube.com/watch?v=LX5Xy3a2uJU Thank you Jayson.

> I have no idea why "hacking" aka "going fast and breaking things" is so glorified while "building good reliable programs" aka "good programming" is not.

Going fast is revered, breaking things is not. And why is going fast so important? It is because an individual can't accomplish much when going slow. Why are individual works important? Because individuals do things that would never get funding, they make decisions that would never pass a committee and they can pivot the entire direction of a project many times in a single hour without any issues. Therefore many problems can only be solved by hackers as large teams are too restricted to do them.

It is entirely possible to do something slow and well and still do it alone and esentially without funding. As a film maker this is one of the things I love about writing and programming: there is no money needed only your time (which of course also costs you something). But it is perfectly possible to sit alone in your chamber and write a great piece of software that competes with the best out there. Try doing that in Film. This would be really a field where you wouldn’t get far without people and money.

Whether you hack it together quickly or meditate on it for ages doesn’t has much to do with it, I’ve seen both. Maybe the person with the quick hack just tries to solve a problem while the slow person likes the intellectual challenge of solving it in a “good” way.

Quick hacks can often compete with the best out there precisely for the reasons I mentioned, git is a good example. Then of course when something becomes big it stops being a quick hack and starts having a huge maintenance team, but it was still a quick hack in the beginning.

> It is entirely possible to do something slow and well and still do it alone and essentially without funding.


Horizon EDA was started by a guy who didn’t want to use a closed source EDA tool like Altium for his final university electronics project and wasn’t happy with KiCAD.

He planned it very carefully (so I wouldn’t call it a hack) and years after it is still going without any funding. This isn’t that uncommon in open source IMO.

Of course this is not a value judgement, there are quick hacks that work perfectly well and slower more planned out projects that never work at all — each aproach has it’s pros and cons.

> "hacking" aka "going fast and breaking things"

Your premise is wrong. Hacking is making things do stuff which was thought to be not possible before (like making an 8 color machine produce 16 color output by wizardry), making a computer meant for static business applications play highly interactive real time games etc (2) creating "art" from computation, peered by your equally skilled friends to get street cred and respect and your co-hackers will one-up you by creating even more beautiful art.

The second point makes the definition very subjective though. But I hope you got the jist.

> 1. I have no idea why "hacking" aka "going fast and breaking things" is so glorified while "building good reliable programs" aka "good programming" is not.

The way I see it, `going fast and breaking things' is an iterative process. IMHO, it should not be viewed as `go fast, break things and _never_ iterate to fix things'.

Just thought I'd toss my two cents on it.

> 2. How come that someone thinks of himself/herself that he/she has the right to say who is a hacker and who is not.

No idea why you feel binary. If you like to call yourself a hacker - fuck it - go for it.

The connotation in the beginning were that hackers were pioneers, thinkers, achievers and great motivators. Over time, the meaning has been mutated and engineered by the media to mean `malicious' and `conniving' thieves/criminals.

To this day, I still stick to the original definition of a `hacker'. I don't give a two fuck about what the media likes to call it.

There was a term from the early 00's for malicious "hackers", which was crackers.

Yes, it doesn't have the same ring to it so I understand why the media didn't latch on to it.

But if the media is unwilling to budge should we just make a new word? "Hack" was never a good term to begin with, originating from the model railroad club at MIT.

> There was a term from the early 00's for malicious "hackers", which was crackers.


> But if the media is unwilling to budge should we just make a new word?

Not sure how that will pan out :-)

> But if the media is unwilling to budge should we just make a new word? "Hack" was never a good term to begin with, originating from the model railroad club at MIT.

Well, one of my colleagues and I aspire to become techno-mages.

"We are dreamers, shapers, singers, and makers. We study the mysteries of laser and circuit, crystal and scanner, holographic demons and invocations of equations. These are the tools we employ, and we know many things."


"In effect, we conjure the spirits of the computer with our spells."


>1. I have no idea why "hacking" aka "going fast and breaking things" is so glorified while "building good reliable programs" aka "good programming" is not.

The former represents the philosophy of startup culture. "Move fast and break things" is a Facebook motto. You're on a forum run by a Silicon Valley VC company, so connect the dots.

> why "hacking" aka "going fast and breaking things" is so glorified

This is not hacking in the proper ( https://en.wikipedia.org/wiki/Hacker_Manifesto ) sense.

If that is proper definition of hacker, I dont want to have anything to do with that nor understand why would anyone see it as a good thing. Thankfully, there are many other competing definitions around that do not require one share the exact same feelings as this dude.

Just because someone believes he is all there is to hacking and that his personal feelings and gripes should define the word, does not mean we have to buy it.

Many of the "competing" definitions have been made up decades after the manifest e.g. the ominous "growth hacker".

Or the one in "hacker news", for that matter.

> "hacking" aka "going fast and breaking things" is so glorified

The two sides of your equation do not equate at all.

It feels like the word "hacking" is losing more and more meaning over time.

In the beginning it was a word only people heavily into computers used. Then around the time of War Games it became a more commonly-known word, and connotated breaking in. Over the last couple decades more people became aware that hacking sometimes refers to building technical projects. But it still has a heavy connotation of breaking into a system or program.

Hacking became cool once hackers started getting rich and gaining prominence in society. My son is 8, and many of his friends think they're hackers when they use a cheat code on a game. Most of them know they're not writing code and really changing the game, but they all want to think of themselves as hackers so they say they're hacking their games. Very few of them even really know what a line of code looks like yet.

Any notion of "true" hacking is bound to be about putting walls up to say who's in and who's out. In reality, there are always people building new things, and there are always people trying to break into systems and programs.

I don't think its lost meaning as much as it has a completely different meaning than it used to. It seems pretty common when something goes mainstream, as computing has, for original definitions to be tossed aside while the terms get re-appropriated by/for a more mainstream audience.

This happens all the time in other parts of culture whether music, fashion or whatever. So I guess it shouldn't be too surprising that it's happened in tech too. Doesn't mean one needs to like it, just accept it for what it is.

Nice ideas. I think that complexity can be the enemy of “hackability.”

Some environments like Pharo Smalltalk are simple enough to dig down to see how stuff works, and I would add simple Lisp implementations.

When I first started using Ruby and Rails, I kept the source code to Ruby and for Rails available for perusal and it was more or less understandable. Not so much now. Complexity.

I think that the Racket ecosystem will get more hackable once the codebase sits on top of Chez Scheme. Racket is well documented: 18 months ago I wanted to import trained weights and biases from a trained Keras/TensorFlow model into Racket and implement a runtime - fairly easy to do with good documentation and good library support for fast linear algebra.

Too bad that more people don’t spend more effort on hacking activities because really understanding tools, modifying code, etc. is fun and I would argue a good career move.

EDIT: added 1 word for clarity

So, what does C0DE517E think hacking is? I'm surprised nobody picked up on it...

2/3s of the way down is a link (by the way - wanna see something weird?). That link goes to [0] which is about 'Dark Enlightenment'. The key takeaways here are: democracy is bad, white people are smarter, Urbit, and Yarvin. But surely someone can link without advocating?

And then we get to this bit, "Whatever the causes, we have software and hardware systems that strive to be entirely open, yet time and again are closed ones that are more accessible in practice, that drive social revolutions." The author is making a roundabout case for the Dark Enlightenment, and ecosystems like Urbit which enforce a neo-serfdom and elimination of democracy at a technological scale.

I'm surprised nobody else picked up on who this person thinks hackers are. It's certainly hidden in plain sight.

[0] https://breakermag.com/heres-the-dark-enlightenment-explaine...

Author here - no, that link was to show something bizzarre, how (some) people lose their minds in weird elucubrations on the politics of software - instead of actual hacking. I am definitely not endorsing in any way ever that cesspool that is D.E., I'm sorry if it wasn't clear from the text.

My apologies then.

I've dealt with Yarvin's people in person and online. Many a times, they will sneak these kinds of things into conversations and slide these things like DE and Urbit in on the side. Had one, at the hackerspace I used to attend, quote Mussolini about how good an idea the DE was. So yeah I'm a bit on guard.

I assume there is the same amount of “true” hackers out there. At least that is my impression from the Chaos Communication Congress and alike. Probably the percentage of “true” hackers is way smaller now as computers became cheap and more accessible. If you look at the “great and true hackers” from the 80s and before, most of them probably come from academia, government agencies or wealthy backgrounds.

I for one welcome the change, because I think the entry barrier to become a “true” hacker is probably the same as before, if not easier and we definitely opened the doors for more people.

Ignoring defining what "true hacking" is defined as, I'm struggling to pinpoint exactly what has been lost here. Many new things have come into existence, but this feels like a list of laments against the direction technology grew, not something lost. Plenty of people are still tinkerers focused on making small personal projects, and if anything its highest concentration is here on HN. That doesn't mean all of the other things in the tech world are inherently lacking in value though. When focusing on technology why focus on "hacking", a somewhat odd and specific use case as defined here?

Other people have already commented on the core message. I have a nitpick instead:

> That's probably why we still have textual source (great for git and merging) over more expressive formats or even the old idea of serializing the entire state of a VM (again lisp, smalltalk) which sacrifices merging entirely to make hotpatching (dynamic software updates) trivial.

Good. Not being able to merge squarely belongs in the past, where everyone had access to only one machine. I'm incredibly thankful that I can merge the half-finished work on my desktop from last evening with the patches that I just pushed from my notebook while in the train.

More expressive representations of source code enables better merging. Merging code as opaque strings of text is a bad choice, and causes lots of problems to programmers every day.

> More expressive representations of source code enables better merging.

Merging is usually easy regardless of representation when all changes are comparatively local. The problem is always merging big far-reaching changes like a complete refactoring of an entire module, and I don't immediately see how any non-text representation would do significantly better (by a wide-enough margin to justify changing paradigms) than text at assisting with the merge process in this case.

Have you never got large merge conflicts because one branch made some changes to a block of code, and the other left it intact but changed its indentation?

That kind of thing would not happen in a better representation.

> The sad and inspiring story of TempleOS, a.k.a. what the Raspberry Pi should have been.


TempleOS is a really cool system to hack. You should watch some of the live coding videos the author did. It's really much more of a tinkerer's system than the stock Linux that runs on most Pis.

More people should use RISC OS with the Pi.

Wait, that is actually in there. What the hell does this even mean?

Sounds like they’re referring to characteristics of TempleOS that may have suited the original goals of the Raspberry Pi, which was to be a tinker-friendly device for audiences like school children.

Some people lament the fact that it simply ended up with a plain, general purpose Unix-like, rather than something more low level and immediately direct (as in, drop you to a BASIC, not necessarily assembler), ala Commodore 64.

The peculiarities of the author aside, a live TempleOS was able to have its running code modified on the fly, and allowed direct low level access to what was under the hood in perhaps a more interesting hacker-ish way than your typical Unix clone/descendant.

That's a bit silly, tbh. Dropping you straight into BASIC may be appropriate for an 8-bit computer with a few hundred KiB at most of combined RAM and ROM, but the Raspberry Pi is nothing like that. A *nix system is really the closest analogy, since the development tools for that are only an apt-get away! You even get some BASIC implementations, even though it's not very clear how much those help.

I'd actually like to see a roughly BASIC-like language that's simply a reasonably light syntax-wrapper over, say, Rust. It might make it easy for novices to get into hacking and software dev with a language that doesn't abstract too much away from the actual system - and then transition to a "real" language like Rust later.

Well it was hacked together from scratch which is inspiring...

But I mainly see it as a cautionary tale on mental health and how arrogance can destroy your reputation...

What the...

We’re still here. More than ever actually. There’s just more noise.

Do any communities still exist?

Yes. Though if they were easy to find they'd be overrun with people who don't feel that what they found is worth protecting.

I've heard about an early Silicon Valley accelerator with some geeky name about functional programming has one :)

Secret is out, everybody hangs out on twitter nowadays. https://www.youtube.com/watch?v=VCwiZ2dh17Q

Probably somewhere on the other side of the looking glass … I mean freenode.

Graduated high school a couple years ago. Plenty of people coded, but I had only had one friend that actually was interested in doing more with computers. We found some pretty cool stuff on the school network, and ways to screw with our less tech-savvy friends. It even cost me a trip to the principal's office one time, due to my stupidity and inexperience.

I guess I'm not part of the right forums or boards, but I just haven't been able to find other people with that same kind of passion. I know I could and should just get started by myself, but I'm the type of person that just loses motivation and the will to keep working if I dont have someone else by my side. And I go to a UC. Sure plenty of people know a bit of linux and networking, but how many people actually want to go past their classes and actually take the time to research and learn more? It's hard to find those people. As a result, I'm moving away from hacking into more normal spaces like appdev and web stuff. Its definitely not as exciting, and I dont think I'll ever again feel that thrill of being called to the principal's office for hacking.

> I go to a UC. Sure plenty of people know a bit of linux and networking, but how many people actually want to go past their classes and actually take the time to research and learn more? It's hard to find those people.

Those people do exist, but they’re probably not in a classroom for much longer than it takes to complete the final.

> I dont think I'll ever again feel that thrill of being called to the principal's office for hacking.

Once you become an adult, the "principal's office" is much less interesting place to be.

If you still want to do it, though, there are plenty of opportunities to do so on the "white hat" side of things; look into computer security research, "pen testing", and similar stuff - if you can learn that and have a passion for it, you can make some big bucks doing legit legal hacking.

Of course - everything you learn can be applied to grey and black-hat activities as well (which can be lucrative as well - up to a point of course).

TL;DR: Hacking is more alive then ever.

I might be missing the point of his article, but describing the c64 basic coding movement as a single movement is misunderstanding it gravely. The fact that Basic was licensed by Microsoft didn't stop us, it was the the default interpreter we had to programming, which soon was replaced by masm/tasm or machine code.

More so then than today, hackers of all kinds (hackers, crackers, phreakers) were all following their own individual paths and was way less uniformed than todays movements. I believe the main reason most are focusing on OSS today was because of the dis-content we felt with the development of operating systems that slowly but surely locked us in as users.

Moving past the "no true scott's man" fallacy of the title; i feel that this article confuses the act of being a hacker with the tools that people use to hack with. Which is a common thing to do when a concept is new. For me, being a hacker means being able to work at a certain level of abstraction and, not being afraid to "open up the box" and start working at that level of abstraction. For example, being able to work with a raspberry pi loaded with linux and, then being able to start hacking at the linux kernel or libraries when needed is what makes someone a hacker.

I note that the author of the article appears to thing a raspberry pi would work just fine if it booted Windows. I'm not sure whether to laugh or cry.

In some sense, I think that there is something of a tragedy of plenty happening in the maker/hacker community. When options were few, you had dense groups with deep knowledge about different hackable technologies. The abundance of options, while good in general, limits the usefulness of that kind of deep knowledge in favor of a broader kind of knowledge.

How many ways are there to blink a light or read a potentiometer? Expanding on a simple project can take hundreds of different paths depending on your hardware and software stack.

It's not dead, it's just adapting to the current landscape of abundance.

It's kind of funny. The post thinks wistfully about the "real" hackers that wanted everyone to have access to computers. But that already happened. So is it any wonder that no one really cares about that ideology any more?

> [they are] completely uninterested in the ideology of software licenses and contracts.

Sure, but who cares exactly? Isn't an interest in legal nuances of contracts rather orthagonal to "hacking"?

>Linux didn't change the desktop, nor the way software is made.

Here, I'll just flat out disagree. I think saying this is rather blind to history.

"We buy cars and go to mechanics, right? We don't know how to peek inside the engines anymore."

I don't know which world you live in, but it sure isn't mine! Even at the height of working as a senior system engineer / technical architect in the heart of Silicon Valley, I regularly wrenched on my car; I even found a self-wrench shop near the Tesla factory in Fremont. In fact I just wrenched on my car this past weekend. I wrench on all my cars. How could I call myself an engineer without understanding what I use?

Maybe "old school hacking" is still present in the "maker" movement. For the pragmatic, practical hands on approach I mean.

Hacking is not dead, but it has become complex because you have to deal with many layers of abstraction. In fact, we have to deal with complex concepts, implementations with different layers of complexity, more protocols... so the knowledge to hack something goes beyond that, because you have to understand how something works, maybe completely, to add something novel to it.

The point of this article is all the harder to see because there isn't even a definition of what "hacker" means to the author.

There are many different definitions. If one subscribes to, say, Eric Raymond's, then there are many more hackers today and hacking itself is more prevalent than ever.

Hacking has changed.

I tinker with a homegrown family information and media center with a dis-used Gigabyte BRIX behind an old flat screen running Linux and chromium-browser in kiosk mode. I bought a NES style USB gamepad and use it to make things show. It's a hobby, but it turned out to be nice.

For me that's hacking.

Were early hackings done by "fairly despicable a-social people"? Maybe I did not get this.

Maybe, but programming now provides a stable income for way more people, whether it's their passion or not. In this day in age, the ability to put food on the table trumps any sort of bit-banging nostalgia IMO. The fewer gates we keep, the better.

Speaking of books on hackers, I can recommend Cult of the Dead Cow: How the Original Hacking Supergroup Might Just Save the World. I enjoyed it thoroughly despite the title.

Did you know Beto O'Rourke was a member?

True hacking is only for true Scotsmen.


<<I don't mean that we should not be political in our actions, today.>>

Y not?

<<...early hacking was a-political is because hackers were fairly despicable a-social people.>>

That is what made it fun.

Did it ever existed to begin with? The myth begun with "Hackers: Heroes of the Computer Revolution" from Steven Levy in 1984, and it was mainly propaganda.

Does anyone else get a "no true scotsman" vibe?

What exactly is "true" hacking and how does it differ from "normal" hacking?

A hacker is someone who clicks on https://www.sparkfun.com/ and doesn't come up for air for at least an hour. Can you pass the test?

I didn't personally get the sense that the author was reminiscing about the past. I just thought of it more as what he thinks is a lack of ambition and vision in computing today in ways that will solve larger problems rather than going with the closed environments that are available today.

tldr; Maybe having an open plane with few imaginative restrictions (as early computing did) allows one to rethink certain patterns we assume as truth today. For example, if no one is working on a new OS because of Linux, Windows - could that be worse for the world in the long run?

Enter Firefox, press CTRL-SHIFT-I. It's pretty much all there.

Git webgl

Yes. It’s dead. Killed by money.

A hacker is motivated to hack great software/systems.(Hacking in the "modern" sense has been more about software than hardware, since not as many people have the resources to tinker around with hardware,potentially breaking in the process).

I would argue the reason why hacking has kind of "died" is because of the massive amounts of garbage software that gets put out.

On top of that, hacking isn't actually dead,it just kind of moved in the shadows.(This has been de facto true after the 2012 "era of big-brother revelations", and shortly when the "big figures" of hacking have jailed.)

I'd say firstly modern hackers have to always adapt by "working twice as hard" while having the "penetrating" mindset towards software that becomes increasingly harder to penetrate(through different techniques,which CS has developed firstly at theoretical then practical levels). Secondly,software developers now usually work in groups and are incentivized by money.Even if they're less skilled individually, together they manage to create harder software to penetrate.

However,this "brothership" in the hacking community is very hard to acquire,because 90% of the time it is motivated by something other than money: ethics,sense of justice, etc.(What i subjectively consider a "hacker" isn't someone who "hacks" an ATM by putting a cloning device on a facade)

On top of this,you add the fact that governments try to gain more and more control over the internet and all-things computing, punishing people who "legally deserved it" but did the society a favor(Snowden,Assange,etc. basically any leak that has been "proven true" but the means of acquiring information left the boot-lickers unsatisfied).

On the bright side, i wouldn't exactly say hacking is dead,it's just that the computing sphere is changing so fast, it leaves hackers undecided.Some people don't even bother when in the relatively short future we'll probably see the "downfall" of classical computing as we know it.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact