Computing Culture: What's Hacker?

Perm url with updates: http://xahlee.org/Netiquette_dir/whats_hacker.html

Computing Culture: What's Hacker?

Xah Lee, 2011-06-04

Xah Lee wrote:

(i despise hacker culture, where these “hackers” idiotic-namesake prefer to go by “handles” or abbrevs (e.g. “RMS”, “ESR”, “JWZ”) or whatnot insider-fashion fuck. But that's just me.)

“Pascal J. Bourguignon” 〔p...@informatimago.com〕 wrote:

If you despite hacker culture why do you stick with us all the time? Are you masochist?

Shut down you computer and go meet other people with another culture!

There is a substantial number of programers in this world, who truely enjoy programing, and all sorts of computing technologies, hardware and or software, digging into their innards. This group of people, some are computer scientists, some pro programers, some amature programers, very diverse. This is a group i belong to.

Now, in this group of people, there is a sub-group, who share certain styles, personalities, propensities, in their activities or outlook in computing. This group is the “hacker” subculture i refer to.

Note that there's no clear-delineated definition. But roughly: Richard Stallman generation at MIT, people who thrive with {perl, unix, C}, usually fall into this group. It's hard to come up with even a rough definition, but the best i can think of is: those who enjoy the word “hacking” or “hacker”. e.g. they like to call a enjoyable programing session as hacking, they refer esteemed peers as “hacker”, they simply enjoy all connotations afforded by that word, but they absolutely hate how journalists or laymen use the word “hack” to mean what they would call “crack”, and often go at lengths to speak against such usage.

Here's what Wikipedia has to say about the term “hacker”: Hacker (term). Here's a excerpt:

Hacker is a term that has been used to mean a variety of different things in computing. Depending on the context, the term could refer to a person in any one of several distinct (but not completely disjoint) communities and subcultures:[1]

• A community of enthusiast computer programmers and systems designers, originated in the 1960s around the Massachusetts Institute of Technology's (MIT's) Tech Model Railroad Club (TMRC) and MIT Artificial Intelligence Laboratory.[2] This community is notable for launching the free software movement. The World Wide Web and the Internet itself are also hacker artifacts.[3] The Request for Comments RFC 1392 amplifies this meaning as "[a] person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular." See Hacker (programmer subculture).

• The hobbyist home computing community, focusing on hardware in the late 1970s (e.g. the Homebrew Computer Club[4]) and on software (computer games,[5] software cracking, the demoscene) in the 1980s/1990s. The community included Steve Jobs, Steve Wozniak and Bill Gates and created the personalcomputing industry.[6] See Hacker (hobbyist).

• People committed to circumvention of computer security. This primarily concerns unauthorized remote computer break-ins via a communication networks such as the Internet (Black hats), but also includes those who debug or fix security problems (White hats), and the morally ambiguous Grey hats. See Hacker (computer security).

Today, mainstream usage of “hacker” mostly refers to computer criminals, due to the mass media usage of the word since the 1980s. …

The first definition is in our context. Wikipedia has a dedicated article on that: Hacker (programmer subculture), which elicits the Jargon File, and also has sections on “Ethics and Principles”, “Artifacts and Customs”.

It is this group of people, i despise. More accurately: i despise their general style and outlook. I despite them. Fuck them. FUCK hackers. FUCK their hacking. Fuck their mothers. Scumbags.

These hackers, a large percentage of them, also are what i call Tech Geekers. Here are related articles about tech geekers and hackers.


[This is originally posted to comp.lang.lisp newsgroup. groups.google.com]


How to Change Firefox Mouse Wheel Scroll Speed?

Perm url with updates: http://xahlee.org/mswin/Firefox_mouse_wheel_scroll_speed.html

How to Change Firefox Mouse Wheel Scroll Speed?

Xah Lee, 2011-05-30

  • ① In the url field, type about:config.
  • ② Scroll down to “mousewheel.withnokey.sysnumlines”. Double-click the line to set the value to “false”.
  • ③ Double-click the line “mousewheel.withnokey.numlines”, and set it to a number you like.

