Very Secure

Waves and Women

February 18th, 2023

Are breathtaking energies that create chaos wherever they appear.
Their lips and curves draw in men and cause war between them.
The men, enamored by these beautiful forms, fight for one goal:
To be inside and last as long as possible.

But oh, how difficult the task is!
These ephemeral beauties are found on beaches all over the world.
But despite their abundance, they remain elusive.
Why is this so?

The common man trembles in their presence.
The more perfect they are, the more he fears them.
Should he approach them, he does so timidly.
And oh the fury that awaits him for a half-hearted attempt...

For in failing to get inside, he is humiliated.
He is smacked in the face and left disoriented.
Whether he is alone or in company he suffers greatly all the same.
Albeit in different flavors.

If he is in company, he offers an amusing spectacle for his audience.
And his public inadequacy encourages future theft.
If his failure occurs while alone, his soul suffers.
For he was free from competition.
The best opportunity, yet he still failed.

Some men, on the other hand, glide inside with ease.
They confidently and assertively present themselves.
Sure, they are slapped now and then, perhaps even more so than others.
But intermittent failures do not alter their composure.
And they oft experience those few electrifying seconds of ecstasy.

They travel all over the world, getting inside again and again.
The rare breed is rewarded with delicious pleasure.
The objects of their infatuation, soaking wet, engulf these men with love.
And sometimes go as far to spit all over them.
An act of devilish, rapturous desire.

Such is the way of life.
None for most, much for the few.
And when it comes to the differences
between man's pursuit of waves and man's pursuit of women.
There is only one.

And that is who gets the big ones!

How Javascript Came To Be

February 16th, 2023

Many a software developer working the salt mines has had the following unfortunate experience. He wipes the sweat off his brow and smiles as he completes whatever widget he had been implementing for his non-profit.1 He tests his new widget in his browser, likely the latest chrome or firefox. If he’s diligent maybe he checks it on another one as well - say safari. All good.

But, as has become routine, when his boss tries to load the widget everything goes awry. Not only does the widget not work, but half of the web page does not load! What has happened?

To answer this question we must go back in time to the early days of the internet when the competition between different companies to provide web browsers had just begun. During this time, web developers were pumping out their first websites. And likely these web developers were filling their sites with errors according to the javascript spec.

So one day a developer at mozilla decides he can get an edge on his competition by loosening the rules of javascript to accommodate for poorly written code. Specifically, he decides to remove the rule requiring a semicolon at the end of a statement. He accepts new lines as a valid alternative, a la python.

With this new addition, firefox browsers can suddenly display a whole sector of the web that before could not load on any browser. Specifically, firefox can display all websites where their web developer had forgotten a semicolon.2 To the consumer loading one of these poorly coded web pages, it appears that the browsers that follow the javascript spec are broken!

Naturally, the situation became a race to the bottom, each browser loosening its js compiler rules until we reached the state we are in today.

  1. i.e. a company that does not profit - regardless of how the label themselves when they file their taxes. i.e. all of Silicon Valley. []
  2. Sure, sure, one developer somewhere in the world followed the javascript spec down to the T, and wrote the following lines at the end of his function:

    return
    “A very very very long string that needed to be on a new line to prevent him from going over his editor’s character limit.”;


    And because of the genius at mozilla’s new addition, his function now returned null on firefox’s browsers, owing to the magically inserted semicolon after the word return. []

Heartbeat

December 8th, 2022

ztkfg has been too dormant. This little article serves to broadcast a few personal updates and a send a ping to the vast interwebz.

My days are lovely right now. Everyday is filled with a little guitar, a little bit of Spanish homework, and a little bit of snorkeling over some beautiful lava rock filled with wildlife right outside my window.

The biggest weight on my shoulders still is my concern of the functionality of my hands. I have been consistent with PT these past few days and am going to remain consistent so as not to make this sentence a lie. I'll also provide some more updates to fill in missing RSI logs.

Cheers

Apnea and the Love of Freediving

November 16th, 2022

