Search Results: "ema"

24 January 2007

Enrico Zini: package-managers

Improving package managers I noticed two posts on improving package managers none of which mentions Debtags. Daniel Burrows mentions various issues: David Nusinov mentions that the ideal package manager should look like Google, where you search for things using just a simple one line text entry and pick from the results what you want to install. I should probably do a bit of recap of things that have been going on. I'll go through that list again:
  • The current sections in Synaptic are useless
Agreed. This used to be a bug about this, which has been closed by Debtags more than one year ago. We now have much more useful category data for about 73% of the archive (including experimental), but what we lack is software using it. Here's a quick trick to try:
  1. install debtags, and this gives you an easy to read text file in /var/lib/debtags/package-tags.
  2. from that file, pick packages that have the tags role::program, scope::application and interface::x11.
  3. display the results, and use the tags works-with::* and use::* to navigate the results.
There is a python-debian package in experimental that has a debtags module you could play with. Why is that that so far noone has written a simple package manager just for gamers, which uses only the game::* tags? Do you think Debtags gives you too many tags? Then check out: To summarise so far, we not only do have better categories, but also a number of cool algorithms to use them, and some interface prototypes as well. Just don't expect me to write a package manager as well: that's a job that so far I decided to leave to someone else. adept gave it a try, with positive results.
  • there are better keyword search technologies than strstr()
Indeed, Xapian for example. I use it as part of the backend of the Debtags smart search, and here's our Xapian-powered normal keyword based package search interface which does stemming, indexing and all you want to ask from a serious full text index. In that page you don't see all the nice features of Xapian, but only the ones that I needed for my Debtags evil plans. Have a look at the documentation and give it a try. Here is a way to see Xapian's similarity matching in action:
  1. go to the Go tagging! page
  2. click on a random untagged package
  3. the system gives you a rather relevant selection of tags
  4. look at it again: the package was untagged: how could the web engine possibly figure those tags out?
What is happening under the scenes is that:
  1. I ask Xapian: "what packages are similar to this one?".
  2. I aggregate the tags of the resulting packages.
  3. I rank the tags by how many resulting packages have them.
While we are on this topic, why don't we decide that we maintain a Xapian index of our package descriptions in, for example, /var/lib/apt/fulltext/, so that various applications can share it? Indeed. Anyone would like to implement this little "popcon" tool? Having the data easily accessible locally can encourage people to use them. The Debtags Go tagging! page already uses popcon data to show the most common untagged packages at the top, with double reason: it shows packages that more people are likely to know (and therefore likely to categorise) and it pushes for the most common packages to be tagged more urgently. Indeed. Anyone volunteers to implement a prototype? The full unaggregated (but anonymised) popcon data are accessible to every Debian Developer on the host gluck.debian.org in the directory /org/popcon.debian.org/popcon-mail/all-popcon-results. Ideally one can do many interesting things with this concept: besides tag suggestions, one could identify the packages that are most representative of an installed system, and also offer negative suggestions like: "people who have packages like yours usually don't have this package: would you like to remove it?". There is more than all this that could be done. Recently, almost by accident, I had the idea of querying packages by example, like pointing to a file and find packages that can work with it. I've asked Jeroen to have Mole collect info on all files that could possibly get installed in /usr/lib/mime/packages/ (as suggested by Bernhard R. Link), to see if that prototype can be made more accurate. Query by similarity would be nice: I don't like this program, but what else do we have that does the same job? This is best implemented using Debtags data, since it directly maps to semantic properties. Note that you don't have to show a single tag to the user to implement this kind of interface. Do we have a way to point at the X window of an application and get the name of the package that installed it? Wouldn't it be about time to have it? Why don't we have a system updater utility that shows the Debian weather? Why aren't more people playing with semantic web? But more generally, the problem with package managers is that we seem to be irrationally compulsive in wanting to make the one and only big easy and complete interface for everyone. Other more reasonable people would tell you that if you have two very different kinds of users you may want to consider having two different user interfaces. Ubuntu for example installs by default 3 package manager interfaces: Synaptic; the thing that you access from the application menu to add applications to it; and the update manager. Does it sound like a waste? To me it makes lots of sense. We have lots of interesting, usable metadata; we have algorithms; we have prototypes; we have ideas for lots of cool, implementable features. The question is, are we able to write applications that just combines what is needed from all this treasure to provide the right interface(s) for our base(s) of users? Even if my English in 2004 wasn't easy to understand, a read here might still be useful. There is so much really cool stuff to be written, just within reach.

