jc blog - tales of a modern-day nomadic hunter-gatherer

Follow jcomeau_ictx on Twitter This is the weblog of Intrepid Wanderer. You never know what you might find here; graphic descriptions of bodily functions, computer programming secrets, proselytizing for the antichrist, miscellaneous ranting and kvetching, valuable information on living off the land... if you don't share my rather weird interests you may want to try slashdot instead.

You can consider my Del.icio.us links an extension to my blog, as are my LifeTango goals and my other to-do items. My to-buy list is also public, but only for sharing any useful ideas that might be there; I'm not requesting charity, neither do I offer it.

You can find me easily in google searches, as jcomeau, jcomeau_ictx, or jcomeauictx. There are lots of other jcomeaus, but AFAIK I'm the only jcomeau_ictx out there so far.

If you want to comment on anything you see here, try the new Facebook comments, reachable by clicking the "[comment]" link at the end of each post. If for some reason that isn't working, go ahead and email me, jc.unternet.net. You know what to do with the first dot. Make the 'subject' line something reasonably intelligent-looking or it goes plunk! into the spambasket unread.

This RSS feed may or may not work. Haven't fiddled with it in forever. RSS Feed


Verified my mining software works. Got both machines cranking away on the real bitcoin blockchain now. [comment]


Up to 68 confirmations on my previously mined block, and 20 on one mined today while I was at a potluck lunch party with the paddlers. It seems that they come quicker during the day, and/or that the more you get the faster they come.

Remember, these are both on testnet3. I'm not rich yet! As soon as these mature, though, I'm switching everything over to the real blockchain. [comment]


My script mined two more testnet3 blocks while I was at a party this afternoon. One got orphaned and the other is getting about two confirmations an hour, which means the coins probably won't appear in my wallet for another 3 days or so. Once they do show up I'll call the script workable and start running it against the real blockchain. [comment]



generated 50.496
ERROR: BitcoinMiner : generated block is stale

The above means I got a usable "hash" for a bitcoin block on testnet3, but it took me too long. Damn. [comment]


My mining script got a viable hash for a testnet block, but bitcoind rejected it for reasons unknown. Added some more debugging messages to rpcmining.cpp to see if I can track down the problem. Now perhaps several days more before it comes up with another good hash. [comment]


Got a WRT54GS for $2 at Sacks, then found some very ripe avocados and oranges in cull boxes out back of Petaluma Market and snagged a few. Still might be some left if you're in range of downtown. [comment]


Did my 3-mile hill jog today with only a little whining from my left knee, no complaints from my right. On the mend. [comment]


Bit-by-bit eliminating the bugs in my random-number Bitcoin mining script. Hoping this works. Got to do something to pull myself out of debt again.

Northern Tool & Equipment sent me a refund of the $40 I spent on that crappy headlamp that broke on the 2nd day of the Kinetic Grand Championship. Good on them. [comment]


Finding that random numbers work well at finding a viable hash in any given Bitcoin block; for example, in 4 runs my script found the best hash for the genesis block 3 times, and the other hash ending in 32 bits of 0 once. And all of those were using fewer tries than the brute-force method. Now if I can just get the bugs out of my script I might start making some money. However, it does run significantly slower than the brute-force script at about 530KHash per second per thread compared to 850KHash. [comment]


Not long after starting my jog this morning, I was feeling some knee pain, but I persisted and it went away. Only tried 1.5-milers lately though.

I surprised a doe and her fawn on Pearce street, and they jogged down the road ahead of me a bit before heading off into another neighbor's yard in search of nice green veggies.

I'm noticing that the last vestiges of my cold have disappeared over the last few days. Back to my long-term phlegm problems which only running seems to help alleviate. [comment]


CentOS is such a fucking fascist system! Fucking royal pain in the ass trying to install anything but the official RPMs. [comment]


Scratch that last comment. No advantage using _rotr over the C construct mentioned; it's measurably slower. Although I tested the former as a #define and the latter as a function, so that could very well have something to do with it. So many ways to do things! And most of them bad! [comment]


