The Fugue

Counterpoint by Hans Fugal

Cost of Bread

Posted by Hans Fugal Mon, 08 Oct 2007 04:06:00 GMT

How much does it cost to bake a loaf of bread? Or put another way, how much money might you save baking your own bread (which will taste better anyway)? These figures will give you a ballpark idea. As always, I'm following my recipe.

  • 425 grams of King Arthur Unbleached All-Purpose Flour: about 60 cents
  • 8 grams of kosher salt: about 1.5 cents
  • Sourdough culture and water (practically free)
  • Preheat (my) oven with baking stone and dutch oven to 450°: 20 minutes at 2585 watts at 11.482 cents/kWh = 10 cents (I leave the baking stone in because I'm too lazy to take it out. Actually, it's 6 unglazed clay tiles, but that's another story)
  • Heating element on during bake, including restoring heat lost when oven door open (yes, I watched the little light with a stopwatch): 10 minutes = 5 cents

Total cost: about 75 cents for a 1½ lb loaf of absolutely terrific artisan sourdough bread. You'll pay 4–5 times that for bread that's not nearly as good (nor as good for you) at the grocery store. So if you save say $2 per loaf you might be able to buy yourself a used iPod after a year. Then again, you might eat 4 times as much bread…

The take-home lesson here is never let anyone give you a guilt trip for baking bread. It costs under 25¢ in electricity, and even if you place a high price tag on pollution it is dwarfed by your air conditioner, refrigerator, etc. One very real issue is baking in the middle of the day in the summer, either making the A/C work that much harder or making you that much hotter. This is mostly a concern in places like Las Cruces where lunatics like myself live. Most of you will have air conditioners that can handle it just fine, though it would be interesting to figure what that cost would be (if you do so, let me know).

Posted in , | 3 comments |

Total Heart Rate Training

Posted by Hans Fugal Sat, 29 Sep 2007 15:02:00 GMT

I’m still swimming. This may be the longest I’ve stuck with any exercise program (excluding things thrust upon me like basketball practice or getting out of bed). Naturally, being the technical sort that I am, I want to make sure I’m using this exercise time efficiently, so I picked up Total Heart Rate Training by Joe Friel at the bookstore (and put it down before I left—reading it over several visits while my son played with the Thomas trains). This is an informative book with lots of information, but it’s not for the weak of heart—literally or figuratively. The book is written by and for obsessive-compulsive athletes (the most common variety is known as triathlete). You have to be absolutely bonkers to follow this book religiously. But it can be useful to the thinking fitness swimmer, with a grain of salt.

The first problem with this book is precision. Not a lack thereof but an overabundance and misunderstanding of it. In physics, or any practical math, you can get in trouble by giving more significant digits than your measurements warrant. You can fool yourself and others into thinking you have more precision than you do, which leads people to jump to incorrect conclusions and make silly and/or dangerous decisions. Heart rate monitors will give you absurdly accurate heart rate measurements. But I posit that you can’t measure how that maps to your body’s metabolism (the zones) with anywhere near that accuracy, at least not while exercising. What’s more, as a swimmer anyway, you can only check the monitor during rests at the end of the pool, where it’s just as convenient to take your pulse with the pace clock (it takes 6 seconds to get ±5 bpm). The heart rate charts in the appencides are what really give it away, though. Running, Biking, Swimming, etc. each have their own 2-page chart with some 60-odd entries on where the zones begin and end, to the nearest bpm. If that doesn’t sound absurd by itself, take a look at this graph I made from the swimming chart:

Swimming Heart Rate Zones

They say a picture is worth a thousand words. Notice how the relationship is almost completely linear. I’m no exercise scientist, but how much do you want to bet the body is not so perfectly conformant? I bet it varies depending on the day, conditions, what you ate, etc. There might even be some nonlinearities. So we have a chart with a bunch of numbers and no graph, that is overly precise.

That wouldn’t be so bad on its own, but the author actively disparages traditional measures and formulas for being too inaccurate, when of course the reason they are too inaccurate is that they are too precise. The most obvious example is that your maximum heart rate is 220 minus your age. This gives you a bpm, but really it’s only good to within 10 or 20 bpm. He rightly says that this is not accurate. But he says it’s as likely to be way wrong as not, because it’s a statistical measurement. i.e. it’s a bell curve. Hello, 95% confidence of being within 2 standard deviations hardly qualifies as “as likely as not” to be outside. If he really wanted to convince me he would have stated the confidence intervals and said just how far off from that number you are likely to be. Then he would have compared that error with the error in pinpointing the zones in exercise. I think we’d find that maximum heart rate, while not perfect, isn’t as bad as all that.

While being absurdly precise and complicated (to the delight of obsessive compulsive triathletes everywhere), this book is also somewhat lacking in rigor and logic. Besides the examples above, there’s an issue I blogged about previously: the so-called fat-burning zone. As you may recall, the fact is that your body burns more fat per calorie when in an aerobic metabolism. This leads people to call the aerobic zone the fat-burning zone. People get lazy and forget to put in the disclaimer that you have to work longer to burn as many calories, which leads to confusion. Trainers and self-righteous OC athletes retaliate by pointing out that you burn more calories per time unit by working out harder—up into anaerobic, and so “the fat-burning zone is a myth”. Well it’s not a myth, it’s perfectly valid if you’re willing to work out longer. Instead of elucidating the topic with clarity and stating both sides of the issue without bias, the author falls squarely, if not extremely, on the myth side.

Still, there is a lot of good information in here on how the body works, what’s going on in the various zones, in which zones you can best spend your exercise time in order to achieve your goals (the information for a fitness swimmer is in there, if a bit hidden behind the triathlete-like goals). Numbers that are useful if you take into account that they are too precise, etc.

I’ll give you an oversimplified summary of what I learned in the book. Referring to that graph above (by the way, I had no control on which colors were used—they’re just GNUPlot’s default colors), notice that the x axis is the lactate threshold. He claims that LT is a better base point than maximum heart rate, because you can directly observe it without killing yourself. Sounds good to me.

At the border of zones 1 and 2, aerobic respiration accounts for almost all of the energy produced. Aerobic respiration primarily uses fat and is much more efficient, but less powerful, than anaerobic respiration. If you’re fit you can stay in zone 2 all day long.

At the border of zones 4 and 5, enough anaerobic respiration is happening that various easily-observable changes occur, and the exercise benefits change too (especially those related to heart). Oversimply put, training above LT will train for speed in shorter (non-endurance) races, and also do various good things for your heart.

At the border of zones 5b and 5c, almost no aerobic respiration is occuring—it’s all anaerobic. This is because you’re demanding more power than aerobic respiration can keep up with. Anaerobic respiration is done not from fat stores but from stuff stored in the muscles themselves (for immediate access and powerful energy). There’s only so much of this fuel, so you run out of steam quickly above LT, but especially up here. This is sprinting stuff, and you can rarely keep it up long enough to even measure heart rates much into zone 5c.

For me, I am going to aim at increasing my LT and staying mostly in zones 2 and 4, (apparently zone 3 is a waste—little more benefit than zone 2 but requiring a lot more recovery) but doing interval training shooting up into the above-LT zones, mostly for the heart benefits. I figure that will meet my goals best, i.e. I will enjoy the exercise more and not leave the pool exhausted, I will burn more fat per calorie, and the interval training will give me enough edge to keep things interesting and improve my cardiovascular health (not to mention increase LT—doing intervals with sufficient rest to “cycle” the heart rate from low to high and back to low is one good way to do that). And I’m going to do it by taking my pulse with the pace clock periodically, and paying attention to how my body feels and how hard I’m breathing.

Of course, the most important thing is to keep on just doing it, and that’s going well because I’m enjoying learning the Total Immersion swimming method, and I’m finaly getting into the more interesting drills. It won’t be too long until I graduate to swimming again, at which point I’ll review that book. I’m looking forward to seeing if I can swim a 500m in under 10 minutes with ease. That’s something I had to do regularly as a lifeguard and even though I was more fit then (or at least less fat) I always struggled with swimming 500m non-stop, and my times were usually 10-12 minutes. If I can swim a 500m with ease in under 10 minutes in my current shape, it will be a testament to the TI method. Stay tuned!

Posted in | 2 comments |

The Heart Rate Chasm

Posted by Hans Fugal Fri, 31 Aug 2007 15:41:00 GMT

My Swimming Book makes the following claim: if you work out at lower (but still aerobic) intensity you burn more fat per calorie than if you work out at higher intensities. Note that it says per calorie, which means you have to work out longer. A rough guideline is to go the same distance as you would at the higher intensity.

Unfortunately he doesn't give any references and no numbers or graphs. One is left wanting more information. But if you try to google that topic you will find two camps yelling at each other from across a great chasm.

Group 1 says keep your heart rate down in the fat-burning zone. Group 2 says group 1 is a bunch of fools and that although the ratio may be higher you burn more fat by working at a higher intensity because you burn more calories. The amusing thing is that neither side ever cites any references whatsoever, nor gives any concrete numbers. Neither side gives due diligence to pointing out that you can burn the same amount of fat either by working easy-but-long or hard-but-fast. Calorie burn rate (time) and intensity are a tradeoff, but to the two groups there is no compromise.

Finally I found a white paper with solid logic and numbers and graphs. (Still not enough references, but at least there are some.) Check out the graph on page 8 which confirms what I suspected: there is a point of diminishing returns. Choosing Zone 2 over Zone 1 is a no brainer. Choosing Zone 3 over Zone 2 looks marginally smart. Choosing Zone 4 over Zone 3 (when fat loss is the only consideration) is silly—you use more calories to burn the same amount of fat. Of course there are lots of reasons to go into Zones 3 and 4, like training for races, cardiovascular health, building more muscle, and burning off the extra helping you had at breakfast. But if you're looking to burn fat efficiently, It looks like roughly 70% of maximum heart rate (220 minus your age, as an estimate) is the point of diminishing returns, and a good aim.

Now, that said, there is a lot of variance in the fat burning range. In fact, the whole point of that white paper is to teach you how to increase that anaerobic threshhold so that you can burn a higher fat percentage at higher intensities, effectively raising that point of diminishing returns and allowing you to burn more fat per minute. This is another thing the TI book said you could do but didn't give enough details for my taste.

Of course, let it not be forgotten that the thing that makes the most difference is actually getting up off your duff and into the pool.

Posted in | 3 comments |

Body Density Measurement Uncertainty

Posted by Hans Fugal Thu, 23 Aug 2007 02:06:00 GMT

A couple days back I posted my idea for measuring body density and estimating body fat. Dad, who has a set of skinfold calipers gave it a try and gave me comparative results, and asked the question on everbody's mind: just how accurate is it, especially with that pretty blatant guess at residual lung volume?

So I took some time to learn how to account for uncertainty and take a stab at pinning a confidence interval on the technique. First of all, I didn't realize how complicated uncertainty propogation is. Partial derivatives, squares and square roots, etc. Luckily, I came across some lecture or presentation notes detailing a sequential perturbation method (instead of an analytical method). I could have talked Jacob into walking me through the partial derivatives, but this method is easy to code and a find in and of itself. Read about it in this PDF.

I coded up the formula and ran some test data through it. Here's the equation again for review: ρ = m / ((m + mc)/ρw - (va + vc + vr)) Here's the values and uncertainty I attribute to each variable:

  • m = 121.29 ±0.02 kg
  • ρw = 0.997 ±0.001 kg/l
  • va = 1.13 ±ٍ0.01 l
  • vr = 1.87 ±0.5 l
  • mc = 0 ±0.02 kg
  • vc = 0 ±0.01 l

I didn't actually use a counterbalance, but I included the uncertainty in measuring its mass and volume as if I had, just for completeness. As suspected, vr has the largest uncertainty. I calculated the uncertainty if vr were magically accurate, and found that the uncertainty was 0.0014 kg/l. This translates to about 0.65% body fat with Siri's equation (ignoring the uncertainty inherent in that equation, which is a constant bias accross measurements for one person on any given day).

Note that I give ρw this time, instead of whisking it away with a magical 1 kg/l. I picked an average value between 72°F and 84°F (most pools are in this range), with an uncertainty (due to water temperature) of about 0.001 kg/l. If you use 1 kg/l instead you are introducing a bias of about 0.9% body fat. So I was wrong about that being insignificant.

Now, I found a better estimate (why better? because it seems to come from a more reputable source than Wikipedia) for residual lung volume: vr = RV = 0.24 VC. So I may have overestimated my RV last time by ½ liter. (Update: I think that must be a typo on that page, they probably mean 24% or 28% of total capacity instead. This fits in much better with the rest of the literature that I have found, e.g. Quanjer and Paoletti.) That seems like a generous uncertainty measure for RV, too. With that uncertainty factored in, we get an uncertainty of about 2.1% body fat, or about 5% is you are on the slight side of average (the less you weigh, the more difference that 1/2 liter makes).

So, Dad, let's bump your score up by about 1% for the density of water and then tack an uncertainty of 2% onto it, you have a body fat of 26.3% ±2%. I'm no expert on using calipers, but one paper's abstract indicates that the skinfold method uncertainty is about 3%. I've seen 10% tossed around casually too, but have no reliable source to back that up. That puts the two methods within the appropriate reach of eachother, which is heartening. It's interesting to note that BMI is overestimating Dad's fat, because he's more lean than the average couch potato. Imagine the difference if the subject were someone completely nuts, like a young triathlete, who has body fat of about 15%. Even better, if you are such a nut you could do the experiment and post your results (and BMI) here as a comment for us to see.

Posted in | 1 comment |

Measure Your Body Density

Posted by Hans Fugal Mon, 20 Aug 2007 16:30:00 GMT

When you try to lose weight, what you are really trying to do is lose fat. Weighing yourself is a first approximation of your progress, but a better indicator is your body fat percentage (%BF). Unfortunately, measuring %BF can be expensive and/or difficult. It doesn't need to be so. All you need is a body of water (e.g. a swimming pool), a gallon jug, and your bathroom scale.

One of the most accurate ways to measure body fat is hydrostatic weighing. You are weighed underwater and on land, and your body's density is determined. Then body fat is estimated from the measured density. This is the same basic technique that we will use, but we don't require an underwater scale or special tank.

First the how, then I'll give you the physics. Get in the pool and exhale all the air you can, and allow yourself to sink. You will sink unless you're particularly obese. Take note of the sensation of sinking. Then do the same thing but with your lungs full. Take note of the sensation of floating. Now, we want to reach the point of neutral buoyancy when your lungs are empty, where you are neither sinking nor floating. You will be weightless under the water. Take the gallon jug and hold it under the water, then exhale completely. If the jug is full of air, you will probably float (unless you are quite lean, in which case you'll need two jugs). Keep adding water and repeating until you reach neutral buoyancy. If you sink, add air (pour out some water). If you float, add water. Once you've found the magic amount of water, use this equation to calculate your body density (ρ):

rho=m/(m liters/kg - v_\text{air}))

where m is your mass (what the scale tells you), v is the volume of you and your buoy combined, and vair is the volume of air in your buoy. If you have ¾ gallon of water in your gallon jug, then vair is ¼ gallon. ρw=1 kg/liter for all the precision we need.

Once you have density, you may like to estimate your body fat. The equation for that is Siri's equation, which says

This equation assumes your lungs are completely empty, which they can't be, so we need to introduce a term for the residual volume of your lungs. This is about ¼ of your total lung capacity, or ⅓ of your vital lung capacity. You can measure your vital lung capacity with a balloon or a by blowing air through a straw into an inverted container filled with water. The average residual lung capacity for an american male is 1.2 liters; mine is about 1.9 liters. So we can adjust the formula for density as follows:

rho=m/(m/rho<em>w - v</em>a - v_r)

If you do this experiment you will probably find that your estimated %BF is not too far from your BMI, which is a statistical tool for estimating %BF. It can be wildly inaccurate for statistical outliers (e.g. people who are actually in shape), but it's easy to calculate and a decent sanity check in this case.

Here's what's going on. We're using Archimedes' principle: the buoyant force on a submerged object is equal to the weight of the fluid displaced. When the buoyant force balances the force of gravity, we have neutral buoyancy. The buoyant force is expressed as F_b = -rho_w v g. Substitute weight for the buoyant force and solve for the volume of the body (v = vbody + vair), then substitute that into the definition of density (m/v), and you get the formula I gave you above (if you consider the mass of air and the gallon jug as negligible). I glossed over that—if you'd like me to go into more detail say so in the comments.

If you're particularly obese and don't sink when you exhale completely, then all is not lost. You just need some counterbalance. The modified equation is:

rho = m<em>b / ((m</em>b + m<em>c)/rho</em>w - v<em>a - v</em>c).

You can find the volume of your counterbalance by taking a cue from Archimedes and measuring displacement.

About accuracy: the biggest variable in this process is how much air is left in your lungs. You will find with practice that you are able to exhale more air, which will lower your %BF estimation, as if by magic. However it always overestimates and once you figure out how to completely exhale will be very consistent. Siri's equation is the next place to look—it basically takes the density of fat and the density of muscle and ignores bone mass and density, what you ate for lunch, etc. It will also almost certainly overestimate %BF. The astute reader will wonder about air compression in the milk jug. I measured this and found that when the jug is held within a foot or so from the surface, it does compress. However, the amount it compresses conveniently offsets the extra capacity of the jug (they don't pack milk spilling over the brim of the jug, after all). All in all I think it's accurate within a few percentage points for %BF, gives you an upper bound (i.e. you are free to brag about the number you get, even if it may be slightly high), and is more accurate than BMI.

