Is true hacking dead? What we lost
c0de517e.blogspot.com
c0de517e.blogspot.com
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.
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.
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'm not the person to do it, but I wish someone would design Flash2.0.
Case in point: a lot of people don't even use keyboard shortcuts, why would they use a hypercard clone?
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.
Now that they have introduced Shortcuts to iOS I would be curious about how many people use them and to what extent.
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.
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.
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.)
And it certainly isn’t dead.
Or to put it another way, it's alive and kicking ass :-)
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.
10 PRINT HELLO
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).
https://store.unity.com/#plans-individual
I'm leaning on the conclusion that nothing fundamentally really changed.
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.
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.
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.
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.
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.
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.
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.
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.
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 would still call this "puzzle" solving like the OP was talking about.
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.
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.
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)
7
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.
edit: Also, I'm not sure your solution works for 13 players.
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.
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.
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.)
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
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.
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
I like that a lot. I'm curious if you hire people and if you use that concept in that process.
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.
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.
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.
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.
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.
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.
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.
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 just think you're being a bit of a temporal chauvinist. I'm not angry with you and it's okay if we disagree. :)
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.
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.
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.
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.
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.
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 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.
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 am sorry, where does he do that?
> 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.
> 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.
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.
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.
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 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.
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.
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.
> 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.
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.
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.
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).
Fair enough.
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.
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.
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.
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.
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
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.
This is not hacking.
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.
But.
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.
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.
There is value in reinventing wheel - it is entertaining and stress free - as it does not matter for anyone but yourself.
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.
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.
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.
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.
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.
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.
Like?
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.
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.
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.
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.
Yes.
> But if the media is unwilling to budge should we just make a new word?
Not sure how that will pan out :-)
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."
https://mitpress.mit.edu/sites/default/files/sicp/full-text/...
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.
This is not hacking in the proper ( https://en.wikipedia.org/wiki/Hacker_Manifesto ) sense.
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.
Or the one in "hacker news", for that matter.
The two sides of your equation do not equate at all.
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.
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.
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
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...
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 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.
> 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.
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.
That kind of thing would not happen in a better representation.
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.
Those people do exist, but they’re probably not in a classroom for much longer than it takes to complete the final.
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).
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.
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.
> [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.
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?
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.
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.
Did you know Beto O'Rourke was a member?
Y not?
<<...early hacking was a-political is because hackers were fairly despicable a-social people.>>
That is what made it fun.
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?
Eh?
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.
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.
But I mainly see it as a cautionary tale on mental health and how arrogance can destroy your reputation...
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.