Finally, after many failed attempts, I came up with the (currently) correct way of coding "rotate right" in gcc inline (gas) assembly language for i386:

static inline unsigned int ror(unsigned int n, const int count) {
 asm volatile(
  "rorl %1, %0;"
  : "=r" (n)
  : "nI" (count), "0" (n)
 return n;

And of course, as with most of my A/L "optimizations", the output runs slower than if I'd just stuck to C. The compiler knows to convert n >> count | n << (32 - count) into rorl %cl, %eax. However, the intrinsic _rotr(n, count) does give a slight performance advantage. [comment]


Sophistry and head-in-the-sand denial is always a great response to anyone questioning your helpless-victim zones. Maybe since a "no gun" policy somehow still lets crazed killers on campus, how about a negative-gun policy? Every student and staff member must bring negative 1 guns to school each day. Then if someone sneaks a gun onto campus, it will fall into the negative-gun force field and disappear. Am I brilliant or what?! [comment]


While waiting for the pre-arranged time to meet my client, I had a bowl of lentil soup at Palmyra for $3.80 including tax. A young lady walked by in a blue-and-white outfit including short shorts, leggings, and a samurai-style long sword on her back. I predict someday a rapist's last words will be "but she was asking for it...".

After the job, I went and found noisebridge, pushed the middle buzzer, waited for a voice asking what I wanted, but just got buzzed in instead. Walked to the 3rd floor, looked around at the oscilloscopes, dozens of old computers, a collection of old 8-bit microprocessors and microcontrollers, and an assortment of hackers, mostly younger than me, sitting at desks, on couches, and at a big table mostly engrossed in their electronics. Said hello to a few but nobody seemed interested in conversing, so I moseyed on out after a while.

On my way back to Divisadero, there was a black guy riding a shopping cart down one of those steep San Francisco hills, just dragging a foot behind as a mostly-ineffectual brake. I saw him roll through one intersection unscathed, and wasn't curious enough to go back down the hill to see how he fared at the bottom.

When I approached the Presidio, I found Diane Feinstein's mansion at Lyon and Vallejo, stood for a moment in front of the big iron-gated door, raised both fists and shouted FREEEEEDOOOMMM! Cathartic, but probably useless, as nobody seemed to be home.

Got to the Golden Gate bridge stop just about sunset, and caught the 101 Express about 8:50. [comment]


Sign on a robot at noisebridge:"Warning: Not Three Laws Compliant". [comment]


Guns are dangerous. So is freedom. People who are in morbid fear of danger often want neither, and therefore want to deprive the rest of us of the benefits of both. We cannot allow them to do that; what we can do is to educate them in the benefits and the safe use of both guns and freedom, and hope they will join us or at least stop opposing us. [comment]


None of my previous scripts actually succeeded at killing the bitcoind process. So I came up with this Upstart script and it has worked well for the past 12 hours at least:

[jcomeau@paulvps ~]$ cat /etc/init/bitcoind.conf 
# run bitcoind as user, respawning on failure
# it has a memory leak so I expect it to get killed off occasionally
start on stopped RUNLEVEL=[2345]
stop on runlevel [!2345]
exec timeout -s KILL 5h timeout 4h su - jcomeau -c bin/bitcoind

It seems to still require the KILL signal, which kicks in after 5 hours. I don't understand why TERM doesn't do it. [comment]


Jogged downtown in my socks today, as close to barefoot as is practical on city streets. No knee pain but a little discomfort in my left ankle. Hot day in Petaluma. [comment]


That last script modification didn't work; the default TERM signal of kill has apparently no effect on the bitcoin daemon. Changed it to this:

while true; do
 if [ "$(pidof bitcoind)" ]; then
  sleep 60  # check again after a minute
  ~/bin/bitcoind &
  sleep 60  # check again after a minute
 if [ $i -gt $((60*12)) ]; then  # restart after 12 hours
  flag=INT  # like control-C, since TERM doesn't seem to accomplish anything
  if [ $k -gt 10 ]; then flag=KILL; fi
  kill -s $flag $(pidof bitcoind)


Amazing how little food I've been consuming lately. Yesterday, while walking over 18 miles, I still only had a piece of day-old bread for breakfast, another piece of bread around 8:40PM, and a small bowl of spaghetti when I got home. Carbs and butter, and I went to bed feeling full. Today I had more of the same, but healthier bread (sunflower-seed bread from Bovine Bakery, $3.50 for a day-old loaf) and more spaghetti. Also, I cooked up one of my packages of grass-fed beef liver and ate two small pieces. If I cooked my own bread I'd be living well for under $10 a week. [comment]


As of last night, I'm finally over my cold. The cough will probably remain for a while, but the general malaise is gone. The knees are still not fully functional. [comment]


A mnemonic that is helping me remember the 4 main points of gun safety: down, left, right, ahead. Picture yourself standing, a pistol on the table in front of you, and a target on the wall straight ahead. Look down, you'll see your hands, and in particular, your trigger finger, which of course you want "off" the trigger until you're ready to shoot. Left is the chamber, which is "always loaded". Right is the muzzle, which you never want to point at anything you don't want to destroy. Up ahead is the target, which you want to be sure of, and everything behind it up to the maximum range of your weapon. [comment]


Checked my two bitcoin miners and found them both swapping heavily. Rewrote my monitor script thusly:

while true; do
 if [ "$(pidof bitcoind)" ]; then
  sleep 60  # check again after a minute
  ~/bin/bitcoind &
  sleep 60  # check again after a minute
 if [ $i -gt $((60*12)) ]; then
  killall bitcoind  # restart after 12 hours

Hopefully that will take care of the problem. My hashmeter doubled after the restart, and though it's still taking up about 2GB of virtual RAM on a 512MB system, I've still got about 120MB "cached" and a negligible amount in swap. [comment]


Walked to Mill Valley from downtown San Francisco to save a few dollars bus fare. It was a bit adventurous; when I followed a new (to me) path from Crissy Beach, I got to a dead-end under the bridge, and rather than go back the way I came, I climbed up the rocks to a fascinating little area totally closed off to the public; had to climb a fence to get up to the bridge, right where a bunch of Asian tourists were taking pictures. They appeared a little disturbed to see a guy climbing over, where there were signs prohibiting access from their side (there were none showing from my side, at any point along which I had passed).

Then when I got to the bridge I saw pedestrians were prohibited from 9PM to 5AM. Another travesty; if motorists are allowed, pedestrians should be also. What the hell? There should always be an option for those who choose not to participate in the "money" system. We need a decent pedestrian coalition in the bay area. Maybe I'll start one.

As I was walking up Lombard, too, I came to a place where the sidewalk dead-ended, right about at the Palace of Fine Arts. Turns out if you enter the grounds of said palace, and walk past the entrance, you come out on Marina, which is just what I wanted. Of course there were no signs; if you blocked off a road with no indication where to detour, you'd have motorists up in arms. Nobody gives a goddamn about pedestrians.

There's a cherry tree partway down the hill on English Street with ripening fruits, and the birds are munching away. Got to remember to pick up some of the seeds and plant them down in the La Cresta ravine.

Anyway, got home about 2330 tired and hungry, cooked some spaghetti and had some red wine. Think I might have some more before bed. [comment]


Some time this afternoon I checked my balance, and I had BTC100.0011 on my testnet system. Excited, I checked the logs to see where my script had scored, but it hadn't. I must have won the extra block while running bitcoind in gen mode earlier, and the money hadn't yet cleared. [comment]


Successfully mined 50 bitcoins from the testnet using the provided bitcoind software. Now attempting to duplicate that feat using my own mining script. [comment]


OXO sent me a new, free replacement lid for my Liquiseal mug I bought years ago. Now that's customer service! I did have to pay 72 cents postage due, but what the hell, it's still a great deal, and much less destructive to the environment than having to throw out the whole mug. [comment]


Wow, take back anything good I said about MoneyPak. Now you have to give your SSN and a Post Office verifiable street address to get money from MoneyPak into PayPal, which doesn't work at my NM address because the PO doesn't deliver there. Yeah, I did it, using a friend's California address, but damn! How much more intrusive can it get? [comment]


A couple of hairy server upgrades this month, both of which involved a new version of libc6, which has about a 50% chance of serious fubarness. Thanks to Jason at tektonic.net, it didn't go nearly as bad as it could have; he got my Virtuozzo kernel upgraded overnight. [comment]


One of the first manifestations of Petaluma's "road diet", a multimillion-dollar boondoggle the city cannot afford and which benefits only companies like Ghilotti, was the elimination of the warning lights at crosswalks. I guess they're trying to up the numbers of pedestrian deaths over previous years.

The MoneyPak sold at 7-11 and other stores is so handy when you need money in your PayPal quickly, I can see how they get away with charging a $4.95 service fee. Yet it opens the door for people to offer the same service for less, advertising on Craigslist for example.

Wasn't able to complete my 1.5-mile jog today, the knee pain started bugging me partway down the B street hill. Dammit. [comment]


Did my 1.5-mile jog with no knee pain after staying off it a few days. On the mend, maybe. [comment]


It may not have been the moldy bread at fault after all. My friends reminded me that I came back with bronchitis after last year's race. [comment]


Two mornings ago I felt a scratchy throat. I knew it wasn't smart to eat that moldy piece of bread but didn't want to waste it, and I guess the mycotoxins weakened my immune system. So last night I was congested, and many, many times I awoke from a dream in which I was dying, unable to breathe, and gasped for air through my mouth. For some reason my sleeping self isn't smart enough to do that. [comment]

view blog for 2024-06
view blog for 2024-05
view blog for 2024-04
view blog for 2024-03
view blog for 2024-02
view blog for 2023-10
view blog for 2023-09
view blog for 2023-08
view blog for 2023-07
view blog for 2023-06
view blog for 2023-05
view blog for 2023-03
view blog for 2023-02
view blog for 2023-01
view blog for 2022-12
view blog for 2022-11
view blog for 2022-10
view blog for 2022-09
view blog for 2022-08
view blog for 2022-07
view blog for 2022-06
view blog for 2022-05
view blog for 2022-04
view blog for 2022-03
view blog for 2022-02
view blog for 2022-01
view blog for 2021-12
view blog for 2021-11
view blog for 2021-10
view blog for 2021-08
view blog for 2021-07
view blog for 2021-06
view blog for 2021-05
view blog for 2021-04
view blog for 2021-03
view blog for 2021-02
view blog for 2021-01
view blog for 2020-12
view blog for 2020-11
view blog for 2020-10
view blog for 2020-09
view blog for 2020-08
view blog for 2020-07
view blog for 2020-06
view blog for 2020-05
view blog for 2020-04
view blog for 2020-03
view blog for 2020-02
view blog for 2020-01
view blog for 2019-12
view blog for 2019-11
view blog for 2019-10
view blog for 2019-09
view blog for 2019-08
view blog for 2019-07
view blog for 2019-06
view blog for 2019-05
view blog for 2019-04
view blog for 2019-03
view blog for 2019-02
view blog for 2019-01
view blog for 2018-12
view blog for 2018-11
view blog for 2018-10
view blog for 2018-09
view blog for 2018-08
view blog for 2018-07
view blog for 2018-06
view blog for 2018-05
view blog for 2018-04
view blog for 2018-03
view blog for 2018-02
view blog for 2018-01
view blog for 2017-12
view blog for 2017-11
view blog for 2017-10
view blog for 2017-09
view blog for 2017-08
view blog for 2017-07
view blog for 2017-06
view blog for 2017-05
view blog for 2017-04
view blog for 2017-03
view blog for 2017-02
view blog for 2017-01
view blog for 2016-12
view blog for 2016-11
view blog for 2016-10
view blog for 2016-09
view blog for 2016-08
view blog for 2016-07
view blog for 2016-06
view blog for 2016-05
view blog for 2016-04
view blog for 2016-03
view blog for 2016-02
view blog for 2016-01
view blog for 2015-12
view blog for 2015-11
view blog for 2015-10
view blog for 2015-09
view blog for 2015-08
view blog for 2015-07
view blog for 2015-06
view blog for 2015-05
view blog for 2015-04
view blog for 2015-03
view blog for 2015-02
view blog for 2015-01
view blog for 2014-12
view blog for 2014-11
view blog for 2014-10
view blog for 2014-09
view blog for 2014-08
view blog for 2014-07
view blog for 2014-06
view blog for 2014-05
view blog for 2014-04
view blog for 2014-03
view blog for 2014-02
view blog for 2014-01
view blog for 2013-12
view blog for 2013-11
view blog for 2013-10
view blog for 2013-09
view blog for 2013-08
view blog for 2013-07
view blog for 2013-05
view blog for 2013-04
view blog for 2013-03
view blog for 2013-02
view blog for 2013-01
view blog for 2012-12
view blog for 2012-11
view blog for 2012-10
view blog for 2012-09
view blog for 2012-08
view blog for 2012-07
view blog for 2012-06
view blog for 2012-05
view blog for 2012-04
view blog for 2012-03
view blog for 2012-02
view blog for 2012-01
view blog for 2011-12
view blog for 2011-11
view blog for 2011-10
view blog for 2011-09
view blog for 2011-08
view blog for 2011-07
view blog for 2011-06
view blog for 2011-05
view blog for 2011-04
view blog for 2011-03
view blog for 2011-02
view blog for 2011-01
view blog for 2010-12
view blog for 2010-11
view blog for 2010-10
view blog for 2010-09
view blog for 2010-08
view blog for 2010-07
view blog for 2010-06
view blog for 2010-05
view blog for 2010-04
view blog for 2010-03
view blog for 2010-02
view blog for 2010-01
view blog for 2009-12
view blog for 2009-11
view blog for 2009-10
view blog for 2009-09
view blog for 2009-08
view blog for 2009-07
view blog for 2009-06
view blog for 2009-05
view blog for 2009-04
view blog for 2009-03
view blog for 2009-02
view blog for 2009-01
view blog for 2008-12
view blog for 2008-11
view blog for 2008-10
view blog for 2008-09
view blog for 2008-08
view blog for 2008-07
view blog for 2008-06
view blog for 2008-05
view blog for 2008-04
view blog for 2008-03
view blog for 2008-02
view blog for 2008-01
view blog for 2007-12
view blog for 2007-11
view blog for 2007-10
view blog for 2007-09
view blog for 2007-08
view blog for 2007-07
view blog for 2007-06
view blog for 2007-05
view blog for 2007-04
view blog for 2007-03
view blog for 2007-02
view blog for 2007-01
view blog for 2006-12
view blog for 2006-11
view blog for 2006-10
view blog for 2006-09
view blog for 2006-08
view blog for 2006-07
view blog for 2006-06
view blog for 2006-05
view blog for 2006-04
view blog for 2006-03
view blog for 2006-02
view blog for 2006-01
view blog for 2005-12
view blog for 2005-11
view blog for 2005-10
view blog for 2005-09
view blog for 2005-08
view blog for 2005-07
view blog for 2005-06
view blog for 2005-05
view blog for 2005-04
view blog for 2005-03
view blog for 2005-02
view blog for 2005-01
view blog for 2004-12
view blog for 2004-11
view blog for 2004-10
view blog for 2004-09
view blog for 2004-08
view blog for 2004-07
view blog for 2004-06
view blog for 2004-05
view blog for 2004-04
view blog for 2004-03
view blog for 2004-02
view blog for 2004-01
view blog for 2003-12

Valid HTML 4.01 Transitional

Valid CSS!