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


many of my dietary changes are a result of "substitution", a mental game in which I find a near-enough "tastealike" to one of my guilty pleasures that satisfies my craving without as much expense or ill effects. with this month's success with "nice cream" -- yogurt with cocoa and other unsweetened flavors, with or without rum -- and as of tonight, sugarless donuts -- I've succesfully bypassed two cravings that I spent money on as recently as last year. [comment]


I did my last batch of biscuit mix differently; I left out the fat. it used to be a kilo of flour, 1tbsp. baking soda, and 1/2tbsp. salt, with anywhere from 1/2 to 1 cup lard or other cooking oil. without the lard it's a lot simpler and cleaner to make and keep. plus it works for recipes without fat, such as frybread.

made my first good frybread tonight, two donut-shaped pieces of my biscuit mix with water added and kneaded to an elastic dough. formed into 2 balls, flattened, poked a hole in each and fried about 30 seconds to a side. came out great, nice crust on the outside and chewy inside. would have been tastier with a little sugar or something... maybe cinnamon? but just fine without.

making another meat stew with one package each of very meaty beef and pork bones, total only 29 pesos. will maybe add veggies tomorrow, but for tonight, just meat and maybe some more frybread, dumplings, or other bread. [comment]


made myself an almost 3/4-pound burger tonight for a little over a dollar. good Sonoran beef from Arámburo. what a life! [comment]


finally was able to send 0.02BTC from my aging netbook to a Coinomi wallet on one of the phones a client is letting me use for development. it took maybe an hour with a txfee of 0.0006, around 165 satoshis/byte, plus another half hour before Coinomi would show the balance. [comment]


my chocolate "nice cream" is a success! roughly 1:20 cocoa to yogurt. adding some shredded coconut makes it even better. and of course rum to taste. a little sugar may help too, but it's good enough that I doubt I'll ever get a craving for ice cream that this won't satisfy.

took me 4 stores before I found one that had the cocoa: Chedraui on Abasolo. I jogged out there today down Revolución. as I mentioned the other day, it's pretty nice once you pass Bravo. [comment]


almost every time I venture out onto the street, my suspicion that I will die, not honorably by the bullet of a government sniper, or languishing in prison for a made-up crime, but rather under the front wheel of a SUV driven by some stupid, distracted motorist, looking at a sexy girl on the sidewalk or even straight at me without seeing me, is congealed more in my mind. [comment]


yogurt with rum, plus flavoring such as shredded coconut. it's like ice cream, but for adults, and no refrigeration required. got to buy some cocoa one of these days and find the right proportions to substitute for my favorite double chocolate ice cream at Thrifty's. both of the local supermarkets have been out of it for a few days now. [comment]


someone intentionally or unintentionally forked AmericanCoin the other day. one of my nodes accepted the poisoned transaction and the other one, a 64-bit node, rejected it. I don't have time to analyze it right now. maybe next month. [comment]


