Search Results: "will"

9 January 2007

Alexander Sack: mozilla and thunderbird security patches and packages

... are available for testing. firefox will be available soon. use my security preview archive to help testing this release: For reference: The raw patches are http://people.debian.org/~asac/backports-1.5.0.9.tar.gz

Eddy Petrișor: New laptop #4 (I have decided the model)

The race had 3 finalists:
- HP nx6235 (in Romanian) - incredible low price, fully works (with some patches and except the fingerprint reader) (thanks Marc)
- Dell Inspiron 6400 (aka E1505)
- ASUS F3T-AP008

I have decided against the 64bits AMDs and in favour of long life batteries and Centrino Core 2 Duo architecture.

HP nx6235 failed to meet my criteria of design, reliability (I have heard that local HP service has problems with HP products; waranty is 1 year). The shared video memory was a concern regarding overall system performance.

Dell, well... Dell 32 bit arch... I would have been nice to jump into the 64bit wagon, but I guess that will have to wait for now. Design is nice, the hard disk is bigger by 20GB (we all know disk storage is never enough ;-), Centrino tehnology (Intel seems to be OS friendly and drivers seem to exist for all the components), battery time (I can wait to test the real battery time), has some video memory of its own (HyperMemory - some kind of video cache)

ASUS - the selling points over the Dell were the AMD Turion 64 x2 processor(s), the design (looks nicer than Dell, IMHO), the nVidia video card (which was also a concern due to the proprietary driver and its security holes - sorry, no link), and the not yet working built-in webcam. There was also an bonus: a bag and a mouse, but that almost never works for me. And I had to wait for at least a week for it.

The winner is the Dell Inspirion, they also have it on stock, I already placed the order and I will pick it up after I finnish this entry ;-) .

I can't wait to fire up Debian Installer on this baby.

Update: when I said I'll skip he 64 bit wagon I was thinking (for some reason) that the amd64 bit port does not perform well on the Intel Core 2 Duo processors and I would be forced to use the i386 arch. Thanks for correcting me.
Update: it seems eMag was using false information in their advertising regarding Dell, the system is NOT using Centrino technology since it has a Broadcom wireless lan.

Erich Schubert: SVN $Date$ to ISO 8601 in XSLT

I'm keeping my homepage in a SVN repository; I'm using the $Date$ variable to automatically track the last modification date (though it will also change on minor modifications). For the HTML "Date" meta tag, the W3C recommends using ISO8601 date format. This is the (non-XSLT-2, so no regexp) hack I use for conversion:
<xsl:value-of select="concat(substring($string,8,4),'-',substring($string,13,2),'-',substring($string,16,2),'T',substring($string,19,8),substring($string,28,5))" />
Did I mention I hate XSLT? It's lacking so many standard functions, like date-time processing, regular expressions, exceptions, ... - granted, a lot of stuff was added for XSLT2, but it still sucks badly. Especially the syntax. Here's how to format the date according to RFC 2616, as used in the last-modified meta tag and HTTP/NNTP/SMTP headers:
<xsl:variable name="day" select="concat(substring($string,8,4),'-',substring($string,13,2),'-',substring($string,16,2))" />
<xsl:variable name="time" select="substring($string,19,8)" />
<xsl:variable name="timezone" select="substring($string,28,5)" />
<xsl:value-of select="date:day-abbreviation($day)" />
<xsl:text>, </xsl:text>
<xsl:value-of select="date:day-in-month($day)" />
<xsl:text> </xsl:text>
<xsl:value-of select="date:month-abbreviation($day)" />
<xsl:text> </xsl:text>
<xsl:value-of select="date:year($day)" />
<xsl:text> </xsl:text>
<xsl:value-of select="date:time($time)" />
<xsl:text> </xsl:text>
<xsl:value-of select="$timezone" />
Note that this does not include any error handling and is not very robust. You also need an XSLT processor with some of the ">">">http://exslt.org/dates-and-times extensions such as xsltproc. (Which unfortunately doesn't do XSLT2 yet and doesn't have a regexp extension). [Update: Joel Wreed pointed me to his libxslt plugins, a regexp and a exsl.org/dates-and-times plugin. These would help a lot, though IIRC the date-parse exsl.org spec doesn't support the date format I'd need. (So I can't just say date-format(date-parse(...),...)). Also he said that they basically are unmaintained right now. It would be nice if they could be merged into libxslt, though...]