Biella Coleman: Green Mapping

I was hoping to find a “green” dry cleaner in Edmonton and have had no luck finding one (so now it is just me and the bathtub and woolite). But I did happen upon this nifty five limes site that helps you locate those super-hippie-hot-spots in major cities in the US and Canada (Edmonton does not count as a major city). It is somewhat incomplete but there is a decent start there.

Miriam Ruiz: Burnout

According to Wikipedia: “Burnout is a psychological term for the experience of long-term exhaustion and diminished interest (depersonalisation or cynicism), usually in the work context. Burnout is often construed as the result of a period of expending too much effort at work while having too little recovery, but it is sometimes argued that workers with particular personality traits (especially neuroticism) are more prone to experiencing burnout.” In this web page there’s a global overview of burnout that might be useful: Burnout is a chronic condition that happens when your body or mind can no longer cope with overwhelmingly high demands. You are trapped in a state of emotional exhaustion, and it is hard to get out of that state. You stop caring about what you do, even though you may feel guilty about that fact. Even if you still continue working, it seems to be hard to make progress. You hardly accomplish anything significant, just go through the motions. Certain categories of people and professions are particularly susceptible to job burnout. Most often these are people who are highly committed and motivated, who have high standards and idealistic dedication to their jobs. Common burnout causes include: For all of those burnout causes what is important is not as much the external factors that fall on you, but how you interpret them, what you say to yourself, and what actions you take in response. Finally, it is important to understand the risks of burnout in your personal or job situations. Once you are its victim, it may not be easy to get things back on track. That condition does not go away in a day. You may not be able to recover by yourself, and you may need to have drastic changes in your attitudes and life style. You are much better off preventing it now than putting your life back together later. Some links:

Christian Perrier: Respect

Dear M. Mouette, in my world, calling someone by his/her first name is a sign of familiarity and proximity. In short, when I use someone's first name, this is because I share something with him/her. As far as I can tell, this is a pretty common habit inside political parties. You know, the things very few people in our country involve themselves in (myself first), which makes easier later to complain about the lack of political conscience in our country. Please also note that I do not tend to write down my blog posts with the same care I write my professionnal reports or work. In short, I may sometime include wording mistakes and even sometimes use some inappropriate ways to share my ideas. This is the blogosphere, my friend... As far as I have re-read it, that "inappropriate" use of Segolene Royal's first name happened once in the entry title while the remaining of the blog post was appropriately balanced. I also tend to use respectful wording to mark my distance with someone. I use the same when choosing between "tu" and "vous" in our language. It even sometimes goes to the point that this is done on purpose. I would have rather appreciated comments about the general content of that blog post more than the way it was written. That is also respect, so please don't give me lessons about respect or I will have to seek for correct translations of "l'h pital qui se fout de la charit ".

23 January 2007

Lars Wirzenius: Debian: Project Ummikko: Final report

Last July, I started an experiment, called Project Ummikko, with a friend of mine to see how well Linux is suited for a new user who has used Windows for many years, but is not a techie. I installed Debian, with GNOME, for her, and she went cold turkey: she started using Linux only, unless there was something she had to do, but could not achieve under Linux. It has been half a year, and it's time to report on the results. Translating and abbreviating her own words:
The good part of using Linux is that I don't need to worry about viruses or defragmenting the hard disk and so on. I would be happy to remain a Linux users for things like that. In basic everyday use I'm happy. The things that make me want to return to Windows are gaming, flash and other multimedia, and a feeling of helplessness. I want to play Alpha Centauri and adventure games I can borrow from friends. Flash doesn't work, and installing software from Debian via Synaptic is difficult, I'm not comfortable with it. With Windows, I'm used to being able to go online to find a program to solve some problem I have, or some plugin I'm missing, or some toy program I want, and after a few mouse clicks, I have it installed. There's many things that just don't work with Linux, like Second Life, or when my ISP would give two free movie downloads this month and next, but it only works on Windows and Mac. I have a feeling of being left out. I could manage with Linux, with the assumption that I have someone like Lasu to do installation and tweaking. The best thing about this experience? It was interesting to be able to make the experiement, the meta level has been the best thing. The best thing about Linux is the kind of maintenance things like no viruses or defragging, Linux doesn't rot like Windows does.
After we had the above interview, I upgraded her Debian, and this fixed at least most of the problems related to flash. Synaptic remains uncomfortable, and there's not much that can be done about Windows-only software. I was pleasantly surprised by the results. I had expected much worse problems, but I'm happy to report now that Linux really does seem ready for the average Windows user. The uncomfortability of Synaptic may be partly due to the fact that it is a different model from Windows: you get all your programs from one place, instead of anywhere on the Internet, partly due to just not using Synaptic much at all, and partly due to Synaptic not being perhaps as easy to understand as possible. I personally find Synaptic to be very nice, and use it regularly, but I am biased by having used Debian package managers for over a decade. Even if she had learned to use Synaptic, it would, of course, not have been enough: there's lots of Linux software that hasn't been included in Debian. My friend therefore feels that it would be nicer, more liberating, to be able to just download any old Linux software from a web page and install it easily. My conclusions: package management for Debian based systems could do with some work targetted towards neophytes. I am sure there are things that could be done to make package installation easier, less daunting, without dumbing down the system.

