HACKERS IN THE BAZZAR

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

True Hackers

Friday, August 30, 2024


“The world opened up by the computer was a limitless one”

What is a true hacker? Steve Levy states that a true hacker is knowledgeable in their technology domain to push boundaries and explore systems, is driven by curiosity and a passion for problem-solving, and is committed to the principles of openness, mistrust authority(promote decentralization), and all information should be free. A true hacker is characterized by the obsessiveness of their craft, determination, curiosity, and openness.

One quality that stands out to me is hackers believe that “essential lessons can be learned about the systems(about the world) from taking things apart, seeing how they work, and using that knowledge to create new and more interesting things”. The first thing that comes to mind is why? To satisfy their curiosity? To fix a broken thing or to improve the performance of a system? “Imperfect systems infuriate hackers, whose primal instinct is to debug them.” You can create art and beauty on a computer and hackers are the artists who paint with the brush. In a way, the hacker is an example of inheritance best of both worlds. A perfectionist who envisions the perfect system and an action taker who’s not afraid to act on their vision and dive into the unknown by tearing things apart, improving existing systems, or building a new creation from the ground up. I admire them for being the brave ones in their domain.

True hackers share this belief that whatever goal they set their mind to, they will achieve it, one way or another. They have this “blind confidence” in their capability to create something out of limited resources. If a program does not exist, they will bring it to life. Peter Samson had a deep interest in music and computers, and he translated his interests into the creation of a pioneering program that allowed the cranky huge machine to play music, which was unheard of at the time.

The standard thinking on computer, their time was so precious that one should only attempt things which took maximum advantage of the computer. However, hackers chose to act on their beliefs: anything that seemed interesting or fun was fodder and encouraged. Of course, such pursuit resulted in pioneering programs such as Music Player and Spacewar. Another quality that I admire about hacker culture is they believe that learning comes from doing, and not merely from the classroom. TMRC hacker Bob Wagner wrote 3000 lines of code for a computer program to perform the function of a calculator and proudly did his Numerical Analysis homework on it. He received an 0 for achieving the same goal with significantly more complicated methods but he couldn’t care less. Arguably, when he went out of his way to integrate his passion into problem-solving required significantly more learning while achieving the same goal.

A notion that has initially struck me is how hackers believe that information should be free. Steve "Slug" Russell and his peers who created and improved the original Spacewar game decided to freely distribute the software of video games to others as they are open and welcoming for anybody to make changes and improve the games. They weren’t thinking of profit but the contribution to the open-source community. For some reason, I keep thinking about how Steve Jobs and Steve Wozniak made Blue boxes that allowed people to make free, illegal, long-distance phone calls and they decided to sell for profit. Even though they were not in the same time period, could it mean hackers share a common ethics but still act on their own beliefs?

I found the idea of a true hacker inspirational. My previous impression of a hacker is someone who uses their knowledge of technology to illegally break into a digital system to take advantage of the breach, mostly for financial gain or access to information. Levy’s writing challenged my notion of a hacker and allowed a comprehensive view of their characteristics and ethics from the original hackers. I started to understand their motives and drives come from curiosity and implementing improvement to the system. In many ways, I believe I subscribe the the hacker’s beliefs, values, and way of thinking. The hacker culture is “hermit-like”, which is true to some extent. They avoid people that’s not their kind but have no problem socializing with fellow hackers. It functions like the star in the space war game that pulls like-minded people in with gravitational force, with their love for hacking, sci-fi references, bad movies, and Chinese food. As much as I share similar passions and interests, I do not see myself living the lifestyle of a true hacker as I believe that there’s more to life. I believe in taking what’s good and abandoning what’s bad. For example, I subscribe to obsessiveness over one’s craft and improvement in the system, but I also value balance and a somewhat healthy lifestyle which prevent me from staying up all night for a 30-hour hacking session. However, something I’ve always believed in is that we could be the best of both worlds.

Hardware Hackers

Sunday, September 08, 2024


People would pay for a hammer to do its job, not for it to exist.

