Clean up website.
This commit is contained in:
Binary file not shown.
@@ -1,43 +0,0 @@
|
||||
#+title: My BASH prompt (outdated)
|
||||
#&summary
|
||||
What my prompt used to do and what it looked like.
|
||||
#&
|
||||
#+license: wtfpl
|
||||
|
||||
* My old BASH prompt
|
||||
|
||||
I had a strange bash prompt. To use it, first, copy this into your ~.bashrc~:
|
||||
|
||||
#+BEGIN_SRC sh
|
||||
function ps1lr {
|
||||
if [ $1 == 0 ]; then
|
||||
echo -ne "\033[42m\033[01;30m"
|
||||
else
|
||||
echo -ne "\033[41m\033[01;34m"
|
||||
fi
|
||||
length-extra-prepend $1 3
|
||||
}
|
||||
|
||||
function ps1sp {
|
||||
pwdw=$(($COLUMNS-20))
|
||||
if (( $pwdw < 40 )); then
|
||||
pwdw=40
|
||||
fi
|
||||
length-too-much-shorten "$(pwd | sed s%$HOME%~%)" $pwdw
|
||||
}
|
||||
|
||||
#PROMPT_COMMAND=""
|
||||
PS1='\[\033[00m\]$(ps1lr $?)\[\033[45m\] \[\033[44m\]\[\033[01;37m\]\
|
||||
$(date +%H:%M)\[\033[45m\] \[\033[46m\]\[\033[01;33m\]\
|
||||
$(ps1sp)\[\033[00m\]\n\[\033[45m\]\[\033[01;33m\]\u\[\033[01;32m\]@\
|
||||
\[\033[01;36m\]\h\[\033[43m\]\[\033[01;30m\]:\[\033[40m\]\
|
||||
\[\033[01;33m\]\$\[\033[00m\] '
|
||||
#+END_SRC
|
||||
|
||||
Second, download [[bash-prompt-extras.tar.gz]] and put the included programs
|
||||
somewhere in =$PATH=&sh.
|
||||
|
||||
|
||||
* Not anymore
|
||||
|
||||
I didn't actually need all the features.
|
||||
@@ -9,7 +9,7 @@ Danish.
|
||||
Jeg sendte denne besked til Undervisningsministeriet som så fortalte mig at de
|
||||
skam nok var i gang med at gøre det nemmere for "Linus"..
|
||||
|
||||
Sendt 8. marts. Se også <@eval macros.titlelink('stadig-digital-sikring')@>.
|
||||
Sendt 8. marts 2011. Se også <@eval macros.titlelink('stadig-digital-sikring')@>.
|
||||
|
||||
* Digital sikring mod gennemførsel af eksamen en realitet
|
||||
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
#+title: Free culture
|
||||
#+summary: A short summary of free culture with good external links
|
||||
#+license: wtfpl
|
||||
|
||||
* Free culture
|
||||
|
||||
Free culture is about sharing and mixing creative works, often under
|
||||
[[http://en.wikipedia.org/wiki/Copyleft][copyleft]]. It encompasses pictures, video, audio, text and similar types of
|
||||
works.
|
||||
|
||||
It is good, although not necessarily easy to produce.
|
||||
|
||||
|
||||
** External links
|
||||
|
||||
+ [[http://freedomdefined.org/Definition][Definition of Free Cultural Works]]
|
||||
+ [[http://freeculture.org/][freeculture.org]]
|
||||
+ [[http://creativecommons.org/][Creative Commons]]
|
||||
@@ -1,135 +0,0 @@
|
||||
#+title: Free software
|
||||
#+summary: An explanation of the necessity of free software
|
||||
#+startup: showall
|
||||
#+license: wtfpl
|
||||
|
||||
* Free software
|
||||
|
||||
This is a [[http://python.org/][Python 3]] computer program --- a piece of software:
|
||||
#+BEGIN_SRC python
|
||||
inp = input()
|
||||
print(inp.lower())
|
||||
#+END_SRC
|
||||
Or at least it's a very small part of one. It reads text input from a user,
|
||||
transforms the text to lowercase, and prints the transformed text. It is very
|
||||
simple. Larger programs are often far less simple, as they may contain
|
||||
implementations of complex algorithms or involve human interaction.
|
||||
|
||||
[[http://en.wikipedia.org/wiki/RSA][RSA]] and [[http://www.openssl.org/][OpenSSL]] are examples of this, RSA being an algorithm which requires
|
||||
several subalgorithms to work, and OpenSSL being the large implementation of
|
||||
RSA (among other things, but let's keep it simple) which contains way over
|
||||
100,000 lines of code. For such a computer program to be run, it will most
|
||||
often have to be compiled.
|
||||
|
||||
/Compilation/ is a process which translates human-readable source code --- like
|
||||
the two Python lines earlier --- into a computer-readable format. When a
|
||||
program has been compiled, computers can understand it, and it can be run and
|
||||
used by users. The reason why programmers do not program in the
|
||||
computer-readable format from the beginning is that it is almost impossible and
|
||||
very impractical; humans need one or more levels of abstraction to be able to
|
||||
transform ideas into runnable, useful software --- humans need programming
|
||||
languages.
|
||||
|
||||
There are two things that make a lot of sense when talking about computer
|
||||
programs: 1) if a program is installed on your computer, you should be able to
|
||||
run it (why else have it?), and 2) if a friend (or someone else) would like to
|
||||
use a program that you have, you should be able to share it to your friend,
|
||||
i.e. copy it and give the friend the copy.
|
||||
|
||||
People who are unfamiliar with computers in general, and digital data in
|
||||
particular, might have trouble understanding that any data you see on a
|
||||
computer monitor or on an optical disc or on something else is nothing but
|
||||
bytes, be it images, videos, websites, text, programs, e-mails, anything. A
|
||||
byte x&var with a value n&var is no different than a byte y&var with the same
|
||||
value n&var, even if it is stored in a different location. Any byte can be
|
||||
cloned, copied, and only the amount of storage space available limits how many
|
||||
times this copying can occur.
|
||||
|
||||
One must also be able to study a program, modify it to fit one's needs, and
|
||||
redistribute copies of one's changes. There are several reasons for this; first
|
||||
of all, a program must not be able to hide from you how it works and what it
|
||||
does. You --- or a hired programmer --- must be able to look through the source
|
||||
code and learn from it, so that knowledge about implementations of algorithms
|
||||
and structuring of code segments can be spread. Computers have become
|
||||
incredibly important on Earth, and it's just not good enough if a computer user
|
||||
who wishes to learn more about software and how it works cannot study
|
||||
the programs on their computer and in that way improve their computer
|
||||
literacy.
|
||||
|
||||
Since machine code does not contain the original code and comments, source code
|
||||
availability is a precondition for the studying and modification of a program.
|
||||
|
||||
Second, if a program does not work properly, you can only fix it if you're
|
||||
allowed to do so and have the source code.
|
||||
|
||||
Third, it is impractical to constantly reinvent the wheel, which is what
|
||||
programmers who do not use software that allows sharing and modification tend
|
||||
to do.
|
||||
|
||||
Fourth, if a program cannot be studied, and if that program contains code for
|
||||
reading from and writing to files in special formats --- e.g. the Microsoft Word
|
||||
format --- people are forced to use that program if they have a file in such a
|
||||
format (yes, LibreOffice has good support for such non-free formats, but not
|
||||
full support).
|
||||
|
||||
Fifth, if a program cannot be studied, you cannot be certain of its
|
||||
intentions. Since you do not know what the program does (in details), you do
|
||||
not know if it does anything harmful --- if it tracks you, or if it reads your
|
||||
documents without your permission.
|
||||
|
||||
Sixth, if a non-free program is abandoned by its developers, it will never
|
||||
become better, and users of it might not be able to keep running it, because no
|
||||
one can fix or improve it.
|
||||
|
||||
And so on.
|
||||
|
||||
*Free software* is the type of software that encompasses these freedoms; it
|
||||
allows you to be in control of your computing, instead of others taking control
|
||||
of it. Proprietary software, or non-free software, is the opposite of free
|
||||
software. Many programs and systems are proprietary, including (but not at all
|
||||
limited to) Microsoft Windows, Apple iPhone, Amazon Kindle, etc. Well-known
|
||||
/free/ software includes Firefox, Inkscape, GIMP, and many others.
|
||||
|
||||
Today it often seems commonly accepted that software development and usage
|
||||
follows a model like this:
|
||||
#&block
|
||||
Someone (a corporation, an individual, an organization, could be anyone)
|
||||
develops a program --> the creator allows people to use the program
|
||||
--> a user wants to share the program with a friend, but the user knows that it
|
||||
is wrong, because that's what the creator said --> the user does nothing, and:
|
||||
|
||||
The user needs a new feature added to the program --> the user asks the creator
|
||||
to add the feature, because the user knows that only the creator may modify the
|
||||
program, even if it runs on the user's computer and not the creator's --> the
|
||||
creator answers --> nothing happens
|
||||
#&
|
||||
It makes sense that you should be allowed to modify a program that runs on your
|
||||
computer, or get someone to do it for you. It makes no sense that an entity
|
||||
x&var should have the power to control a user just because that user runs a
|
||||
program created by x&var. Programs should /not/ have owners, even if that's
|
||||
what some have been mislead to believe.
|
||||
|
||||
|
||||
All of this leaves us with these four condensed freedoms:[fn:freeswdef]
|
||||
|
||||
#&block
|
||||
/The freedom to/:
|
||||
+ run the program
|
||||
+ study and modify the program
|
||||
+ share the program (redistribute copies)
|
||||
+ share your modified program
|
||||
#&
|
||||
|
||||
** External links
|
||||
|
||||
Continue your reading here:
|
||||
|
||||
+ [[http://gnu.org/][GNU's Not Unix]]
|
||||
+ The [[http://fsf.org/][Free Software Foundation]]
|
||||
+ [[http://trisquel.info][Trisquel, a free operating system]]
|
||||
+ [[http://debian.org/][Debian]]
|
||||
+ [[http://en.wikipedia.org/wiki/Copyleft][Copyleft]] on Wikipedia
|
||||
|
||||
|
||||
[fn:freeswdef] GNU.org. /The Free Software Definition/,
|
||||
[[http://www.gnu.org/philosophy/free-sw.html]]
|
||||
@@ -3,7 +3,6 @@
|
||||
Hackety hack.
|
||||
#&
|
||||
#+startup: showall
|
||||
#+license: wtfpl
|
||||
|
||||
* Hacking
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#+title: Writings
|
||||
#+summary: A list of my writings
|
||||
#+license: wtfpl
|
||||
|
||||
* Writings
|
||||
|
||||
|
||||
@@ -26,8 +26,14 @@ from [[http://wtfpl.net/]]:
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
#+END_SRC
|
||||
|
||||
I think the license is fun, and there really is no good reason to use anything
|
||||
else for most of my small, one-off projects. For larger projects, I use BSD2 or
|
||||
BSD3 or whatever -- I accept all free software licenses and really do not wish
|
||||
to discuss them that much (although I admit that I have previously been more
|
||||
opionated).
|
||||
|
||||
* Reason
|
||||
|
||||
* Some reasons
|
||||
|
||||
I got tired of software and culture licenses. I don't mind them, and I don't
|
||||
have anything against copyleft -- it's a tool, and it can be effective in some
|
||||
@@ -43,8 +49,9 @@ I guess that some people consider e.g. CC BY-SA a recognizable symbol and that
|
||||
its law stuff is secondary. I can follow that thought, but I just got tired of
|
||||
it.
|
||||
|
||||
Some might not want to integrate WTFPL code into their project, but fuck them
|
||||
(okay, in practice I'll probably just relicense to BSD2 or BSD3 if necessary).
|
||||
Some people might not want to integrate WTFPL code into their project, but fuck
|
||||
them (okay, in practice I'll probably just relicense to BSD2 or BSD3 if
|
||||
necessary).
|
||||
|
||||
All that being said, I will work in any free software and free culture project
|
||||
no matter what license they use. WTFPL is just for my own junk.
|
||||
@@ -60,4 +67,4 @@ copyright was only for commercial use.
|
||||
* Previously
|
||||
|
||||
I used to have a lot of text about this, but I've come to just not care. It's
|
||||
all on git if you want to read it.
|
||||
all in the git history if you want to dig it up and read it.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#+title: Na
|
||||
#&summary
|
||||
A new spoken and written language in development.
|
||||
A new spoken and written language not in development.
|
||||
#&
|
||||
#+license: wtfpl
|
||||
#&toc
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
#+title: My choices of software licenses (outdated)
|
||||
#&summary
|
||||
Which licenses did I use, and why?
|
||||
#&
|
||||
#+startup: showall
|
||||
#+license: wtfpl
|
||||
|
||||
#&+classes=warning
|
||||
This is an old opinion of mine, but its arguments still hold if one assumes that
|
||||
copyleft is very important. See <@eval
|
||||
macros.titlelink('/writings/non-copylefted')@> for my updated opinion.
|
||||
#&
|
||||
|
||||
* My choices of software licenses
|
||||
|
||||
I like strong copyleft, the stuff found in the GNU General Public License, the
|
||||
Creative Commons Attribution-Share Alike, and others. I like how people cannot
|
||||
take the code or culture I contributed to the world and turn it into something
|
||||
non-free. I have used those licenses a lot.
|
||||
|
||||
For cultural works, it seems to me that the Creative Commons Attribution-Share
|
||||
Alike has a strong following; of course some people dislike it for being a long,
|
||||
legalese text, but my general impression is that people who want to create
|
||||
sharable and modifiable cultural works like it just fine. If there was a large
|
||||
resistance towards the BY-SA, making something available under that license
|
||||
would mean excluding many people from remixing that something, just because of
|
||||
their dislike of the license. Since that doesn't appear to be the case, I'll
|
||||
happily continue to use the BY-SA license.
|
||||
|
||||
For software, on the other hand, there are many loud voices against the
|
||||
GPL. [[http://dustycloud.org/blog/field-guide-to-copyleft][This article]] explains the arguments well. As much as I like to copyleft my
|
||||
code, I find it even more important that it's not lonely; and if so many are
|
||||
against the strong copyleft in the GPL, I feel I must concede and release my
|
||||
software under BSD3 or something on that level of lack of user freedom.
|
||||
|
||||
I only see two reasons to not use strong copyleft with a program (and they
|
||||
overlap):
|
||||
|
||||
+ If the main objective of the software is to become widespread (like how the
|
||||
Ogg Ogg/Vorbis codec uses a lax license --- which, by the way, [[https://lwn.net/2001/0301/a/rms-ov-license.php3][RMS agrees]]
|
||||
with)
|
||||
+ If so many people dislike strong copyleft that too few are willing to
|
||||
contribute to a strong copyleft project (my reason)
|
||||
|
||||
I'm not that interested in whether GPL usage is currently dropping or rising, or
|
||||
that the GPL is still very widely used; what interests me is that a high number
|
||||
of projects simply do not use the GPL. I found the [[https://archive.fosdem.org/2012/schedule/event/is_copyleft_being_framed.html][Is copyleft being framed?]]
|
||||
talk interesting, but copyleft being framed doesn't change the data at
|
||||
[[http://flossmole.org]]: [[http://flossmole.org/system/files/FreecodeLicenses2012.png][this]] and [[http://flossmole.org/system/files/FSFLicenseCounts2012_0.png][this]] show that while GPL usage is high, so is the
|
||||
combined use of BSD3, Expat/MIT, Apache 2.0, and other lax licenses.
|
||||
|
||||
A (for me) important example of where a lax license (in this case the BSD3) is
|
||||
pretty much used everywhere is Haskell's package collection, [[http://hackage.haskell.org/][Hackage]]. If I came
|
||||
along with a GPL-licensed program, it would be pretty lonely.
|
||||
|
||||
I must remind myself that strong copyleft was never an end in itself, but merely
|
||||
a help. From now on (Oct 10, 2012), I'll make new software written by myself
|
||||
available under the BSD3 license. If at some point in the future, the usage of a
|
||||
lax licenses drops a lot and the usage of strong copyleft licenses rises (I
|
||||
don't think that'll happen), I might switch back to using a strong copyleft
|
||||
license. Until then, let the BSD3 experiment begin!
|
||||
|
||||
The main point of it all is to share code both ways, and if that flow works
|
||||
better with a lax license, then I think I'm okay with the risk of someone
|
||||
putting it into a proprietary program, even though I find that amoral.
|
||||
|
||||
I'm not going to relicense past (A|L)?GPL'd programs I've written unless someone
|
||||
asks me to or I have to update them anyway..
|
||||
|
||||
I'll still contribute to strong copyleft software, but I might mention this URL.
|
||||
|
||||
If I were to place myself in a camp, it would be the
|
||||
I-like-copyleft-sometimes-but-I-like-sharing-code-even-more camp.
|
||||
@@ -13,7 +13,7 @@ deres kraft af undervisningsministerium --- desuden er det ikke engang alle
|
||||
skoler der bruger de kopisikrede cd'er, så i flere tilfælde er kopisikring
|
||||
ligegyldig. Så fjern den dog!
|
||||
|
||||
Sendt 31. maj. Se også <@eval macros.titlelink('digital-sikring')@>.
|
||||
Sendt 31. maj 2011. Se også <@eval macros.titlelink('digital-sikring')@>.
|
||||
|
||||
* Stadig digital sikring mod gennemførsel af eksamen
|
||||
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
#+title: My StumpWM setup
|
||||
#&summary
|
||||
How I've set up StumpWM on Trisquel
|
||||
#&
|
||||
#+license: wtfpl
|
||||
#+startup: showall
|
||||
|
||||
* My StumpWM setup
|
||||
|
||||
GNOME
|
||||
|
||||
I use StumpWM instead of e.g. Gnome. StumpWM is a tiling window manager, which
|
||||
means that it's a good window manager.
|
||||
|
||||
** The setup
|
||||
|
||||
I just added a file ~stumpwm.desktop~:
|
||||
#+BEGIN_SRC
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=XSession
|
||||
Exec=stumpwm
|
||||
TryExec=stumpwm
|
||||
Name=StumpWM
|
||||
Comment=Stump window manager
|
||||
#+END_SRC
|
||||
to ~/usr/share/xsessions/~, and then I could login to StumpWM via GDM.
|
||||
|
||||
** Links
|
||||
|
||||
+ [[http://stumpwm.antidesktop.net/][StumpWM]]
|
||||
+ [[https://gitorious.org/nqpz-config/nqpz-config/blobs/raw/master/home/.stumpwmrc][My .stumpwmrc]]
|
||||
|
||||
|
||||
** Old problems
|
||||
|
||||
/I have fixed these problems. They remain here for historical reasons only./
|
||||
|
||||
I never had any problems with StumpWM until I upgraded to Trisquel 4.0 and
|
||||
Trisquel 4.5, after which StumpWM irregularly threw errors such as:
|
||||
#+BEGIN_SRC
|
||||
g_dbus_connection_real_closed: Remote peer vanished with error: Underlying
|
||||
GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.
|
||||
#+END_SRC
|
||||
and also some fatal X errors which killed StumpWM and all its running
|
||||
programs. This naturally annoyed me. I soon realized that it had nothing to do
|
||||
with Trisquel, it was just that dependencies on things like D-Bus was getting
|
||||
on StumpWM's nerves. I had always used an Xsession file to login to StumpWM,
|
||||
but clearly, this wasn't good enough. Whenever I ran the default gnome-session
|
||||
and whatever window manager was associated to that, there were no problems. And
|
||||
while in gnome-session, I could always run:
|
||||
: stumpwm --replace
|
||||
to replace metacity or whatever with StumpWM. Except for an annoying
|
||||
gnome-panel and Gnome taking over some of my keybindings, this worked
|
||||
alright. The best thing was that when the fatal X error occured, only StumpWM
|
||||
was killed --- all windows were maintained. This made me realize that one could
|
||||
create a script which starts a new StumpWM instance whenever an old StumpWM
|
||||
crashes, to create the illusion of a continually running StumpWM.
|
||||
|
||||
*** Solution
|
||||
|
||||
I compiled StumpWM from git with SBCL instead of CLISP. Now it doesn't crash.
|
||||
|
||||
*** Original solution
|
||||
|
||||
I added this to my ~.profile~:
|
||||
#+BEGIN_SRC sh
|
||||
if [ "$DISPLAY" ] ; then
|
||||
pkill stumpwm
|
||||
# Restart StumpWM when it crashes
|
||||
while [ 1 ] ; do
|
||||
stumpwm --replace
|
||||
pkill stumpwm
|
||||
done
|
||||
fi
|
||||
|
||||
# Since StumpWM will continue forever, this .profile file will block
|
||||
# gnome-session from loading misc. crap.
|
||||
#+END_SRC
|
||||
|
||||
You may also have to edit ~gnome-panel~ out of
|
||||
~/desktop/gnome/session/required_components~ in ~gconf-editor~.
|
||||
Reference in New Issue
Block a user