Jonathan Dowland: Remarkable
My Remarkable tablet, displaying my 2025 planner.
My Remarkable tablet, displaying my 2025 planner.
| Series: | Galactic Empire #2 |
| Publisher: | Fawcett Crest |
| Copyright: | 1950, 1951 |
| Printing: | June 1972 |
| Format: | Mass market |
| Pages: | 192 |
There was no way of telling when the threshold would be reached. Perhaps not for hours, and perhaps the next moment. Biron remained standing helplessly, flashlight held loosely in his damp hands. Half an hour before, the visiphone had awakened him, and he had been at peace then. Now he knew he was going to die. Biron didn't want to die, but he was penned in hopelessly, and there was no place to hide.Needless to say, Biron doesn't die. Even if your tolerance for pulp melodrama is high, 192 small-print pages of this sort of thing is wearying. Like a lot of Asimov plots, The Stars, Like Dust has some of the shape of a mystery novel. Biron, with the aid of some newfound companions on Rhodia, learns of a secret rebellion against the Tyranni and attempts to track down its base to join them. There are false leads, disguised identities, clues that are difficult to interpret, and similar classic mystery trappings, all covered with a patina of early 1950s imaginary science. To me, it felt constructed and artificial in ways that made the strings Asimov was pulling obvious. I don't know if someone who likes mystery construction would feel differently about it. The worst part of the plot thankfully doesn't come up much. We learn early in the story that Biron was on Earth to search for a long-lost document believed to be vital to defeating the Tyranni. The nature of that document is revealed on the final page, so I won't spoil it, but if you try to think of the stupidest possible document someone could have built this plot around, I suspect you will only need one guess. (In Asimov's defense, he blamed Galaxy editor H.L. Gold for persuading him to include this plot, and disavowed it a few years later.) The Stars, Like Dust is one of the worst books I have ever read. The characters are overwrought, the politics are slapdash and build on broad stereotypes, the romantic subplot is dire and plays out mainly via Biron egregiously manipulating his petulant love interest, and the writing is annoying. Sometimes pulp fiction makes up for those common flaws through larger-than-life feats of daring, sweeping visions of future societies, and ever-escalating stakes. There is little to none of that here. Asimov instead provides tedious political maneuvering among a class of elitist bankers and land owners who consider themselves natural leaders. The only places where the power structures of this future government make sense are where Asimov blatantly steals them from either the Roman Empire or the Doge of Venice. The one thing this book has going for it the thing, apart from bloody-minded completionism, that kept me reading is that the technology is hilariously weird in that way that only 1940s and 1950s science fiction can be. The characters have access to communication via some sort of interstellar telepathy (messages coded to a specific person's "brain waves") and can travel between stars through hyperspace jumps, but each jump is manually calculated by referring to the pilot's (paper!) volumes of the Standard Galactic Ephemeris. Communication between ships (via "etheric radio") requires manually aiming a radio beam at the area in space where one thinks the other ship is. It's an unintentionally entertaining combination of technology that now looks absurdly primitive and science that is so advanced and hand-waved that it's obviously made up. I also have to give Asimov some points for using spherical coordinates. It's a small thing, but the coordinate systems in most SF novels and TV shows are obviously not fit for purpose. I spent about a month and a half of this year barely reading, and while some of that is because I finally tackled a few projects I'd been putting off for years, a lot of it was because of this book. It was only 192 pages, and I'm still curious about the glue between Asimov's Foundation and Robot series, both of which I devoured as a teenager. But every time I picked it up to finally finish it and start another book, I made it about ten pages and then couldn't take any more. Learn from my error: don't try this at home, or at least give up if the same thing starts happening to you. Followed by The Currents of Space. Rating: 2 out of 10
| Publisher: | W.W. Norton & Company |
| Copyright: | 2023 |
| ISBN: | 1-324-07434-5 |
| Format: | Kindle |
| Pages: | 255 |
| Publisher: | Amazon Original Stories |
| Copyright: | September 2019 |
| ISBN: | 1-5420-9206-X |
| ISBN: | 1-5420-4363-8 |
| ISBN: | 1-5420-9357-0 |
| ISBN: | 1-5420-0434-9 |
| ISBN: | 1-5420-4363-8 |
| ISBN: | 1-5420-4425-1 |
| Format: | Kindle |
| Pages: | 300 |
Here is my monthly update covering what I have been doing in the free software world during December 2020 (previous month):
README (#25).circlator, dvbstreamer, eric, jbbp, knot-resolver, libjs-qunit, mail-expire, osmo-mgw, python-pyramid, pyvows & sayonara.
debian/copyright file to match the copyright notices in the source tree. (#224).py copyright headers. [...]readelf(1). [...]minimal instead of basic as a variable name to match the underlying package name. [...]pprint.pformat in the JSON comparator to serialise the differences from jsondiff. [...]python-django:
2.2.17-2 Fix compatibility with GNU gettext version 0.21. (#978263)3.1.4-1 New upstream bugfix release.redis:
mtools (4.0.26-1) New upstream release.
adminer (4.7.8-2) on behalf of Alexandre Rossi and performed two QA uploads of sendfile (2.1b.20080616-7 and 2.1b.20080616-8) to make the build the build reproducible (#776938) and to fix a number of other unrelated issues.
Debian LTS
This month I have worked 18 hours on Debian Long Term Support (LTS) and 12 hours on its sister Extended LTS project.
awstats, imagemagick, node-ini, openexr, openssl1.0, p11-kit, pypy, python-py, sqlite3, sympa, etc.
node-ini, an .ini configuration file format parser/serialiser for Node.js, where an application could be exploited by a malicious input file.

Introduction
I've written before about using a U2F key with PAM. This post
continues the theme and explains how to use a smartcard with GnuPG for
storing OpenPGP private keys. Specifically, a Yubikey 4 card, because
that's what I have, but any good GnuPG compatible card should work.
The Yubikey is both a GnuPG compatible smart card, and a U2F card. The
Yubikey 4 can handle keys up to 4096 bits. Older Yubikeys can only
handle keys up to 2095 bits.
The reason to do this is to make it harder for an attacker to steal
your encryption keys.
I will assume you don't already have an OpenPGP key, or are willing to
generate a new one. I will also assume you run Debian stretch; some of
the desktop environment setup details may differ between Debian
versions or between Linux distributions. You will need:
~/.gnupg/gpg.conf:
personal-digest-preferences SHA512
cert-digest-algo SHA512
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
personal-cipher-preferences TWOFISH CAMELLIA256 AES 3DES
keyserver pool.sks-keyservers.net
$ gpg --full-generate-key
gpg (GnuPG) 2.1.18; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
Your selection? 4
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0) 1y
Key expires at Tue 29 May 2018 06:43:54 PM EEST
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Real name: Lars Wirzenius
Email address: liw@liw.fi
Comment: test key
You selected this USER-ID:
"Lars Wirzenius (test key) <liw@liw.fi>>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key 25FB738D6EE435F7 marked as ultimately trusted
gpg: directory '/home/liw/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/home/liw/.gnupg/openpgp-revocs.d/A734C10BF2DF39D19DC0F6C025FB738D6EE435F7.rev'
public and secret key created and signed.
Note that this key cannot be used for encryption. You may want to use
the command "--edit-key" to generate a subkey for this purpose.
pub rsa4096 2017-05-29 [SC] [expires: 2018-05-29]
A734C10BF2DF39D19DC0F6C025FB738D6EE435F7
A734C10BF2DF39D19DC0F6C025FB738D6EE435F7
uid Lars Wirzenius (test key) <liw@liw.fi>
$ gpg --list-secret-keys
/home/liw/.gnupg/pubring.kbx
----------------------------
sec rsa4096 2017-05-29 [SC] [expires: 2018-05-29]
A734C10BF2DF39D19DC0F6C025FB738D6EE435F7
uid [ultimate] Lars Wirzenius (test key) <liw@liw.fi>
keyid is the key identifier shown in the key
listing, A734C10BF2DF39D19DC0F6C025FB738D6EE435F7 above). Use the
--expert option to be able to add an authentication-only subkey.$ gpg --edit-key --expert A734C10BF2DF39D19DC0F6C025FB738D6EE435F7z
gpg (GnuPG) 2.1.18; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Secret key is available.
sec rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> addkey
Please select what kind of key you want:
(3) DSA (sign only)
(4) RSA (sign only)
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(10) ECC (sign only)
(11) ECC (set your own capabilities)
(12) ECC (encrypt only)
(13) Existing key
Your selection? 4
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0) 1y
Key expires at Tue 29 May 2018 06:44:52 PM EEST
Is this correct? (y/N) y
Really create? (y/N) y
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
sec rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> addkey
Please select what kind of key you want:
(3) DSA (sign only)
(4) RSA (sign only
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(10) ECC (sign only)
(11) ECC (set your own capabilities)
(12) ECC (encrypt only)
(13) Existing key
Your selection? 6
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0) 1y
Key expires at Tue 29 May 2018 06:45:22 PM EEST
Is this correct? (y/N) y
Really create? (y/N) y
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
sec rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
ssb rsa4096/2929E8A96CBA57C7
created: 2017-05-29 expires: 2018-05-29 usage: E
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> addkey
Please select what kind of key you want:
(3) DSA (sign only)
(4) RSA (sign only)
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(10) ECC (sign only)
(11) ECC (set your own capabilities)
(12) ECC (encrypt only)
(13) Existing key
Your selection? 8
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Sign Encrypt
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? a
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Sign Encrypt Authenticate
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? s
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Encrypt Authenticate
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? e
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Authenticate
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? q
RSA keys may be btween 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0) 1y
Key expires at Tue 29 May 2018 06:45:56 PM EEST
Is this correct? (y/N) y
Really create? (y/N) y
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
sec rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
ssb rsa4096/2929E8A96CBA57C7
created: 2017-05-29 expires: 2018-05-29 usage: E
ssb rsa4096/4477EB0AEF1C440A
created: 2017-05-29 expires: 2018-05-29 usage: A
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> save
Export secret keys to files, make a backup
~/.gnupg directory. It is time to "export" the secret keys out
from there.$ gpg --export-secret-key --armor keyid > master.key
$ gpg --export-secret-subkeys --armor keyid > subkeys.key
$ gpg --delete-secret-key keyid
$ gpg --import subkeys.key
sec# (note the hash
mark, which indicates the key isn't available), and three lines
starting with ssb (no hash mark).
$ gpg -K
/home/liw/.gnupg/pubring.kbx
----------------------------
sec# rsa4096 2017-05-29 [SC] [expires: 2018-05-29]
A734C10BF2DF39D19DC0F6C025FB738D6EE435F7
uid [ultimate] Lars Wirzenius (test key) <liw@liw.fi>
ssb rsa4096 2017-05-29 [S] [expires: 2018-05-29]
ssb rsa4096 2017-05-29 [E] [expires: 2018-05-29]
ssb rsa4096 2017-05-29 [A] [expires: 2018-05-29]
Install subkeys on a Yubikey
$ gpg -card-edit
...
~/.gnupg
(check with gpg -K).$ gpg --edit-key liw
gpg (GnuPG) 2.1.18; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Secret key is available.
pub rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
ssb rsa4096/2929E8A96CBA57C7
created: 2017-05-29 expires: 2018-05-29 usage: E
ssb rsa4096/4477EB0AEF1C440A
created: 2017-05-29 expires: 2018-05-29 usage: A
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> key 1
pub rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb* rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
ssb rsa4096/2929E8A96CBA57C7
created: 2017-05-29 expires: 2018-05-29 usage: E
ssb rsa4096/4477EB0AEF1C440A
created: 2017-05-29 expires: 2018-05-29 usage: A
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> keytocard
Please select where to store the key:
(1) Signature key
(3) Authentication key
Your selection? 1
pub rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb* rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
ssb rsa4096/2929E8A96CBA57C7
created: 2017-05-29 expires: 2018-05-29 usage: E
ssb rsa4096/4477EB0AEF1C440A
created: 2017-05-29 expires: 2018-05-29 usage: A
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> key 1
pub rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
ssb rsa4096/2929E8A96CBA57C7
created: 2017-05-29 expires: 2018-05-29 usage: E
ssb rsa4096/4477EB0AEF1C440A
created: 2017-05-29 expires: 2018-05-29 usage: A
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> key 2
pub rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
ssb* rsa4096/2929E8A96CBA57C7
created: 2017-05-29 expires: 2018-05-29 usage: E
ssb rsa4096/4477EB0AEF1C440A
created: 2017-05-29 expires: 2018-05-29 usage: A
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> keytocard
Please select where to store the key:
(2) Encryption key
Your selection? 2
pub rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
ssb* rsa4096/2929E8A96CBA57C7
created: 2017-05-29 expires: 2018-05-29 usage: E
ssb rsa4096/4477EB0AEF1C440A
created: 2017-05-29 expires: 2018-05-29 usage: A
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> key 2
pub rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
ssb rsa4096/2929E8A96CBA57C7
created: 2017-05-29 expires: 2018-05-29 usage: E
ssb rsa4096/4477EB0AEF1C440A
created: 2017-05-29 expires: 2018-05-29 usage: A
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> key 3
pub rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
ssb rsa4096/2929E8A96CBA57C7
created: 2017-05-29 expires: 2018-05-29 usage: E
ssb* rsa4096/4477EB0AEF1C440A
created: 2017-05-29 expires: 2018-05-29 usage: A
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> keytocard
Please select where to store the key:
(3) Authentication key
Your selection? 3
pub rsa4096/25FB738D6EE435F7
created: 2017-05-29 expires: 2018-05-29 usage: SC
trust: ultimate validity: ultimate
ssb rsa4096/05F88308DFB71774
created: 2017-05-29 expires: 2018-05-29 usage: S
ssb rsa4096/2929E8A96CBA57C7
created: 2017-05-29 expires: 2018-05-29 usage: E
ssb* rsa4096/4477EB0AEF1C440A
created: 2017-05-29 expires: 2018-05-29 usage: A
[ultimate] (1). Lars Wirzenius (test key) <liw@liw.fi>
gpg> save
~/.gnupg)..gnupg/gpg-agent.conf:
enable-ssh-support
/etc/xdg/autostart/gnome-keyring-ssh.desktop to have the following
line, to prevent the GNOME ssh agent from starting up:
Hidden=true
/etc/X11/Xsession.options and remove or comment out the line
that says use-ssh-agent. This stops a system-started ssh-agent
from being started when the desktop start.~/.config/autostart/gpg-agent.desktop with the
following content:
[Desktop Entry]
Type=Application
Name=gpg-agent
Comment=gpg-agent
Exec=/usr/bin/gpg-agent --daemon
OnlyShowIn=GNOME;Unity;MATE;
X-GNOME-Autostart-Phase=PreDisplayServer
X-GNOME-AutoRestart=false
X-GNOME-Autostart-Notify=true
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-keyring
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=3.20.0
$ ssh-add -l
The output should contain a line that looks like this:
4096 SHA256:PDCzyQPpd9tiWsELM8LwaLBsMDMm42J8/eEfezNgnVc cardno:000604626953 (RSA)
.ssh/authorized_keys, if
nothing else.$ gpg --export-ssh-key keyid > ssh.pub
gpg -K after removing secret master key.
As I've already mentioned in separate blog post we mostly had some security issues fun in past weeks, but besides that some other work has been done as well.
I've still focused on code cleanups and identified several pieces of code which are no longer needed (given our required PHP version). Another issue related to security updates was to set testing of 4.0 branch using PHP 5.2 as this is what we've messed up in the security release (what is quite bad as this is only branch supporting PHP 5.2).
In addition to this, I've updated phpMyAdmin packages in both Debian and Ubuntu PPA.
All handled issues:
Filed under: Debian English phpMyAdmin 0 comments
As you can now see on phpMyAdmin's security page, we've managed to spend 9 security announcements on todays release. Hopefully it won't continue that bad in rest of the year.
Anyway receiving such extensive report was really challenging for us - correctly tracking and fixing all reported issues, discovering which versions are affected. This proven to be quite difficult given that most of the affected code has been refactored meanwhile. But I'm quite happy we've managed to fix ll issues on three supported branches in two weeks.
Another challenge (especially for Isaac) was that this all came with change of our release manager, so forgive us some minor problems with the releases (especially not updated changelogs), we will do it better next time!
PS: Updated packages are on their way to Debian and phpMyAdmin PPA.
PS2: It seems we've messed few more things, so expect quick followup releases for older versions.
Filed under: Debian English phpMyAdmin 4 comments
What happened about the reproducible
builds effort for this week:
Media coverage
Debian's effort on reproducible builds has been covered in the June 2015 issue of
Linux Magazin in
Germany.
Toolchain fixes
debian/changelog entry when generating documentation.debian/changelog entry to Sphinx.sed instead of grep+mv to keep correct file permissions.PERL_HASH_SEED=0 during configure to make the generated .c and .h files stable.--disable-build-date to ./configure.debian/changelog entry as build date.debian/chanelog entry as build date.reproducible.debian.net how it goes for pathological cases.
It's now possible to specify both --html and --text output. When neither of
them is specified, the default will be to print a text report on the standard
output (thanks to Paul Wise for the suggestion).
Documentation update
Nicolas Boulenguez investigated Ada
libraries.
Package reviews
451 obsolete
reviews have
been removed and 156 added this week.
New identified issues: running kernel version getting captured, random filenames in GHC debug symbols, and timestamps in headers generated by qdbusxml2cpp.
Misc.
Holger Levsen went to re:publica and talked about
reproducible builds to developers and users there.
Holger also had a chance to meet FreeBSD developers and discuss the status of
FreeBSD. Investigations have
started on how it could be made part of our current test
system.
Laurent Guerby gave Lunar access to systems in the GCC Compile
Farm. Hopefully access to these powerful
machines will help to fix packages for GCC, Iceweasel, and similar packages
requiring long build times.
| Series: | Uplift #1 |
| Publisher: | Bantam |
| Copyright: | February 1980 |
| Printing: | September 1995 |
| ISBN: | 0-553-26982-8 |
| Format: | Mass market |
| Pages: | 340 |
| Series: | The Baroque Cycle #3 |
| Publisher: | William Morrow |
| Copyright: | 2004 |
| ISBN: | 0-06-052387-5 |
| Format: | Hardcover |
| Pages: | 892 |
Is Croatian kiberkomunist (i.e., cyber-communist ) artist and hacker Marcell Mars living a secret life as a Nantucket Reds -wearing preppie from the American northeast?
| Editor: | Sheila Williams |
| Issue: | Volume 35, No. 4 & 5 |
| ISSN: | 1065-2698 |
| Pages: | 192 |