David Pashley: Reason 82973 why MySQL is a toy

MySQL cleverly maps
CREATE INDEX foo_bar ON Foo(Bar);
to
LOCK TABLE Foo WRITE;
CREATE TEMPORARY TABLE A-Foo ( .... INDEX foo_bar (Bar));
INSERT INTO A-Foo SELECT * FROM Foo;
ALTER TABLE Foo RENAME TO B-Foo;
ALTER TABLE A-Foo RENAME TO Foo;
DROP TABLE B-Foo;
If you have a very large table, expect this operation to take a) a lot of disk space, b) a very very long time and c) block any writes to the table in the process. I don't recommend adding indexes or altering any very large tables that are in production on MySQL, because you won't be in production for quite some time. Update: Tom Haddon asked me if this applied to recent versions of MySQL or to PostgreSQL. Looking at the docs, it appears to still apply to 5.1:
  • http://dev.mysql.com/doc/refman/5.1/en/create-index.html
  • http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
    In some cases, no temporary table is necessary:
    • If you use ALTER TABLE tbl_name RENAME TO new_tbl_name without any other options, MySQL simply renames any files that correspond to the table tbl_name. (You can also use the RENAME TABLE statement to rename tables. See Section 13.1.16, RENAME TABLE Syntax .)
    • ALTER TABLE ... ADD PARTITION creates no temporary table except for MySQL Cluster. ADD or DROP operations for RANGE or LIST partitions are immediate operations or nearly so. ADD or COALESCE operations for HASH or KEY partitions copy data between changed partitions; unless LINEAR HASH/KEY was used, this is much the same as creating a new table (although the operation is done partition by partition). REORGANIZE operations copy only changed partitions and do not touch unchanged ones.
    If other cases, MySQL creates a temporary table, even if the data wouldn't strictly need to be copied (such as when you change the name of a column).
  • http://dev.mysql.com/doc/refman/5.1/en/alter-table-problems.html
As far as PostgreSQL is concerned, it doesn't mention anything about doing the same thing, but does mention that it does a full sequential scan of the table. During this time writes are blocked. You can use the CONCURRENTLY keyword to allow writes to happen, but it does two scans and will take longer, but you can still use your database. http://www.postgresql.org/docs/8.2/interactive/sql-createindex.html

Erich Schubert: Scripting with NetworkManager and network/interfaces

Debians /etc/network/interfaces is a powerful way to setup multiple profiles; NetworkManager is a pretty UI for managing your network. However they don't play well together: NetworkManager will ignore devices managed via network/interfaces. However, NetworkManager lacks a couple of important options, including static IPs and several wireless options; I can't connect to my universities WAP2 network using NetworkManager because of some missing options. This is why I wrote this small script:
#!/bin/sh
# disable network manager:
dbus-send --system \
  --dest=org.freedesktop.NetworkManager \
  /org/freedesktop/NetworkManager \
  org.freedesktop.NetworkManager.sleep
sudo ifup eth1=eth1-lrz
My /etc/network/interfaces contains a working setup for my wireless named "eth1-lrz"; since this differs from the real device name, this works fine. Running this script will tell NetworkManager to disconnect and instead setup the wireless for my university network. When connecting to a different network, I only have to do "ifdown eth1" and then click on the NetworkManager applet to enable it again. (would be "org.freedesktop.NetworkManager.wake")

Michael Janssen: Learned Bad Ideas

There are some things that I have learned over the years as bad practice. There are some that I have learned through reading and contemplation, and a little experimentation. One of the categories of bad things that I have learned is visual aids for statistics. There is basically one cardinal rule for data presented in a graphical form:
Let the user see the actual data.
It seems kindof obvious, doesn't it? I'm presenting data, you should be able to see it. If you want to show me that there are 450 widgets, and 230 whazits, and only 210 whositz, then you should show those. The simplest way of doing this is by just listing them out in a table:
TypeAmount
Widgets450
Whazits230
Whositz210
That's simple, isn't it? However, it doesn't help the viewer any. They're pretty good if you want to know exactly how many of something there is, but not great at other things that you want to do with data. How do you find the minimum (or maximum) of all of the values? You scan, remembering the highest one you saw so far, and then go back to that one and find out. If the goal is to somehow compare, the viewer will be helped out by using a graphical display of some sort. One thing that humans are good at estimating is length. Quick, tell me what we have the least of: Bar graph.  If you're reading this with a text-only browser, this post won't be as interesting. Sorry, lesser-sighted folks.
That was easy, wasn't it. Bar charts are good - they can still be abused by people in evil ways, but most of the time they're pretty useful.