The change is immediate. You don't need to restart Firefox. This works in Linux too.

In a similar way, you can get mouse wheel to scroll one-page at a time. You can also adjust the mouse wheel tilt to do page up/down instead of horizontal scroll.

Set Mouse Wheel To Page Up/Down

  • ① Click on “mousewheel.withnokey.action” line.
  • ② Set the value to 1.

This will make the scroll wheel to go by pages.

Tech Detail

Here's tech detail, from the official doc at http://kb.mozillazine.org/About:config_entries.

mousewheel.* settings:

These fall into two groups: vertical and horizontal scrolling. The general form is:

  • mousewheel.‹modifier key›.‹type›
  • mousewheel.horizscroll.‹modifier key›.‹type›

The ‹modifier key› key is one of: “withaltkey”, “withcontrolkey”, “withmetakey”, “withnokey”, “withshiftkey”

Type is then one of: “action”, “numlines”, “sysnumlines”.


integer value that determines the type of action:

  • 0 - Scroll document by a number of lines (given by the numlines property)
  • 1 - Scroll document by one page
  • 2 - Move back/forward in history
  • 3 - Make text larger/smaller
  • 4 - Scroll document by a number of pixels (given by the numlines property)


number of lines to scroll by if action is set to value 0, or pixels if action is set to value 4; otherwise, this value is ignored.


use system preferences to determine how many lines to scroll by

How Does Keybinding Works in Gnome?

How Does Keybinding Works in Gnome?

Ok, i need some help to get me quickly started on modefiying keybindings in Ubuntu Linux (11.04) running Gnome.

I don't have much linux expertise, but unix. However, my unix know-how is old school, command-line only, 10 years old, and i don't even use X11 back then.

With linux today, there's a few layers i think. Used to be, when you boot unix, you type startx if you want to start X11. Then, you can use xmodmap to modify your keys. Even that i haven't done much with it except running this file dvorakKeymap.txt which i got somewhere.

The 2 GUI apps i explored from the system pref panel: “gnome-keybinding-properties” and “gnome-keyboard-properties” don't seem to be able to do what i want.

So, here's my questions.

• I want the Menu key (aka App key) to be Hyper. How to do that?

• In emacs 23 with -Q, the Menu key is execute-extended-command. I'm not sure how it became that. Any idea? I want caps lock to be execute-extended-command. Is that possible in X11+Gnome+emacs? or do i need some other util?

• According to the keyboard layout display, Gnome says my Win key is Super and Caps Lock is Hyper, but in emacs 23 -Q, emacs reports both to be Hyper. The gnome-keybinding-properties is kinda confusing. According to its GUI, it doesn't seem possible to set Caps Lock, or Win, Menu, independently.

• How to change the Win key to Super or Hyper?

• Is it possible to define app-specific key macros? For example, i want the substract (-) key on keypad to type Ctrl+w (close tap) in Firefox, and the / and * keys to be 【Ctrl+PageUp】 (prev tab) and 【Ctrl+PageDn】 (next tap). (i know this is possible by modding Firefox config files, but i want general X11 mechanism because i need to do this for other apps.)

• It seems gnome save key config files in 〔/home/ubuntu/.gconf/apps〕 and 〔/home/ubuntu/.gnome2〕, but there's bewildering number of files there. Is there a documentation somewhere? (am interested at least for the key config part generated by the gnome keybinding apps. The Help documentation stops at gradma level. 「man gnome-keybinding-properties」 doesn't return anything.)

Also, are these gnome apps (gnome-keybinding-properties, gnome-keyboard-properties) working on top of x11's xmodmap or something independent? I don't see any X11 config file in my home dir at all.

any tip, or pointer to quickly understand how key works in linux today would be appreciated. thanks.



Unix tools on Windows: Cygwin vs VirtualBox