A month ago I watched my friend Luis dive 7 meters deep and swim through an underwater cave. This took place in a cenote in Tulum, Mexico. The cenotes of Mexico are sinkholes that give access to a fresh water cave network that spans roughly 216 miles. Words cannot describe their beauty. They are filled with colorful, exotic fish; turtles; and limestone. The crystal clear water allows one to see all this beauty with only a pair of goggles.

The first time I saw Luis go through an underwater cave -a swim through- I was drawn by the challenge. But out of respect (and fear) for my life, I decided I would not follow him. That night we found ourselves at a party with a large swimming pool. Tipsy off mezcal and a little stoned from a joint, I swam roughly 40 meters no fins in one breath.

The next day I came back and Luis showed me a cave that lead to another opening, inaccessible to other tourists not willing to take the challenge. He assured me that the swim was super short. I put my trust in him and committed to the swim. Even though the distance was quite short, I was nervous as shit. After having completed the challenge I had to swim back. Knowing I had just succeeded did not make things easier. Nevertheless I returned and was grateful for the experience.

Then Luis showed me another swim through. I watched him do it a couple of times and then followed him. This one was a tighter cave and a little deeper but shorter than the first. The experience and feeling after surfacing were amazing.

Luis showed me a third swim through. It was another cave right below the one I had just completed. He told me that this swim through was the most beautiful one. It was along the edge of the entrance to the large caverns that are explored by scuba divers. I felt confident I could do it. But I was not able to get myself to relax. My heart was racing both from fear and from the thrill that I would get to see this miraculous under water temple. I was unable to get my heart rate down. I was sure that I could make the swim through even with my elevated heart rate. But with respect for the danger I decided to abort the mission. There is no room for error in freediving.

The love of the cenotes has given birth to a new love of mine: playing in the water with one breath. After the experience in the cenotes I met a competitive freediving judge, Anna, who recommended that I take an AIDA freediving course. She pointed me to an instructor here in Tamarindo, Costa Rica that she had coached in a competition years ago. I took his course last weekend.

The course was for an AIDA2 certification. AIDA stands for Association Internationale pour le Développement de l'Apnée. The organization is a non-profit that hosts competitions for freedivers all around the world and is the most notable issuer of freediving world records. The level 2 certification requires the freediver to: complete a written exam, hold their breath for 2min (static apnea), swim 40 meters horizontally in one breath, and dive 12 meters in one breath. At the end of the course my records were:

40m horizontal with fins (DYN)
17m deep (CWT),
4min40s static (STA)

My PB that stands out is the 4min40s static apnea. This was the first time I did a full send on a single breath hold - I pushed myself to my limit with the knowledge that I was being watched by a professional freediving coach.

The lead up to the 4min40s hold was as follows. We were instructed to do 2 warm up rounds before the final attempt. The first warm up round we had to hold our breath until our first diaphragm contraction.1 Then we took 1min to breathe recovery breaths and then 2min to relax before our next breath hold. The 2nd breath hold we were instructed to hold until 20s after our first contraction. Then we did another 1min recovery and 2min relaxation before our final breath hold where we held for as long as possible.

Before doing this exercise I had asked the instructor if he could stop me at 4min15s. He said no, I needed to listen to my body and choose when to stop. I am grateful for that because I found out that I was able to push past my self perceived limit. It also showed me that, for now, 4min40s is my physical limit. I came up with my leg twitching2 and my face pale - I had a slight LMC.3 I struggled to give the OK sign with my index touching my thumb, but I managed to do so.

I learned that my body has late and weak contractions. My peers had their first diaphragm contractions around the 2min mark while I had my first diaphragm contraction around 3min30s. This is both a blessing and a curse. The blessing, comfortable 3min breath holds; the curse, small time between warning and blackout.

There's so much more to say about freediving but I'll have to cut this article short for now. I can't wait to be back in the water to push myself deeper into the blue abyss.

  1. Holding your breath is broken down into two phases - the easy phase and the struggle phase. The struggle phase begins when one receives their first involuntary contraction. This is an involuntary swallow. Then come involuntary diaphragm contractions. Hopefully you never get to the third phase. []
  2. I came up because my leg was twitching. I was able to push through discomfort but that twitch made me think that maybe I was really out of oxygen. I was right. []
  3. Loss of Motor Control. Freedivers use a euphemism, samba instead of LMC, because it looks like a diver breaks into a little dance when they are trying to gain control over their body again. []