All of this is working up to pie charts. What's smaller, Whazits or Whositz here:
Pie graph.  Text-only people can breathe easy, they can't see the evil.
Is Widgets half or more than half of the pie? Pie charts are the bad seed of the graph world. They aren't very useful, hang out a lot, and don't help you much. The worst thing about pie charts is that they aren't even good at the thing they're supposed to be the best at: comparing relative sizes. Consider thanksgiving, or christmas, or whatever large gathering you prefer where there is pie. Lots of pie slices are laid out on the table. Which one is the biggest? It's hard to tell. It's even hard to cut even slices from a normal pie. Sure, you can cut in 4ths, 6ths, or 8ths, but I challenge you to cut a pie in 5 pieces equally - it's really hard! It's because humans aren't great at judging the differences between angles. They're only really good for seeing one thing: the largest piece in the pie. Even then, it's sometimes questionable - if you looked at a evenly sliced pie, could you tell the difference between a 23% piece from a 20% piece? The bad thing about this is that they are ingrained into our culture. There wasn't a finance report in the last 10 years without a pie chart.

All of this ranting was basically brought to you by a recent post on BoingBoing. This post features the most horrible monstrosity I have seen in a long time: the hierarchial pie chart. Feast your eyes on this monstrosity. I challenge any reader to tell me: what is the smallest third-level category? What is the largest?

8 January 2007

Russell Coker: cooling

Recently there has been some really hot weather in Melbourne that made me search for alternate methods of cooling.

The first and easiest method I discovered is to keep a 2L bottle of water in my car. After it's been parked in the sun on a hot day I pour the water over the windows. The energy required to evaporate water is 2500 Joules per gram, this means that the 500ml that probably evaporates from my car (I guess that 1.5L is split on the ground) would remove 1.25MJ of energy.from my car - this makes a significant difference to the effectiveness of the air-conditioning (the glass windows being the largest hot mass that can easily conduct heat into the cabin).

It would be good if car designers could incorporate this feature. Every car has a system to spray water on the wind-screen to wash it, if that could be activated without the wipers then it would cool the car significantly. Hatch-back cars have the same on the rear window, and it would not be difficult at the design stage to implement the same for the side windows too.

The next thing I have experimented with is storing some ice in a room that can't be reached by my home air-conditioning system. Melting ice absorbes 333 Joules per gram. An adult who is not doing any physical activity will produce about 100W of heat, that is 360KJ per hour. Melting a kilo of ice will abrorb 333KJ per hour, if the amount of energy absorbed when the melt-water approaches room temperature is factored in then a kilo of ice comes close to absorbing the heat energy of an adult at rest. Therefore 10Kg of ice stored in your bedroom will prevent you from heating it by your body heat during the course of a night.

In some quick testing I found that 10Kg of ice in three medium sized containers would make a small room up to two degrees cooler than the rest of the house. The ice buckets also have water condense on them. In a future experiement I will measure the amount of condensation and try and estimate the decrease in the humidity. Lower humidity makes a room feel cooler as sweat will evaporate more easily. Ice costs me $3 per 5Kg bag, so for $6 I can make a hot night significantly more bearable. In a typical year there are about 20 unbearably hot nights in Melbourne. So for $120 I can make one room cooler on the worst days of summer
without the annoying noise of an air-conditioner (the choice of not sleeping due to heat or not sleeping due to noise sucks).

The density of dry air at 0C and a pressure of 101.325 kPa is 1.293 g/L.

A small bedroom might have an area of 3M*3M and be 2.5M high giving a volume of 22.5M^3 == 22,500L. 22,500 * 1.293 = 29092.500g of air.

One Joule can raise the temperature of one gram of cool dry air by 1C.

Therefore when a kilo of ice melts it would be able to cool the air in such a room by more than 10 degrees C! The results I observe are much smaller than that, obviously the walls, floor, ceiling, and furnishings in the room also have some thermal energy, and as the insulation is not perfect some heat will get in from other rooms and from outside the house.

If you have something important to do the next day then spending $6 or $12 on ice the night before is probably a good investment. It might even be possible to get your employer to pay for it, I'm sure that paying for ice would provide better benefits in employee productivity than many things that companies spend money on.