ha! someone found a clever way to sweep those 574 satoshis from the "satoshi nakamoto" brainwallet. obviously a miner, otherwise it wouldn't make any sense:

    "account": "",
    "address": "1FMmB9u98J99dSSbWBQYCFgy6fu8bdseJJ",
    "category": "send",
    "amount": -0.03962027,
    "vout": 0,
    "fee": 0.03961453,
    "confirmations": 0,
    "trusted": false,
    "txid": "c123e2b0c8097a44d3f356ffab5521dc0df2f219fd912a3425ad3326ea99045b",
    "walletconflicts": [
    "time": 1513938325,
    "timereceived": 1513938325,
    "bip125-replaceable": "yes",
    "abandoned": false

good thing, because I didn't realize at the time I imported the key that I was participating in bloating the blockchain for no good reason. I didn't realize that it even made an entry in the ledger, forgetting that there is such a thing as high-priority, zero-fee transactions. imagine hundreds of thousands, or even millions, of idiots like me doing the same thing. [comment]


well, damn. I ran -zapwallettxes again last night for that last sendtoaddress, and it worked, but now it shows my balance only up to the received blocks. until I catch up on the blockchain I can't make any more transactions without risking a rejection due to a double-spend. [comment]


weird, this last transaction was much smaller, only 226 bytes, which works out to a fee of 265 satoshis/byte. and it still hasn't been confirmed. it's really just luck of the draw I guess. but I doubt I'll have to wait more than a few more hours this time. [comment]


so it seems listtransactions and gettransaction rely on the local copy of the blockchain for the confirmations count. it's still showing 0 although the phone shows the balance, and blockchain.info confirms the funds on the destination address.

sent another .01 to my other phone. let's see how fast this one goes. putting my eggs in various baskets in case a fox breaks in to one of them. [comment]


it worked! in only about 10 minutes after resending the transaction with a txfee of .0006, it made it to my new wallet. that's only about 161 satoshis a byte, far below the 960 recommended by bitcoinfees.earn.com.

it pays to not panic. 6 percent fee on a transfer is already pretty steep. [comment]


got back from my jog.

$ bitcoin-cli getbalance

yesssss... [comment]


nope. a couple minutes later, the rescan thread must have finished, because now it's accepting RPC calls again. waiting for my balance before I do anything else. [comment]


so the rescan is complete for the number of blocks I already had downloaded, but it's still in "rescanning" mode, so I guess that means I'm stuck until I'm caught up with the blockchain, another week or two. oh well. at least I freed up enough disk space to hold it... I hope. [comment]


it's been about 72 hours hasn't it? anyway I got tired of waiting for the transaction to get picked up by miners, so I followed this advice, shut down the daemon with $ bitcoin-cli stop, and restarted with $ bitcoind -zapwallettxes. it emptied the wallet and is rebuilding it by rescanning the blockchain, that'll take a few hours probably, even though this machine is way faster than my cheapest VPS. then I'll resend with a txfee of .0006, double what I tried last time. [comment]


ahhh... this explains a lot.

jcomeau@aspire:~$ bitcoin-cli listreceivedbyaccount
        "account" : "",
        "amount" : 0.16303445,
        "confirmations" : 93886
        "account" : "\"\"",
        "amount" : 0.05019050,
        "confirmations" : 78193


$ bitcoin-cli getbalance still shows 0.04456945, so none of what I did earlier, including trying to sweep the private keys with Bitcore (which would have worked, but wasn't worth it) and Bitcoinplus (which didn't recognize the key), apparently exposed my private data to malicious actors. however, the .01BTC I sent to my coinomi wallet has yet to be mined into a block. [comment]


got my BCH and BTG, about USD150 worth in total, so far. still have to track down another .0035 or so of each. but now it's time for lunch. [comment]


couldn't wait. I had to know if sweeping my private keys into coinomi would work. so I did $ bitcoin-cli dumpprivkey $(</tmp/accountaddress.txt) with the address I got yesterday, made a QR code with it, and scanned. no funds. what?!

turns out I had to do $ bitcoin-cli listreceivedbyaddress instead, and looked up the addresses in the bitcoin-cash block explorer. but even that is missing about .004BCH. bitcoin-cli listunspent showed another address with .001BTC. where is the rest? but anyway, now to see if I can fetch those funds with BCH and BTG. [comment]


the key that crashes coinomi is generated from all nulls, that is, 32 bytes of binary zeroes. here's the message I get from bitcoind when attempting to import it:

$ bitcoin-cli importprivkey 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAbuatmU "nulls" false
error: {"code":-5,"message":"Private key outside allowed range"}


found a private key that crashes coinomi... got to report it, but first I have to find out if there are any funds attached to it! [comment]


actually the transaction turned out to be 373 bytes, and so the fee was only 80 satoshis per byte. that should still be enough to get it into the blockchain over the next day or three. I won't worry... too much. [comment]


sent .01BTC to one of my coinomi wallets, but the transaction hasn't made it into a block yet, and I added a rather generous 130 satoshis/byte fee to it, total .0003BTC or about 5 bucks.

trying to get my local address with $ bitcoin-cli getaccountaddress "" wasn't working; it was giving me an error message stating to do exactly what I had just done... grrr... I checked with good old $ ngrep -ilo . and sure enough, the params array in the RPC call was empty. so I used '""' instead, and it worked. weird.

so anyway, I now know for sure that it's possible to send BTC from the core software without having an up-to-date blockchain. that's useful to know.

next step, after I've gotten the funds from that transfer: try claiming my BTG and BCH. [comment]


so I imported the satashi nakamoto private key, the only one I found with a balance on it, to see what actually happens. remarkably, to me, it made it into the next block (search for 0.0000574 on the page); my limited understanding was that an import only was seen by the node importing, not the whole network. and its inclusion into the block apparently added no new information, rather it seems to have replayed an old transaction. nowhere do I see my own BTC address on that page, and the 574 satoshis are still credited to the original account.

I had done a bitcoin-cli move "satoshi nakamoto" "my other local account" 0.00000574" but that shows up in the transaction list as only a local event, and my understanding was that it had to enter the blockchain.

so there's still a lot I don't understand. I'm trying to figure out if I can aggregate these tiny amounts into something useful by importing the keys, but apparently the answer is "no".

and I'm also thinking, despite all the warnings about importing random private keys, that there's no real danger except for the amount held by that key (wallet) itself; any other funds on the same box are, I believe, not vulnerable. I guess I'll find out eventually. [comment]


sometimes my yogurt starts getting bubbly and tastes cidery. I like it, but have to drink it quickly because it starts to go bad pretty fast. I guess it must be catching a wild yeast. [comment]


OK, so it didn't work. but it had me going for a while there.

my crazy idea, which turns out to have been not so crazy after all, was that some Bitcoin philanthropists could have left little crypto "geocaches" around for people to find. I used a modified version of this script to try different words and phrases, and imported the private keys on my test server using commands like $ bitcoin-cli importprivkey 5J8EYvahRXUicxLs6xmemzHpnn4M2U7mtJkaDowM6FcQcNzbhpr "free bitcoins" false. the text in quotes is the label you want to give to that imported key, and the false means don't rescan; the rescan takes hours on a slow machine. on the 4th import I deliberately left off the "false" so I could check if I'd hit pay dirt.

after only a few minutes I started seeing AddToWallet messages in debug.log. over the rescan thousands of them scrolled by; checking the log later, 90032 of them total. I was stoked, but I couldn't wait. I generated QR codes of the private keys using this script and tried "sweeping" them with the Coinomi app. I had one trying with BTC and the other with BCH, Bitcoin Cash. the first two showed "The private key does not contain any funds.", but when I got to password, it started going crazy, that little spinning circle going for hours. it crashed once and I restarted it. finally I decided it was hung, and I aborted it. and hours later, the rescan on my server finished and I could check:

$ bitcoin-cli listaccounts
  "": -0.35461540,
  "free bitcoin": 0.00000000,
  "free bitcoins": 0.00050000,
  "password": 0.35331540,
  "qwerty": 0.00080000

what?! I had over $5000 worth of BTC but it got spent? where did it all go? listtransactions only showed me a small portion of that. did someone hack my computer? or was it the Coinomi app that grabbed the funds even though they don't show up in the balance?

turns out I was a few years too late. these are apparently well-known brainwallets and have long since been swept. the negative number for the default account "" exactly canceling out the sum of the other keys' balances just means tthat they were spent, not that they were spent from this particular machine. it's quite misleading.

so anyway, during all of this I had visions of billions dancing in my head. it turned out to be nothing, but what a ride. and I could still someday hit on a winner. [comment]


of all the hare-brained ideas I get, one finally might pay off. I say "might" because the promise is there, but I might not be prepared to receive it. doesn't look good for me to get any sleep tonight.

one time, close to 40 years ago, I was walking somewhere near the Hell's Kitchen part of NYC, looking people in the eye as I had trained myself to do, not wanting to be like all those New Yorkers walking with their heads down. something caught my peripheral vision but I studiously ignored it. but when a couple passed me going the other way, my conscious got pricked by my subconscious enough to turn around, and sure enough, the man was picking a huge wad of cash off the sidewalk. I had just walked past it. I kicked myself, off and on, for years and occasionally still do, even though I know if I had gotten it then I'd just have blown it in a few days.

well, today I was looking in the right place. details coming someday, whether I win or lose. [comment]


found rabadillas de pollo, chicken backs, for MXN19.50 per kilo, which is less than 50 cents a pound. not the same quality as the $2/lb Mary's organic chicken backs I get at Whole Foods during the summer, but these should sustain me for a couple of days so long as I remember to keep reheating the stew to boiling a few times a day. [comment]


OK, enough fun with pyminer for a while. I've deleted my droplets and closed multiple browser tabs related to Bitcoin internals. got to get some sleep and back to work tomorrow. or not. [comment]


in the Bitcoin codebase, using grep -r block.vtx ., I found lots of useful stuff under test/functional including p2p-segwit.py. but I'm still trying to wing it on my own for now. [comment]


so I set up a 2nd server according, somewhat, to these instructions, except that again I simplified, and used rsync to transfer the already-built bitcoin sources to the new droplet, and scpd over my bitcoin.conf as well.

then, according to the getblocktemplate docs, I wrote mine.py, but it doesn't work, giving me a KeyError: 'coinbasetxn' on the returned dict. so I have some digging left to do, perhaps a lot of it. and I haven't even had to deal with the segwit stuff yet, since the regtest server doesn't seem to require it, or perhaps even support it. [comment]


also, I put regtest=1, server=1, and daemon=1 in my ~/.bitcoin/bitcoin.conf file, saving me from having to add the -regtest and other flags in the commands shown. [comment]


trying to answer my own question on the Bitcoin stackexchange, I'm following the instructions to build a test network. already I modified the recommendations somewhat, since I see that the author of that document didn't even use the libdb-4.8 he so laboriously downloaded and built. I just used libdb5.3++-dev and had to pass the same --with-incompatible-bdb flag to ./configure even though that supposedly means it's a version of BDB older than 4.8.

it's still building on my DigitalOcean droplet, so it may be a while before I get to actually do some coding and testing. and it's costing me a whopping 3 cents an hour! [comment]


$ dogecoind getbalance

that's after the 100 I sent to my Coinomi wallet, and after gifting another 100 to a friend who answered my Facebook offer. [comment]


$ americancoind getbalance


so my script actually mined two more blocks since I last checked, but one was stale so I only made another 100 AMC. haven't heard anything back from the exchange I asked to list it.

got to make my own exchange I guess... [comment]


I was wrong about the remote Chrome debugger the other day: if you see "Hide all" in the upper right corner of the Console tab, change to Default. that will give you all the output. it's also worth noting that using this tool will mess with your local console.log defaults, i.e., it hides everything. [comment]


troubleshooting my web app today, it was working sorta okay on the desktop but not the Android phone. Chromium seems to support remote Android debugging just like Chrome does, but I couldn't get the console output to work. turns out the default is no logging whatsoever, not particularly useful. so when you've gone to chrome://inspect/#devices on the desktop, selected your device, and have the Developer Tools screen up, click Console in the right-hand pane, click the word Default next to the Filter button, and select all 4 levels: Verbose, Info, Warnings, Errors. then you'll get your logs. and then you can right-click and save them to a file for analysis. [comment]


went to INAMI this morning and they told me to come back Friday, they still didn't have my card. I guess they're waiting for the Mexican post office to come through. my chances of getting it this year are getting pretty slim. [comment]


just mined my first block of AmericanCoin in years:

proof-of-work found  
  hash: 00000009692fe98dcc07dd28efa82ca25dacaca0a3a9aae8149e9a3b2e64605d  
target: 0000001c68310000000000000000000000000000000000000000000000000000
CBlock(hash=3b32652b75a9e605b0ca, PoW=00000009692fe98dcc07, ver=1, hashPrevBlock
=9c900e58901bfa8a596c, hashMerkleRoot=d97eb6e43e, nTime=1512958649, nBits=1d1c68
31, nNonce=2425257653, vtx=2)
  CTransaction(hash=0083608fa8, ver=1, vin.size=1, vout.size=1, nLockTime=0)
    CTxIn(COutPoint(0000000000, -1), coinbase 04b9ea2d5a0111062f503253482f)
    CTxOut(nValue=100.00000000, scriptPubKey=03fac6fe7c9f9389d5a6a5a25df152)
  CTransaction(hash=0a46477eec, ver=1, vin.size=1, vout.size=1, nLockTime=0)
    CTxIn(COutPoint(515343d912, 0), scriptSig=304402201841178e622a6533)
    CTxOut(nValue=85.00000000, scriptPubKey=OP_DUP OP_HASH160 7a88a4fc540b)
  vMerkleTree: 0083608fa8 0a46477eec d97eb6e43e 
generated 100.00
keypool keep 3
Trying to connect block...
AddToWallet 0083608fa8  new
SetBestChain: new best=3b32652b75a9e605b0ca  height=287044  work=393643266933205
7  date=12/11/17 02:17:29

took what, a day and a half? at a hashrate of about 3kH/s between all 3 machines I had my script running on. [comment]


so once you have a litecoin-based crypto daemon running, you can copy its config file to your other machines for mining using SSH tunneling, e.g. for AmericanCoin: $ ssh -L9057:localhost:9057 amcserver, and run your getwork-based mining script against it as if it were running locally. [comment]


had to revert the changes to the "dust" calculation. the transaction I made was sent with no fee, all right, but it was never accepted. here's the tail end of americancoind listtransactions:

        "account" : "",
        "address" : "AkYy2vG8FC7oVcXdAcdzwn5N7WWq2Bt7QE",
        "category" : "send",
        "amount" : -0.00100000,
        "fee" : -0.00500000,
        "confirmations" : 734,
        "blockhash" : "bbdfebeb016ee0c7d11474a92b938492839d9e4f385820ec839ad4a5106144b2",
        "blockindex" : 1,
        "txid" : "b2bdaad17de3a1f944dded09e31f4a7c360392e95567dd7e80ccd54b3c906b04",
        "time" : 1512791811
        "account" : "",
        "address" : "AkYy2vG8FC7oVcXdAcdzwn5N7WWq2Bt7QE",
        "category" : "send",
        "amount" : -0.00100000,
        "fee" : 0.00000000,
        "confirmations" : 0,
        "txid" : "ceab710193eb6cbe85b1aad11d4a4196ae1ee18b93ad080d89ca8d3a957322f4",
        "time" : 1512879654

although I haven't dug into the code enough to really understand it, I'm guessing it's getting rejected at the relays for not having the penalty fee. I suspected it would happen, but it was worth the test. [comment]


finally got my modified AmericanCoin sources to build against my older Boost libs by installing g++-4.8 and using $ make CXX=g++-4.8 BOOST_INCLUDE_PATH=~/include BOOST_LIB_PATH=~/lib -f makefile.unix.

now to see if it'll actually run... [comment]


AmericanCoin again... some recent activity on Bitcoin Talk, including this pointer to a graph showing AMC rising quickly, roughly equivalent to BTC's rise.

but that could just be wishful thinking, based on the last known AMC/Satoshi ratio. [comment]


couldn't see spending 20 pesos on 33 grams of black pepper at the grocery store, so today I tried the seed store, Semillas Guadalajara, behind the Mercado Madero. only $200 pesos per kilo as compared to $600, so I got 100 grams for that same 20 pesos.

also, at Mercado Bravo, I scored a liter of crude lard, manteca, for 25 pesos, compared to 90 pesos per liter for my preferred brand, Porky, at supermarkets. I don't know about the quality yet, though. [comment]


so AmericanCoin isn't really dead after all. it's just that something in my config prevented the daemon from locating active nodes. I started up a newly compiled daemon on my test server and it found a bunch of nodes immediately; I added the hostnames to my local config with addnode= and my blockchain is caught up. I sent .001 coin to my other server, though, and a (presumably penalty for dust) transfer fee of .005 was taken out. ouch. don't want to make that mistake with Bitcoin. [comment]


last night I made another attempt at compiling the dogecoin sources on a "spare" server, something I've been making lame attacks on for 10 months now. looks like it finally built.

going back through my history log, here are some of the things that made the difference. first problem was that the header libdb_cxx.h wasn't found. I had to recompile the BDB 5.1 sources again:

$ cd ../db-5.1.29/build_unix
$ ../dist/configure --prefix=/usr/local --enable-cxx
$ make
$ make install

then I was missing most of the boost libraries. sudo apt-get install libboost-all-dev libminiupnpc-dev fixed that and another potential problem. then back to /usr/src/dogecoin:

$ ./configure --without-gui
$ make

it was taking forever. stopped the job with ^Z and looked around. top showed I was thrashing, so I shut down bitcoind to free up some memory. then resumed compiling, it still thrashed now and then but at least it was building. then in the final linking of the binary, it crapped out with two errors relating to boost::program_options, the first was with to_internal and I forget the other one. I looked in the sources, /usr/include/boost/program_options/detail/config_file.hpp, and it looked like it should have been there, because BOOST_NO_STD_WSTRING was not defined. googled around and got some StackOverflow results, most of which said to downgrade boost, and one which said to upgrade g++. I chose the latter, and left it running all night with make V=1 for verbosity. it worked. [comment]


yep, coinmarketcap.com shows Americancoin is dead. oh well. it was all a gamble anyway. [comment]


so it turns out I apparently don't need to download any more blocks in order to send my balances to another address. must have known that at some point and forgotten. that's good to know in case I need to cash out. [comment]


bitcoin (BTC) balance 0.05486945, assuming it's still there... don't have room to download the blocks. worth USD687.20 according to coinmarketcap.com at USD12524.30 per bitcoin. [comment]


Argentum balance: 330.039, a little over a penny each so worth about USD3.30. [comment]


americancoin balance is 17434.574, but I'm afraid that one may be dead. it's not listed at coinmarketcap.com. [comment]


going through my account balances, those I can currently access. my dogecoin holdings are 23293.957, worth about USD58 according to coinmarketcap.com. [comment]


so Rappo didn't drop the ball this time, but PdfFiller didn't send on the W9 as it was supposed to, so he didn't transfer the funds. but he did follow up by email, I sent copies, and the funds made it through. after Bountysource and Paypal both got their cut, it's down from $750 to $655.12, but still that's a pretty good return on investment for the few hours it took to solve the problem and follow up. [comment]


went for a long jog/walk today, out to Soriana and back. jogged for the first half hour and got to the corner of Farías and Colosio. left at 12:53 and got back at 4:07.

my "garden" in the arroyo north of Home Depot is a wasteland this year. still lots of native amaranth, but no tomatoes, squashes, or mint. lots of cockleburs where there wasn't before.

found real butter at Soriana, their own brand, MXN13.90 for a 90g stick, which works out to about USD3.75 per pound. not bad at all, and their breads are as low as 1.6 pesos for a whole wheat roll, under 9 cents. for those prices I could live on just bread and butter for a while, without even having to cook. too bad the nearest Soriana is about 3 miles away, where Mega used to be. [comment]


finally I was able to push that piece of hanging tooth enough so it broke free of the gum. no more pain. celebrated with a 2/3 pound hamburger on homemade whole-wheat bun, and of course the obligatory Ballena de Pacifico Clara. [comment]


a few days ago one of my cracked teeth finally split, and one piece is pulling against the gum whenever I bite. painful. [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 2018-01
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!