Tuesday, April 20, 2010

Hackers F.A.Q

Original Source : http://www.seebs.net/faqs/hacker.html

The following list is an attempt to cover some of the issues that will invariably come up when people without previous experience of the hacker community try to hire a hacker. This FAQ is intended for free distribution, and may be copied as desired. It is in an early revision. If you wish to modify the FAQ, or distribute it for publication, please contact the author. The author is seebs@plethora.net. The official distribution site (as of revision 0.05) is "http://www.plethora.net/~seebs/faqs/hacker.html".

DISCLAIMER: The author is a hacker. Bias is inevitable.

This document is copyright 1995, 1996, 1998, 1999 Peter Seebach. Unaltered distribution is permitted.

Revision 0.05 - Last modified September 28, 1999
Questions and Answers:

Section 0: Basic understanding.

0.0: Won't my hacker break into my computer and steal my trade secrets?
        No. Hackers aren't, contrary to media reporting, the people who break into computers.
        Those are crackers. Hackers are people who enjoy playing with computers. Your hacker
        may occasionally circumvent security measures, but this is not malicious; she just does it
        when the security is in her way, or because she's curious.

0.1: Was it a good idea to hire a hacker?
       It depends on the job. A hacker can be dramatically more effective than a non-hacker at
       a job, or dramatically less effective.
    
       Jobs where hackers are particularly good are:
              * Systems administration
              * Programming
              * Design

       Jobs where hackers are particularly bad are:
              * Data entry
    
       More generally, a job that requires fast and unexpected changes, significant skill, and
       is not very repetitive will be one a hacker will excel at. Repetitive, simple jobs are a
       waste of a good hacker, and will make your hacker bored and frustrated. No one works
       well bored and frustrated.

       The good news is, if you get a hacker on something he particularly likes, you will
       frequently see performance on the order of five to ten times what a "normal" worker
       would produce. This is not consistent, and you shouldn't expect to see it all the time,
       but it will happen. This is most visible on particularly difficult tasks.

0.2: How should I manage my hacker?
       The same way you herd cats. It can be a bit confusing; they're not like most other
       workers. Don't worry! Your hacker is likely to be willing to suggest answers to
       problems, if asked. Most hackers are nearly self-managing.

0.3: Wait, you just said "10 times", didn't you? You're not serious, right?
       Actually, I said "ten times". And yes, I am serious; a hacker on a roll may be able to
       produce, in a period of a few months, something that a small development group
       (say, 7-8 people) would have a hard time getting together over a year. He also may
       not. Your mileage will vary.

       IBM used to report that certain programmers might be as much as 100 times as
       productive as other workers, or more. This kind of thing happens.

0.4: I don't understand this at all. This is confusing. Is there a book on this?
       Not yet. In the meantime, check out The New Hacker's Dictionary (references below;
       also known as "the jargon file"), in particular some of the appendices. The entire work
       is full of clarifications and details of how hackers think.

Section 1: Social issues

1.0: My hacker doesn't fit in well with our corporate society. She seems to do her work well,
       but she's not really making many friends. This is common. Your hacker may not have found
       any people around who get along with hackers. You may wish to consider offering her a
       position telecommuting, or flexible hours (read: night shift), which may actually improve her
       productivity. Or hire another one.

1.1: My hacker seems to dress funny. Is there any way to impress upon him the importance
       of corporate appearance?
       Your hacker has a very good understanding of the importance of corporate appearance.
       It doesn't help you get your job done. IBM, Ford, and Microsoft have all realized that
       people work better when they can dress however they want. Your hacker is dressed
       comfortably. A polite request to dress up some for special occasions may well be honored,
       and most hackers will cheerfully wear clothes without (unintentional) holes in them if
       specifically asked.

1.2: My hacker won't call me by my title, and doesn't seem to respect me at all.
       Your hacker doesn't respect your title. Hackers don't believe that management is "above"
       engineering; they believe that management is doing one job, and engineering is doing
       another. They may well frequently talk as if management is beneath them, but this is really
       quite fair; your question implies that you talk as if engineering is beneath you. Treat your
       hacker as an equal, and she will probably treat you as an equal -- quite a compliment!

1.3: My hacker constantly insults the work of my other workers.
       Take your hacker aside, and ask for details of what's wrong with the existing work.
       It may be that there's something wrong with it. Don't let the fact that it runs most of
       the time fool you; your hacker is probably bothered by the fact that it crashes at all.
       He may be able to suggest improvements which could dramatically improve
       performance, reliability, or other features. It's worth looking into.

       You may be able to convince your hacker to be more polite, but if there appear to
        be major differences, it's quite possible that one or more of your existing staff are
        incompetent. Note that hackers, of course, have different standards of competence
        than many other people. (Read "different" as "much higher".)