Stefano Zacchiroli: vim lbdbq plugin

Querying Lbdb from Vim In spite of my attempts for replacing Mutt with Evolution I gave up for several reasons, mainly in my experience Evolution isn't stable enough with huge mailboxes: it crashes often and is painfully slow. Now I'm back at using Mutt, but at least I've learned to use the Evolution address book which is nice, integrated with other Gnome apps (gaim for example), and strictly more powerful than the Mutt address book. I'm using lbdb to query the Evolution address book from Mutt via the external address queries mechanism. But that sucks in various ways:
  1. names should be expanded one by one hitting CTRL-T, changing the headers in Mutt one by one (first To:, then Cc:, then ...)
  2. I like to edit headers while composing the mail in Vim, but names written there in the various recipient lines (To:, Cc:, ...) are not handled properly. For example if I fill the To: line with To: name surname when exiting Vim mutt will collapse it in a header To: namesurname which can no longer be passed successfully to lbdb
My solution is lbdbq.vim a plugin for Vim which enables expansion of contact names directly withing Vim (normal/insert/visual modes). It supports multiple matches asking interactively the user to choose among them and can be used to replace all contacts in one or more recipient lines at once. It's new, so it's probably bugged. If you sit like me at the intersection Mutt/Vim/Evo-address-book please test it and give me some feedback. As a side note, this is the first time I program in vimscript after the release of Vim 7.0. I have to admit that is really becoming more pleasant than what it used to be. Lists and Dictionaries really (try to) bridge the gap between pre-7.0 vimscript and programming Vim with external languages (python/perl/...). Update #1: lbdbq.vim 0.2 released with an important bug fix for RFC822 fields continuation line and other minor improvements. Update #2: Vimscript #388 provides similar features to lbdbq.vim and is older. Still lbdbq.vim is more feature-complete, have a look at the Discussion page fore more info.

Pierre Habouzit: POSIX DNS APIs considered harmful.

I'm quite upset with the POSIX APIs. I'm trying to write some kind of simple piece of software, to be included in a mail chain, doing a lot of DNS queries, mostly to RBLs. I've met two kind of problems:
  1. the POSIX API is synchronous, and absolutely no usual API for non blocking requests exists, there is of course:
    • adns, but it's very bloated, does not work with ipv6,
    • c-ares, but it's quite bloated, does not work with ipv6, and need select (cannot be used with epoll e.g.),
    • libdnsresolv (hahahaha, that's an horrible patch over the BSD resolving API, it's horrible, yuck),
    • udns, that's the best of the four, but still, the code do not feels very well, solid (do not check recvfrom/sendto errors e.g.).
  2. there is no way to escape the system resolver, which is good for usual applications, but very bad when it come to RBLs.
