All posts by Markus

Bitcoin is not a currency

I often hear people claiming that Bitcoin will replace our current currencies. And with the rise in value these voices grow louder. But unfortunately it seems they don’t understand the basics of the financial system. 

Don’t get me wrong: blockchain is an interesting concept with lots of useful applications. It may even revolutionize different fields in our society. But Bitcoin will never be a mainstream currency. The average person will never buy its daily coffee with Bitcoin. And here is why: 

First: transaction fees. The rise in value has one huge downside for everyone not trading at an exchange (where you never actually do a Bitcoin transaction): the transaction fees are paid in Bitcoin and based on the needed amount of data, not the value. This means you pay approximately the same fee for a coffee as for buying a house, at the moment roughly 9$ per transaction…  That’s one expensive coffee. And if the number of transactions is rising (which it would a lot if everyone starts paying with Bitcoin) the fees will go up even further. 

Second: transaction time and amount. It’s part of the Bitcoin Technology to only create one new block approx every 10 min. This reduces the number of transactions per second to about 4. Visa says they have over 1000 transactions per second. And this doesn’t count all the cash transactions. Meaning Bitcoin is far away from being able to serve those needs. Additionally it takes minimum 30 min to have a transaction deep enough in the chain to consider it confirmed. And who is willing to wait 30 min at the cashier? Not gonna happen! 

So Bitcoin itself is definitely not fit for the job. But what about all the new services offering debit cards based on your Crypto-coins? Since those transactions (like the once on exchanges) never make it directly to the blockchain those constraints don’t apply. It’s basically like a normal credit-card and that means losing the major arguments for Bitcoin: the blockchain is decentralized and unregulated. Any company offering transactions based on Bitcoin (but not real Bitcoin transactions) is centralized and will get regulated over time. With the same reasons why there are regulations for banks and credit cards. If you use such a service you don’t need Bitcoin. It’s all back to any abstract value and the trust in the service that they convert it back to your currency at regular times. 

But even if you accept all that and Crypto-cards count as “using Bitcoin” there is still the Third point: Deflation. 

As we see it at the moment: Bitcoin is rising. If you have 5 Bitcoin and think about buying a car with it, you have to choose: buy a nice car now, or wait 6 months and buy a much nicer car (or maybe two). If you don’t need the car now, the choice is clear. That’s why economists fear deflation: it reduces spending and therefor slows down economy which leads to a downward spiral. That’s why federal banks print money to keep inflation at a “healthy” level. But the amount of Bitcoin is limited. So there is no way of preventing deflation. And that’s what makes Bitcoin an investment and not a currency. 

Paying your coffee with Bitcoin is like paying it with your stock-portfolio. You can, but the average person will never do that. 

Make sure to leave a comment and tell me what you think about Bitcoin as a currency. 

having 100% code coverage doesn’t solve all your problems, having less solves even less.

I recently came across a post about achieving 100% code coverage and how reassuring it is. But is it? 

What does 100% code coverage mean? Ignoring the different definition it basically says that all your code was executed ( covered ) during the tests. (the definition of “all your code” is a bit flexible here) But does that say anything about your code quality or about the quality of your tests? 

The answer is no. And it’s a big NO because having a full coverage doesn’t mean your code does what it should. Remove all the assertions from your tests and you still have 100% coverage, but with no quality assurance whatsoever. The only real advantage of 100% coverage is that you know there is no unexpected exception thrown (unless you did something real nasty like @expected(exception) in your tests, but then you had it coming). At least not when executed the way you did.  (yes 100% coverage doesn’t mean you covered all possible cases, just all code). 

On the other hand, having less than 100% means you missed some code and therefore definitly don’t know how it behaves in production. 

Long story short: 100% code coverage is a good thing to have, but it’s like being able to type fast: good to have but when it comes to quality coding you need much more than that. 

Fitting Plane to Point Cloud – Hands on

In my last post i described how to get the equations for fitting a plane to a given pointcloud. Now lets put them into some sample code. I will use the same notation as in the previous post.

When i first started with the optimization, i thought about distinguishing the different cases by Txx != 0. I already worked out the math for the case Txx == 0 etc. And then i started testing with real world data. Random points which are approximatly on a plane. The sad part is: Even with a pointcloud where Txx should be approximatly zero it wasnt close enough to make a valid decision. (And yes i know that comparing a float with 0 is not the way you do it) So sometimes the algorithm ended in the Txx != 0 case, setting c = 1 where c should actually be 0, but because of the unequally distributed values, it wasnt… Continue reading Fitting Plane to Point Cloud – Hands on