Podcast Episode 02 - The USDdb and Bitcoin's Speculative Attack

February 14th, 2022

Episode 02 is below. I may burst out a few more episodes in the near future, and then eventually settle with a 1-per-week or 1-per-month podcast.



In this episode I discuss:

-Examples of USG hallucination.
-The relation between the USG mind virus and the dollar aka the USDdb
-The higher cause you contribute to when you buy BTC.
-The coming and desire of the downfall of the exchanges, aka the USDdb<->Bitcoin interfaces

P.S. I apologize in advance for my fillers "um, uh, like, you know's" sprinkled throughout the podcast, I'll work on reducing them in future episodes.

Trbexplorer Genesis Release

February 13th, 2022

UPDATE: Known Bugs

Please read the log and apply the fixes mentioned if you would like to start scanning before I publish the vpatch. Thanks to billymg for catching these.

====

The genesis of trbexplorer and the corresponding sig can now be found on my codeshelf:

trbexplorer codeshelf page

While the program is a modification of the online component to jfw's Gales Bitcoin Wallet, the scope of the project has changed enough that I thought it proper to regenesis instead of apply a vpatch on top of his work.

In order to run trbexplorer, I recommend you have a 2 TB SSD. At the time of writing, the amount of disk space used on my machine hosting explorer.ztkfg.com is 948GB.

Indexing the trb blockchain took my machine hosted on asciilifeform's rack roughly 4 months. If you want to run trbexplorer and you don't even have a trb node sync'd, you're looking at roughly 6-10 months of total sync time depending on your hardware.1 So start syncing today.

UPDATE: billymg reported that his trbexplorer took only 12 days to index his fully sync'd node on an FX-8350 AMD processor w/ an SSD.

  1. My machine has 4GB of RAM, a 1 GHz Processor - AMD GX-412TC SOC, and 2TB of storage on an SSD []

Podcast Episode 01 - Ending The Hallucination of the USG

February 12th, 2022

I've decided to start podcasting. Here is the first shot, please leave any suggestions in the comment box below. Harsh criticism is welcome.



The audio file can be downloaded at http://ztkfg.com/wp-content/uploads/podcast/ .

Topics:

- How the United States Government is nothing more than a mind virus.

Links:

Mark Passio's Website:
whatonearthishappening.com

The Possible Outcomes of Segwit

January 27th, 2022

Did you ever realize that the word upgrade has a counterpart, downgrade, but the word update has no counterpart downdate? Because progress only goes forward ...right?

The Bitcoin network has remained backwards compatible ever since Bitcoin's release on January 3, 2009.1 This is despite numerous attempts to fork the chain. This great feat of Bitcoin is recognized by many, segwit users included. But segwit nodes, while having maintained backwards compatibility, have also introduced new rules into the system. The real bitcoin does not recognize these new rules. What are the consequences of this, and how will any future fork wars play out? I foresee three possible outcomes.

The 1st possible outcome is the status quo is maintained, meaning that all future blocks in the current chain remain compatible with both segwit and trb nodes. Segwit coins and trb coins remain with their expected owners and the two networks coexist in symbiotic fashion.

The 2nd possible outcome is that at some point in the future a segwit-incompatible block is mined where the miner snags a segwit user's coin. At this moment we fork into two chains, trb-chain (with height h+1) and segwit-chain (with height h). Segwit nodes see trb-chain as invalid, and thus remain on segwit-chain. Trb nodes see both chains as valid, but switch to trb-chain owing to its greater height. If the trb-chain grows faster than the segwit-chain, the fork persists. If the segwit-chain manages to catch up and surpass the trb-chain, trb-nodes will reorg and adopt segwit-chain, putting us back in a post-hiccup version of outcome 1.2

The 3rd possible outcome is trb becomes economically irrelevant. Perhaps the segwit users/bitcoin core team manage to pull off a hard fork that wins in the market place, or trb nodes all go offline. Revisionist history wins, and the roots of Bitcoin fade away into the cosmos.