True hackers value technical ability and raw creativity that proves oneself that’s worthy to their inclusive community of hacking into software. Anyone who can’t or who doesn’t dedicate all of their time to hacking is considered a “loser". Hardware hackers were activated during the Vietnam War and the hippie and counter-culture movements. They believe that bringing computers to the masses would create a better and more liberated society and technology would empower people and the world. The computer was a tool that large institutions had sequestered. Opening it up and making it available to everyone was the ultimate act of liberation.

Upon reading the second part of the book, I’m mostly intrigued by why the notion of free software couldn't continue outside the MIT lab. Certainly, we have to bring up two of the biggest tech companies in the world that were born during the hardware hackers era. With the popularity and the floating copies of Altair Basic, Bill Gates published "An Open Letter to Hobbyists" and called out that software would only be better when people received incentives for their hard work. At Apple, Steve Wozniak and Steve Jobs had different opinions on the approach to personal computers, especially regarding whether they should be free and accessible to everyone or commercialized. Something worth noticing is that at MIT labs software was freely distributed among students, even placed in a drawer right next to the computer. The Homebrew Computer Club follows the rule that if you take one copy of the software, you should bring back two copies. Times have changed when computers reached the hands of hardware hackers, this is the era when the ideal was compromised into reality when business and profitability were taken into personal computers. As much as I subscribe to the true hackers’ ethics, I must admit that hackers themselves exist in a niche market. The idealization of 100% freely distributed software will work in a niche environment like MIT hackers when the student group devotes their entire life to hacking when the club of true hackers itself is exclusive. Once the technology is brought to the masses by hardware hackers, there will inevitably be friction during adoption. Human nature is complex and dynamic. I think Bill Gates is only the first person to decide to profit from the software. If it wasn’t him, it would be someone else. Just like how Amazon survived to be the biggest commerce website in the US, if not for Jeff Bezos, someone would have decided and succeeded in profiting from the online shipping theme of the internet age. Proprietary software has shaped today's industry standards, with companies like Microsoft and Apple embodying the entrepreneurial spirit of early hardware innovators

Why can't we have free software? I would say the reason behind it is rooted in human nature around value and ownership. However, the idealization of free software and open-source has not completely died out. Many of the hackers continued to believe that free software will be driven by community innovation rather than corporate interests. While Bill Gates was moaning about ripoffs, Tom Pittman made an interpreter and decided to test out whether would people pay for software when it was cheaper. People would send him a mail with a donation, saying that 5 dollars is too little or they already have a copy from their friend so no need to mail anything to them. Today, half of the world's servers are running on Linux and the open-source community voluntarily maintains it with no monetary incentives.

The true hacker ethics of willingness to share information freely for the ultimately collective good still survives and actively contributes to the hacker culture today. I think compromising the ideal for mass adoption is important in spreading the hacker ethic. People should be granted free access to a computer and information, and benefit from the personal computer and devices revolution when accessibility was brought from the university labs to our hands.

Game Hackers

Sunday, September 15, 2024


The third generation of hackers living in a world that flourishes from the foundations built by MIT and hardware hackers. Access to computers has become unlimited and total. Video games being the most popular software at the time were distributed to millions of people and spiral the sale of personal computers. Innovation was fueled by competition, monetary incentives, and greed. Is greed a good thing for innovation? I think the answer is yes but with balance. Reality is always somewhere in between(the compromise of idealism and nature), when companies prioritize both creativity and profitability, they can create sustainable innovation. But when greed becomes the dominant force, it can lead to short-term thinking and stifle creativity with individuals or companies focusing on quick profits rather than having a long-term vision for innovation( Lootboxes and Game Pass). In today's market, we see mass success of tripe A games and also indie games. They are a reflection of companies who are motivated by incentives and studios with intrinsic motivation, both contribute to the balance of the market.