3D linear regression: Fitting planes on Pointclouds

Time for a math-post.

Linear regression, or fitting a line on a list of 2D points, is quite common with lots of code samples. But once you want to go further torwards more dimensions, there are no examples whatsoever… You find the wikipedia article about the theory, but eveything is in general terms. Its about calculating the invers of a matrix and lots of stuff that you dont want to do when thinking about performance. Continue reading 3D linear regression: Fitting planes on Pointclouds

ICP with SVD – Hands on

Hi everyone,

since you came across a post with a cryptic title like that, chances are high that you are already deep in the topic. But for the 1% who dont, here is a short background info:

3D-Scan Matching using Iterative Closest Points (ICP)

When you have a 3D-Scanner (like a Laserscanner, Kinect or whatever) and try to scan a room/object the first problem is how to combine to scan-frames to one pointcloud. Usually  the scanner moved between the frames still providing some overlapping to be matched. But how to do that? Continue reading ICP with SVD – Hands on

Integrating Unity into a Native iOS App – Example

After describing the Idea of adding Unity into a native App here, i got a lot of questions about some sample source code. So here it is 😉

For a minimum working sample of how to integrate Unity, you need a Unity project of course. Best way to start is from the iOS Export of the unity project. Personally i prefer to not change any of the Unity-generated files itself, but only integrate them, so i dont have to care about these changes everytime i do a new unity export.

After exporting from Unity you get a “normal” XCode project containing a “Classes” and a “Libraries” folder. You should be able to run it on a device, otherwise there is some problem with your Unity-project which need to be fixed before integrating it. Continue reading Integrating Unity into a Native iOS App – Example

Unity 5 with il2cpp into iOS

Integrating Unity as a Subview into a native iOS-App went from being a pain in the ass to being kinda smooth while Unity evolved from 3 to 4. But when you needed to pass data(and i mean more than serialized stuff via sendMessage) into the view the whole Mono-stuff was still… lets say inconvenient. But fear not, Unity 5 is here for the rescue!

Stepping from 4 to 5, Unity decided to drop Mono and use il2cpp instead. Since we went through a lot with mono and it was always in a state of “i hope this isnt blowing off” we surely took a look into the new and fancy stuff. Continue reading Unity 5 with il2cpp into iOS

Kritische Fragen passen nicht in eine Demokratie

Hier im schönen Österreich wird gerade wiedermal eine Sau durchs Dorf der Boulevardzeitungen getrieben die man an nur auf GrĂŒnde wie “Sommerloch” zurĂŒckfĂŒhren können sollte. Aber wĂ€hrend der Fußball WM, mit Spielen wie dem 5:1 der Niederlande gegen Weltmeister Spanien, könnte man meinen das es genug Material fĂŒr die Titelseiten gibt. Aber die Sonntagsausgabe sieht so aus:

Kritische Fragen im Interview

