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


strange. same after rescan. guess a better test would be to send it back and forth to my new server, which has only the newest blockchain.

jcomeau@aspire:~$ americancoind getbalance


saving my balance for posterity. it's going to be less when I rescan. I found not one, but 4 51% attacks on the AMC blockchain in 2014, 2 of which brazenly reset the genesis block. that shouldn't even be possible.

jcomeau@aspire:~$ americancoind getbalance


seems to be there could be a script op OP_TRANSACTIONEXISTS that would enable on-blockchain exchanges from one crypto to another. it would take on the stack an address, an amount, a name or symbol of a cryptocurrency, and possibly a number of confirmations. if everything matches, the address that sent the transaction would be pushed onto the stack, and the "pay to" script could then send the funds in exchange. it would require a multicurrency daemon that maintains several different blockchains at the same time, and the clients would have to generate their addresses for the different currencies from the same RIPEMD160 hash. [comment]


I think I found the absolute cheapest decent source of pre-cooked nutrition here in La Paz: the blue corn tortillas at Soriana on Colosio and Abasolo, what used to be the Mega. they're $11 pesos per kilo, and delicious. hoping they aren't some kind of GM corn.

also good is the precooked refried beans for about $40 pesos a kilo, sold in plastic bags usually near where you'll find lard and refrigerated salsa in supermarkets.

another get-rich-quick scheme failed last night, trying to harvest some failed Bitcoin transactions from years ago. still haven't run out of ideas, but am recompiling the daemon to show me more precisely what is going wrong. [comment]


finally fixed the first string of party lights that's been out for weeks. I never understood how the damned things were wired, which made diagnostics difficult, but this guy figured it out, and with that webpage as a guide I had a plan. I got out a spool of wire, stripped both ends, and plugged one end into neutral. how did I know which was neutral? I tested each wire at the outlet to ground. one read 110V. the other read 0. but hot to neutral tested at 146?! that's Mexican wiring for ya, I guess. anyway, with the black meter probe connected to the other end of the long neutral wire with an alligator patch cord, I went probing from the far end, pulling every few bulbs and checking for voltage on the upstream side. eventually I hit one with nothing and worked back one at a time. suddenly, plugging one back in the whole string lighted up! [comment]


as I'm getting more familiar with the Bitcoin Script stack language, sooner or later I might be able to understand exploits like SIGHASH_SINGLE and bad ECDSA implementations. but it takes a lot of mental effort, for me anyway. [comment]


finally figured out how to reset Tradingview charts to default. I had it so screwed up it was all but unusable; but after clicking the "reset" button that shows up when you mouseover the chart, right in the middle of the 5 buttons "< - C + >" (it looks something like a C with an arrow at the top right), it's fixed.

that had me bothered so much at one point I logged out and cleared the cookies, and didn't login again for weeks, in order to keep the charts usable. but I get tired of refreshing the screen after the login nagscreen shows up after 5 minutes. [comment]


one interesting (to me anyway) thing about yesterday's experience was that, in the 3 places I stopped for beer that weren't self-service, I was offered a "light" version of Tecate or Pacifico that I hadn't asked for, and it was actually difficult to convince two of them that I wanted the full-flavor product. can't figure out why that is. never happened to me before, that I recall. [comment]


also it's worth mentioning that I never had to stop and pee that whole time. still haven't since I've been home. I guess I just sweat it all out. over 12 hours and haven't had to urinate. amazing. [comment]


went and refilled my tanks today. after a couple of failed attempts to find routes other than the dangerous highway, I backtracked and went on the highway maybe 4 or 5 miles each way to get to Caligas where I filled the 2 tanks I was carrying on my hand truck. I'm fucking exhausted, and my voice is almost gone from screaming at the motorists who wouldn't give me a fucking inch until they were almost on me. stopped and had 5 beers and 2 tacos along the way. didn't get home until 11:15 PM, La Paz time.

