Wednesday, November 28, 2007

HOW TO BECOME A HACKER







Google


















How To Become A Hacker
Eric Steven Raymond
Thyrsus Enterprises





Copyright © 2001 Eric S. Raymond

Revision History
Revision 1.35 21 Mar 2007 esr
Add note about live CDs, and ten years to mastery.
Revision 1.35 03 Aug 2006 esr
Minor fixes.
Revision 1.34 07 Mar 2006 esr
Remove C# from the list of languages to be avoided now that Mono is out of beta.
Revision 1.33 29 Nov 2005 esr
Add a pointer to Peter Norvig's excellent essay.
Revision 1.32 29 Jun 2005 esr
Substantial new material on not solving problems twice. Answer a FAQ on hacking and open-source programming. The three questions that reveal if you are already a hacker.
Revision 1.31 22 Mar 2005 esr
Added a link to another Paul Graham essay, and advice on how to pick a first project. More translation-link updates.
Revision 1.30 2 Mar 2005 esr
Added and updated many translation links.


--------------------------------------------------------------------------------

Table of Contents

Why This Document?
What Is a Hacker?
The Hacker Attitude
1. The world is full of fascinating problems waiting to be solved.
2. No problem should ever have to be solved twice.
3. Boredom and drudgery are evil.
4. Freedom is good.
5. Attitude is no substitute for competence.
Basic Hacking Skills
1. Learn how to program.
2. Get one of the open-source Unixes and learn to use and run it.
3. Learn how to use the World Wide Web and write HTML.
4. If you don't have functional English, learn it.
Status in the Hacker Culture
1. Write open-source software
2. Help test and debug open-source software
3. Publish useful information
4. Help keep the infrastructure working
5. Serve the hacker culture itself
The Hacker/Nerd Connection
Points For Style
Other Resources
Frequently Asked Questions

Why This Document?
As editor of the Jargon File and author of a few other well-known documents of similar nature, I often get email requests from enthusiastic network newbies asking (in effect) "how can I learn to be a wizardly hacker?". Back in 1996 I noticed that there didn't seem to be any other FAQs or web documents that addressed this vital question, so I started this one. A lot of hackers now consider it definitive, and I suppose that means it is. Still, I don't claim to be the exclusive authority on this topic; if you don't like what you read here, write your own.

If you are reading a snapshot of this document offline, the current version lives at http://catb.org/~esr/faqs/hacker-howto.html.

Note: there is a list of Frequently Asked Questions at the end of this document. Please read these—twice—before mailing me any questions about this document.

Numerous translations of this document are available: Arabic Bulgarian, Catalan, Chinese (Simplified), Danish, Dutch, Estonian, Farsi, Finnish, German, Greek Hebrew, Italian Japanese, Norwegian, Polish, Portuguese (Brazilian), Romanian Russian Spanish, Turkish, and Swedish. Note that since this document changes occasionally, they may be out of date to varying degrees.

The five-dots-in-nine-squares diagram that decorates this document is called a glider. It is a simple pattern with some surprising properties in a mathematical simulation called Life that has fascinated hackers for many years. I think it makes a good visual emblem for what hackers are like — abstract, at first a bit mysterious-seeming, but a gateway to a whole world with an intricate logic of its own. Read more about the glider emblem here.

What Is a Hacker?
The Jargon File contains a bunch of definitions of the term ‘hacker’, most having to do with technical adeptness and a delight in solving problems and overcoming limits. If you want to know how to become a hacker, though, only two are really relevant.

There is a community, a shared culture, of expert programmers and networking wizards that traces its history back through decades to the first time-sharing minicomputers and the earliest ARPAnet experiments. The members of this culture originated the term ‘hacker’. Hackers built the Internet. Hackers made the Unix operating system what it is today. Hackers run Usenet. Hackers make the World Wide Web work. If you are part of this culture, if you have contributed to it and other people in it know who you are and call you a hacker, you're a hacker.

The hacker mind-set is not confined to this software-hacker culture. There are people who apply the hacker attitude to other things, like electronics or music — actually, you can find it at the highest levels of any science or art. Software hackers recognize these kindred spirits elsewhere and may call them ‘hackers’ too — and some claim that the hacker nature is really independent of the particular medium the hacker works in. But in the rest of this document we will focus on the skills and attitudes of software hackers, and the traditions of the shared culture that originated the term ‘hacker’.

There is another group of people who loudly call themselves hackers, but aren't. These are people (mainly adolescent males) who get a kick out of breaking into computers and phreaking the phone system. Real hackers call these people ‘crackers’ and want nothing to do with them. Real hackers mostly think crackers are lazy, irresponsible, and not very bright, and object that being able to break security doesn't make you a hacker any more than being able to hotwire cars makes you an automotive engineer. Unfortunately, many journalists and writers have been fooled into using the word ‘hacker’ to describe crackers; this irritates real hackers no end.

The basic difference is this: hackers build things, crackers break them.

If you want to be a hacker, keep reading. If you want to be a cracker, go read the alt.2600 newsgroup and get ready to do five to ten in the slammer after finding out you aren't as smart as you think you are. And that's all I'm going to say about crackers.


The Hacker Attitude
1. The world is full of fascinating problems waiting to be solved.
2. No problem should ever have to be solved twice.
3. Boredom and drudgery are evil.
4. Freedom is good.
5. Attitude is no substitute for competence.
Hackers solve problems and build things, and they believe in freedom and voluntary mutual help. To be accepted as a hacker, you have to behave as though you have this kind of attitude yourself. And to behave as though you have the attitude, you have to really believe the attitude.

But if you think of cultivating hacker attitudes as just a way to gain acceptance in the culture, you'll miss the point. Becoming the kind of person who believes these things is important for you — for helping you learn and keeping you motivated. As with all creative arts, the most effective way to become a master is to imitate the mind-set of masters — not just intellectually but emotionally as well.

Or, as the following modern Zen poem has it:


To follow the path:
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.


So, if you want to be a hacker, repeat the following things until you believe them:

1. The world is full of fascinating problems waiting to be solved.
Being a hacker is lots of fun, but it's a kind of fun that takes lots of effort. The effort takes motivation. Successful athletes get their motivation from a kind of physical delight in making their bodies perform, in pushing themselves past their own physical limits. Similarly, to be a hacker you have to get a basic thrill from solving problems, sharpening your skills, and exercising your intelligence.

If you aren't the kind of person that feels this way naturally, you'll need to become one in order to make it as a hacker. Otherwise you'll find your hacking energy is sapped by distractions like sex, money, and social approval.

(You also have to develop a kind of faith in your own learning capacity — a belief that even though you may not know all of what you need to solve a problem, if you tackle just a piece of it and learn from that, you'll learn enough to solve the next piece — and so on, until you're done.)

2. No problem should ever have to be solved twice.
Creative brains are a valuable, limited resource. They shouldn't be wasted on re-inventing the wheel when there are so many fascinating new problems waiting out there.

To behave like a hacker, you have to believe that the thinking time of other hackers is precious — so much so that it's almost a moral duty for you to share information, solve problems and then give the solutions away just so other hackers can solve new problems instead of having to perpetually re-address old ones.

Note, however, that "No problem should ever have to be solved twice." does not imply that you have to consider all existing solutions sacred, or that there is only one right solution to any given problem. Often, we learn a lot about the problem that we didn't know before by studying the first cut at a solution. It's OK, and often necessary, to decide that we can do better. What's not OK is artificial technical, legal, or institutional barriers (like closed-source code) that prevent a good solution from being re-used and force people to re-invent wheels.

