May 262023
 

Cov­id, I mean. As in the pan­dem­ic that is still there, that people are try­ing to ignore and pre­tend it’s not that bad. Except that for those of us deal­ing with long cov­id, or post-cov­id, or cov­id-induced chron­ic fatigue, or post-vir­al chron­ic fatigue, call it what you will, it’s very much still there. It’s there every morn­ing when we wake up and feel halfway back to nor­mal, and then try to sit up or stand up or have a shower, and real­ise yet again we have to sit down for a few minutes to let the heart rate settle down. And I’m one of the lucky ones that can stand and walk and sit for hours; so many are still bed-rid­den. Some are func­tion­ing des­pite all of this (Cath­er­ine Hey­mans, for example), some are not. 

I’m doing bet­ter than I was, the brain fog has lif­ted some­what, but I’m lim­ited in how many hours I can work each day, how much I can do phys­ic­ally, how much energy I have emo­tion­ally. And I’m one of the lucky ones, with a work­place that’s under­stand­ing and a fam­ily that’s sup­port­ive. Even with that, it’s hard and frustrating.

There are some 220 post-cov­id symp­toms, which come in vari­ous group­ings and nuances. Com­mon symp­toms are brain fog, fatigue that comes seem­ingly from nowhere, a heart rate that bounces around, and the feel­ing that you can­’t get enough breath. The BC long cov­id clin­ic (which requires a refer­ral from your fam­ily doc­tor, should you be lucky enough to have one) con­cen­trates on edu­ca­tion, which is use­ful, but leaves you try­ing to fig­ure out what your own indi­vidu­al type of post-cov­id is. If you’re lucky enough to have a sup­port­ive fam­ily doc­tor (which I do), they will try to work with you to fig­ure this all out. If you’re unlucky enough to have one who does­n’t believe in dys­auto­nomia or pos­tur­al ortho­stat­ic tachy­car­dia (POTS) as symp­toms of long cov­id, you go to the long cov­id clin­ic and find sup­port­ive voices from all the oth­ers whose doc­tors don’t believe their symp­toms are real.

But they are real. One way to dia­gnose POTS at home is the NASA lean test. Basic­ally, the the­ory behind the test is that when you go from lying to stand­ing, your blood pres­sure nor­mally drops slightly as grav­ity acts on the blood, and your heart rate goes up a little to com­pensate. If you’re healthy, everything nor­mal­izes rap­idly so you can stand and walk without issues. The NASA lean test tests how quickly that hap­pens, and what your body goes through when you change elev­a­tion from lying to stand­ing. If you have POTS, when you go from lying to stand­ing your heart rate goes up a lot, and either your blood pres­sure drops a lot, or your blood pres­sure goes up a lot. Both vari­ations are known, both indic­ate POTS. A word of warn­ing if you want to try this test and you sus­pect you may have some blood pres­sure or heart rate issues: Make sure you don’t have any­thing major planned that day. Doing the test gave me a head­ache and wiped me out for the rest of the day. And of course, just know­ing that you have some POTS-style issue does not mean there’s a treat­ment for it, oth­er than the ubi­quit­ous advice about pacing. 

Pacing is everything in the world of long cov­id, along with not catch­ing cov­id again. More on what that means next time, writ­ing this has depleted my energy levels for the day.

Jul 032017
 

In Canada, where I live, the vot­ing sys­tem for the par­lia­ments is the easy to under­stand, but blunt, first past the post (FPTP) sys­tem (also called plur­al­ity vot­ing). The per­son who wins the most votes (a plur­al­ity) wins the seat, wheth­er they get over 50% or under 30%. I believe that it’s time we had a sys­tem that gives more people a more nuanced say in the gov­ern­ment they get; tac­tic­al vot­ing of vari­ous forms in a FPTP sys­tem only goes so far. For my own bene­fit I’ve writ­ten up the vot­ing sys­tems of 3 oth­er coun­tries in which I’ve lived. I don’t have a firm opin­ion on which one I prefer (yet).

Germany