so I didn't have to save up 200 pesos after all. they charge by the kilo, and currently it's MXN21.50 a kilo, so it would have been $215 pesos each tank to fill it up. since I only brought $400, and they didn't want to figure out fractions, I got 18 kilos and $13 change. too tired to figure out if that was right, but I think it's in the ballpark anyway.

also I stopped at Tlapaleria Benton to get their price on the little 220ml canisters, $44 pesos, only $1 peso savings over Ferreteria El Gallo in Centro. no sense going something like 14 miles round trip to save a peso.

and I discovered I like Tecate almost as much as Pacifico, in the can anyway. one of my stops was at a taqueria and I got a bottle of that golden elixir, and it was heavenly.

anyway I made it home alive. on to the next adventure. [comment]


first bowel movement in 72 hours. that felt good. not during, necessarily, but after. [comment]


hey, it turns out those transactions went through, and supposedly I own a little Bytether after all. however, they stopped responding on bitcointalk.com, and their webpage went down. so maybe it all was a scam, or they were just in over their heads and don't know what to do next. [comment]


got hacked today:

The phone number +17072415942 was added to your Instagram account at 11:41 (PDT) on Sunday, January 14 2018.

changed my password. I hadn't been using a secure one. [comment]


mining on a VPS and sending the winnings home...

jcomeau@ns003:~$ crontab -l
31 * * * * $HOME/bin/sendhome.sh
jcomeau@ns003:~$ cat ~/bin/sendhome.sh 
balance=$(americancoind getbalance)
if [ "$balance" != "0.00000000" ]; then
 americancoind sendtoaddress AgBgumrwpkFP6LwDJvuRKQX7b4KYTKxDKE $balance


