Bitcoin – Money Decentralization

With Bitcoin on the rise recently (currently priced at $900+), I thought I’d share the link to this article – Bitcoin – Money Decentralization – which provides some insight into how Bitcoin works and some core principles behind it.

The article is written more from the Computer Science perspective rather than an economic/financial one, some of the economic details might be oversimplified.

The two main aspects that make Bitcoin different from a modern monetary systems, like US Dollar or Euro, are the following:

  1. Decentralization: There is no central entity that prints (mints) money, but rather the money is being mint by the crowd. This makes Bitcoin a decentralized system.
  2. Anonymity: People who use Bitcoin hope that their identity would not be revealed, in contrast to the usual way we all buy commodity over the internet using our credit card, we have to supply our personal details to be verified against the bank who treats our account.

SC-IM – Spreadsheet Calculator Improvised

Here is an interesting project – SC-IM, or Spreadsheet Calculator Improvised, which is an ncurses spreadsheet program for terminal.  Here are some of the features:

  • UNDO / REDO.
  • 65.536 rows and 702 columns supported. (The number of rows can be expanded to 1.048.576 if wished).
  • CSV / TAB delimited file import and export.
  • XLS / XLSX file import.
  • Key-mappings.
  • Sort of rows.
  • Filter of rows.
  • Cell shifting.
  • 256 color support – screen colors can be customized by user, even at runtime.
  • Colorize cells or give them format such as bold or underline.
  • Wide character support. The following alphabets are supported: English, Spanish, French, Italian, German, Portuguese, Russian, Ukrainian, Greek, Turkish, Czech, Japanese, Chinese.
  • Implement external functions in the language you prefer and use them in SC-IM.
  • Use SC-IM as a non-interactive calculator, reading its input from a external script.
  • More movements commands implemented !
  • Input and Output was completely rewritten.

A combination of interactive and non-interactive interface seems to be particularly useful.

GPL defense issues

A friend sent me a link to this email from Linus Torvalds to the Kernel Summit Discussion mailing list.  The subject of the conversation is the General Public License (GPL) and whether or not it should be enforced in courts.  Read the whole thing – it’s quite interesting.  Here are a few snippets just to get you started:

Let’s be clear about this: lawsuits destroy. They don’t “protect”.

Lawsuits destroy community. They destroy trust. They would destroy all the goodwill we’ve built up over the years by being nice.

And then this:

Because lawsuits – and even threats of lawsuits – makes companies way less likely to see you as a good guy. Even when you’re threatening
somebody else, everybody else around the target starts getting really
really antsy.

I talked to an Oracle lawyer a few months ago, and told him their
lawsuit just makes Oracle look bad. The lawyer was dismissive, and
tried to explain how it’s silly how people take lawsuits personally,
and talked about how layers _understand_ that lawsuits aren’t
personal, and that they are still friends outside the court.

I’m sure a lawyer can “understand” how lawsuits aren’t actually
something personal at all, but lawyers really seem to be the *only*
people who “understand” that.

The fact is, lawsuits (and threats of lawsuits) do not make for
friends. You just look like a bully.

Signs that you’re a bad programmer

Software Engineering Tips shares some tips on how to figure out if you are a bad programmer, and how to remedy that.

Signs that you’re a bad programmer

  1. Inability to reason about code
  2. Poor understanding of the language’s programming model
  3. Deficient research skills / Chronically poor knowledge of the platform’s features
  4. Inability to comprehend pointers
  5. Difficulty seeing through recursion
  6. Distrust of code

If you are not a bad programmer, check if you are mediocre one.

Signs that you are a mediocre programmer

  1. Inability to think in sets
  2. Lack of critical thinking
  3. Pinball Programming
  4. Unfamiliar with the principles of security
  5. Code is a mess

And, finally, here are some signs that you shouldn’t be a programmer.

Signs that you shouldn’t be a programmer

  1. Inability to determine the order of program execution
  2. Insufficient ability to think abstractly
  3. Collyer Brothers syndrome
  4. Dysfunctional sense of causality
  5. Indifference to outcomes

The article also suggests some alternative career paths for you.

Why are browsers so slow?

As a user of Opera browser in the good ol’ days, I share Ilya Birman’s pain

But I am not talking about rendering and scripts. I am talking about everything else. Safari may take a second or two just to open a new blank tab on a 2014 iMac. And with ten or fifteen open tabs it eventually becomes sluggish as hell. Chrome is better, but not much so.

… and this too …

What would you do today if you opened a link and saw a long article which you don’t have time to read right now, but want to read later? You would save a link and close the tab. But when your browser is fast, you just don’t tend to close tabs which you haven’t dealt with. In Opera, I would let tabs stay open for months without having any impact on my machine’s performance.

Wait, but didn’t I restart my computer or the browser sometimes? Of course I did. Unfortunately, modern browsers are so stupid that they reload all the tabs when you restart them. Which takes ages if you have a hundred of tabs. Opera was sane: it did not reload a tab unless you asked for it. It just reopened everything from cache. Which took a couple of seconds.

In fact, maybe it’s a good time to try out Opera browser again.  After all, the two primary reasons I’ve switched from it were:

  • Open Source.  This was back in a day when I was a zealot.  (Yeah, if you think I’m one now, you should have seen me in my 20’s.)  Now  I am much more calm about the licensing.
  • Rendering issues.  That was back when Opera had its own rendering engine and couldn’t quite keep up with all the changes on the Web.  Since then, Opera has dumped its Presto rendering engine in favor of Webkit (the same engine that Google Chrome, Chromium and Safari browsers are using), and then dumped Webkit in favor of Blink, which is like … erm .. new Webkit (?) or something like that.

So maybe it’s good enough in rendering department and I can have my performance and tab management back.  As Ilya mentions, no other browser came close to the tab management of Opera back in a day.  I frequently have a 30+ tabs open, and its only because that’s as much as Chrome can handle on my laptop.

Update: Tried out the latest version of Opera now for about half an hour.  I suddenly remembered another reason for why I’ve switched – fonts.  Default fonts configuration is far from optimal.  For multilingual pages (English and Russian) is more than horrific.  Oh well, I guess, I’ll have to wait some more.