I'm psyched: A good friend of mine living in another state just
sent me a signed copy of William Gibson's book, Pattern
Recognition. The inscription reads "For Sir Isaac: Don't unleash
any AI into a network you can't power down; wm gibson"
This reference to AI is presumably wrt my job. I've been reading a copy of
this book that I got from the library so as to preserve this signed
one (that I knew was coming eventually).
He also sent me a really minimalist wristwatch that looks like a
hairtie. I like it. It's very light and loose fitting, low-profile
and probably not highly valuable, so I can use it during while rock
climbing and stuff.
The Monad
Reader is a monthly newsletter by Haskellers. From the announcement
email:
This month's issue has a definite introductory theme. It includes republished
book reviews, notes on learning, a look at the differences between functional
and object oriented programming, and distributed computation.
As always, The Monad.Reader invites submissions on Haskell and related
topics. Send a summary or abstract for your article to shae@ScannedInAvian.com
-- Shae Matijs Erisson
Over the last few years, I've been pretty immersed in the world of
wikis. A wiki is like a collaborative web site; it lets several
people view and edit a web page and link to other pages, maybe new
pages that they themselves create.
Wikis let tech-savvy people all over the world collaborate on a
single web page, a single document. That's a pretty powerful idea,
really. The obvious thing to do once an idea like wikis appears is to attempt to cram all of humanity's
knowledge into it. Well that's just crazy enough to work.
Wikipedia is the gold
standard of wikis. It's a collaborative encyclopedia with lots and
lots of articles. As the gold standard, it influences people's
thinking about wikis in ways that might not be quite true.
If Wikipedia were the only wiki you'd ever heard of, you might
think that wikis are used to create encyclopedias. If that were true,
you'd really only need one of them.
If Wikipedia were the only wiki you'd ever heard of, you might be
under the false impression that all wikis everywhere are editable by
anyone. So if you create a wiki page, it's no longer yours. Other
people can scribble on it. Well, some kinds of documents perhaps just
aren't suitable for being edited by anyone, and the good news is that
you can build a wiki for you and your classmates, or you and your
coworkers, and you can decide who gets to edit what.
I want to think about a few distinct uses for wikis in different
contexts. The most common use is of course to create a knowledge
repository; a collection of information written by people who know
what they're talking about. That's what Wikipedia is, mostly. That's
what the Haskell Prime
wiki (which I run) is. And the excellent wiki about the game of Go,
Sensei's Library, is also a
knowledge repository.
But there are other uses for wikis that are pretty cool. I often
have to work on proposals with my coworkers. One (horrible) way to do
this is to write the first draft in MS Word, email it to everyone, who
might edit it and email it back. Of course, only one person can
actually edit it at a time, otherwise I have to figure out what
everyone did and merge their changes by hand. That's what we, in the
computer industry, call teh suck.
A better way to do this is to use a version control system, which lets
multiple people work on a document at one time. Of course, if you're
editing evil document formats like Word, still only one person can
edit it at a time, but at least you cut out email, so things are a bit
better organized.
But wikis are actually a really great way to work on a document
with another person. Two or more people can each collaborate on the
document using the wiki software over the web. What becomes of the
document at that point depends on its ultimate use. Maybe you have to
convert it to MS Word or PDF at the end. That's a bit of a bummer.
So there are two uses of wikis that I've mentioned: building a
knowledge repository, and collaborative writing.
Google started a service for collaborating on documents called Google Docs & Spreadsheets, which is
probably useful for collaborative writing, but not knowledge
repositories. They also acquired
a wiki startup a few days ago, so they are clearly trying to get
all over this space.
There's another very interesting use of wikis that I'll call
situation awareness. You can get a really vivid picture of
this use of wikis if you take a look at the
wikipedia article on the July 2005 London bombings. By the
way, I didn't discover this excellent example of situation awareness
using wikis. I saw it in the slides for a talk, but I don't know the
original source at this point.
If you go to that link, you'll see an excellent and up-to-date
encyclopedia article about the London bombings. It's not a news
article. Go to Google News and
try to find a news article from a major news source which is this
detailed, up-to-date, and well organized. Most articles you'll find
are a snapshot, taken at a particular point in time (when the article
was published) that most likely contains an account of the latest
developments, and usually brief background in case you missed previous
stories.
The wikipedia
article isn't a snapshot, it's an article that explains things in
a logical order, which isn't necessarily chronological.
Each wikipedia article contains a link to its own history. You can
look back over time and see the article evolve. If you look at the
early edit history of that London bombing article, you'll notice
something fascinating. The article was created shortly after the
bombing, with an account of the information that was known at that
time. Within an hour, many people had edited the article, adding
information they know about. If you were refreshing that wikipedia
entry over & over (or if you were subscribed to it using RSS), you'd
see not an account of just the latest developments, but an evolving,
logical understanding of the attacks. The article started evolving
right away, and it continues to evolve to this moment.
That's what I'm calling situation awareness. Don't get me
wrong, the mainstream news media is quite good at situation awareness.
They do it a bit differently, and their articles or TV stories don't
become integrated into a knowledge repository like wikipedia.
I've enumerated three somewhat overlapping uses for wikis that I
think are pretty interesting to examine:
I really enjoy the book The
Pragmatic Programmer. One of the suggestions in this book is to
learn one new programming language every year. Since the new year is
upon us, I though I'd suggest that this year, everyone should learn
Haskell.
So please apt-get install hugs, grab Yet Another
Haskell Tutorial, and get hacking. You'll probably want to have
the Libraries
API bookmarked. You might want to install the Glasgow Haskell Compiler after a
couple of hours.
When you get ready to package your first Haskell library for
Debian, be sure to check out the state of the Haskell Cabal (the Common
Architecture for Building Applications and Libraries).
Here's a basic implementation of cat in Haskell. Compile
With: ghc Cat.hs -o myCatimport System
main = do a <- getArgs
contents <- sequence (map readFile a)
putStrLn (concat contents)
I'd be very happy if folks email
me with suggestions on what programming language, API, technique,
paradigm, or whatever I should learn this year. You definitely get
extra points if you can give me a link to a good tutorial and if an
implementation of the language is packaged for Debian.
Next.