Steve Levy asks the question “Why shouldn’t Atari be happy with a royalty paid by people who wanted to hack Pac-Man code and eventually improve the game? Did the public benefit from one company ‘owning’ a piece of software and preventing others from making it more useful?” Such philosophical suggestion reflect how hacker ethics compromise when it meets the market. Hackers would start to consider paying royalties in exchange for the ability to use and modify that original code, which is not something MIT and hardware hackers would consider. It is the ultimate collision between idealism and reality. A couple of decades have passed since John Harris made the Jawbreaker and the intellectual protection for video games has become more robust. However, the philosophical suggestions many hackers believe have come to a reality with the rise of open-source software and modding communities today. Platforms such as Valve would encourage players to purchase mods as part of the sales go the original mods creator, Unreal Engine would start taking 5% royalties for games that exceed 2 million dollars in sales. Maybe the money is not only the incentives, money is a reflection of approval for people buying the software products. Hackers should be judged by their hacking, and now the power has moved from the hacker circle to the public. In some cases, money is not one-dimensional but also a reflection of how good the hacking is, and it could also act as a motivation for the hackers.

I think hacker ethics can survive in a world of commercial and proprietary software, however, it’s difficult to become the mainstream voice. I believe the vast majority of the market is filled with bureaucracy and greed, a reflection of human nature and constructs. I think it’s more likely for hacker ethics to be empowered by individuals who are intrinsically motivated, and flourish in small organizations but not large corporations. Sierra On-Line grew and became more successful and Ken Williams began to prioritize making Sierra a more structured and commercial success company. Many companies follow this pattern of starting as a creative powerhouse but as they grow and scale, to survive, compete, and dominate, they have to embrace business practices that support long-term growth and profitability. A simple analogy would be, that with more people in a friend group, it's hard to decide on where to hang out on Sunday. If you want to friend group who's passionate about hiking, keep the friends group small and connect with other groups who like hiking.

It’s a big world and there’d always be someone who believes in and embodies hacker’s ethics and perfectionism, grabbing the ring without being corrupted. Chris Sawyer wrote the entire Roller Coaster Tycoon in x86 assembly in a period in which there were high-level programming languages to be chosen from. John Harris spends his free time hacking games and the reward it’s simply just the satisfaction of doing it. Today, many developing tools(popular web-developing frameworks like React and Vue, OS like Linux) are being freely distributed and maintained by the open-source community, they did it out of love, intrinsic motives, and beliefs of hacker ethics. I think the longevity of good products would be better off to keep open-source than exclusive. It sounds communist but we've seen countless examples of how bad greed and power disrupt. When kept open-source, the software is constantly being corrected by the masses and reflects the median of the mass opinions, rather than being centralized to a selected group of people who maybe don't even under the basics.

I don’t believe in one-dimensional and believe that we could always be the best of both worlds. In modern-day software development theme, we are expected to be professional as there are strict deadlines and expectations for working in a software company to develop software. Software engineers are expected to develop reliable and ethical (a bit ambiguous/idealistic) software products that have much real-world impact. Instances such as CrowdStrike and Microsoft outages should be strictly avoided due to the power they have on the economy and social impact. However, in addition to being professional, I think programmers should have a love for computing in their hearts. People who don't care will never make great products. As a CS student there are multiple instances where I get burned out studying the subject, what pulls me back on track has always been self-discipline(what you need to go far in anything) and my general love for computing. No matter what I’m doing, browsing online, playing games, or learning computer concepts, I love sitting in front of my computer and learn new things on it. After finishing Lvey’s book, I realized I have been practicing some of the hacker’s ethics without knowing and I believe that it’s natural for me to try to keep on practicing the hacker ethics and perfectionism.

Nerds and Hackers

Sunday, September 29, 2024


I found that Paul Graham’s version of a hacker mostly matched Steven Levy’s description with a slight emphasis on independence. Paul believes that hackers are makers, just like painters and architects, they thrive on learning by doing(hands-on imperative). Levy emphasizes the revolutionary spirit, communal aspects, and ethical dimension of hacking, while Graham focuses on individual creativity and the maker mindset. Paul Graham presents a more uncritical, positive portrayal of hackers and his perspective is more aligned with current entrepreneurial and technological trends. He pointed out that modern hackers(software engineers) are merely technicians who translate the visions (if that is the word) of product managers into code. Compared to video game companies in the 80s who praised their star hackers, nowadays for big companies the default plan is to suppress creativities. They do it because it decreases the standard deviation of the outcome. Only a small percentage of hackers can design software, and it's hard for the people running a company to pick these out. So instead of entrusting the future of the software to one brilliant hacker, most companies set things up so that it is designed by a committee, and the hackers merely implement the design. The problem is that when you damp oscillations, you lose the high points and the low. Nowadays it’s rarer for large companies to come up with innovative software, but there’s still hope in smaller organizations and individual programmers.