Auslöser des Ganzen war das Interview mit Finanzminister Spindelegger zum Hypo-Gesetz (alternativ auf Youtube: https://www.youtube.com/watch?v=t_v7v2tWLgg) in dem Armin Wolf unseren Finanzminister darauf aufmerksam macht dass seine Aussage zu mĂŒndelsicheren Wertpapieren faktisch nicht richtig ist. In typischer Politikermanier redet Spindelegger einfach weiter und beginnt sich massiv zu beschweren dass er unterbrochen wird.

Dass Armin Wolf Recht hatte bestĂ€tigen am nĂ€chsten Tag mehrere Experten im Faktencheck (ebenfalls auch auf Youtube: https://www.youtube.com/watch?v=8sBTocWpWFI ). Doch der Boulevard diskutiert sofort die mögliche Absetzung Wolfs um solch einen “Eklat” in Zukunft zu verhindern . Passen kritische Fragen und die Wahrheit nicht in eine Demokratie?

Manche Wahrheiten will niemand hören

Mit der Wahrheit ist es so eine Sache. Vor allem im konkreten Thema des Hypodebakels. Wie es im Kern entstanden ist darĂŒber ist man sich einig: Der damalige KĂ€rnter Landeshauptmann hat mit Landeshaftungen fĂŒr Hypoanleihen nur so um sich geworfen, eben auch mit Haftungen fĂŒr nachrangige Anleihen, was es in der Form noch nie gegeben hat. Dann kam die Finanzkrise und das Problem wurde schlagend.

Wie die Wahrheit (und somit auch die Schuldfrage) weitergeht ist nicht ganz so eindeutig. Wie es aussieht ist Österreich damals auf einen Bluff der Bayern (damaliger MiteigentĂŒmer der Hypo) hereingefallen und lies sich die gesamte Hypo mit allen Haftungen andrehen. Im Endeffekt spielt es aber keine Rolle warum wir in der aktuellen Situation sind, das Problem liegt am Tisch und muss gelöst werden.

Der Druck auf die Regierung ist groß. Ihre Parteien waren damals involviert also erwartet sich der Steuerzahler eine Lösung ohne Zusatzbelastungen. Auch im Wahlkampf wurde immer propagiert die Steuerzahler zu entlasten etc. Doch wie es scheint ist das bei der aktuellen Sachlage rechtlich nicht mehr möglich. Die Wahrheit ist eine Lösung die den Steuerzahler entlastet bei der aktuellen Gesetzeslage nicht möglich. Damit der Steuerzahler nicht voll zum Handkuss kommt, mĂŒssen somit Schritte gesetzt werden die es vorher noch nie gab und mĂŒssen neue Gesetze geschaffen werden die diese Schritte rechtlich ermöglichen.

Wir wĂ€hlen Politiker damit sie uns belĂŒgen

Die Wahrheit ist: Wir Steuerzahler wollen eine solche Lösung, aber wir wollen die schmutzigen Details dazu nicht wissen. Unsere (Schein-)Moral verbietet uns eine rechtlich fragwĂŒrdige Lösung gut zu heißen, aber fĂŒr die “saubere” Lösung wĂŒrden wir die Politiker verdammen. Was bleibt den Politikern also ĂŒbrig außer die Entscheidungen zu treffen und die schmutzigen Details unter den Teppich zu kehren?

Wir wĂ€hlen Politiker, die die richtigen Entscheidungen treffen aber uns vor den unbequemen Wahrheiten schĂŒtzen. In diesem Sinne dĂŒrfen wir auch keine zu kritischen Fragen stellen deren Antwort wir eigentlich nicht wissen möchten. Sonst mĂŒssten wir uns auch fragen wieso der kritische Interviewer auf der Titelseite steht und nicht die “Wahrheit” die er berechtigter Weise hinterfragt hat.

Geld sparen macht arm

Geld entstand ursprĂŒnglich aus dem Bedarf heraus beliebige Waren und Dienstleistungen miteinander zu vergleichen. Mit der Zeit wurde aus dem realen Geldwert ein rein abstrakter Wertbegriff. Mit der Geburt der Habenszinsen entstand auch der Wunsch Geld von selbst zu vermehren und gleichzeitig der Anreiz es auf der Bank zu horten.

Doch der Wirtschaftskreislauf besteht aus einem stÀndigen Tauschen von Geld in Waren/Dienstleistungen und retour. Man nimmt an der einen Stelle Geld aus dem Kreislauf um es an einem anderen Punkt wieder in den Kreislauf zu geben. Ist nun nicht genug Geld im Kreislauf vorhanden, so kommt das System ins Stocken.  Am Ende sind immer noch alle Waren da die die Gesellschaft braucht, aber keiner kann sie nutzen da nicht genug Geld in Umlauf ist um sie zu verteilen.

Sparen entzieht der Gesellschaft Geld

Doch wie verschwindet Geld nun aus dem Kreislauf? Wenn wir es von seinem wahren Zweck entfernen und versuchen zu horten. Lassen wir Geld auf der Bank liegen damit es sich dort vermehrt, so ist es fĂŒr den Kreislauf unerreichbar.  Je mehr Geld wir auf unserem Konto anhĂ€ufen, desto mehr entziehen wir dem Kreislauf, desto mehr stockt das System und desto weniger Geld haben wir tĂ€glich zur VerfĂŒgung.

Dies ist jetzt aber keine Verurteilung von Reichtum. Reichtum stört das System in keinster Weise. Verwende ich mein Geld zum Beispiel um ein Haus zu kaufen, so leite ich es zurĂŒck in den Kreislauf. Und hat ein “MillionĂ€r” nun 50 HĂ€user, 20 Yachten und 10 Inseln, so ist er zwar sehr reich, hat damit aber kein Geld aus dem Kreislauf gehalten.

Wenn wir unsere Wirtschaft und damit auch unseren eigenen Lebensstil verbessern wollen dĂŒrfen wir also nicht danach trachten soviel wie möglich am Konto zu horten. Sondern Geld in Umlauf halten. Nicht mehr ausgeben als man erhĂ€lt, aber es auch nicht unbegrenzt horten. Denn damit bleibt es in Umlauf und lĂ€uft somit auch in grĂ¶ĂŸerer Menge wieder zu uns zurĂŒck.

Beispiele sagen mehr als Worte

SparenMachtArm1Betrachten wir einen sehr kleinen Wirtschaftsraum mit einem Winzer, einem BĂ€cker und einem Wirt. Jeder von ihnen startet mit 40€. Jeden Morgen kauft der Winzer beim BĂ€cker Brot fĂŒr den Tag fĂŒr 20 €, mittags kauft der Wirt beim Winzer Wein fĂŒr 20 € und abends geht der BĂ€cker ins Wirtshaus und isst und trinkt fĂŒr 20 €. Die 20 € fließen also schön im Kreis und jeder ist glĂŒcklich.

 

SparenMachtArm2Nehmen wir an der BĂ€cker entscheidet sich eines Tages nur mehr fĂŒr 10 € Essen zu gehen und die gesparten 10 € unter das Kopfkissen zu legen. Am Ende des Tages hat der Wirt einen Umsatzeinbruch von 50% und nur noch 30 € zur VerfĂŒgung.

SparenMachtArm3Beim Winzer lĂ€uft noch alles wie gewohnt und am nĂ€chsten Morgen kauft er wieder Brot fĂŒr 20 €. Doch mittags kauft der Wirt aufgrund der gesunkenen Nachfrage nur noch Wein fĂŒr 10 €. Der BĂ€cker geht wieder fĂŒr 10€ essen und legt die gesparten 10 € unter das Kissen.

SparenMachtArm4Nun muss auch der Winzer den GĂŒrtel enger schnallen und kauft nur noch fĂŒr 10 € Brot ein, der Wirt kauft aufgrund der konstant niedrigen Nachfrage weiterhin Wein fĂŒr 10 € und nun merkt auch der BĂ€cker die “schlechte Wirtschaftslage” im tĂ€glichen Umsatz wodurch er nichts mehr zur Seite legen kann aber weiterhin nur fĂŒr 10 € essen gehen kann. Ihm ist hier natĂŒrlich nicht klar das er selbst Schuld an seinem UmsatzrĂŒckgang hat sondern macht die achso komplizierte Wirtschaftslage dafĂŒr verantwortlich.

In Summe fĂŒhlt er sich auch noch bestĂ€tigt das er zuvor Geld auf die Seite gelegt hat fĂŒr schlechte Zeiten. Denn im Gegensatz zum Winzer und zum Wirt die genauso ĂŒber die schlechte Situtation klagen, hat er einen gut gefĂŒllten Polster. Durch das Sparen des BĂ€ckers ist im gesamten Kreislauf das Budget fĂŒr die tĂ€glichen Ausgaben um 50% gesunken. Die Menschen fĂŒhlen sich arm weil sie weniger Geld zum Leben haben.

Aber es hat sich an der Produktionsleistung nichts geĂ€ndert, alle könnten weiterhin fĂŒr 20 € produzieren, es fehlt nur das Geld im Kreislauf damit die Waren auch getauscht werden können. Nimmt sich jetzt der Winzer auch noch ein Beispiel am BĂ€cker und reduziert seine tĂ€glichen Ausgaben fĂŒr 3 Tage um Geld auf die Seite zu legen, so kommt der Kreislauf womöglich ganz zum erliegen.

SparenMachtArmbestEntscheiden sich dagegen alle tĂ€glich etwas mehr von ihrem Kapital in Umlauf zu bringen so fließt es am Ende des Tages auch wieder zu Ihnen zurĂŒck. Im besten Fall sind am Schluss die gesamten 40 € in Umlauf und das tĂ€gliche Budget hat sich verdoppelt. Absolut gesehen ist nicht mehr Geld vorhanden, an jedem Abend hat auch noch jeder gleich viel wie zuvor, aber durch den höheren Durchfluß kann sich jeder “mehr leisten”, die Produktion steigt, die Wirtschaft floriert und die Menschen fĂŒhlen sich reich.

Das Geld muss unter die Leute

Es fließen immer genau soviele Waren durch den Kreislauf, wie Geld im Umlauf ist. Kommt der Geldfluß ins Stocken, so stockt auch der Warenkreislauf.

Folgen wir also dem alten Sprichwort und bringen wir das Geld unter die Leute. Denn in einem aktiven Wirtschaftskreislauf fließt das Geld auch wieder stĂ€rker zu uns zurĂŒck.