Jekyll2018-01-22T10:14:58+00:00http://gjermundbjaanes.com/Gjermund BjaanesA blog about Innovation and TechnologyGjermund BjaanesUnderstanding Ethereum Smart Contracts2017-11-27T06:00:00+00:002017-11-27T06:00:00+00:00http://gjermundbjaanes.com/understanding-ethereum-smart-contracts<p>You might have heard the term “smart contract,” and you might even know that they are “code” you can run on a blockchain.</p>
<p>But how can you run <em>code</em> on a blockchain? It’s not the easiest concept to wrap your head around.</p>
<p>This post explains how smart contracts work on the Ethereum Blockchain.</p>
<p>Basic understanding of programming will help as this post contains some code - although the examples a simple.</p>
<!--more-->
<p> </p>
<p><em>Some technical details in this post are slightly simplified for the sake of clarity, but the concepts are valid.</em></p>
<p> </p>
<h1 id="blockchain---quick--dirty">Blockchain - Quick & Dirty</h1>
<p>Without going into too much detail, the central concept of Blockchain technology is a distributed ledger.
It’s a particular type of database that is shared among many participants.</p>
<p>This special database is just a list of transactions. Every transaction that has ever happened in the network.
Everybody can have their own copy. This distribution coupled with strong monetary incentives removes the need for trust between parties.</p>
<p>Traditionally, trust between parties has been solved using middlemen, third parties. Paypal. Your bank.
A transaction with someone you don’t trust would go through an intermediary both parties trust.</p>
<p>With blockchain, this need is eliminated because you can instead put your trust in a network where the want to cheat is removed by strong incentives (in short: it’s much more profitable to stay within the rules).</p>
<p><a href="/img/posts/distributed_ledger.png"><img src="/img/posts/distributed_ledger.png" alt="Distributed Ledger" /></a></p>
<p>To become a bit more concrete: A blockchain network is a bunch of machines which all have the same copy of the list of transactions (e.g., money sent from person A to person B).</p>
<p>Since everybody has the same list, it is hard to fool the network into accepting false transactions.
Combine this with some cryptographic algorithms and monetary incentives to follow the rules, and you get a pretty secure network.</p>
<p>All of this also makes blockchains pretty much immutable. The only way to change the history is for most of the network to agree to do it.</p>
<p>If you want a bit more in-depth introduction to blockchain (which is more accurate too) you can take a look at this post:
<a href="/the-blockchain-innovation-part-1-what-is-blockchain/" target="_blank">The Blockchain Innovation Part 1: What is Blockchain</a></p>
<p> </p>
<h1 id="what-is-a-smart-contract">What is a smart contract?</h1>
<p>The main thing that makes Ethereum different than Bitcoin is that Ethereum has the concept of smart contracts.
Bitcoin is digital money; store of value. Ethereum is also digital money, but so much more.</p>
<p>The name “Smart Contract” is a bit misleading. They are not really contracts, and they are not particularly smart either.
They are just pieces of code - or computer logic - that can run on the blockchain…</p>
<p>The first thing I will introduce about smart contracts is that they are a special kind of account on the Ethereum Network.
You have user accounts, and you have smart contract accounts.</p>
<p>A user account is just</p>
<ul>
<li>An address (sort of like your bank account number - this also exists on Bitcoin)</li>
<li>A balance (how much money do I have)</li>
</ul>
<p>A smart contract account has:</p>
<ul>
<li>An address</li>
<li>A balance (of Ether)</li>
<li>A state</li>
<li>Code</li>
</ul>
<p><strong>The address</strong> is the same thing as any regular account. It’s just the unique identifier for the account.</p>
<p><strong>The balance</strong> is also the same thing as any regular account. The only exciting thing is that a balance on a smart contract means that code can own money. It can handle money. And it can mishandle it if incorrectly coded.</p>
<p><strong>The state</strong> of a smart contract account is the current state of all fields and variables declared in the smart contract. It works the same way as field variables in a class in most programming languages. In fact, an instantiated object from a class is probably the easiest way to think about smart contracts. The only difference is that the object lives forever (unless programmed to self-destruct).</p>
<p><strong>The code</strong> of the smart contract is compiled byte-code that Ethereum clients and nodes can run. It is the code that is executed on the creation of the smart contract, and it contains functions that you can call. Just like any object in an object-oriented programming language.</p>
<p><em>Side note:</em> Fun thing about smart contracts: they can call other smart contracts. This opens up the ability to create autonomous agents that can spend money and do transactions by themselves.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>contract Counter {
uint counter;
function Counter() public {
counter = 0;
}
function count() public {
counter = counter + 1;
}
}
</code></pre></div></div>
<p>Let’s say I create a smart contract with the above code.
The code has a single field called “counter” of type uint (an integer). The content of the counter variable is the state of this contract. Whenever I call the count() function, the state on the blockchain for this smart contract will be increased by 1 - for anyone to see.</p>
<p><a href="/img/posts/smart_contract_infographic.png"><img src="/img/posts/smart_contract_infographic.png" alt="Smart Contract Infographic" /></a></p>
<p>We’ll get back to how this works with more examples, but first I want to go back to the transactions on Ethereum and Bitcoin to explain a few things.</p>
<p> </p>
<h1 id="ethereum-vs-bitcoin-on-the-transaction-level">Ethereum vs. Bitcoin on the Transaction-Level</h1>
<p>Bitcoin transactions are pretty simple in what they do. You can do one single thing. One type of transaction.
Skipping some details, it all boils down to <strong>TO</strong> (who is receiving money), <strong>FROM</strong> (who is sending money) and <strong>AMOUNT</strong> (how much money).
This let’s bitcoin be a store of value with the capability to transfer the value between participants in the network.</p>
<p>What makes Ethereum different is that the transaction also has a <strong>DATA</strong> field. This <strong>DATA</strong> field enables <em>three</em> types of transactions:</p>
<ul>
<li>Transfer of value (same as Bitcoin)
<ul>
<li><strong>TO</strong> recipient address</li>
<li><strong>DATA</strong> field empty or containing any message you want to attach</li>
<li><strong>FROM</strong> you</li>
<li><strong>AMOUNT</strong> of Ether you want to send</li>
</ul>
</li>
<li>Create smart contract
<ul>
<li><strong>TO</strong> field is empty (this is what triggers the creation of a smart contract)</li>
<li><strong>DATA</strong> field contains smart contract code compiled to byte-code</li>
<li><strong>FROM</strong> you</li>
<li><strong>AMOUNT</strong> can be zero or any number of Ether you might want to give to your contract</li>
</ul>
</li>
<li>Call smart contract
<ul>
<li><strong>TO</strong> field is the address of the smart contract account</li>
<li><strong>DATA</strong> field contains function name and parameters - how to call the smart contract</li>
<li><strong>FROM</strong> you</li>
<li><strong>AMOUNT</strong> can be zero or any number of Ether if for instance, you need to pay the contract for a service</li>
</ul>
</li>
</ul>
<p>There are more fields and complexity that goes into these transactions, but these explain the central concept well.</p>
<p>Let’s see some more concrete examples of how those transactions might look like.</p>
<h2 id="ethereum-transactions">Ethereum Transactions</h2>
<h3 id="transfer-of-value">Transfer of value</h3>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>{
to: '0x687422eEA2cB73B5d3e242bA5456b782919AFc85',
value: 0.0005
data: ‘0x’ // Could also send a message here if we want to
}
</code></pre></div></div>
<p>Very simple. To an address with some amount of Ether.</p>
<p>You can also add a message to the transaction if you’d like.</p>
<h3 id="create-smart-contract">Create smart contract</h3>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>{
to: '',
value: 0.0
data: ‘0x6060604052341561000c57fe5b60405160c0806……………’
}
</code></pre></div></div>
<p>Like mentioned, an empty <strong>TO</strong> field signifies the creation of a smart contract.</p>
<p>The <strong>DATA</strong> field contains the smart contract code compiled to byte-code.</p>
<h3 id="call-contract">Call contract</h3>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>{
to: '0x687422eEA2cB73B5d3e242bA5456b782919AFc85’, // Contract
value: 0.0
data: ‘0x6060604052341561000c57fe5b60405160c0806……………’
}
</code></pre></div></div>
<p>We’ll get back to this one momentarily, but the main concept is that you send the transaction to the address of the smart contract you want to call and you put the function call in the <strong>DATA</strong> field.</p>
<p> </p>
<h1 id="note-about-cost-and-execution">Note about cost and execution</h1>
<p>As you might imagine, you can’t just go ahead and run computationally heavy programs on the blockchain for free.</p>
<p>The execution of code is being paid by the caller in something called <em>gas</em>. Gas is the fuel that runs the Ethereum Virtual Machine.
You can think of it as payment per execution of instruction (almost like a line of code).</p>
<p>You have to set the max amount of gas you want to spend on a particular call.
If for instance, the code you called went into a forever loop you would spend no more than your max gas on the execution.</p>
<p>The cost of gas (execution) is decided by the miners of the network - the nodes that are running the code.</p>
<p>There is a lot more to gas and execution, but it is worth keeping in mind.</p>
<p>If you want to take a deep dive into this part of Ethereum, take a look at this great article:
<a href="https://media.consensys.net/ethereum-gas-fuel-and-fees-3333e17fe1dc" target="_blank">Ethereum, Gas, Fuel & Fees</a></p>
<p> </p>
<h1 id="how-do-smart-contracts-work">How do smart contracts work?</h1>
<p>When a smart contract has been deployed to the Ethereum network, anyone can call the functions of the smart contract. The function may have security features that block people from using it, but you are free to try.</p>
<p>Calling a function on a smart contract is in many ways similar to “normal” programming - with some differences in executing of course.</p>
<p>Let’s say you have an object of type <em>“MyObject”</em>. That object has a function called <em>“myFunction”</em>.
To call it, you simple reference the instance of the object, which function to call and which parameters to call it with. Like this:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>myObjectReference.myFunction(parameters);
</code></pre></div></div>
<p>If the function returns any value, you can save it in a variable:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>myVariable = myObject.myFunction(parameters);
</code></pre></div></div>
<p>Calling a smart contract is conceptually the same thing.
The only difference is that you have to put all the information about the call into a transaction, sign it and send it to the network to execute.</p>
<p>Let’s say you want to call function “myFunction” with some parameters on smart contract “0x0123456”</p>
<p>Calling the smart contract consists of four steps:</p>
<p><a href="/img/posts/calling_a_smart_contract_infographic.png"><img src="/img/posts/calling_a_smart_contract_infographic.png" alt="Calling a Smart Contract Infographic" /></a></p>
<p>Now, when the transaction is put into a block in the blockchain the change of state will be reflected in the entire network.</p>
<p> </p>
<h1 id="the-world-computer">The World Computer</h1>
<p>Many have called Ethereum for the World Computer. And it’s not a bad analogy. It’s like a virtual machine that is being maintained by the whole world!</p>
<p>One thing to keep in mind though: while smart contracts are Turing complete and can, in theory, do anything, they are not well suited to heavy computational work.</p>
<p>The Ethereum World Computer is like an old slow computer that can run simple programs. And it is vital to keep Ethereum Smart Contracts small and simple because of cost and security.</p>
<p>The more computation a contract demands, the more it costs to run it. The more complex a contract is, the more likely it is to have security holes.
And a security breach in your smart contract is very hard to do anything about - the blockchain is immutable after all.</p>
<p><a href="/img/posts/world_computer.png"><img src="/img/posts/world_computer.png" alt="World Computer" /></a></p>
<p> </p>
<h1 id="example-token">Example: Token</h1>
<p>Just to drive the point home, I want to explain how tokens work.
You know, those tokens that everyone raves about in their ICO’s? If you are not familiar, the concept is that you can create your own token, or “coin,” on top of Ethereum.</p>
<p>Most of those tokens are created on Ethereum, and the concept is alarmingly simple (it works fine, but it is so simple that it’s almost stupid).</p>
<p>How would you program a simple monetary system using Javascript or any other programming language? Well, you could do it all in a single file. All you really need to keep track of is:</p>
<ol>
<li>Total supply</li>
<li>Accounts</li>
<li>Amounts of money in accounts</li>
<li>Movements of money</li>
</ol>
<p>With a simple mapping between users and amounts you get number 1, 2 and 3:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Map<Account, Double> usersAndTheirMoney;
</code></pre></div></div>
<p>This map just maps an account to an amount of money.</p>
<p>With a constructor function you can set up the initial supply in your own account (or spread among any number of accounts):</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>public Token(Account initialAccount, double initialSupply) {
usersAndTheirMoney.put(initialAccount, initialSupply);
}
</code></pre></div></div>
<p>Movements of money are done with simple functions that just subtract from one account and add to another:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>public transfer(Account from, Account to, double amount) {
verifySenderOfMoneyIsCaller(from);
verifySenderOfMoneyHasEnoughMoney(from, amount);
usersAndTheirMoney.put(from, usersAndTheirMoney.get(from)-amount);
usersAndTheirMoney.put(to, usersAndTheirMoney.get(to)+amount);
}
</code></pre></div></div>
<p>This is the exact same concept we use in Ethereum to create tokens. Granted, there is some more complexities and extra functionality, but the basic concept is very simple.</p>
<p>This is what a basic Token contract could look like (again, simplified for clarity) in Ethereum’s own programming language (Solidity):</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>contract MyToken {
mapping (address => uint256) public balances;
function MyToken(uint256 initialSupply) {
balances[msg.sender] = initialSupply;
}
function transfer(address to, uint256 amount) public {
balances[msg.sender] -= amount;
balances[to] += amount;
}
}
</code></pre></div></div>
<p>This is the general programming concepts that lie beneath the ICO craze that is going on. I think that says something about the power of Ethereum as a platform. With some simple code, you can generate a token out of thin air that is essentially just some variables being kept track of by the world computer. Welcome to the new internet.</p>
<p> </p>
<h1 id="learning-more-about-ethereum-and-smart-contracts">Learning more about Ethereum (and smart contracts)</h1>
<p>I found an amazing resource for learning more about Ethereum.
It collects the best resources on the Internet to learn everything from basics to smart contracts and ICO’s.</p>
<p>Take a look: <a href="https://novicedock.com/learn/cryptocurrency/ethereum" target="_blank">Ethereum Syllabus</a></p>Gjermund BjaanesYou might have heard the term “smart contract,” and you might even know that they are “code” you can run on a blockchain. But how can you run code on a blockchain? It’s not the easiest concept to wrap your head around. This post explains how smart contracts work on the Ethereum Blockchain. Basic understanding of programming will help as this post contains some code - although the examples a simple.BeaconMQTT - Bring context to your home automation system2017-11-06T10:00:00+00:002017-11-06T10:00:00+00:00http://gjermundbjaanes.com/beaconmqtt<p>I recently released a brand new app on the Google Play store: BeaconMQTT.</p>
<p>The problem it solves is simple enough: Integrate Bluetooth Beacons into home automation systems.</p>
<!--more-->
<p>Check out the landing page: <a href="http://beaconmqtt.gjermundbjaanes.com/" target="_blank">BeaconMQTT Landing Page</a></p>
<p>The app is available today on <a href="https://play.google.com/store/apps/details?id=com.gjermundbjaanes.beaconmqtt" target="_blank">Google Play Store</a></p>
<p> </p>
<p>The idea is to use Bluetooth Beacons to bring context to your home automation system. Let the system know where you are (based on where your phone is).</p>
<p>For instance, you could turn on the light every time you enter a room. Or remind you to take out the trash if the trash is full when you leave the kitchen.</p>
<p>There are many use cases, but Bluetooth beacons have not been the easiest to get included in a home automation system - until now.</p>
<p> </p>
<h1 id="how-it-works">How it works</h1>
<p>The app combines Bluetooth Beacons and the message protocol MQTT to bring context to any home automation system that can support MQTT.</p>
<p>The usage is fairly simple:
Clicking the + FAB you can search for and add any beacon the app supports (like an iBeacon or Estimote Beacon).</p>
<p>When the app detects that the beacon either enters or exits the area (or rather, your phone enters or exits the beacons range) it will be able to send an MQTT message to any MQTT broker you have configured.</p>
<p><a href="/img/beaconmqtt/1.png"><img src="/img/beaconmqtt/1.png" alt="BeaconMQTT Screenshot Main Screen" /></a></p>
<p> </p>
<h1 id="features">Features</h1>
<ol>
<li>Monitor in the background - no need to have the app open</li>
<li>Add custom names to beacons</li>
<li>Log events - for debugging of your system</li>
<li>Configure custom MQTT topics for enter and exit events</li>
<li>Show notifications on the phone (e.g. to test your beacon setup without having to think about MQTT)</li>
<li>Configure Beacon scanning to balance speed (time to detect) and battery life</li>
</ol>
<p><a href="/img/beaconmqtt/3.png"><img src="/img/beaconmqtt/3.png" alt="BeaconMQTT Screenshot Log Screen" /></a></p>
<p><a href="/img/beaconmqtt/4.png"><img src="/img/beaconmqtt/4.png" alt="BeaconMQTT Screenshot Settings Screen" /></a></p>
<p><a href="/img/beaconmqtt/5.png"><img src="/img/beaconmqtt/5.png" alt="BeaconMQTT Screenshot Settings Screen" /></a></p>
<p> </p>
<h1 id="try-it-now">Try it now!</h1>
<p>The app is available today on <a href="https://play.google.com/store/apps/details?id=com.gjermundbjaanes.beaconmqtt" target="_blank">Google Play Store</a></p>Gjermund BjaanesI recently released a brand new app on the Google Play store: BeaconMQTT. The problem it solves is simple enough: Integrate Bluetooth Beacons into home automation systems.Innovation at the speed of fail2017-09-30T10:00:00+00:002017-09-30T10:00:00+00:00http://gjermundbjaanes.com/innovation-at-the-speed-of-fail<p>Failure is fundamental to the success and speed of innovation. How? Let me explain.</p>
<!--more-->
<p>There is an idea in innovation literature and theory called “fail early” or “fail forward,” or something to that effect.
They all mean and want the same thing, but I feel like the essence of the message often gets lost. I think that is why I see a lot of articles calling for the “fail early” movement to go away because failure is bad and cost a lot of money. They are completely missing the point. I want to use this post to clear up some things up about why and how this should be done.</p>
<p> </p>
<p>Explained in the simplest term I can manage: <em>failing early is all about learning quickly</em>: Learning sooner rather than later.</p>
<p> </p>
<h1 id="what-i-really-mean-by-failing-early">What I really mean by “failing early”</h1>
<p>The term “failing early” has a different meaning to different people, but it’s a common term many innovators and entrepreneurs recognize. That is the only reason I am sticking with it for this post. Some words might describe this better, but let’s just stick with “fail early” or “fail fast” as the standard ones for now.</p>
<p>The point is, of course, (for me at least) not to fail your business or idea as soon as possible. At least that is not the goal. I mean, you don’t <em>want</em> to fail, exactly. The point is to <em>learn quickly</em> without spending too much time and money. And you do that by testing your idea early and often to figure out two things:</p>
<ul>
<li>Does the idea have merit?</li>
<li>What do I need to do to make it better?</li>
</ul>
<p>If an idea has no merit, that is a good thing to know before you have spent months or years on creating something nobody wants.</p>
<p>If an idea, at least potentially, has merit you need to figure out how you can make it great!
I’m sure you can agree that when making something, you want it to be good.</p>
<p>To do these things, what we really want is to learn quickly. Failing is a great way to learn, but it is not the goal.
You can’t be afraid of failure either, as that will halt your learning!</p>
<p>We will get back to how to fail (or learn rather), but first, let’s look at why failing early is so important.</p>
<p> </p>
<h1 id="why-fail-early">Why fail early?</h1>
<p>There is two main reason why failing early is important:</p>
<ol>
<li>Save money</li>
<li>Make great things</li>
</ol>
<p>They both boil down to the need for learning quickly. Learn quickly to avoid wasting money and to be able to make the <em>right</em> things.</p>
<p>This is where the term “failing early” comes short because it only captures the “how,” not the “why.” Failing in itself is not what you want. What you want is to learn quickly to save money and make great things! And you do that by “failing quickly.” Sort of. We’ll get back to what we actually mean by “failing.”</p>
<p>Let’s dive a bit deeper into why failing early provides these two quite amazing effects.</p>
<p> </p>
<h2 id="save-money-and-time-by-failing-early">Save Money (and time) by failing early</h2>
<p>If you find out after one week of working on your idea that is is completely useless, and nobody wants it, instead of figuring it out after three months, you certainly have saved a lot of time and money right there. It’s that simple; Fail early, instead of later.</p>
<p>Innovation is going to have a high failure rate just because it by nature is very uncertain and “risky.” If you want to keep innovating, you are going to fail more often than not. And if you know that you are going to fail a lot, would it not be better to turn up the speed and fail quicker and cheaper? I think it makes perfect sense.</p>
<p> </p>
<h2 id="make-great-things-by-failing-early">Make great things by failing early</h2>
<p>Great things = Things that the user loves.</p>
<p>It’s easy to build something <strong>you</strong> will love. It’s much harder to build something that other people will love.</p>
<p>To build something the user loves, you can’t sit inside and <em>guess</em> what they want. You shouldn’t use your previous experience as the perfect measure. You have to be sure that what you are building is something the users need, want and will love.</p>
<p>To create something truly innovative and great, you need to tap into an actual problem and solve it in a way that will delight people. There is just no way around some research to get to those truths. The truth about what works well, what doesn’t work, what needs to be work differently and so on.</p>
<p> </p>
<h1 id="how-to-fail-fast-and-cheap">How to fail fast (and cheap)</h1>
<p>The entire point is to learn as quickly and as cheaply as possible. You want to test out your idea without building an entire platform or product first.
The way to do that is by testing out your ideas with low-fidelity tools. Pen-and-paper UI, mock-ups, drawings and the most simple tools possible to test out the basic assumptions about your idea.</p>
<p> </p>
<h2 id="ask-the-right-questions">Ask the right questions</h2>
<p>To fail as quickly as possible, you need to find the right things to test. Find a list of hypotheses that support your idea. These will be basic assumptions that need to be true for your idea to make sense. You also need to find the high-risk critical assumptions that will make or break your idea.</p>
<p>The point is that you have to figure out if your idea is good or not. And you won’t do that by asking people if a UI design you came up with was beautiful or not. Also, you won’t get the correct answer if you experiment on assumptions that are optional for your idea to work.</p>
<p>Find the most fundamental and important assumptions about your idea, form hypotheses about them and run experiments to validate. Keep in mind that you can be creative here. Test assumptions in isolation or combination to get the most out of your time. Test your assumptions using any tools you’d like. The experiments can be very far removed from what you want to create in the end - as long as it validates your hypothesis.</p>
<p> </p>
<h2 id="rapid-prototyping">Rapid Prototyping</h2>
<p>Rapid Prototyping is like a field of its own. But the general principles around most techniques that fall under Rapid Prototyping is that you want to create cheap and quick prototypes, get feedback and then do it all over again (rapidly…).</p>
<p>I like to think of prototypes in terms of different levels of fidelity. Low fidelity prototypes are quick, cheap and get you honest feedback (because people are less likely to feel awkward criticizing something you obviously have not put a lot of time into). Higher fidelity prototypes are great for getting more detailed feedback and for fine-polishing designs.</p>
<p>Start out with low-fidelity prototypes. That means the output will be very rough. Possibly pen and paper.
The point is just to visualize your ideas and get feedback. You could certainly use some mock tool to create fake apps if you want, but you should be able to build your first prototype in one single day. That means no code will be involved. You just have to communicate your intent! The question you want an answer to is: does this idea hold any merit? Can I explain it to anyone in straightforward terms with simple tools? Does anybody want/need this?</p>
<p>As you get some initial feedback, you can start creating higher fidelity prototypes. Wireframes, rough UI layout in a mock tool or possibly a simple coded tool with lots of fake back-end stuff. The point here is to get more insights into your idea around user flow and user interaction. The questions you want an answer to is things like: Does the idea make sense for the user? Is the general design of the idea somewhat intuitive? How do I need to design this thing?</p>
<p>You create high-fidelity prototypes as well, but I prefer just to create a simplified, but real, UI at this point and just fake out some of the back-end things to showcase how the system will look and work. It’s more about getting small detail feedback and “sell” your idea at this point. If you get to this point, you should, in theory, have answers to all the critical questions about your idea. You should feel fairly confident that your idea holds water.</p>
<p> </p>
<h2 id="hypothesize-test-repeat">Hypothesize, Test, Repeat</h2>
<p>With all the feedback you get you can’t just say “Phew, that was hard. Glad I’m not doing that again!”. You have to take everything you learned and put it into the next iteration of your idea. And then you do it all over again.</p>
<p>Until you are <em>done</em>, you need to continue learning. And if you don’t want to throw money out the window, or if you want to make a great product (and make money), you better keep failing (…learning).</p>
<p> </p>
<h1 id="not-all-feedback-is-good-feedback">Not all feedback is good feedback!</h1>
<p>Something important to keep in mind is that you don’t have to implement all the feedback you get. You have to be smart about it. If the feedback doesn’t sound like something you expect a target customer also to believe, you might want to gather more data to prove or disprove your hypothesis. Only having one data point is usually a bad thing.</p>
<p>On the flip-side of that, you also have to keep in mind that some people might give you too positive feedback. Or you might only hear the positive parts because you are so in love with your idea. Try to separate yourself from your idea - at least until it has been proven.</p>
<p> </p>
<h1 id="failing-is-learning">Failing is learning</h1>
<p>We can probably agree that failure is a very negative word. But in this context failure is about feedback and learning.</p>
<p>Learning quickly (fail early) is something you do to save money and build great things. I think that should be reason enough for trying hard to innovate that way.</p>
<p>The faster you can fail (learn), the faster you can innovate. Go out there and innovate at the speed of fail!</p>Gjermund BjaanesFailure is fundamental to the success and speed of innovation. How? Let me explain.Blockchain - What is it good for?2017-09-17T10:00:00+00:002017-09-17T10:00:00+00:00http://gjermundbjaanes.com/blockchain-what-is-it-good-for<p>I recently held a 20 minute talk at a developer conference here in Norway. The conference was JavaZone, and the talk was titled “Blockchain - what is it good for?”</p>
<!--more-->
<p>The content of the talk is taken in part from my earlier posts on blockchain:</p>
<p><a href="/the-blockchain-innovation-part-1-what-is-blockchain/" target="_blank">Part 1: What is Blockchain</a><br />
<a href="/the-blockchain-innovation-part-2-what-can-blockchain-solve/" target="_blank">Part 2: What can Blockchain solve?</a><br />
<a href="/the-blockchain-innovation-part-3-exciting-blockchain-projects/" target="_blank">Part 3: Exciting Blockchain Projects</a></p>
<p>In particular the “What can Blockchain solve” post.</p>
<p>But it is not all old stuff. I have included new use cases and done more research on the existing ones. Different format, different content.</p>
<p> </p>
<h1 id="about-the-talk">About the talk:</h1>
<p>Blockchain technology is being talked about everywhere. Some people say it’s just the underlying technology of some scammy digital currency, while others say it’s the new Internet. If you have spent any time looking at what Blockchain is in technical terms, it’s a fair chance that you are more confused than before you started learning about it. How can this technology that essentially is meant for storage be that important? Sure, it makes sense for Bitcoin, but what else can it be used for?</p>
<p>This talk is for anyone who is curious about which possibilities Blockchain enables. We will not go into technical detail about how blockchain works but instead will focus on some of the potential use cases.</p>
<p>You will be taken through some of the most exciting and promising use cases for Blockchain technology. We will talk about everything from currency and democracy to IoT and Big Data.</p>
<iframe src="https://player.vimeo.com/video/233648689" width="640" height="360" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
<p><a href="https://vimeo.com/233648689">Blockchain, what is it good for?: Gjermund Bjaanes</a> from <a href="https://vimeo.com/javazone">JavaZone</a> on <a href="https://vimeo.com">Vimeo</a>.</p>Gjermund BjaanesI recently held a 20 minute talk at a developer conference here in Norway. The conference was JavaZone, and the talk was titled “Blockchain - what is it good for?”Picks of the Month - July 20172017-08-05T10:00:00+00:002017-08-05T10:00:00+00:00http://gjermundbjaanes.com/picks-of-the-month-july<p>Welcome to Picks of the month, where I share a few things I have found useful the last month.</p>
<p>It can be anything from blog posts and software tools to books and techniques.</p>
<!--more-->
<p> </p>
<h1 id="1-cold-showers">#1 Cold Showers</h1>
<p>I briefly mentioned on the <a href="/picks-of-the-month-june-2017/" target="_blank">last picks of the months</a> that I had gotten into the habit of taking cold showers in the morning. I wanted to expand a bit on that in this post.</p>
<p>The reason I got started with it at all was that I had read a few places over the last years that cold shower has several significant benefits. The main one I was aiming for was better self-control and the ability to face any uncomfortable situation without hesitation.
This article made me take the plunge: <a href="https://medium.com/personal-growth/why-freezing-your-butt-off-will-make-you-stronger-9e583448274b" target="_blank">How to Build a Bulletproof Mind in 5 Minutes a Day</a></p>
<p>There are supposedly many health benefits like</p>
<ul>
<li>Alertness (you WILL wake up)</li>
<li>Better immunity</li>
<li>Weight loss</li>
<li>Reducing stress</li>
<li>Reducing depression</li>
<li>Good for you skin</li>
</ul>
<p>I don’t know about most of them. I can’t tell at this point at least. I will, however, say that I become <em>tougher</em> because of it. Because let me tell you, some days you are seriously going to dread going into that ice cold shower in the morning. I do it <strong>every</strong> single day. No excuse. Even when I need to take a long shower to get dirt and stuff off, I still have to do it cold. I have not had a single warm shower or bath in several months.
This is the dedication level we are talking about here. And I think it is important to do it exclusively, at least for a while.</p>
<p>Pushing through when things are hard is an important skill to have - and you will develop it if you start taking cold showers. For sure!</p>
<p>If you want to give it a go, just do the following. Set the shower to the coldest setting (yes, all the way). Take a shower as normal. You will hate it, but you will feel very energized afterward. When you get in you will probably feel a bit of a shock the first times. You will gasp for air, and a ton of excuses to get the hell out of the shower will come rushing in. Try to breathe as normal and slowly as possible. Ideally, breath for 5 seconds in, hold for 5 and exhale for 5. That way you slow down your heart rate, and you’ll calm down.</p>
<p>Most of the articles talking about cold showers or cold water immersion of some kind have to mention “the Iceman,” Wim Hof. He has learned himself the ability to withstand cold for hours without… well, dying! If you are interested in Wim Hof, I suggest watching this TEDx talk:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/L9Cgaa8U4eY?ecver=1" frameborder="0" allowfullscreen=""></iframe>
<p>Either way, I suggest you try it for yourself. As a test. Are you <em>able</em> to do it?</p>
<p> </p>
<h1 id="2-introduction-to-classical-music">#2 Introduction to Classical Music</h1>
<p>I recently finished a course on Coursera about classical music. It was called “Introduction to classical music.”</p>
<p>I always have sort of enjoyed classical music, but it has not been something I spent most of my listening time on, mostly because I was not too familiar with it. I just felt that I didn’t know it. So I started this course to learn more about classical music. Just for fun really.</p>
<p>It turns out; the course has really transformed my appreciation for classical music. I now listen to it all the time. I have gone to several concerts and enjoyed them immensely.</p>
<p>You’ll learn some music theory, some ideas and thoughts about the craft, quite a bit of classical music history and you get to listen to a lot of great classical music.</p>
<p>The course is 24 hours of footage with quite a few quizzes, so it’s an investment of time for sure. But if you want to get into classical music or want to be able to enjoy it, even more, it’s well worth it.</p>
<p><a href="https://www.coursera.org/learn/introclassicalmusic" target="_blank">Introduction to Classical Music on Coursera</a></p>Gjermund BjaanesWelcome to Picks of the month, where I share a few things I have found useful the last month. It can be anything from blog posts and software tools to books and techniques.Private Blockchains And How to Make Them Work2017-07-11T18:00:00+00:002017-07-11T18:00:00+00:00http://gjermundbjaanes.com/private-blockchains-and-how-to-make-them-work<p>Many people are getting excited about blockchain technology, and for good reasons. Immutability, trustless sharing of data, secure transactions and much more can truly change the way we do business.</p>
<p>However, not everybody wants to put their data on a publicly accessible data store.
How can you have a private blockchain that is still secure and has all the great functionality of a public blockchain?</p>
<!--more-->
<p>If you are not too familiar with blockchain and want to learn more about the basics you can check out several articles about blockchain that I have written:</p>
<p><a href="/the-blockchain-innovation-part-1-what-is-blockchain/" target="_blank">Part 1: What is Blockchain</a><br />
<a href="/the-blockchain-innovation-part-2-what-can-blockchain-solve/" target="_blank">Part 2: What can Blockchain solve?</a><br />
<a href="/the-blockchain-innovation-part-3-exciting-blockchain-projects/" target="_blank">Part 3: Exciting Blockchain Projects</a></p>
<p> </p>
<h1 id="why-private-blockchains">Why private blockchains?</h1>
<p>Why would anyone <strong>not</strong> want all their data open to the public and have no ability to change the data once it’s out there?</p>
<p>That might be a slightly leading question to get my point across… Anyway, the point is that many people want the benefits of blockchain, but need to keep their data private or more tightly controlled for some reason.</p>
<p>Let’s study a couple of use cases to understand the reasoning behind these needs better.</p>
<p>Property ownership is a great example.
It would be less than ideal if the government or legal system was not able to enforce changes of ownership in for instance a legal dispute.
If the ONLY person able to change ownership is the current owner himself, even if that ownership was acquired fraudulently, then you have big problem.
Forcing changes that override some of the current restrictions of a public blockchain are needed for use cases like this.
Perhaps we will figure out a good way to solve these issues at some point, and that is great, but for right now, a controlled blockchain is the best solution.</p>
<p>Another (slightly generic) use case that you might imagine is that you might want to have data that are heavily regulated regarding privacy and security on a blockchain.
You can’t just slap that kind of that on a public blockchain. To share those kinds of data, a private blockchain is the only real solution right now.</p>
<p> </p>
<h1 id="strengths-public-vs-private">Strengths: Public vs. Private</h1>
<p>When choosing between a public and private blockchain, I believe you can summarize the reasons down to this:</p>
<p><em>Reasons for using public blockchains</em></p>
<ul>
<li>When you need <strong>complete</strong> decentralization and trust</li>
<li>When you need a <strong>hack-proof</strong> blockchain</li>
<li>When you need a <strong>censorship resistant</strong> blockchain</li>
</ul>
<p><em>Reasons for using private blockchains</em></p>
<ul>
<li>When you need the ability to <strong>change or revert transactions</strong></li>
<li>When you need to <strong>comply with privacy regulations</strong></li>
<li>When you have <strong>specific requirements for speed, consensus or architecture</strong> that doesn’t play well with open blockchains</li>
</ul>
<p>While it seems like private blockchains might be the best bet for most businesses, let’s also look at some of the trade-offs you need to make.</p>
<p> </p>
<h1 id="why-a-private-blockchain-sounds-stupid">Why a private blockchain sounds stupid</h1>
<p>Blockchains, which are secured by openness and crowds, just private and controlled. At first glance, this seems like a tall order.
And, to be fair, to some extent it is. BUT, it’s not entirely impossible. There are however a few trade-offs and things to keep in mind.</p>
<p>To understand why private blockchains are not ideal let’s go over some key reasons why public blockchains work so well:</p>
<ul>
<li>You don’t have to trust anybody because the network as a whole is economically incentivised to keep all the rules</li>
<li>Data can’t change because the network at large, again, is economically incentivised to keep all the rules</li>
<li>Because anybody can participate, anybody can contribute to the health of the network (and keep an eye on it if they want to)</li>
</ul>
<p>Initially, it seems these reasons don’t really play too well with the concept of a private blockchain.</p>
<p>It is possible, however, to maintain these effects to some extent as long as there are at least a few key players in the network.
That means that entirely private blockchains controlled by ONE single entity are not going to work. Instead, we need to aim for a middle ground here.</p>
<p>A blockchain with one single entity calling the shots is by basically just a centralized database. There is very little reason to use blockchain for this in my opinion.
As long as only one entity is in control, immutability is out of the window, as is any other extra sense of security. All you really end up with is control (which you already can get with any traditional database solution).</p>
<p>To reiterate one more time: If you just want a database that you can say is immutable and unhackable: private blockchains might not be the right thing for you.
You can, however, partly achieve some of these benefits with a network of trusted players, but it’s not going to be a case of you swapping out your centralized Oracle or MySQL database for a blockchain.
Instead, it’s going to be a case of carefully designing your system.</p>
<p>To continue this discussion, we need to define how a private blockchain needs to actually work. And to do that, we need to look take a close look a public blockchains.</p>
<p> </p>
<h1 id="definitions-public-vs-private">Definitions: Public vs. Private</h1>
<p>Let’s define what a private and public blockchain is.</p>
<p>There are three primary levels of how private a blockchain is:</p>
<ul>
<li>Fully Public</li>
<li>Consortium</li>
<li>Fully Private</li>
</ul>
<p>For a <em>fully public blockchain</em>, there is no access control built into the protocol itself; anyone can contribute as a user or as a working part of the network (e.g. validating transactions or mining).</p>
<p>A <em>consortium blockchain</em> has some access control that at least controls who own the consensus of the network. That means that a set of specific nodes controls the entire network and all transactions happening on it (validating transactions).
The level of access to read and write can by any level from no access outside the network to read-only or even open to read/write (but still having the owner nodes clearing all transactions).
This level of privacy is where we can design ourselfs a network that reaps the most benefits.</p>
<p>A <em>fully private blockchain</em> is the one that I would call a fully centralized database. There is one entity controlling the entire network.
This might seem like it’s pretty far from the original Bitcoin vision - and that’s because it is.
Essentially, you are using the ledger technology from blockchain, but not much else. I don’t see any reason for doing this. Just use a simple database technology. It’s going to be much cheaper.</p>
<p>In other words, a private blockchain (vs. a public one) is just a blockchain that has some level of access control on it. It can still be distributed and even open to the public.</p>
<p>The kind of blockchain we need to get any value from a private blockchain then is a <em>consortium blockchain</em>. We need a blockchain that is <strong>at least</strong> distributed to more than one player.
It all depends on the use case, but the more players you have in your network, the more benefits you will get.</p>
<p> </p>
<h1 id="how-to-secure-a-private-blockchain">How to secure a private blockchain</h1>
<p>One of the biggest reasons I wanted to learn about private blockchains in the first place was because I was curios how it could ever be secured.
I mean, the biggest reason public blockchains are safe is that they are distributed, open and economically incentivised to be kept safe. If anyone tries to do something “bad,” it will just be rejected by the network.
It’s just the consensus part of the protocol.</p>
<p>It turns out, this consensus part of blockchains is also what is securing private blockchains, although on a slightly different level.
They not secured because you have an enormous amount of people validating some mathematical piece of work (and being paid to do so).
Instead, it’s secured by the fact that the players that are allowed on the network are trusted by those that “matter.”
What I mean by that is that to be allowed the privilege to verify the blockchain, you have to be trusted in the first place, or you would not be handed the privileges.
The only thing you need to be able to validate and contribute is to prove that you are who you say you are and that you have access to do so.
Compared to an open blockchain where anyone has the privilege to participate, it works out quite nicely.</p>
<p>In other words, the security of a private blockchain is provided by the network it is in. Just like a public blockchain.
You just have to keep in mind that you need to design your network carefully.</p>
<p>An excellent article from Harvard Business Review on this subject talks a lot about the design of private blockchains:
<a href="https://hbr.org/2017/03/how-safe-are-blockchains-it-depends" target="_blank">https://hbr.org/2017/03/how-safe-are-blockchains-it-depends</a></p>
<p>I will say, however, that this security is still slightly flawed compared to that of a big public open blockchain.
If a sufficient amount of players in the private blockchain turn bad, they could easily corrupt the network.</p>
<p>And, again, as I mentioned at the beginning, this is mainly looking at consortium blockchains (partially private blockchains).
Fully private blockchains which are controlled by a single entity has only the security of that single entity.
In other words, no better security than any other centralized service.</p>
<p> </p>
<h1 id="the-counter-point-from-the-idealists">The counter-point from the idealists</h1>
<p>So, it seems like private blockchains (or at least partially private permissioned ones) have some uses.
I would, however, like to invite the idealists into the discussion on this, because I think they have some good points.</p>
<p>Andreas M. Antonopoulos, also called Mr. Bitcoin, recently (at Oslo Blockchain Day 2017) said that he views public vs. private blockchains as the same thing as internet vs. intranet.
He said something along the lines of (not a direct quote): “When was the last time you saw something interesting on an intranet? Compared to the internet, intranets are not very interesting”.</p>
<p>The following is, however, a quote I found in <a href="https://hbr.org/2017/03/how-safe-are-blockchains-it-depends" target="_blank">bitcoinmagazine</a> that summarizes his viewpoint:</p>
<blockquote>
<p>“Not only is decentralization, open protocols, open source, collaborative development and living in the wild a feature of Bitcoin, that’s the whole point. And if you take a permissioned ledger and say, that’s all nice, we like the database part of it, can we have it without the open decentralized P2P [peer-to-peer] open source non-controlled distributed nature of it, well you just threw out the baby with the bathwater.”</p>
</blockquote>
<p> </p>
<h1 id="the-reason-private-blockchains-are-useful-right-now">The reason private blockchains are useful (right now)</h1>
<p>While Andreas brings up some excellent reasons for blockchains to be open and public, I think the need for private blockchains are real. At least right now.</p>
<p>We have gone over the need for private blockchains. We need the benefits of blockchains, but we can’t turn all data public, and not all data can be 100% immutable.</p>
<p>Vitalik Buterin, co-founder/creator of Ethereum said on the <a href="https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/" target="_blank">Ethereum Blog</a></p>
<blockquote>
<p>“The consortium or company running a private blockchain can easily, if desired, change the rules of a blockchain, revert transactions, modify balances, etc. In some cases, e.g. national land registries, this functionality is necessary; there is no way a system would be allowed to exist where Dread Pirate Roberts can have legal ownership rights over a plainly visible piece of land, and so an attempt to create a government-uncontrollable land registry would in practice quickly devolve into one that is not recognized by the government itself….
“Given all of this, it may seem like private blockchains are unquestionably a better choice for institutions. However, even in an institutional context, public blockchains still have a lot of value, and, in fact, this value lies to a substantial degree in the philosophical virtues that advocates of public blockchains have been promoting all along, among the chief of which are freedom, neutrality and openness.”</p>
</blockquote>
<p> </p>
<h1 id="the-future-of-private-blockchains">The future of private blockchains</h1>
<p>We have established in this post (if you agree me) that private blockchains are useful and could bring some real benefits to many use cases today.
We have also looked at how public blockchains are superior in many aspects and have some real benefits that private blockchains can never obtain.</p>
<p>I believe that in the future, most blockchains will, in fact, be public. The reason I believe this is because private blockchains are useful, <em>but they are not revolutionary. Public blockchains ARE!</em></p>
<p>For now, please use private blockchains, but don’t forget about the open public and revolutionary blockchains - or you might get left behind.</p>Gjermund BjaanesMany people are getting excited about blockchain technology, and for good reasons. Immutability, trustless sharing of data, secure transactions and much more can truly change the way we do business. However, not everybody wants to put their data on a publicly accessible data store. How can you have a private blockchain that is still secure and has all the great functionality of a public blockchain?Picks of the Month - June 20172017-06-29T14:00:00+00:002017-06-29T14:00:00+00:00http://gjermundbjaanes.com/picks-of-the-month-june-2017<p>Welcome to Picks of the month, where I share a few things I have found useful the last month.</p>
<p>It can be anything from blog posts and software tools to books and techniques.</p>
<!--more-->
<p> </p>
<h1 id="1-fabulous">#1 Fabulous</h1>
<p><img src="/img/posts/fabulous.png" alt="Fabulous App" /></p>
<blockquote>
<p>“Fabulous is a science-based app, incubated in Duke’s Behavioral Economics Lab, that will help you build healthy rituals into your life, just like an elite athlete.”</p>
</blockquote>
<p>This app is fantastic! It has helped me break a few bad habits and create several new good ones. I now have a healthy and great morning routine that truly sets the bar for the day!</p>
<p>This is my morning routine right now:</p>
<ol>
<li>Drink lots of water</li>
<li>Exercise (short run or a quick 5-minute intense strength routine)</li>
<li>Take a SUPER COLD shower</li>
<li>Get dressed</li>
<li>Meditate</li>
<li>Eat a healthy breakfast</li>
<li>Take my vitamins</li>
<li>Walk the dog</li>
</ol>
<p>This routine works for me. I feel so ready to face the day after this. I feel awake (much thanks to that shower) energized and just… ready!</p>
<p>But this app is not just for you morning habits; it’s about your habits in general. It explains everything along the way in an excellent way. It also helps that they can point to science and real results to back up their claims. I mean, it helps me at least!</p>
<p>If you are anything like me and want some serious personal and professional growth, try out this app. It’s terrific!</p>
<p><a href="https://www.thefabulous.co" target="_blank">https://www.thefabulous.co</a></p>
<p> </p>
<h1 id="2-here-one">#2 Here One</h1>
<p><img src="/img/posts/hereone.jpg" alt="Here One Wireless Earbuds" /></p>
<p>Wireless Smart Earbuds. 2 out of 3 of those words are true at least. They are Wireless and they are Earbuds, but I wouldn’t exactly call them smart. Perhaps clever, but not really “smart”.</p>
<p>However, I wouldn’t put the buds up here if I didn’t like them though. They have a few cool features which are why I bought them.</p>
<p>The number 1 feature (except for working like any pair of wireless earbuds) is that they can filter your real-world audio. What does that even mean? It means that you can put different filters and even use an equalizer on the sound that goes directly into your ear.</p>
<p>What? Yes. You can in theory filter out different sounds, but still hear the things you want to hear. For instance, you can filter out the background noise of an airplane, but still, hear other things around you. To some extent, it’s not 100% magical. You can still hear the other sounds, but it’s quite good!</p>
<p>My favorite use case is to listen to music or audiobooks/podcasts and still hear when someone is talking to me. I can then just tap the earbud to stop the music and have a conversation (still with the earbuds in, because they let the sound in).</p>
<p>You can even <em>amplify</em> the sound around you - which is kind of weird. But cool! And potentially useful…</p>
<p>Anyway, I like these. They are not exactly smart, but they sure have some cool things going for them. If hearables (yes, that is what this product category is called) get even better, I think they can bring a lot of value.</p>
<p>If you want to check out what else is available, take a look at this article: <a href="https://www.wareable.com/samsung/best-hearables" target="_blank">https://www.wareable.com/samsung/best-hearables</a></p>Gjermund BjaanesWelcome to Picks of the month, where I share a few things I have found useful the last month. It can be anything from blog posts and software tools to books and techniques.Why (and how) did I get an NFC implant in my hand?2017-05-28T11:00:00+00:002017-05-28T11:00:00+00:00http://gjermundbjaanes.com/why-did-i-get-an-nfc-implant-in-my-hand<p>I recently went to Norway’s first “Implant Party,” which essentially is a meetup with hand piercings (with NFC. Oh, and they are implanted in your hand).</p>
<!--more-->
<p>The event went like this: There was a talk about biohacking and NFC chip implants, and then a professional piercing artists started implanting those who wanted it. I was one of them.</p>
<p>The guys that did the implantation was <a href="http://biohaxsweden.com" target="_blank">Biohax International</a>.</p>
<p>If you are not familiar with NFC, I suggest you watch this quick video on the subject:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Gbv2BIi9i58" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<h1 id="how-is-it-implanted">How is it implanted?</h1>
<p>It’s a lot like taking a little piercing. Sure, the needle is not the smallest, but there is almost no pain. No worse than taking some blood at the doctor’s office.</p>
<p>The needle itself is a contraption in which the NFC chip is contained. When the needle is inserted, you just push the NFC chip into the hand.</p>
<p>It’s easier to just show it (warning: there is a needle in this video…):</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/WZjNVfMnbYg" frameborder="0" allowfullscreen=""></iframe>
<p>(Yes, that is me turning into a cyborg in that video).</p>
<p>As you can see, the procedure is quick. There was no pain. And the healing process has been painless and swift as well.</p>
<p> </p>
<h1 id="but-why">But why?</h1>
<p>It seems like it might be weird to want to implant an NFC chip in your hand. After all, it sounds like it will hurt, and seriously, what’s the point?</p>
<p>Funnily enough, I didn’t have any <em>particular</em> reason for doing it, other than that I liked the idea of hacking my body. I figured: “I’ll just get it implanted and explore from there.”</p>
<p>So that is essentially why. I am curious. I want to explore what I can use an NFC chip in my hand for.</p>
<p>I am thinking about maybe using it for unlocking doors. “Logging in” to my smart house when I get home. I at least think I should be able to find some use cases for it during my IoT exploration.</p>
<p>I am an innovator, and exploring things like this is what drives me. Also, it’s fun.</p>Gjermund BjaanesI recently went to Norway’s first “Implant Party,” which essentially is a meetup with hand piercings (with NFC. Oh, and they are implanted in your hand).Picks of the Month - May 20172017-05-28T10:00:00+00:002017-05-28T10:00:00+00:00http://gjermundbjaanes.com/picks-of-the-month-may-2017<p>Welcome to Picks of the month, where I share a few things I have found useful the last month.</p>
<p>It can be anything from blog posts and software tools to books and techniques.</p>
<!--more-->
<h1 id="1-minimalism">#1 Minimalism</h1>
<p>I got introduced to a fascinating concept this month: Minimalism.</p>
<p>Minimalism is all about not having more than you need or really want. It boils down to that every single thing you own should bring you joy or at least have an essential function.</p>
<p>It all started when I read a book by Marie Kondo called “The Life-Changing Magic of Tidying Up.” The book describes a simple process where you take a hard look at every single item you own and decide if the item brings you joy or not. If the item brings you joy, keep it. If the item doesn’t bring you joy, toss it.</p>
<p>It, of course, makes sense to keep the nail clipper, even if it doesn’t exactly bring you joy. It’s more about getting rid of all the clutter around you - because there sure is a lot.</p>
<p>We’re not quite done tidying up, but I can tell you that my wardrobe has never been more neat and compact than it is today. Every single item left is something I LOVE wearing. Doesn’t that sound nice?</p>
<p>I believe there is profound meaning to be found in having less STUFF everywhere. All that clutter is only helping maintain anxieties and stress. I want to get rid of all excess stuff so that I can <strong>breathe</strong>!</p>
<p>Check out her book: <a href="http://www.amazon.com/Life-Changing-Magic-Tidying-Decluttering-Organizing/dp/1607747308" target="_blank">The Life-Changing Magic of Tidying Up on Amazon</a></p>
<p><strong>Living a meaningful life with less</strong></p>
<p>After I read that book, I also came across a couple of fellows who call themselves “The Minimalists.” They are by no means crazy guys who only own one set of clothes and a toothbrush. They are sensible people who realize that more stuff is not the path to happiness. Our extreme consumption is harmful to ourselves and the environment. There is no joy to be found in it.</p>
<p>Their tag-line is: “Living a meaningful life with less”. I think that is amazing. Their message is that you don’t have to have as much stuff to be happy. In fact, having less stuff is going to help a lot more.</p>
<p>Consumption is not inherently bad, but compulsive consumption is.</p>
<p>If you want to hear their story, take a look at this powerful TED-talk:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/w7rewjFNiys" frameborder="0" allowfullscreen=""></iframe>
<p>They have also created an equally amazing documentary: <a href="https://minimalismfilm.com" target="_blank">https://minimalismfilm.com</a></p>
<iframe src="https://player.vimeo.com/video/153518223" width="640" height="360" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
<p> </p>
<h1 id="2-augmented-reality">#2 Augmented Reality</h1>
<p><img src="/img/posts/ar-glasses-2017/hololens.jpg" alt="HoloLens" /></p>
<p>I have spent a lot of time working on Augmented Reality the past months, and I believe it is going to be the next big thing. Not VR, but AR. Or more specifically: XR (AR, VR, MR, WhateverR).</p>
<p>I wrote an article about some of the use cases I have seen for AR: <a href="/use-cases-for-augmented-reality/" target="_blank">Use Cases for Augmented Reality</a></p>
<p>The prospects of augmenting the world around us is an amazing one. It can be utilized by anyone to enhance almost anything. Personal entertainment, health care, mental health care, maintenance, training, task guidance, tourism, etc., etc., etc. The possibilities are endless, and I truly believe exponential use is right around the corner. The technology is starting to get good enough and cheap enough that both enterprise and regular consumers can get started. As soon as the need is there, everything else is just going to come with it. The new gold rush is right around the corner - get ready.</p>Gjermund BjaanesWelcome to Picks of the month, where I share a few things I have found useful the last month. It can be anything from blog posts and software tools to books and techniques.Use Cases for Augmented Reality2017-05-14T10:00:00+00:002017-05-14T10:00:00+00:00http://gjermundbjaanes.com/use-cases-for-augmented-reality<p>2016 was the year of Virtual Reality. Now it seems like 2017 might be the year of Augmented Reality. Facebook has announced their belief in the technology. Microsoft has been working on their HoloLens technology for a while already. Even Snapchat is trying to incorporate Augmented Reality into their offerings.</p>
<p>There are many players out there starting to emerge with AR technology, but most of the usage of AR today is pretty lame. Or at least not very useful for anything else than a cheap laugh. Dog ears and rainbows are not what is innovative and exciting about AR.</p>
<!--more-->
<p><img src="/img/posts/ar.jpg" alt="AR Concept" /></p>
<p>In this post, I am going to go through some of the use cases where AR will truly bring value. Some use cases are nice, some are fun, but many have the potential to be worth a lot of money.</p>
<p>I also wrote a post a little while ago about <a href="/augmented-reality-glasses-2017/" target="_blank">Augmented Reality glasses in 2017</a></p>
<p>Also related: <a href="/why-i-like-augmented-reality-better-than-virtual-reality/" target="_blank">Why I like Augmented Reality better than Virtual Reality</a></p>
<p> </p>
<h1 id="commerce-aka-getting-people-to-buy-your-stuff">Commerce (aka. getting people to buy your stuff)</h1>
<p>Probably one of the biggest use cases right now, and not without reason. Letting the consumer see what they are buying in context is incredibly powerful.</p>
<p>You can imagine using AR for</p>
<ul>
<li>Fitting rooms</li>
<li>Decorating and trying out furniture in you home</li>
<li>Real estate
<ul>
<li>When showing someone an empty house, create an incredible narrative.</li>
<li>In fact, it might be BETTER to show someone an empty house and using AR to create a beautiful scenario</li>
</ul>
</li>
<li>Online Shopping
<ul>
<li>Wonder what that thing you want to buy look like? Just put a hologram of it on your desk.</li>
</ul>
</li>
</ul>
<p> </p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/nWcGhuX6N7w" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/wITqCim0nTM" frameborder="0" allowfullscreen=""></iframe>
<p>Allowing people to more easily imagine how great your product is, by showing them, is something many people is going to exploit heavily I believe.</p>
<p> </p>
<h1 id="games">Games</h1>
<p>As with Virtual Reality, gamers are going to be pushing forward Augmented Reality too. Gamers are great at using and wanting more of new tech, which is exactly what is going to open for more and more use cases in other industries as well.</p>
<p>Casual games that are not confined to a screen is what AR bring to the table here. Integrating a game world into your real world allowing for better immersion and a ton of interesting scenarios.</p>
<p>While this video is purely a concept video by Magic Leap, it still demonstrates some of the possibilities:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/kPMHcanq0xM" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<h1 id="training">Training</h1>
<p>Now we are getting into the topic of Industry (with a capital I). Training people is hard. Training people to do complex tasks is even more difficult.</p>
<p>Since paper sucks for training material, this has traditionally been solved with video training or hands-on, real world training.
However, videos are not very interactive, and you won’t learn as much. Hands-on training can be extremely expensive depending on equipment and personnel requirements.
Think of repair training for a large plane engine. You need to have an engine that is not in use, you have to get people to where an engine is, and get a hold of an expert. Also, you better not destroy that engine.</p>
<p>These problems have been partially solved already by VR. VR is excellent for training, but it has the problem of removing you from the real world and being a bit more expensive to develop because you need to simulate the entire environment in which the training is happening.</p>
<p>What I like about AR for training is the potential for being a lot more flexible than VR.
If you have a piece of equipment available, it’s stupid to simulate it in a VR world.
You could instead combine training instructions on top of that real equipment.
Or if you don’t have that piece of equipment you can simulate the whole thing, but perhaps using real world tools during training.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/eVV5tUmky6c" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<h1 id="work-instructions-manufacturing-maintenance-installation">Work Instructions (Manufacturing, Maintenance, Installation)</h1>
<p>This is in many ways a lot of the same as the training use case, but it’s a bit more specific.</p>
<p>Today, when maintenance, manufacturing or installation engineers are doing their work, they have to look up their instructions in manuals that are paper based at worst, digital on a mobile device at best. None of which are optimal.</p>
<p>If you could immerse the work instructions into the real world and the real objects they are working on, the potential for efficiency and quality is mind boggling!
Instead of having to get to your tablet every time you have to reference something, you can get that information without having to stop. For manufacturing, this could have tremendous potential for getting rid of errors (which can be INSANELY expensive). For maintenance, the same thing is true, but also the speed and cost of maintenance could be improved a lot. Again, the same is true for installation.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/t5ixBsHPMxk" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/8OWhGiyR4Ns" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<h1 id="education">Education</h1>
<p>Show, don’t <em>just</em> tell. Bringing AR into the classroom could radically transform education. Stuffy textbooks need to be a thing of the past. You need to engage students, and AR is the way to do it.</p>
<p>When teaching, being able to visually demonstrate any concept would allow almost any student to grasp concepts much easier, while not getting bored!</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/SKpKlh1-en0" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/7Xv8A9vqeBw" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<h1 id="storytelling">Storytelling</h1>
<p>Storytelling is already an emerging topic for VR, but there is no reason it can’t be just as effective (or more) with AR.</p>
<p>Storytelling doesn’t need to be confined to text OR audio OR video. Why not combine elements to truly bring a story to life?</p>
<p>People are experiment with this today, take a look at the video below:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/YO1E7DBuqtc" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<h1 id="add-useful-info-on-the-real-world">Add useful info on the real world</h1>
<p>The world we see around us is static regarding directly available information, but there is so much information that could be overlaid and surfaced to give value.</p>
<ul>
<li>When looking at a mount peak, information about it could be shown automatically.</li>
<li>When looking at food packaging, see the content descriptions and reviews (4.5 stars)</li>
<li>Get information about people you meet (age, profession, etc.)</li>
<li>Instructions for using appliances</li>
<li>Real-time statistics and information about sports</li>
<li>Tagging places for your friends to find</li>
</ul>
<p>Getting more information about anything you see - basically.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/h2Jg8ryVk1k" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/tnRJaHZH9lo" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<h1 id="product-design--prototyping">Product Design & Prototyping</h1>
<p>Being able to design and show ideas to people in an immersive way can truly transform the way product designers, entrepreneurs, and innovators (and many more people) work.</p>
<p>A simple prototype or sketch can never bring big ideas to life. You have to count on people imagining the full potential of your product or idea. Well, that doesn’t have to be the case. You can bring ideas to life with both AR and VR. I like AR better because it allows you to easily collaborate and interact without having to go to “another world.”</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Hx6biWE2VsM" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/6BvtLoeM_7c" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<h1 id="navigation">Navigation</h1>
<p>Navigation without having to glance at your phone or GPS device? Sure. Indoor turn-by-turn navigation? Yeah, that sounds useful.</p>
<p>I think navigation could be an immersive experience that is truly useful. Information and turn-by-turn navigation overlaid on the world can be done with AR.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/X5bzMm-vEIs" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<h1 id="collaboration--communication">Collaboration & Communication</h1>
<p>This is one of my favorite use cases because I hate remote meetings. Skype sessions with just audio and perhaps video is not going to beat face-to-face interaction. Ever. But bringing each other to your respective AR experiences might just be the next-best thing. I envision meetings happening a lot more like they do in Kingsmen:</p>
<p><img src="/img/posts/kingsmen_ar.jpeg" alt="Kingsmen Meeting using AR" /></p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/7d59O6cfaM0" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/lkmS1cIOSAQ" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<h1 id="health">Health</h1>
<p>Health training and work are hard and error-prone. It is also critical. Utilizing technology to make it as best as possible is something we should strive for. AR and VR both can bring value to this field:</p>
<p>I imagine education, training and actual work for surgery being truly transformed by AR because getting all that extra information could mean the difference between life and death.</p>
<p>AR for health could be used for mental health rehabilitation, by introducing concepts and treatments in an immersive and safe way to patients.</p>
<p>I think the Health sector has some big changes coming up, to be honest. I believe that they will be ready for the challenge!</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/aCdZTsszwFo" frameborder="0" allowfullscreen=""></iframe>
<p> </p>
<h1 id="more">More</h1>
<p>These use cases are just some of the ones I came up with while writing this post. There are SO many more possibilities with this amazing technology.</p>
<p>I firmly believe we have only scratched the surface of what is possible to do!</p>Gjermund Bjaanes2016 was the year of Virtual Reality. Now it seems like 2017 might be the year of Augmented Reality. Facebook has announced their belief in the technology. Microsoft has been working on their HoloLens technology for a while already. Even Snapchat is trying to incorporate Augmented Reality into their offerings. There are many players out there starting to emerge with AR technology, but most of the usage of AR today is pretty lame. Or at least not very useful for anything else than a cheap laugh. Dog ears and rainbows are not what is innovative and exciting about AR.