summary refs log tree commit diff stats
path: root/CHANGELOG
blob: 1da6d8550cf58ff97865a70e9269c12bf00c0529 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
This log documents changes between stable versions.

2011-10-23: Version 1.5.1
* Added fm.select_file(path)
* Added --choosefiles option (like --choosefile, but chooses multiple files)
* Fixed --list-unused-keys
* Fixed Zombie processes
* Fixed handling of filenames with undecodable bytes (unicode surrogates)
* Fixed crashes due to incomplete loading of directories
* Fixed tab completion of the command "shell"
* Fixed "ot" and "oT" keys in rc.conf
* Fixed parsing of chained commands (like in the binding "om")

2011-10-11: Version 1.5.0
* Full python3.2 compatibility
* Added new configuration file "rc.conf" which contains a list
  of commands that are executed on startup - mainly used for keybindings
* Added --list-unused-keys
* Added new program handlers to apps.py
* Added pop-up window for keychains and bookmarks
* Added load_default_rc option
* Fixed all known unicode issues
* Fixed crash when $TERM is unknown to the system
* Fixed scrolling in colored preview
* Changed the default column_ratios to 1/3/4 and sorting method to "natural"
* Changed :rename so it doesn't overwrite existing files
* Internal actions are now accessible as commands
* Replaced unittests by doctests
* Replaced integrated help with an extended man page and dynamic lists
  of keybindings, commands and settings.
* Removed "keys.py" configuration file in favor of "rc.conf"
* Removed "texas" colorscheme
* apps.py: Now able to define programs that only run with Xorg
* commands.py: Using parse(self.line) to parse the line is unnecessary now.
  parse(self.line).rest(n) is now written as self.rest(n).
  However, parse(self.line).chunk(n) has been renamed to self.arg(n).
* commands.py: parse(self.line) + X is now self.firstpart + X
* commands.py: New special attribute "resolve_macros" which decides whether
  strings like %f should be expanded to the name of the current file, etc.
* commands.py: New special attribute "escape_macros_for_shell" to toggle
  whether or not macros should be escaped, so you can use them in other
  commands than :shell, for example :edit %f
* Countless small fixes and improvements