The second point is in fact the worse. On mail queues I administrate, there is also very often a bind that is used as a caching DNS resolver. Very well, except that it complectely sucks with RBLs. RBL generate a lot of queries that resolve and that you will almost never ask again before its TTL expires, and the other kind of queries you do get NOT FOUND answers, that are usually not cached. Too bad, the most useful answers are the NOT FOUND ones, and the cached answers are just here to make our local cache use huge amounts of memory for nothing. So RBLs just end up poisonning your system efficiency. That's quite ridiculous. I'd really love to have a decent async resolver API, and a way to tell my DNS cache (here BIND) that the domains serves a RBL, and that I (for at the same time the sake of the RBL and from my system) want specific caching features for it. I fear that it wont be possible, and that I will end up writing some API specifically designed to craft DNS queries to the RBL servers (once again there is absolutely no reason to use forwarders for that, as it will end up by screwing your forwarder cache for almost no gain, and won't save you from a lot of useless queries with no answers at all). The good point is that the kind of queries you need to do to RBL servers is indeed completely trivial: Then implementing on top of that some efficient caching (RBL-aware) will be rocking fast, and way more efficient than bind caching, without the poisonning effects. A big gain I hope. What suprises me the most, is that I've not found anybody speaking about those side effects of RBLs on nameservers, almost no discussion at all. Very surprising for a protocol that is so vital for the internet as a general rule.

Eddy Petri&#537;or: New laptop #3 (hardware compatibility - mandatory rant)

I am deeply missing a real wiki.debian.org/Hardware page. The current one is a joke. It would be nice to have something in the style of the Gentoo hardware page with nice pages which show what works and what doesn't.

I know about the Debian GNU/Linux device driver check page which is a good start, but:

Current situation (bad stuff)

wiki.debian.org/Hardware is a joke. For example, I was expecting to see a Network compatibility list, but instead I see some useless info.

What annoys me the most in this matter are dead links or links to dead/inactive projects.

Information is scattered all over the place (redirects and directories can help), is mixed/ungroupped, or is outdated.

Current situation (good stuff)

The information partly exists. Probably, in time, the wiki will be cleaned up, but until then you have to dig for the information.

There are plenty of sites and pages with information, but, still, you need to weed out the old/irrelevant stuff.

What to do about it

Before you say anything, no, there is no need for yet another Linux compatibility list project.

Ideas:
Update: Justin told me about the Ubuntu Laptop Testing Team project which is kind of nice. There is also a scraper script which was supposed to help making queries like "info about laptop X" and "which laptops have these features", but that script didn't work for me.

Maximilian Attems: Unbreakable IBM

Three letters corporations don't inspire confidence (junk code, big tactics, ..). Nevertheless Thinkpads i will miss you. My current workhorse is a x41 Thinkpad. The default model has a bad battery life. Yeah the x40 are cool and with much better battery life out of the box, but they need this mad atheros binary hal junk (the ath free replacement goes nowhere right now :(. No i won't taint the running kernel. So just buy a battery upgrade and be happy.
In August cycling i got badly hit by a car. Making a cool stunt on asphalt with a crashed helmet and hurt everywhere. The laptop being unprotected in backpack. No complaints from the X41. Throw it across rooms and it happily boots. Exposing it to dust did not cause any high pitch noise like some earlier Vaio.
As Thinkwiki will tell you the Hitachi hdd are not really worth to put data on them. I got mine easily exchanged 2x. I wouldn't care less thanks to git, imapd and frequent backups.
As you can probably imagine the story of unbreakable doesn't stop here, but i won't leak current experiences "nancy" had to endure. Anyway i wanted to join in the Thanks to all the peoples that make Debian the pleasure to hack and work on! Big props to the Release Team for coordinating the fine Etch product.

Adam Rosi-Kessel: Silent Copyright

Via the Trademark Blog, My Cage — digitally generated silence for cellphone:
My Cage (Silence for Cellphone) dispenses with performer, piano and auditorium, instead utilizing a continuous stream of silence produced on a computer, and compressed to ringtone format. While noting that Mr. Keats doesn’t have a cellphone of his own, and may be less-than-qualified to make global pronouncements about them, the CEO of the company that distributes the ringtone believes that “My Cage” may be a platinum hit. “People want a respite,” he says, “and not everybody has the time or money to go to a spa. The virtues of silence are unsung.” Nevertheless, Mr. Keats is careful not to take credit for silence in general, and hopes that people will bootleg his creation, just as he was inspired by John Cage. Mr. Cage, who died in 1992, could not be reached for comment.
I hope the IP professors in the crowd are preparing a hypothetical for the next round of exams.

7 January 2007

Russell Coker: Xephyr

As part of my work on Xen I've been playing with Xephyr (a replacement for Xnest). My plan is to use Xen instances for running different versions of desktop environments. You can't just ssh -X to a Xen image and run things. One problem is that some programs such as Firefox do strange things to try and ensure that you only have one instance running. Another problem is with security, the X11 security extensions don't seem to do much good. A quick test indicates that a ssh -X session can't copy the window contents of a ssh -Y session, but can copy the contents of all windows run in the KDE environment. So this extension to X (and the matching ssh support) seem to do little good.

One thing I want to do is to have a Xen image for running Firefox with risky extenstions such as Flash and keep it separate from my main desktop for security and managability.

Xephyr :1 -auth ~/.Xauth-Xephyr -reset -terminate -screen 1280x1024

My plan is to use a command such as the above to run the virtual screen. That means to have a screen resolution of 1280x1024, to terminate the X server when the last client exits (both the -reset and the -terminate options are required for this), to be display :1 and listen with TCP (the default), and to use an authority file named ~/.Xauth-Xephyr.

xauth generate :1 .

The first problem is how to generate the auth file, the xauth utility is documented as doing it via the above command. But this really connects to a running X server and copies the auth data from it.

The solution (as pointed out to me by Dr. Brian May) is to be found in the startx script which solves this problem. The way to do it is to use the add :1 . $COOKIE command in xauth to create the auth file used by the X server, and to generate the cookie with the mcookie program.

In ~/.ssh/config:
Host server
SendEnv DISPLAY

In /etc/ssh/sshd_config:
AcceptEnv DISPLAY

The next requirement is to tell the remote machine (which incidentally doesn't need to be a Xen virtual machine, it can be any untrusted host that contains X applications you want to run) which display to use. The first thing to do is to ssh to the machine in question and run the xauth program to add the same cookie as is used for the X server. Then the DISPLAY environment variable can be sent across the link by setting the ~/.ssh/config file at the client end to have the above settings (where server is the name of the host we will connect to via SSH) and in the sshd_config file on the server have the line AcceptEnv DISPLAY to accept the DISPLAY environment variable. It would have been a little easier to configure if I had added the auth entry to the main ~/.Xauthority file and used the command DISPLAY=:1 ssh -X server, this would be the desired configuration when operating over an untrusted network. But when talking to a local Xen instance it gives better performance to not encrypt the X data.

The following script will generate an xauth entry, run a 1280x1024 resolution Xephyr session, and connect to the root account on machine server and run the twm window manager. Xephyr will exit when all X applications end. Note that you probably want to use passwordless authentication on the server as typing a password twice to start the session would be a drag.

#!/bin/sh

COOKIE= mcookie
FILE=~/.Xauth-Xephyr
rm -f $FILE
#echo "add 10.1.0.1:1 . $COOKIE" xauth
ssh root@server "echo \"add 10.1.0.1:1 . $COOKIE\" xauth"
echo "add :1 . $COOKIE" xauth -f $FILE
Xephyr :1 -auth $FILE -reset -terminate -screen 1280x1024 $* &
DISPLAY=10.1.0.1:1 ssh root@server twm
wait

Ross Burton: Asynchronous Flickr Library, version 0.1

I'm finally releasing version 0.1 of my Flickr library, flickrpc. The name is actually misleading, and I should change it for 1.0, as the class name is flickrest and the transport protocol is HTTP/REST, not XML-RPC (as was the original plan, thus the name). This library is written in Python and uses Twisted.
Why another Flickr library?
Because Postr required it. All of the existing libraries that I know of are blocking (I used to use Beej's flickrapi, which was based upon Michele Campeotto's flickrclient), which makes using them in GUI applications painful. Early versions of Postr used threads so that uploading could be done in the background without blocking the UI, but as Postr makes more calls to Flickr whilst being used interactively these threads will become a maintaince nightmare. By using Twisted all of the network operations are handled in the main loop, and I can write callback-based network code just like I write callback-based UI code.
Why Twisted?
Because it works, and is popular. If someone has a HTTP client library that integrated into the GLib mainloop and will expose callbacks when operations complete, please tell me. I love what Twisted gives me, but at the end of the day if there is a simplier solution, I'll consider it.
Sounds excellent! Where can I get it?
There is a tarball of 0.1 available here: flickrpc-0.1.tar.gz. If you want to track the latest development, or contribute patches, there is also a Bazaar archive.

Christian Perrier: See you in EDI

After my rehearsal from yesterday, I finally booked my flights to Edinburgh for Debconf 7. I'll fly from CDG terminal F on June 15th 16:15 (AF5052) and will fly back to CDG on June 24th 09:05 (AF5051). The return flight is somewhat more expensive than later flights (about 30EUR more) but much more convenient for me. See you in EDI, ladies and gentlemen...

Evan Prodromou: 16 Niv se CCXV

Amita June is reaching a point in her life where it's time for us to start weaning her from breastfeeding. Most parents do this much earlier, if they breastfeed at all, but we've been devotees of attachment parenting for a while, and we wanted to give her as much time nursing as possible. But at 15 months, she's ready to start doing things like sleep through the night on her own, drink only cow's milk, and be a little more independent. So, this month we're starting to do some night weaning. What does this mean? First of all, Maj is no longer nursing the baby to bed. She now is doing the main pre-sleep prep work (a bath), does a short nursing period, and then hands the baby off to me for some reading, songs, and walking down to sleep. This will gradually move into fewer, shorter nursings before sleep, and ultimately to none. Once that connection has been broken, I think the main point of nursing will be occasional comfort nursing during the day. Gradually, that will fade out. And then there will be none. It's kind of exciting to be the Primary Sleep Guy for the baby. We're re-connecting in a way that we haven't in a while -- I was only putting her to bed occasionally for a quite a while. It's also been pretty successful so far, which has been good. tags:

Souper Bruncher When Maj and I first moved to Montreal, we had help from some friends who we'd known from before. After we moved into our apartment, we invited them all over for dinner to say thanks. In order to get to know people in our new hometown, we also asked each person to bring someone we didn't know, so we could make new friends. The event was so successful, and we met so many new people, that we made it a regular occasion. For almost three years, every Tuesday night we invited friends over to our home for dinner (or souper in Quebecois French), with an open invitation to meet new friends and interesting people. It was a great way to meet interesting folks in Montreal, and most of our best friends here we met through these dinners. We were even profiled in Elle Quebec as a model for how to make new friends. But when the baby was born, we just couldn't manage to organize dinners any more every week. Cooking for 20+ people isn't that expensive, especially since we're pescevegetarians and that kind of food just isn't that costly. But it does take a lot of time and energy, and with a newborn baby we just didn't have either. Now, with Amita a little more than a year old, we're trying to start up our regular home parties on a more manageable scale. We're doing brunch at our house on Sunday afternoons around 3PM, with a much smaller list of invitees, requests for RSVPs, and a clear indication that the event only goes until bedtime. (Our Tuesday night dinners would occasionally stretch until dawn.) It seems to be working pretty well; we've had a lot of fun at the last couple of brunches we've had. And brunch is a much more laid-back meal than a dinner party, anyways. (Although John Usher asks incredulously, "By what stretch of the imagination is 3PM between breakfast and lunch?") I'm looking forward to our next brunch (tomorrow) a lot, and I hope to get many more friends over to our home in the next few months of Sundays. tags:

Eddy Petri&#537;or: New laptop #2

A new laptop means more things than just new hardware.
  1. I will no longer have a PowerPC machine; it has been fine, I have been spoiled by Apple hardware and design, but I also had my share of bitterness (like it or not flash is ubiquitous, wlan works on i386 hardware via ndiswrapper, wine is good enough when no free alternatives are around)
  2. my father will use my current laptop in OS X; as sad as it may sound I am glad I will not have to administer the machine that much, and, like it or not, the OS X is better suited for him since he is not "that" skilled with computers
  3. I can't work on powerpc/bigendian specific issues, thus, the long pending and incomplete glest big-endian support patch will have to find a new person to take care of and finish it. BTW, the glest project needs developers, the current ones are busy and can hardly do maintainance. Is a pitty, the game has incredible graphics.
  4. I will be able to test the Debian Games Team's games... and I will be able to play again cursively Oolite. (BTW, Oolite should autobuild now, but it seems it hasn't been autobuilt, just the upload architecture is on version 1.65-4)

Adam Rosi-Kessel: Preventing Burglary

According to my neighborhood newspaper (the Roslindale transcript), there has been a rash of late-night home burglaries in the area lately. Although the paper calls them “robberies,” they are probably more accurately burglaries (and thefts). Common law burglary requires breaking and entering the dwelling of another during the night with the intention to commit a felony therein; robbery requires taking property from a person by force. (Modern statutory definitions of burglary typically do not require the “night” element). In any event, my point is not to quibble with the legal terminology, but rather to question the preventitive measures. From the article:
Captain James Hasson of District E-5 said that this robbery does not fit the mold of the Bellevue Hill break-ins. … Hasson said he was very shocked because Rendall Road is a beautiful, quiet neighborhood that doesn’t normally see violent crimes. He added that there have been extra patrols of the Bellevue Hill area and there will now be extra patrols of the Rendall Road area.
On a much smaller scale, this response is similar to the air travel liquid ban that occurred shortly after the foiled transatlantic bomb plot from last August. Obviously a complete ban on liquids will make it less likely that a terrorist will concoct a liquid explosive plot, but does nothing to actually deter attacks overall. Similarly, once a house on a particular street has been burglarized, adding additional patrols on that street might make another attack on that street less likely, but I don’t see how it makes the community as a whole any safer. More likely this response makes the community less safe. Assuming the total amount of police protection hasn’t changed but just been reallocated, there are now other areas with less coverage. Even a dumb criminal should be able to figure out to avoid heavily policed areas. Unless you actually live on the street that is now getting the additional protection, I would not be reassured by this news.

6 January 2007

Clint Adams: The NSA wants to protect you from bad guys

10/01/05 10:47PM - Me too. Drunk, partying, and telling EVERYONE about you. all my love. 10/02/05 12:24AM - I'm back. Long day, but if you want to talk, I'm here. Love you. -Sparky 10/03/05 01:27PM - My soul's joy, I am jealous of that breeze, though in caressing you it warms my whole world. I will give you monsoons. -Sparky 10/03/05 07:58PM - I never get tired of hearing it, and I love telling you...I love you. -Sparky 10/04/05 04:11PM - Been a wonderful day-despite having puns about melons and the phrase "honeydew me" stuck in my brain. My other ubiquitous thought has been "I love her so much" 10/04/05 06:33PM - Saw you were feeling moody, so I hope this tips the balance to something positive: *kiss*...I love you, XXXXX. -Sparky 10/05/05 09:02AM - I was so tired this morning I wore my ugliest shirt to class (purple stripes-I look like an asphyxiated candy cane); but waking to thoughts of you-worth it. 10/05/05 10:41AM - And just for good measure-and because I can't stop myself-I love you, XXXXX my darling. -Sparky 10/06/05 01:07PM - Know what? I love you. *kiss* 10/07/05 12:36PM - X. - It's raining here, so I'm thinking of my sunshine. *kiss* -Sparky 10/09/05 02:09PM - Sleep, rest, recover from your ephermeral MS, party girl. And be warm in my love. *big kiss* All my love to you, my darling. - Sparky 10/10/05 12:58PM - Tired today, but each time I close my eyes, however briefly, I think of you- turning fatigue into elan. Love you, hon. -Sparky 10/12/05 03:49PM - Everything about me misses you, longs for you, and loves you. I love you a ridiculous amount, my sweet everything. - Sparky 10/14/05 03:59PM - The incompetence is especially charming, my dear. Of course I love you that much more now. 10/14/05 07:52PM - Everything okay? If you need some armchair navigation or some comp'ny, give a holler. *kiss* 10/19/05 03:39PM - Getting coffee filters. Long line. 10/21/05 09:55AM - One weirdo showed up. *sigh* Drive safely. I love you. 10/21/05 11:52AM - Zero...surprise. *smooch* 10/25/05 08:36PM - Novacaine, bad reception, long drive, and snow. Long weekend. I'll talk to you tomorrow, dear. 10/26/05 11:28PM - Sorry, really tired today (weather) so just sitting on the couch. Read your LJ, figured you'd be tired. 11/01/05 03:47PM - Been terribly over-worked; it's semester crunch time. Sorry for being unavailable but it can't be helped. I'll try to call b/n classes tomorrow. :-) 11/01/05 08:24PM - Thanks dear. I've dealt with worse though.