Section 2: Productivity.

2.0: My hacker plays video games on company time.
       Hackers, writers, and painters all need some amount of time to spend "percolating"
       -- doing something else to let their subconscious work on a problem. Your hacker
       is probably stuck on something difficult. Don't worry about it.

2.1: But it's been two weeks since I saw anything!
      Your hacker is working, alone probably, on a big project, and just started, right?
      She's probably trying to figure it all out in advance. Ask her how it's going; if she
      starts a lot of sentences, but interrupts them all with "no, wait..." or "drat, that won't work",
      it's going well.

2.2: Isn't this damaging to productivity?
       No. Your hacker needs to recreate and think about things in many ways. He will be
       more productive with this recreation than without it. Your hacker enjoys working;
       don't worry about things getting done reasonably well and quickly.

2.3: My hacker is constantly doing things unrelated to her job responsibilities.
       Do they need to be done? Very few hackers can resist solving a problem when they
       can solve it, and no one else is solving it. For that matter, is your hacker getting her
       job done? If so, consider these other things a freebie or perk (for you). Although it
       may not be conventional, it's probably helping out quite a bit.

2.4: My hacker is writing a book, reading USENET news, playing video games, talking
       with friends on the phone, and building sculptures out of paper clips. On company
       time!
       He sounds happy. The chances are he's in one of three states:

       1. Basic job responsibilities are periodic (phone support, documentation, et al.) and
           there's a lull in incoming work. Don't worry about it!
       2. Your hacker is stuck on a difficult problem.
       3. Your hacker is bored silly and is trying to find amusement. Perhaps you should
            find him more challenging work?

       Any of these factors may be involved. All of them may be involved. In general, if the
       work is challenging, and is getting done, don't worry too much about the process.
       You might ask for your corporation to be given credit in the book.

2.5: But my other workers are offended by my hacker's success, and it hurts their
       productivity.
       Do you really need to have workers around who would rather be the person getting
       something done, than have it done already? Ego has very little place in the workplace.
       If they can't do it well, assign them to something they can do.

Section 3: Stimulus and response

3.0: My hacker did something good, and I want to reward him.
       Good! Here are some of the things most hackers would like to receive in exchange
       for their work:

       1. Respect.
       2. Admiration.
       3. Compliments.
       4. Understanding.
       5. Discounts on expensive toys.
       6. Money.

      These are not necessarily in order. The 4th item (understanding) is the most difficult.
      Try to remember this good thing your hacker just did the next time you discover he
      just spent a day playing x-trek. Rather than complaining about getting work done,
      write it off as "a perk" that was granted (informally) as a bonus for a job well done.
      Don't worry; hackers get bored quickly when they aren't doing their work.

3.1: My hacker did something bad, and I want to punish him.
       Don't. 30 years of psychological research has shown that punishment has no desirable
       long-term effects.Your hacker is not a lab rat. (Even if he were a lab rat, punishment
       wouldn't work; at least, not if he were one of the sorts of lab rats the psych research
       was done on.) If you don't like something your hacker is doing, express your concerns.
       Explain what it is that bothers you about the behavior.

       Be prepared for an argument; your hacker is a rational entity, and presumably had
       reasons. Don't jump on him too quickly; they may turn out to be good reasons.

       Don't be afraid to apologize if you're wrong. If your hacker admits to having been
       wrong, don't demand an apology; so far as the hacker is concerned, admitting to
       being wrong is an apology, most likely.

3.2: I don't get it. I offered my hacker a significant promotion, and she turned it down
       and acted offended.
       A promotion frequently involves spending more time listening to people describing
       what they're doing, and less time playing with computers. Your hacker is enjoying
       her work; if you want to offer a reward, consider an improvement in title, a possible
       raise, and some compliments. Make sure your hacker knows you are pleased with
       her accomplishments -- that's what she's there for.

3.3: My company policy won't let me give my hacker any more raises until he's in
       management.
       Your company policy is broken. A hacker can earn as much as $200 an hour
       (sometimes more) doing freelance consulting. You may wish to offer your hacker a
       contracted permanent consulting position with benefits, or otherwise find loopholes.
       Or, find perks to offer - many hackers will cheerfully accept a discount on hardware
       from their favorite manufacturer as an effective raise.