Deriving from original MIT hackers, with less emphasis on hacker ethics, Paul believes that hackers are craftsmen, who practice design through software development and care significantly about the execution and details of their creation. Ironically, he also points out that “It's odd that people think of programming as precise and methodical. Computers are precise and methodical. Hacking is something you do with a gleeful laugh.” Paul’s version of a hacker is someone who has the traits of playfulness and creativity, as well as the technical ability to dedicate his leisure time to writing beautiful software. Paul parallel with his own experience of learning and doing, pointed out that you should figure out programs as you're writing them, just as writers painters, and architects do. Contradicated to what we have learned in school which is to figure out the program on paper before we even write a single line of code. He called this process “ sketching”. He draws similarity to how painters figured out the details of painting as they progressed, no one figured out the whole painting at first. I see the reasoning behind this approach, as much like how people prefer different indentation styles for curly brackets, I prefer to sketch on a piece of paper. As much as I love working on my computer, there’s something magical about picking up a metal pen and scratching your idea on a piece of paper, taking a short break for your eyes from the computer screen.

There are some interesting points Paul made to support his argument. Painters leave a trail of work behind them, you can watch them learn by doing. If you look at the work of a painter in chronological order, you'll find that each painting builds on things that have been learned in previous ones. When there's something in a painting that works very well, you can usually find version 1 of it in a smaller form in some earlier painting. Paul argues that hackers become great through a similar approach, they learn how to write beautiful programs by watching other people’s programs and the way to create something beautiful is often to make subtle tweaks to something that already exists, or to combine existing ideas in a slightly new way. It’s obvious that Paul sees hackers as creative and this description greatly matches the modern artistic creative scene. Often, new music, art, and movies are made from the adoption of something that already exists. As I was studying at art school, such an approach is common as we describe this process as pulling from inspiration, and often the final product is a mush before various inspiration sources. A story I want to share is, for a long time when I was studying at art school, I struggled with the belief that it’s up to artists to come up with something completely original. Later I learned that this is not true and everything comes from inspiration and mimicking. There’s no new idea under the sun, everything is a reference to things that existed prior, and the only thing new is our point of view, how we express it, design it, and present it will make the idea new.

To Paul, hackers are similar to painters, someone who use code as a medium for creative expression(innovation and unique software), much like how painters smudge their paint on canvas. As a student who came from fine arts training, I could strongly resonate with this connection. My introduction to computer science came from creative play which uses code as a tool for creative expression, much like painting on a canvas. As far as the readings we have done so far, this week’s reading is something I resonate with and learned from the most. I get to validate lots of my own beliefs through Paul’s writing. I think Paul Graham's version of a hacker is largely compatible with Steven Levy's description. His arguments for modern hackers validated a lot of my own beliefs and I think I aligned more with his version of hackers than the hackers presented by Steve Levy. One thing that stood out to me is to create your vision of software, the benefit of working in a startup will exceed translating someone else vision in a large company. A side note, by Paul’s description of how he’s friends with lots of kids from the “freak” group in high school, I laughed out loud because I have never thought I matched the description of freaks and I’ve always wondered why I’m naturally gravitated towards making friends with those who consider as “nerds”. Marginalized group support each other I suppose.

Programming Languages

Sunday, October 6, 2024


"When you choose technology, you have to ignore what other people are doing and consider only what will work best. Design your product to please the users. If you win the users, everything else will follow. And if you don't, no one will care how comfortingly orthodox your technology choices are. And it follows inexorably that, except in special cases, you ought to use the most powerful you can get."