Posted in | 1 comment |

Quick Centigrade Estimation

Posted by Hans Fugal Thu, 01 Mar 2007 16:56:00 GMT

If you're reading this blog, chances are you know (at least intellectually) that the metric system is superior to the mess of a measurement system that we use here in the US. One of the more difficult switches to make is from temperature Fahrenheit to temperature Celsius. What do you say when people defiantly challenge you, "ok then smartypants, how do I know what the equivalent temperature is in Celsius?" If your experience was anything like mine, the answer goes something like this: "Uhhhh, you subtract 32 and multiply by nine fifths... or was that add 32, or was it five ninths... Well, you just have to get used to it." Or this: "It's so superior to fahrenheit that it's a joke to even discuss conversions. Just remember zero is freezing, ten is cool, twenty is nice, thirty is hot."

Well now I have a better answer. Everyone knows that water freezes at 32°F. Everyone knows how to divide in half and do simple subtraction in her head. So this is how you convert from Fahrenheit to Celsius: subtract 30 and divide by half. Let's practice. 72°F is one of my favorite temperatures. (72-30)/2 = 21°C. The real answer is 22.22°C, but you can see we're not far off.

The reverse is likewise simple. To go from Celsius to Fahrenheit, multiply by 2 and add 30. So 15°C becomes 15*2+30=60°F. The real answer is 59°F, again good enough for government work.

