January 25, 2014

The Inanity of a Closed Platform

Filed under: Uncategorized — @ 12:00 a.m.
The Inanity of a Closed Platform

Apple Hijacked my ParEdit

I sat down to work through the ParEdit bindings tonight and encountered a hilarious hijacking of my input stream by Apple. Before I describe it, though, I have some things to say about operational environments.

Your Computer is your Workshop and Toolchain - Learn it and Customize it

When one sits down to learn and practice a tool, one does not settle for knowing the basics. When I made furniture, I learned how everything in the shop worked and its subtleties; sometimes by asking but more frequently by playing with them, experimenting and generally doing that learning thing. When one learns a computer toolchain, the goals should be the same, but on a different scale: the computer is your shop, and you are best served by arranging your shop to suit your needs and accelerate your success.

One's movement around the shop should be graceful and efficient, and every tradeoff should be examined and tested with care. New tools shouldn't be added to the shop willy-nilly, but the selection obsessed over and flaws with placement of tool in shop and workflow around new additions carefully considered.

Some day I'll tell you about how this works in production shops. Line operators hate it when you move their machines around…

Back to Apple and What I'm Being a Petulant Baby About Today

While reading and practicing the ParEdit keybindings tonight, I discovered that the Emacs C-M-d, or as they're allocated on my MBP's keyboard, Cmd, Control and d, brings up the Apple(tm) Dictionary Lookup tool - not at all useful when I'm trying to jump to the top of a form as quickly as possible.

The fix is here, and nowhere in Apple documentation, settings panels, or any other sane location. I suppose that as a guy whose default position is "man, aren't computers like totally fucked up and shit and impossible to use like an actual tool for getting things done" I should be pleased that this obscure keybinding is in some actual text file, but I think that I'm going to insist on being a petulant baby about Apple taking over my Lispy keybindings.

It's like these assholes make computers for GUI users or something!

In woodworking there are generally capital constraints that force one to very carefully consider which tools to bring in. I almost tear up thinking about the care and thinking that went into a shaper purchase, simply because a shaper cost 3 grand and we didn't have that kind of cash lying around the shop ready to be deployed. The constraint that is money imposes a rigor on decisionmaking that is unmatched by most other selection pressures, except perhaps the cane.

I know, I know. I still need to re-bind C to capslock and M to alt / option. So much to do…

Notes on MPEx Historical Bond Rates and Other Data

Filed under: Uncategorized — @ 12:00 a.m.
Notes on MPEx Historical Bond Rates and Other Data

A Conversation…

broke out in #bitcoin-assets today, centered on the topic of how to not get fucked as an MPOE bondholder.

<jurov> people already adapted models? who? where?

<benkay> well the mpoe bot for one but i dunno if that counts for people

