Category Archives: Tech

Tech

Qwest values my privacy and security, or not.

I recently signed up for DSL from Qwest, because Comcast keeps dropping the ball, and I just got an email from them stating

Qwest values the privacy of customer account information. Your security code, user name and password help ensure that you are the only one who can access your account information. Please protect this information from unauthorized users and do not share it with anyone.

In that same unencrypted email, they included my security code, user name, and password. Nice work Qwest. Glad to know how much you value my privacy and security.

The relationship between bitcoin price and difficulty

This is a guest post by nanotube of bitcoin-otc, the leading over-the-counter bitcoin exchange. –Brock

One sees a lot of discussion about the relationship between bitcoin price and difficulty. It is often remarked on IRC and forums, when a difficulty jump is expected, that there’s an expected concomitant jump in the price forthcoming. In this post, we’ll dispel some frequently-heard misconceptions.

There is a long-run feedback cycle between difficulty and price. If price goes up, that makes mining more lucrative, and people buy new hardware to capitalize on that. As hashing power increases as a result, however, there’s actually a temporary increase in the daily bitcoin production, thereby causing an increase in the supply. This occurs because difficulty only adjusts every 2016 blocks, so as mining power increases it takes difficulty some time to catch up – and in the meantime, blocks are produced more frequently than once per 10 minutes target rate. Thus, unless new interest in bitcoin materializes in the form of more buyers, it is in fact not unreasonable to expect a bit of a price decline, due to the increasing supply. In the longer term, higher difficulty increases the security of the network, causing more confidence and an increase in demand, thereby causing increase in price, and we see the cycle begin anew. The primary effect, however, is the high price drawing new miners in, rather than new mining capacity drawing the buyers in.

This is more clearly seen when we look at what must happen in order for difficulty to decrease. If price declines far enough to make marginal mining unprofitable, we may see a decrease in mining power as marginally-profitable miners exit. The decrease in mining power may cause the marginal investor to lose confidence in the security of the bitcoin network and sell, thereby causing further mining power decrease, etc., in a similar cycle as above, but going the other way. Note, however, that until price declines to the point of making mining unprofitable for a segment of marginally-profitable miners, mining power will not exit the the network, since a rational miner will keep mining as long as the revenue exceeds the costs. Here we can clearly see that the first-order effect is the change in the price, rather than a change in mining power, and that the feedback from mining power to price is secondary.

Another side point bears discussion, and that is the idea that events the occurrence of which is known in advance, will be reflected in the price of the affected goods, due to investors/speculators trading activity in anticipation thereof. Specifically, consider the folly of people who expect immediate price increases with a difficulty change upwards. The fact that the difficulty will change, and a fairly accurate estimate of future difficulty, is available for all to see, days in advance. Thus, anyone who thinks that this should affect the price, would have already made his bets on that happening, by buying some bitcoins on the market, thus causing the price to increase. By the time the actual change in difficulty occurs, everyone who was going to make that bet has made it already, and thus there’s not going to be any new demand on that very day due to that change.

I hope this gives the reader a better idea of the price-difficulty relationship in the bitcoin system.

Why Bitcoin is Smart, and Not a Scam

In the last week or so there has been a deluge of media attention, Twitter comments, and blog posts about Bitcoin. Unfortunately many people are jumping to the conclusion that bitcoin is a scam, ponzi scheme, etc.

Let me start with some disclaimers: The point of this blog post is not to convince you to use bitcoin, but to clarify the difference between a risky start-up currency and a scam/ponzi scheme/pyramid scheme. I own a bunch of bitcoins, I mine for bitcoins, and if something causes the value of bitcoins to drop to zero (from government crackdown to defects in the system), you could lose any money you’ve invested in bitcoins.

That does not make them a scam.

ADDENDUM #4 Let’s define these words, shall we? I googled them:

scam: A dishonest scheme; a fraud

ponzi scheme: A form of fraud in which belief in the success of a nonexistent enterprise is fostered by the payment of quick returns to the first investors from money invested by later investors

pyramid scheme: A form of investment (illegal in the US and elsewhere) in which each paying participant recruits two further participants, with returns being given to early participants using money contributed by later ones

Addressing each briefly: Bitcoin is a scam – Everything about bitcoin is out in the open, unless someone is telling you it will give you a guaranteed return on investment. Bruce Wagner doesn’t count, he just gets excited. Bitcoin is a p2p ponzi scheme – The bitcoin enterprise is existent, and there’s no payout guaranteed by the system, fed by later investors’ money. It’s a commodity and the value may fluctuate, and who knows whether you or someone else will make gains. Bitcoin is a pyramid scheme – Basically the same as a ponzi scheme, except there’s not even any pretension of a real enterprise (like Madoff’s fake investment fund). Again, bitcoin doesn’t require you to go recruit people and get paid a cut of what they invest in return. Bitcoin is a real thing and that’s easy to verify.

