Should I invest in Bitcoin?

Recently there is an explosion in both Bitcoin price, and its adoption in the world & in Israel in particular.

A few have turned to me and asked what I think about the price, and whether they should invest.

A few disclaimers:

  1. I have recently joined Meni Rosenfeld as a partner in Bitcoil, the largest Israeli Bitcoin Exchange. So you could call me biased.
  2. Of course I hold some bitcoins, so I’m even more biased
  3. I am not an investment adviser … use your heads, do your homework, only invest what you can afford to lose

My answer would mostly be to:

  1. Refer them to the post I wrote about it two years ago, when it was 80 cents (It’s now $45).
  2. They have to make their own decisions.
  3. No, I won’t tell you how much I invested two years ago. And it does’t matter.
  4. What matters is how much I have riding on it now – personal past performance is irrelevant for investment decisions
  5. Personally I am invested in it, for the long term. I have a significant (>10%) of my total net worth in Bitcoins, and I won’t be selling most of them under $1000 a pop.
  6. That I personally believe we’ll reach $100 in 2013, and $1000+ in the next 3-5 years (but I don’t have a crystal ball).
  7. It’s a risky investment – it could all vanish instantly if “something bad happens” (e.g. government crackdown)
  8. Please don’t try to day-trade if that’s not your profession. If you want to buy, just buy and hold it long term.
  9. Mining is for hardware experts, not for everyone. If you’re not an expert, stay out, for your own good.

In the last two years that I’ve dealt with Bitcoin, I haven’t heard a single convincing argument why it would fail. I’ve seen countless positive examples of the kind of community that it creates, and I am convinced it will grow and dominate. IMHO, every person on earth should hold some percentage of his investment portfolio in Bitcoin … it can be 0.1%, 1%, 10% … whatever you’re comfortable with.

There will only be 21,000,000 Bitcoins in the world … ever. Grab yours while they’re cheap and only cost $45 a pop.

 

And please, remember - I am not an investment adviser. Do your own homework.

For those who shout Ponzi, please read the FAQ before posting.

My Master thesis is now locked!

I wrote my master thesis in computer science 4.5 years ago, and it was published by my universitry, the Technion. It was always very Googlable – just Google for “Ron Gross master thesis”.

Well, I happened to do this exact Google search today, and found the correct Technion webpage with my abstract, clicked on “Full Thesis Text” to download the PDF … and found that my thesis is now access-locked outside of the Technion network!

What the fuck?

I hate academic censorship. My thesis might or might not be relevant to someone out there (someone actually cited it a few years ago), but there is no reason to have it locked. I did find another technion page that provided full access, but who knows … that might be gone tomorrow as well.

Luckily, I have of course saved a full copy of my thesis in my trusty old gmail. So, for posterity, if you happen to be interested in “Invariance Under Stuttering in Branching-Time Temporal Logic“, go right ahead and download it. Free as beer, and free speach. No subscription required.

BTW, I’m a proponent of the Higher education bubble hypothesis.

Migrating from Producteev to Asana

I finally decided to move from Producteev to Asana. We’ve been using it at work, and I think it’s an excellent website so I’ll be using it for all my task management stuff from now on. I have the following projects (some with several workspaces):

  1. CommerceSciences - work stuff
  2. Personal projects – including one-off tasks & repeat tasks (like “Weekly task scrub”, “Check air/oil for my scooter”, “Shave”, and “Do my Taxes” – yeah, I’m pedantic this way).
  3. Draw3Cards
  4. Bitcoin

I’m collaborating on the above with different people. And all this goodness is free!

Thanks Ken Egozi for pointing out Asana to me, and Oren Ellenbogen for pushing for it at work.

Weekly Newsletter for the Lazy Manager

Oren Ellenbogen, my longtime friend, mentor & colleague has recently started a weekly newsletter with some link goodies.
The newsletter is aimed to bring you a good amount of value without flooding you with too much links.

I’ve personally been able to find a few interesting links every week.

Please check it out at http://softwareleadweekly.com/

How to setup a free MediaWiki on Heroku

I had to setup a wiki for some project, and thought of using Heroku for this purpose.