Given the information I have, all three of these scenarios seem equally likely. The first is the status quo, but it is in an unstable state while both trb and segwit nodes are online. The second scenario can happen at any moment, but it requires the active move of a miner, and it may require a coordinated effort of 51% of the hashing power. The third scenario is the ultimate objective of the enemy, and thus may come to fruition despite its negative consequence for everyone using bitcoin.

No matter how things play out, the best decision today is to move your coins out of "3" and "bc1" addresses and into a p2pkh address aka "1" address. Why would you put all your bitcoins at risk? To save a couple of mbtc on transaction fees?

  1. The first block with height 0 is hard coded into trb and is dated Jan 3, 2009. The second block, which is the first block not included in the source code, was mined on January 10, 2009. []
  2. History has shown that miners like to SPV mine. This means they sometimes forego validating transactions in blocks mined by other pools in order to get a slight head start in mining the next block. So if the segwit mining cartel does not validate its blocks, it is possible that a solo miner could throw a wrench into the segwit system by mining just one non-segwit-compliant block. []

Use Bitcoin, Avoid The Shitcoin Casino

January 6th, 2022

Let's list some of the many reasons why one should buy bitcoins instead of shitcoins.

1. Bitcoin is the only coin protected by proof-of-work and thus the only coin that actually offers sovereignty over your money Any shitcoin that attempts to copy Bitcoin's PoW system can be economically sabotaged by the bitcoin miners.1 Bitcoin's energy consumption is world-eating, block 716521 has a sha256 hash of

0000000000000000000ae0a5b1c8c71e94112a6082fb18b5f351673217c24142

If the number of 0's at the front of that hexadecimal string doesn't mean anything to you, go on some sha256 calculator and see how long it takes you to guess an input that gives you at least 3 leading 0's.2 Since shitcoins are unprotected by mining3 they always resort to being "protected" (i.e. controlled) by some authority, usually their creator.4

2. Bitcoin is the natural Schelling point. Let's say that all the shitcoiners were well meaning folks and there was no difference between the technical merits of shitcoins and Bitcoin. It would still be advantageous for the world's investors to agree to use one coin so as to facilitate business. Bitcoin would be/is the obvious choice: it came first, it has the economic majority, and it has mathematical evidence that a large amount of energy is being inputted into the system.

3. Minting bitcoin incurs a cost to the miner, whereas creating a shitcoin is ~free. New bitcoins are issued when a miner mines a block. It is expensive to mine a Bitcoin block, as made apparent by the astronomically high hashrate. Thus, it is expensive to mint a bitcoin.5 Meanwhile an infinite number of shitcoins can be created at ~no cost.

4. Bitcoin was created before all others and sucked up the freedom loving anarchist community, whereas shitcoins absorbed late-to-the-party scammers. Before bitcoin existed there were people looking for alternatives to the current financial system and others content with the status quo.6 When Bitcoin was created, a number of anarchists7 found what they were looking for and got into the game. Only later when this community gained wealth did others start to notice wtf was going on. Jealous/unsatisfied with the fact that they could never get as rich as the early bitcoin adopters, a few brazen scammers decided to take the Bitcoin code, make a few changes, and sell their shitcoin as the next Bitcoin.8

5. Bitcoin is liquid and has an OTC market, whereas the others...? You can come to Costa Rica and get a bag of colorful cash for your bitcoins. When you use a shitcoin you are constrained to a poorer community and KYC exchanges.

6. Shitcoins attract suckers with statistics like market cap that make the shitcoins seem more liquid/useful than they are. I can create a shitcoin with 1 trillion units, trade one of those units to a friend for $1, and then voila, the shitcoin has a market cap of $1 trillion. mEthereum tards apparently sacrifice mEthereum (i.e. register some units permanently unspendable) in order to increase the value of other mEthereum units. While this may benefit individual mEthereum holders, this hurts the mEthereum economy. Burning coins means there are fewer units in circulation and thus the network has less ability to fund real world projects.9

7. Smart contracts and other "blockchain inventions" are useless marketing schemes created to pump shitcoins. Smart contracts are only useful in highly contrived and unrealistic nerd fantasies. If you need some money to move based on a certain condition, you can do this with *any* financial system, even the old faithful USD.10