At the Fed­er­al level in Ger­many, the vot­ing sys­tem is a ver­sion of a mixed-mem­ber pro­por­tion­al sys­tem: voters get two votes. One is for a dir­ect can­did­ate (approx­im­ately half the seats), and works by the plur­al­ity (FPTP) sys­tem. The oth­er is where the voter votes for a party. Each party has a list, and the appro­pri­ate num­ber from each party list is deemed elec­ted, depend­ing on the num­ber of votes the party got. There is a threshold for the list votes; parties have to get over 5% of the vote to get any seats via the second (list) vote, unless more than three dir­ect can­did­ates from that party are elected.

This sys­tem was set up to bal­ance many aims. Among them are the prin­ciple of equal votes (each vote must have equal weight), dis­cour­age small parties while allow­ing them, and encour­age bal­ance between vari­ous polit­ic­al views. It tends to lead to coali­tion gov­ern­ments, and is good for find­ing consensus.

Australia

Aus­tralia uses pref­er­en­tial, or ranked, vot­ing sys­tems. The voter ranks the can­did­ates in order of pref­er­ence. If one can­did­ate gets 50% + 1 (or more) first pref­er­ence votes, they are elec­ted. If not, the can­did­ate who received the few­est first pref­er­ence votes is elim­in­ated from the list, and their second pref­er­ences are dis­trib­uted. This pro­cess con­tin­ues until one can­did­ate does have 50% + 1 or more votes. There’s a vari­ation for the Sen­ate that I’m not going into.

Ranked vot­ing gives people a chance to vote for a can­did­ate they know won’t win, and give the second pref­er­ence to a main­stream can­did­ate, which makes it bet­ter than FPTP tac­tic­al vot­ing. One down­side is that you have to rank all can­did­ates in order, and it is quite pos­sible to miss a num­ber, or make some oth­er mis­take. There are some people who num­ber from 1 down the page, so the bal­lot has to be designed to take that ‘don­key vote’ into account.

New Zealand

New Zea­l­and uses a dif­fer­ent ver­sion of mixed-mem­ber pro­por­tion­al rep­res­ent­a­tion to Ger­many. (No, I’m not going into detail on the pre­cise dif­fer­ences.) Each voter has two votes: one for a dir­ect can­did­ate, and one for a party. The party vote determ­ines the over­all num­ber of seats each party is entitled to. There is a threshold, as for Ger­many, of 5% for the party vote, or one dir­ect can­did­ate elected.

There are also a cer­tain num­ber of seats reserved for the Māori elect­or­ate; those use the same vot­ing system.

Per­son­ally, I think any of these sys­tems would be bet­ter than the cur­rent FPTP sys­tem we have.

Oct 302014
 

I’ve been try­ing out Google App Engine, for which I signed up with the Google account where I just enabled 2FA. Of course, that means chan­ging the way I update the uploaded tri­al applic­a­tion; the stand­ard Google pass­word has to give way to either a spe­cif­ic applic­a­tion-based pass­word, or OAu­th 2. OAu­th 2 is obvi­ously (to me) the bet­ter way to go.

The doc­u­ment­a­tion is reas­on­ably straight-for­ward. It even works as doc­u­mented, assum­ing you’re signed in with the right Google account on your default browser. My work­flow is a little dif­fer­ent — my main browser (Fire­fox) is signed into my main Google account, and I sign into my oth­er Google account (which I’m using for this devel­op­ment pro­ject) on Chrome. Copy­ing the URL from Fire­fox to Chrome to allow the appcfg applic­a­tion access to that Google account worked; it’s refresh­ing to see. I get tired of web applic­a­tions that use some hid­den JavaS­cript magic and give you non­sensic­al res­ults if you copy a URL from one browser to another.

There’s some­thing appeal­ing about OAu­th 2, even if it appears a little too magic­al at times (a bit like git; when it works it’s magic­al, when it does­n’t, good luck!)

Sep 042014
 

August ended up busy, busier than I inten­ded. Bal­is­age was as usu­al full of inter­est­ing dis­cus­sions although some of the people I’d hoped to see wer­en’t able to make it this year. I took part in a pan­el on Math­ML, figured out (finally) there is an over­lap between the over­lap­ping markup dis­cus­sions and the DOM Level 2 Range spe­cific­a­tion, and gen­er­ally enjoyed myself.