See, bitcoin are designed to be a peer-to-peer digital currency, currently functioning as an easily-transferable commodity. The bitcoin system has a few key characteristics:

  • There is a fixed and gradually decreasing rate of monetary inflation (money creation)
  • It is very difficult (and rapidly getting more difficult) to make fraudulent bitcoin payments
  • It is cheap and very easy to send bitcoins anywhere in the world, in seconds
  • If used properly, the system can be anonymous, allowing financial freedom analogous to freedom of speech. An example of where this is useful would be the financial choke-off of Wikileaks.

The system is secured by people doing a certain kind of work with their computers. This work has been called a complete waste of electricity, but it’s not. It secures the network from fraud. (Think for example on how much money and energy is spent securing banks. Is bitcoin’s energy use larger?) As an incentive, the people doing this work (mining) are paid some bitcoins. However, the rate of total payouts is maintained approximately constant by the network, so the more people mine, the more difficult mining becomes. This system of rewards and difficulty is the first example I’ll give of the clever incentives built into bitcoin.

Let me explain.

I heard about bitcoin, investigated it, saw that it had potential. I bought some and set up some hardware to mine for bitcoins. As difficulty went up, along with the value of bitcoins, I realized it was worth my while to keep investing in mining hardware, electricity to power it, etc, so I did, as did others. This made the network more secure, and drove difficulty up again. People became more confident in the system, and more people heard about it, driving up prices. This caused people to bring more mining hardware online, security and difficulty of mining increased, etc. This continues to happen at an exponential rate. At one time there was a risk that someone with a botnet could easily overtake the network. That risk is now minimal and getting (exponentially) smaller every day, especially as bitcoin miners are eagerly buying up the world’s supply of the most efficient mining hardware.

This mining work is essential to the security and functionality of bitcoin. The people putting in the effort to mine are being paid by the network, yes, and this has been criticized as a scheme to make early adopters rich. However, if bitcoin never catches on for anything, the early adopters will be out all of this time, effort, and some of the money they spent on mining hardware. They are taking a risk based on their understanding of the technology and their ability to harness it for return on investment. If this risk pays off they will make a profit. This is the essence of entrepreneurship.

We are seeing a lot of ‘sour-grapes’ griping from people who dismissed bitcoin early on, didn’t buy in, and missed some early appreciation of the currency. You hear similar things from people who failed to buy a stock that subsequently skyrocketed.

There’s a second component to the idea that bitcoins (which have a fixed supply) will become more valuable as more people want them. More people will only want them if bitcoin is useful, and has a community around it, especially a community of merchants willing to sell goods and service for bitcoin. By giving the early adopters bitcoins when they are not yet very valuable, they are given an incentive to build a community and a market around bitcoins. There is no company behind bitcoins. There’s no marketing budget. There are no representatives to go give sales pitches to merchants. There is only the community of bitcoin users. Therefore, for bitcoins to get off the ground, it’s actually very important that the early adopters have a strong incentive to evangelize bitcoin. And really, there’s nothing wrong with them (us, I guess) doing so. We bought in, spent time analyzing, discussing, and running the bitcoin network early on. We think bitcoin is a worthwhile project. We recognize that if we don’t evangelize bitcoin, it’ll fall by the wayside. The value of our bitcoins will be reduced. Most importantly, a technology that we find inspiring, interesting, and useful may become a simple endnote in the history of the Internet. So when you hear bitcoin users extolling the virtues of the project, you can bet your ass it’s because we want the value to grow. Why wouldn’t we? But it’s not so we can cash all of our bitcoins out and leave you holding the bag. It’s so the whole community can benefit as bitcoin grows, and you (the new user) along with it.

One hears complaints about speculators affecting market prices. It’s true that some speculators bought when prices were low, and will sell when prices are high, taking their money and leaving. The speculators are not doing anything bad, however – speculation is something that occurs whenever you have a free market. Speculators provide a useful function in helping to set appropriate prices, by incorporating future expectations about the value of an asset. (We’ll leave further discussion of the utility of speculation, if needed, to a future post.) In the minds of many, the price is not high at all, compared to what it will be if bitcoin succeeds in gaining traction. This is what speculators are betting on, and pricing into the market.