Heroku doesn’t cost anything for 1 dyno, and comes with a bundled 5MB database that might just suffice for this project’s need. To my surprise, I didn’t find any guide on how to do it … but the task didn’t prove to be difficult at all:

  1. Create a new git repository
  2. Populate it with the latest MediaWiki installation
  3. heroku create <app_name>
  4. git push heroku master
  5. Setup a CNAME record pointing wiki.yourproject.org to your-project.herokuapp.com
  6. git config | grep DATABASE
  7. Go to http://wiki.yourproject.org/, follow the wizard and configure your database
  8. This creates a LocalSettings.php file – download it but DO NOT COMMIT IT yet.
  9. Edit it, and replace all the local database settings with this:


## Database settings
$_wgDBConnectionString = getenv('DATABASE_URL');
if (preg_match('%(.*?)://([^:]+):([^@]+)@([^:]+):(\d+)/(.*)%', $_wgDBConnectionString, $regs, PREG_OFFSET_CAPTURE)) {
$wgDBtype = $regs[1][0];
$wgDBuser = $regs[2][0];
$wgDBpassword = $regs[3][0];
$wgDBserver = $regs[4][0];
$wgDBport = $regs[5][0];
$wgDBname = $regs[6][0];
} else {
die("Failed to parse DB connection string");
}

(Obviously, it’s important not to commit your user/pass to a public git repository. If you accidentally did, just remove all reference to it from source control, parse the connection string as above, and then reset your db password).

For your convenience/reference, here is the github repository, although I recommend to just follow the procedure above in order to get the latest MediaWiki and setup wizard.

A few Chrome debugging tricks

  1. If you’re not interested in web development, you can stop here.
  2. Go spend 10 minutes reading this post.

A few things I’ve learned:

  1. Open chrome dev tools, click the gear icon to the bottom right, and take a look at the options … I never bothered to do it, but it’s worth going over this.
  2. Going to try Dock To Right … I always feel there’s not enough room at the bottom of the screen, and it doesn’t have to be this way.
  3. Hitting Ctrl+Shift+F will search all js sources. I’ve wished for this features for a long time and didn’t know it existed!
  4. Ctrl+O will let you lookup a specific source file … much more convenient than browsing through the list of sources.

xkcd explain chrome extension

Love xkcd? Don’t always understand it?
Use chrome?

Then try this new extension I wrote (github).

Three types of git reverts

A brief summary of a (brief) talk I gave in the recent JJTV Tools Night:

In git, there are (at least) three types of reverts:

1. Casual Revert

You committed a bug, did a few commits on top on of that, and then found out the bug. To fix it, you simply

git revert <Bug's SHA1>

This creates a new commit with the reverse of the faulty commit. If needed (in case of changes in the same area), the new commit is merged with any conflicting changes.

After resolving any merge conflicts, you push out the new commit – problem solved.

2. “Secret Info” Revert

http://stackoverflow.com/questions/1270514/undoing-a-git-push

You accidentally committed & pushed something into the source repository that you never want anyone to see. This might be you cursing the boss, or, more likely, passwords to production servers that should never be in the source control (because it’s viewable by more people than you’re comfortable with).

The fix this time is rewriting history. In the simple case where your accidental commit is the last one, you simply

git reset --hard <SHA1 before the faulty commit>

Then, you’re in a special state – if you git pull, you’ll get the changes back from origin. The solution is to do

git push -f origin master:master

forcing your HEAD to overwrite origin’s master. Then, when people pull your changes, their own HEADs will be overwritten to the latest changes from master.

The case where the faulty commit is not the branch’s HEAD but rather stuck in the middle can be solved using git rebase, and is left as an exercise to the reader.

3. Merge Revert

When you try to apply git revert on a commit that happens to be a merge point, you’ll get an error – git doesn’t have a single changeset/diff that leads to this commit, but rather two or more changes.

When reverting a merge, you will have to use the -m switch and manually choose which parent is the “correct” one to keep, and which parents are discarded. Note that sometimes the easiest way to revert a faulty merge, especially if it hasn’t been pushed, is to simply git reset --hard to the correct point, and reattempt the merge. When using git revert to revert a merge commit, the merge will still have happened, and any future invocations of git merge will only bring newer changes into your branch, but will not reattempt the merge.