<assbot>   [PAID] 2.17250000 BTC to 86`900 shares, 2500 satoshi per share

<jurov> i mean, outside of that. and it's still far from profitable (for bondholders)

<benkay> it's profitable for the bondholders who insist on a good rate

<mircea_popescu> it's complicated

<benkay> it's a good fleecing of those who're willing to settle for .45 or whatever it was hovering at before the last hammering

<jurov> benkay did you see the stats?

<benkay> yeah stats assume you're invested each month

<benkay> right? unless i misread that spreadsheet

<jurov> so your investor would read from crystal ball "withdraw in march and november"

<benkay> no no no

<benkay> just don't chase rate around. leave bond deposit requested premium nice and high. forego interest during periods of low interest, capture the high interest periods after the bot gets hammered in a given month.

<mircea_popescu> the stats as reported are overall, and moreover they misrepresent data in a sort of implicit leveraging

<mircea_popescu> (the sums not used even if available each month are not reported)

<jurov> that would work if the bonds did not eat themselves.

<jurov> you can ask 30% mpbor, but you never actually get it

<jurov> and end up actually worse in total than people who asked 4%

<mircea_popescu> how worse ?

<jurov> if you ask 4% , you can get 4% every month compounded while btc rate is stable

<jurov> if you ask 30% then you get nothing while btc rate si stable

<jurov> and when there is loss you cover it alike with all the other bonds

<mircea_popescu> well, unless mpoe makes 25% profit on a stable month and there's nobody else there, in which case you walk away with 25%

<jurov> *IF* your bond gets used.

<Apocalyptic> I still don't get wtf Hearn is doing at the foundation's head position

<mircea_popescu> Apocalyptic nobody honest wanted the job ?

<mircea_popescu> jurov well yes, it's a longshot.

<benkay> chasing return on btc is a great way to loose btc

<benkay> har arguably the best thing to do with 100 btc is put it on deposit as a bond with MPOE at like 50%

<benkay> you won't make any money, but you won't lose a terrible lot either

<jurov> 20% (or dunno how much it was) isn't terrible lot?

<mircea_popescu> his theory is that when shtf and bonds get eaten up you may lose.

<mircea_popescu> however, the capital needs as a volume of btc and the losses as a % are not necessarily correlated too well.

<mircea_popescu> at least imo

<jurov> actually, because if you ask 50%, then EVERYONE, even people who asked 4% will get it

<jurov> thus, loss is practically guaranteed

<mircea_popescu> if you get touched. yes.

<benkay> i was halfway joking jurov

<mircea_popescu> i stil ldon't see how is loss guaranteed ?

<jurov> yes, that case

<benkay> suggesting that you wouldn't get touched at that rate

Which made me curious about the bond rates over time, and how those rates correlate to various other interesting things.

Rates, Capital, and Return


Capital borrowed and returned to bondholders show in BTC against the left axis.

Rates in percents against the right axis.

Things of note:

  • When many bonds are required to cover MPOE during a month, MPBOR goes up
  • Bondholders typically request higher rates the month after the bot takes a loss

MPBOR is actually a function directly of the number of BTC required to collateralize the bot during its normal operations. At every moment during the bot's operation, it is liable to deliver on the options it wrote and sold. This number fluctuates over the month. At the end of the month, MPEx calculates the largest amount of BTC required to cover the options so written, and pays interest to the bondholders in that amount. This leads pretty typically to rates increasing when the bot carries much exposure - for instance during times of high volatility.

When the bot takes a loss, the subsequent month's premium increases as well. Bot losses tend to wipe out bondholder capital (a discussion of which is beyond the scope of this piece), and on average, preferentially wipe out those who are willing to accept a lower return for the capital loaned to the Options Emporium1.

MPBOR and Volatility


O/C and L/H refer to the open, close, low and high for a time period in dollars and are denoted on the left axis. MPBOR, as above, is on the right axis.

The normalization performed is to take the absolute value of the delta for both o/c and l/h and divide it by the median price of BTC for the time period in question. Feedback on this methodology would be much appreciated.

This chart shows the relationship between the crazy volatility of last Spring, and the total beating the bot took during that period and contrasts it with the similarly insane volatility of this Fall and the much less intense losses suffered.


  • The late-summer 2012 increase in volatility coupled with a decrease in the month's open/close difference left rates flat and the bot a little short
  • The month after the 2012 loss saw an increase in rates and return
  • Last spring's insane volatility and changes in price over the course of the month left the bot extremely short and drove rates up significantly

This is still just a baby market, and as such we should expect to see its players learning the patterns. Capital requirements at the end of 2012 were low, as were measures of volatility, and the losses when they occured. Bondholders asked for higher rates following, likely appreciating the risk of backing a bot whose mechanics they have zero insight into.

Subject of the bots mechanics, the tail risk of huge price runups bit everyone in Spring 2013, leading to huge losses on the bots part, losses which were for the most part avoided during the runup from 200 to 1000 US in the late Fall/early Winter of 2013.

The market and the bot operator both seem to be learning and their patterns of behavior changing in response to changing market conditions. We're seeing extraordinarily high premiums on MPBOR while volatility measures and bondholder losses both decrease. Perhaps bondholders are developing an intuition about the market and are preparing for a reprise of next spring. Perhaps the suckers willing to accept 0.445% on their MPOE bonds have all been cleared out and their coins moved into stronger hands2. There are many explanations and picking one is left as an exercise to the individual with skin in the game.

Feedback Appreciated

I currently accept comments via email, and will append them as appropriate (indicate if you prefer to remain anonymous or not have your comments posted here). Email:



Asking a higher premium keeps one out of the line of fire, so to speak, or at least puts you in a favorable position to not take a loss during real shellackings. This doesn't help too much when the bot takes a loss in month A and then another in month B - the bondholders list hasn't had time to refill with greater fools in search of better return and so the cautious seeker of high premiums may still on occasion get burnt on the second month.


MPEx in specific and markets in general as a method of moving capital from the endowed but stupid and greedy to the smart and patient will be the subject of an ironic piece sometime in the future.

January 23, 2014

"Bitcoin 2.0", or, Misunderstanding the Role of Technical Innovation

Filed under: Uncategorized — @ 12:00 a.m.
"Bitcoin 2.0", or, Misunderstanding the Role of Technical Innovation

It's from Yahoo Voices:

Liquidity is a huge factor when it comes to the viability of a currency, so it will be interesting to see if the advanced features of Mastercoin allow it to overcome the liquidity advantage of Bitcoin.

Time and time again, you nerds fail to realize the true impact of technology on a situation. Actual cultural 'disruptions', as thou art fond of labeling them, come upon us once per generation of technical workers. The last was the Internet, and the next is computer as applied to money - aka Bitcoin.

Bitcoin has already won against the fiat regimes. No additional features are going to make another cryptocurrency even approach competition with Bitcoin - it has the market, it has the technical foundation, it has massive piles of capital deployed in the maintenance of the transaction processing network, and none of this will change.

Software people are always taking a good idea and polluting it with more features in hopes of driving user acquisitions or making the value-add more value-y. The world will continue to see these shitty 'decentralized platforms for trading stocks and shares in things', and those selfsame shitty platforms will continue to attract scams and bullshit artists by virtue of their lack of any credible gatekeepers.

The advanced features of Mastercoin and other cryptoderps are completely irrelevant. There is Bitcoin for the transfer of value, and for everything else there are titles to property respected by local jurisdictions.

They can't work for one simple reason: the title that one holds to a thing must be respected by the humans with big sticks on the ground near your actual physical object. Most countries have well-established title law and are going to be less than receptive to the notion that a particular satoshi represents some particular amount of gold as backed by some particular human.

More likely, they'll take the human to task for scamming you out of your money, rather than forcing them to cough up gold they in all likelihood never had on the books in the first place.

"Yahoo Voices is where your expertise and perspectives take center stage! Here you will find millions of articles, videos, and slideshows on every topic – published by Yahoo users, just like you."

Horrendous grammar. Unselectable copy. Much 90s. Welcome back, Yahoo.

User-generated content is rarely a good thing. It's a good thing when one harnesses users to generate data or scrape the web for one (see: Pinterest, Reddit) but the thinking man cannot expect sensible product from these venues.

Ah, I forgot. This is 'product', not writing. The goal is to accumulate eyeballs. Here's to getting out somewhere near the top of this particular internet bubble.

See: Apple, Microsoft, Oracle. Now, "Bitcoin programmers".

January 22, 2014

PDX Clojure Dojo: Jan 2014

Filed under: Uncategorized — @ 12:00 a.m.
PDX Clojure Dojo: Jan 2014

Dojo Overview

The Clojerks Clojure Dojo was a resounding success! We adopted Bruce Derling's 20ish easy steps for our Dojo.

We split into 4 groups and took various whacks at the following topics:

  • Pente
  • Tic-Tac-Toe
  • L-systems

Group Output

The folks knocked out a smashing Tic-Tac-Toe implementation, played from the REPL. You can check their code out here:

Another group was working on a Pente implementation, and Jake Brownson picked up their work and put a nicely reactive UI for the game. The code for which is available at , and can be run pretty dang simply:
git clone
cd pente-clj
lein run

I love Clojure :)

Chris Jones hosted another programming session in which I participated to some degree while orbiting around and taking photos. We were working on a tic-tac-toe implementation as well, but alas did not make it all the way to a functional implementation (although we were pretty close!). Benjamin van der Veen suggested that we simply enumerate the win conditions instead of computing them but I overrode him to my everlasting shame. Our code is available here:

The other group that produced code last Thursday evening took on the topic of L-systems, a family of fractal generators. They chose to represent the fractals as strings of characters, and you can review their work here:

Thoughts for Next Time

Nothing's perfect! Iterate on everything! Here are some notes on what could be different next time.

Arrive earlier

I stopped in at a bar with some business associates for a quick beer on the walk over to Puppet Labs. I arrived on time, but just barely - 5.50 PM. Next time, I'll be there at 5.30 handing out name tags and introducing myself to people. After all, one of my goals is to meet people!

More, different ideas on the board

The way in which we picked our topics lead to several divergent topics instead of the London Dojo's suggestion that everyone work on the same thing. It worked out well for us, with each group picking a topic it was interested in and hacking out a thing to suit each group's preferences.

I've come up with a whole list of things to put on the board at the next Dojo:

  • in-the-browser visualizations with clojurescript
  • todo-list web application
  • pathfinding and concomittant map generation for pathfinding
  • TDD
  • the Hickey Ants simulation

A nice thing about writing this blog in org-mode is that I can go back and update entries whenever I want, effectively updating my notes and my changes get published when I push the next entry.

Summa: everything is awesome.

Many thanks again to for hosting. Everyone had so much fun that it should really be a regular event.

January 21, 2014

Scramble Over Mountains - Do Not Shift Them

Filed under: Uncategorized — @ 12:00 a.m.
Scramble Over Mountains - Do Not Shift Them

A shameless repurposing of content from an earlier post's footnotes:

All nature is but art unknown to thee;

All chance, direction which thou canst not see;

All discord, harmony not understood;

All partial evil, universal good;

And spite of pride, in erring reason's spite,

One truth is clear,

Whatever is is right.

The darling babe and I had a conversation on the topic of changing the world today, wherein I advanced my position that changing the world is akin tunneling through an infinitely large mountain with a spoon, and living a life dedicated to the accumulation and exercise of power is akin to the scrambling over of the same mountain. In neither scenario will either player ever conquer the mountain but the climber will get much further and feel less defeated when rocked to sleep by high-altitude gusts each night.

This is in the context of a much longer set of conversations wherein I advocate we not try to change the world, but that we accept the world the way it is and find the most efficient ways in which to sink roots and grow strong.

Much of the noise in the liberal American internet revolves around making people feel good by talking about things they think are bad and raising the consciousness in a futile quest to change the world by talking. There are hugely diminishing returns to raising consciousness (even assuming the ideas you're promulgating aren't of the rankest communist origin). Pushing against the immovable object that is the real world simply burns the limited resources your mother endowed you with to no productive end.

« Newer PostsOlder Posts »