The incentives are working. Bitcoin users are collecting on the forums to set up bounties for useful things (like Android apps — I paid 1000 BTC for something that met my requirements). Bitcoin users invest time and effort in developing tools for other users of the network (see bitcoincharts, bitcoin monitor, bitcoin block explorer). We hang out in #bitcoin-dev and #bitcoin-otc on freenode IRC and explain to newbies how to get miners up and running, how to back up their bitcoin wallets, and answer their questions on the (admittedly) complex system that makes bitcoin work. We help out merchants with information on how to set up for accepting bitcoins for their products and services, write documentation on various aspects of bitcoin, and release open source code to make bitcoin integration easier.

That’s one other thing I want to say. Bitcoin is complicated. Taken alone, any one of its parts (fixed rate of inflation, ease of money transfer, potential for anonymity, proof-of-work and blockchain for peer-to-peer accounting, public key cryptography, SHA256 hashing to hit a target numeric threshold, etc) is not that novel or compelling. What makes bitcoin so cool is the combination of all of these parts into one system. It’s much easier to glance over bitcoin, say, “Oh, it’s just like (dead e-money project X), it’ll just flop”, and post, “bitcoin is a scam, LOL, maybe I can exchange my Flooz for them”, on Twitter than it is to write a long explanatory blog post like this one. Twitter and Facebook have trained us into a “too long; didn’t read” (tl;dr) mentality that doesn’t allow for nuanced dialog.

Finally, a comment on criticizing something before bothering to understand it. There are a lot of paranoid crypto geeks using Bitcoin. They have argued to death the security of the system on the bitcoin forums. Satoshi, the original developer of bitcoin, engaged in some discussion of the system on the cryptome mailing list (i.e. with the Secret Admirers for fellow Cryptonomicon fans) before releasing it to the public. Before you shoot your mouth off about how, “that’s dumb, anyone can just make more and make themselves rich!”, please do bother to check the forums and read the intelligent discussion that has almost certainly already covered your clever criticism.

Now, if you have any insightful or clarification questions, I’ll be happy to try to answer them here.

ADDENDUM #1 Many people have said something like, “There have been many other digital cash schemes, including those based on strong crypto, and they all failed. What makes bitcoin any different?”

The most important difference given the angle of this question is the lack of a central issuer. Bitcoin is an open source project. The code is out there. The network is peer-to-peer. Some of the peering mechanisms (IRC, hardcoded list of known good IPs) need some work, but there is NO CENTRAL AUTHORITY. There is no company to go under, no server farm to be raided, nobody to abscond with the gold from the vault. Bitcoins are “out there” in the network. What happened to Beenz, Flooz, and the others? They shut down, and poof went their currencies. The same would be true of WoW gold, Second Life Lindens, Liberty Dollars, and *gasp* Paypal US Dollars (read this, note especially “FDIC pass-through deposit insurance protects you only against the failure of the bank at which PayPal places your funds, and does NOT protect you against PayPal’s insolvency.”), just to start. Even if every bitcoin client on the planet shut down, until the last copy of the block chain is gone, bitcoins are there.

ADDENDUM #2 Please see also this newbie-friendly thread on the bitcoin forums discussing why bitcoin is not a scam, pyramid scheme, ponzi scheme, etc.

ADDENDUM #3 There was a comment about this being a ‘pump and pump’ vs a ‘pump and dump’ scheme from someone using a real economist’s name via Tor (nice one). Apparently this is an attempt to still make bitcoin sound like a get-rich-quick scheme, but to me ‘pump and pump’ sounds like ‘successfully bootstrap an economy’. There are basically two major scenarios for the future of bitcoin, in my mind. Either it succeeds, or it fails. (It could also limp along, but I’ll leave that out for now.) If it succeeds, anyone buying in will see an appreciation in the value of their bitcoins, long term, until the market eventually reaches some sort of equilibrium and level off. This is what I would like to see happen — everyone is a winner. If it fails, then most of the people with money in bitcoins will see the value of their holdings plummet, including me. This sucks but it still doesn’t make bitcoin a scam. The whole system is out in the open, invest only with your eyes open to the possibilities, positive and negative. Bitcoin investment and use at this stage is not for everyone. We’re just barely into the early adopter stage. Please, however, don’t call it a scam. Nobody is trying to defraud you.

ADDENDUM #5 Per a commenter below, I feel the need to address this because I’m hearing it over and over. People say, “Bitcoin makes early adopters wealthier, so even though it’s interesting and maybe useful, I’ll stay away, because I don’t want to help make them wealthier.” This is shortsighted. It’s like saying you’re not going to buy a stock that you think has a lot of potential because it would make earlier purchasers of the stock wealthier. It’s cutting off your nose to spite your face. Don’t think bitcoin is useful? Don’t use it. But I think it’s silly to avoid it because you think it’s a scam (as discussed here) or to spite earlier users.