Just how much is the error? About 5°C max for any temperature you're likely to care about. I'll show you:

Posted in | 1 comment |

How Many of Me

Posted by Hans Fugal Wed, 14 Feb 2007 05:04:33 GMT

HowManyOfMe.com
LogoThere are:
0
people with my name
in the U.S.A.

How many have your name?

I love being invisible.

Posted in | 7 comments |

Be Adequate

Posted by Hans Fugal Wed, 13 Dec 2006 14:54:00 GMT

"That was adequate" is the catchphrase you'd have heard Monday on the set of "Prairie Home," shooting this month at the Fitzgerald Theater. It's a favorite way for director Robert Altman to indicate he's shot enough takes of a scene. When an actor gets a "more than adequate," says Virginia Madsen, who plays an angel, "that means it's good." (Hewitt)

That's someone else's words that catch the gist of GK's introduction to "Make it Adequate". It was pretty enjoyable, but more than that, it made me think. And then I thought some more. And now I will share my thoughts about being adequate.

A large part of success, the largest part I wager, is just showing up and doing "it". Want to succeed in school? Read the book before class, show up to class, and do the homework. Want to be a skilled musician (erm, I mean skilled performer)? Practice every day for an hour for a couple of years. Want to be a l337 programmer? Write lots of programs.