3.4: I can't believe the hacker on my staff is worth as much as we're paying.
       Ask the other staff in the department what the hacker does, and what they think
       of it. The chances are that your hacker is spending a few hours a week answering
       arcane questions that would otherwise require an expensive external consultant.
       Your hacker may be fulfilling another job's worth of responsibilities in his spare time
       around the office. Very few hackers aren't worth what they're getting paid; they enjoy
       accomplishing difficult tasks, and improving worker efficiency.

Section 4: What does that mean?

4.0: My hacker doesn't speak English. At least, I don't think so.
       Your hacker is a techie. Your best bet is to pick up a copy of TNHD
       (The New Hacker's Dictionary). It can be found as http://catb.org/esr/jargon
       (last I checked) or from a good bookstore. If you have trouble understanding that
       reference, ask your hacker if she has a copy, or would be willing to explain her terms.
       Most hackers are willing to explain terms. Be ready for condescension; it's not intended
       as an insult, but if you don't know the words, she probably has to talk down to you at
       first to explain them.

       It's a reasonably difficult set of words; there are a lot of them, and their usage is much
       more precise than it sounds. Hackers love word games. [It is also possible that English
       is not your hacker's native language, and that it's not yours either. Feel free to substitute
       a more appropriate language.]

4.1: I can't get an estimate out of my hacker.
       Your hacker hasn't figured out how hard the problem is yet. Unlike most workers,
        hackers will try very hard to refuse to give an estimate until they know for sure that
        they understand the problem. This may include solving it.

       No good engineer goes beyond 95% certainty. Most hackers are good engineers.
       If you say you will not try to hold him to the estimate (and mean it!) you are much more
       likely to get an approximate estimate.
       The estimate may sound very high or very low; it may be very high or very low. Still,
       it's an estimate, and you get what you ask for.

4.2: My hacker makes obscure, meaningless jokes.
       If you feel brave, ask for an explanation. Most of them can be explained. It may take
       a while, but it may prove interesting.

4.3: My hacker counts from zero.
       So does the computer. You can hide it, but computers count from zero. Most hackers
       do by habit, also.

       If you found this information useful, please consider sending a token donation to the author; email for details. You might also consider buying a couple of books through my "affiliate program" link; you get cool books, I get pocket change. :)
Recommended books:

The links in this section will all try to take you to Powell's, where you can spend your money on cool books.

The Cathedral & the Bazaar (Eric Raymond) - a discussion of different ways of building systems.

The New Hacker's Dictionary (Eric Raymond) - a great source of trivia, lore, and translations for difficult concepts. (Not always in stock, I'm afraid.)

Comments about this page can be sent to
seebs@plethora.net

Last but not least : "Who are you?"


Read more!

Wednesday, March 31, 2010

Matematika Dasar <27 Mar 2010>


Kali ini saya akan mencoba membantu teman-teman yang kesulitan memahami pelajaran matematika dasar pada pertemuan 27 Mar 2010 kemarin.


Pelajaran kemarin adalah tentang perpangkatan dan akar, dimana pada pembahasan pangkat dan akar ini yang paling penting adalah penguasaan sifat dan pengertian basis bilangan pangkat. Mari kita melihat contoh pertama :

32 = 9


Dari contoh di atas angka '3' adalah basis pangkat dan angkat '2' adalah pangkatnya.

Ini adalah contoh kedua :

38 = 2

Dari contoh kedua di atas, angka '3' adalah pangkat, dan angkat '2' adalah basis. Karena, 23 = 8.

untuk sifat-sifat dasar perpangkatan ini temen-temen dapat mencari di internet atau mengunduh modul mata kuliah Matematika Dasar tanggal 27 Mar 2010. Untuk situs internet, saya menemukan satu situs yang cukup jelas dan temen-temen dapat pelajari.

Adapun tips-tips untuk menyelesaikan penyederhanaan persamaan perpangkatan adalah :

  1. Sederhanakan bentuk yang ada di dalam kurung.
  2. Setelah bentuk di dalam kurung cukup sederhana, lepaskan semua bentuk kurung.
  3. Setelah tidak ada kurung dalam persamaan, kelompokan bilangan / variable dengan basis yang sama untuk mempermudah pengerjaan selanjutnya.
  4. Ubah semua pembagian menjadi perkalian.
  5. Karena dalam persamaan sudah menjadi perkalian, maka setiap pangkat dengan basis yang sama cukup kita selesaikan dengan menjumlah pangkat-pangkat setiap basis vilangan.
  6. Setelahnya cukup selesai kan persamaan.
Sekian dulu untuk kali ini. :)


Read more!

Wednesday, March 24, 2010

Matematika Dasar <20 Mar 2010> bag. 3

Hexadecimal