Not long after that I left Design Sci­ence; I was dis­ap­poin­ted it did­n’t work out the way I’d hoped, but I did learn a lot about Math­ML and type­set­ting math­em­at­ics that I did­n’t know before.

I’ve spent the last couple of weeks talk­ing to people about dif­fer­ent pro­jects in health­care and pub­lish­ing, wheth­er it’s some­thing for me to work at or not. It’s good to be able to take time occa­sion­ally to see what’s out there, what people are work­ing on. I’ve also been get­ting ready for the XML Sum­mer School (there are still a couple of spots left in some of the courses if you’re inter­ested in attend­ing). And I’ve been work­ing on learn­ing plans for my chil­dren since their teach­ers are on strike. Khan Academy, Codec­ademy, and vari­ous work­books to refresh last year’s skills to start with. I hope the strike is resolved before I have to do too much more planning.

At least we man­aged to spend a few week­ends at the cab­in for relax­a­tion amongst all of that.

Jun 242014
 

I’ve been work­ing at Design Sci­ence for a couple of months now, as Seni­or Product Man­ager con­cen­trat­ing on the Math­Flow products. So I figured I should enable Math­ML sup­port on my blog. It’s not hard, but like everything in tech there are a few nig­gly details. Many of those issues are caused by Word­Press’s over-eager help­ful­ness, which has to be reined in on a reg­u­lar basis if you’re doing any­thing at all out of the ordin­ary. Like edit­ing your posts dir­ectly in HTML rather than using some pseudo-WYSI­WYG editor.

The­or­et­ic­ally, show­ing Math­ML in a browser is easy, at least for the sort of equa­tions that most people put in blog posts, even though not all browsers sup­port Math­ML dir­ectly. You just use the Math­Jax JavaS­cript lib­rary. On Word­Press there is even a plu­gin that adds the right script ele­ment, the Math­Jax-Latex plu­gin. You can make every page load Math­Jax, or use the [math­jax] short­code to tell it when to load.

The wrinkle comes with Word­Press’ tend­ency to “cor­rect” the markup. When you add the Math­ML, Word­Press sprinkles it with <br/> tags. Math­Jax chokes on those and shows noth­ing. Since the tags don’t show up in the edit­or view, you need some way of stop­ping Word­Press from adding them. The best way I’ve found is with the Raw HTML plugin.

But there’s a wrinkle with that too. For some reas­on if you use the short­code ver­sion of the begin and end mark­ers ([raw]) the edit­or decides that the XML char­ac­ters between those mark­ers has to be turned into the char­ac­ter entit­ies, so for example the < char­ac­ters are turned into &lt;. To stop that, you need to a) check all the check­boxes in the Raw HTML set­tings on the post, and b) use the com­ment ver­sion (<– raw –> and <– /raw –>) to mark the begin­ning and end of the sec­tion instead of the short­code version.

Once it’s done it’s easy to add equa­tions to your pages, so it’s worth the extra few minutes to set it all up.

A couple of examples taken from the Math­Jax samples page

Curl of a Vec­tor Field
×F=(FzyFyz)i+(FxzFzx)j+(FyxFxy)k
Stand­ard Deviation
σ=1Ni=1N(xiμ)2

and one from my thes­is from way back when

fλ=n!i<k(li-lk)l1!l2!lr!
Dec 112013
 

My Mum used to make ginger beer on the farm. We would seal it in the glass bottles with bottle caps that you tapped on with a ham­mer, try­ing hard not to break the glass. A bottle or two would occa­sion­ally explode dur­ing the fer­ment­a­tion pro­cess, which was excit­ing, and messy.

I’ve taken to mak­ing it. Home-made ginger beer is a refresh­ing, fizzy drink, much less sweet than com­mer­cial soft drinks, with a pleas­ing zing. There is a small amount of alco­hol in it due to the yeast-mak­ing-bubbles fer­ment­a­tion step, but it’s min­im­al. The pro­cess of mak­ing it is fun, teaches the kids some­thing about chem­istry, and is much less messy with the advent of PET bottles.