Altman, GK, et al aren't the first ones to come up with or inspire this idea. President Kimball said "Do It". Nike said "Just Do It" (but I think they were just trying to sell shoes). 37 Signals has a whole book on the concept applied to web programming, called Getting Real. You've heard the phrases "just dive in", "show up", and "release early, release often" and others like them.

The place I've seen the tendency to not just do it in my life, is in software. I have a tendency to overdesign things. I like designing and dreaming more than sitting down and implementing. It's good to have a good design. It's better to have software running. I try to let my feet hit the pavement after the basic design phase (if I decide to do the project at all - another importan mantra is "don't bite off more than you can chew"), and when I do I feel more successful and have more to show for my work.

Don't get caught up in overanalysis or overperfection. Just go do it and be adequate in many things. You'll like the result better than being perfect in a couple of things.

Listen to the November 25, 2006 A Prairie Home Companion online, at least to the first few minutes of Segment 2.

Oh, and by the way, I thought that the movie was adequate. It was interesting to see how the show works on stage and to see GK instead of just hear him.

Posted in |

Unrefined "news site"

Posted by Hans Fugal Wed, 13 Dec 2006 14:31:33 GMT

For some time now Slashdot has ben getting more and more immature. Or I've been getting less tolerant of immaturity. I'm not sure which.