(You don't have to believe that you're obligated to give all your creative product away, though the hackers that do are the ones that get most respect from other hackers. It's consistent with hacker values to sell enough of it to keep you in food and rent and computers. It's fine to use your hacking skills to support a family or even get rich, as long as you don't forget your loyalty to your art and your fellow hackers while doing it.)

3. Boredom and drudgery are evil.
Hackers (and creative people in general) should never be bored or have to drudge at stupid repetitive work, because when this happens it means they aren't doing what only they can do — solve new problems. This wastefulness hurts everybody. Therefore boredom and drudgery are not just unpleasant but actually evil.

To behave like a hacker, you have to believe this enough to want to automate away the boring bits as much as possible, not just for yourself but for everybody else (especially other hackers).

(There is one apparent exception to this. Hackers will sometimes do things that may seem repetitive or boring to an observer as a mind-clearing exercise, or in order to acquire a skill or have some particular kind of experience you can't have otherwise. But this is by choice — nobody who can think should ever be forced into a situation that bores them.)

4. Freedom is good.
Hackers are naturally anti-authoritarian. Anyone who can give you orders can stop you from solving whatever problem you're being fascinated by — and, given the way authoritarian minds work, will generally find some appallingly stupid reason to do so. So the authoritarian attitude has to be fought wherever you find it, lest it smother you and other hackers.

(This isn't the same as fighting all authority. Children need to be guided and criminals restrained. A hacker may agree to accept some kinds of authority in order to get something he wants more than the time he spends following orders. But that's a limited, conscious bargain; the kind of personal surrender authoritarians want is not on offer.)

Authoritarians thrive on censorship and secrecy. And they distrust voluntary cooperation and information-sharing — they only like ‘cooperation’ that they control. So to behave like a hacker, you have to develop an instinctive hostility to censorship, secrecy, and the use of force or deception to compel responsible adults. And you have to be willing to act on that belief.

5. Attitude is no substitute for competence.
To be a hacker, you have to develop some of these attitudes. But copping an attitude alone won't make you a hacker, any more than it will make you a champion athlete or a rock star. Becoming a hacker will take intelligence, practice, dedication, and hard work.

Therefore, you have to learn to distrust attitude and respect competence of every kind. Hackers won't let posers waste their time, but they worship competence — especially competence at hacking, but competence at anything is valued. Competence at demanding skills that few can master is especially good, and competence at demanding skills that involve mental acuteness, craft, and concentration is best.

If you revere competence, you'll enjoy developing it in yourself — the hard work and dedication will become a kind of intense play rather than drudgery. That attitude is vital to becoming a hacker.


Basic Hacking Skills
1. Learn how to program.
2. Get one of the open-source Unixes and learn to use and run it.
3. Learn how to use the World Wide Web and write HTML.
4. If you don't have functional English, learn it.
The hacker attitude is vital, but skills are even more vital. Attitude is no substitute for competence, and there's a certain basic toolkit of skills which you have to have before any hacker will dream of calling you one.

This toolkit changes slowly over time as technology creates new skills and makes old ones obsolete. For example, it used to include programming in machine language, and didn't until recently involve HTML. But right now it pretty clearly includes the following:

1. Learn how to program.
This, of course, is the fundamental hacking skill. If you don't know any computer languages, I recommend starting with Python. It is cleanly designed, well documented, and relatively kind to beginners. Despite being a good first language, it is not just a toy; it is very powerful and flexible and well suited for large projects. I have written a more detailed evaluation of Python. Good tutorials are available at the Python web site.

Java is also a good language for learning to program in. It is more difficult than Python, but produces faster code than Python. I think it makes an excellent second language. (There used to be a problem with Java because it was proprietary, but Sun is remedying that and the difficuties should entirely vanish with the final code drop in early 2007.)

But be aware that you won't reach the skill level of a hacker or even merely a programmer if you only know one or two languages — you need to learn how to think about programming problems in a general way, independent of any one language. To be a real hacker, you need to get to the point where you can learn a new language in days by relating what's in the manual to what you already know. This means you should learn several very different languages.

If you get into serious programming, you will have to learn C, the core language of Unix. C++ is very closely related to C; if you know one, learning the other will not be difficult. Neither language is a good one to try learning as your first, however. And, actually, the more you can avoid programming in C the more productive you will be.

C is very efficient, and very sparing of your machine's resources. Unfortunately, C gets that efficiency by requiring you to do a lot of low-level management of resources (like memory) by hand. All that low-level code is complex and bug-prone, and will soak up huge amounts of your time on debugging. With today's machines as powerful as they are, this is usually a bad tradeoff — it's smarter to use a language that uses the machine's time less efficiently, but your time much more efficiently. Thus, Python.

Other languages of particular importance to hackers include Perl and LISP. Perl is worth learning for practical reasons; it's very widely used for active web pages and system administration, so that even if you never write Perl you should learn to read it. Many people use Perl in the way I suggest you should use Python, to avoid C programming on jobs that don't require C's machine efficiency. You will need to be able to understand their code.

LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot. (You can get some beginning experience with LISP fairly easily by writing and modifying editing modes for the Emacs text editor, or Script-Fu plugins for the GIMP.)

It's best, actually, to learn all five of Python, C/C++, Java, Perl, and LISP. Besides being the most important hacking languages, they represent very different approaches to programming, and each will educate you in valuable ways.

I can't give complete instructions on how to learn to program here — it's a complex skill. But I can tell you that books and courses won't do it (many, maybe most of the best hackers are self-taught). You can learn language features — bits of knowledge — from books, but the mind-set that makes that knowledge into living skill can be learned only by practice and apprenticeship. What will do it is (a) reading code and (b) writing code.

Peter Norvig, who is one of Google's top hackers and the co-author of the most widely used textbook on AI, has written an excellent essay called Teach Yourself Programming in Ten Years. His "recipe for programming success" is worth careful attention.

Learning to program is like learning to write good natural language. The best way to do it is to read some stuff written by masters of the form, write some things yourself, read a lot more, write a little more, read a lot more, write some more ... and repeat until your writing begins to develop the kind of strength and economy you see in your models.

Finding good code to read used to be hard, because there were few large programs available in source for fledgeling hackers to read and tinker with. This has changed dramatically; open-source software, programming tools, and operating systems (all built by hackers) are now widely available. Which brings me neatly to our next topic...

2. Get one of the open-source Unixes and learn to use and run it.
I'll assume you have a personal computer or can get access to one. (Take a moment to appreciate how much that means. The hacker culture originally evolved back when computers were so expensive that individuals could not own them.) The single most important step any newbie can take toward acquiring hacker skills is to get a copy of Linux or one of the BSD-Unixes or OpenSolaris, install it on a personal machine, and run it.

Yes, there are other operating systems in the world besides Unix. But they're distributed in binary — you can't read the code, and you can't modify it. Trying to learn to hack on a Microsoft Windows machine or under any other closed-source system is like trying to learn to dance while wearing a body cast.

Under Mac OS X it's possible, but only part of the system is open source — you're likely to hit a lot of walls, and you have to be careful not to develop the bad habit of depending on Apple's proprietary code. If you concentrate on the Unix under the hood you can learn some useful things.

Unix is the operating system of the Internet. While you can learn to use the Internet without knowing Unix, you can't be an Internet hacker without understanding Unix. For this reason, the hacker culture today is pretty strongly Unix-centered. (This wasn't always true, and some old-time hackers still aren't happy about it, but the symbiosis between Unix and the Internet has become strong enough that even Microsoft's muscle doesn't seem able to seriously dent it.)

So, bring up a Unix — I like Linux myself but there are other ways (and yes, you can run both Linux and Microsoft Windows on the same machine). Learn it. Run it. Tinker with it. Talk to the Internet with it. Read the code. Modify the code. You'll get better programming tools (including C, LISP, Python, and Perl) than any Microsoft operating system can dream of hosting, you'll have fun, and you'll soak up more knowledge than you realize you're learning until you look back on it as a master hacker.

For more about learning Unix, see The Loginataka. You might also want to have a look at The Art Of Unix Programming.

To get your hands on a Linux, see the Linux Online! site; you can download from there or (better idea) find a local Linux user group to help you with installation. From a new user's point of view, all Linux distributions are pretty much equivalent.

A good way to dip your toes in the water is to boot up what Linux fans call a live CD, a distribution that runs entirely off a CD without having to modify your hard disk. This will be slow, because CDs are slow, but it's a way to get a look at the possibilities without having to do anything drastic.

You can find BSD Unix help and resources at http://www.bsd.org/.

I have written a primer on the basics of Unix and the Internet.

(Note: I don't really recommend installing either Linux or BSD as a solo project if you're a newbie. For Linux, find a local Linux user's group and ask for help.)

3. Learn how to use the World Wide Web and write HTML.
Most of the things the hacker culture has built do their work out of sight, helping run factories and offices and universities without any obvious impact on how non-hackers live. The Web is the one big exception, the huge shiny hacker toy that even politicians admit has changed the world. For this reason alone (and a lot of other good ones as well) you need to learn how to work the Web.

This doesn't just mean learning how to drive a browser (anyone can do that), but learning how to write HTML, the Web's markup language. If you don't know how to program, writing HTML will teach you some mental habits that will help you learn. So build a home page. Try to stick to XHTML, which is a cleaner language than classic HTML. (There are good beginner tutorials on the Web; here's one.)

But just having a home page isn't anywhere near good enough to make you a hacker. The Web is full of home pages. Most of them are pointless, zero-content sludge — very snazzy-looking sludge, mind you, but sludge all the same (for more on this see The HTML Hell Page).

To be worthwhile, your page must have content — it must be interesting and/or useful to other hackers. And that brings us to the next topic...

4. If you don't have functional English, learn it.
As an American and native English-speaker myself, I have previously been reluctant to suggest this, lest it be taken as a sort of cultural imperialism. But several native speakers of other languages have urged me to point out that English is the working language of the hacker culture and the Internet, and that you will need to know it to function in the hacker community.

Back around 1991 I learned that many hackers who have English as a second language use it in technical discussions even when they share a birth tongue; it was reported to me at the time that English has a richer technical vocabulary than any other language and is therefore simply a better tool for the job. For similar reasons, translations of technical books written in English are often unsatisfactory (when they get done at all).

Linus Torvalds, a Finn, comments his code in English (it apparently never occurred to him to do otherwise). His fluency in English has been an important factor in his ability to recruit a worldwide community of developers for Linux. It's an example worth following.

Being a native English-speaker does not guarantee that you have language skills good enough to function as a hacker. If your writing is semi-literate, ungrammatical, and riddled with misspellings, many hackers (including myself) will tend to ignore you. While sloppy writing does not invariably mean sloppy thinking, we've generally found the correlation to be strong — and we have no use for sloppy thinkers. If you can't yet write competently, learn to.


Status in the Hacker Culture
1. Write open-source software
2. Help test and debug open-source software
3. Publish useful information
4. Help keep the infrastructure working
5. Serve the hacker culture itself
Like most cultures without a money economy, hackerdom runs on reputation. You're trying to solve interesting problems, but how interesting they are, and whether your solutions are really good, is something that only your technical peers or superiors are normally equipped to judge.

Accordingly, when you play the hacker game, you learn to keep score primarily by what other hackers think of your skill (this is why you aren't really a hacker until other hackers consistently call you one). This fact is obscured by the image of hacking as solitary work; also by a hacker-cultural taboo (gradually decaying since the late 1990s but still potent) against admitting that ego or external validation are involved in one's motivation at all.

Specifically, hackerdom is what anthropologists call a gift culture. You gain status and reputation in it not by dominating other people, nor by being beautiful, nor by having things other people want, but rather by giving things away. Specifically, by giving away your time, your creativity, and the results of your skill.

There are basically five kinds of things you can do to be respected by hackers:

1. Write open-source software
The first (the most central and most traditional) is to write programs that other hackers think are fun or useful, and give the program sources away to the whole hacker culture to use.

(We used to call these works “free software”, but this confused too many people who weren't sure exactly what “free” was supposed to mean. Most of us now prefer the term “open-source” software).

Hackerdom's most revered demigods are people who have written large, capable programs that met a widespread need and given them away, so that now everyone uses them.

But there's a bit of a fine historical point here. While hackers have always looked up to the open-source developers among them as our community's hardest core, before the mid-1990s most hackers most of the time worked on closed source. This was still true when I wrote the first version of this HOWTO in 1996; it took the mainstreaming of open-source software after 1997 to change things. Today, "the hacker community" and "open-source developers" are two descriptions for what is essentially the same culture and population — but it is worth remembering that this was not always so.

2. Help test and debug open-source software
They also serve who stand and debug open-source software. In this imperfect world, we will inevitably spend most of our software development time in the debugging phase. That's why any open-source author who's thinking will tell you that good beta-testers (who know how to describe symptoms clearly, localize problems well, can tolerate bugs in a quickie release, and are willing to apply a few simple diagnostic routines) are worth their weight in rubies. Even one of these can make the difference between a debugging phase that's a protracted, exhausting nightmare and one that's merely a salutary nuisance.

If you're a newbie, try to find a program under development that you're interested in and be a good beta-tester. There's a natural progression from helping test programs to helping debug them to helping modify them. You'll learn a lot this way, and generate good karma with people who will help you later on.

3. Publish useful information
Another good thing is to collect and filter useful and interesting information into web pages or documents like Frequently Asked Questions (FAQ) lists, and make those generally available.

Maintainers of major technical FAQs get almost as much respect as open-source authors.

4. Help keep the infrastructure working
The hacker culture (and the engineering development of the Internet, for that matter) is run by volunteers. There's a lot of necessary but unglamorous work that needs done to keep it going — administering mailing lists, moderating newsgroups, maintaining large software archive sites, developing RFCs and other technical standards.

People who do this sort of thing well get a lot of respect, because everybody knows these jobs are huge time sinks and not as much fun as playing with code. Doing them shows dedication.

5. Serve the hacker culture itself
Finally, you can serve and propagate the culture itself (by, for example, writing an accurate primer on how to become a hacker :-)). This is not something you'll be positioned to do until you've been around for while and become well-known for one of the first four things.

The hacker culture doesn't have leaders, exactly, but it does have culture heroes and tribal elders and historians and spokespeople. When you've been in the trenches long enough, you may grow into one of these. Beware: hackers distrust blatant ego in their tribal elders, so visibly reaching for this kind of fame is dangerous. Rather than striving for it, you have to sort of position yourself so it drops in your lap, and then be modest and gracious about your status.


The Hacker/Nerd Connection
Contrary to popular myth, you don't have to be a nerd to be a hacker. It does help, however, and many hackers are in fact nerds. Being something of a social outcast helps you stay concentrated on the really important things, like thinking and hacking.

For this reason, many hackers have adopted the label ‘geek’ as a badge of pride — it's a way of declaring their independence from normal social expectations (as well as a fondness for other things like science fiction and strategy games that often go with being a hacker). The term 'nerd' used to be used this way back in the 1990s, back when 'nerd' was a mild pejorative and 'geek' a rather harsher one; sometime after 2000 they switched places, at least in U.S. popular culture, and there is now even a significant geek-pride culture among people who aren't techies.

If you can manage to concentrate enough on hacking to be good at it and still have a life, that's fine. This is a lot easier today than it was when I was a newbie in the 1970s; mainstream culture is much friendlier to techno-nerds now. There are even growing numbers of people who realize that hackers are often high-quality lover and spouse material.

If you're attracted to hacking because you don't have a life, that's OK too — at least you won't have trouble concentrating. Maybe you'll get a life later on.


Points For Style
Again, to be a hacker, you have to enter the hacker mindset. There are some things you can do when you're not at a computer that seem to help. They're not substitutes for hacking (nothing is) but many hackers do them, and feel that they connect in some basic way with the essence of hacking.

Learn to write your native language well. Though it's a common stereotype that programmers can't write, a surprising number of hackers (including all the most accomplished ones I know of) are very able writers.

Read science fiction. Go to science fiction conventions (a good way to meet hackers and proto-hackers).

Train in a martial-arts form. The kind of mental discipline required for martial arts seems to be similar in important ways to what hackers do. The most popular forms among hackers are definitely Asian empty-hand arts such as Tae Kwon Do, various forms of Karate, Kung Fu, Aikido, or Ju Jitsu. Western fencing and Asian sword arts also have visible followings. In places where it's legal, pistol shooting has been rising in popularity since the late 1990s. The most hackerly martial arts are those which emphasize mental discipline, relaxed awareness, and control, rather than raw strength, athleticism, or physical toughness.

Study an actual meditation discipline. The perennial favorite among hackers is Zen (importantly, it is possible to benefit from Zen without acquiring a religion or discarding one you already have). Other styles may work as well, but be careful to choose one that doesn't require you to believe crazy things.

Develop an analytical ear for music. Learn to appreciate peculiar kinds of music. Learn to play some musical instrument well, or how to sing.

Develop your appreciation of puns and wordplay.

The more of these things you already do, the more likely it is that you are natural hacker material. Why these things in particular is not completely clear, but they're connected with a mix of left- and right-brain skills that seems to be important; hackers need to be able to both reason logically and step outside the apparent logic of a problem at a moment's notice.

Work as intensely as you play and play as intensely as you work. For true hackers, the boundaries between "play", "work", "science" and "art" all tend to disappear, or to merge into a high-level creative playfulness. Also, don't be content with a narrow range of skills. Though most hackers self-describe as programmers, they are very likely to be more than competent in several related skills — system administration, web design, and PC hardware troubleshooting are common ones. A hacker who's a system administrator, on the other hand, is likely to be quite skilled at script programming and web design. Hackers don't do things by halves; if they invest in a skill at all, they tend to get very good at it.

Finally, a few things not to do.

Don't use a silly, grandiose user ID or screen name.

Don't get in flame wars on Usenet (or anywhere else).

Don't call yourself a ‘cyberpunk’, and don't waste your time on anybody who does.

Don't post or email writing that's full of spelling errors and bad grammar.

The only reputation you'll make doing any of these things is as a twit. Hackers have long memories — it could take you years to live your early blunders down enough to be accepted.

The problem with screen names or handles deserves some amplification. Concealing your identity behind a handle is a juvenile and silly behavior characteristic of crackers, warez d00dz, and other lower life forms. Hackers don't do this; they're proud of what they do and want it associated with their real names. So if you have a handle, drop it. In the hacker culture it will only mark you as a loser.


Other Resources
Paul Graham has written an essay called Great Hackers, and another on Undergraduation, in which he speaks much wisdom.

Peter Seebach maintains an excellent Hacker FAQ for managers who don't understand how to deal with hackers.

There is a document called How To Be A Programmer that is an excellent complement to this one. It has valuable advice not just about coding and skillsets, but about how to function on a programming team.

I have also written A Brief History Of Hackerdom.

I have written a paper, The Cathedral and the Bazaar, which explains a lot about how the Linux and open-source cultures work. I have addressed this topic even more directly in its sequel Homesteading the Noosphere.

Rick Moen has written an excellent document on how to run a Linux user group.

Rick Moen and I have collaborated on another document on How To Ask Smart Questions. This will help you seek assistance in a way that makes it more likely that you will actually get it.

If you need instruction in the basics of how personal computers, Unix, and the Internet work, see The Unix and Internet Fundamentals HOWTO.

When you release software or write patches for software, try to follow the guidelines in the Software Release Practice HOWTO.

If you enjoyed the Zen poem, you might also like Rootless Root: The Unix Koans of Master Foo.


Frequently Asked Questions
Q: How do I tell if I am already a hacker?
Q: Will you teach me how to hack?
Q: How can I get started, then?
Q: When do you have to start? Is it too late for me to learn?
Q: How long will it take me to learn to hack?
Q: Is Visual Basic a good language to start with?
Q: Would you help me to crack a system, or teach me how to crack?
Q: How can I get the password for someone else's account?
Q: How can I break into/read/monitor someone else's email?
Q: How can I steal channel op privileges on IRC?
Q: I've been cracked. Will you help me fend off further attacks?
Q: I'm having problems with my Windows software. Will you help me?
Q: Where can I find some real hackers to talk with?
Q: Can you recommend useful books about hacking-related subjects?
Q: Do I need to be good at math to become a hacker?
Q: What language should I learn first?
Q: What kind of hardware do I need?
Q: I want to contribute. Can you help me pick a problem to work on?
Q: Do I need to hate and bash Microsoft?
Q: But won't open-source software leave programmers unable to make a living?
Q: Where can I get a free Unix?
Q: How do I tell if I am already a hacker?

A: Ask yourself the following three questions:

Do you speak code, fluently?

Do you identify with the goals and values of the hacker community?

Has a well-established member of the hacker community ever called you a hacker?

If you can answer yes to all three of these questions, you are already a hacker. No two alone are sufficient.

The first test is about skills. You probably pass it if you have the minimum technical skills described earlier in this document. You blow right through it if you have had a substantial amount of code accepted by an open-source development project.

The second test is about attitude. If the five principles of the hacker mindset seemed obvious to you, more like a description of the way you already live than anything novel, you are already halfway to passing it. That's the inward half; the other, outward half is the degree to which you identify with the hacker community's long-term projects.

Here is an incomplete but indicative list of some of those projects: Does it matter to you that Linux improve and spread? Are you passionate about software freedom? Hostile to monopolies? Do you act on the belief that computers can be instruments of empowerment that make the world a richer and more humane place?

But a note of caution is in order here. The hacker community has some specific, primarily defensive political interests — two of them are defending free-speech rights and fending off "intellectual-property" power grabs that would make open source illegal. Some of those long-term projects are civil-liberties organizations like the Electronic Frontier Foundation, and the outward attitude properly includes support of them. But beyond that, most hackers view attempts to systematize the hacker attitude into an explicit political program with suspicion; we've learned, the hard way, that these attempts are divisive and distracting. If someone tries to recruit you to march on your capitol in the name of the hacker attitude, they've missed the point. The right response is probably “Shut up and show them the code.”

The third test has a tricky element of recursiveness about it. I observed in the section called “What Is a Hacker?” that being a hacker is partly a matter of belonging to a particular subculture or social network with a shared history, an inside and an outside. In the far past, hackers were a much less cohesive and self-aware group than they are today. But the importance of the social-network aspect has increased over the last thirty years as the Internet has made connections with the core of the hacker subculture easier to develop and maintain. One easy behavioral index of the change is that, in this century, we have our own T-shirts.

Sociologists, who study networks like those of the hacker culture under the general rubric of "invisible colleges", have noted that one characteristic of such networks is that they have gatekeepers — core members with the social authority to endorse new members into the network. Because the "invisible college" that is hacker culture is a loose and informal one, the role of gatekeeper is informal too. But one thing that all hackers understand in their bones is that not every hacker is a gatekeeper. Gatekeepers have to have a certain degree of seniority and accomplishment before they can bestow the title. How much is hard to quantify, but every hacker knows it when they see it.

Q: Will you teach me how to hack?

A: Since first publishing this page, I've gotten several requests a week (often several a day) from people to "teach me all about hacking". Unfortunately, I don't have the time or energy to do this; my own hacking projects, and working as an open-source advocate, take up 110% of my time.

Even if I did, hacking is an attitude and skill you basically have to teach yourself. You'll find that while real hackers want to help you, they won't respect you if you beg to be spoon-fed everything they know.

Learn a few things first. Show that you're trying, that you're capable of learning on your own. Then go to the hackers you meet with specific questions.

If you do email a hacker asking for advice, here are two things to know up front. First, we've found that people who are lazy or careless in their writing are usually too lazy and careless in their thinking to make good hackers — so take care to spell correctly, and use good grammar and punctuation, otherwise you'll probably be ignored. Secondly, don't dare ask for a reply to an ISP account that's different from the account you're sending from; we find people who do that are usually thieves using stolen accounts, and we have no interest in rewarding or assisting thievery.

Q: How can I get started, then?

A: The best way for you to get started would probably be to go to a LUG (Linux user group) meeting. You can find such groups on the LDP General Linux Information Page; there is probably one near you, possibly associated with a college or university. LUG members will probably give you a Linux if you ask, and will certainly help you install one and get started.

Q: When do you have to start? Is it too late for me to learn?

A: Any age at which you are motivated to start is a good age. Most people seem to get interested between ages 15 and 20, but I know of exceptions in both directions.

Q: How long will it take me to learn to hack?

A: That depends on how talented you are and how hard you work at it. Most people who try can acquire a respectable skill set in eighteen months to two years, if they concentrate. Don't think it ends there, though; in hacking (as in many other fields) it takes about ten years to achieve mastery. And if you are a real hacker, you will spend the rest of your life learning and perfecting your craft.

Q: Is Visual Basic a good language to start with?

A: If you're asking this question, it almost certainly means you're thinking about trying to hack under Microsoft Windows. This is a bad idea in itself. When I compared trying to learn to hack under Windows to trying to learn to dance while wearing a body cast, I wasn't kidding. Don't go there. It's ugly, and it never stops being ugly.

There is a specific problem with Visual Basic; mainly that it's not portable. Though there is a prototype open-source implementations of Visual Basic, the applicable ECMA standards don't cover more than a small set of its programming interfaces. On Windows most of its library support is proprietary to a single vendor (Microsoft); if you aren't extremely careful about which features you use — more careful than any newbie is really capable of being — you'll end up locked into only those platforms Microsoft chooses to support. If you're starting on a Unix, much better languages with better libraries are available. Python, for example.

Also, like other Basics, Visual Basic is a poorly-designed language that will teach you bad programming habits. No, don't ask me to describe them in detail; that explanation would fill a book. Learn a well-designed language instead.

One of those bad habits is becoming dependent on a single vendor's libraries, widgets, and development tools. In general, any language that isn't fully supported under at least Linux or one of the BSDs, and/or at least three different vendors' operating systems, is a poor one to learn to hack in.

Q: Would you help me to crack a system, or teach me how to crack?

A: No. Anyone who can still ask such a question after reading this FAQ is too stupid to be educable even if I had the time for tutoring. Any emailed requests of this kind that I get will be ignored or answered with extreme rudeness.

Q: How can I get the password for someone else's account?

A: This is cracking. Go away, idiot.

Q: How can I break into/read/monitor someone else's email?

A: This is cracking. Get lost, moron.

Q: How can I steal channel op privileges on IRC?

A: This is cracking. Begone, cretin.

Q: I've been cracked. Will you help me fend off further attacks?

A: No. Every time I've been asked this question so far, it's been from some poor sap running Microsoft Windows. It is not possible to effectively secure Windows systems against crack attacks; the code and architecture simply have too many flaws, which makes securing Windows like trying to bail out a boat with a sieve. The only reliable prevention starts with switching to Linux or some other operating system that is designed to at least be capable of security.

Q: I'm having problems with my Windows software. Will you help me?

A: Yes. Go to a DOS prompt and type "format c:". Any problems you are experiencing will cease within a few minutes.

Q: Where can I find some real hackers to talk with?

A: The best way is to find a Unix or Linux user's group local to you and go to their meetings (you can find links to several lists of user groups on the LDP site at ibiblio).

(I used to say here that you wouldn't find any real hackers on IRC, but I'm given to understand this is changing. Apparently some real hacker communities, attached to things like GIMP and Perl, have IRC channels now.)

Q: Can you recommend useful books about hacking-related subjects?

A: I maintain a Linux Reading List HOWTO that you may find helpful. The Loginataka may also be interesting.

For an introduction to Python, see the introductory materials on the Python site.

Q: Do I need to be good at math to become a hacker?

A: No. Hacking uses very little formal mathematics or arithmetic. In particular, you won't usually need trigonometry, calculus or analysis (there are exceptions to this in a handful of specific application areas like 3-D computer graphics). Knowing some formal logic and Boolean algebra is good. Some grounding in finite mathematics (including finite-set theory, combinatorics, and graph theory) can be helpful.

Much more importantly: you need to be able to think logically and follow chains of exact reasoning, the way mathematicians do. While the content of most mathematics won't help you, you will need the discipline and intelligence to handle mathematics. If you lack the intelligence, there is little hope for you as a hacker; if you lack the discipline, you'd better grow it.

I think a good way to find out if you have what it takes is to pick up a copy of Raymond Smullyan's book What Is The Name Of This Book?. Smullyan's playful logical conundrums are very much in the hacker spirit. Being able to solve them is a good sign; enjoying solving them is an even better one.

Q: What language should I learn first?

A: XHTML (the latest dialect of HTML) if you don't already know it. There are a lot of glossy, hype-intensive bad HTML books out there, and distressingly few good ones. The one I like best is HTML: The Definitive Guide.

But HTML is not a full programming language. When you're ready to start programming, I would recommend starting with Python. You will hear a lot of people recommending Perl, and Perl is still more popular than Python, but it's harder to learn and (in my opinion) less well designed.

C is really important, but it's also much more difficult than either Python or Perl. Don't try to learn it first.

Windows users, do not settle for Visual Basic. It will teach you bad habits, and it's not portable off Windows. Avoid.

Q: What kind of hardware do I need?

A: It used to be that personal computers were rather underpowered and memory-poor, enough so that they placed artificial limits on a hacker's learning process. This stopped being true in the mid-1990s; any machine from an Intel 486DX50 up is more than powerful enough for development work, X, and Internet communications, and the smallest disks you can buy today are plenty big enough.

The important thing in choosing a machine on which to learn is whether its hardware is Linux-compatible (or BSD-compatible, should you choose to go that route). Again, this will be true for almost all modern machines. The only real sticky areas are modems and wireless cards; some machines have Windows-specific hardware that won't work with Linux.

There's a FAQ on hardware compatibility; the latest version is here.

Q: I want to contribute. Can you help me pick a problem to work on?

A: No, because I don't know your talents or interests. You have to be self-motivated or you won't stick, which is why having other people choose your direction almost never works.

Try this. Watch the project announcements scroll by on Freshmeat for a few days. When you see one that makes you think "Cool! I'd like to work on that!", join it.

Q: Do I need to hate and bash Microsoft?

A: No, you don't. Not that Microsoft isn't loathsome, but there was a hacker culture long before Microsoft and there will still be one long after Microsoft is history. Any energy you spend hating Microsoft would be better spent on loving your craft. Write good code — that will bash Microsoft quite sufficiently without polluting your karma.

Q: But won't open-source software leave programmers unable to make a living?

A: This seems unlikely — so far, the open-source software industry seems to be creating jobs rather than taking them away. If having a program written is a net economic gain over not having it written, a programmer will get paid whether or not the program is going to be open-source after it's done. And, no matter how much "free" software gets written, there always seems to be more demand for new and customized applications. I've written more about this at the Open Source pages.

Q: Where can I get a free Unix?

A: If you don't have a Unix installed on your machine yet, elsewhere on this page I include pointers to where to get the most commonly used free Unix. To be a hacker you need motivation and initiative and the ability to educate yourself. Start now...








Google

















ALL REGISTRY TRICKS U EVER NEED

Allowing Network Access with Blank Passwords (XP and Vista)
Added 2/10/07






Google

















Although you can log in locally without a password, by default, WindowsXP Pro does not allow network users to access the computer without a password. Typically you will receive an Unknown error 31 if this is the case.

To change this setting:

Run gpedit.msc
Go to Computer Configuration / Windows Settings / Security Settings / Local Policies / Security Options
Double click on Accounts: Limit local account use of blank passwords to console login only
Disable this option

--------------------------------------------------------------------------------

Disabling the F3 Search Key
Added 1/20/03

If you want to disable the ability to use the F3 key from either the Windows Explorer or Internet Explorer

Start Regedit
Go to HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions
Create a Dword value called NoFindFiles
Give it a value of 1
Reboot

--------------------------------------------------------------------------------

Preventing Changes to File Associations
Submitted 9/18/02

You can prevent users from changing associations via Windows Explorer's Tools / Folder Options / File Types tab.

Start Regedit
Go to HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explore
Create REG_DWORD data type NoFileAssociate
Give it a value of 1
Submitted by Paul Barker


--------------------------------------------------------------------------------

Locking File Associations
Submitted 9/18.02

If you have your file associations the way you want for a particular file type, you can remove it from the list that gets displayed in the Folder Options / File Types screen

Start Regedit
Go to HKEY_CLASSES_ROOT
Scroll to the file association you want to lock.
In the right panel, create a new Binary value
Call it EditFlags
Give it a value of 01 00 00 00
Now when you go to the Folder Options / File Types screen, you won't see that file type listed.
Submitted by Paul Barker


--------------------------------------------------------------------------------

Turning off System Beeps
Added 9/10/01

If you want to turn off all system beeps (like the ones that go through your computers' internal speaker):

Start Regedit
Go to HKEY_CURRENT_USER\Control Panel\Sound
Edit the key Beep and give it a value of No
Download reg file


--------------------------------------------------------------------------------

Changing the Location Of Special Folders
Added 9/10/02

You can modify the registry to change the location of special folders like:

My Documents
Favorites
My Pictures
Personal
Start Regedit
Go to HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Double click on any locations you want to change and alter the path
Logoff or restart for the changes to go into effect
Note: TweakUI from Microsoft will allow you to make these changes from a dialog box as well


--------------------------------------------------------------------------------

Deleting Specific Registry Value
Submitted 12/22/01

In a previous tip, Automatically Deleting a Registry Key, it was mentioned how to remove an entire registry key.
If you want to simply remove a specific value within a key, use the syntax below:

[Registry Key]
"value"=-

For example:

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"MSConfig"=-

would delete the value MSCONFIG.

Submitted by Brent Towsley


--------------------------------------------------------------------------------

Setting the Recycle Bin to Always Delete
Added 11/17/01

You can set the recycle bin to always delete items (like holding down the shift key when dragging files to the recycle bin)

Start Regedit
Go to HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ BitBucket
Set the key NukeOnDelete to 1
Download reg file


--------------------------------------------------------------------------------

Setting the Internet Explorer Home Page
Submitted 9/4/01

If you want to set the home page used by Internet Explorer through the registry

Start Regedit
Go to HKey_Current_User \ Software \ Microsoft \ Internet Explorer \ Main
Give the Start Page key the string value you wish set as homepage
Submitted by Austin Henderson


--------------------------------------------------------------------------------

Preparing to Move Hard Drive to Another Computer
Submitted 12/20/00

To remove the devices from device manager when taking a HD from one computer to another,
simply:

Run Regedit
Go to HKEY_LOCAL_MACHINE\ and delete the Enum section
This removes all of the hardware specific settings
Submitted by Lee Berry


--------------------------------------------------------------------------------

Comparing Registries
Added 2/21/00

While working with changes to your system, you might want to see what is changing in your Registry.
Since you can export it to a text file, the steps are fairly easy

Start Regedit
With the very top level select - My Computer, on the Toolbar select Registry / Export Registry File
I usually save it to the root of the C: drive with the name before (you don't need to add an extension)
Make the change to your system
Go back to Regedit
Press F5 to update it
Export the Registry like step 2
Name the file after and have it go in the same directory
Open up a DOS window
Go to the directory where the two exported files are
Enter FC before.reg after.reg > diff.txt
Then you can edit diff.txt with your favorite text editor.
Note: I do the last steps so often I have a simple batch file already set up.


--------------------------------------------------------------------------------

Setting Excel 2000 High-Contrast Cell Selection
Added 2/2/00

If you want to increase the contrast in selected cells:

Start Regedit
Go to HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 9.0 \ Excel \ Options
Add a DWORD value call Options6
Give it a value of 16
Now when you select cells, they will be white on black.

--------------------------------------------------------------------------------

Changing Common Icons
Updated 1/31/00

You can change many of the common Windows icons.

Start Regedit
Go to HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ explorer \ Shell Icons
The default icons are numbered in the right panel from 0-40
Double click on the number of the particular icon you want to change. See the chart below.
Enter the name of the icon file you want to use followed by the number of the icon in that file.
Note: The numbering starts with zero.
If you use a single .ICO file, it should be followed by a 0.
e.g. - filename.dll,4 - This would actually be the 5th icon since it starts with 0.
Make sure you delete the hidden file C:\WINDOWS\SHELLICONCACHE
0-13 Are the Drive and Application Icons
0 - To change the Unknown Application Icon
2 - To change the Default Application Icon
3 - To change the Closed Folder Icon
4 - To change the Open Folder Icon
5 - To change the 5 1/4" Floppy Icon
6 - To change the 3 1/2" Floppy Icon
7 - To change the Removable Disk Icon
8 - To change the Hard Drive Icon
9 - To change the Network Drive Online Icon
10 - To change the Network Drive Offline Icon
11 - To change the CD Drive Icon
12 - To change the Ramdrive Icon
13 - To change the Entire Network Icon

19-27 Are the Start Menu Icons
19 - To change the Programs Icon
20 - To change the Documents Icon
21 - To change the Settings Icon
22 - To change the Find Icon
23 - To change the Help Icon
24 - To change the Run Icon
27 - To change the Shutdown Icon

Other Icons
33 - To change the DUN Folder Icon
34 - To change the Desktop Icon
35 - To change the Control Panel Icon
37 - To change the Printer Folder Icon
40 - To change the Audio CD Icon
43 - To change the Favorites Icon
44 - To change the Logoff Icon


--------------------------------------------------------------------------------

Prevent Changes to the Start Menu
Added 1/31/00

To prevent any changes to the Start Menu, even a right click:

Start Regedit
Go to HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer
Add a DWORD called NoChangeStartMenu
Give it a value of 1
Download reg file


--------------------------------------------------------------------------------

DOS Restrictions
Updated 1/31/00

There are restrictions you can make to the ability to execute DOS programs

Start Regedit
Go to HKEY_Current_User / Software / Microsoft / Windows / CurrentVersion / Policies
Create a new key under Policies called WinOldApp
You can then add DWORD values set to 1 in the appropriate keys
To re-enable them, either delete the key or set the value to 0
Disabled - Disable MS-DOS Prompt
NoRealMode - Disables Single-Mode MS-DOS

--------------------------------------------------------------------------------

Networking Restrictions
Updated 1/31/00

There are general restrictions you can make in Networking

Start Regedit
Go to HKEY_Current_User / Software / Microsoft / Windows / CurrentVersion / Policies
Create a new key under Policies called Network
You can then add DWORD values set to 1 in the appropriate keys
To re-enable them, either delete the key or set the value to 0
DisablePwdCaching = Password Caching
HideSharePwds [hex] =Shared Passwords
NoEntireNetwork =Entire Network
NoNetSetup =Network applet
NoNetSetupIDPage =Network Identification tab
NoNetSetupSecurityPage =Network Access tab
NoFileSharing =Network File Sharing button
MinPwdLen = set Minimum Password Length (integer number: 0 - 99)
NoPrintSharing =Network Print Sharing button
NoWorkgroupContents =Network Workgroup

--------------------------------------------------------------------------------

Control Panel Restrictions
Updated 1/31/00

There are many general restrictions you can make to the Control Panel

Start Regedit
Go to HKEY_Current_User / Software / Microsoft / Windows / CurrentVersion / Policies
Create a new keys under Policies called System
You can then add DWORD values set to 1 in the appropriate keys
To re-enable them, either delete the key or set the value to 0
NoDispCPL - Disable Display Control Panel
NoDispBackgroundPage - Hide Background Page
NoDispScrSavPage - Hide Screen Saver Page
NoDispAppearancePage - Hide Appearance Page
NoDispSettingsPage - Hide Settings Page
NoSecCPL - Disable Password Control Panel
NoPwdPage - Hide Password Change Page
NoAdminPage - Hide Remote Administration Page
NoProfilePage - Hide User Profiles Page
NoDevMgrPage - Hide Device Manager Page
NoConfigPage - Hide Hardware Profiles Page
NoFileSysPage - Hide File System Button
NoVirtMemPage - Hide Virtual Memory Button

--------------------------------------------------------------------------------

Restricting the Start Menu, Explorer and the Desktop
Updated 1/30/00

There are many general restrictions you can make to the Start Menu, the Explorer and to the Desktop itself.

Start Regedit
Go to HKEY_Current_User / Software / Microsoft / Windows / CurrentVersion / Policies
There should already be at least a Explorer section there already
Additional keys that can be created under Policies are WinOldApp
You can then add DWORD values set to 1 in the appropriate keys
To re-enable them, either delete the key or set the value to 0
ClearRecentDocsOnExit = Clear of Recent Documents on Exit
NoAddPrinter = Adding new printers
NoClose = Computer Shutdown
NoDeletePrinter = Delete Installed Printers
NoDesktop = Doesn't show Desktop items as well as and Desktop right-click menu
NoDevMgrUpdate = Windows 98/ME web Update Manager
NoDrives [hex] = Hides Drives in my computer
NoFind = Find command
NoInternetIcon = Internet Icon on Desktop
NoNetHood = Network Neighborhood
NoRecentDocsHistory = Recent Documents in Start Menu
NoRun = Run command
NoSaveSettings = Save Settings on exit
NoSetFolders = Folders in Start Menu -> Settings
NoSetTaskbar = Taskbar in Start Menu -> Settings
NoSMMyDocs = My Documents folder in Start Menu
NoSMMyPictures = My Pictures folder in Start Menu
NoWindowsUpdate = Windows web Update

--------------------------------------------------------------------------------

Changing Office 2000's Excel Undo History
Added 1/27/00

By default, Excel has only approximately 16 undo's you can perform.

To increase that number:

Start Regedit
Go to HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 9.0 \ Excel \ Options
Add a dword called UndoHistory
Give it the value you want for the amount you want.

--------------------------------------------------------------------------------

Changing the Title on Windows Media Player
Added 1/27/00

You can change the title bar for the Windows Media Player

Start Regedit
Go to HKEY_USERS \ .DEFAULT \ Software \ Policies \ Microsoft \ WindowsMediaPlayer
Create a string value of TitleBar
Give it a value of whatever you want to appear in the title bar

--------------------------------------------------------------------------------

Eliminating the Right Click on the Taskbar
Added 1/10/00

To eliminate the right click on the taskbar:

Start Regedit

Start Regedit
Go to HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer
Add a DWORD and give it a name of NoTrayContextMenu
Give it a value of 1
Reboot
Download reg file


--------------------------------------------------------------------------------

Eliminating the Right Click on the Desktop
Added 1/10/00

To eliminate the right click on the desktop:

Start Regedit
Go to HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer
Add a DWORD and give it a name of NoViewContextMenu
Give it a value of 1
Reboot
Download reg file


--------------------------------------------------------------------------------

Turning Off the Help on Min, Max, Close Icons
Added 1/8/00

When the mouse goes over the minimize, maximize and close icons on the upper right hand side of a window, you normally get a display telling you want those are for.
To disable that display:

Start Regedit
Go to HKEY_CURRENT_USER \ Control Panel \ Desktop
Create a String Value called MinMaxClose
Give it a value of 1
Reboot
Download reg file


--------------------------------------------------------------------------------

Adding Open With to the Right Click in the Explorer
Added 12/28/99

To add the option Open With when you right click on a file in the Explorer:

Start Regedit
Go to HKEY_LOCAL_MACHINE \ Software \ CLASSES \* \ shell \ openas \ command
If this key isn't there then just create it
Give it the value of C:\WINDOWS\rundll32.exe shell32.dll,OpenAs_RunDLL %1

--------------------------------------------------------------------------------






Google

















Automatically Deleting a Registry Key
Added 12/20/99

Normally you cannot automatically delete registry keys from reg file. But there is a way...

Simply include a minus sign inside the left bracket before the main key.

For example.
If you want to delete the key HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Office \ 8.0 \ Common \ Assistants, your regfile would simply look like:


REGEDIT4

[-HKEY_LOCAL_MACHINE\Software\Microsoft\Office\8.0\Common\Assistants]

This would delete that key and any below it.


--------------------------------------------------------------------------------

Fixing no AutoRun for CDs
Added 11/9/99

If your CDs have stop starting automatically, and you have checked everything else:

Go to HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
The value for NoDriveTypeAutoRun should be set to 95 00 00 00
Download reg file


--------------------------------------------------------------------------------

Renaming the File System Profiles
Added 4/20/99

In the Control Panel / System / Performance / File System, you can select either Desktop Computer, Mobile or docking system, or Network Server.
You can change these labels to something more descriptive:

Start Regedit
Go to HKEY_LOCAL_MACHINE / Software / Microsoft / Windows / Current Version / FS Templates
You can change the text that appears under each key

--------------------------------------------------------------------------------

Sticky Menus
Added 4/20/99

Normally when you move the mouse over the Start Menu / Programs, it will automatically cascade and show the submenus.
If you want them to open only when you actually click on them:

Start Regedit
Go to HKEY_CURRENT_USER \ Control Panel \ Desktop
If if it not already there, create a string called MenuShowDelay
Give it a value of 65534
Download reg file


--------------------------------------------------------------------------------

Automatic Shutdown with Windows NT
Submitted 3/28/99

Most laptops allow the operating system to turn off the hardware after shutdown, instead of displaying the message telling you it's now safe to turn off your system.
You can take advantage of this capability by enabling the Power Down After Shutdown feature.

To enable this feature, simply add a REG_SZ value named HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\PowerdownAfterShutDown and set it to 1.

Next, tell NT to shut down and see if the machine turns itself off after shutting down. If it doesn't, change the value back to 0 to restore normal operation.

Download reg file

Submitted by D Puffer


--------------------------------------------------------------------------------

Kill Hung Processes When Logging Off in Windows NT
Submitted 3/28/99

When you tell NT to shut down, it first sends shutdown requests to any running processes.
Most 32-bit applications honor these requests and shut down, but older 16-bit apps running in the Virtual DOS Machine often won't.
When this occurs, the operating system prompts you with a dialog box asking if you want to kill the task, wait for the task to die on its own, or cancel the shutdown.
By modifying the Registry, you can automate this process.

You can force NT to kill all running processes on shutdown by adding a REG_SZ value named HKEY_USER\\ControlPanel\Desktop\AutoEndTasks and set the value to 1. You can also add this value to HKEY_USERS\.DEFAULT so that all new accounts will shut down the same way.

Submitted by D Puffer


--------------------------------------------------------------------------------

NT Crash Log File
Submitted 3/28/99

In addition to the crash log file, you can also enable two other methods of crash notification and logging.


You can enable an administrative alert by changing the value of

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\SendAlert to 1. The next time the system crashes, an administrative alert will be sent that may provide the first sign of the crash.

You can also make NT log the crash in the event log by changing the value of

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\CrashControl\LogEvent to 1 instead of its default 0. Now, the exact time of the crash will be permanently recorded.

Submitted by D Puffer


--------------------------------------------------------------------------------

Changing the Location of Outlook Express Data Files
Added 1/16/99

Normally Outlook Express keeps its data files in the C:\Windows\Application Data\Microsoft\Outlook Express directory.

To change this:

First copy those files to the new location
Start RegEdit
Go to HKEY_CURRENT_USER \ Software \ Microsoft \ Outlook Express
Change the Store Root key to the directory where you moved the files

--------------------------------------------------------------------------------

Disabling the Blinking Cursor
Added 10/17/98

To stop the cursor from blinking in applications such as Word:

Start Regedit
Go to HKEY_CURRENT_USER\Control Panel\Desktop
Add a String Value
Name it CursorBlinkRate
Give it a value of -1
Reboot the computer
Download reg file


--------------------------------------------------------------------------------

Re-Enabling DHCP Error Messages
Added 9/20/98

If you got a DHCP error message, selected to not see DHCP errors, and now want to see them again;

Start Regedit
Go to HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ VxD \ DHCP
Change the value of PopupFlag from 00 to 01

--------------------------------------------------------------------------------

Getting Rid of Schemes
Updated 6/7/98

A safer way would be is to go to the Control Panel / Display / Appearance tab
Go to the Scheme drop down box
Select the one you don't want and click on the delete button
Submitted by obs

When you right click on your desktop and pick properties your Display Properties screen appears.
Under Appearance tab / Schemes, determine if you want all those wild schemes.
If not they can be deleted and clear approximately 45K.
Before you delete them, choose or create at least 1 Scheme and "Save As" (in my case Bud 1).

Open Regedit
Go to HKEY_CURRENT_USER \ Control Panel \ Appearance \ Schemes
Highlight every String and Value on the right side and delete. DO NOT DELETE "Default"
Submitted by Bud Allen
bwil@erinet.com


--------------------------------------------------------------------------------

Hiding Any Combination of Drives
Submitted 2/15/98

If you want to stop a drive or any combination of drives appearing in Explorer/My Computer

Add the Binary Value of 'NoDrives' in the registry at HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

Give it a value from a combination of the table below:

A 1 00 00 00
B 2 00 00 00
C 4 00 00 00
D 8 00 00 00
E 16 00 00 00
F 32 00 00 00
G 64 00 00 00
H 128 00 00 00
I 00 1 00 00
J 00 2 00 00
K 00 4 00 00
L 00 8 00 00
M 00 16 00 00
N 00 32 00 00
O 00 64 00 00
P 00 128 00 00
Q 00 00 1 00
R 00 00 2 00
S 00 00 4 00
T 00 00 8 00
U 00 00 16 00
V 00 00 32 00
W 00 00 64 00
X 00 00 128 00
Y 00 00 00 1
Z 00 00 00 2

Where (for eg) you want to hide Drives {C,E,J,O,R,U,Y,Z} you would give 'NoDrives' the value 14 42 12 03
Where C+E = 14, J+O = 42, R+U=12 and Y+Z = 03
Please NOTE: The Numbers are to be added in HEXadecimal ie: ABCD = 0F, not 15 All Drives Visible is 00 00 00 00 All Drives Hidden is FF FF FF 03

Submitted by Ramon Buckland


--------------------------------------------------------------------------------

Creating a Legal Text Notice Before Logon
Added 2/15/98

You can create a banner that will come up just before you logon to the computer:

Start Regedit
Go to HKeyLocalMachine \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ WinLogon
Create a new string value called LegalNoticeCaption and give it a value you want to see in the menu bar
Create a new string value called LegalNoticeText and give it a value you want to see in the dialog box
Now before anyone logs into that computer, this banner will come up on the screen.
This can be useful for any legal warnings you want to give regarding the use of the computer.


--------------------------------------------------------------------------------

Removing the Hand Icon from Shared Resources
Submitted 2/11/98

When you share a local resource, Windows95 normally puts a hand in from of that resources icon.
To remove hand icon from your shared resources:

Start Regedit.
Go to HKEY_CLASSES_ROOT / Network
Open SharingHandler.
Clear it's default value
Restart Windows.
To restore set Default value "msshrui.dll".
Submitted by Guntars Revelins


--------------------------------------------------------------------------------

Enabling the Middle Mouse Button on Logitech Mouse
To enable the middle mouse button on Logitech Mouses to act as a double-click button by only pressing it once:

Run Regedit
Go to HKEY_LOCAL_MACHINE\SOFTWARE\LOGITECH\MOUSEWARE\CURRENTVERSION\SERIALV\0000
Change DoubleClick to equal 001
Submitted by Jason Maruniak


--------------------------------------------------------------------------------

Easily Opening a File with Notepad
Submitted 10/25/97

This will enable you to right click on any file and have the option to open it with notepad.
Also if a file has no association and you try to open it it will open with notepad

Run 'regedit.exe'
Expand "HKEY_CLASSES_ROOT"
Inside "HKEY_CLASSES_ROOT", expand "*"
Inside "*", create a key called "shell"
Inside "shell" create a key called "open"
Inside "open" edit the string "(default)" to say "open (notepad)"
Inside "open" create a key called "command"
Inside "command" edit the string "(default)" to say C:\WINDOWS\NOTEPAD.EXE "%1"
Submitted by EIBON


--------------------------------------------------------------------------------







Google

















Displaying Hi-Color Icons without the Plus Pack
Submitted 10/19/97

Start Regedit
Go to HKEY_CURRENT_USER \ Control Panel \ desktop \ WindowMetrics
Add or edit Shell Icon BPP=16 where the number is the color depth.
The default is 8 (bit or 256 colors).
Submitted by Frank Lolli


--------------------------------------------------------------------------------

Backing Up the Registry
Submitted 9/13/97

There are many backup programs for the registry but if the computer goes down and you can't fire off Win95 because of the registry problem.

Backup to a directory the following files:

SYSTEM.DATA
SYSTEM.DA0 (Yes seem to be the same size)
USER.DAT
USER.DA0 (Same size likely)
WIN.INI
CONTROL.INI
SYSTEM.INI
These files can be copied to the windows directory from Win95 or DOS to help correct problems.

Submitted by George Harper


--------------------------------------------------------------------------------

Removing Unwanted Items from the RUN Menu
Submitted 8/23/97

Start the REGEDIT program
Search for the word RUNMRU
Delete the ones you don't want
Rename so they are all in alphabetical order again
Close and restart windows
Submitted by Graham Orchard


--------------------------------------------------------------------------------

Opening a DOS Window to either the Drive or Directory in Explorer
Submitted 8/9/97

Add or Edit the following Registry Keys

[HKEY_CLASSES_ROOT\Directory\shell\opennew]
@="Dos Prompt in that Directory"

[HKEY_CLASSES_ROOT\Directory\shell\opennew\command]
@="command.com /k cd %1"

[HKEY_CLASSES_ROOT\Drive\shell\opennew]
@="Dos Prompt in that Drive"

[HKEY_CLASSES_ROOT\Drive\shell\opennew\command]
@="command.com /k cd %1"

These will allow you to right click on either the drive or the directory and the option of starting the dos prompt there will pop up

Submitted by James Doss


--------------------------------------------------------------------------------

Compacting the Registry
Submitted 4/5/97

How to compact the registry?

Got to true DOS, not a DOS window
Run Regedit and then export the entire Registry to COMPACT.REG.
Then exit regedit and run it again with the following switch. REGEDIT /C COMPACT.REG
Submitted by Ian Buda


--------------------------------------------------------------------------------

Changing Exchange's Mailbox Location
Added 3/29/97

When you create a mailbox in Exchange for e-mail, you specify the file where you want to mail to go.
You cannot change this in Exchange afterwards.

If you want to change the file name or location::

Start Regedit
Go to HKEY_CURRENT_USER \ Software \ Microsoft \ WindowsMessaging Subsystem \ Profiles
Go to the profile you want to change
Go to the section that has the file location for your mailbox (*.PST) file in the right hand panel
Make the change to file location or name
Restart Exchange

--------------------------------------------------------------------------------

Removing Sound Events from Control Panel / Sounds
Added 3/16/97

When you view what events you can assign sounds to from Control Panel / Sounds,
you cannot delete the events themselves. In order to do that:

Start Regedit
Go to HKEY_CURRENT_USER / AppEvents / Schemes / Apps
From here you can delete any items you don't want to show or no longer need.

--------------------------------------------------------------------------------


Changing the Registered Owner
Added 2/6/97

Starting Regedit
Go to HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion
From there you can edit the name in the Registered Owner key

--------------------------------------------------------------------------------


Adding an Application to the Right Click on Every Folder
Added 1/30/97

Here is how to add any application to the menu when you right click on any Folder.
This could be useful if there is an app you always want available and don't want to go through the Start menu

Start Regedit
Go to HKEY_CLASSES_ROOT \ Folder \ shell
Add a key Name_of_Your_App
This can really be any label, just use one that makes sense to you
Give it a default value of Name_of_Your_App
Putting a & in front of a character will allow you to use the keyboard
Go to HKEY_CLASSES_ROOT \ Folder \ shell \ Name_of_Your_App
Add a key command
Give it a default value of the application you want to run
For example: c:\program files\internet explorer\iexplore.exe
Include the full path
Now when you right click on any folder, you can have access to that application
This will work for both Windows95 and NT 4.0


--------------------------------------------------------------------------------


Adding Explore From Here to Every Folder
Added 1/30/97

Start Regedit
Go to HKEY_CLASSES_ROOT \ Folder \ shell
Add a key rootexplore
Give it a default value of E&xplore From Here
Go to HKEY_CLASSES_ROOT \ Folder \ shell \ rootexplore
Add a key command
Give it a default value of Explorer.exe /e,/root,/idlist,%i
Now when you right click on any folder, you can open up an Explorer window of that folder.
This will work for both Windows95 and NT 4.0


--------------------------------------------------------------------------------


Saving Desktop Settings
Submitted 1/11/97

When I would go to Control Panel or Start Menu Programs, or any other Desktop window setting; meaning size, position, icon arrangement, they would never be as I set them. I found an answer:

At [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
There is a "NoSaveSettings" key. I deleted it and now my all my stuff stays where I tell it.
The same key shows up at:
[HKEY_USERS\bwil\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer](where bwil is your password profile) Just thought I'd share this with you all.

Submitted by Bud Allen
bwil@erinet.com


--------------------------------------------------------------------------------


Getting Rid of Tips
Remember those "Tips of the day" that appeared when you first install Win95?
If you don't want them any longer and want to clear yet more Clutter, approximately 5K, you can delete them at:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ explorer \ Tips

Submitted by Bud Allen
bwil@erinet.com


--------------------------------------------------------------------------------


Changing the Location of Windows95's Installation Files
Added 12/18/96

If you need to change the drive and or path where Windows95 will look for it's installation files:

Start Regedit
Go to HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Setup \ SourcePath
Change the location from there

--------------------------------------------------------------------------------


Creating a Network Logon Banner
Submitted 12/7/96

If you want to create a Network Logon Banner:

Start Regedit
Go To HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Winlogon
Create a new String called LegalNoticeCaption
Enter the text for your banner
Submitted by Frank Tanner


--------------------------------------------------------------------------------


Creating a Default File Opener
Added 11/29/96
If you have a un-registered file type and want to view it with Explorer's Right-click
you can add your program to the right-click options by:

Starting Regedit
Go to HKEY_CLASS_ROOT / Unknown
Highlight the Shell Folder below it
Right click on Shell and create a New Key
Name it anything you want (For example NOTEPAD)
Create a New Key under that named command
Highlight the Command key
Double click on the Default value in the right hand panel
In Value Data, enter the path and filename of the program you want to use to open the file type
For example: C:\WINDOWS\NOTEPAD.EXE %1
Click on OK
In this example, when you right click on a file in Explorer, NOTEPAD will show up as an option.


--------------------------------------------------------------------------------

Deleting Registry Keys from the Command Line
Added 11/3/96

With the OEM Version of Windows95, a new switch, /D, is added to Regedit.
This enables you to delete items from Registry.

The syntax is: REGEDIT /L:system.dat_location /R:user.dat_location /D Reg_Key
where Reg_Key is the key you want to delete

There are two requirements:
1. That you have to boot to the same OEM version of Windows95 as the REGEDIT.EXE file.
2. You cannot be in Win95 at the time you use this switch.


--------------------------------------------------------------------------------


Automatic Screen Refresh
Added 10/24/96

When you make changes to your hard drive and use Explorer, the changes are not usually displayed until you press the F5 key
To make the updates automatic:

Start Regedit
Go to HKEY_LOCAL_MACHINE / System / CurrentControlSet / Control / UpdateMode
Edit the DWORD value to be between 1 and 7
Restart Windows

--------------------------------------------------------------------------------


Disable Password Caching
Added 10/19/96

As in Windows for Workgroups, when logging on to an NT Domain, it is preferable to disable password caching.
This allows for the single NT Domain login and eliminates the secondary Windows logon screen.
It also eliminates the possibility of the respective passwords to get out of sync.

To disable password caching on the workstation, a one-line addition to the registry needs to be made.
To make the change, create a ASCII text file called DISABLE.REG with the following lines:

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Network]
"DisablePwdCaching"=dword:00000001


Open up a DOS box and type REGEDIT DISABLE.REG

You can also download the DISABLE.REG file.

If you need to re-enable password caching, download ENABLE.REG and repeat the process just with the different file name


--------------------------------------------------------------------------------

Changing the MaxMTU and other Network Settings
Added 10/19/96

There are four network settings that can be configured so when dialing to an ISP, you should get somewhat greater throughput.
They are the MaxMTU, MaxMSS and DefaultRcvWindow, and DefaultTTL

MaxMTU and MaxMSS

Start REGEDIT
Go to Hkey_Local_Machine / System / CurrentControlset / Services / Class / netTrans / 000n
(where n is your particular network adapter binding.)
Right click on the right panel
Select New / String Value
Type in MaxMTU
Double click on it and enter then the number you want. The usual change is to 576
Similarly, you can add MaxMSS and give it a value of 536
DefaultRcvWindows and DefaultTTL

Start REGEDIT
Go to HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ VxD \ MSTCP
Add a new string DefaultRcvWindow and give it a value of 2144
Add a new string DefaultTTL and give it a value of 60-64

--------------------------------------------------------------------------------


Adding Items to the Start Button
Added 10/17/96

To add items when you right-click on the Start Button:

Start Regedit
Go to HKey_Classes_Root / Directory / Shell
Right-click on Shell and select New / Key
Type in the name of the key and press the Enter key
In the Default name that shows in the right hand panel, you can add a title with a & character in front of the letter for a shortcut
Right-click on the key you just created and create another key under it called command
For the value of this command, enter the full path and program you want to execute
Now when you right click on the Start Button, your new program will show up. You do not need to reboot first.
For example, if you wanted WinWord, you would add that as the first key, the default in the right panel would be &WinWord so when you right click on the Start Button, the W would be underlined and you could just press that key. The command would be something like C:\MSOFFICE\WINWORD\WINWORD.EXE

--------------------------------------------------------------------------------

Removing Open, Explore & Find from Start Button
Added 9/15/96

When you right click on the Start Button, you can select Open, Explore or Find.
Open shows your Programs folder. Explore starts the Explorer and allows access to all drives.
Find allows you to search and then run programs. In certain situations you might want to disable this feature.
To remove them:

Start Regedit
Search for Directory
This should bring you to Hkey_Classes_Root \ Directory
Expand this section by clicking on the "+"
Under shell is Find
Delete Find
Scroll down below Directory to Folder
Expand this section under shell
Delete Explore and Open
Note: - When you remove Open, you cannot open any folders.
If you need to undo any of the changes, you can download the registry settings before the changes.


--------------------------------------------------------------------------------


Removing Items from NEW
Added 7/27/96

When you right-click on the desktop and select New, a list of default templates you can open up are listed.
To remove items from that list:

Start Regedit
Search for the string ShellNew
This should bring you to HKey_Classes_Root
For the items you want to remove, simply rename the ShellNew command
Renaming is safer that deleting it
Continue searching for the items you want to remove
You do not need to reboot for the change to take effect

--------------------------------------------------------------------------------






Google


















Changing the Telnet Scroll-Back Buffer Size
Added 7/27/96

By default, the Telnet session has a window size of 25 lines. To increase this so you can scroll back
and look at a larger number on lines:

Start Regedit
Go to HKEY_CURRENT_USER \ Software \ Microsoft \ Telnet
Double-click on the entry Rows in the right hand panel
Increase the decimal value to one that suits your needs.

--------------------------------------------------------------------------------


Changing the Tips of the Day
Submitted 7/27/96

You can edit the Tips of the day in the Registry by going to:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ explorer \ Tips

Submitted by Jayme Johnston
jayme@excalibur.net


--------------------------------------------------------------------------------


Disabling Drives in My Computer
Added 7/24/96

To turn off the display of local or networked drives when you click on My Computer:

Start Regedit
Go to HKey_Current_User \ Software \ Microsoft \ Windows \ Current Version \ Policies \ Explorer
Add a New DWORD item and name it NoDrives
Give it a value of 3FFFFFF
Now when you click on My Computer, none of your drives will show

--------------------------------------------------------------------------------


Not Saving Setting on Exit
Added 7/21/96


Start Regedit
Go to HKey_Current_User \ Software\ Microsoft \Windows \ Current Version \ Policies \ Explorer
Right click on the right panel and add a New / DWORD
Name it NoSaveSettings
Give it a value of 1
Logoff or Reboot the computer
Download reg file


--------------------------------------------------------------------------------


Not Displaying the Network Neighborhood
Added 7/21/96


Start Regedit
Go to HKey_Current_User \ Software\ Microsoft \Windows \ Current Version \ Policies \ Explorer
Right click on the right panel and add a New / DWORD
Name it NoNetHood
Give it a value of 1
Logoff or Reboot the computer
Download reg file


--------------------------------------------------------------------------------


Disabling Run or Find from the Start Menu
Added 7/21/96

Start Regedit
Go to HKey_Current_User \ Software\ Microsoft \Windows \ Current Version \ Policies \ Explorer
Right click on the right panel and add a New / DWORD
Name it NoFile or NoRun
Give it a value of 1
Logoff or Reboot the computer
Download reg for no_file

Download reg for no_run


--------------------------------------------------------------------------------


Hiding All Icons from the Desktop
Added 7/21/96

Start Regedit
Go to HKey_Current_User \ Software\ Microsoft \Windows \ Current Version \ Policies \ Explorer
Right click on the right panel and add a New / DWORD
Name it NoDesktop
Give it a value of 1
Logoff or Reboot the computer
Now all icons are hidden on the desktop.
Download reg file


--------------------------------------------------------------------------------


Get Your Folders to Open the Way You Want Every Time
Submitted 7/7/96

To get your folders to open the way you want every time:

Set up all your folders the way you want (auto arrange, view, etc.),
Start RegEdit
Go to HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer.
Go to NoSaveSettings
Modify and change Value to 1
Submitted by Dan Poplawski
dan@together.net


--------------------------------------------------------------------------------


Modifying Default Desktop Icons
Added 7/1/96

Start Regedit
Go to HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ explorer \ Shell Icons
The default icons are numbered in the right panel from 0-40
Double click on the number of the particular icon you want to change. See the chart below.
Enter the name of the icon file you want to use followed by the number of the icon in that file.
Note: The numbering starts with zero.
If you use a single .ICO file, it should be followed by a 0.
e.g. - filename.dll,4 - This would actually be the 5th icon since it starts with 0.
Make sure you delete the hidden file C:\WINDOWS\SHELLICONCACHE
Below is a reference for the icons I've been able to figure out:

0 - Default Icon
1 - Default Document
2 - Application
3 - Closed Folder
4 - Open Folder
5 - 5 1/4 Drive
6 - 3 1/4 Drive
7 - Removable Drive
8 - Hard Drive
9 - Network Folder
10 - Network Offline
11 - CD
12 - RAM Drive
13 - Entire Nertwork
15 - My Computer
16 - Printer
17 - Network Neighborhood
18 - Network Workgroup
19-27 are the Start Menu icons
19 - Programs
20 - Desktop
21 - Settings
22 - Find
23 - Help
24 - Run
25 - Suspend
27 - Shutdown

28 - Share
29 - Shortcut
31 - Recycle Bin (Empty)
32 - Recycle Bin (Full)
33 - Folder, Dial-Up Networking
34 - Desktop
36 - Program Group
40 - Audio Card

In addition, you can change:

My Computer - HKEY_CLASSES_ROOT\ CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}
Network Neighborhood - HKEY_CLASSES_ROOT\ CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}
InBox - HKEY_CLASSES_ROOT\ CLSID\{00020D75-0000-0000-C000-000000000046}
Recycle Bin - HKEY_CLASSES_ROOT\ CLSID\{645FF040-5081-101B-9F08-00AA002F954E}

--------------------------------------------------------------------------------


Clearing the Documents Menu Automatically
Added 6/2/96

The Documents Menu displays the last file and programs you used. You can clear item manually but only through editing
the Registry can you turn this off automatically. This can be useful on computers that are used by multiple people.
The same settings can be also used in NT 4.0

Set the properties on the Recycle Bin to delete files immediately.
Start Regedit
Go to HKey_Current_User \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User Shell Folders
Right click on the right panel
Select New / String Value
Rename it to Recent - Only if it is not already there
Give it the value of C:\RECYCLED
Set your Recycle bin to Automatically delete files
Log off and back on again.
Your Documents Menu should now be blank. This will be for all subsequent users who logon as well.


--------------------------------------------------------------------------------

Disabling the Right-Click on the Start Button
Added 6/29/96

Normally, when you right button click on the Start button, it allows you to open your programs folder, the Explorer and run Find.
In situations where you don't want to allow users to be able to do this in order to secure your computer.

Start Regedit
Search for Desktop
This should bring you to HKey_Classes_Root \ Directory
Expand this section
Under Shell is Find
Delete Find
Move down a little in the Registry to Folder
Expand this section and remove Explore and Open
Now when you right click on the Start button, nothing should happen.
You can delete only those items that you need.
Note: - On Microsoft keyboards, this also disables the Window-E (for Explorer) and Window-F (for Find) keys.
See the section on Installation to see how to do this automatically during an install.


--------------------------------------------------------------------------------

Disabling My Computer
Added 6/29/96

In areas where you are trying to restrict what users can do on the computer, it might be beneficial to disable the ability to click on My Computer and have access to the drives, control panel etc.
To disable this:

Start Regedit
Search for 20D04FE0-3AEA-1069-A2D8-08002B30309D
This should bring you to the HKey_Classes_Root \ CLSID section
Delete the entire section.
Now when you click on My Computer, nothing will happen.
You might want to export this section to a registry file before deleting it just in case you want to enable it again..

See the section on Installation to see how to do this automatically during an install.


--------------------------------------------------------------------------------


Changing Desktop Icons
Added 5/28/96

You can change many of the icons that are located on your desktop.

Start Regedit
Search for My Computer or 20D04FE0-3AEA-1069-A2D8-08002B30309D
Expand that key
Highlight Default Icon
Double click on the Default in the right panel
Enter the name of the program with the icon you want to use followed by and command and then the number of the icon (starting with 0)
Some of the additional items that can be searched for are:

Network Neighborhood - HKEY_CLASSES_ROOT\ CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}
InBox - HKEY_CLASSES_ROOT\ CLSID\{00020D75-0000-0000-C000-000000000046}
Recycle Bin - HKEY_CLASSES_ROOT\ CLSID\{645FF040-5081-101B-9F08-00AA002F954E}
Additional icons can be found in:

\WINDOWS\MORICONS.DLL
\WINDOWS\SYSTEM\PIFMGR.DLL
\WINDOWS\SYSTEM\SHELL32.DLL

--------------------------------------------------------------------------------


Opening Explorer from My Computer
Added 5/28/96

By default, when you click on the My Computer icon, you get a display of all your drives, the Control Panel etc. If you would like to have this open the Explorer:

Start Regedit
Search for My Computer or 20D04FE0-3AEA-1069-A2D8-08002B30309D
This should bring you to HKey_Classes_Root \ CLSID
Expand the key {20D04FE0-3AEA-1069-A2D8-08002B30309D}
Right click on Shell
Select New / Key and type Open and press the Enter key
Right click on Open
Select New / Key and type Command and press the Enter key
Double click on the Default for Command and type Explorer.exe for the value
Now when you click on My Computer, the Explorer will start
If you want to return to normal, simply delete the Open key






Google

















--------------------------------------------------------------------------------

Fixing Corrupt Registry
Added 5/12/96

If your registry has gotten corrupted, and re-installing Windows95 over your existing version does not fix the problem,
there is a hidden, read-only, system file on the root of your boot drive called SYSTEM.1ST.
This is the initial system registry created when you first installed Windows95.

To use this file:


Go to your Windows directory
Un-Attrib your current SYSTEM.DAT file (attrib -r -s -h system.dat)
Copy your current SYSTEM.DAT to something like SYSTEM.BAD file (just in case)
Move to your root directory
Un-Attrib the SYSTEM.1ST file
Copy SYSTEM.1ST to \WINDOWS\SYSTEM.DAT
Re-start your system
You will need to install your 32-bit apps and any other programs or changes that modified your system registry
but you will not need to go through a new again. Your 16-bit apps should not need to be re-installed since they do
not modify the registry. You will also retain your current desktop configuration.


--------------------------------------------------------------------------------

Recycle Bin Edits
Submitted 5/2/96

Fooling with the recycle bin. Why not make the icon context menu act like other icon context menu's.

Add rename to the menu:
[HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder]
"Attributes"=hex:50,01,00,20

Add delete to the menu:
[HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder]
"Attributes"=hex:60,01,00,20

Add rename and delete to the menu:
[HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder]
"Attributes"=hex:70,01,00,20

Restore the recycle bin to win 95 defaults including un-deleting the icon after deletion:
... Restore the icon.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop\NameSpace\{645FF040-5081-101B-9F08-00AA002F954E}]
@="Recycle Bin"
... reset win 95 defaults
. [HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder]
"Attributes"=hex:40,01,00,20

Other edits to the recycle bin icon:
[HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder]
"Attributes"=hex:40,01,01,20 ... standard shortcut arrow
"Attributes"=hex:40,01,02,20 ... another shortcut arrow
"Attributes"=hex:40,01,04,20 ... and another shortcut arrow
"Attributes"=hex:40,01,08,20 ... make it look disabled (like it's been cut)

I added the above edits for fun. But it gets you thinking.
Note: Adding rename and delete to the context menu takes effect instantly. To restore the icon after deletion requires screen refresh (F5).
Have fun.... Tom

Submitted by Tom Temple
temple@earthlink.net


--------------------------------------------------------------------------------

Setting the Minimum Password Length
Added 4/29/96

Start Regedit
Go to HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Network
Add a new Binary Value
Rename it to MinPwdLen
Assign it a value equal to your minimum password length
Also see the Installation Section on doing this automatically during installation.


--------------------------------------------------------------------------------

Disabling File and Print Sharing
Added 4/29/96

Start Regedit
Go to HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Network
Add a new DWord Value
Rename it to NoPrintSharing or NoFileSharing
Assign it a value of 1
Also see the Installation Section on doing this automatically during installation.


--------------------------------------------------------------------------------

Specifying programs to run every time Windows95 starts
Added 4/21/96

If you want to start programs every time Windows95 runs, but would like to hide them from users
by not having the listed in the Startup folder or the WIN.INI file, you can have them load through the registry.

Start Regedit
Go to HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run or RunOnce
Right click on the right panel
Select New / String Value
Type in any name
For the value, enter the path and executable for the program you want to run.

--------------------------------------------------------------------------------

Removing the Shortcut Icon Arrows
Added 4/21/96

Open REGEDIT.EXE
Open the Key HKEY_CLASSES_ROOT
Open the Key LNKFILE
Delete the value IsShortcut
Open the next Key PIFFILE
Delete the value IsShortcut
Restart the Win95

--------------------------------------------------------------------------------

Turn Off Window Animation
You can shut off the animation displayed when you minimize and maximize windows.
Added 4/21/96

Open Regedit
HKEY_CURRENT_USER
Control panel
Desktop
WindowMetrics
Right Mouse Click an empty space in the right pane.
Select new string value.
Name the new value MinAnimate.
Doubleclick on the new string value (MinAnimate) and click on "Modify"
Enter a value of 0 for Off or 1 for On then hit Enter
Close Regedit and all programs then reboot.
Download reg file







Google

















--------------------------------------------------------------------------------


To speed up the Start Menu
Added 4/21/96

Start the REGEDIT program
Search for the word desktop
This should be in HKEY_CLASSES_ROOT / CLSID / {00021400...
Right Click on the right panel
Pick NEW / String Value.
Name it MenuShowDelay, all one word.
Select a value from 1-10, 1 being the fastest.
Exit REGEDIT
Restart Windows

--------------------------------------------------------------------------------

Changing your Modem's Initialization String
Added 4/21/96

Start REGEDIT
Go to HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Class \ Modem \ 0000 \ Init
Change the settings to the new values

--------------------------------------------------------------------------------


Increasing the Modem Timeout
Added 4/21/96

If your modem it timing out during file transfers or loading Web Pages,
you might try increasing the timeout period.

To change it:

Start Regedit
Go to HKEY_LOCAL_MACHINE / System / CurrentControlSet / Services / Class / Modem / XXXX / Settings
Where XXXX is the number of your modem
Move to the right panel and double click on Inactivity Timeout
The number of minutes for a timeout should be entered between the brackets.
For example, a US Robotics Sportster could have S19=<30> to set it to 30 minutes.

--------------------------------------------------------------------------------


Removing Programs listed from the Control Panel's Add/Remove Programs Section
Added 4/21/96

If you remove an installed program and its files by deleting the files,
it may still show up in the Add/Remove programs list through the control panel.
In order to remove it from the list (so you don't need to re-install in order to just remove it again).

Start the Registry Editor
Open HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion / Uninstall
Delete any programs here.
This will only delete them from the list, not delete the actual programs.
Only programs designed for Windows95 will show up here in the first place.


--------------------------------------------------------------------------------