Martin F. Krafft: Credit card verification codes

There once was a credit card number tied to a name and when it was abused, the credit card company decided to tie it to an expiration date. It didn't take long until gifted hackers found out that twelve months and an average life cycle length of two years required them to check each credit card number against the 24 possible expiration date month-year pairs, so the credit card companies also required the billing address to match (at least fuzzily). Unfortunately, many of the companies accepting and storing credit card data are run by clueless people and the data sets of names, numbers, expiration dates, and billing addresses leaked, causing even more organised abuse. The credit card companies did not like that and proceeded to invest tiny amounts of additional energy and manpower into improving the status quo. So then, one day, in the dungeons of the credit card company offices, a bright young graduate from one of the American elite colleges yelled "heureka" [*] and outlined how to secure credit cards with the "credit card verification code" (CVC), printed on the back of each card printed, not stamped like the number. Maybe his/her theory was that the stamped number could be read from both sides, so a printed CVC would only be readable from one side of the card, bringing instantaneous 200% security increase. Maybe it was some other theory. In any case, the companies readily adopted the CVC and by today, every web form will ask you to also enter the CVC. They'll probably store and leak it too. What's next? Credit card colour?
[*]"Heureka" is Greek for "this bath is too hot" [Dr. Who].
NP: OSI / Free Update: Andrew Pollock points me to the Wikipedia article on CVC as good reading. Indeed, the article explains security benefits in face-to-face transactions and in the socalled "card not present" situations, like ordering over the Internet. Apparently the CVC must not be stored, so in some ways they have learnt from the past. I know of at least one merchant in the US who stores the CVC in my profile though. Update: Mark Brown adds: "The CVC is being used because it defeats attacks like taking a photo of a card with a mobile phone: it makes it usefully harder (not impossible) for people to transparently clone cards." This squares with the Wikipedia article.

Next.

Previous.