A story run yesterday was the last straw. It's time to move on. I'm removing Slashdot from my RSS feed.

The story was entitled Unrefined "Musician" Gains a Global Audience. Here is the blurb:

"An unskilled musician performed a catchy pop instrumental for more than one million YouTube users even though he can't play a lick of drums or piano. The 22-year-old Norwegian's tool was stop-motion video,

Hey Slashdot, guess what? If you compose music that people enjoy (i.e. catchy), you don't qualify as unskilled musician. This guy is obviously skilled at many things. He can obviously compose a catchy tune, knows a lot more about drums than I do, is very skilled with a video editing program, has a good comedic sense, and is good with a tracker. I know a number of composition majors at BYU who can play about as much piano, drums, or anything else as this guy. He and they compose music nonetheless and they are skilled musicians.

Skilled performer? No, at least not with those two instruments. But a skilled musician and video creator. Go watch Lesse Gjertsen's Amateur and Hyperactive. They're enjoyable.

Goodbye Slashdot, this reader has decided to leave your unrefined "news site" for the script kiddies.

Posted in | 2 comments |

Zoning

Posted by Hans Fugal Fri, 08 Dec 2006 14:29:49 GMT

Some things decided to line up this week, and Kathy Sierra's post on The Asymptotic Twitter Curve was the thought catalyst.