The programming languages we chose to use shape our approach to conceptualizing and tackling problems, just like how natural languages influence how we express ideas. As a bilingual speaker who speaks Mandarin and English, Chinese is more powerful in terms of grammar and characters, there's many more ways to communicate the same idea in a way that's rich with subtle ambiguities and complex layers of meaning. Was it as precise and straightforward as English? It could be, in a different way. Choosing to speak one over another requires me to think about how to use the words and construct the sentences differently. When I speak to my friends who are also bilingual, we communicate in a mixture of English and Chinese simultaneously. Why? Each language has its edge when communicating, we use whichever makes sense to the context that comes to mind first. The same applies to programming languages, though can not be mixed up(imagine it could, could that be what Paul proposed to be a better programming language in 100 years?), and each one has its strength. Language like Lisp might encourage programmers to think in terms of recursive solutions, whereas a language like C might push towards a more low-level mindset where memory management is the main concern. English is straightforward and concise, and Chinese is better suited for nuanced expressions that are rich in sentiment and emotions. Both get the job done just like how programming languages are all Turing complete.

What makes one programming language better than another? For me, it's not so much about performance or speed, but about how it influences us to construct an application and how effectively it allows us to write concise, readable, and maintainable(reusable) code, as well as the ability to achieve the same results in less code. The ease of expressing complex ideas can differ drastically, with one language requiring hundreds of lines of code for something that takes just a few lines in another. Paul Graham believes that inefficient software isn't gross, what's gross is a language that makes programmers do needless work. Wasting programmer time is the true inefficiency, not wasting machine time. This might be a controversial idea by it’s true as computers get faster, the consideration for machine time could be largely neglected, something only previous hackers could dream of. In the programming languages landscape today, most software is developed and maintained in a handful of selective popular languages. Using nonmainstream language has become rare and somewhat obsolete to the industry standard. But does industry best practice get us the best not merely the average? I think when choosing technology(tools), we need to ignore what other people are doing and consider only what will work best, no matter the programming language or frameworks. We ought to always choose the most powerful tool we can get that applies to our unique situation while having a comprehensive understanding of the tradeoff of the tools that are available to us.

No doubt the choice of programming language in software development is incredibly important, it affects how a developer approaches a solution, the efficiency of that solution, and the maintainability of the codebase. In the future of programming languages, ideas like functional programming and high-level abstraction tools will continue to be relevant. The language that has the smallest, cleanest cores will persist. As Paul Graham puts it, the more of a language you can write in itself the better.

Wealth Creation

Sunday, October 13, 2024


If there is big potential for gain there must also be a terrifying possibility of loss. CEOs, stars, fund managers, and athletes all live with the sword hanging over their heads; the moment they start to suck, they're out. If you're in a job that feels safe, you are not going to get rich, because if there is no danger there is almost certainly no leverage.

I've always intrigue by the idea of work hard and retire early. Not meaning retire early to lay in a chair, but to have time and enegery to work on thing's that means something to me and the greater good. Creating a company is surely exciting and one of the more reliable ways to generate wealth, but more than 90% of the startup failed. The historical data shouldn’t be overlooked. Looking back on history, I found that to increase the survival rate of a startup, it’s crucial to leverage the tailwind. Tailwind is usually built by the macro environment, specific technology advances (AI wave, dot com), government policy, and the economic booming of a environment(1960s America, 1990s China). Leverage those macro environment as well as build a small, measurable team that contribute directly to the source is more likely to contribute to success. Paul Graham also mentioned that the common mistakes in startup is not winning enough users, building something that users want, and finding the product market fit. The problem is sometimes refer to as premature optimization, which is optimization without protytpe or users. Until you have some users to measure, you're optimizing based on guesses and people could not care about your creation as much as you do. If if brings no value that solve a unique problem, no one will use it.

Is technological progress and possible improvement in living conditions worth a widening incoming gap? When humans shifted from tribal hunter-gatherer societies to farming, our quality of life arguably worsened due to harder labor, reduced dietary diversity, and increased disease. However, this transition allowed for faster population growth and the development of larger, more complex civilizations, despite the personal hardships it introduced. I see the resemblance in technological progress here, where advancements, while improving certain aspects of our lives, often come with trade-offs. Thanks to technological advancement, we're able to pivot and transform further into a complex civilization as a whole, is it worth sacrificing individual benefits(wage gap and possibly worsening living conditions for some)? To me, yes, because it matters we progress further as a whole species.