Many thanks to nanotube of #bitcoin-otc fame for edits/additions to this post.

If you found this post helpful, please consider a bitcoin donation to the signed address below:


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

My address for Bitcoin donations: 1KgsHogAVAb2a9chnBFoSD8d2ExJa1PCp2
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iD8DBQFN2XigzB3bHuyIpxcRAlwNAJ0f56WeMOhFSzQ4uokBIT6k05Nf/gCgg9kh
KsARPcy9BpBGAWK7WMObtWY=
=jKDo
-----END PGP SIGNATURE-----

is.gd link: Bitcoin is not a scam

Too Much Power

image

image

What happens when you draw too much power through your PCI-e sockets.

If you want to repair it (or pre-emptively upgrade the sockets to handle higher current) you’ll need some or all of these parts (#s given) from Digikey: 2x WM3280CT-ND, WM9918-ND, WM3711-ND (only if you burnt the socket for that last one).

Converting HRS’ OASIS Schedule Output to Google Calendar

The Heart Rhythm Society uses a system called OASIS for online schedule planning. I wanted to put the output into google calendar, but they only output it in formats that were not compatible with Google Calendar. However, one of those formats is CSV, and it’s not too hard to process with perl, so I made a little converter.

Caveats: It was designed to work with this year’s OASIS, it discards some data, it may be full of bugs, etc. It was hacked out in less than an hour until it did its job sufficiently well, then left as it was.

That said, it worked great for me. Also, it puts all posters from a given session in the event description of a single session item. Here it is:


#!/usr/bin/env perl

use strict;

unless (@ARGV == 1){
print "Usage: convert_itinerary.pl <input filename>";
}

open(INPUT, "<$ARGV[0]") || die "Failed to read file $ARGV[0]: $!\n";
chomp(my @input = <INPUT>);
close(INPUT);

my $line = 0;

shift(@input);

print "\"Subject\",\"Start Date\",\"Start time\",\"End Date\",\"End Time\",\"Description\",\"Location\"\n";

my %psessions = {};

foreach my $line (@input){
my @tmp = split(/,/, $line);

my $subject = '';
my $description = '';
my $location = '';

for(my $i=0; $i<=12; $i++){
$tmp[$i] =~ s/"//g;
$tmp[$i] =~ s/^\s+//g;
$tmp[$i] =~ s/\s+$//g;
}

# Use session time if no presentation time given
if($tmp[5] == ''){
$tmp[5] = $tmp[3];
$tmp[6] = $tmp[4];
}

# Split times and dates
$tmp[5] =~ /([0-9]+\/[0-9]+\/[0-9]+)\s+([0-9]+:[0-9]+\s+[AP]M)/;
my $stime = $2;
my $sdate = $1;

$tmp[6] =~ /([0-9]+\/[0-9]+\/[0-9]+)\s+([0-9]+:[0-9]+\s+[AP]M)/;
my $etime = $2;
my $edate = $1;

# Posters
if ($tmp[11] =~ /^Poster Session$/){
my $pskey = "$tmp[7]";
if(!defined($psessions{$pskey})){
print STDERR "Found poster session $pskey\n";
$psessions{$pskey} = {};
$psessions{$pskey}{'subject'} = $tmp[8];
$psessions{$pskey}{'stime'} = $stime;
$psessions{$pskey}{'sdate'} = $sdate;
$psessions{$pskey}{'etime'} = $etime;
$psessions{$pskey}{'edate'} = $edate;
$psessions{$pskey}{'location'} = $tmp[9];
}
if(!defined($psessions{$pskey}{'description'})){
$psessions{$pskey}{'description'} = '';
}
$psessions{$pskey}{'description'} .= "$tmp[0] - $tmp[12] by $tmp[1] $tmp[2]\r";
}else{
$subject = "$tmp[7] - $tmp[8] - $tmp[12]";
$description = "by $tmp[1] $tmp[2]";
$location = "$tmp[9]";
print "\"$subject\",\"$sdate\",\"$stime\",\"$edate\",\"$etime\",\"$description\",\"$location\"\n";
}
}

# print poster sessions
my @subkeys = qw(subject sdate stime edate etime description);

foreach my $key ( keys %psessions ){
my $sep = '","';
print '"';
foreach my $subkey (@subkeys){
print $psessions{$key}{$subkey}.$sep;
}
print $psessions{$key}{'location'}.'"'."\n";
}