If received_electricity() then
send_btc_to_power_company(PRICE_PER_KILOWATT_HOUR * get_kilowatt_hours_used_this_month())
endif

This is by no means an exhaustive list of the reasons why one should use Bitcoin over shitcoins. One can never create such a list, because no matter how many reasonable arguments one makes against using shitcoins, their creators always find a new way to market their scam.

  1. Some shitcoins market themselves as ASIC-resistant, i.e. resistant to hardware made to specifically mine their coin. This claim by itself should raise alarms to thinking persons. []
  2. This is essentially what the miners do, they fiddle with the input to a sha256 function until the output has a certain number of leading 0's. That same input contains meta data about the bitcoin block as well as the list of transactions included in that block. []
  3. Shitcoin creators often keep up the pretense that their coin is mined, but this is only security theatre - the hashrate of shitcoins is always some epsilon percentage of bitcoin's. []
  4. One scheme used for securing shitcoins is PoS, which stands for piece of shit proof of stake. One of the many issues with this scheme is once a stakeholder has sold his coins his private keys remain valuable to anyone trying to rewind the block at the height where the coins moved. So after selling his coins, he is incentivized to sell it to attackers trying to double spend. If that makes no sense to you, I don't recommend spending time learning about it, another problem with the creators of shitcoins is that each one finds a new way to waste your time studying their new nonsense scheme. []
  5. To be fair, bitcoins were cheap to mine at the start of the chain. There is no cure for this initial premine, and afaik satoshi released his source code and announced his project even before he started mining himself. []
  6. Or at least had their head so far up their ass that they didn't see a problem with inflation. []
  7. I use the term anarchist to denote those who want to live without being ruled, i.e. 'an' - without 'archon' - rulers. []
  8. Of course I can't really say why shitcoiners shitcoin, their intentions are known only to them. Maybe they actually believe that they are improving on bitcoin with their changes. But I doubt it. []
  9. This also means that until the Bitcoin block reward reaches 0, everyday the bitcoin price stays the same the Bitcoin network gains more economic power since new coins are added into circulation. []
  10. I'm sure some mEthereum dude is going to respond to this "well yes but see you need to have the code on the blockchain itself" for god knows what reason. []

Blockexplorer Web Interface And The Updated TODO List

August 1st, 2021

A prototype of the web interface to my blockexplorer is now available at explorer.ztkfg.com 1 Feel free to try it out, but do not build anything on top of it, for the api will be swept away from under your feet. Here are the next items on my TODO list:

1. Clean up the code. The core command line tool is nothing short of a mess. I need to proofread, lint, and potentially restructure the code so it starts to resemble something I would sign with my key.

2. Fix address/scriptPubkey confusion. As jfw pointed out in my last article, I was confused about the distinction between bitcoin addresses and the scriptPubkey of an output. This confusion is apparent in my db schema, which has the column name 'address' for where I store what is actually the scriptPubkey. Given that it took some 4 months to index the database, I'm going to temporarily use a duct tape solution by adding a comment that clarifies the misnomer until I find out how to rename the column.

3. Create a better system for pagination. When querying for data about an address through the commands view-address or utxos, I display a limited number of transactions. There is an optional parameter that let's you specify this limit. However the explorer user should also be able to pick at which position he wants to start the limited query - i.e. show results 0..500, 501..1000, etc.

4. Create a strategy for backing up the rather large database (~1/2 TB atm).

5. Create an intelligent argument parser If users provide one argument (an address) they should immediately get the response to view-address with the address as the parameter. Likewise if they provide just the hash of a block, the program should know to return the result of view-block of the block with the given hash.2 This needs to be done at the level of the python script for the web server.

6. Create a web interface that has links to commands. I.e. I should inject anchor links to the responses so you are able to click an address to see the result of view-address for that address. Same for hashes of transactions, block numbers, etc. This means I will also need a separate endpoint to obtain raw output.

7. Formalize response to queries and provide a spec and example python client that interfaces with the web api.

  1. I had some trouble with my web browser displaying this page for security reasons beyond the usual green lock issue. If you have trouble viewing the page please inform me. []
  2. Actually view-block currently only accepts the block height. []