The pro­cess is reas­on­ably simple. You start with a ginger beer plant (actu­ally a fungus yeast and a bac­teri­um; more details here). You feed it ginger and sug­ar every day until it’s ready, then add the liquid to a mix­ture of water, sug­ar, and lem­on juice. Bottle, store for a few days, and enjoy!

There are a num­ber of places on the inter­net you can get a ginger beer plant. I made my own; as a con­sequence it may not be a ‘real’ ginger beer plant, but giv­en the ginger beer it pro­duces is good, I’m not bothered by that fact. There are lots of vari­ations; this is the recipe I follow.

To make the plant, put the fol­low­ing ingredi­ents in a jug or jar.

  • 8 organ­ic sul­tanas (golden rais­ins). You need organ­ic (or oth­er unpro­cessed, if you’re lucky enough to be able to get them) to get access to the nat­ur­al yeasts that live on the sul­tana skins. Mod­ern pro­cessed sul­tanas are too clean and don’t have those yeasts on them, so the ginger beer won’t fer­ment properly.
  • ¼ cup lem­on juice. Use real lem­ons to get the juice, not some­thing that comes in a bottle. Organ­ic is nice, but not necessary.
  • 1 tea­spoon grated lem­on zest. Make sure you wash the lem­on first to get rid of any coat­ing that might inter­fere with the yeast.
  • 1 table­spoon sug­ar. I use white sug­ar, but you can use any type.
  • 2 tea­spoons ground ginger. You can also grate fresh ginger if you like, but I find that’s too much work. 
  • 2 cups water. I usu­ally use ordin­ary water, since our tap water isn’t too heav­ily chlor­in­ated. If you would­n’t drink your tap water, use bottled or filtered (but not distilled).

Stir, and cov­er the jar loosely with a cloth. You want air to get in (for the nat­ur­al yeasts) but not bugs (in sum­mer this is a mag­net in my kit­chen for fruit flies). Keep at nor­mal room tem­per­at­ure. Feed every day with 2 tea­spoons ground ginger and 2 — 4 tea­spoons of sug­ar (I use 4, you may like it slightly sweeter or less sweet). After a couple of days, you should notice some bubbles in the mix, and even a slight smell of fer­ment­a­tion as the nat­ur­al yeasts go to work on the sug­ar and ginger. The plant will be more act­ive in sum­mer, when the kit­chen is warmer.

After a week or three (the peri­od depend­ing on how much time I have in any giv­en week), make the ginger beer. You will need around 12 one-litre PET bottles. If you don’t have those at home, a loc­al beer-brew­ing shop will be happy to sell some to you, com­plete with the caps. Wash in soapy water, and rinse to get the bubbles out. You don’t need to ster­il­ise the bottles, I find the usu­al deter­gents to be adequate.

In a large pot, boil 5 cups of water with 3 cups of sug­ar. Stir to make sure the sug­ar is all dis­solved, then take the pot off the heat. Add the juice of three fresh lem­ons (yes, the pro­hib­i­tion against bottled lem­on juice applies here too). If you have small lem­ons, make that the juice of four lem­ons. Place a clean cloth (an old lin­en tea tow­el, for example) over a sieve or colan­der and pour the ginger beer plant through the cloth into the pot. Squeeze the cloth to get as much liquid out of the plant and into the pot as pos­sible. Add 7 litres of water to the pot (same com­ments on the water as above; I use tap water). Bottle the ginger beer, leav­ing some space at the top of the bottle for expansion.

The con­tents of the cloth are the ginger beer plant itself. Take approx­im­ately half of it, put in a clean jar with two cups of water, and feed. I also put anoth­er couple of sul­tanas in at this stage. This is the basis for the next batch of ginger beer, so feed every day as before. Give the oth­er half of the plant to someone, or add to your com­post bin. The plant gets bet­ter as it ages, so it’s worth­while keep­ing it going rather than start­ing new each time.

After a couple of days, you should see some small bubbles in the bottles, and the bottles should be firmer. This stage may take a couple of days longer in winter than sum­mer. You can drink the ginger beer at this stage, but it tastes bet­ter if you can leave it at least a week.

/* ]]> */