Archive for the ‘me’ Category
[Note: This issue has been fixed by Knog – see final paragraph.]
I have a Knog Milkman combination lock for my bike. It’s not supposed to be high security – it could be cut through very easily compared to a robust D lock. It’s for when you leave your bike outside a cafe and you’re inside, just a few seconds away, keeping an eye on it. The idea is to prevent opportunistic bike theft.
I like the design and manufacture of the lock, but have realized there’s a security flaw.
The numbers on the lock are just painted on and, unfortunately, the paint comes off very easily. I’ve taken it on rides maybe 10 times. I carry the lock in a rear jersey pocket, perhaps with a gel or a powerbar, but never with anything you’d consider abrasive. You can see the state of my lock in the photos above.
At first I thought the paint coming off was just an inconvenience, but then I realized it will also (typically) greatly reduce the lock’s security.
The problem is that after unlocking your bike you’re most likely to put the lock away as is. Because the position on the lock where you line up the correct numbers to unlock is at the lock’s widest point, it’s that row of numbers that gets its paint rubbed off fastest.
If you look at the above front and back photos of my lock, you can see what I mean. The numbers 8578 on one side have been completely obliterated and (adding 5 to each number) 3023 are greatly degraded on the other.
Because I always just put my lock straight back into my jersey pocket, that means that my combination is being rubbed off! It means that anyone wanting to open my lock would only have to look at 16 different combinations (3 or 8 at the first position, 0 or 5 at the second, 2 or 7 at the third, and 3 or 8 at the last). Sixteen combinations to try is a lot less than 10,000.
You can mitigate this situation by giving your lock a random twist before putting it in your jersey pocket. But then over time all the numbers will have their paint rubbed off. Or you could always set your lock to 0000 after unlocking, so just 0000 and 5555 would get rubbed off.
Of course the best solution would be for Knog to improve the numbering so it doesn’t come off in the first place. I sent them a mail last week (via the form on their web site) to tell them of this issue, but they’ve not responded.
Update (June 22, 2016): Knog responded a day or two after I wrote the above. They asked for photos of the lock, and I pointed them to this page. I was a bit worried there might be a knee-jerk upset reaction because I’d posted images of the problem here, but there was nothing of the sort. Instead, I’m told the numbering issue has been fixed and they asked for my address to send me a new lock :-) Given how often companies react badly to things like this (even though this is a very minor issue, seeing as the lock isn’t supposed to be high security in the first place), it’s very nice to see a mature non-hysterical (or even legal) response. Thanks, Knog!
If you’ve been a reader of this blog over the years, you may have noticed that I’m very fond of deferreds (also known as promises or futures). I’ve mainly been using them in Python with Twisted, and a couple of years ago was happy to notice that jQuery also has a (somewhat different) version of deferreds. Asking around, it soon became clear that although there are tens of millions of programmers who’ve used jQuery, very few of them have ever used deferreds. E.g., at the jQuery conference in San Francisco in 2012, only about 25% of the audience in a talk on deferreds. There are about 19,000 results for “deferred” on StackOverflow.
This seemed like a perfect storm: a fantastically cool and empowering technology that I love thinking and writing about, built in to a ubiquitous web library, in use by millions of programmers, and yet somehow not widely known or used.
The book tries to really teach deferreds. There are 18 real-life examples, along with 75 challenges (and solutions). We’ve tried to get readers into deferreds the way we are, to be provocative, to try and get you thinking and scratching your head. To get you to see how cool and elegant working with deferreds can be. In short, to make you one of us.
If you’d like to buy a copy, use AUTHD as a discount code on the O’Reilly site and you’ll receive 40% off the print or 50% off the e-book. Please let me know what you think, and/or leave a review on the O’Reilly (or Amazon) site. Have fun, and thanks!
In case you missed it, I spent ten days in hospital this past May (2013).
When they took the skin biopsy from my arm, I got them to take 2 samples. One of them, along with a throat and skin swab was later sent to the virologists I do some work with in the Viroscience Lab at the Erasmus Medical Center (EMC).
I got the sequence data back about a week ago and have been looking at them, firstly via BLAST and then using a bunch of code I’ve been writing lately. There are 115K reads from 6 preparations (RNA and DNA protocols for each of the 3 samples). These come from a “next generation” sequencer, a Roche 454. The next generation sequencing involves using random primers to indiscriminately match genetic material. My BLAST output files are about 82Mb in total (this is relatively small, some of my other data sets are about 30Gb). I BLASTed against a viral subset alias nucleotide database that I made from the full NCBI Nucleotide Database, excluding all bacteriophage viruses. There are about 1.3M viral sequences in the subset db.
I wont go into details, but wanted to dump a bit of data that’s pretty amusing / interesting. Just to give the EMC folks an idea of the scale of diversity I am seeing, I grepped out all “complete genome” hits from all the BLAST output. I chucked out suffixes in the sequence titles that matched the regex
(nearly )?complete genome|isolate|strain|subtype).* and then stripped the titles of any text beyond the string “virus” in the title (this step collapses a lot of virus strain information that should really be kept). Then, do a unique sort and…. it turns out I have reads matching at least 1793 viruses.
I feel like the subject of a metagenomics study. At the hospital, once the chickenpox tests had come back negative, they threw a ton of tests at my samples and everything was negative. Otherwise, I’d really be worried :-)
Given the list of sequence matches, it feels like the only plausible explanation is that I’m actually dead and that this is all just a simulation.
Here’s the sorted list of virus names (read counts omitted). I find it pretty amazing. I don’t know what it all means, but I’m planning to find out more by writing more code and learning more.
Abalone herpesvirus Abalone shriveling syndrome-associated virus Abelson murine leukemia virus Abutilon mosaic virus Acanthamoeba castellanii mamavirus Acanthamoeba polyphaga mimivirus Acanthamoeba polyphaga moumouvirus Acanthocystis turfacea Chlorella virus Acheta domestica densovirus Achimota virus Acidianus bottle-shaped virus Acidianus filamentous virus Acidianus filamentus virus Acidianus spindle-shaped virus Aconitum latent virus Acute bee paralysis virus Adelaide River virus Adeno-associated virus Adenovirus Adoxophyes honmai enomopoxvirus Adoxophyes honmai nucleopolyhedrovirus Adoxophyes orana granulovirus Adoxophyes orana nucleopolyhedrovirus Aedes aegypti densovirus Aedes flavivirus Aedes taeniorhynchus iridescent virus Aeropyrum pernix K1 DNA Aeropyrum spring-shaped virus African cassava mosaic Burkina Faso virus African cassava mosaic virus African green monkey polyomavirus African oil palm ringspot virus African swine fever virus Ageratum enation alphasatellite Ageratum enation virus Ageratum leaf curl virus Ageratum yellow vein China virus Ageratum yellow vein Singapore alphasatellite Ageratum yellow vein virus Agropyron mosaic virus Agrotis ipsilon multiple nucleopolyhedrovirus Agrotis segetum granulovirus Agrotis segetum nucleopolyhedrovirus Aichi virus Aleutian mink disease parvovirus Alfuy virus Algerian watermelon mosaic virus Alkhumra hemorrhagic fever virus Allium virus Alpaca respiratory coronavirus Alphavirus Alstroemeria virus Alternanthera mosaic virus Alternanthera yellow vein virus Ambystoma tigrinum stebbensi virus American hop latent virus Amphotropic murine leukemia virus Amsacta moorei entomopoxvirus Anatid herpesvirus Andean potato latent virus Andean potato mild mottle virus Anguillid herpesvirus Anopheles gambiae densonucleosis virus Antheraea pernyi nucleopolyhedrovirus Anticarsia gemmatalis nucleopolyhedrovirus Aotine herpesvirus Aphid lethal paralysis virus Apium virus Apocheima cinerarium nucleopolyhedrovirus Apodemus sylvaticus papillomavirus Apple chlorotic leaf spot virus Apple green crinkle associated virus Apple stem grooving virus Apple stem pitting virus Apricot latent virus Apricot pseudo-chlorotic leaf spot virus Aravan virus Archaeal BJ1 virus Arctic ground squirrel hepatitis B virus Armigeres subalbatus virus Arracacha mottle virus Artemisia virus Artibeus jamaicensis parvovirus Asclepias asymptomatic virus Asian prunus virus Asparagus virus Astrovirus Ateles paniscus polyomavirus Ateline herpesvirus Atlantic salmon paramyxovirus Atlantic salmon swim bladder sarcoma virus Aurantiochytrium single-stranded RNA virus Australian bat lyssavirus Autographa californica nucleopolyhedrovirus Avastrovirus Avian adeno-associated virus Avian adenovirus Avian bornavirus Avian carcinoma virus Avian encephalomyelitis virus Avian endogenous retrovirus Avian gyrovirus Avian hepatitis E virus Avian infectious bronchitis virus Avian leukemia virus Avian leukosis virus Avian metapneumovirus Avian myelocytomatosis virus Avian nephritis virus Avian paramyxovirus Avian pneumovirus B19 virus BK polyomavirus Babanki virus Baboon endogenous virus Baboon enterovirus Bacillus virus Bagaza virus Bamboo mosaic virus Baminivirus Banana bract mosaic virus Banana mild mosaic virus Banana streak CA virus Banana streak GF virus Banana streak IM virus Banana streak Imove virus Banana streak Mys virus Banana streak Mysore virus Banana streak UA virus Banana streak UI virus Banana streak UL virus Banana streak UM virus Banana streak virus Bandicoot papillomatosis carcinomatosis virus Barbel circovirus Barley dwarf virus Barley yellow dwarf virus Barmah Forest virus Basella rugose mosaic virus Bat Paramyxovirus Bat SARS CoV Rs672/2006 Bat SARS coronavirus Bat adenovirus Bat betaherpesvirus Bat circovirus Bat coronavirus Bat hepatitis virus Bat hepevirus Bat picornavirus Bat polyomavirus Bat sapovirus Bathycoccus sp. RCC1105 virus Beak and feather disease virus Bean common mosaic necrosis virus Bean common mosaic virus Bean leafroll virus Bean yellow mosaic virus Beauveria bassiana RNA virus Bebaru virus Beet black scorch virus Beet chlorosis virus Beet curly top Iran virus Beet curly top virus Beet mild curly top virus Beet mild yellowing virus Beet mosaic virus Beet severe curly top virus Beet soil-borne mosaic virus Beet western yellows virus Beet yellows virus Beilong virus Bell pepper endornavirus Bell pepper mottle virus Berrimah virus Betacoronavirus Bettongia penicillata papillomavirus Bhendi yellow vein Bhubhaneswar virus Bhendi yellow vein mosaic betasatellite Bhendi yellow vein mosaic virus Bidens mottle virus Black raspberry virus Blackberry virus Blackeye cowpea mosaic virus Blattella germanica densovirus Blue squill virus Blueberry latent virus Blueberry red ringspot virus Blueberry scorch virus Blueberry virus Bluegill picornavirus Bocavirus Bokeloh bat lyssavirus Bombyx mandarina nucleopolyhedrovirus Bombyx mori Macula-like virus Bombyx mori NPV Bombyx mori densovirus Bombyx mori nuclear polyhedrosis virus Border disease virus Borna disease virus Bos grunniens papillomavirus Botryotinia fuckeliana totivirus Botrytis virus Bougainvillea spectabilis chlorotic vein-banding virus Bovine adeno-associated virus Bovine adenovirus Bovine astrovirus Bovine coronavirus Bovine enterovirus Bovine ephemeral fever virus Bovine foamy virus Bovine herpesvirus Bovine hungarovirus Bovine kobuvirus Bovine leukemia virus Bovine papillomavirus Bovine papular stomatitis virus Bovine parainfluenza virus Bovine parvovirus Bovine polyomavirus Bovine respiratory coronavirus Bovine respiratory syncytial virus Bovine rhinovirus Bovine syncytial virus Bovine viral diarrhea virus Brassica yellows virus Breda virus Brevicoryne brassicae picorna-like virus Bromus catharticus striate mosaic virus Brugmansia mosaic virus Brugmansia suaveolens mottle virus Budgerigar fledgling disease polyomavirus Buggy Creek virus Bulbul coronavirus Bundibugyo ebolavirus Bussuquara virus Butterbur mosaic virus Cacao swollen shoot virus Cactus mild mottle virus Cactus virus Cafeteria roenbergensis virus Caladenia virus Calf-giraffe coronavirus Calibrachoa mottle virus Calicivirus California sea lion anellovirus California sea lion polyomavirus Callitrichine herpesvirus Camelpox virus Camelus dromedarius papillomavirus Canary circovirus Canary polyomavirus Canarypox virus Canine adenovirus Canine bocavirus Canine circovirus Canine coronavirus Canine distemper virus Canine kobuvirus Canine minute virus Canine oral papillomavirus Canine papillomavirus Canine parvovirus Canine picodicistrovirus Canine picornavirus Canine respiratory coronavirus Canine vesivirus Canna Yellow Streak Virus from United Kingdom Capra hircus papillomavirus Caprine arthritis encephalitis virus Caprine arthritis-encephalitis virus Cardioderma polyomavirus Cardiospermum yellow leaf curl virus Caretta caretta papillomavirus Carnation etched ring virus Carnation mottle virus Carrot mottle mimic umbravirus Carrot mottle virus Carrot necrotic dieback virus Carrot red leaf virus Carrot yellow leaf virus Cassava brown streak virus Cassava common mosaic virus Cassava latent virus Cassava vein mosaic virus Catharanthus yellow mosaic virus Cauliflower mosaic virus Cavally virus Caviid herpesvirus Cebus albifrons polyomavirus Cedar virus Celery mosaic virus Cercopithecine herpesvirus Cercopithecus erythrotis polyomavirus Cercopithicine herpesvirus Cereal yellow dwarf virus Cervus elaphus papillomavirus Cestrum yellow leaf curling virus Chaerephon polyomavirus Chaetoceros lorenzianus DNA Virus DNA Chaetoceros salsugineum DNA virus Chaetoceros tenuissimus DNA virus Chandipura virus Chaoyang virus Chayote mosaic tymovirus Chelonia mydas papillomavirus Chenopodium leaf curl virus Chenopodium mosaic virus Cherry green ring mottle virus Cherry mottle leaf virus Cherry necrotic rusty mottle virus Cherry rusty mottle associated virus Cherry virus Chiba virus Chicken anemia virus Chicken astrovirus Chicken parvovirus Chickpea chlorosis Australia virus Chickpea chlorosis virus Chickpea chlorotic dwarf virus Chickpea chlorotic stunt virus Chickpea redleaf virus Chickpea yellows mastrevirus Chikungunya virus Chilli leaf curl India virus Chilli leaf curl virus Chilli ringspot virus Chilli veinal mottle virus Chilo iridescent virus Chiltepin yellow mosaic virus Chimeric Tick-borne encephalitis virus Chimpanzee adenovirus Chimpanzee alpha-1 herpesvirus Chimpanzee polyomavirus Chimpanzee stool associated circular ssDNA virus Chimpanzee stool avian-like circovirus Chinese yam necrotic mosaic virus Chlamys acute necrobiotic virus Chloris striate mosaic virus Choristoneura biennis entomopoxvirus Choristoneura fumiferana MNPV polyhedrin Choristoneura fumiferana defective nucleopolyhedrovirus Choristoneura occidentalis granulovirus Choristoneura rosaceana entomopoxvirus Chrysanthemum virus Chrysodeixis chalcites nucleopolyhedrovirus Circoviridae bovine stool/BK/KOR/2011 Circovirus Circulifer tenellus virus Citrus chlorotic dwarf associated virus Citrus leaf blotch virus Citrus sudden death-associated virus Citrus tatter leaf virus Citrus tristeza virus Citrus yellow mosaic virus Citrus yellow vein clearing virus Clanis bilineata nucleopolyhedrosis virus Classical swine fever virus Clerodendron yellow mosaic virus Clitocybe odora virus Clitoria yellow mottle virus Cloning vector pEAV030 containing cDNA of Equine arteritis virus Clostera anachoreta granulovirus Coastal Plains virus Cocal virus Cocksfoot mild mosaic virus Cocksfoot mottle virus Cocksfoot streak virus Coconut foliar decay virus Coleus vein necrosis virus Colobus guereza papillomavirus Colombian datura virus Columbid circovirus Common chimpanzee papillomavirus Common marmoset foamy virus Common midwife toad ranavirus Common-moorhen coronavirus Cordyline virus Coronavirus Cote d'Ivoire ebolavirus Cotesia congregata virus Cotia virus Cotton leaf curl Burewala betasatellite Cotton leaf curl Burewala virus Cotton leaf curl Gezira alphasatellite Cotton leaf curl Gezira virus Cotton leaf curl Kokhran virus Cotton leaf curl Multan betasatellite Cotton leaf curl Multan virus Cotton leaf curl Shadadpur virus Cotton leafroll dwarf virus Cottontail rabbit (Shope) papillomavirus Cottontail rabbit papillomavirus Cowpea aphid-borne mosaic virus Cowpox virus Coxsackievirus Crassocephalum yellow vein virus Crocuta crocuta papillomavirus Croton yellow vein mosaic virus Croton yellow vein virus Crow polyomavirus Cryphonectria hypovirus Cryptophlebia leucotreta granulovirus Cucumber fruit mottle mosaic virus Cucumber green mottle mosaic virus Cucumber mottle virus Cucumber necrosis virus Cucumber vein yellowing virus Cucurbit aphid-borne yellows virus Culex flavivirus Culex nigripalpus baculovirus Culex originated Tymoviridae-like virus Culex tritaeniorhynchus rhabdovirus Curtovirus Cutthroat trout virus Cycad leaf necrosis virus Cyclovirus Cydia pomonella granulovirus Cygnus olor circovirus Cymbidium mosaic virus Cynomolgus macaque cytomegalovirus Cyprinid herpesvirus DG-75 Murine leukemia virus Dahlia common mosaic virus Dahlia mosaic virus Daphne mosaic virus Deer papillomavirus Deerpox virus Deformed wing virus Delphinus delphis papillomavirus Dendrolimus punctatus densovirus Dengue Virus Type 2 Dengue type 3 virus Dengue virus Diaporthe ambigua RNA virus Diascia yellow mottle virus Diatraea saccharalis densovirus Digitaria ciliaris striate mosaic virus Digitaria didactyla striate mosaic virus Digitaria streak virus Dioscorea bacilliform virus Diplodia scrobiculata RNA virus Diuris virus Dolichos yellow mosaic virus Donggang virus Dracaena mottle virus Dragonfly circularisvirus Dragonfly cyclicusvirus Dragonfly cyclovirus Dragonfly orbiculatusvirus Dragonfly-associated circular virus Dragonfly-associated mastrevirus Drosophila A virus Drosophila C virus Drosophila melanogaster sigma virus Drosophila melanogaster totivirus Drosophila obscura sigma virus Duck astrovirus Duck circovirus Duck coronavirus Duck egg-drop syndrome virus Duck enteritis virus Duck flavivirus Duck hepatitis A virus Duck hepatitis B Virus DNA Duck hepatitis B virus Duck hepatitis virus Duck picornavirus Dulcamara mottle virus Duvenhage virus Dweet mottle virus East African cassava mosaic virus East Asian Passiflora virus Eastern equine encephalitis virus Ebola virus Echovirus Eclipta yellow vein virus Ecotropis obliqua NPV Ectocarpus siliculosus virus Ectromelia virus Eel Virus European X Eidolon helvum parvovirus Eidolon polyomavirus Eimeria brunetti RNA virus Elephant endotheliotropic herpesvirus Elephantid herpesvirus Eliat virus Emilia yellow vein virus Encephalomyocarditis (EMC) virus Encephalomyocarditis virus Entebbe bat virus Enterovirus Enzootic nasal tumour virus Epinotia aporema granulovirus Epiphyas postvittana nucleopolyhedrovirus Epizootic haematopoietic necrosis virus Epstein-Barr virus Equid herpesvirus Equine Pegivirus Equine adenovirus Equine arteritis virus Equine coronavirus Equine foamy virus Equine herpesvirus Equine infectious anemia virus Equine papillomavirus Equine polyomavirus Equine rhinitis A virus Equine rhinovirus Equinus papillomavirus Equus caballus papillomavirus Equus ferus caballus papillomavirus Eragrostis curvula streak virus Eragrostis minor streak virus Eragrostis streak virus Erethizon dorsatum papillomavirus Erysimum latent virus Erythrovirus Eupatorium vein clearing virus Eupatorium yellow vein virus Euphorbia leaf curl Guangxi virus Euproctis pseudoconspersa nucleopolyhedrovirus Euprosterna elaeasa virus European bat lyssavirus European elk papillomavirus European hedgehog papillomavirus European sheatfish virus Farmington virus Feldmannia species virus Felid herpesvirus Feline bocavirus Feline calicivirus Feline coronavirus Feline foamy virus Feline immunodeficiency virus Feline infectious peritonitis virus Feline leukemia virus Feline morbillivirus Feline papillomavirus Feline picornavirus Felis domesticus papillomavirus Fenneropenaeus chinensis hepatopancreatic densovirus Fer-de-lance virus Ferret hepatitis E virus Fig badnavirus Fig fleck-associated virus Finch circovirus Finch polyomavirus Flavivirus Foot-and-mouth disease virus Fort Morgan virus Fowl adenovirus Fowlpox virus Foxtail mosaic virus Francolinus leucoscepus papillomavirus Frangipani mosaic virus Freesia mosaic virus French bean severe leaf curl virus Friend murine leukemia virus Friend spleen focus-forming virus Fringilla coelebs papillomavirus Frog adenovirus Frog virus Fujinami sarcoma virus Furcraea necrotic streak virus Fusarium graminearum dsRNA mycovirus Fusarium graminearum hypovirus Fusellovirus GB virus Galinsoga mosaic virus Gallid herpesvirus Gammapapillomavirus Gammaretrovirus Garlic common latent virus Garlic virus Gastropod associated circular ssDNA virus Gayfeather mild mottle virus Gentian Kobu-sho-associated virus Geobacillus virus Getah virus Giardia canis virus Giardia lamblia virus Gibbon leukemia virus Gill-associated virus Giraffe coronavirus Glomus sp. RF1 medium virus Glossina pallidipes salivary gland hypertrophy virus Goatpox virus Goose adenovirus Goose circovirus Goose hemorrhagic polyomavirus Goose paramyxovirus Goose parvovirus Gooseberry vein banding virus Gorilla gorilla gorilla polyomavirus Grapevine Pinot gris virus Grapevine Rupestris stem pitting associated virus Grapevine Rupestris stem pitting virus Grapevine Syrah Virus-1 Grapevine berry inner necrosis virus Grapevine endophyte endornavirus Grapevine fleck virus Grapevine geminivirus Grapevine leafroll-associated virus Grapevine rupestris stem pitting-associated virus Grapevine vein-clearing virus Grapevine virus Grass carp rhabdovirus Gremmeniella abietina RNA virus Gremmeniella abietina mitochondrial RNA virus Gremmeniella abietina type B RNA virus Ground squirrel hepatitis virus Grouper iridovirus Gryllus bimaculatus nudivirus Gull circovirus Gyrovirus HBV genotype A1 HBV genotype A2 HBV genotype B DNA HBV genotype C DNA HBV genotype D, serotype ayw3 HBV genotype D3 HBV genotype D4 HBV genotype E HBV genotype F2 HBV genotype F4 HBV genotype G DNA HBV genotype H DNA HIV-1 HIV-1 92BR025 from Brazil HIV-1 CRF03_AB HIV-1 CRF04_cpx clone 94CY032-3 from Cyprus HIV-1 E9 from the USA HIV-1 G829 from Ghana HIV-1 M_02CD.KS069 proviral HIV-1 M_02CD.LBTB032 proviral HIV-1 M_02CD.LBTB084 proviral HIV-1 M_02CD.MBTB047 proviral HIV-1 M_97CD.KFE267 proviral HIV-1 M_97CD.KTB119 proviral HIV-1 M_97CD.MBFE250 proviral HIV-1 chimpanzee C455 HIV-1 chimpanzee C499 HIV-1 clone 00PTHDE10 from Portugal HIV-1 clone 309 from China HIV-1 clone 341 from China HIV-1 clone 90cf402 from the Central African Republic HIV-1 clone 92ug037 from Uganda HIV-1 clone 93th253 from Thailand HIV-1 clone 96TZ-BF061 from Tanzania HIV-1 clone 96TZ-BF071 from Tanzania HIV-1 clone 96TZ-BF110 from Tanzania HIV-1 clone 98PTHEM103 from Portugal HIV-1 clone C.96BW06.H51 from Botswana HIV-1 clone C.96BW06.J4 from Botswana HIV-1 clone C.96BW06.J7 from Botswana HIV-1 clone C.96BW06.K18 from Botswana HIV-1 clone C1P from USA HIV-1 clone D24 from India HIV-1 clone ES1-16 from USA HIV-1 clone ES1-20 from USA HIV-1 clone ES10-53 from USA HIV-1 clone ES4-24 from USA HIV-1 clone ES8-17 from USA HIV-1 clone ES8-43 from USA HIV-1 clone I-1 from USA HIV-1 clone I-2 from USA HIV-1 clone MJ4 from Botswana HIV-1 clone N-1 from USA HIV-1 clone N-2 from USA HIV-1 clone S61D1 from Spain HIV-1 clone S61D15 from Spain HIV-1 clone S61G1 from Spain HIV-1 clone S61G7 from Spain HIV-1 clone XJDC6431-2 from China HIV-1 clone XJDC6441 from China HIV-1 clone XJN0084 from China HIV-1 clone ZAM184-5.6 from Zambia HIV-1 clone p05MYKL045.1 from Malaysia HIV-1 clone pBD6.15 from Cameroon HIV-1 clone pCM235-2 from Thailand HIV-1 clone pCM235-4 from USA HIV-1 clone pCMO2.3 from Cameroon HIV-1 clone pCMO2.5 from Cameroon HIV-1 clone pIIIB from USA HIV-1 clone pWCML249 from Kenya HIV-1 clone pZAC from South Africa HIV-1 genotype CRF05_DF HIV-1 patient WCIPR sample 1985 clone 4 HIV-1 patient WCIPR sample 1985 clone 46 HIV-1 patient WCIPR sample 1985 clone 5 HIV-1 patient WCIPR sample 1985 clone 52 HIV-1 patient WCIPR sample 1985 clone 54 HIV-1 patient WCIPR sample 1990 clone 11 HIV-1 patient WCIPR sample 1990 clone 18 HIV-2 HIV-l from Greece HMO Astrovirus HPIV-1 Halastavi arva RNA virus Haloarcula hispanica icosahedral virus Haloarcula hispanica pleomorphic virus Halogeometricum pleomorphic virus Halorubrum pleomorphic virus Halovirus Hamster polyomavirus Hana virus Hardenbergia mosaic virus Hardenbergia virus Helicobasidium mompa endornavirus Helicoverpa armigera NPV Helicoverpa armigera NPV NNg1 DNA Helicoverpa armigera densovirus Helicoverpa armigera granulovirus Helicoverpa armigera multiple nucleopolyhedrovirus Helicoverpa armigera nuclear polyhedrosis virus Helicoverpa zea nudivirus Helicoverpa zea single nucleocapsid nucleopolyhedrovirus Heliocoverpa armigera nucleopolyhedrovirus Heliothis virescens ascovirus Heliothis zea virus Helleborus net necrosis virus Hemorrhagic enteritis virus Hendra virus Hepataitis E virus Hepatitis A virus Hepatitis B Virus Hepatitis B virus Hepatitis C virus Hepatitis D Virus genotype 3, clone 010-OBC Cl11 Hepatitis D Virus genotype 3, clone 010-OBCCl2 Hepatitis D Virus genotype 3, clone BR2-ENB Hepatitis D virus Hepatitis E virus Hepatitis G virus Hepatitis GB virus Hepatitis delta virus Hepatopancreatic parvovirus Heron hepatitis B virus Herpes simplex virus Heterocapsa circularisquama RNA virus Heterosigma akashiwo RNA virus Hibiscus chlorotic ringspot virus Hibiscus latent Singapore virus Highlands J virus Hippeastrum mosaic virus Hipposideros bat coronavirus Hirame rhabdovirus His1 virus His2 virus Hog cholera virus Hollyhock leaf crumple virus Hollyhock leaf curl virus Hollyhock yellow vein mosaic virus Homalodisca coagulata virus Honeysuckle ringspot virus Honeysuckle yellow vein Kagoshima virus Honeysuckle yellow vein beta-[Japan:Fukui:2001] DNA Honeysuckle yellow vein beta-[Japan:Masuda:2003] DNA Honeysuckle yellow vein mosaic beta-[Japan:Kumamoto:1998] DNA Honeysuckle yellow vein mosaic beta-[Japan:Miyizaki:2001] DNA Honeysuckle yellow vein mosaic disease associated satellite DNA beta-[Ibaraki] DNA Honeysuckle yellow vein mosaic disease associated satellite DNA beta-[Nara] DNA Honeysuckle yellow vein mosaic virus Honeysuckle yellow vein virus Hop latent virus Hop mosaic virus Hordeum mosaic virus Horsepox virus Horseradish latent virus Huma Immunodeficiency Virus Isolate D205 Human Bocavirus Human Coronavirus Human JC virus Human Papillomavirus Human Respiratory syncytial virus Human T Cell Lymphotropic Virus I Human T-cell lymphotropic virus Human T-lymphotropic virus Human TMEV-like cardiovirus Human adenovirus Human astrovirus Human betacoronavirus Human bocavirus Human calicivirus Human circular dsDNA virus Human coronavirus Human coxsackievirus Human cytomegalovirus Human echovirus Human endogenous retrovirus Human enteric coronavirus Human enterovirus Human foamy virus Human group 1 coronavirus Human gyrovirus Human hepatitis A virus Human hepatitis virus Human herpesvirus Human immunodeficiency virus Human lymphadenopathy virus Human metapneumovirus Human papillomavirus Human papillomoavirus Human parainfluenza virus Human parechovirus Human parvovirus Human poliovirus Human polyomavirus Human respiratory syncytial virus Human rhinovirus Human spumaretrovirus Hybrid snakehead virus Hydrangea chlorotic mottle virus Hydrangea ringspot virus Hyperthermophilic Archaeal Virus 1 Hyperthermophilic Archaeal Virus 2 Hyphantria cunea nucleopolyhedrovirus Ia io picornavirus Ictalurid herpesvirus Igbo Ora virus Iguape virus Ikoma lyssavirus Ilheus virus Indian cassava mosaic virus Indian citrus ringspot virus Infectious bronchitis virus Infectious flacherie virus Infectious haematopoietic necrosis virus Infectious hematopoietic necrosis virus Infectious hypodermal and hematopoietic necrosis virus Infectious spleen and kidney necrosis virus Influenza A virus Ipomoea yellow vein virus Iranian johnsongrass mosaic virus Iranian maize mosaic nucleorhabdovirus Irkut virus Israel acute paralysis virus Israeli acute paralysis virus J-virus JC polyomavirus JC virus Jaagsiekte sheep retrovirus Japanese encephalitis SA-14 virus Japanese encephalitis virus Japanese iris necrotic ring virus Japanese yam mosaic virus Jembrana disease virus Jurona virus KI polyomavirus Kakugo virus Kalanchoe latent virus Kalanchoe top-spotting virus Karshi virus Kashmir bee virus Kedougou virus Kelp fly virus Kennedya yellow mosaic virus Keunjorong mosaic virus Khujand lyssavirus Kimberley virus Koala retrovirus Kobuvirus Koi herpesvirus Kokobera virus Konjac mosaic virus Kotonkan virus Kyasanur forest disease virus Kyuri green mottle mosaic virus Lactate dehydrogenase-elevating virus Lagenorhynchus acutus papillomavirus Lagos bat virus Lake Victoria marburgvirus Lamium leaf distortion associated virus Langat virus Large yellow croaker iridovirus Lausannevirus Leek yellow stripe virus Leishmania RNA virus Lelystad virus Leporid herpesvirus Lettuce necrotic yellows virus Lettuce virus Lettuce yellow mottle virus Leucania separata nuclear polyhedrosis virus Ligustrum necrotic ringspot virus Lily mottle virus Lily symptomless virus Lisianthus necrosis virus Little cherry virus Ljungan virus Lloviu virus Lolium latent virus Lordsdale virus Louping ill virus Lucerne transient streak virus Lucky bamboo bacilliform virus Ludwigia yellow vein virus Lumpy skin disease virus Lupine mosaic virus Lygus lineolaris virus Lymantria dispar nucleopolyhedrovirus Lymantria xylina MNPV Lymphocystis disease virus Lynx rufus papillomavirus Lyssavirus MW polyomavirus Macaca fascicularis papillomavirus Macaca fascicularis polyomavirus Macaca fuscata rhadinovirus Macaca mulatta rhadinovirus Macacine herpesvirus Macaque simian foamy virus Macrobrachium rosenbergii Taihu virus Magnaporthe oryzae virus Magpie-robin coronavirus Maize chlorotic dwarf virus Maize chlorotic mottle virus Maize dwarf mosaic virus Maize fine streak virus Maize mosaic virus Maize necrotic streak virus Maize rayado fino virus Maize streak Reunion virus Maize streak virus Maize white line mosaic virus Malakal virus Malpais Spring virus Malvastrum leaf curl Guangdong virus Malvastrum yellow mosaic virus Malvastrum yellow vein Yunnan virus Malvastrum yellow vein virus Mamastrovirus Mamestra brassicae MNPV Mamestra brassicae multiple nucleopolyhedrovirus Mamestra configurata NPV-A Mamestra configurata nucleopolyhedrovirus Mapuera virus Maraba virus Maracuja mosaic virus Marburg marburgvirus Marine RNA virus Marseillevirus Maruca vitrata MNPV Mason-Pfizer monkey virus Mastadenovirus Mastomys coucha papillomavirus Mastomys polyomavirus Mavirus Mayaro virus Measles virus Megavirus Melanoplus sanguinipes entomopoxvirus Meleagrid herpesvirus Melon aphid-borne yellows virus Melon necrotic spot virus Menangle virus Mengo virus Meno virus Merkel cell polyomavirus Mesta yellow vein mosaic virus Micro Torque teno virus Micromonas sp. RCC1109 virus Microvirus Midway virus Miniopterus polyomavirus Miniopterus schreibersii papillomavirus Miniopterus schreibersii picornavirus Mink astrovirus Mink calicivirus Mink coronavirus Mint virus Minute virus Mirabilis jalapa mottle virus Mirabilis mosaic virus Miscanthus streak virus Mokola virus Molluscum contagiosum virus Moloney murine leukemia virus Moloney murine sarcoma virus Monkey B-lymphotropic papovavirus Monkeypox virus Morelia spilota papillomavirus Moroccan watermelon mosaic virus Mosquito VEM Anellovirus Mosquito VEM virus Mosquito densovirus Mosquito flavivirus Mossman virus Mouse astrovirus Mouse hepatitis virus Mouse kobuvirus Mouse parvovirus Mouse polyomavirus Moussa virus MuLV Mud crab dicistrovirus Mulard duck circovirus Mumps virus Mungbean yellow mosaic India virus Mungbean yellow mosaic virus Munia coronavirus Murid herpesvirus Murine adenovirus Murine astrovirus Murine coronavirus Murine cytomegalovirus Murine hepatitis virus Murine herpesvirus Murine leukemia virus Murine norovirus Murine osteosarcoma virus Murine pneumotropic virus Murine polyomavirus Muromegalovirus Murray Valley encephalitis virus Mus dunni endogenous virus Mus musculus papillomavirus Musca domestica salivary gland hypertrophy virus Muscovy duck circovirus Muscovy duck parvovirus Mutant Porcine reproductive and respiratory syndrome virus Mutant Rabies virus Mycoplasma virus Myotis myotis bocavirus Myotis polyomavirus Myotis ricketti papillomavirus Mythimna loreyi densovirus Mythimna separata entomopoxvirus Myxoma virus Nam Dinh virus Nandina mosaic virus Nanovirus Narcissus common latent virus Narcissus degeneration virus Narcissus late season yellows virus Narcissus mosaic virus Narcissus symptomless virus Nariva virus Ndumu virus Nebovirus Neodiprion abietis nucleopolyhedrovirus Neodiprion lecontei NPV Neodiprion sertifer nucleopolyhdrovirus Nepavirus Nerine latent virus Nerine virus New World begomovirus Newbury agent 1 Newcastle Disease virus Newcastle disease virus Ngaingan virus Ngewotan virus Night-heron coronavirus Nilaparvata lugens honeydew virus Nile crocodilepox virus Niminivirus Nipah virus Nootka lupine vein-clearing virus Nora virus Norovirus Northern cereal mosaic virus Norwalk virus Norwalk-like virus Nse virus Ntaya virus Nudaurelia capensis beta virus Nyamanini virus O'Nyong-nyong virus O'nyong-nyong virus Oak-Vale virus Oat blue dwarf virus Oat dwarf virus Oat golden stripe virus Oat necrotic mottle virus Obodhiang virus Ockelbo virus Odontoglossum ringspot virus Okra leaf curl Mali virus Okra leaf curl virus Okra mosaic virus Okra yellow crinkle Cameroon alphasatellite Okra yellow crinkle virus Old World harvest mouse papillomavirus Olive latent virus Olive mild mosaic virus Omsk hemorrhagic fever virus Onion yellow dwarf virus Ononis yellow mosaic virus Orange-spotted grouper iridovirus Orangutan hepadnavirus Orangutan polyomavirus Orf virus Orgyia leucostigma NPV Orgyia pseudotsugata MNPV Ornithogalum mosaic virus Oryctes rhinoceros virus Oryza rufipogon endornavirus Oryza sativa endornavirus Ostreid herpesvirus Ostreococcus lucimarinus virus Ostreococcus tauri virus Ostreococcus virus Otomops polyomavirus Ovine adenovirus Ovine enterovirus Ovine enzootic nasal tumor virus Ovine herpesvirus Ovine hungarovirus Ovine lentivirus Ovine papillomavirus Ovine pulmonary adenocarcinoma virus Oyster mushroom spherical virus PRCV ISU-1 PRRSV HB-1(sh)/2002 PRRSV HB-2(sh)/2002 PRRSV LV4.2.1 Pan troglodytes schweinfurthii polyomavirus Pan troglodytes verus polyomavirus Panax virus Panicum streak virus Panine herpesvirus Panthera leo persica papillomavirus Papaya leaf crumple virus Papaya leaf curl China virus Papaya leaf curl Guangdong virus Papaya leaf curl virus Papaya leaf distortion mosaic virus Papaya mosaic virus Papaya ringspot virus Papilio polyxenes densovirus Papillomavirus Papio hamadryas papillomavirus Paprika mild mottle virus Parainfluenza virus Paralichthys olivaceus rhabdovirus Paramecium bursaria Chlorella virus Parechovirus Parrot hepatitis B virus Parvovirus Paspalum dilatatum striate mosaic virus Paspalum striate mosaic virus Passiflora latent carlavirus Passion fruit mosaic virus Passion fruit woodiness virus Pea seed-borne mosaic virus Pea stem necrosis virus Peace lily mosaic virus Peach chlorotic mottle virus Peanut chlorotic streak caulimovirus Peanut mottle virus Peanut stripe virus Peanut stunt virus Pedilanthus leaf curl virus Pedilathus leaf curl virus Pelargonium chlorotic ring pattern virus Pelargonium flower break carmovirus Pelargonium flower break virus Pelargonium line pattern virus Pelargonium necrotic spot virus Pelargonium vein banding virus Penaeid shrimp infectious myonecrosis virus Penaeus merguiensis densovirus Penaeus monodon hepatopancreatic parvovirus Pennisetum mosaic virus Pepino mosaic virus Pepper curly top virus Pepper leaf curl Lahore virus Pepper leaf curl Yunnan virus Pepper leaf curl virus Pepper mild mottle virus Pepper mottle virus Pepper severe mosaic virus Pepper vein yellows virus Pepper veinal mottle virus Pepper yellow dwarf virus Pepper yellow leaf curl China virus Pepper yellow leaf curl Indonesia virus Pepper yellow leaf curl virus Pepper yellow mosaic virus Pepper yellow vein Mali virus Perina nuda picorna-like virus Perinet virus Periplaneta fuliginosa densovirus Peromyscus papillomavirus Persea americana endornavirus Persimmon cryptic virus Peru tomato mosaic virus Peste des petits ruminants virus Peste-des-petits-ruminants virus Pestivirus Petunia vein clearing virus Phaeocystis globosa virus Phaius virus Philosamia cynthia ricini nucleopolyhedrovirus Phlox Virus B Phlox virus Phocine distemper virus Phocoena phocoena papillomavirus Phocoena spinipinnis papillomavirus Phthorimaea operculella granulovirus Phytophthora infestans RNA virus Picalivirus Picobiliphyte sp. MS584-5 nanovirus Pieris rapae granulovirus Pig stool associated circular ssDNA virus Pigeon paramyxovirus Pigeon picornavirus Pike fry rhabdovirus Piliocolobus rufomitratus polyomavirus Pine marten torque teno virus Pineapple bacilliform comosus virus Pineapple mealybug wilt-associated virus Piscine myocarditis virus Plantago asiatica mosaic virus Plum bark necrosis and stem pitting-associated virus Plum pox virus Plutella xylostella multiple nucleopolyhedrovirus Pneumonia virus Po-Circo-like virus Poinsettia mosaic virus Pokeweed mosaic virus Poliovirus Polyomavirus Poplar mosaic virus Porcine TTV 2 from China Porcine adenovirus Porcine associated stool circular virus Porcine astrovirus Porcine bocavirus Porcine circovirus Porcine circovius type 2 Porcine coronavirus Porcine endogenous retrovirus Porcine endogenous type C retrovirus Porcine enteric calicivirus Porcine enteric sapovirus Porcine enterovirus Porcine epidemic diarrhea virus Porcine hemagglutinating encephalomyelitis virus Porcine kobuvirus Porcine parvovirus Porcine reproductive and respiratory syndrome virus Porcine respiratory and reproductive syndrome virus Porcine sapelovirus Porcine teschovirus Posavirus Possum enterovirus Potato Virus P from Brazil Potato apical leaf curl disease-associated satellite DNA beta Potato latent virus Potato leafroll virus Potato mop-top virus Potato rough dwarf virus Potato virus Potato yellow dwarf virus Potato yellow mosaic virus Pothos latent virus Powassan virus Procyon lotor papillomavirus Providence virus Pseudaletia unipuncta granulovirus Pseudocowpox virus Pseudoplusia includens densovirus Psittacid herpesvirus Psittacus erithacus timneh papillomavirus Pteronotus polyomavirus Puma concolor papillomavirus Pyrobaculum spherical virus Pyrococcus abyssi virus Quail picornavirus Quang Binh virus RD114 retrovirus RHDV-BS89 RHDV-SD Rabbit astrovirus Rabbit calicivirus Rabbit coronavirus Rabbit fibroma virus Rabbit hemorrhagic disease virus Rabbit oral papillomavirus Rabbitpox virus Rabies virus Raccoon polyomavirus Rachiplusia ou multiple nucleopolyhedrovirus Radish leaf curl virus Rana grylio iridovirus Ranid herpesvirus Raptor adenovirus Raspberry leaf blotch virus Raspberry mottle virus Rat coronavirus Rat cytomegalovirus Rat parvovirus Rat theilovirus Rattail cactus necrosis associated virus Rattus norvegicus papillomavirus Rauscher murine leukemia virus Raven circovirus Recombinant Hepatitis C Virus SA13/JFH1 Recombinant Hepatitis C virus Recombinant chimeric Hepatitis C virus Recombinant vesicular stomatitis Indiana virus Red clover vein mosaic virus Rehmannia mosaic virus Reindeer papillomavirus Reptile vesivirus Respiratory syncytial virus Reston Ebola virus Reston ebolavirus Reticuloendotheliosis virus Retroviridae Rhesus cytomegalovirus Rhesus papillomavirus Rhinolophus ferrumequinum circovirus Rhododendron virus Rhopalosiphum padi virus Rhynchosia yellow mosaic virus Ribgrass mosaic virus Rice tungro bacilliform virus Rice tungro spherical virus Rice yellow mottle virus Rice yellow stunt virus Rinderpest virus Rio Bravo virus Rocio virus Rock bream iridovirus Rodent hepacivirus Rodent herpesvirus Rodent pegivirus Rodent stool-associated circular genome virus Rosa rugosa leaf distortion virus Rose leaf curl virus Rose spring dwarf-associated virus Rose yellow vein virus Rosellinia necatrix partitivirus Ross River virus Ross' goose hepatitis B virus Rosy apple aphid virus Rous sarcoma virus Rousettus aegyptiacus papillomavirus Rousettus bat coronavirus Rubella virus Rubus canadensis virus Rudbeckia flower distortion virus Rupestris stem pitting associated virus Rupestris stem pitting-associated virus Ryegrass mosaic virus SARS Coronavirus SARS coronavirus SIVcpz proviral STL polyomavirus Sable antelope coronavirus Sacbrood virus Saccharomyces cerevisiae killer virus Saccharum streak virus Saffold virus Sagiyama virus Saguaro cactus virus Saimiri sciureus polyomavirus Saimiriine herpesvirus Salem virus Salivirus Salmon pancreas disease virus Salmonid alphavirus Sambar deer coronavirus San Miguel sea lion virus Sapovirus Scallion mosaic virus Scallion virus Scheffersomyces segobiensis virus Schlumbergera virus Sclerotinia sclerotiorum debilitation-associated RNA virus Sclerotinia sclerotiorum dsRNA mycovirus Sclerotinia sclerotiorum hypovirus Sclerotinia sclerotiorum mitovirus Scophthalmus maximus rhabdovirus Sea Turtle Tornovirus Seal picornavirus Semliki forest virus Sendai virus Seneca valley virus Sepik virus Sesbania mosaic virus Shallot latent virus Shallot virus Shallot yellow stripe virus Sheep astrovirus Sheeppox virus Sheldgoose hepatitis B virus Shimoni bat virus Shrimp white spot syndrome virus Sibine fusca densovirus Sida golden mosaic Buckup virus Sida golden mosaic Florida virus Sida golden mosaic virus Sida golden yellow vein virus Sida leaf curl virus Sida micrantha mosaic virus Sida yellow vein Madurai virus Siegesbeckia yellow vein virus Silurus glanis circovirus Simian (African green monkey) immunodeficiency virus Simian (macaque) immunodeficiency virus Simian (stump-tailed macaque) immunodeficiency virus Simian Agent 10 Simian Mason-Pfizer D-type retrovirus Simian SRV-1 type D retrovirus Simian T-cell lymphotropic virus Simian T-lymphotropic virus Simian adenovirus Simian agent 12 Simian agent 5 Simian endogenous retrovirus Simian enterovirus Simian foamy virus Simian hemorrhagic fever virus Simian hepatitis A virus Simian immunodeficiency PBJ virus Simian immunodeficiency virus Simian retrovirus Simian sapelovirus Simian virus Simian-Human immunodeficiency virus Sindbis virus Sindbis-like virus Singapore grouper iridovirus Siniperca chuatsi rhabdovirus Sitiawan virus Sleeping disease virus Small anellovirus Small ruminant lentivirus Snake adenovirus Snakehead retrovirus Snakehead rhabdovirus Snow Mountain virus Snow goose hepatitis B virus Soft-shelled turtle iridovirus Soil-borne cereal mosaic virus Soil-borne wheat mosaic virus Solenopsis invicta virus Sonchus yellow net virus Sorghum mosaic virus Sour cherry green ring mottle virus South African cassava mosaic virus South polar skua adenovirus Southern bean mosaic virus Southern cowpea mosaic virus Southern elephant seal virus Southern tomato virus Sowbane mosaic virus Soybean chlorotic blotch virus Soybean crinkle leaf virus Soybean dwarf virus Soybean mild mottle pararetrovirus Soybean mild mottle virus Soybean mosaic virus Soybean yellow common mosaic virus Soybean yellow mottle mosaic virus Sparrow coronavirus Sphaeropsis sapinea RNA virus Spider monkey foamy virus Spinach curly top Arizona virus Spinach curly top virus Spinach severe curly top virus Spiroplasma kunkelii virus Spissistilus festinus virus Spodoptera exigua Iflavirus Spodoptera exigua iflavirus Spodoptera exigua nucleopolyhedrovirus Spodoptera frugiperda MNPV Spodoptera frugiperda MNPV genotype SfMNPV-G defective Spodoptera frugiperda ascovirus Spodoptera littoralis NPV Spodoptera litura granulovirus Spodoptera litura nucleopolyhedrovirus Sporobolus striate mosaic virus Spring Viremia of Carp Spring viraemia of carp virus Spring viremia of carp virus Squash leaf curl China virus Squash leaf curl Philippines virus Squash leaf curl Yunnan virus Squash vein yellowing virus Squirrel monkey foamy virus Squirrel monkey polyomavirus Squirrel monkey retrovirus Sri Lankan cassava mosaic virus St. Louis encephalitis virus Stachytarpheta leaf curl virus Starling circovirus Steller sea lion vesivirus Stork hepatitis B virus Strawberry chlorotic fleck associated virus Strawberry vein banding virus Streptocarpus flower break virus Suakwa aphid-borne yellows virus Subterranean clover mottle virus Sudan ebolavirus Sugarcane bacilliform IM virus Sugarcane bacilliform virus Sugarcane mosaic virus Sugarcane streak Egypt virus Sugarcane streak Reunion virus Sugarcane streak mosaic virus Sugarcane streak virus Sugarcane yellow leaf virus Suid herpesvirus Sulfolobales Mexican fusellovirus Sulfolobales Mexican rudivirus Sulfolobus islandicus rudivirus Sulfolobus spindle-shaped virus Sulfolobus tengchongensis spindle-shaped virus Sulfolobus turreted icosahedral virus Sulfolobus virus Sunflower chlorotic mottle virus Sunflower mild mosaic virus Sunshine virus Sus scrofa papillomavirus Sweet potato begomovirus Sweet potato caulimo-like virus Sweet potato chlorotic fleck virus Sweet potato feathery mottle virus Sweet potato geminivirus Sweet potato golden vein associated virus Sweet potato latent virus Sweet potato leaf curl Canary Island virus Sweet potato leaf curl Canary virus Sweet potato leaf curl China Sichuan virus Sweet potato leaf curl China virus Sweet potato leaf curl Georgia virus Sweet potato leaf curl Korean virus Sweet potato leaf curl Lanzarote virus Sweet potato leaf curl Sao Paulo virus Sweet potato leaf curl South Carolina virus Sweet potato leaf curl Spain virus Sweet potato leaf curl Uganda virus Sweet potato leaf curl virus Sweet potato mosaic associated virus Sweet potato vein clearing virus Sweet potato virus Sweetpotato badnavirus Swine hepatitis E virus Swine parainfluenza virus Swine pasivirus Swine vesicular disease virus Swinepox virus Switchgrass mosaic virus TGEV Miller M6 TGEV Miller M60 TGEV Purdue P115 TGEV virulent Purdue TPA_exp: Aeropyrum pernix ovoid virus TPA_exp: Aeropyrum pernix spindle-shaped virus TPA_exp: Suid herpesvirus TPA_inf: Human herpesvirus TPA_inf: Porcine rubulavirus TT virus TTV-like mini virus TYLCAxV-Sic1-[IT:Sic2/2:04] TYLCAxV-Sic2-[IT:Sic2/5:04] TYLCCNV-[Y322] satellite DNA beta sequence Tailam virus Tamana bat virus Tamus red mosaic virus Tanapox virus Taro bacilliform virus Taro vein chlorosis virus Taterapox virus Taura syndrome virus Telosma mosaic virus Tembusu virus Tench rhabdovirus Theiler murine encephalomyelitis Theiler murine encephalomyelitis virus Theiler's disease-associated virus Theiler's encephalomyelitis virus Theiler's murine encephalomyelitis virus Theiler's-like virus Theilers murine encephalomyelitis virus Thermococcus prieurii virus Thermoproteus tenax spherical virus Thrush coronavirus Thunberg fritillary virus Thysanoplusia orichalcea NPV Tianjin totivirus Tibrogargan virus Tick-borne encephalitis virus Tiger frog virus Tioman virus Titi monkey adenovirus Tobacco bushy top virus Tobacco curly shoot virus Tobacco etch virus Tobacco leaf curl Japan virus Tobacco leaf curl Kochi virus Tobacco leaf curl Thailand virus Tobacco leaf curl Yunnan virus Tobacco leaf curl Zimbabwe virus Tobacco leaf curl virus Tobacco mild green mosaic virus Tobacco mosaic virus Tobacco necrosis virus Tobacco rattle virus Tobacco vein banding mosaic virus Tobacco vein distorting virus Tobacco vein-clearing virus Tomato Chino La Paz virus Tomato Yellow Leaf Curl Virus Tomato begomovirus Tomato bushy stunt virus Tomato golden mosaic virus Tomato leaf curl Bangalore virus Tomato leaf curl Bangladesh virus Tomato leaf curl China virus Tomato leaf curl Comoros virus Tomato leaf curl Cotabato virus Tomato leaf curl Guangxi virus Tomato leaf curl Gujarat virus Tomato leaf curl Hainan virus Tomato leaf curl Iran virus Tomato leaf curl Java virus Tomato leaf curl Karnataka alphasatellite Tomato leaf curl Karnataka virus Tomato leaf curl Laos virus Tomato leaf curl Madagascar virus Tomato leaf curl Mayotte virus Tomato leaf curl Mindanao virus Tomato leaf curl Namakely virus Tomato leaf curl New Delhi virus Tomato leaf curl Oman virus Tomato leaf curl Pakistan virus Tomato leaf curl Palampur virus Tomato leaf curl Philippine virus Tomato leaf curl Philippines virus Tomato leaf curl Pune virus Tomato leaf curl Ranchi betasatellite Tomato leaf curl Ranchi virus Tomato leaf curl Seychelles virus Tomato leaf curl Sudan virus Tomato leaf curl Taiwan virus Tomato leaf curl Vietnam virus Tomato leaf curl geminivirus Tomato leaf curl virus Tomato mosaic virus Tomato necrotic stunt virus Tomato yellow blotch virus Tomato yellow dwarf disease associated satellite DNA beta-[Kochi] DNA Tomato yellow leaf curl Axarquia virus Tomato yellow leaf curl China virus Tomato yellow leaf curl Malaga virus Tomato yellow leaf curl Mali virus Tomato yellow leaf curl Sardinia virus Tomato yellow leaf curl Thailand betasatellite Tomato yellow leaf curl Thailand virus Tomato yellow leaf curl Vietnam virus Tomato yellow leaf curl virus Torque teno canis virus Torque teno douroucouli virus Torque teno felis virus Torque teno midi virus Torque teno mini virus Torque teno sus virus Torque teno tamarin virus Torque teno virus Transmissible gastroenteritis virus Tree shrew adenovirus Trichechus manatus latirostris papillomavirus Trichodysplasia spinulosa-associated polyomavirus Trichomonas vaginalis virus Trichoplusia ni ascovirus Trichoplusia ni single nucleopolyhedrovirus Triticum mosaic virus Tuber aestivum endornavirus Tuber aestivum mitovirus Tuhoko virus Tulip virus Tupaia herpesvirus Tupaia paramyxovirus Tupaia rhabdovirus Turbot reddish body iridovirus Turdivirus Turkey adenovirus Turkey astrovirus Turkey avisivirus Turkey coronavirus Turkey gallivirus Turkey parvovirus Turnip crinkle virus Turnip curly top virus Turnip mosaic virus Turnip rosette virus Turnip vein-clearing virus Turnip yellow mosaic Blue Lake Turnip yellow mosaic virus Turnip yellows virus Tursiops truncatus papillomavirus UR2 sarcoma virus Ugandan cassava brown streak virus Uncia uncia papillomavirus Uncultured Microviridae clone SARssphi1 Uncultured Microviridae clone SARssphi2 Uncultured virus Urochloa streak virus Ursus maritimus papillomavirus Ustilaginoidea virens RNA virus Usutu virus VESV-like calicivirus Vaccinia virus Vallota speciosa virus Valsa ceratosperma hypovirus Variola major virus Variola minor virus Variola virus Varroa destructor virus Velvet bean severe mosaic virus Velvet tobacco mottle virus Venezuelan equine encephalitis virus Verbena virus Vervet monkey polyomavirus Vesicular exanthema of swine virus Vesicular stomatitis Alagoas virus Vesicular stomatitis Indiana virus Vesicular stomatitis New Jersey virus Viral haemorrhagic septicaemia virus Viral hemorrhagic septicemia virus Virus PhiCh1 Visna virus Visna/Maedi virus Visna/maedi virus WU Polyomavirus Walleye dermal sarcoma virus Wasabi mottle virus Waterbuck coronavirus Watermelon bud necrosis virus Watermelon mosaic virus Wesselsbron virus West Caucasian bat virus West Nile virus Western equine encephalomyelitis virus Western roedeer papillomavirus Wets NIle virus Whataroa virus Wheat dwarf India virus Wheat dwarf virus Wheat eqlid mosaic virus Wheat streak mosaic virus Wheat yellow dwarf virus White bream virus White spot syndrome virus White-eye coronavirus White-tailed deer coronavirus Whitefly VEM 1 begomovirus Whitefly VEM 2 begomovirus Whitefly VEM satellite Wigeon coronavirus Wild potato mosaic virus Wild tomato mosaic virus Wiseana iridescent virus Wisteria vein mosaic virus Wongabel virus Wood mouse herpesvirus Woodchuck hepatitis B virus Woodchuck hepatitis virus Woolly monkey hepatitis B Virus Woolly monkey hepatitis B virus Xenotropic MuLV-related virus Xenotropic murine leukemia virus Y73 sarcoma virus Yaba monkey tumor virus Yaba-like disease virus Yam bean mosaic virus Yam mild mosaic virus Yellow baboon polyomavirus Yellow fever virus Yellow head virus Yoka poxvirus Yokose virus Youcai mosaic virus Yug Bogdanovac virus Zaire Ebola virus Zaire ebolavirus Zalophus californianus papillomavirus Zantedeschia mild mosaic virus Zika virus Zucchini green mottle mosaic virus Zucchini yellow mosaic virus bat SARS coronavirus coxsackievirus ovine papillomavirus pea seed-borne mosaic virus sugarcane yellow leaf virus variola minor virus yellow vein China virus
I’m about to check out of Addenbrookes Hospital in Cambridge after a 10-day stay, 8 of them in isolation. The short story: I got a rash, and it took over my body. Below are some notes on what’s been going on, along with a few images. You can see the full set of images at http://bit.ly/terry-rash (you may need to register for Dropbox).
April 29 – May 5: The LCHF diet begins
Just back from a week in New York, I decided to start a low carb, high fat (LCHF) diet. I’ve put on about a kilo of weight a year over the last 9 years and eating less carbs seemed like it might be a good way to start burning some of my excess fat. In 2012 I’d done some reading about LCHF diets but hadn’t tried it (check out this video if you’re curious). In NY I’d been feeling too physically large, which prompted me to give it a go. After almost 50 years of living on cereal, bread, pasta, rice and potatoes, though, I wasn’t sure I’d be able to do it.
But it was suprisingly easy. I’d cook myself some bacon and eggs for lunch, along with a big salad, maybe a fried vegetable, nuts and dried beans for snacks, etc. Within a few days I was clearly in ketosis. I wasn’t getting hungry at all because my body had switched to burning my fat, and there was still plenty of that to consume. After 4 days I was down 3kg (from 78 to 75), or about 6.5 pounds. I felt like I was eating more healthily than ever.
Monday May 6: The rash appears
On the morning on Monday May 6, I awoke with a small itchy rash on my sternum, just small red separated dots, probably about 20 of them. I didn’t think too much of it.
Tuesday/Wednesday May 7/8: Initial spread
The rash grew across part of my chest and down my stomach. On the night of May 8th I slept on a fold-out bed downstairs so as not to bug Ana through the night. The rash was extremely itchy, but I knew I must not scratch it. I lay in bed wishing there were manacles by my sides to hold my arms down.
I had began searching around on the web for LCHF rash connections and found there were many hundreds of people blogging and commenting on forums about their rashes. But I couldn’t find anything that looked like reliable scientific opinion on what was happening to those people. Most of them had small rashes and many were able to stop the rash simply by reintroducing carbs. I added some carbs back to my diet, but there was no change. Almost all the comments online were reassuring, saying it was normal, that (unspecified) “toxins” were leaving my cells and exiting through the skin, etc. As so many people had similar problems, and they seemed to just go away after a while, I wasn’t too worried, just very itchy.
Thursday May 9
I had to take Findus to a doctor appointment after he got back from school. While there I showed part of my stomach to the doctor. She immediately said it was an allergic reaction. We didn’t discuss it further. I’ve never been allergic to any food, and hadn’t been eating anything new – just different amounts of foods I’d always eaten, and very few carbs. The doctor said she highly doubted the rash could be due to the diet change. She suggested I pick up some calamine lotion, hydrocortisone cream, and anti-allergy tablets to see if any of them helped.
By this time, the fourth day, the rash had spread across under my armpits and slightly down my upper inner arms. It was all across my stomach, and my belly button was all rash (see image below). It had begun to descend onto my upper thighs. It was on my lower legs, just above my ankles, and on the back of my calves. My lower back was covered with it. Did I mention that it was itchy as hell?
Friday May 10
I went into Cambridge to meet people I’m doing some part-time research with (on virus detection and discovery, ironically). I was uncomfortable the whole time and spent much of the several hour meeting standing up. Sitting down was causing uncomfortable rubbing pressure on my pants line.
Late that night, Ana convinced me to call the emergency medical line. I didn’t feel it was warranted, but I admit I was worried. Plus, it was Friday night, the local surgery would be closed until Monday, and it was abundantly clear that if this thing didn’t stop spreading it was going to be really bad by then. A woman took my details, listened to the description, and decided to have the medical team call me. They did, and at 11:30pm I was given a midnight appointment at the Chesterton Medical Centre in Cambridge.
The doctor who saw me listened to my story and said I was having an allergic reaction. He put a bunch (8?) of triangular pink steroid tablets into a cup of water and got me to drink it. He wrote me a prescription for more. While talking to him I noticed an unusual slight twinge in my left eye, but didn’t think to say anything.
That night, the rash began to ooze. I noticed when turning over in bed that the sheets seemed to be wet. At first I thought I must be sweating a tiny bit without noticing it. After a while I realized the liquid was coming out of my body in tiny slippery beads of rash pus. Wet areas appeared on the sheets corresponding to my back, stomach, sides, thighs, etc. Very unpleasant. I didn’t sleep well, and not for the last time.
Saturday May 11
The rash has again spread and become denser. I filled the prescription and went into Cambridge with Sofia to meet Ana and the boys. Back home I took my first steroid dose. My right eye had begun to twinge too. Liquid-filled blisters were beginning to appear on the palms of my hands and on my fingers.
Sunday May 12
After another unpleasant night and more rash spreading, I called the emergency medical people again and got an immediate appointment at the Chesterton Medical Centre. I didn’t take calling for help lightly, but I was constantly uncomfortable and the steroids didn’t seem to have helped at all. The opinion this time was chickenpox. The doctor examined my eye but found no lesions on the cornea. So I went off the steroids and onto aciclovir tablets and aciclovir eye ointment. I was told to go to the Over Surgery on Monday to get a blood test for detection of chickenpox antibodies to confirm the dignosis. I mailed my parents to see if they could remember if I’d had chickenpox already. It seemed very likely that I must have, given that I did not get it when our 3 kids did.
Monday May 13: In isolation at Addenbrookes
I’m not saying much about the physical side of things. The rash itself was mainly itchy. But my upper body had become extremely sensitive, and I could hardly bear for things to touch it. The sensitivity had been making me tense for some days, so I was not physically relaxed – far from it. My breathing wasn’t natural and even: I’d take in a breath and hold it a little to avoid breathing out and moving my body. Looking in the mirror at my whole body was quite shocking. Given the speed of the spread of rash and the discomfort level, it was clear that in a couple of days things would be really serious.
I called the Over Surgery at 8:30am and got a 9am appointment to have a blood test. I packed a few things in a small bag because I had a feeling I might not be back for a while. As it turned out, I wouldn’t be back home for 10 days.
On arrival, they sent me to a small room where a nurse did the blood samples. She asked why I wanted the test and I told her. I lifted up my top to show her some of my stomach and she said “I’m calling a doctor”. When the doctor did not arrive after a few minutes, she called another. They both soon arrived, and both said the same thing: go straight to hospital.
It’s about a 25 minute drive to Addenbrookes hospital from Over. They tried calling Addenbrookes to speak to the dermatologist, but couldn’t get through. So the doctor wrote me a letter to help with admissions and told me to go to the Accident & Emergency section. I would have much preferred to go in an ambulance than to drive. I guess uncertainty about driving showed in my face or body. The doctor said they could call one, but I declined. I went out and folded myself uncomfortably into the car. I knew I could hold on and keep it together, but I also felt like I was on the edge of some kind of collapse due to sensory or stress overload. It’s hard to explain, but I didn’t feel well at all. I told myself to focus, to act normal, turned on the radio and off I headed.
At Addenbrookes I drove into the carpark. UK parking places are invarably narrow, and I wasn’t looking forward to trying to get into one. Turning my body or stretching to see were painful. Up and up I crawled in a line of cars looking for places, all the way to the 6th level before finding a spot. Then a short walk, feeling a bit geriatric, to A & E.
Inside, they screen all arrivals. I handed over my introduction letter, was given a summary form, and told to sit and wait to be registered. I looked at the summary form, which had the usual mundane information: name, address, etc. At the top, a description of the reason for the visit. Mine said “Rash. Cause?” I was soon called to the registration desk and the woman took more details, including next of kin, and asked if anyone knew I was there. She was telling me I’d need to go sit down again to wait, but I needed attention. I said: “I know ‘rash’ doesn’t sound like much of a problem, but I think I need help right away”. I showed her my stomach. She took one look and sent me back to the woman doing the input screening, and told me to tell her my story. I showed the screening woman my stomach, and that was it. I was out of the admissions area at high speed.
In a small room, they asked me a few questions. I was already in the medical system as “Doctor Jones”. I knew I now had to mention that I’d been doing some work in the Viroscience laboratory at the Erasmus Medical Centre (EMC) in Rotterdam a few weeks earlier. As I wrote to my father later that night in email:
If you ever want to get expedited at top speed through hospital admissions, being called DOCTOR JONES, having spent recent time in one of the world’s top viral labs, and having an unexplained full-on bright scarlet 90%-coverage body rash ain’t a bad combo!
They took me straight to a small isolation room. When they left me there I heard them hang something on the door on the outside – it sounded like they were barring it! Nurses and doctors began to come by to ask questions, take blood samples and nasal/oral swabs. I had a canula line put into the back of my left hand. My heart rate was 120 on admission. Resting it is 60 or less. A Scottish nurse asked to see my back and exclaimed “Oh, you poor, poor, gentleman!”. I had no idea what my back looked like. Bad, I guess. The questions were about recent travel, what I had been doing in Rotterdam, medication, health history. Chickenpox, excema, other illnesses, allergies, the diet change. Sexual practices, drugs, medication, travel, animal exposure, etc.
About 5 hours after arriving, I was admitted and told I wouldn’t be going home that night. After a chest x-ray, I was transferred to an isolation room in Ward L4. It was a ward full of older post-surgery patients, not one used for infectious disease patients. But they needed an isolation room, and that’s what was available. The room was huge, with a window and en suite bathroom. Just as I arrived, I ran into Ana and Derek in the ward looking for me. I was happy to be in hospital, being looked after instead at home looking at my body with mounting dread.
Derek took some photos and emailed them to medical and virology friends at EMC to get their opinions and to ask if anyone else at EMC had come down with a similar condition. The prevailing thinking, at least at Addenbrookes, was that I had chickenpox. The blisters on my palms seemed the strongest indicator. Rather few diseases cause blisters, apparently. My parents had mailed me back to say they couldn’t be sure whether I’d had them.
Tuesday May 14
The night was long and uncomfortable. I wont go into details of the discomfort (see below for some of that). It finally got light around 4:15am. I spent hours standing around in the room naked, sometimes with a blanket around my shoulders but held off my body. I’d lean against the wall to stretch my back, and listen to the clock tick. At some point I realized the rash had gotten into my scalp. I hope my face will continue to remain free from it.
I don’t remember much about the day. Blood samples, swabs, antibiotics going into my arm, more doctors and more questions. Ana and Derek visited again. Ana brought fruit and other supplies, including my Nexus 7. I had almost no comfortable positions that I could maintain for more than a handful of minutes, but lying on my back was fine. The Nexus 7 would become my point of contact with the outside world. The small screen, a case allowing it to stand propped up on my chest, some of my music on it, and connected via a wifi hotspot made by my phone – perfect. I couldn’t have used a laptop.
I met Dr Sterling (head of Dermatology) that day and was very impressed. I also had a swarm of 5 female dermatologists staring intently at my skin as I stood naked in front of them. I told them I wished I had a camera.
An old woman named Margaret has moved into the room next door. She’s confused and disoriented. Every 5 or 10 minutes she walks out of her room and announces “I’m going home”. The nurses tell her she needs to go back to her room, that she’s in hospital, that she can’t go home. “I’m not a child you know, I’m going home.”
Wednesday May 15
Margaret wanders silently into my room as I’m eating breakfast. I don’t turn around, thinking it is a nurse. Her voice comes from behind me: “wrong house.” I don’t say anything, and she leaves. Later in the day, I am taking a pee and the door to my bathroom is open. I hear someone come in and call out to tell them I’m in the loo. There’s no response. Then I hear a voice call “Margaret, you’re in the wrong room.” Margaret calls back to them “my sister is here, she’s in the toilet.” By the time I come out of the bathroom, Margaret is gone. Later I hear them telling her that she’s going home today: “I certainly am not!” she replies, telling the staff that her friends are coming here to visit her and that she has to leave the ward to find them. No, no, they reassure her, your friends are coming here, they’ll come here to where you are. “But why would they come here?” I feel sorry for them all. Poor Margaret, and the nurses who have to look after her constantly coming out to declare she’s leaving and needing to be shepherded around the ward.
The coalesced parts of rash have gone a dark purple color. Meanwhile the rash has again spread and gotten denser everywhere. Blisters (at least 50 of them) are spreading on my palms and fingers. The VZV (Chickenpox) result came back negative, as did HSV (Herpes Simplex Virus).
With the negative chickenpox result, the case is suddenly more interesting and pressing. I met Dr Moore (head of Infectious Diseases) who comes to see me with Doctor Sterling. Dr Moore stared at me like a hawk, listened to everything very carefully, and then began asking questions. I liked her immediately, she seemed extremely smart and thorough. She suggested they move me to her ward tomorrow so I could be closer to the infectious disease people.
Tomorrow they’ll start throwing every test at me they can think of. Although the rash might be treatable with a steroid cream, the steroids suppress the immune system. So we need to figure out whether my body is busy fighting an actual disease before using steroids to try to settle what could otherwise be some kind of allergic reaction. The doctors here and at EMC start thinking of possibilities while the rest of us are digging for possible leads in Wikipedia, aided by Google Images.
What the hell have I got?
Thursday May 16: Skin pain like on that holiday trip to Mercury
The canula in my left hand has been hurting a lot when they pump in the antibiotics. So they’ve changed it, and put it into my right forearm. Unfortunately, the plastic dongle attachments hang down to the middle of my forearm where it is unbearably sensitive. Shit.
From a mail I sent to Ana & Derek later this night:
Skin pain like on that holiday trip to Mercury, the one where you forget to take any sunscreen.
During the day, Dr Sterling takes two skin biopsies taken from left forearm. Five stitches in them, in total. One of the samples will go into her -80C freezer and we’ll send it to EMC if necessary.
That night I have a pain in my trunk, back right, as I get up out of a chair. Derek is still there and I tell him. After 15 minutes of waiting for it to go away, we alert the staff. I’m almost unable to raise myself in bed to a sitting position so as to get up. One problem they’re watching out for is any kind of internal infection, so a pain in my right kidney region is a bit of a worry. I’m sent for a chest x-ray in wheelchair, and I have to wear a mask. More blood is taken and sent off for septic analysis.
Ahead of the transfer to Infectious Diseases, I have a shower. I have a 500ml container of anti-bacterial soap-like liquid and I’m supposed to wash my whole body. On my left forearm I have the two bandages (covering the stitches from the biopsies) that are not supposed to get wet, and sticking out the middle of my right forearm are two dangling plastic dongles attached to a canula with a tube going into my arm. So I’ve got one arm that can’t get wet and one that I can’t bend properly, and I’m supposed to have a shower and wash myself?
After somehow managing that, I begin putting liquid paraffin all over the rash. I.e., over my entire body. You know you have a real rash when they provide you with soothing ointments by the liter. Once I’m done, the rash feels better, but I am totally covered in shiny paraffin. I hang out naked for as long as I can and then put on the hospital pyjamas for the ward transfer.
I’m transferred at 8pm to Infectious Disease ward D10, and placed in isolation. There’s an air lock to get into the ward and a “Barrier Nursing” sign on my door. The room is about half the size of the one I’d just left, and cold. Derek goes to ask them if they can turn off the blower, but it’s part of the airflow set-up of the isolation ward. He gets me a small radiator to counter the cold and soon after that, around 9pm, they ask him to leave.
I now have about 9 hours to get through before I’ll see the morning staff. I lay in the dark with the Nexus 7 on my chest and sent a short mail to Russell:
This is utterly hellish. The last ward was a paradise. I half expect Derren to walk in. I should be tweeting it. It’s only 2am. I have to look at it as a survival course. I wish I could write more easily. This is left hand only for various reasons. I should make a list.
I didn’t want to expand on how horrible I felt, because it seemed extra words could only make it seem less horrible than it was. But I had nothing better to do, I was certainly not going to fall asleep, so I might as well write up a list of things that were collectively making this all so unpleasant. So from 2-3:20am, typing with the index finger of my left hand and lying on my back, I got it all down, big and small.
The main problem of course was that my skin was ridiculously sensitive and painful. To ease this, I was covered in paraffin, from toes to neck. The paraffin is all over the inside of the synthetic hospital pyjamas. It soaks, somewhat, into the rasping synthetic sheets of the bed and synthetic pillowcase. The bed blankets are heavy and synthetic, and they too don’t mix well with paraffin. Everything is saturated with paraffin. None of it dries out at all or becomes any less slippery or welcoming. Under the paraffin, concreted to my skin are thousands of small golden crystals of solidified rash pus (see image for May 13). They are very hard and scratchy, and are difficult to dissolve in the shower. It is like having large grains of sand in the paraffin between me and the bed. The air conditioner is constantly on, blowing cool air onto me, and making the sheets cold and dead to the touch.
The skin pain is complimented by lots of things about my arms and hands that make it hard to do anything or be comfortable, apart from lying flat on my back. I have two cuts with stitches in them on my left forearm from the skin biopsies today. One of them has lost its dressing. I have a hospital name tag on my left wrist that is too loose. It will sound trivial, but it was extremely annoying. Hundreds of times, often using my mouth, I move it up and try to wedge it around my wrist, trying to keep it away from my forearm. The back of my left palm is bruised and sore from having a line in it for 3 days. The back of my right palm has been used about 10 times to draw blood. My right elbow crease area has the canula line in it, the tube going up into my vein above my elbow, making it uncomfortable to bend the arm. Two plastic dongle connectors hang from the line right to the exact middle of my ultra-sensitive forearm (see the image below). I need to find ways to position my arm so the plastic connectors are not resting on my forearm. Each time I move the arm, I try to avoid letting them touch me. The line hurts a little when the connectors dangle backwards out into the air, which happen if I raise the arm much (I am lying on my back, so raising the arm is a frequent need). The plastic bandage holding the line to my arm is half off, due to the paraffin, which makes it swing around more than it should.
There are about 60 blisters on my palms, between my fingers, and on the tops/bottoms of my fingers. Some are large, all are pressure sensitive. Closing my hands is awkward / sensitive due to this. Picking things up or, much harder, supporting my weight as I get up hurts the hands, for the same reason. I find it hard to bend down, let alone to reach the ground (skin pain) to pick anything up.
Lying on my back is fine, if I keep my arms angled out and clear of anything that could touch them or my underarms. But I have been lying down so much this past week, my back is very tired. Lying on my side is very uncomfortable due to arms, underarms, dongles, skin etc. I do it from time to time to relieve the back. I find a way to have both arms sticking out from my body, bent at the elbows, nothing touching anything, and I more-or-less hold the position and hope to drift off a little.
One thing I had been saving up and looking forward to as a midnight snack was a bowl of cereal with cold milk. After a couple of hours of lying in the bed, I decided it was time. I got up, feeling cold. I prepared the cereal and went to take the first delicious mouthful. Unbelievably, the milk had gone sour! I had to get warm again and the only place was the bed. But in the few minutes of preparing the cereal, I had left the sheets folded down and the air conditioner had blown on them. They were cold and saturated with paraffin. I forced myself back into the bed, pulled a blanket over myself, and tried to get warm.
At some point, I thought to myself “This is a survival course”. That everything that was going wrong, finishing with finding the milk sour and having to force myself into the wet sheets despite being freezing, was all part of a deliberate plan to break me. All part of a set of challenges I was being thrown and which I had to deal with. I mailed Russell, telling him I expected Derren Brown to walk into the room at any moment with a TV crew. The “survival course” perspective helped, and I began to smile (a little, inwardly). There was no way I was going to let this get the better of me. From then on, things have gotten better.
It was a horrible night. Probably the most uncomfortable of my life.
Friday May 17
My feet are now greatly swollen. Getting up from the bed is beginning to be painful. Negative test results come in on HIV and syphilis. During the day additional tests begin to come in.
Yesterday they weighed me: 81.6kg! I’ve somehow added 3.5kg in under 4 days. WTF?
Ana is worried I may have leukemia. It turns out she hasn’t slept for 3 days. The EMC guys have sent some worrying links, e.g., to things like Stevens Johnson disease. She brings me a ton of bedding: pillow cases, sheet, comforter cover, and a bunch of soft warm travel towels. That will make a huge difference.
Saturday May 18
It’s hard to see that I used to have ankles. My lower legs have turned dark purple with the rash and are very swollen. Large ugly blisters have appeared on inside of my heels, around my ankles, and on my Archilles tendons, on both feet The right leg is worse, but it’s a close thing. The upper part of my body is looking quite a bit better – compare the earlier photo of my underarm.
Dr Sterling drops in. She thinks, given the negative infectious disease results, it’s time to try some steroid cream on just my stomach & chest. She examines my “tree stump” legs and takes a photo with her phone.
Dr Moore drops by too. She looks at my legs and tells me that due to some cellular protein level being low, water that would otherwise be bound and inside my cells is leaving them via osmosis and is basically sloshing around (I am paraphrasing) inside my system, causing the inflammation of my feet. She tells me I have eat well, with as much protein as possible. She suggests protein shakes. I tell Derek, who lives on SPIRU-TEIN, and he brings me a can.
Ana comes by and is still terribly worried I may have leukemia. I call to get a doctor in some that she can hear why they don’t think so. Mok, who works with Dr Moore, comes by to help. He says he’ll ask the lab doing the biopsy to examine the white blood cells (my count is high) for any abnormal shape that might indicate leukemia. Mok comes by later to lance some of the blisters on my heels to collect their liquid for analysis.
That night I have a fever of 39C. But they’d given me paracetamol and codeine which keeps it in check. The codeine makes me feel totally weird. I am aware of the distant sensory roar from my skin as I lie with my arms touching the sheets. I can’t think clearly about anything. I see faces transform into mischievous devil caricatures, with goatees and horns. At about 3am I manage to collect myself and put the steroid cream onto my chest. The codeine weirdness goes on all night, until daylight. In the morning I find the canula in the bed next to me, the tube has been pulled out of my vein. I’ll not be trying the codeine again.
Sunday May 19
Sofia and Lucas visit with Ana. We eat Burger King that they bring and watch a movie. They look a bit shocked to see my upper body. I keep my pants on so as not to show my legs, which are much scarier at this point.
Getting into a standing position is now very painful. Pain shoots down my legs as the “sloshing” intra-cellular water pushes down through my legs. Then when my feet touch the ground, some of the water is forced back up my legs and pains shoot up to my inner thigh. Once I manage to stand, I have to take small shuffling painful steps for maybe a minute before things settle down and I can walk almost normally. If this keeps getting worse, getting out of bed is going to be a real problem.
I have very small new blisters on fingers. What’s going on, more blisters?
Monday May 20
The creep of additional rash redness on feet has continued overnight, and the rash is now between toes. Walking in flip flops affected. I realize I should have been putting the steroid cream onto my entire foot, not just the parts that visually (only) have the rash.
Ana and Derek bring delicious Indian food from Cambridge for lunch.
More infectious disease test results are coming in, all negative.
Tuesday May 21
Althea and Edward Parker visit. Rash creep on hands and feet has stopped. Liver structural damage sonogram test is negative. A stool enterovirus test comes back negative, ruling out Hand, Foot and Mouth Disease. I am declared officially non-infective, and get to go downstairs to coffee shop!
Derek drops by at night and we talk virus discovery and a presentation I’m due to give in Rotterdam next Monday. I’ve done no Fluidinfo work or anything else for a couple of weeks.
I am peeling pretty much everywhere. Each morning and evening I wash myself and apply steroid cream. In between I am constantly putting on a skin itchiness/excema moisturizer.
Wednesday May 22
I thought I’d be out today because the key liver test is now showing an improved result. But they want to keep me one more day to do another blood test for liver functionality. I’m tempted to let them take blood in the morning and then check out. If the result is bad, I can come back in.
At Costa coffee downstairs I begin to pull together the images (mine, Derek’s, Ana’s) from the weirdness of the last 9 days. I do some work on putting together the text for this blog post. Costa have a fast and free wifi network which you can use for 3 hours.
My legs are peeling so much. There are many large flakes of skin in the bed each time I get in or out. The peeling skin on my heels and back of my Archilles tendon is very thick. You wouldn’t think that skin could peel, but it can. The skin on your balls (if you have any) can peel too, I can confirm. It feels like I can rub cream into my feet forever and they still could use more. From shoulders down to feet it looks like I have a mild sunburn, skin either peeling or very dry.
Thursday May 23
I’m supposed to have a last blood test today, but they’ve not come as they usually do to take the sample. I’m totally packed up and ready to leave. It’s been 10 days.
Now I’ve had word, I’ll be out soon. They’re preparing the various ointments I’ll need at home. Blood just got taken again and the results will be back in about an hour. Next Wednesday I’ll come back in for another blood test.
There’s no strong conclusion as to what caused my rash. The doctors think the most likely explanation is that it was triggered by a virus, but they don’t know what. It could have been medication, but apart from some cough syrup and lozenges, I wasn’t on any. They say it’s not an allergic reaction, and that it’s not due to the diet change. If they’re right, I’m lucky, as it’s unlikely to re-occur.
The Addenbrookes people have been fantastic. Perhaps 100 people have looked after me over the last ten days. Many doctors, nurses, blood takers, food bringers, cleaners, wheelchair pushers, x-ray and sonograph operators, admin staff. They’re from all over: Poland, Hungary, Latvia, Zimbabwe, South Africa, Australia, Ghana, UK, India, Pakistan, Philipines, China. Everyone has been great. The nurses work 12 hour shifts. In a few hours I’ll be gone from here and someone else will be in this room, being taken care of just as expertly as I was, and the good people working here just keep going and going and going, making each patient feel special and cared for, for thousands of patients a year in this ward alone. I’ve had an unpleasant last 10 days, but compared to what some people go through on a much longer term basis, it has been nothing. I’m lucky, I’ll walk out in almost full health and soon be fully recovered.
And thanks so much to Ana and Derek, for coming by every day and taking so much care of me. That made a huge difference.
Last month (on Jan 18, 2013) someone I’m doing some work for initiated a transfer of €5,000 into my UK bank account. According to xe.com the mid-market rate that day was 1.1937940679 euros per pound.
So you might innocently expect to receive about 5,000 / 1.1937940679 = £4,188 minus any transfer fees.
The transfer went through an intermediate bank, who charged €17. Barclays charged “our commission” of a mere £6.
But the amount that arrived in my bank was not roughly £4,188 – £20 = £4,168 as you might hope.
The amount that arrived was £4017.74.
The friendly banks decided that the appropriate exchange rate for me that day was 1.23840, which is a full 4.5% higher than the mid-market 1.19379 rate. That’s £143 (€170).
Sure, I know there’s a buy/ask spread in currency and the mid-market rate isn’t what you’d get in any transaction. But taking £143 from your own customer just because you can is pretty fucking nasty. And so, via today’s arbitrary setting of the greed parameter in a bank computer, the voracious banking industry gobbles up just a little bit more of the money made by regular people. People who actually worked to earn that money.
It’s no wonder people hate their banks and that the financial system in general is so despised.
There are a bunch of general methods to do this listed on the Wikipedia page for Determination of the day of the week. Typically, there are several steps involved, and you need to memorize some small tables of numbers.
I used to practice that mental calculation (and many others) when I was about 16. Although all the steps are basic arithmetic, it’s not easy to do the calculation in your head in a couple of seconds. Given that most of these questions that you’re likely to face in day-to-day life will be about the current year, it seemed like it might be a poor tradeoff to learn the complicated method to calculate the day of the week for any date if there was a simpler way to do it for a specific year.
The method I came up with after that observation is really simple. It just requires you to memorize a single 12-digit sequence for the current year. The 12 digits correspond to the first Monday for each month.
For example, the sequence for 2012 is 265-274-263-153. Suppose you’ve memorized the sequence and you need to know the day of the week for March 29th. You can trivially calculate that it’s a Thursday. You take the 3rd digit of the sequence (because March is the 3rd month), which is 5. That tells you that the 5th of March was a Monday. Then you just go backward or forward as many weeks and days as you need. The 5th was a Monday, so the 12th, 19th, and 26th were too, which means the 29th was a Thursday.
It’s nice because the amount you need to memorize is small, and you can memorize less digits if you only want to cover a shorter period. The calculation is very simple and always the same in every case, and you never have to think about leap years. At the start of each year you just memorize a single sequence, which is quickly reinforced once you use it a few times.
Here’s Python code to print the sequence for any year.
import datetime, sys try: firstDayToFirstMonday = ['1st', '7th', '6th', '5th', '4th', '3rd', '2nd'] for month in range(12): print 'Summary:', '-'.join(summary[x:x+3] for x in range(0, 12, 3))
year = int(sys.argv)
year = datetime.datetime.today().year
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
summary = ''
firstOfMonth = datetime.datetime(year, month + 1, 1).weekday()
firstMonday = firstDayToFirstMonday[firstOfMonth]
print months[month], firstMonday
summary += firstMonday
import datetime, sys
firstDayToFirstMonday = ['1st', '7th', '6th', '5th', '4th', '3rd', '2nd']
for month in range(12):
print 'Summary:', '-'.join(summary[x:x+3] for x in range(0, 12, 3))
The output for 2012 looks like
Jan 2nd Feb 6th Mar 5th Apr 2nd May 7th Jun 4th Jul 2nd Aug 6th Sep 3rd Oct 1st Nov 5th Dec 3rd Summary: 265-274-263-153
The memory task is made simpler by the fact that there are only 14 different possible sequences. Or, if you consider just the last 10 digits of the sequences (i.e., starting from March), there are only 7 possible sequences. There are only 14 different sequences, so if you use this method in the long term, you’ll find the effort of remembering a sequence will pay off when it re-appears. E.g., 2013 and 2019 both have sequence 744-163-152-742. There are other nice things you can learn that can also make the memorization and switching between years easier (see the Corresponding months section on the above Wikipedia page).
Here are the sequences through 2032:
2012 265-274-263-153 2013 744-163-152-742 2014 633-752-741-631 2015 522-641-637-527 2016 417-426-415-375 2017 266-315-374-264 2018 155-274-263-153 2019 744-163-152-742 2020 632-641-637-527 2021 411-537-526-416 2022 377-426-415-375 2023 266-315-374-264 2024 154-163-152-742 2025 633-752-741-631 2026 522-641-637-527 2027 411-537-526-416 2028 376-315-374-264 2029 155-274-263-153 2030 744-163-152-742 2031 633-752-741-631 2032 521-537-526-416
Suppose you had to pick a very small set of character strings that you, and only you, could identify without hesitation in a particular way. What would you choose? How small a set could you choose and still be unique? For example, SOBGTR OCCC AILD FUNEX? is a set of strings that I think would uniquely identify me. (My interpretation is below.) I’m pretty sure that almost any subset of 3 of them would suffice. Coming up with a set of two wouldn’t be hard, I don’t think – but it feels risky.
There are 7 billion people on the planet. So if you just pick 3 reasonably obscure acronyms, e.g., things that only 1 person in 2000 would recognize, you’re heading in the right direction (since 2000 cubed is 8 billion). But that’s only if the obscurity of the things you pick is independent. For example, it’s less good to pick 3 computer acronyms from the 1960s than to choose just one of them plus some things from very different areas of your knowledge.
- Each of your strings with its meaning to you must be findable on Google.
- To match with you, another person must interpret all your strings the way you do.
Rule 1 prevents you from choosing something like your bank PIN number, that only you could possibly know. Without this rule, everyone could trivially choose a set of one string. The rule makes thinking up a uniquely identifying set for yourself like a game. Given that all your strings and their interpretations are on Google, each of your strings will likely be recognized by someone in the way you recognize it, so your set will probably have at least 2 strings. You need to choose a set of strings whose set of interpretations, taken as a whole, make you unique (Rule 2).
Why is this interesting?
I find this interesting for many reasons. It seems clear that uniquely identifying sets are fairly easy to construct for people and they’re very small. Certainly small enough to fit in a tweet. Although it’s easy to make a set for yourself, it’s hard to make one for someone else – you might even argue that by definition it’s not possible. If someone else makes one, you can’t produce their set of interpretations without spending time on Google, and even then you’d probably have to know the person pretty well.
Is there a new authentication scheme here somewhere? It’s tempting to think yes, but there probably isn’t. This is less secure than asking people for a set of secrets that are not each findable in Google, so anything you come up with is almost certain to be less secure than the same thing based on a set of actual secrets. It’s more of a fun thought exercise (or Twitter game). It’s not hard to imagine some form of authentication. For example, identify which of a set of symbols are special to you (avoiding others chosen randomly from, say, the set of all acronyms), and their correct interpretations for you, and do it rapidly. Or if a clone shows up one day, claiming to be you, and you’ve thoughtfully put a sealed set of unique symbol strings in your safe, you should be able to convince people that you’re the real you :-)
Here’s my unhesitating interpretation of the set of 4 strings above:
- SOBGTR: Subtract one and branch if greater than zero. You probably have to have written VAX assembly language code or a compiler targetting the VAX in the 1970s or 80s to get that one. More info here.
- OCCC: The Old Cranbrookians Cricket Club, of course.
- AILD: A widely-used (in very small circles) acronym for William Faulkner’s book, As I Lay Dying.
- FUNEX? – “Have you any eggs?” From a 1974 Two Ronnies episode Swedish Made Simple.
Remember, to be me you have to get them all. It’s not enough to get a couple, or even three of them.
Because it’s emacs, it wasn’t hard to write a function to display a buffer mode histogram. Here’s mine:
235 buffers open, in 23 distinct modes 91 python +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 47 fundamental +++++++++++++++++++++++++++++++++++++++++++++++ 24 js2 ++++++++++++++++++++++++ 21 dired +++++++++++++++++++++ 16 html ++++++++++++++++ 7 text +++++++ 4 help ++++ 4 emacs-lisp ++++ 3 sh +++ 3 makefile-gmake +++ 2 compilation ++ 2 css ++ 1 Buffer-menu + 1 mail + 1 grep + 1 completion-list + 1 vm + 1 org + 1 comint + 1 apropos + 1 Info + 1 vm-summary + 1 vm-presentation +
Tempting as it is, I’m not going to go on about the heady delights of having a fully programmable editor. You either already know, or you can just drool in slack-jawed wonder.
Unfortunately I’m a terrible emacs lisp programmer. I can barely remember a thing each time I use it. But the interpreter is of course just emacs itself and the elisp documentation is in emacs, so it’s a really fun environment to develop in. And because emacs lisp has a ton of support for doing things to itself, code that acts on emacs and your own editing session or buffers is often very succinct. See for example the save-excursion and with-output-to-temp-buffer functions below.
"Display a histogram of emacs buffer modes."
(let* ((totals ‘())
(total-buffers (length buffers))
(ht (make-hash-table :test ‘equal)))
(dolist (buffer buffers)
((mode-name (symbol-name major-mode)))
(puthash mode-name (1+ (gethash mode-name ht 0)) ht))))
(maphash (lambda (key value)
(setq totals (cons (list key value) totals)))
(setq totals (sort totals (lambda (x y) (> (cadr x) (cadr y)))))
(with-output-to-temp-buffer "Buffer mode histogram"
(princ (format "%d buffers open, in %d distinct modes\n\n"
total-buffers (length totals)))
(dolist (item totals)
((key (car item))
(count (cadr item)))
(if (equal (substring key -5) "-mode")
(setq key (substring key 0 -5)))
(princ (format "%2d %20s %s\n" count key
(make-string count ?+))))))))
Various things about the formatting could be improved. E.g., not use fixed-width fields for the count and the mode names, and make the + signs indicate more than one buffer mode when there are many.
I’m reading The Grapes of Wrath for the first time. I can’t believe it took me so long to finally read it. It’s great.
Below is a section I just ran across that I imagine will resonate strongly with the people involved in Occupy Wall Street. I’ve long been fascinated to watch how power tries to maintain itself by attempting to enforce isolation and to restrict information flow, and, on the contrary, how increased information flow between the subjects of power naturally undermines this basis. Awareness of these opposing forces, even if not explicitly understood, is what I think accounts for the tenacity and ferocity on both sides of the OWS (and many other) movements, even (especially) when the movements are still only tiny. The occupiers experience the surge of energy and determination and self-identification that comes from solidarity, while those in power recognize the danger and act in heavy-handed ways to try to crush it, usually after trying to ignore and then ridicule. The consistent characteristic of the reaction against these movements, as Steinbeck notes, is that those in power do not understand what’s going on. So in their efforts to snuff out the protests they instead fan the flames, which they then have to react even more violently to. It seems an extraordinarily difficult task for power to successfully manage to defuse a popular movement without resorting to extremes. Hence the absurd justifications of needing to clean (often already cleaned – by the protesters) public spaces, to make the public spaces once again available to the public, etc. Disperse, ridicule, isolate. If the gentle pretenses do not work, then we’ll do what we can to get rid of or evade the media (in all its forms), and then come in and beat the shit out of you.
So for all those out there in the OWS camps around the world (don’t forget there were protests in almost one thousand cities worldwide), and especially for those in the US, here’s some beautiful Steinbeck:
One man, one family driven from the land; this rusty car creaking along the highway to the West. I lost my land, a single tractor took my land. I’m alone and I am bewildered. In the night one family camps in a ditch and other family pulls in and the tents come out. The two men squat on their hams and the women and children listen. Here’s the node, you who hate change and fear revolution. Keep these two squatting men apart; make them hate, fear, suspect each other. Here is the anlage of the thing you fear. This is the zygote. For here “I lost my land” is changed; a cell is split and from its splitting grows the thing you hate — “we lost our land.” The danger is here, for two men are not as lonely and perplexed as one. And from his first “we” there grows a still more dangerous thing; “I have a little food” plus “I have none”. If from this problem the sum is “we have a little food”, the thing is on its way, the movement has direction. Only a little multiplication now, and this land, this tractor are ours. The two-men squatting in a ditch, the little fire, the side-meat stewing in a single pot, the silent, stone-eyed women; behind, the children listening with their souls to words their minds do not understand. The night draws down. The baby has a cold. Here, take this blanket. It’s wool. It was my mothers blanket — take it for the baby. This is the thing to bomb. This is the beginning — from “I” to “we”.
If you who own the things people must have could understand this, you might preserve yourself. If you could separate causes from results, if you could know that Paine, Marx, Jefferson, Lenin were results, not causes, you might survive. But that you cannot know. For the quality of owning freezes you forever into “I”, and cuts you off forever from the “we”.
The Western states are nervous under the beginning change. Need is the stimulus to concept, concept to action. A half-million people moving over the country; one million more restive, ready to move; 10 million more feeling the first nervousness.
And tractors turning the multiple furrows in the vacant land.
I’m leaving Barcelona on October 19th and have a bunch of stuff I need to get rid of before then. If you’re interested anything below, please let me know ASAP. You’ll need to come pick things up in the Born, right next to Santa Maria del Mar. I’ve not put prices on anything. So either make an offer or tell me why I should just give you what you want for free. You can reach me via email to terry at-sign jon dot es.
- Cheap ironing board
- Braun iron
- Vacuum cleaner
Dell DN1815 multi-function networked laser printer (black & white). Fax, copy, scan, print. 5 years old, works great. 20" Miyata deluxe (48 spoke) unicycle 26" Semcycle unicycle 6 Renegade juggling clubs Bag of about 15 silicone juggling balls
- 2 minitorre computers (from about 2002) without hard drives
- 3 Ikea CD shelves (each holds about 200 CDs)
- 7 60cm wide x 2.5m tall white Ikea (Billy) bookshelves
- 1 40cm wide x 2.5m tall white Ikea (Billy) bookshelf
- 1 30cm wide x 2.5m tall white Ikea (Billy) bookshelf
- 19" CRT monitor
- 2 100Mbit ethernet hubs (5 port, 8 port)
- 5 cable modems (DLink, Cisco, 3Com)
- 2 Siemens Gigaset AS29H DECT phones, like new, white
- White wooden Ikea TV/DVD table
- Massive (3m by 1.2m) wall-mounted whiteboard
- White Ikea filing cabinet (2 wide roll-out shelves)
- Green wooden 6-drawer small rolling shelves
DVD player with sub-woofer & 5 external speakers Sony CD player with sub-woofer & 2 external speakers Panasonic NVGS230 hand-held video recorder, perfect condition
- K2 rollerblades 6000 series, good condition, size 41/42
- 5-wheel speed skates, size 41/42
- Philips toaster
- Large wooden Ikea cutting board
- Electric juice extractor
- Hand-held electric blender
- Barcelona apartment floor tiles. I have about 20 that I’ve accumulated over the years.
In 1928, Axel Munthe, a Swedish physician living on the isle of Capri, published The Story of San Michele. Munthe’s villa on the slopes of Mount Barbarossa stands on a site chosen almost two thousand years earlier by the emperor Tiberius, who from tiny Capri held sway over the entire Roman empire. Extraordinarily beautiful, the island passed at various times through the hands of the Greeks, the Romans (Caesar Augustus was captivated), the Dutchy of Naples, the Saracens, the Longobards, the Normans, the Angevins, the Aragonese, the Spanish, and the Bourbons.
On completing his medical studies, Munthe was the youngest physician in Europe. The Story of San Michele describes his time in Paris and Rome, his years as the physician to the Swedish Royal family and later his years as private physician to the queen of Sweden, who had also taken a liking to Capri. Written in English, The Story of San Michele, which remains in print, was an instant success, becoming the best-selling non-fiction book in the U.S. in 1930. Munthe’s novel approach to medicine and the book’s mixture of adventure, treasure, and royalty continue to inspire. The Story of San Michele was the mysterious target of one Henry Arthur Harrington, a petty thief who crisscrossed the UK, stealing 1,321 copies from second-hand bookstores before his eventual arrest in 1982. Even in 2003, Munthe’s contributions are the subject of learned attention: the Second International Symposium on Axel Munthe’s life and work will be held in Sweden tomorrow (September 13).
With the rapid success of The Story of San Michele, the book was a natural target for would-be translators. Editions in several languages were soon completed. Given its origin, it was odd that such a popular book was not more quickly translated into Italian.
Living in Florence, Patricia Volterra was fascinated by the book and was eager for her husband Gualti to read it too. A minor obstacle: Gualti did not speak English. Undeterred, Volterra decided to translate the book into Italian. She wrote to John Murray, the publisher, requesting permission. To her surprise, she received a reply directly from Munthe. From Volterra’s diary, Munthe told her that:
the book had already been translated into several languages and was selling like wildfire. To date he had refused offers for it to be translated into Italian as, he wrote, this language, when written, was apt to become too flowery and overloaded and that he had written the book in an extremely simple style which he wished to retain. However, he continued, he suggested I should translate the last chapter, which he considered the most difficult, and send it to him to the Torre Matterita at Anacapri. He would then let me know whether he thought he could permit me to translate the rest.
Volterra sent off her translation of the final chapter and spent several weeks waiting for an answer. Finally her manuscript was returned “with an extremely complimentary letter from Munthe, telling me to proceed to do the rest.” Later she wrote that at that time nothing seemed impossible to her but that now she wouldn’t have even considered the translation.
While working on the translation, she had lunch with Munthe in Rome when Gualti, an Italian concert pianist, was playing at the Augusteum. Munthe was staying at Villa Svezia, the Queen of Sweden’s residence on the Via Aldovrandi. When Munthe saw her he exclaimed ‘My goodness, how old are you?’ She: ‘Twenty three.’ He: ‘And you are translating San Michele!’ Munthe was over 70 at the time.
Volterra sent the work to an Italian publisher, Mondadori, who refused her. “Their great loss,” she wrote. Another, Treves, accepted. Munthe “had decreed that the entire royalties should go to the Society for the Protection of Animals in Naples.” Volterra was to sell her translation for whatever she could get for it. This amounted to the equivalent of 50 pounds sterling for 8 months work.
Later that spring, Volterra traveled to Capri. In a horse-drawn cab they drove to Anacapri where they visited San Michele. From there on foot through the olives to the Torre di Materita to have lunch with Munthe. A variety of his dogs scampered round his heels as he showed them the old tower which was then his home. They had a vegetarian lunch served by Rosina, so affectionately mentioned by Munthe in his book.
The Volterra translation ran quickly into 35 editions and was still selling well when she left Italy in 1938. Mussolini was so impressed by La Storia di San Michele that he passed a law prohibiting the shooting of migratory birds on Capri.
Volterra saw Munthe one final time, in Jermyn Street, London. Munthe died in 1949, leaving the villa of San Michele to Sweden. Owned today by the Swedish Munthe Foundation, it is home to an ornithological research center and is open to the public.
[Continued in part two, "Bob Arno".]
For the last seven years, I’ve kept a web page full of people’s email about street scams they’ve been involved in (as victims) in Barcelona.
In the beginning I just wrote down brief descriptions of things that I saw or was involved in soon after moving to Spain. I’d seen hardly any street crime in my (then) 33 years and I found it fascinating to watch for. It certainly wasn’t hard to find. Often it came right to my door or to the street under my balcony. Before long I began to receive email from others who had visited or lived in Barcelona, each with their own story to tell. I put the stories onto the web page and they soon outnumbered my own. I continue to receive a few emails a month from people who’ve read the web page (generally after being robbed, though sometimes before leaving on a trip). I don’t often reply to these emails, apart from a line or two to say thanks when I put their messages on the web page, often months after they mail me.
For whatever reason, I’ve never been very interested to meet these people, though I’ve had plenty of chances to. In general I don’t seem to have much interest in meeting new people – it’s quite rare that I do. I should probably be more sociable (or something) because once in a while the consequences are immediately extraordinary.
Among my email, I get occasional contacts from people in the tourism industry. Lonely Planet, Fodor’s, people writing books or running travel services or web sites. Mainly they want to know if they can link to the web page, or to use some of the content in their own guides. I always agree without condition. After all, the main (but not the only) point is to help people be more aware, and besides, the majority of the content was written by other people who clearly share the same advisory aim. With this attention from various professionals who are trying to pass on the information, I began to wonder how many such people there were. Maybe there were other people with web sites devoted to street crime. So once in a while I’d do a web search on “street scams”, or something similar, just to see what came up. It’s usually interesting.
On July 30th 2001, I went looking around for similar web sites and ran across Bob Arno. I took a quick look around and fired off an email to say hello, and offered to buy him a beer the next time he was in Barcelona:
Hi Bob I was just having a wander around the web when I ran into your pages about pickpockets. They look good, very useful. You might be interested to see a page of my own: http://jon.es/barna/scams.html All about things that have happened to people in Barcelona. It's not too well organized, but there's a lots of it. Most of it falls into well known classes of petty crime. Things are getting worse here, with the most recent tactics being strangulation from behind and squirting a flammable liquid onto people's backs and then, you guessed it, setting them on fire. Let me know next time you're in Barcelona and I'll buy you a beer. I'm also in Manhattan very often. Regards, Terry Jones.
Bob looked very interesting, and we seemed to have the same point of view on street crime. He’s a seasoned professional, a Vegas showman, and is constantly traveling the world studying many forms of crime and passing on his knowledge. Check out his website.
I sent mail to Derek, passing on Bob Arno’s URL. I said a little of how funny and random it seemed to me, of how over all the years of doing different things and meeting any number of famous and high-powered academics and intellectuals etc., and not really having much interest in any of them, that I’m sending email to this Bob Arno guy suggesting we meet up.
The next day I read more about Bob’s exploits and interests and I guessed that we would probably get on really well. I sent off a longer email with some more of my observations about Barcelona:
Hi again. I sent off that first email without having looked at more than a page or two of your web site. It's very interesting to read more. I spend far too much time thinking about and watching for petty thieves in Barcelona. I've thought about many of the issues touched on in the interview with you by your own TSJ. The whole thing is very intriguing and lately I've begun to wonder increasingly what I can do about it, and if I want to do anything about it. I have tended to act to try to stop pickpockets, but I've also seen things many times from a distance or a height, read many things, seen freshly robbed people weeping, talked to many people who have been robbed, thought of this as an art (I'm interviewed in a Barcelona newspaper under the headline "Some crimes are a work of art" - I'm not sure if they understood what I meant), etc. I've never tried filming these people. But I know how they look at you when they know they have been spotted, how their faces look when the wallet hits the floor, how they prey on Western or "rich" psychology, and so many other things. My focus has been Barcelona, after coming to live here 5 years ago and (at that time) having an apartment 1 floor up about 100 meters from Plaza Real. If I had had a net I could have caught people several times a day. I recently got a video camera and was thinking of interviewing the woman on my web site who was strangled here earlier this month. By the way, the papers reported up to 9 cases of such stranglings in a single day. I wasn't quite sure what to do with the tape. It hadn't occurred to me to film the thieves, but it would be so easy. In Barcelona it's trivial to spot these people, and also feels very safe since many of them have been arrested literally hundreds of times. There is basically no deterrent. There are undoubtedly more sophisticated pickpockets here too, but there is little in the way of evolutionary pressure to make them improve their methods. The tourists are too many and too unaware, the police are too few, and the laws are too slack. Why would you even bother to improve or think? I also know the boredom that comes with professional acts. I used to do a lot of juggling and unicycling, practicing 6 hours a day for a long time. But I could never stand to have a canned show that I did time after time - it was just too routine to have a routine. So I refused and eventually drifted into other things. How can I get a copy of your book? It doesn't seem to say on the web site. Also, the menu of links at the top left of your pages looks extremely garbled under my browser (Opera). Terry
As it turned out, my timing was perfect. I got a mail back the next day from Bob’s wife Bambi (yes, really). She said they’d be in Barcelona in just 5 days time and that they’d love to meet up.
And meet up we did!
They came to our apartment and we all hit it off immediately. As I’d thought, we did have a lot in common, both in terms of what we had done and in outlook. They told me they also get lots of email through their web site and hardly ever reply. Ana and I took them out for food. We sat outside at the nearby Textile Museum. Later, Ana went home to look after Sofia, and I stayed with Bob and Bambi. In the end I was with them about five hours and I had a really good time. We arranged to meet the next day to go hunting for thieves on the Ramblas. In one sense, “hunting” isn’t at all the right word: the thieves are typically very obvious to anyone who’s actually paying attention. But there’s a lot of subtlety in tracking and filming them, so it really is something like a hunt. I’ve since spent many hours, on several occasions, in action with Bob and Bambi in Barcelona. But that’s another story.
After getting home that first night, I went back to Bob’s web site and read more of his pages. He’s had a pretty colorful life. Actually, it’s extraordinarily colorful by almost any measure. “Who is this Bob Arno?” I wondered. Fortunately, Bob has a “Who is Bob Arno?” page, which I finally got around to reading.
Halfway down… unbelievable… I want to cry.
Born in Sweden, Bob Arno is a great-grandson of Dr. Axel Munthe, who is most famous for his novel The Story of San Michele.
Patricia Volterra was my great aunt.
I spent 4 wonderful years (92-96) at the Santa Fe Institute in New Mexico. During that time there was a very funny underground SFI newsletter “The New Can” (a play on the name of the NM newspaper The New Mexican) that poked merciless fun at various Institute activities and researchers. The author, a brilliant friend, must unfortunately remain anonymous. I still have half a dozen copies, and I imagine I must be one of the few people on earth who does. I ran across them tonight. Below is a graph that appeared in the September 14, 1992 edition entitled “Mutation Rocks Halls of SFI”. I’ve always loved it.
happened about 20/30 yards in front of me
2 guys on a motorbike
the back guy leans sideways
smooth as can be
takes the handle of a bag from an old well dressed woman they head off down the side of the church
right next to where i live the people yell out to the people at the end of the street
looking away from me i am in motion sprinting. i zoom past the robbed
going absolutely flat out
heading to the end of the street
thinking i had no chance at all but, around the corner
not more than 5 yards
i see the guys on the motorbike
caught behind some walking other people
(there is construction there
which makes it narrower
harder to pass) this is right on the corner of paseo del borne (our street)
and montcada and………………….. i fucking tackled them
over the top
arms spread to get them both at once
guys to the ground
motorbike to the ground
me falling stepping over the top
grazed shin, no more i wasn’t thinking really
just knew i had to stop them
couldn’t do it as good as it could have been
and as it was the bike crashed down almost
into some people beside it
who had no clue what the fuck was going on the guys jumped up
ripped off their helmets and flung them away
one smacking hard into the wall
and sprinted off
leaving one shoe behind i was pretty surprised
didn’t occur to me that the bike was stolen too the cops turned up in about a minute flat
there were 30 or 40 people gathered around
talking like crazy
no-one knew what had happened
the robbed people just came around the corner to find a mess
one guy saw it and one woman
the woman acted like my PR agent
telling the entire crowd
over and over that i was a hero it was great
i smiled and bowed to them all
like an idiot
hamming it up the robbed people thrust a 2000 ptas reward into my hands
absolutely insisted that i take it
(we ate it in pizza later) the cops shrugged it off
called in the stolen bike it was pretty cool
i could get into being a vigilante i should have tried to have held one of the guys
but i thought hitting them hard sideways
and knocking their bike over would do it but, it wasn’t their bike i was smiling afterwards
the most exercise i’ve had
since beating derek to the office on skates a few weeks back
Earlier this week I gave a talk titled Deferred Gratification (slides) at EuroPython in Birmingham. The title was supposed to hint at how much I love Twisted‘s Deferred class, and that it took me some time to really appreciate it.
While thinking about Deferreds in the days before the talk, I think I put my finger on one of the reasons I find Deferreds so attractive and elegant. The thought can be neatly summarized: Deferreds let you replace synchronous data structures with elegant asynchronous ones.
Because Twisted’s Deferreds don’t have anything to do with UIs or networking or filesystems, you can use them to implement other asynchronous things, like an asynchronous data structure. To show you what I mean, here’s a slightly simplified version of Twisted’s DeferredQueue class, taken from twisted/internet/defer.py:
# It would be better if these both used collections.deque (see comments section below).
self.waiting =  # Deferreds that are expecting an object
self.pending =  # Objects queued to go out via get.
def put(self, obj):
d = Deferred()
I find this extremely elegant, and I’m going to explain why.
But first, think about code for a regular synchronous queue. What happens if you call get on a regular queue that’s empty? Almost certainly one of two things: you’ll get some kind of QueueEmpty error, or else your code will block until some other code puts something into the queue. I.e., you either get a synchronous error or you get a synchronous non-empty response.
If you look at the get method in the code above, you’ll see that if the queue is empty (i.e., the pending list is empty), a new Deferred is made, added to self.waiting, and is immediately returned to the caller. So code calling get on an empty queue doesn’t get an error and doesn’t block, it always gets a result back essentially immediately. How can you get a result from an empty queue? Easy: the result is a Deferred. And because we’re in the asynchronous world, you just attach callbacks (like event handlers in the UI world) to the Deferred, and go on your merry way.
If you can follow that thinking, the rest of the code in the class above should be easy to grok. In put, if there are any outstanding Deferreds (i.e., earlier callers who hit an empty queue and got a Deferred back), the incoming object is given to the first of these by passing it to the callback function of the Deferred (and popping it out of the waiting list). If there are no outstanding Deferreds expecting a result, the incoming object is simply appended to self.pending. On the get side, if the queue (i.e., self.pending) is non-empty, the code creates a Deferred that has already been fired (using the succeed helper function) and returns it.
By now, this kind of code seems routine and straightforward to me. But it certainly wasn’t always that way. So if the above seems cryptic or abstract, I encourage you to think it over, maybe write some code, ask questions below, etc. To my mind, these kinds of constructs – simple, elegant, robust, practical, obviously(?) bug-free, single-threaded, etc. – are extremely instructive. You too can solve potentially gnarly (at least in the threaded world) networking coding challenges in very simple ways just by building code out of simple Twisted Deferreds (there’s nothing special about the DeferredQueue class, it’s just built using primitive Deferreds).
For extra points, think about the concept of asynchronous data structures. I find that concept very attractive, and putting my finger on it helped me to see part of the reason why I think Deferreds are so great. (In fact, as you can see from the use of succeed, Deferreds are not specifically asynchronous or synchronous: they’re so simple they don’t even care, and as a consumer of Deferreds, your code doesn’t have to either). That’s all remarkably elegant.
Back in December 2006 I wrote about finishing Proust and made a rough argument about how often anyone on earth finishes the whole thing. The argument was a bit subtle. I was never 100% convinced it was sound, but no-one I showed it to found a hole in it. I still think about the question from time to time. The other day I mentioned the original post to Tim O’Reilly. Later that day, I realized there’s a much simpler way to get an estimate, with far fewer assumptions.
The new approach is simply to divide the number of hours that have passed since In Search of Lost Time was published by the number of people who’ve ever finished it. That average is a crude measure, but it may be nevertheless quite accurate and it’s irresistibly interesting to me to see how it compares to my original 2006 estimate of 2.19 hours.
So, assume 2B people were alive in 1927 when the final volume was published, and 6.4B alive at the end of 2006 (source).
Assume that no-one alive in 1927 was still alive in 2006 (obviously not the case, but not unreasonable and not a significant error). I.e., there were 4.4B births in those 79 years. Note: This is ignoring a significant number of people who were born after 1927 and who died before 2006. But it is including everyone born from 1990 onwards, essentially zero of whom would have read Proust by 2006.
In my original post I estimated that one person in 10K actually finishes the whole book. So that’s 4.4B/10K = 440K people who read the book during the 79 years.
79 years is 28,835 days, or 692,040 hours. Doing the division, 692,040 / 440,000 = 1.57 hours.
I.e., by the above rough reasoning, someone, somewhere on earth, finishes Proust every 1.57 hours, on average.
I find the closeness of the two estimates quite remarkable. There’s only one shared assumption (1 in 10,000 finishes). Both estimates are quite crude, yet there’s only about a 30% difference in the answers. I was expecting them to be much more divergent.
Today I met an extraordinary Iranian man in the Geneva airport. He’s written a 1000 page book in Arabic about (at least in part) his experiences in Cyprus. He approached me, asked if my English was really really good, sat next to me, and started pulling out several pages of hand-wrtten uppercase English. He had me go over them, improve them, write some new text as he read his Arabic in halting English, told me exactly how he wanted it to sound, pressed me to find shorter ways to say things, and finally got me to write out (for his next helper, no doubt) a clean copy of all my work. He had me go look up a recent paper dating the evolutionary split between humans & chimpanzees and to confirm that it didn’t contradict his text (another fragment thrust importunately into my hands). He was about 75. We spent 90 mins together, smiling and congratulating each other over a few sentences that turned out particularly well. Told me he’s going to have it published by Oxford – that’s his aim anyway.
I thought to myself that we each have our own mountain to climb – or at least those who have a taste for years-long patient endeavors, but how different his from mine. We parted and he went off to approach another stranger. He’ll get the whole book done a few pages a day in the Geneva airport, I’ve no doubt. “It’s the perfect place” he told me. Amazing, extraordinary, humbling, etc…
In case you missed it, FluidDB has (finally) launched. I wont be blogging here about FluidDB or Fluidinfo, though will continue to post personal things and of course random bits of code that seem interesting (and small) enough to warrant mention. I have yet another Twisted snippet coming up, though I’m not sure when I’ll get there.
We’re all exhausted and thrilled to have FluidDB out the door. I wont try to describe the feelings, except to say that it’s all incredibly exciting, and that I haven’t been getting much sleep recently. The reaction in the programmer community has been astounding: there are 9 client-side libraries already written (with more on the way), there are tools, there’s a FluidDB Explorer, and little apps are now starting to pop up. We couldn’t be happier. You can see a list of those things here.
To find out more about FluidDB, here are your best choices:
- The FluidDB blog. Recent posts describing FluidDB are:
- The FluidDB high-level overview goes into the information model of FluidDB, its permissions system, and the query language.
- The FluidDB-discuss mailing list is a great place to ask questions, and has already seen some detailed discussion on spam and the FluidDB about tag.
- If you’re a programmer looking to learn about FluidDB, the #1 thing you should do is join the #fluidDB IRC channel on irc.freenode.net. There are many people there learning about FluidDB, exchanging tips, and writing new libraries, tools, and apps. You can also read the API documentation.
Thanks for reading along! The real journey is probably only just beginning…