I think the next big technological platforms will be the web and some type of wearable. Time has proven that the web can bring technology to the masses in a short period of time. You can not beat something that has mass accessibility and relatively low cost. I could also envision that a wearable technology breakthrough would possibly happen in the next decade or two. VR and AR technology in mixed reality could be the bridges to complete the virtual reality technology someday. It does seem like big techs such as Meta and Apple are trying to push in that direction and with technology advancement, what was once imagined or pushed towards seems to always come to reality.

I wasn’t surprised by the success of Paul Graham, time has proven that we’ve always rewarded those who create value for us. What intrigued me is the idea that Paul talked about, having a small number on the team so you can measure productivity and leverage the power to create value. The encouragement of risk taking won’t slow down, the peddle has become even faster. By leveraging technology today, even a non-technical person can create something that requires technical skills. The next big thing in our society is generative AI and some wearable, or maybe a wearable powered with AI.

For me, I'm always eyeing for the storm. The storm of changing in macro environment, order of the hierarchy, as well as technology advancement. Such storm will disrupt the order of things, which is the perfect time to dive in to the eye of the storm and make something for yourself and the world. We see countless example of startup riding the waves of storm and disrupt the old industry monopoly. In Paul Graham's vision, create wealth. Storms comes in waves and usually take decades to form, where it lies opportunity also lies danger, but no rewards will be granted for those who won't be willing to take risk.

The Cathedral and the Bazaar

Sunday, November 3, 2024.


Free for All

I’ve heard many stories about how Linux is a top-of-the-line example of a successful open-source project and am always curious how it rose to such status. What perplexes me is the concept that a large group of people are willing to work together, and dedicate their time to create something beautiful, robust, and free. Perhaps it shouldn't come as a surprise since the video games MOD community has been thriving for a while. It’s obvious that the U.S. runs in a capitalist environment and everything comes with a price, especially an expert programmer’s free time. Such a concept of open source projects seems rather “hippy” or “communist”. Where do we generate profit? Perhaps most capitalists would ask. As I progressed reading, it became clear to me how a “bazaar” software development model has its strengths and makes sense. Perhaps the most reasonable explanation would be we willingly do something out of love and satisfaction, and how the process creates value for like-minded people and the community.

The lesson ESR talks about provided great insight into the principles of a great programmer and why an open-source programming community is superior and often yields higher-quality programs than a close source. ESR talks about how treating users as co-developers is the least hassle route to rapid code improvement and effective debugging. Such an approach requires a large enough beta-tester and co-developer base, and almost every problem will be characterized quickly and the fix obvious to someone. Assuming the user is largely experienced developers would feel comfortable making contributions. Compared to proprietary software which relies on a selected few programmers to build a reliable and stable product, ESR talks about Linux’s early and Frequent releases rather than building out a good prototype with fewer mistakes, release early, and release often. “More users find more bugs because adding more users adds more different ways of stressing the program.” Similar to many open-source games such as Dota and Doom, the source code is open for the players to create MOD. Thus, ensuring the longevity and rapid development of the project, given a large enough community.

In the software landscape today, the majority of software follows the cathedral approach, which greatly ties to how a company is structured. The needs of order, structure, and small groups of contributors that hold all the power. Cathedral approach is rather a reflection of the capitalist society and for-profit software and companies. Open source project seems rather a utopian and ideal version of hacker ethics which hackers dedicate a great amount of resources to keep alive(leisure time, their passion). To me, open source projects represent the rebellious ambition of hackers, it’s their voice and vision of how an idealistic world should be. Remember how the Homebrew Computer Club members passionately advocated for personal computing as a way to decentralize technology, to democratize computing from the dominant force in which large corporations and government institutions had exclusive control over powerful, centralized computing systems?

Which model is superior? Can they mutually exclusively exist? I think diversity is always a healthy sign for a macro environment. Greater diversity usually means greater possibilities that something could evolve, which also prevents stagnation and obsolete. Currently, proprietary software significantly overweight open-source projects. To ensure a prosperous future of the software macro environment that stays innovative, new open-source projects should be encouraged or rewarded. Most importantly, I think the idea of open-source software and the reason for its importance should be spread out more among the developer community.