Perm url with updates: http://xahlee.org/comp/cygwin_vs_virtualbox.html

Unix tools on Windows: Cygwin vs VirtualBox

Xah Lee, 2011-05-29

Emacs in Linux is just so much better than emacs in Windows. Been using emacs in Windows for the past 2 years. One major problem is that, when running bash inside emacs, you cannot run commands such as rsync. It won't work. But it does in Linux (or Mac OS X) of course. I MISSED that!!

So, if i ever get my PC fixed and back to Windows, i think i'll stop using Cygwin, but instead, get some VM such as VirtualBox and run linux with emacs inside it. I think it'd be better than running emacs Windows binary or cygwin unix tools. I think my realization is this:

If you need unix tools on Windows such as bash, ssh, rsync, grep, perl, imagemagic, etc as a user but you don't have a need of porting unix software to Windows, then i think a virtual machine solution might be better than cygwin. Both will have a slowness penalty, because it's not native. With emacs and cygwin, you go thru several layers to the Windows API. There's a lot impedance mismatch. With hardware emulation, you run whole linux inside it, so all unix apps work coherently. You can run shell inside emacs, install apps in a breeze by apt-get (or whatever is your linux distro method). I'm guessing, overall, running unix apps thru virtual machine may be faster than thru cygwin layer to Windows API. I'll have to actually try it to know for sure.

2011-06-27 PS the above is guesswork. I've been using cygwin on Windows for 10 years (on and off). I need more tools from unix than MinGW. However, i have not used VirtualBox as a unix tool on Windows for real.

See also: Installing Cygwin Tutorial.

Other opinions: Is Cygwin the best Unix environment for Windows? @ Source superuser.com

PS if you use a lot unix tools on Windows, and have experience on Cygwin vs VirtualBox+Linux, i'd love to hear your experience. (note: direct port of each util (e.g. unixutils) is out except few big packages such as perl, python; because i really need a lots of unix tools, many doesn't have direct win port. MinGW/MSYS is also out for the same reason.)