This is the last week before finals, which means lots of catching up and studying. I had 4 homeworks/projects to do this week, which in grad school means nothing shy of 30 hours, plus grading homeworks and going to class and studying for finals. In other words, it's a busy week. Whenever I get this busy, it casts into stark contrast how utterly inefficient I am most of the time. More than anything else, this "in-the-loop" she talks about addiction is the reason why. It's not that I didn't know that already, I figured that out a long time ago. I've even learned a few techniques for getting myself out of the loop temporarily so I can get into the zone. Things like close the laptop, or actually leave the laptop in the office and go to the library or for a walk if I just need thinking time. I read RSS feeds and blogs at the same time every day and don't leave the reader open. If I'm working on the computer, I love OS X's hide feature. It's not winking at me from the status bar, it's as if the program isn't even open. I don't have a big problem with IM because unless someone's talking to me (and I'm not that popular) it's as if it doesn't exist. I do find myself checking IRC when I'm not in the zone, but if I can get past the IRC hump I know I'm on the right track. In fact, you could say I keep IRC around as a canary. When the canary croaks, I know I might be being productive.

I've been using Thunderbird for awhile, for various pragmatic reasons. This is becoming a problem for two reasons. First, I miss the opportunity to train my bayesian filter when it makes mistakes, and it's letting more spam through. Second, Thunderbird tells me when I have new mail which is a zone breaker, and it's usually spam. I was bashing Thunderbird for different but well-deserved reasons the other day, and it gave me a guilt trip that I left mutt in the first place.

Another thing that happened is MacIrssi consistently crashed on joining #opengl, for no good reason. Also, my final graphics program is a bit of a memory hogg and MacIrssi was taking more than its fair share.

So the crux is I'm going to migrate away from Thunderbird and MacIrssi back to Mutt and Irssi in a screen session. Then I can detach from that screen, and the zone breakers are out of sight and out of mind. I'm going to spend more time at the library away from the computer.

Why am I telling you this? I could have just posted a link and said "go read this, it's a good post". The primary reason is that Irssi in a screen session has no way of telling me that you PM'd me until I open it up. (MacIrssi used growl) So if you need my attention (and we all do need eachother's attention sometimes), use Jabber. Jabber is like instant email, in that it stores your message and forwards it when I get online. I won't miss it even if the computer is on and I'm just AFK. If you just want to tell me about your cute puppy's new hairdo, stick to IRC or email. If you need help or want to tell me about that awesome loaf of bread you made, Jabber. So now that you know, I won't have to worry about missing anything by stashing IRC away in a screen session.

Posted in | no comments |

Older posts: 1 2 3