in Python exec and eval statements, there's a scoping issue that will bite you in certain cases, one of which is a list comprehension. you'll get a NameError for a nonexistent variable that you know damned well is there. the way to avoid it is to pass a single environment containing everything in both globals() and locals(). in Python3.5 or later you can use exec(display_op, {**globals(), **locals()}), but in earlier versions the most concise way (not necessarily the most efficient) is exec(display_op, dict(list(globals().items()) + list(locals().items())).

I'm working on a Python implementation of the entire Bitcoin protocol, but right now I'm working on script, the FORTH-like stack language built in to process transactions. using exec is non-ideal but it simplifies things for now while I'm experimenting. I made some progress last night and I'm stoked. [comment]


so I lost about .003 ETH trying to get less than 0.05 BTH (Bytether). I'm calling a stop-loss right here. Ethereum is too flaky for me. someone must have been mining the transactions but the block explorer said they had expired, so I "Rejected" them from MetaMask. ended up, I guess, having to pay miners to process it halfway? I don't know, but it's too dangerous to play with until I understand better. good thing I only lost about USD$3.

maybe for someone who has a fairly large amount of Bitcoin, it might be worth it to jump those hoops. but not for a bitnickel, or in this case a BTHnickel. [comment]


Metamask seems to open reliably now. the trick is: click old foxface just once, then hover over it and wait a few seconds. [comment]


in this process of attempting to claim Bytether, which I'm guessing eventually is supposed to send ETH to my Ethereum wallet address but I'm not even really sure of that, I'm striking out trying to find what minimum amount of gwei per gas unit will attract a miner to process my transaction. I've tried several times already and each transaction disappears after anywhere from a few hours to a day.

it doesn't help that the Metamask plugin for Chrome is ridiculously difficult to use. it seems to be some magic combination of hovering, clicking, and moving the mouse that makes the little fox face expand into a usable dialog box.

all in all, a totally frustrating and unrewarding experience. on top of that, I find out that there is no checksum in ETH addresses, so my little experiment with changing the last character to see if their software detected a problem only fucked me over. of course I did it with the highest balance address. [comment]


a friend convinced me to try Shapeshift again. it worked, easily, just like Changelly. that's two decent crypto exchanges, and both supported by Coinomi. [comment]


I deliberately botched the ether address entry on Bytether's webpage, and it didn't point that out (it's a one in 4 billion chance that it's a valid address when I enter the checksum bits wrong), and doesn't give me a chance to correct it. now I'm really wondering if Bytether has its act together or not. if it's a scam, I don't see how they're making any money off it. [comment]


so after getting some ETH with Changelly, I installed Metamask and learned how to change the gwei so that the transaction wouldn't be that expensive to process. I changed it to 0.1 gwei, hope that isn't too low. [comment]


waiting for my Ether to come through... Coinomi keeps telling me "No connection" even though I have a perfectly usable Internet connection, so it must be that the server on which they keep the ETH blockchain is having connectivity problems. I certainly don't have room on my phone for an entire blockchain though, so I guess that's one of the problems I have to endure. [comment]


I just tried Changelly for trading Dogecoin for Ethereum so I have a little for claiming my "free" Bytether. it said it'd take up to a half hour or maybe more, but it's really easy to use, and the 0.5% fee is quite reasonable. I didn't check to see if they were screwing me on the exchange rate.

I like that it let me login using Facebook so I don't have to remember a whole 'nother username/password combination. it just asked for my Ethereum address, and gave me a Dogecoin address (including QR code) to send the money to. the ease and simplicity are compelling. [comment]


so all my drama about AmericanCoin was just a kerfuffle. just had a corrupted blk0001.dat file. deleted and re-synced, all is well. there seem to be about 4 active nodes worldwide, of which I'm running 2. [comment]


seems to me that a quasi-anonymous exchange could be built on Ethereum or possibly even the stack language built into Bitcoin, in which a transaction is sent with data in a specific format specifying what currency is being exchanged for what, under what conditions, and any transaction meeting those conditions triggers the exchange. it would only work between cryptos, not between a cryptocurrency and a fiat currency, though.

but I don't know enough about Ethereum or the Forth-like Stack language in Bitcoin to know for sure.

for exchanging with fiat, I have in mind a set of PayPal API scripts that could work. but I'd be afraid PayPal would freeze my account on the first complaint. they've got a reputation for that. [comment]


wow, the primary addresses of the minimum and maximum private key values at one point had 2.325 and 4.865 BTC in them, respectively. wish I had been watching those a few years ago. [comment]


I can envision two possible scenarios: 10 years from now, people will either:

be laughing at me because I didn't cash out when crypto was at its peak, or:

saying how lucky I am to be rich because I held onto my crypto through the lean years.

I'm hoping it's the latter. [comment]


just found out about another Bitcoin fork, Clams, and swept both my Bitcoin and Dogecoin keys after trying every address at the bottom of the listaddressgroupings groups, and every received address in listtransactions in each. I had two "hits" in each, for a total of 18.42 clams, about USD220. not bad for an hour's "work".

I keep worrying that one of these experiments is going to backfire, and I'm going to lose everything in all my wallets. but it hasn't happened yet. [comment]


it'll probably never be worth anything, but it isn't costing me anything more than I'm already paying for VPSs... and mining blocks is just fun...

$ americancoind getbalance


all the time I've been down here I've been kicking myself for losing my reflective ankle straps. they're not an expensive item, but I couldn't figure out how I could have lost them when I brought so little with me, and everything was kept together in my 4-Chico-bag "rucksack". well, I just found them, stuck to one of my Dromedary bags. woohoo. [comment]


Bitcoin is currently up over USD15000, up almost $1600 for the day. and despite all the pessimism in the 2nd half of last month, Bitcoin ended up $1240 on the 31st, up $3933 for the month of December, and up $12914 for the year 2017; a gain of over 13 times.

sure, another cryptocurrency may take its place as leader. but it's highly unlikely that another asset class is going to sink crypto. it's here to stay. [comment]


just ran out of propane today. my blog shows I filled it February 25th this year, so that means I got a good 4 months use out of it. I can probably do better this next time because with the regulator any leaks I might have are much lower in volume than in the beginning when my only "regulator" was to open and close the valve. anyway now I've got to save up about 200 pesos of my food money. meanwhile I'll have to buy the little, expensive, gas canisters at the hardware store. [comment]

view blog for 2024-07
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 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-06
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!