Hexadecimal adalah sistem bilangan berbasis 16 adapun anggota sistem bilangan ini adalah 0,1,2,3,4,5,6,7,8,9,A (10),B (11),C (12),D (13),E (14) dan F (15). Bilangan hexadecimal biasa dinotasikan dengan X16.

Konversi Hexadecimal ke Decimal
Cara untuk konversi bilangan Decimal ke Octal hampir sama dengan konversi bilangan decimal ke binary seperti yang saya beritahu pada bahasan sebelumnya. Caranya adalah seperti berikut :
25510 = ....16
     255
16 ------- 15   (Hexadecimal digit ke-2 dari kiri, '15' dalam hexadecimal adalah 'F')
      15        (Hexadecimal digit ke-1 dari kiri, '15' dalam hexadecimal adalah 'F')


Jadi 25510 = FF16
Konversi Hexadecimal ke Decimal

Untuk konversi Octal ke decimal pun hampir sama dengan konversi bilangan biner ke decimal seperti yang saya beritahu pada bahasan sebelumnya. Adapun caranya adalah seperti berikut :
FF16 = ... 10
F
F
=...10
xx
161
160


1515
=...10
xx
16
1


Jadi :
FF16 = (15 x 16) + (15 x 1)
FF16 = 240 + 15
FF16 = 25510
Konversi Hexadecimal ke Binary
Konversi bilangan Hexadecimal ke binay dapat dilakukan secara langsung. Hal ini dikarenakan bilangan basis bilangan untuk kedua sistem tersebut merupakan persekutuan. Binary adalah sistem bilangan berbasis '2' dan Hexadecimal adalah sistem bilangan berbasis '16', dimana 16 = 24. Adapun konversi bilangan Hexadecimal ke binary dapat dilakukan dengan cara di bawah ini :

F ( 15 )
F ( 15 )
=...2
x
x
2322212022222120

Kita harus merubah setiap digit Octal ke dalam binary. Contoh :
Untuk hexadecimal digit pertama dari kiri :
F ( 15 ) = (1 x 23) + (1 x 22) + (1 x 21) + (1 x 20)
Untuk hexadecimal digit kedua dari kiri :
F ( 15 ) = (1 x 23) + (1 x 22) + (1 x 21) + (1 x 20)

Dari penjabaran di atas, kita mendapatkan digit-digit binary (bit) untuk setiap digit bilangan hexadecimal FF16, yaitu : '1111' untuk 'F' pertama dari kiri pada bilang Hexadecimal dan 1111 untuk 'F' kedua dari kiri pada bilangan Hexadecimal. Bila digabungkan kita dapat hasil konversi dari FF16 ke binary yaitu 111111112.

Binary ke Octal atau Hexadecimal


  • Konversi binary ke octal atau hexadecimal sangat mudah hanya tinggal merangkai digit-digit binary (bit) sesuai dengan basis yang diinginkan.
    Contoh :
    111111112 = ... 8
    Karena 8 = 2 3, maka untuk konversi binary ke octal kita hanya perlu merangkai bit-bit itu menjadi blok-blok terpisah. Blok-blok itu sendiri terdiri dari 3 bit mulai dari Kanan.
    11.111.1112 = (1 x 21) + (1 x 20).(1 x 22) + (1 x 21) + (1 x 20).(1 x 22) + (1 x 21) + (1 x 20)=3.7.7
    Lalu kita lepaskan titik-titik penanda blok dan kita mendapatkan versi octal dari binary 111111112 yaitu '3778'
  • Demikan pula konversi dari binary ke Hexadecimal, perbedaannya hanya kita membagi blok-blok dalam binary menjadi setiap 4 bit dari Kanan.


Tips :
  • Karena semua sistem bilangan yang dipelajari dapat di konversi 'dari' dan 'ke' binary, maka jika mengkonversi satu sistem bilangan ke yang lain, akan sangat lebih mudah jika kita konversikan dulu bilangan yang akan di konversi ke dalam binary. Contoh :
    Konversi Octal ke Hexadecimal :
    778 = ... 16
    Langkah mudah adalah konversi octal ke binary, lalu binary ke hexadecimal.


Read more!

Tuesday, March 23, 2010

Matematika Dasar <20 Mar 2010> bag. 2

Octal


Octal adalah sistem bilangan berbasis 8 yang anggota bilangannya adalah 0,1,2,3,4,5,6, dan 7. Bilangan octal biasa dituliskan dengan notasi X8. Contoh : 728.
Konversi Decimal ke Octal

Cara untuk konversi bilangan Decimal ke Octal hampir sama dengan konversi bilangan decimal ke binary seperti yang saya beritahu pada bahasan sebelumnya. Caranya adalah seperti berikut :
6310 = ....8
    63