For completeness, here a list of alternatives to cygwin:

  • UnxUtils (collection of independent ports of each unix util) I tried it. Kinda badly outdated and not well maintained.
  • Microsoft Windows Services for UNIX and Interix (Microsoft's offer. Part of Windows Server/Enterprise editions. Originally independent.)
  • MinGW. Originally a subset of Cygwin, designed for developers who wants to port unix apps.
  • VirtualBox+Linux.

Logitech Mouse with Spinning Flywheel

Perm url with updates: http://xahlee.org/kbd/mouse_with_spinning_flywheel.html

Logitech Mouse with Spinning Flywheel

Xah Lee, 2011-05-29

Discovered a mouse with spinning wheels.

Its wheel has 2 modes. Freespin vs Notched. The wheel actually is designed differently. The wheel is made of solid metal (so it's heavy), so it can spin with momentum like a flywheel. In spin mode, it can keep spinning for a few secs. Neat!

The mouse is made by Logitech. They have a few models with this wheel, all wireless:

  • “Logitech Anywhere Mouse MX” (full sized; overall symmetric) amazon
  • “Logitech VX Revolution mouse” (smaller; laptop use) amazon
  • “Logitech Performance Mouse MX” (full sized; for right hand; rechargeable) amazon
logitech anywhere mouse mx-s

“Logitech Anywhere Mouse MX” amazon

logitech mouse mx-s

“Logitech Performance Mouse MX” amazon

Also interesting is that these days the transceiver (the usb) size is no bigger than a penny. My wireless mouse, of 2004 era, the transceiver is as big as the mouse itself.

Also, some of them has a zoom slider on the mouse. From reading their marketing material, i realized that zoom is important not just browsing web, but i guess these days, viewing photos collections is a frequent activity. (This realization answered a question i had recently, see: Keyboard Evolution: Zoom Button, Dedicated Keys.)

Their cheapest one, a wireless one, is only $12 ! “Logitech V220 Cordless Optical Mouse” amazon. I remember i got my wireless mouse around 2005 for like $50.

While reading about Logitech mouses, i discovered, that a discontinued product but loved by people, the “MX Revolution” amazon is going at above $200 on amazon now. This is the demand-n-supply theory at work. Same thing happened with the long-discontinued Microsoft Trackball Explorer, that you can see going for $200 or more on ebay or amazon. (See: Best Trackball Mouse.) The MX Revolution has a second scroll wheel on the side. I think i'd love that.

Backspace key; Computer Keyboard Key Label's Influence on Key Purpose

Perm url with updates: http://xahlee.org/kbd/keyboard_key_label_significance.html

Backspace key; Computer Keyboard Key Label's Influence on Key Purpose

Xah Lee, 2011-05-29

In late 2000s, When i first learned about the Backspace Key in Internet Explorer for going to previously viewed page, my thought is: “What a Microsoft abomination!” — there's nothing logical about it. However, i found that it's simply very convenient, practical. Especially so if you don't have 5-button mouse with dedicated backward/forward buttons. The alternative, such as 【Alt+】 or 【Cmd+[】 in Linux and Mac, are simply not as convenient. They require 2 keys, and going to the previous page is so frequently needed. In late 2000s, Apple's Safari also adopted this Backspace key usage. But am surprised today, that in Firefox on Linux, this still isn't done.

Key Label's Influence on The Key's Purpose

I also learned, in the past few years, that the label, wording, on a key, has significant influence on how the key is being adopted by software. One major example is Apple vs PC keyboards. (See: Difference Between Apple and PC keyboards.) For many keys, they send the same scancode, however, they are labeled differently.

One such example is the Backspace key. On Apple keyboard, that key is labeled Delete. On PC, the Backspace got adopted for “going back” in many applications (besides Internet Explorer, it's also used in Explorer (the desktop) for going to the previously viewed folder, and in image viewers for previous image.) Yet, that key is never used for anything for delete, except in text editing (again, as “going backspace”, not necessarily delete, depending on whether you have overwrite mode on).

On Mac, that key is often used for deleting things. For example, to move a file to trash is Cmd plus that key. To empty trash is Cmd+Shift and that key. And, that key is never used for “going back” purposes.

Backspace Insert PrtScn keys

PC keyboard's keys. The “Backspace ⟵” is labeled “delete” on Apple keyboards. The Delete key is labeled “delete⌦” on Apple. The PrtScn/SysRq, ScrLk, Pause/Break is F13 F14 F15 on Apple's keyboards.

Also related is that, there's a Delete in the Home/End key cluster (aka “forward delete”, sometimes labeled as “Del”, “⌦”). On Windows, because there's no other key labeled “delete”, so that key is the delete. For example, in Explorer, you can press that to move items to trash. On Apple keyboard, since there's already a delete key (the Backspace), so this forward delete key is almost never used in the past 20 years and still not used much. It isn't even support in many text editors. In many text editors, to forward delete you might need to press Shift+Backspace. Often, Apple keyboard simply don't have the home/end key cluster. See Wikipedia here Apple keyboard for photos of Apple keyboard thru history. (See also: Apple Computer Keyboards Review.)

Another such example is the PrtScn/SysRq key. That key has a long history back to 1970s. The original function of these keys are no longer applicable in modern computers. So, in Windows, it's used for screenshot (copying the screen to clipboard), because the word “PrtScn” of that key is quite suitable. However, on Apple keyboard, those obsolete Prt/Scn/SysRq, ScrLk, Pause/Break, was never there. In some full Apple keyboard, they have keys labeled F13, F14, F15 instead. (I believe they send the same scancode as PrtScn, ScrLk, Pause on PC keyboards.). On a Mac, screenshot is done by the combination 【Cmd+Shift+3】, which seems quite arbitrary.

Curiously, unicode has a PRINT SCREEN SYMBOL (U+2399). (See: Computing Symbols in Unicode)