2011-10-02: Version 1.4.4
* Added keys for chmod (like +ow for "chmod o+w", etc)
* Added "c" flag for running files
* Added various key bindings
* Added wavpack and webm types to mime.types
* Added option "display_tags_in_all_columns"
* Added command.cancel method which is called when pressing ESC in console
* Added sorting and cycling by ctime and atime
* Added custom tags (press "x)
* Added bittorrent preview
* Fixed blocking when using interactive scripts in scope.sh
* Fixed issues with ALT key
* Fixed pager crash when trying to read non-readable file
* Forbid piping things into ranger
* Improved hints

2011-04-05: Version 1.4.3
* Fixed mimetype checking when invoking ranger with a filename
* Fixed loss of bookmarks when disk is full
* Minor improvements

2011-03-05: Version 1.4.2
* Added --choosefile and --choosedir flag
* Added use of bookmarks in tab completion of the :cd command
* Fixed bug with detached programs and python 3.2

2011-01-04: Version 1.4.1
* Fixed crash when preview failed under some circumstances
* Fixed graphical bug when pressing i

2010-12-22: Version 1.4.0
* Added option to use any external scripts for previews (see scope.sh)
* Added key: zv to toggle the use of the external script
* Added indicator for the used filter (type "zf")
* Added option padding_right to remove whitespace if theres no preview
* Added command :search_inc for incremental search
* Added commands :save_copy_buffer and :load_copy_buffer to share
  the copied files between ranger instances
* Added mimeopen as a fallback if no useful application can be found
* Added natural sort, sorts 1foo before 10foo. (type "on")
* Added keys: yp, yd and yb to copy path, dirname or basename to seleciton
* Let open_with use the selection, not just one file
* Run files with right mouse click
* Implemented copying via coreutils rather than internal python code
* Improved handling of unicode
* Some restructuration of the source code

2010-12-13: Version 1.2.3
* Enable binding to alt-keys
* Fixed memory leak in garbage collecting of old, unused directory objects
* Fixed python3 incompatibilities
* Fixed problems with identifying changes of files
* Fixed lazy lookup of some FSObject attributes

2010-10-10: Version 1.2.2
* Prevent currently used directories from being garbage collected
* Disable mouse buttons when console is open
* Fixed :cd command: Without arguments, cd's into $HOME
* Fixed bug which prevented pydoc to work on some config files
* Fixed some bugs in "snow" and "jungle" colorschemes
* Several other clean-ups and fixes

2010-09-16: Version 1.2.1
* Fixed yy/pp bug when yanking multiple directories

2010-09-13: Version 1.2.0
* !!! Changed the default configuration directory to ~/.config/ranger !!!
* Removed "Console Modes", each old mode is now a simple command
* Disabled file previews by default if ranger is used by root
* Allow to jump to specific help sections by typing two numbers, e.g. 13?
* Added keys: da, dr, ya, yr for adding and removing files from copy buffer
* Added keys: gl and gL to resolve links, see 11?
* Added key: pL to create a relative symlink
* Added %<LETTER> and %<N><LETTER> macros for the console, see 33?
* Fixed ansi codes for colors in the pager
* Use the file ~/.mime.types for mime type detection
* Several clean-ups and fixes

2010-07-17: Version 1.1.2
* Fix crash when using scrollwheel to scroll down in some cases
* The command "ranger dir1 dir2 ..." opens multiple directories in tabs
* Removed pydoc html documentation by default, re-create it with "make doc"
* Minor fixes

2010-06-18: Version 1.1.1
* New install script, "setup.py"
* New flag for running programs: "w" (waits for enter press)
* Minor fixes

2010-06-09: Version 1.1.0
* Added a man page
* Tab support
* Improved directory loading performance
* Commands are definable in ~/.ranger/commands.py
* Case insensitive sorting (type zs)
* Better UTF support
* Possibility to turn off previews (zp and zP)
* Changing options with :set (e.g. :set column_ratios=1,2,3,4)
* Ask for confirmation when using :delete
* New invocation flag: --fail-unless-cd
* New hotkeys, commands, options.
* New syntax for ~/.ranger/keys.py
* Several user contributions
* And tons of general improvements

NOTE: The syntax for configuration is still subject to change.
rses is medical ethics courses. The latter often revolve around dilemmas, that is, around issues that are genuinely controversial among honest, well-motivated doctors. Abortion, euthanasia, whether to offer an honest diagnosis if you think it'll hurt the patient's health: all of these questions in which life and death are literally at stake are no easier for ethical philosophers than for medical practitioners. <P>The purpose of a medical ethics course is not to encourage doctors to be ethical. That is taken for granted, as a precondition of the course. Nor is the purpose of the course to call attention to obscure ethical questions. Every medical student knows about these questions, as does everyone who reads newspapers. The purpose of the course is to provide the students with knowledge of the range of arguments that have been made about the difficult questions, so that they do not begin their careers with one-sided views out of ignorance of alternatives. <P>In computer science our situation is not like that of the medical profession. Among our colleagues the very idea of social responsibility is open to question. "First, do no harm" is not controversial among doctors, but some computer programmers are perfectly comfortable building the tools for arbitrageurs and other social parasites. "Suppose your employer orders you to release a product known to have bugs because the deadline is approaching..." This is an ethical dilemma? It wouldn't be, in a profession with a sense of ethics. <P>The medical ethics course is useful as an adjunct to the real ethical education of medical students, which happens in hospital wards. Everyone involved understands that the course is an adjunct. Everyone understands that ethics is about empathy, human respect, and courage more than it's about intellectual resolution of moral puzzles. <P>In computer science, solving puzzles is central to our work. It is all too easy to see social responsibility as just another kind of puzzle, to be solved by the same techniques of formal reasoning we use with other puzzles. A dilemma-based computer ethics course too easily lets us off the hook. Instead our ethics courses must be about ethics! That is, they must force students to confront the existence of good and evil, to choose between selfishness and community spirit. Very few computer scientists explicitly choose evil, but many prefer to pretend that there is no choice to make. <H2>III. There Is Nothing that Everyone Needs to Know about Computers</H2> <P>I have been arguing for several years with people who believe that to be employable, one must be "computer literate" -- skilled in some aspect or other of computer use. In the context of social responsibility there seems to be a different argument, asserting that one cannot be an effective citizen in a democracy without a technical understanding of the political issues involving computers. How will people know which way to vote on Star Wars, if they don't understand programming methodology? <P>This version of the "computer literacy" argument is also nonsense. It's a losing battle. Computers are not the only technology that comes to the attention of voters. Freon, oil spills, nuclear power, genetic engineering, the prime interest rate, the use of standardized tests that may or may not discriminate against some group in college admissions, research on animals, potential AIDS drugs, biochemical versus psychodynamic approaches to mental illness, teaching foreign-born students in English or in their native languages, what the Founding Fathers really meant about bearing arms: are the voters to be "literate" about all of these? <P>How, in fact, do I decide to believe the scientists who tell me that people evolved from animals, and not the ones who tell me that nuclear power is safe? I have no technical knowledge about either issue. Supposing that I were forced to take "biology literacy" and "nuclear power literacy" courses; how would I decide whether or not to trust the teachers of those courses? The answer is that my beliefs are based on nontechnical aspects of the issues. For example, I know that there is money to be made in nuclear power, but I don't see anyone profiting from the theory of evolution. I know that the supposedly neutral Nuclear Regulatory Commission conspired with the plant owners to withhold information about the Three Mile Island failure; I don't know of any such scandal among evolution theorists. I know that the nuclear power industry got Congress to pass a law exempting them from civil damage suits, and I understand what this means about their own confidence in their operations. I know that the spokespeople for evolution include exemplary human beings like Stephen Jay Gould, who also finds time in his schedule to work against racism; those who speak for nuclear power are more likely to be sleazeballs who also argue for nuclear weapons. <P>What the voters need is "political literacy": knowing how to read the newspaper without technical knowledge of the subject under discussion. They need the intellectual weapon of class analysis. They need the commitment to remember last year's scandals to help them understand this year's. They need the sophistication to understand dialectical tension, in which two contradictory views can both be aspects of the truth, without dissolving into relativism, in which everything and nothing is true. <H2>IV. Ethics is Learned in the Laboratory</H2> <P>What is the policy about game-playing at your school's computer lab? Some students want to play computer games. Other students (perhaps the same students at another time) want to get their assigned work done. Does some adult facility manager decide the rule? (No games 8am to 11pm, let's say.) Then, do paid adult staff members police the rule? Or are students part of the process of setting the rule and enforcing it? <P>What happens when a student shows an interest in developing system software? Is s/he encouraged? Given access to source files? Allowed to install the new version for general use? Or informed that students can't be trusted to write software lest it be full of trapdoors? <P>Is the computer lab always open? Is it closed at night because there's no money for staff to prevent equipment theft? Is there a way students could organize cooperatively to staff the lab? Are they encouraged to do so? <P>When one student complains about another student violating the privacy of his or her files, how is the issue resolved? (What about faculty or staff violating the privacy of student files? Is that an issue?) <P>The computer lab is the best place to begin professional education in social responsibility. The crucial point is to build a sense of community. Faculty should be part of this community also, but decisions about things like game policy should be truly democratic. It's the students who face the consequences, and they can understand the issues. <P>(I guess I am arguing for Carol Gilligan's relationship-based view of moral development, as against Lawrence Kohlberg's rule-based view, which is embodied in the presentation of moral dilemmas in ethics classes.) <P><ADDRESS> <A HREF="index.html"><CODE>www.cs.berkeley.edu/~bh</CODE></A> </ADDRESS> </BODY> </HTML>