Erich Schubert: Boycott adea solutions

... for being stupid spammers. Obviously they polled some blog search engine (maybe Google's blogsearch) for some keywords like Java, tried to guess the name from that and grabbed email addresses they could find. I just received this stupid "job application offer":
Good Afternoon Planet,

I represent a major Airline in Dallas, TX. We have 3 openings for C Developers with Java, Unix, Sybase and Oracle skills. Basically our client is doing a 2 year migration from C to Java and needs C language Guru's.
This "major Airline in Dallas" (Southwest? Amerian Airways? I don't know.) should maybe be looking for a different company to do their development. The company they are using right now, Adea Solution, obviously: One more quote:
**I apologize if you are not looking. We have a system here that pulls information from the web and does not distingish between those who are current and those who are not.**
If you know that your system is crap, just don't use it. Instead of spamming. If I were looking, I wouldn't put "I'm currently not looking for a job" on my homepage. And I'd probably try to get in touch with someone professional.

Erich Schubert: Boycott adea solutions

... for being stupid spammers. Obviously they polled some blog search engine (maybe Google's blogsearch) for some keywords like Java, tried to guess the name from that and grabbed email addresses they could find. I just received this stupid "job application offer":
Good Afternoon Planet,

I represent a major Airline in Dallas, TX. We have 3 openings for C Developers with Java, Unix, Sybase and Oracle skills. Basically our client is doing a 2 year migration from C to Java and needs C language Guru's.
This "major Airline in Dallas" (Southwest? Amerian Airways? I don't know.) should maybe be looking for a different company to do their development. The company they are using right now, Adea Solution, obviously: One more quote:
**I apologize if you are not looking. We have a system here that pulls information from the web and does not distingish between those who are current and those who are not.**
If you know that your system is crap, just don't use it. Instead of spamming. If I were looking, I wouldn't put "I'm currently not looking for a job" on my homepage. And I'd probably try to get in touch with someone professional. [Update: their homepage appears to be unreachable... looks like someone else was even more annoyed than I...]

Raphaël Hertzog: More fun with Linux and serial ports on slow hardware

This is a never ending story for me. The first time I’ve had problems with Linux’s handling of serial UART dates back to 2005 (see my previous blog post on buffer overruns). At that time I could improve the situation by applying two patches (kernel-preempt and low latency). One year later, I have a situation where the buffer overruns are again easily reproducible at slower baudrate (54 kbauds), arguably there’s more than a serial application running this time, and it looks like the load generated by other processes (mainly watching digital I/O) renders the system less reliable with respect to its handling of serial ports. This time I follow the advice to try out the 2.6 kernel because many “real-time improvements” (coming from the -rt branch, check its wiki) and “embedded improvements” (coming from linux-tiny) have been merged. So I tried the stock kernel with very bad result. Results are better than the stock 2.4 but they are worse than the patched 2.4. So I decide to try the -rt patch on 2.6, but this patch doesn’t work on my CPU card and my bugreport didn’t lead to any fix (nobody responded even though I tried hard to include the necessary information and I was ready to do whatever I would have been asked to try). At the same time I explain my problem on the linux-kernel mailing list. The discussion doesn’t answer my questions but still brings two ideas to try out. In the end, with two simple tweaks to the stock 2.6 kernel (mainly configuring the UART to send the interrupt as soon as the first character arrives, instead of waiting for 8 chars to accumulate in the FIFO) I have been able to get something better than the patched 2.4. And it turns out my first choices for the 2.6 kernel configuration have not been very wise so the comparison between stock 2.4 and stock 2.6 above doesn’t mean much. Unfortunately, even if better than the patched Linux 2.4, it still doesn’t give good results in some conditions. So my primary question remains: is there a way to patch my kernel so that it will handle the serial related tasks (servicing interrupts from the UART mainly) as its primary job ? I don’t mind if such a change impact negatively the speed of the system if I can make sure that my serial exchanges are reliable. And by reliable I mean of course no buffer overruns, but there’s a second similar problem that has been discovered: when using software handshake, the system can send out between 10 and 25 characters after the partner has sent its XOFF. Sending up to 6 characters after the XOFF is ok, more is asking for troubles because the UART on the other side will probably encounter a buffer overrun… If you have any idea on how to resolve my problems, by any means, let me know.

Steve Kemp: I dont mind not knowing what lies down the track

I’ve got my first real rails application working correctly - a simple online bookmark system, which is scuttle-lookalike. (This is part of my master-plan to remove PHP utterly from the few remaining places where it exists upon my server(s), so it isn’t as pointless a project as it appears to be!) It is pretty neat, and it handles most of the things you’d expect. Fetch it from CVS and install it with the following recipe:
cvs -d :pserver:anonymous@cvsrepository.org:/home/cvs login
cvs -d :pserver:anonymous@cvsrepository.org:/home/cvs co bookmarks
cd bookmarks/
mysql --user=root -p -e "CREATE DATABASE Books_development"
rake db:migrate
ruby script/server
Once that is done point a browser at http://localhost:3000/ - and you should see something like this. (If there is no admin user setup it will display a “signup” link, once there is an admin defined this will go away. When you’re an admin you can view/edit/modify all the bookmarks which are set to “private”.) I’m new to rails, and ruby for that matter, so if this is packaged badly, or is missing something to make it work please do let me know. Updated: Changed from download to the CVS repository. I also have a collection of tools for exporting from Insipid & Scuttle if they are useful let me know.

Ross Burton: Drink The Lemonade

Dave Cridland posted to maemo-developers again today, spuring me to spend my lunch time checking out his email client instead of doing something productive like eating. It's very interesting. Basically he edits the RFCs for Lemonade, which is a IETF standard for email on mobile devices. Basically it is a set of extensions for IMAP and SMTP that improve their performance over high-latancy low-bandwidth connections (like bad wi-fi or GPRS), such as forward-without-download and efficient re-synchronisation commands. Existing extensions such as a useful IDLE implementation are also used to push new mail notifications to the client. To test the ideas in the real world there is Polymer. Polymer is a simple IMAP client that uses the Lemonade extensions as much as possible, so is ideal for mobile use. There is more: it uses ACAP to store the settings on the Internet (Dave also provides free ACAP accounts) so it's configure once, run anywhere. I've just tried it on my laptop, and it works nicely. But it gets better. There is also Telomer, an email client using Lemonade and designed for Maemo. I've just tried it out, it may be seriously lacking in features at the moment, but it works. Features can be written over time, but it takes serious thought to get something as fast and usable as Polymer on mobile devices. I'll quote Dave:
That all said, once it's started, it connects to the mailserver over GPRS in about 10 seconds and pulls up the summary listing in 15, with a mailbox size of 2,882 messages. With a mailbox with 33,732 messages in, it's a little slower at around 25 seconds. That's still way faster than a desktop client on a LAN, of course, unless that desktop client is Polymer - in which case it'll seem remarkably slow.
This is what we need for a mobile email client. I know I've found my email client of choice on my new N800. NP: Wish You Were Here, Pink Floyd

Erich Schubert: Limiting inbound traffic

... is far from trivial: you are not on the senders side, and not every protocol (in fact very few) allow rate limiting. Not to speak of limiting the total of multiple connections. Basically you'll have to accept that the sender is sending the data at it's own pace. However, the TCP part of "TCP/IP" is designed in a way that it does a fairly good job at detecting bottlenecks. The basic principle is this: when a packet is received at the destination, a confirmation will be sent back. By adjusting the rate of packets going out to match the rate of incoming "received" message (and to minimize the number of lost packets that need to be resent), TCP/IP connection can adopt to the slowest link in the chain. This is how incoming traffic shaping works: incoming packets are held back (or even dropped; however holding back packets might also lead to dropped packets somewhere up the stream), which in turn will limit the speed "ACKs" go out, and thus (hopefully) the speed data is pushed down to us. It's not perfectly reliable, and by design won't work well with short-lived connections and non-TCP-traffic. But it can still come in handy. We have a shared internet connection with 2 mBit. That usually is fine, but our router isn't very smart. When I'm using up all bandwidth for a longer timeframe (say, apt-get upgrade with new openoffice and tetex), the other users will suffer from a serious performance impact. One of them is often playing games online, and eventually gets kicked out of a game server because of his bad roundtrip times. By limiting my incoming traffic rate, I can hopefully keep the connection useful enough for him. In my tests, it worked pretty good at keeping my bandwidth useage down. The remaining unused bandwidth should allow his game data to pass through without larger extra delays. Here's the short script I'm using:
tc qdisc replace dev ethWIFI handle ffff: ingress
tc filter replace dev ethWIFI parent ffff: protocol ip prio 50 \
  u32 match ip src 0.0.0.0/0 police rate 1500kbit \
  burst 10k drop flowid :1
tc qdisc replace dev ethWIFI root tbf \
  rate 1500kbit latency 25ms burst 10k
Don't forget to adopt it to your needs, you probably havn't renamed your interface to ethWIFI and might want a different valye than 1500kbit.

Erich Schubert: Limiting inbound traffic

... is far from trivial: you are not on the senders side, and not every protocol (in fact very few) allow rate limiting. Not to speak of limiting the total of multiple connections. Basically you'll have to accept that the sender is sending the data at it's own pace. However, the TCP part of "TCP/IP" is designed in a way that it does a fairly good job at detecting bottlenecks. The basic principle is this: when a packet is received at the destination, a confirmation will be sent back. By adjusting the rate of packets going out to match the rate of incoming "received" message (and to minimize the number of lost packets that need to be resent), TCP/IP connection can adopt to the slowest link in the chain. This is how incoming traffic shaping works: incoming packets are held back (or even dropped; however holding back packets might also lead to dropped packets somewhere up the stream), which in turn will limit the speed "ACKs" go out, and thus (hopefully) the speed data is pushed down to us. It's not perfectly reliable, and by design won't work well with short-lived connections and non-TCP-traffic. But it can still come in handy. We have a shared internet connection with 2 mBit. That usually is fine, but our router isn't very smart. When I'm using up all bandwidth for a longer timeframe (say, apt-get upgrade with new openoffice and tetex), the other users will suffer from a serious performance impact. One of them is often playing games online, and eventually gets kicked out of a game server because of his bad roundtrip times. By limiting my incoming traffic rate, I can hopefully keep the connection useful enough for him. In my tests, it worked pretty good at keeping my bandwidth useage down. The remaining unused bandwidth should allow his game data to pass through without larger extra delays. Here's the short script I'm using:
tc qdisc replace dev ethWIFI handle ffff: ingress
tc filter replace dev ethWIFI parent ffff: protocol ip prio 50 \
  u32 match ip src 0.0.0.0/0 police rate 1500kbit \
  burst 10k drop flowid :1
tc qdisc replace dev ethWIFI root tbf \
  rate 1500kbit latency 25ms burst 10k
Don't forget to adopt it to your needs, you probably havn't renamed your interface to ethWIFI and might want a different valye than 1500kbit.

22 January 2007

MJ Ray: Tipping point with a few comments

Blog for Choice Day - January 22, 2007
This doesn't affect me directly (not in the US and not female) but it surprised me: WTF is Bush doing on this?

Jonathan McDowell: NTL HD on its way

I was pleased to recently discover that NTL are actually rolling out HD to non Telewest areas (somewhat belatedly; their press release here is from last November). I can't find any indication of when it might launch in Norwich, but there are various reports of people who have install dates lined up around the country, so I assume soon. All well and good. Until you realise that the only HD content they have is BBC HD (and some OnDemand stuff, but no idea what that is yet) - there's no agreement at present for the Sky HD content and no signs of one from the information I could find. Suddenly it doesn't really seem worth it; TV Drive looks like a nice PVR, but I've got one already TYVM.

Joachim Breitner: SOSHGIC Reports

It s over, since yesterday I am back in what Bush calls the old Europe, and I feel like I never really left. But in fact, I did, and was in working as a volunteer at the SOS Hermann Gmeiner International College in Tema, Ghana. Things did not really work out there, so I wrote a work report for the principal, describing what exactly has happened (or not happened) from the first contact until the end of my work there and analyzing what went wrong. This text might also be interesting for anyone who plans on doing similar volunteer work.During my time there I have set up a Linux setup that is, in my opinion, quite neat: Integration into Active Directory, automatic installation, Nagios network monitoring, caching and filtering web proxy et cetera. For my possible successor, but also for anyone who is creating a similar setup, I documented the steps to create such a setup in the techical documentation. Both reports can be found in the content section of my website.

Julien Danjou: DeFuBu contest #6

Bug Welcome to this 6th issue of the DeFuBu contest, the monthly (even if I'm late) championship of the funniest bug reported to the Debian BTS. The challengers How the vote has been done Three Debian related people voted for these bugs, Mohammed Adn ne Trojette, Pierre Habouzit and Florent Bayle Full ranking Bugs Challengers The winners Notes To participate, simply drop me an email with a bug number. About DeFuBu

21 January 2007

Sven Mueller: ATmega16 controller and DOG-M LCD module - can t get it to work right

Well, today I worked on a new little hardware project. It’s supposed to become open source (both schematics/PCB layout and software), but I want to work on it together with a close friend more or less exclusively for now. Anyway what it is going to become is a small controller board with a 2×16 character LCD module (DOG-M162 from lcd-module.de, an Atmel ATmega16, a small serial EEPROM, an IR transceiver, a USB port (featured by an FTDI USB2serial chip) and two relais outputs. The software will use the board as an external controller for Canon EOS* cameras (one output controlling the autofocus trigger, one the shutter trigger) with several “programs” which take a photo every X seconds or opens the shutter for a given amount of time (up to several minutes for night time photos). Anyway, today we worked on the first prototype board and tried to get the LCD to work. First we tried a 3.3V setup for the board - our initial goal - and several software versions later, we used an oscilator and found rather disgusting signal edges, so we switched to 5V (all components used were 5V and 3.3V capable, except that the display needed a slightly different circuit with a capacitor replaced by bare wire and another removed). Now the signal edges looked fine and we tripple checked that all connections were as expected. But even after trying two different initialization routines from the web and writing an own one from the controller specs, we were not successfull. This is quite frustrating, so if anyone would be able to help here, please leave a comment or contact me by email.

Christian Perrier: 99,51%

This is the current translation ratio for French in unstable, after 4 days of "blitz l10n NMU". Many other languages did benefit from this as well, as shown here (for instance, Czech went over 90% for the first time as far as I can tell). All remaining packages with incomplete or missing French translations have prepared NMUs and we can expect reaching the Grail in the next week. If I have enough courage, I'll probably continue this blitz NMU campaign to kill as many debconf l10n bugs as possible. Of course, if maintainers do it themselves as sugegsted by Javier, it will be quicker.

Isaac Clerencia: Bluetooth remote

A few days ago Applemania took over Warp HQ and several workmates purchased MacBooks. The MacBooks came with this nice remote thing and I grew jealous. In my way back home I thought that it shouldn’t be very hard to get a kind of remote control working using bluetooth and my Nokia mobile. I had never coded for my mobile so I wasn’t sure about how difficult would it be. In the end it was quite easy to write a simple program that just sent every key press to my laptop via bluetooth, and it only took 113 lines of Java code. Then I spent several hours coding the “receiver” part, in the end I created a little Python app which could load different plugins and created several of these modules: There are loooots of things to improve but it works for me :) , I’ve uploaded the source code (tarball) in case you find it useful.

Steve Kemp: Turn another page at the animal bar

When I moved to Edinburgh and lived in a student flat we decided we needed pets. Gerbils were chosen as they were small, cute, and easy to hide. (Because we weren’t actually allowed to keep pets ..) After a few years of gerbils we graduated to rats. The king of the rodent world. Rats rock: They are small, cute, agile, incredibly soft, very non-bity and highly intelligent. Time passed and I moved out to live alone and then started to move up the food-chain with my own pet cat. (Tigger). Badnesstm happened, and Tigger was “replaced” by Six. I got hit with a year of illness, mostly, and so I decided to do the decent thing and return Six to somewhere where he could be loved and get the attention he deserved. Since then I’ve been petless, and basically afraid to commit to looking after a cat/dog for the 10+ years that they would (hopefully) live. I want to have a cat. I would love to own a Dog, and after talking about things in a circular fashion for many weeks with my girlfriend we decided to compromise. So … tada .. I have rats again. Two beautiful females. Here is a picture of one of them upon my girl’s shoulder.


Click to see full-size. So two rats, Basil for me, and Moptop for Meg. All being well they will live for the next couple of years, and then we might return to the bigger pets.

Next.

Previous.