8 ------ 7  (Octal digit ke-2 dari kiri)
     7      (Octal digit ke-1 dari kiri)

Jadi 6310 = 77.8
Konversi Octal ke Decimal

Untuk konversi Octal ke decimal pun hampir sama dengan konversi bilangan biner ke decimal seperti yang saya beritahu pada bahasan sebelumnya. Adapun caranya adalah seperti berikut :
2148 = ... 10
2
1
4
=...10
xxx
82
81
80


21
4
=...10
xxx
64
8
1


Jadi :
2148 = (2 x 64) + (1 x 8) + (4 x 1)
2148 = 128 + 8 + 4
2148 = 13610


Konversi Octal ke Binary

Konversi bilangan Octal ke binay dapat dilakukan secara langsung. Hal ini dikarenakan bilangan basis bilangan untuk kedua sistem tersebut merupakan persekutuan. Binary adalah sistem bilangan berbasis '2' dan Octal adalah sistem bilangan berbasis '8', dimana 8 = 23. Adapun konversi bilangan Octal ke binary dapat dilakukan dengan cara di bawah ini :

2
1
4
=...2
x
xx
22212022212022
21
20


Kita harus merubah setiap digit Octal ke dalam binary. Contoh :
Untuk octal digit pertama :
2 = (0 x 22) + (1 x 21) + (0 x 20)
Untuk octal digit kedua :
1 = (0 x 22) + (0 x 21) + (1 x 20)
Untuk octal digit ketiga :
4 = (1 x 22) + (0 x 21) + (0 x 20)

Dari penjabaran di atas, kita mendapatkan digit-digit binary (bit) untuk setiap digit bilangan octal 2148, yaitu : 010 (untuk '2' pada bilang octal) 001 (untuk '1' pada bilangan octal) 100 (untuk '4' pada bilangan oktal). Bila digabungkan kita dapat hasil konversi dari 2148 ke binary yaitu 0100011002.


Read more!

Monday, March 22, 2010

Matematika Dasar <20 Mar 2010> bag. 1

Pelajaran "System Bilangan dalam Teknologi Komputer". Dalam teknologi komputer ada 4 sistem
bilangan, yaitu :

  1. Binary (sistem bilangan basis 2), bilangan anggotanya adalah 0 dan 1.
  2. Oktal (sistem bilangan basis 8), bilangan anggotanya adalah 0,1,2,3,4,5,6, dan 7.
  3. Decimal (sistem bilangan basis 10), inilah sistem bilangan yang kita pakai sehari-hari. adapun bilangan anggotanya adalah 0,1,2,3,4,5,6,7,8, dan 9.
  4. Hexadecimal (sistem bilangan basis 16), bilangan anggotanya adalah 0,1,2,3,4,5,6,7,8,9,A (10),B (11),C (12),D (13),E (14) dan F (15).

Binary ( Biner )


Untuk setial digit dalam sistem bilangan binary, disebut 'bit' yang merupakan kepanjangan dari 'Binary Digit'. Adapun contoh bilangan binary adalah '101001' yang jika dalam hitungan kita sehari-hari ( sistem bilangan decimal) bernilai '41'.

Konversi Decimal ke Binary
bilangan_decimal
2 (dibagi '2' karena berbasis '2' ) -------------------- sisa_pembagian
nilai_pembagi

   41
2 ----- 1 (bit ke-6 dari kiri)
   20
2 ----- 0 (bit ke-5 dari kiri)
   10
2 ----- 0 (bit ke-4 dari kiri)
    5
2 ----- 1 (bit ke-3 dari kiri)
    2
2 ----- 0 (bit ke-2 dari kiri)
    1     (bit ke-1 dari kiri)

Setelah tidak dapat di bagi oleh 2 lagi, maka kita dapatkan bit-bit dari bilangan decimal yang kita tentukan. Maka '41' (decimal) dalam biner adalah '101001'.
Konversi Binary ke Decimal

Yang perlu di lakukan adalah menjumlah hasil perkalian setiap digit bilangan dengan pangkat-pangkat basis sistem bilangan biner dimulai dari pangkat 0 dari bit yang paling kanan.
Contoh :

101001=...10
xxxxxx
252423222120

101001=...10
xxxxxx
32168421

Jadi :

101001 = (1 x 32) + (0 x 16) + (1 x 8) + (0 x 4) + (0 x 2) + (1 x 1)
101001 = 32 + 0 + 8 + 0 + 0 + 1
101001 = 4110


Read more!