tag 标签: hacker

相关博文
  • 热度 15
    2014-3-14 17:22
    1621 次阅读|
    0 个评论
    Wikipedia provides an enlightening tidbit in an entry on hackers : "Today, mainstream (mediums) usage of "hacker" might mostly refer to computer criminals, erroneously noted continuously by the experts during the history, due to the mass media usage of the word since the 1980s and the continuous negligence/incompetence to these days." In the olden days "hacker" conjured up the image of the bad guy, the generally not-very-competent script kiddie who took a malicious delight in breaking into computer systems. There was no positive spin on hackers; clever, perhaps, but not all that bright, they were perceived by grownups as little more than computer vandals. Today, many use "hacker" in a positive light, as a smart white hat who probes computer vulnerabilities. There has also been the rise of the "maker" movement, a much-celebrated effort to create stuff, often electronic stuff, outside of the normal confines of disciplined electronics labs. As one suspicious of marketing malarkey I cringe at this rebranding of experimenters into a not-so-new category of hobbyists. In my mind, hackers do software, poorly. Makers make stuff, often poorly as well. To me, these notions imply a person with but a facile understanding of the world of electronics or computers. The idea of a maker, an experimenter, one who plays with electronics is old and admirable. Many of us grew up as kids fiddling with transistors, tubes, and ICs. Building stuff is as old as humanity, and that tactile interaction with components, circuits, and theory gained from such building things is much more visceral than a class on electromagnetics. I wish more young folks had a passion for making things. What seems to be missing from the maker/hacker movement is a path to professionalism. That's not to say every experimenter needs to become an engineer. Rather, the emphasis seems to be on making something work, rather than constantly upgrading one's skills. To make is a great thing, but to make well is much more difficult. As one friend says about firmware, it's easy to get to 90%. The last 10% is really hard. Ham radio has always had a maker-style zeitgeist. Hams often build their own equipment, sometimes on the cheap, often with innovative ideas. But hams have a culture of increasing rigor. One gets a Novice licence, then, through study, progresses to General and maybe eventually to Amateur Extra. It's fun to see someone dress up an Arduino as a fashion accessory. It's admirable when that person's code gets critiqued, then rewritten to comply with the tenets of structured programming. Anyone can toss in a 1K resistor to bias a transistor, but my hat is off to one who asks "why" and then learns about h fe . The word "hacker" still gives me shivers, and that's probably due to being an old fart encumbered with too much history to easily adapt to what seems a new meaning of the term. "Maker," as used so widely today, is something I strongly support, no matter what the individual's goals may be. The outcome could be an artist having a great afternoon dabbling with blinking LEDs or someone trying to hone his or her skills on the path to a professional career in the field. My fear is a sense of conflation in the popular press of the pro and the pro-wannabe. We all start in the latter category, but advance to the former by adopting a discipline of learning. My hope is the Maker movement can serve as a gateway drug into real engineering. My fear is that some easy successes will convince Makers they are ready to build a heart-lung machine. It has been said that an engineer is someone who makes something for a dime what any fool can make for a dollar. But unlike what the fool produces, that dime-priced device will also work over temperature and with unexpected inputs.
  • 热度 14
    2014-3-14 17:15
    1557 次阅读|
    0 个评论
    A Wikipedia entry offers this enlightening tidbit in an article on hackers : "Today, mainstream (mediums) usage of "hacker" might mostly refer to computer criminals, erroneously noted continuously by the experts during the history, due to the mass media usage of the word since the 1980s and the continuous negligence/incompetence to these days." In the olden days "hacker" conjured up the image of the bad guy, the generally not-very-competent script kiddie who took a malicious delight in breaking into computer systems. There was no positive spin on hackers; clever, perhaps, but not all that bright, they were perceived by grownups as little more than computer vandals. Today, many use "hacker" in a positive light, as a smart white hat who probes computer vulnerabilities. There has also been the rise of the "maker" movement, a much-celebrated effort to create stuff, often electronic stuff, outside of the normal confines of disciplined electronics labs. As one suspicious of marketing malarkey I cringe at this rebranding of experimenters into a not-so-new category of hobbyists. In my mind, hackers do software, poorly. Makers make stuff, often poorly as well. To me, these notions imply a person with but a facile understanding of the world of electronics or computers. The idea of a maker, an experimenter, one who plays with electronics is old and admirable. Many of us grew up as kids fiddling with transistors, tubes, and ICs. Building stuff is as old as humanity, and that tactile interaction with components, circuits, and theory gained from such building things is much more visceral than a class on electromagnetics. I wish more young folks had a passion for making things. What seems to be missing from the maker/hacker movement is a path to professionalism. That's not to say every experimenter needs to become an engineer. Rather, the emphasis seems to be on making something work, rather than constantly upgrading one's skills. To make is a great thing, but to make well is much more difficult. As one friend says about firmware, it's easy to get to 90%. The last 10% is really hard. Ham radio has always had a maker-style zeitgeist. Hams often build their own equipment, sometimes on the cheap, often with innovative ideas. But hams have a culture of increasing rigor. One gets a Novice licence, then, through study, progresses to General and maybe eventually to Amateur Extra. It's fun to see someone dress up an Arduino as a fashion accessory. It's admirable when that person's code gets critiqued, then rewritten to comply with the tenets of structured programming. Anyone can toss in a 1K resistor to bias a transistor, but my hat is off to one who asks "why" and then learns about h fe . The word "hacker" still gives me shivers, and that's probably due to being an old fart encumbered with too much history to easily adapt to what seems a new meaning of the term. "Maker," as used so widely today, is something I strongly support, no matter what the individual's goals may be. The outcome could be an artist having a great afternoon dabbling with blinking LEDs or someone trying to hone his or her skills on the path to a professional career in the field. My fear is a sense of conflation in the popular press of the pro and the pro-wannabe. We all start in the latter category, but advance to the former by adopting a discipline of learning. My hope is the Maker movement can serve as a gateway drug into real engineering. My fear is that some easy successes will convince Makers they are ready to build a heart-lung machine. It has been said that an engineer is someone who makes something for a dime what any fool can make for a dollar. But unlike what the fool produces, that dime-priced device will also work over temperature and with unexpected inputs.  
  • 热度 25
    2012-4-20 18:29
    1735 次阅读|
    0 个评论
    Let me first clarify, this book is NOT about hacking in the modern sense of finding out weaknesses in a computer system and exploiting them. In the early days of computers, a hacker was someone who delighted in subtle programming tricks and small algorithms that could be used to make their computer code "tighter" and more efficient. Hacker's Delight really is a great book. Just to give you a feel for it, it's the first book of this type that I've ever seen on Amazon in which every reviewer (and there are a bunch of them) has awarded five stars. On the one hand, the tricks in this book are becoming less relevant as computational resources – in the form of memory and performance – increase. Many of today's programmers work at a high level of abstraction and are conceptually a long way from the "machine". Also, in many cases, a slight inefficiency in the code is of less importance than getting the application out of the door in a timely manner. On the other hand, if you are working on embedded systems with limited performance and memory resources, and if you are working "close to the metal", then the tips and tricks in this book are for you. Most of the time the author assumes a 32bit machine and describes his tips and tricks in a generic computer algebra; more complex tricks are presented in C; but all of these techniques could be easily adapted to machines of different word lengths (8bits, 16bits, 64bits, etc.) and/or implemented in assembly language if required. As a simple tempting taster, let's consider the very first page of Chapter 2: Basics (Chapter 1 is the introduction where the author defines things like the notations to be used and the syntax of his computer algebra). Note that in the following discussions: – x      = Arithmetic negation ~x      = Bitwise NOT (ones complement) x y = Bitwise AND x | y    = Bitwise OR x ^ y   = Bitwise Exclusive OR OK, the first part of the first page reads as follows: Manipulating Rightmost Bits Use the following formula to turn off the rightmost 1bit in a word, producing 0 if none (e.g., 01011000 = 01010000): x (x – 1) This may be used to determine if an unsigned integer is a power of 2 or is a 0; apply the formula followed by a 0-test on the result. Similarly, the following formula can be used to test if an unsigned integer is of the form 2 n – 1 (including all 0 or all 1's): x (x + 1) Use the following formula to isolate the rightmost 1bit, producing 0 if none (e.g., 01011000 = 00001000): x (–x) Use the following formula to isolate the rightmost 0bit, producing 0 if none (e.g., 10100111 = 00001000): ~x (x + 1) Use one of the following formulas to form a mask that identifies the trailing 0's, producing all 1's if x = 0 (e.g., 01011000 = 00000111): ~x (x – 1) , or ~(x | –x) , or (x –x) – 1 The first formula has some instruction-level parallelism. I haven't finished yet. Remember that we are still on the very first page of the main body of the book. At the bottom of the page is one more formula to form a mask that identifies the rightmost 1bit and the trailing 0's, producing all 1's if x = 0 (e.g., 01011000 = 00001111). This formula is as simple as its companions shown above ... I'll leave it as a little teaser for you to play with. As one reviewer on Amazon said "If you approach optimisation as a puzzle, wherein the solution is its own reward, this book is indeed a compendium of delights." I totally agree, and I highly recommend this book to anyone who is interested in knowing the "tricks of the trade." This is of especially interest to embedded software developers working with limited resources, but it is also of interest to any software developer who takes satisfaction in making his or her code as "tight" and efficient as possible.