<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Alex Van de Sande&#x27;s wandering about</title>
<link>https://blog.vandesande.design</link>
<description>Alex Van de Sande&#x27;s wandering about</description>
<language>en</language>
<lastBuildDate>Sat, 03 Oct 2026 02:37:27 +0000</lastBuildDate>
<atom:link href="https://blog.vandesande.design/rss.xml" rel="self" type="application/rss+xml"/>
<item>
<title>Taking back control of my own writing.</title>
<link>https://blog.vandesande.design/taking-back-control-of-my-own-writing</link>
<guid isPermaLink="true">https://blog.vandesande.design/taking-back-control-of-my-own-writing</guid>
<pubDate>Sat, 03 Oct 2026 02:18:47 +0000</pubDate>
<description>Having fun with webdesigning in the AI age.</description>
<content:encoded><![CDATA[<p>This year I've transformed all my favorite projects, the <a href="https://blog.vandesande.design/the-triangle-of-everything">Triangle of Everything</a> and the <a href="https://hexagonal.earth" target="_blank" rel="noopener">Hexagonal Earth</a> into full websites of their own, and did this new personal website. Over the last decades I've written lots of places on the web: Wordpress, Posterous, Flickr, Tumblr, Medium, Mirror, Paragraph and some contributions to other people's websites. In the past few years I've (re)bought my own domain (finally) and decided to start posting only to an address I owned. The past week I went one step further, and asked my agent to scour the web for my past writings and bring them all as markdown files I own. It was remarkable, it found old archived posts in addresses I had completely forgotten, fixed formatting errors and broken images and the result is that I now have a working archive of my digital writings for the past 25 years. It probably matters only to me (maybe one day to my grandchildren if I'm lucky) but that's okay–I've always written on the web only for myself.</p>
<p>The web wasn't always just <a href="https://twitter.com/tveastman/status/1069674780826071040" target="_blank" rel="noopener">five websites sharing screenshots of the other four</a>, it once was a big playground for small personal sites with fun experiments. The promise of Web3 was to bring that back with new tools: decentralization, blockchains, etc. But maybe we can do that simply with text files and git.</p>
<p>So here are the new personal experiments:</p>
<figure>
<img src="https://blog.vandesande.design/media/taking-back-control-of-my-own-writing/01-704.webp" width="2400" height="1635" alt="">
</figure>
<h2 id="h-vandesande-design-https-vandesande-design"><a href="https://vandesande.design" target="_blank" rel="noopener">VandeSande.design</a></h2>
<p>Jevons paradox states that when a new technology makes something more efficient, we don't use less of it, we use more. A lot of people who are trying AI love to talk about one-shots, a single prompt that outputs a full game or website. This is a myth: not because the current models aren't capable of delivering a great product in one shot, but because they do, you'd never call that a full website anymore, no more than you'd use a default Wordpress installation and call that a day. Precisely because we can do more, we are expected to do more – what is now considered a basic website will have tests, have been rewritten from scratch twice, and have a lot of features that would have taken a full dev team a few years ago.</p>
<p>But this isn't about AI, it's about creativity. These were websites I wanted to build, which existed only in my head and now are out there in the world and I'm proud of.</p>
<hr>
<figure>
<img src="https://blog.vandesande.design/media/taking-back-control-of-my-own-writing/03-704.webp" width="2400" height="1800" alt="">
</figure>
<h2 id="h-hexagonal-earth-http-hexagonal-earth"><a href="http://Hexagonal.earth" target="_blank" rel="noopener">Hexagonal.earth</a></h2>
<p>I've already <a href="https://blog.vandesande.design/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball">written about my maps extensively</a>. I've spent a full year building the crappiest hexagonal map tools but it's now completely rebuilt as something that anyone can play with. I truly hope it finds the other half dozen people in the world who like hexagonal maps. It has lots of neat features, including a download. If for some reason someone out there wants the original old poster, <a href="mailto:blog@vandesande.design">send me an email.</a></p>
<hr>
<figure>
<img src="https://blog.vandesande.design/media/taking-back-control-of-my-own-writing/04-704.webp" width="2400" height="1813" alt="">
</figure>
<h2 id="h-triangleofeverything-com-http-triangleofeverything-com"><a href="http://TriangleofEverything.com" target="_blank" rel="noopener">TriangleofEverything.com</a></h2>
<p><a href="https://blog.vandesande.design/the-triangle-of-everything">The poster version</a> is now an interactive website. It's useful since now I am able to add a lot more items and check the accuracy of every item on them. Check the Tour version because there are some real neat animations there. And again, if for some reason you do want to get the original poster, feel free to get in touch.</p>
<h2 id="h-bonus-hyper-spirographs">Bonus: <em>hyper-spirographs</em>!</h2>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/taking-back-control-of-my-own-writing/06-704.webp" width="1024" height="1024" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/taking-back-control-of-my-own-writing/07-704.webp" width="1024" height="1024" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/taking-back-control-of-my-own-writing/08-704.webp" width="1024" height="1024" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/taking-back-control-of-my-own-writing/09-704.webp" width="1024" height="1024" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/taking-back-control-of-my-own-writing/10-704.webp" width="1024" height="1024" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/taking-back-control-of-my-own-writing/12-704.webp" width="1024" height="1024" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/taking-back-control-of-my-own-writing/13-704.webp" width="1024" height="1024" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 7</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p>One of the issues I found when trying to represent all objects was how to represent elementary particles. I wanted something that would feel like a real object, but also be based on some math that had a relationship with real science. I started playing around with the idea of a spirograph (you know, these toys to make flower patterns) as a way to see in multiple dimensions: a 2d spirograph is a flower, a 3d is an orbit and you can use hue, transparency and animations to visualize up to six dimensions. Then I found out about Hopf Fibration and Fiber Bundles, a math model that is used a lot in theoretical physics so it felt like a perfect fit.</p>
<p>Anyway if you want to visualize something in 6d and learn about Fiber Bundles more, play around with the <a href="https://triangleofeverything.com/hyperspirograph.html" target="_blank" rel="noopener">hyper-spirograph</a> tool.</p>]]></content:encoded>
</item>
<item>
<title>Bend 2 is live!</title>
<link>https://blog.vandesande.design/bend-2</link>
<guid isPermaLink="true">https://blog.vandesande.design/bend-2</guid>
<pubDate>Fri, 18 Sep 2026 01:33:00 +0000</pubDate>
<description>Victor is a brilliant engineer. He built formal verification for the EF 7 years before leadership started talking about it as a priority. He pivoted the company to &quot;symbolic AI&quot;…</description>
<content:encoded><![CDATA[<p>Victor is a brilliant engineer. He built formal verification for the EF 7 years before leadership started talking about it as a priority. He pivoted the company to "symbolic AI" way before AI could solve Millennium Problems and vibe coding was a word. He was so focused on parallel computing he coded a computer from scratch. You should try bend.</p>
<p>If you're also a developer and love terminals, you should follow the <a href="https://higherorderco.com" target="_blank" rel="noopener">official site</a> and install the script.</p>
<p>But for everyone else I build <a href="https://bend.how" target="_blank" rel="noopener">this site</a>, to help you give your AI superpowers. Check the demos and paste the prompt!</p>
<h2 id="h-so-what-is-it">So what is it?</h2>
<p>You've heard about AI solving Erdos Problems every day. How do they do it? They can do it because math has been formalized in code, mostly by Lean (also a Brazilian developer BTW).</p>
<p>Like Lean, Bend is formally verified. Here's an example of it finding proofs in your browser! <a href="https://bend.how/math/" target="_blank" rel="noopener">bend.how/math/</a></p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/bend-2/01-704.webp" width="1074" height="616" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/bend-2/02-704.webp" width="1104" height="990" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/bend-2/03-704.webp" width="968" height="692" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 3</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p>Now imagine you did that for anything in your code. Imagine you are vibe coding a game and want to make sure the agent doesn't break some fundamental rules.</p>
<p>In this example I built a tiny chess board and added a fundamental rule of white cannot mate in one. Then I asked the AI to add a queen and it refused to do so, because doing that would break the fundamentals of the game.</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/bend-2/04-704.webp" width="1316" height="1630" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/bend-2/05-704.webp" width="1332" height="1554" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p>Can you do it with Lean? Sure, but Bend is not only formal verification. It's about parallelization. Every code runs on the GPU. Anything that can be parallelized will be. It's like writing in CUDA.</p>
<p>I asked Bend to generate these fractals for me – it's not always guaranteed, but more often than not it would make my code 2-10x faster, without any extra effort. I just told it "build it with bend and see what happens". And every pixel is verified to be correct.</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><video class="moving" loop muted playsinline preload="none" controls><source src="https://blog.vandesande.design/media/bend-2/mandelbrot.webm" type="video/webm"><source src="https://blog.vandesande.design/media/bend-2/mandelbrot.mp4" type="video/mp4"></video></div>
<div class="slide"><video class="moving" loop muted playsinline preload="none" controls><source src="https://blog.vandesande.design/media/bend-2/mandelbulb.webm" type="video/webm"><source src="https://blog.vandesande.design/media/bend-2/mandelbulb.mp4" type="video/mp4"></video></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p>For parallel tasks it's great. Not always. For Mandelbrot it was a 100x. Mandelbulb 60x. In Lenia it gave me a 6x improvement. Particle Life was a 5x. Basic Game of Life was a tie. Try it yourself, ask your AI to run the benchmarks and see what it thinks!</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><video class="moving" loop muted playsinline preload="none" controls><source src="https://blog.vandesande.design/media/bend-2/lenia.webm" type="video/webm"><source src="https://blog.vandesande.design/media/bend-2/lenia.mp4" type="video/mp4"></video></div>
<div class="slide"><video class="moving" loop muted playsinline preload="none" controls><source src="https://blog.vandesande.design/media/bend-2/particle-life.webm" type="video/webm"><source src="https://blog.vandesande.design/media/bend-2/particle-life.mp4" type="video/mp4"></video></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p>I am very excited about the project. Right now it's all open source and free to the world. We are building hoping the world appreciates it.</p>
<p>Ask your agent about <a href="https://bend.how" target="_blank" rel="noopener">Bend</a>.</p>]]></content:encoded>
</item>
<item>
<title>Reform DAO governance by delegating 5M ENS tokens</title>
<link>https://blog.vandesande.design/reform-dao-governance-by-delegating-5m-ens</link>
<guid isPermaLink="true">https://blog.vandesande.design/reform-dao-governance-by-delegating-5m-ens</guid>
<pubDate>Mon, 06 Jul 2026 13:55:36 +0000</pubDate>
<description>I want to share some ideas on how to reform DAO voting. These is a framework for discussing delegation of DAO votes and I welcome feedback. TLDR: The DAO holds over 50% of the…</description>
<content:encoded><![CDATA[<p>I want to share some ideas on how to reform DAO voting. These is a framework for discussing delegation of DAO votes and I welcome feedback.</p>
<p>TLDR:</p>
<p>The DAO holds over 50% of the voting power. These tokens were intended to be distributed for wider governance but were never done because of their economic value. This proposal discusses how we can delegate them (instead of distributing).</p>
<h2 id="h-the-problem">The problem</h2>
<p>Here are three graphs that can summarize the issues this proposal wants to address:</p>
<figure>
<img src="https://blog.vandesande.design/media/reform-dao-governance-by-delegating-5m-ens/01-704.webp" width="1434" height="684" alt="">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/reform-dao-governance-by-delegating-5m-ens/02-704.webp" width="1466" height="828" alt="">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/reform-dao-governance-by-delegating-5m-ens/03-704.webp" width="1796" height="890" alt="">
</figure>
<p>ENS Governance is clearly in a crisis. Currently, one delegate has enough quorum to not only execute any proposal, but also to outvote the next 50 other delegates. The issue didn’t start when these new votes were delegated, but rather total delegated votes has been consistently going down (except for two jumps, when the same tokens were being delegated and then undelegated and delegated once again). Voter turnout has also been consistently going down: while in the first years it was common to get 3M votes in a proposal, more recent proposals have struggled to meet the quorum.</p>
<p>The core issue is that most of the delegated voting power has been delegated at airdrop and then these delegations slowly trickle down as users sell their tokens and new buyers don’t care enough to delegate them. When someone receives an airdrop token, specially for free, they have a thousand reasons to sell them, and almost no incentives to use them for governance. Over the past few years, MetaGov stewards have tried to do address the issue by making redelegation free, by distributing more ENS tokens to new contributors and by <a href="https://snapshot.box/#/s:ens.eth/proposal/0xf0ad5ad5a1ee353a65424a83e74f2b8846b16885a4be99af26b5162bfa78c644" target="_blank" rel="noopener">paying users to stake and delegate</a> their ENS. While these have had some mild successes, they have clearly not been able to reverse the overall trend.</p>
<p>This proposal intends to take a different approach and simply delegate voting power to specific players and stakeholders who have an interest in a working ENS. The amount being proposed here is 5M ENS, which should be enough to be impactful but not so much it can’t be reversed.</p>
<h3 id="h-who-are-ens-stakeholders">Who are ENS Stakeholders?</h3>
<p>The original airdrop was distributed to all accounts who ever held ens domains, proportionally to the amount of time they held them – the ENS community of users, so to speak. But they are not the only players who can help make or break ENS, the ones whose continued collaboration is required for ENS to succeed. <a href="https://x.com/search?q=.gwei&amp;src=typed_query" target="_blank" rel="noopener">The people who have the power to sucessfully fork it.</a> While there are many factors, I’d enumerate them as such:</p>
<p><strong>Users: wallets, profiles, subdomains.</strong> The original airdrop was targeted at people who paid for .eth identities. But these are not the only names currently available: ENS has built and encouraged many other ways in which wallets can distribute free names for their users. Subdomains, names associated with a web TLD, etc. We need those as the initial distribution of users.</p>
<p><strong>Integrations: apps, exchanges and websites.</strong> If ENS is not meaningfully integrated in the broad community so that an ENS name can be counted on to always resolve correctly, then it has no value. If the wallets band together and decide to simply pick a different naming system, then ENS will fail.</p>
<p><strong>Developers: core programmers who understand how the system works.</strong> Besides labs, there are many other greatly talented developers who have made meaningful contributions to ENS core protocol and its associated libraries. If we don’t foster them, then we will be losing talent.</p>
<p><strong>Legacy naming systems: domain registrars, DNS hosts, IP repositories, etc</strong>. I would argue that a continuing cooperation with the legacy domain system is the path for ENS to keep evolving and being deeply integrated with the largest web infrastructure. Web3, NFTs, Decentralized Internet, these might all have been temporary interests that the overall public is not paying attention to anymore, and in general crypto is slowly finding it’s product market fit not in radicalism but in pragmatic integrations with traditional systems.</p>
<p><strong>ENS Governance Community: stewards, delegates, etc.</strong> We can talk a lot about the failures of governance, but we also have to point that despite all the weaknesses, ENS has had an active and diverse community of delegates and stewards that should still have an active role and voice and now are unable to express meaningful dissent. We want to make sure these are empowered again.</p>
<p>There might be others and I welcome further suggestions.</p>
<h3 id="h-the-community-treasury">The “Community Treasury”</h3>
<p>In the original airdrop, 50M ens were distributed, 25M to the .eth holders and 25M to contributors. <a href="https://paragraph.com/@ens/ens-token-allocation-claiming-opens-nov-8" target="_blank" rel="noopener">Another 50M remained in the control of the dao</a> and were described as such:</p>
<blockquote>
<p><em>The remaining 50% of $ENS tokens is allocated to the DAO. 10% of this allocation will be available to the DAO at launch, with the remaining unlocking over 4 years. […] <strong>The DAO is encouraged to allocate these tokens towards community focused initiatives to help the development and growth of ENS</strong>, such as grants, hackathons, meetups and more.</em></p>
</blockquote>
<p>While the working groups have worked in many community focused initiatives including grants, hackathons, meetups etc, not many of the DAO tokens themselves were distributed for this purpose. In fact only a few delegation distributions have happened and they collectively distributed less than 150k – way under the 10 million per year that were vesting every year. And now, it so happens that we are five years later and all the 55 million tokens (this includes a few unclaimed airdrops) are now freely unvested.</p>
<p>There were many reasons stewards were reluctant to distribute those tokens. Despite the DAO having consistently refused to treat them as financial assets, they were in many moments hundreds of millions of dollars unvested each year and it felt unreasonable and irresponsible to simply send those to users. And in the few cases these were indeed sent, many of them were not necessarily used for voting purposes and rather sold as soon as they were unvested. It’s understandable: when faced with the opportunity to secure a large financial opportunity that can help them in their lives, or simply vote in a governance process they don’t directly benefit from, it’s hard to put blame on those who pick the former.</p>
<h3 id="h-proposal">Proposal</h3>
<ol>
<li><p>Start a nomination process where anyone who wants to be delegated power can put their name forward.</p>
<ol>
<li><p>There will be some minimal threshold requirements, like being a person or company (not anon) who owns an ENS, and has participated in discussions before</p></li>
<li><p>The candidate will identify itself in one of the stakeholder groups. Each group will have their own particular minimal requirements and a metric. For some, they will require to have at least M of N requirements (ex: 1000 ENS tokens OR 2 ENS related POAPs OR a github with proof of contributions, etc). The metric will be specific for each stakeholder group. For wallet developers we could use MAUs, or for Registrars we could use amount of TLDs connected to ENS, for Governance community we could use total historical delegation, etc.</p></li>
</ol></li>
<li><p>Once the nomination process is over, <strong>there will be no vote</strong>, instead we will pick the 10 candidates that fare well on the chosen metric for their stakeholder group. If there are less than 10, then all are chosen</p></li>
<li><p>5 million ENS tokens will be transferred from the DAO into the multidelegate contract.</p></li>
<li><p>For each group, 1M ENS tokens will be delegated in total, equally distributed to all selected voters on step 2. If there are less than 10 voters, they will get proportionally, more votes.</p></li>
<li><p>Selected voters will get no financial exposure to ENS, nor will they be able to have access to the capital. It still belongs to the DAO. They are volunteers. If they do not vote for a period of longer than 6 months, their votes will be redistributed to other members of their group</p></li>
</ol>
<p>Collectively this new group of delegates will represent over 60% of the DAO vote. Past delegates will see their voting power increase because they will also collectively get more delegations, proportional to their past delegation power. This means that no one person or group can unilaterally pass proposals anymore and vote buying becomes harder. But it also means the current set of delegates (now with more power) will be able to coordinate and prevent any one of the new stakeholders from capturing governance.</p>
<h3 id="h-some-considerations">Some considerations</h3>
<p>The DAO still holds more than 50% of all tokens. By enacting such reforms, it can substantially change the way decision power is distributed in the DAO. If this proposal passes, and specially if similar proposals are passed in the future delegating even more ENS to new delegates, then the DAO could be seen as quietly moving away from Token Weighted voting to a new system, which is more similar to a multicameral system: the power balance shifts from market power into self-enforced power in which delegates can continuously control who gets the new votes. This could lead to a reformed DAO where multiple stakeholders each get to balance the DAOs best interest – or it could lead to a plutarchy in which few delegates continuously vote to gather more power and control.</p>
<p>Some of these concerns can be addressed by <a href="https://discuss.ens.domains/t/temp-check-rate-limiting-the-endowment-to-safely-secure-it/22234" target="_blank" rel="noopener">limiting the amount of ENS tokens</a> the DAO itself can access every year. Of course, at some point the real governance decision on the DAO happens outside itself: if ENS has no users, no integrations, no developers, and no connections to legacy systems, then it ceases to matter who gets to vote.</p>
<p>We can also limit some of that concern by making these delegations time limited, so they automatically expire in 2 years, etc.</p>
<h3 id="h-open-questions">Open questions</h3>
<ul>
<li><p>What is the right amount of ENS to delegate? Too few and the proposal has no teeth, too much and it might give too much power to a new set of delegates</p></li>
<li><p>Who are the true stakeholders of ENS? Is this proposal overlooking some groups?</p></li>
<li><p>This isn’t a total reformation of the DAO, but a step that can be repeated in the future. Many more proposals should be put forth to improve how the overall governance works, to align the incentives of those voting to participate and make sure they have the best interests of the DAO</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>We built what we thought the world needed</title>
<link>https://blog.vandesande.design/we-built-what-we-thought-the-world-needed</link>
<guid isPermaLink="true">https://blog.vandesande.design/we-built-what-we-thought-the-world-needed</guid>
<pubDate>Tue, 30 Jun 2026 20:25:22 +0000</pubDate>
<description>We built what we thought the world needed, not what it wanted. That’s why we failed. We wanted organizations that would live in the cloud and only follow hard rules. We built a…</description>
<content:encoded><![CDATA[<p>We built what we thought the world needed, not what it wanted.<br>
That’s why we failed.</p>
<p>We wanted organizations that would live in the cloud and only follow hard rules. We built a property ledger that could be used by anyone to manage anything. We wanted an open backend for an open internet. We built a way for people to invest directly into anything.</p>
<p>The world wanted penny stocks and ape pictures. They wanted quick money and cassinos that were open 24/7.</p>
<p>The other day I was reading the docs to invest in a promising startup and realized my money was going to a fund, structured like an spv, who owned shares in a cayman corp, who had a deal with a Delaware llc who was three levels away from the actual cap table. It’s standard.</p>
<p>We built a better system in 2016. You could buy directly from founders, own directly in your wallet, liquid.</p>
<p>The world used it for pumping scams. Nobody else ever wanted to touch that.</p>
<p>I pay my taxes. I don't see where they go. I vote. I can't track where the vote is counted. I can't build my own dashboard. We built a better system than that in 2015. I went to Brasilia and touted that we could "build a better democracy with 100 lines of code". That was probably one of the highlights of my carrier.</p>
<p>I would say the ENS DAO was the model of how everything else should work: transparent, hard rules, uncorruptable.</p>
<p>But the problem is that people are hard to govern, even under the best rules. And we ended up reinventing a lot of existing governance structures to fix our own failings.</p>
<p>This was the ethereum website in 2015. I was the one pushing these pixels and writing the texts. No one told me what to do, I don't even remember how I got assigned the task of building it – I just showed up.  Tokens, Crowdsales, DAOs, it was all there. It's quite naïve in retrospect.</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/we-built-what-we-thought-the-world-needed/01-704.webp" width="1200" height="728" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/we-built-what-we-thought-the-world-needed/02-704.webp" width="1200" height="846" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/we-built-what-we-thought-the-world-needed/03-704.webp" width="1200" height="966" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/we-built-what-we-thought-the-world-needed/04-704.webp" width="1200" height="924" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 4</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>]]></content:encoded>
</item>
<item>
<title>A defense of Tetrahedron Maps</title>
<link>https://blog.vandesande.design/a-defense-of-tetrahedron-maps</link>
<guid isPermaLink="false">caobT8CQvZCbvlTRZuO9</guid>
<pubDate>Tue, 23 Dec 2025 20:12:14 +0000</pubDate>
<description>This very unsphere shape can actually be a great globe</description>
<content:encoded><![CDATA[<p><a href="https://blog.vandesande.design/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball">I have a small obsession about constant area hexagonal map.</a> Maps can serve many purposes, but the ones I am mostly interested in education, their ability to show the world in a way that you can figure out new connections just by looking at them. Hexagonal maps have a strong association with board Games (and Video Games), and I believe it is because games, like maps, are an attempt at creating an idealized model of a piece of the world, a scenario in which from far away, a complex system looks simpler. As if you knew the basic rules, then you could figure out how the game plays out.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-defense-of-tetrahedron-maps/01-704.webp" width="2278" height="1828" alt="">
<figcaption><em>It  feels "playable" doesn't it?</em></figcaption>
</figure>
<p>I wanted to give an upgraded new map for the Impossible Map I've made last year, and so I started working on an expanded version of Holdridge Life Zones mini-map already present on last year's poster.  There's a lot I like about this map: for starters the overall arrangement is inspired by Fuller's "World Island" Dymaxion map, but the external shape is more identifiable as 4 simple hexagons.  And there's a lot you can tell about the world history by looking at the map:</p>
<ul>
<li><p>The multi-millennia challenge that is to go from Africa to the southern tip of South America or Australia.</p></li>
<li><p>How Eurasia, specially from Europe to China, works as mostly a few lifezones that can exchange crops and technology, while Africa and the Americas are more diverse (important for fans of Jared Diamond)</p></li>
<li><p>How Norway to Vinland (Newfoundland) is basically a straight-line with island hopping (this map isn't great at maintaining straight line correpondence, and distances can be up to 30% different, but area is very accurate)</p></li>
<li><p>That Russia, while it has a large coastline, it's mostly surrounded by cold non-navigable waters</p></li>
</ul>
<p>There are some things I don't wanted to improve upon it. For starters, the fact that topography is absent. Mountains as natural barriers have shaped and still shape history to this day, so a map that doesn't scream about Himalayas or the Andes, that doesn't tell you about the Alps that Hannibal had to cross with elephants, is incomplete. A second factor I dislike is how I need to move some smaller hexagons from the African plate so that South America isn't cut. But I do love the fact that you can rearrange the main hexagons and I realized by simply increasing the hex to a circle I could include South America.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-defense-of-tetrahedron-maps/02-704.webp" width="1918" height="1876" alt="">
<figcaption><em>Print these, cut and fold the black lines  and play  build your own map</em></figcaption>
</figure>
<p>In the <a href="https://blog.vandesande.design/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball"><strong>Impossible Map</strong></a> I had made topography appear as more stark shadows. Here I decided to make them as icons for hills and mountains, so that it doesn't interfere with the color scheme for Lifezones. Printing them in large sheets, and playing with different arrangements made me feel more like it's a perfect board for a game whose rules I haven't yet discovered. Certainly more about connections and commerce than war, so it's more akin to Ticket to Ride than to Risk.</p>
<p>But it also made me realize that, while I originally started with a Rhombic Dodecahedron,  I've stretched and combined so many faces that in the end what I have is a Tetrahedron earth! There are many maps based on tetrahedron, like <a href="https://en.wikipedia.org/wiki/Lee_conformal_world_in_a_tetrahedron" target="_blank" rel="noopener">Lee's Conformal</a> or the <a href="https://en.wikipedia.org/wiki/AuthaGraph_projection" target="_blank" rel="noopener">Autagraph</a> but they're usually dismissed because it's hard to think of a less spherical solid than the tetrahedron. But what most people don't realize is that when projected on a globe, a spherical tetrahedron face is very "rounded" and is in fact, very similar to the hexagons presented above.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-defense-of-tetrahedron-maps/03-704.webp" width="1136" height="846" alt="">
<figcaption>Visualizing spherical tetrahedrons. <a href="https://alexvansande.github.io/Gosper-Fractals/globe.html" target="_blank" rel="noopener">Play with one in this link.</a></figcaption>
</figure>
<p>Naturally I've asked myself: what would be the best positions that a tetrahedron can fall on the planet without touching any land? So I did what anyone would do, and <a href="https://alexvansande.github.io/Gosper-Fractals/vertexfinder.html" target="_blank" rel="noopener">built a website for finding tetrahedron vertexes</a>. Go and play around with it. Try to figure out the best position or even click "Scan Map" to search every position possible! I won't give a direct answer because the final results are very subjective. For example, the second best result (measured by least edge distance on land) only does it because it crosses Africa and South America in small slices, but it's not what I would consider a great way to divide the planet in 4 ways.  I've even added a distance to land slider so you can select what counts as "too close".</p>
<figure>
<img src="https://blog.vandesande.design/media/a-defense-of-tetrahedron-maps/04-640.webp" width="640" height="320" alt="">
<figcaption>That line crossing right throng the Red Sea feels like cheating!</figcaption>
</figure>
<figure>
<img src="https://blog.vandesande.design/media/a-defense-of-tetrahedron-maps/05-640.webp" width="640" height="320" alt="">
<figcaption>This is my particular favorite as it separates in logical segments. Set Coastal Distance to 4.</figcaption>
</figure>
<p>So here we have it. Tetrahedrons divides earth in four logical segments, and while we have to include some distortion, each face is similar to what a globe would look like from that perspective, and the faces, because of their great circle shapes, can be faithfully approximated to hexagons – which are of course, the best way to tile a plane.  End of story.</p>
<p>Well, it depends.</p>
<p><strong>Game of Life on a Hexagonal Grid.</strong></p>
<p>As I said, my fascination with maps and specially board games, is about how they simulate complex models using simple rules. Another area where this happens in an interesting manner are zero-player games, like Conway's game of life, or their more interesting modern equivalents like <a href="https://smooth-life.netlify.app" target="_blank" rel="noopener">Smooth Life</a> or <a href="https://sandbox-science.com/particle-life" target="_blank" rel="noopener">Particle Life</a>. Of particular interest is the <a href="https://en.wikipedia.org/wiki/Lenia" target="_blank" rel="noopener">Lenia</a> family, which has found some interesting living specimens that emerge and are able to move, consume matter, reproduce and evolve. One issue in these systems, is that they're very computational heavy: you can only render a tiny minuscule portion of their universe, so small that a Petri Dish feels gargantuan.</p>
<p>I've been asking myself: what if you could come up with simple rules for a very small simulation space and then observe how these rules created more emergent behavior.  But then, and that's the most interesting part, you could figure out what are the rules that govern that emergent behavior and use that to simulate a larger, but coarser grid around it? And then you could observe and do again with another coarser and larger grid again, and keep repeating this until you're basically simulating a whole planet?</p>
<p>It's like observing particles and figuring out how they interact and become molecules. And then simulating a simplified model of these molecules with only the chemistry rules we learn, instead of having to run a physics simulation for every molecule. And then observing the rules of biology based on the emerging behavior of the chem rules. In this way, instead of having to model forest by simulating every single atom, you would be running lots of coarse simulations in many levels, and allowing the lessons learn from one level to set the rules for the next one.</p>
<p>That's how I started playing around with the concept of Hex Life.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-defense-of-tetrahedron-maps/06-704.webp" width="2052" height="1658" alt="">
<figcaption>It's more pretty than useful at the moment. </figcaption>
</figure>
<figure>
<img src="https://blog.vandesande.design/media/a-defense-of-tetrahedron-maps/07-704.webp" width="2282" height="1848" alt="">
<figcaption>Notice the black pigment from the outer edges falling back in the inner simulation</figcaption>
</figure>
<p>HexLife is a fluid simulation that uses a series of pigments, that, much like Particle Life, has a series of interaction rules. Some pigments attract, others are repel, and how these interact often leads to interesting patterns. I only simulate a small universe in the grid in the center and when pigments move away from that grid, instead of wrapping around or being ignored, they're picked up by another simulation that surrounds it. That simulation also has similar rules for how colors interact, but it's run on a more coarser grid. Right now it's very buggy and barely functional but the goal is to have it expand from the size of a few molecules to a whole planet, all running from a standard desktop computer.</p>
<p>I am using a hex grid. This would be much more straightforward if I didn't, as having different resolutions in the same square grid is a lot easier, but for some reason I'm doing the more complicated way. And what does the planet looks like?<br></p>
<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/a-defense-of-tetrahedron-maps/08-554.webp" width="554" height="482" alt="">
</figure>
<p>Right now, Im using an infinite grid outwards, but at some point it probably makes sense to set a boundary that wraps around, like a planet does. If I used the tetrahedron based shape before, that would mean I would have four hexagons arranged inside a single hexagon.  That looks simple enough but I was wondering if I could do better with a single hex for the world. Turns out I can, and the answer was staring at me the whole time.  One of my favorite papers on the subject of hexagonal maps is called <a href="https://archive.bridgesmathart.org/2017/bridges2017-237.pdf" target="_blank" rel="noopener">"flow snake earth"</a> by Jacob Rus and describes many ways in which a hexagon can be folded into a sphere. One of the first is achieved by a simple folding into two triangles. A similar approach was made by Oscar Sherman Adams back in 1920 which resulted in this interesting gem:</p>
<figure>
<img src="https://blog.vandesande.design/media/a-defense-of-tetrahedron-maps/09-372.webp" width="372" height="322" alt="">
<figcaption>"Adams World"</figcaption>
</figure>
<p></p>
<p>I really felt it could be improved by having an equal area projection so I decided to take on the challenge. I also wanted the poles to be similar to a hexagon so I divided each hemisphere into 12 triangles that would slowly transition from a hex into a triangle. This is the final result.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-defense-of-tetrahedron-maps/10-704.webp" width="1024" height="1096" alt="">
<figcaption>Is it any better? Not sure.</figcaption>
</figure>
<p>It definitely creates a lot more unrecognizable shapes that our previous hex projection did not. You could think of this in 3d as two Tetrahedrons glued to one face, or a Tetrahedral bipyramidal earth. It does allows you to tile the plane and has a hexagonal grid subdivision which is useful for my Hex Life concept.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-defense-of-tetrahedron-maps/11-704.webp" width="1692" height="854" alt="">
</figure>
<p></p>
<p>Anyway, this is a summary of things I've been thinking that are map related which I'm sharing with the world.</p>
<p></p>
<p></p>]]></content:encoded>
</item>
<item>
<title>Analysis of Ranked Choice voting in 5.19 (Governance Distribution Pilot)</title>
<link>https://blog.vandesande.design/analysis-of-ranked-choice-voting-in-5-19</link>
<guid isPermaLink="true">https://blog.vandesande.design/analysis-of-ranked-choice-voting-in-5-19</guid>
<pubDate>Tue, 29 Oct 2024 17:52:19 +0000</pubDate>
<description>The DAO has voted and it has approved EP5.19 with the project having being set as a budget of 30k. Since I am a big governance geek and I have been vocal about my issues with…</description>
<content:encoded><![CDATA[<p>The DAO has voted and it has approved <a href="https://discuss.ens.domains/t/ep-5-19-social-governance-distribution-pilot-program/19759" target="_blank" rel="noopener">EP5.19 with the project having being set as a budget of 30k</a>. Since I am a big governance geek and I have been vocal about my issues with Ranked Choice voting and its alternatives I’d like to analyze the resulting data.</p>
<p>Before, I’d like to clarify that this is a debate on how different voting methods lead to different result and not a complaint about the result itself. I would have been writing this regardless of the outcome. In fact the choice I voted as my first choice did not win and there is no way of analyzing the data that it would’ve won.</p>
<p>First, probably the best graphical analysis of the vote can be seen on <a href="https://dhive.io/proposal/1478/analytics" target="_blank" rel="noopener">https://dhive.io/proposal/1478/analytics</a><br></p>
<figure>
<img src="https://blog.vandesande.design/media/analysis-of-ranked-choice-voting-in-5-19/01-704.webp" width="1712" height="1352" alt="Screenshot 2024-10-29 at 1.01.45 PM">
</figure>
<p>The vote’s purpose was both to approve the pilot program and to decide its budget. There were three different budgets, let’s call them Big, Medium and Small, and the option of Rejecting the program as a whole, which set the budget at 0.</p>
<p>Looking at the graph above we can see some interesting things: first, the 10 largest votes represented 90% of the final voting power, and this is the main issue the pilot program is trying to address. The second interesting thing is that everyone’s first choice was roughly split equally in 3 ways, with only one major vote outright rejecting it. For those used to First past the post, even with runoff elections, “vote splitting” is a bad thing, but ranked choice vote is designed to solve that.</p>
<p>In the current scenario the only vote to reject the proposal received the least amount of votes, so that ballot’s voting power was then redirected to the Small option, leading it to reaching over 50% of the votes and therefore winning.</p>
<p>Another visualization of the same data is below:</p>
<figure>
<img src="https://blog.vandesande.design/media/analysis-of-ranked-choice-voting-in-5-19/02-704.webp" width="1154" height="852" alt="Screenshot 2024-10-29 at 1.18.11 PM">
</figure>
<p>First, second and third choices are here visualized as different shades of blue. We can see the same scenario: the option for a budget of 0 was the least voted, so these votes were then transferred to the Small option (blue arrow), taking it over the 50% line (red dotted line). But interestingly, this was the ONLY moment where a second choice ballot was considered. The second choice values of the voters that voted for all the other options were never considered. This could lead to some strategic voting: voters who want the largest possible budget would do well of changing their voting preference to put Medium as their first choice and Large as second.</p>
<p>In fact if instead of a ranked choice, let’s assume this election was an approval voting. And for simplicity’s sake, let’s also assume that voters “approved” their first and second choices and did not approve their third and fourth.</p>
<p>In this scenario, the small budget would’ve won 51% of the approval, as it happened with the Instant Run Off method. But the Medium Budget would’ve received an 87% approval! A Big budget would’ve received 49% and the rejection is at 12%. This is because in the current Instant Runoff, the secondary options of most ballots are not being taken in consideration, we are only counting the secondary options of candidates who were eliminated in early rounds.</p>
<p>However, if we assume all voters approve their top 3 preferences, then Small and Medium are tied. This would basically be an election on the least rejected option and it would ignore voters preferred outcome.</p>
<p>This means that if the choice was only between 60k and 30k, then the Medium sized budget would’ve won by a large margin. We can graph all those choices, using the exact voting data as follows:</p>
<figure>
<img src="https://blog.vandesande.design/media/analysis-of-ranked-choice-voting-in-5-19/03-704.webp" width="1124" height="666" alt="Screenshot 2024-10-29 at 2.24.21 PM">
</figure>
<p>Putting all the options like this, is called a Condorcet Analysis. We can see that a Medium Budget would’ve been preferred by all voters over any other option (although it’s a very close call when compared to a small budget). The Medium option is what is called a Condorcet Winner, meaning it wins over all other options. The NONE option is a Condorcet Loser, as it loses all one to one comparisons.</p>
<p>This analysis also helps us see how the vote can be changed. Before, a voter that wanted a larger budget would do well by switching their vote from Large first and Medium second into a Medium first and Large second. In this Condorcet scenario that wouldn’t matter, as the Medium x Large preference is very strong.</p>
<p>In this scenario however we can see the closest comparisons are Medium vs Small and Small x Large, both that are almost a tie. But unlike the previous example, a voter who’s interested in the smaller budget possible doesn’t have many options rather than changing someone’s else vote from ranking Medium over Small to the opposite.</p>
<p>There are many ways to tally a Condorcet Election but when there is a clear Condorcet winner, then they always result the same. What is in my opinion the most straightforward method is Copeland/Roundrobin, in which you just count up the victories.</p>
<p>The only issue here is when there is no clear Condorcet winner, then a tie could occur. For example, a big voter that preferred Big over Small over Medium could change the metrics so that the last two disputes would result in a tie. This is why we need to have separate tiebreaker metrics. Here are them for this data set:</p>
<table>
<tr><th></th><th>Victories</th><th>Avg Support</th><th>Margin of Victory</th><th>Worst Defeat</th></tr>
<tr><td>Medium (60k ENS)</td><td></td><td>70.5%</td><td>41.8%</td><td>0.0%</td></tr>
<tr><td>Small (30k ENS)</td><td></td><td>63.1%</td><td>40.1%</td><td>0.2%</td></tr>
<tr><td>Big (90k ENS)</td><td></td><td>45.7%</td><td>27.7%</td><td>50.1%</td></tr>
<tr><td>None (0 ENS)</td><td>-</td><td>20.0%</td><td>0.0%</td><td>77.5%</td></tr>
</table>
<p>In the current Data Set, the Medium Budget has 3 victories. It also has an average of 70% support across all comparisons, it has the highest average margin of victory and has the lowest rejection.</p>
<h3 id="h-conclusion">Conclusion</h3>
<p>This has been a close election. While the proposal itself was widely approved (as seen by the low numbers of the NONE option), the highest budget was unlikely to win. Medium vs Small budget were a close call, and the result could’ve changed depending on the vote method.</p>
<p>But most important of all is the transparency of the election and it is my belief that Round Robin elections provide more of that.</p>]]></content:encoded>
</item>
<item>
<title>Gosper World - a novel world map made of hexagonal-like fractals (or, how I made Matt Parker’s Impossible Ball)</title>
<link>https://blog.vandesande.design/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball</link>
<guid isPermaLink="false">U7ntcrg62Ph9AHAJy6ge</guid>
<pubDate>Thu, 08 Aug 2024 16:04:19 +0000</pubDate>
<description>This is a blog format of the presentation given at the Bridges Conference of Mathematics and Art 2024 in Richmond. The original paper the presentation is based on can be found on…</description>
<content:encoded><![CDATA[<p><em>This is a blog format of the presentation given at the Bridges Conference of Mathematics and Art 2024 in Richmond.</em> <a href="https://archive.bridgesmathart.org/2024/bridges2024-507.html#gsc.tab=0" target="_blank" rel="noopener"><em>The original paper the presentation is based on can be found on the Bridges Website.</em></a> <em>You can also</em> <a href="https://hexagonal.earth" target="_blank" rel="noopener"><em>download the poster</em></a> <em>and print it in large format.</em></p>
<h3 id="h-is-it-possible-to-wrap-a-sphere-using-only-hexagons"><strong>Is it possible to wrap a sphere using ONLY hexagons?</strong></h3>
<p>This is the question that started me in this journey and the one we will be exploring. The answer has some surprising implications, from the big to the fun. In the bigger side, for instance, Uber stores almost all of its geographical information on ride and traffic data using hexagons around the earth. It argues that doing it facilitates computing <a href="https://www.uber.com/en-BR/blog/h3/" target="_blank" rel="noopener">approximate radius and distance information</a>. Starlink also <a href="https://en.m.wikipedia.org/wiki/File:Ukraine_Starlink_Coverage_-_black.png" target="_blank" rel="noopener">seems to use hexagons</a> for its geographic data. I said “almost all” because these systems always uses some pentagons in order to wrap around the world.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/01-704.webp" width="1028" height="922" alt="Uber&#x27;s H3 system, pentagons are highlighted ">
<figcaption>Uber's H3 system, pentagons are highlighted</figcaption>
</figure>
<p>In the less serious side, many games (both digital and board game) also use hexagonal tiles because it facilitates movements, since all neighboring tiles have the same distance and you don’t need to deal with special cases of “diagonals”. Some famous examples include D&amp;D, Settlers of Catan and Civilization (starting on version IV). Civilization is an interesting example because despite being a simulation of the world’s history, its “earth map” is <a href="https://civilization.fandom.com/wiki/Earth_(map)_(Civ6)?file=Earth_%28Civ6%29.jpg" target="_blank" rel="noopener">actually a cylinder</a>, with unit movement wrapping around the east-west axis, but unable to go over the poles. This results in a largely exaggerated northern hemisphere, which might be intentional for gameplay.</p>
<p>Is there any alternative in which the map doesn’t use pentagons, nor uses a cylinder to map the earth? Standup mathematician Matt Parker, when criticizing the UK’s symbol of a soccer ball made of hexagons has called the construction <a href="https://www.youtube.com/watch?v=_cAl3FlQZ9Q" target="_blank" rel="noopener">“mathematically impossible”</a> and petitioned the English government to change it. Map designer David Swartz has also called such map <a href="https://dmswart.com/2018/11/27/a-mathematically-impossible-hexagonally-tiled-world-map/" target="_blank" rel="noopener">“impossible”</a> and when attempting to create a hexagonal map based on an icosahedron projection has simply filled in the missing bits with inexistent ocean, <a href="https://en.wikipedia.org/wiki/Build_the_Earth#:~:text=Build%20The%20Earth%20was%20created,experience%20and%20construct%20the%20world." target="_blank" rel="noopener">not the first time this was done</a> with that type of map.</p>
<p>Well, you know what they say, when a mathematician says something is impossible…</p>
<p><strong>It’s because it is. They have proof.</strong></p>
<p>In this case the “proof” comes from Euler’s rule for polyhedron’s, which state that there is a constant relationship between the number of faces, vertices and edges of any polyhedron resulting in this formula:</p>
<p><math alttext="v - e + f = 2"><mrow><mi>v</mi><mo>−</mo><mi>e</mi><mo>+</mo><mi>f</mi><mo>=</mo><mn>2</mn></mrow></math></p>
<p>If we assume that all faces will be n-sided polygons and each vertices connects 3 edges (more on that later), we can rewrite the function in this way:</p>
<p><math alttext="\frac{n}{3} - \frac{n}{2} + f = 2"><mrow><mfrac><mrow><mi>n</mi></mrow><mrow><mn>3</mn></mrow></mfrac><mo>−</mo><mfrac><mrow><mi>n</mi></mrow><mrow><mn>2</mn></mrow></mfrac><mo>+</mo><mi>f</mi><mo>=</mo><mn>2</mn></mrow></math></p>
<p>Which is then rearranged in this formula:</p>
<p><math alttext="f = \frac{12}{6 - n}"><mrow><mi>f</mi><mo>=</mo><mfrac><mrow><mn>12</mn></mrow><mrow><mn>6</mn><mo>−</mo><mi>n</mi></mrow></mfrac></mrow></math></p>
<p>This formula will tell you how many faces you will need in order to make a polyhedron with n-polygonal faces. It results in this helpful little table:</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/02-704.webp" width="1264" height="854" alt="special case of Euler&#x27;s formula applied to regular n-polygons with 3 faces per edge.">
<figcaption>special case of Euler's formula applied to regular n-polygons with 3 faces per edge.</figcaption>
</figure>
<p>This is a demonstration for the special case of 3 faces per vertice, there are longer proofs that will deal with other cases that are beyond the scope of this post. Suffice to say it’s truly impossible to make a real spherical polihedron out of pure hexagons. So am I done? Of course not.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/03-704.webp" width="882" height="782" alt="Wrapping a globe with an isomorphic network of hexagons. Even AI got confused with the assignment (see area near canada)">
<figcaption>Wrapping a globe with an isomorphic network of hexagons. Even AI got confused with the assignment (see area near canada)</figcaption>
</figure>
<p>But that’s not the question being asked here: rather I want to know if there are ways to <strong>wrap a sphere using hexagons</strong>, like an isomorphic network. This lifts a few constrains, allowing hexagons to be stretched, folded or even to connect to other neighbors in two different ways. In 2017, <a href="https://archive.bridgesmathart.org/2017/bridges2017-237.pdf" target="_blank" rel="noopener">Jacob Rus published a great paper</a> on Bridges showing a process that could be applied to the tetrahedron, octahedron or the tetrakis hexahedron.</p>
<h3 id="h-constructing-the-gosper-world-map">Constructing the Gosper World Map</h3>
<p>In this paper we are picking the Rhombic Dodecahedron instead. I’ve chosen this shape because it’s more “roundish” than the aforementioned shapes used in Rus’ paper. A rhombic dodecahedron can also tile a space like the hexagon tiles the plane, so it feels more like the 3D equivalent of the hexagon. But most importantly for our purposes it has 12 faces which can be colored in 4 main “groups”. We then project the earth in the Rhombic Dodecahedron (based on <a href="https://geo20agostosbc.files.wordpress.com/2018/03/pseudoglobo-rombicdodecaedro.pdf" target="_blank" rel="noopener">Carlos Furuti’s projection</a>). Finally, we unwrap the rhombic dodecahedron in it’s corresponding network. It gets its name from its “Rhombi”-shaped like faces which are almost a golden rhombus (two equilateral triangles) so let’s stretch each rhombus a little bit until they all fit together.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/04-704.webp" width="2596" height="970" alt="">
</figure>
<p>The result is the world tiled in four hexagons. Each hexagon connects to the other 3 hexagonal tiles in exactly two ways. The result is that if you have two sets of each tile you can create a very simple board game in which pieces move in any of the six hexagonal direction and it allows them to traverse the globe even through the poles. In this animation we can see the pawn on our little game starting in Africa and going in a straight direction, crossing over Asia, the Pacific Ocean, then South America near Antarctica and back to Africa.</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/xrAzKjfbSiQ" title="YouTube video" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<p>There are some other interesting arrangements we can find by moving our pawn around. This is one of my favorites:</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/05-704.webp" width="2840" height="1992" alt="The Dymaxion map compared to a similar arrangement of the Gosper map.">
<figcaption>The Dymaxion map compared to a similar arrangement of the Gosper map.</figcaption>
</figure>
<p>It reminds me of Buckminster Fuller’s Dymaxion map, which is one of my favorite maps ever designed. Fuller created it in an attempt of showing the world not as separate continents but rather a single continent, surrounded by a single ocean, as a reminder that we are all one people traveling together in this spaceship earth. It’s a beautiful and striking map, but some people might be turned off by its weird spiky border. Using this technique we were able to recreate the same “spaceship earth” view with a more simplified hexagonal border. We can still go one step further: since all hexagons are flat, we can actually cut and rearrange them in any way we want, making making your own map as simple as putting a puzzle back together.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/06-704.webp" width="2696" height="1788" alt="Removed a slice from the African Tile so that Brazil could be in one piece.">
<figcaption>Removed a slice from the African Tile so that Brazil could be in one piece.</figcaption>
</figure>
<p>One of the most interesting arrangements we found was this one, in which the Americas, Europe and Africa are in a more classic north-south arrangement, Australia is now “up” and we can still see Antarctica as a whole continent instead of spread out in the bottom. Even New Zealand is there.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/07-704.webp" width="2644" height="1346" alt="Arrangement found by Felipe Van de Sande Araujo, from NTNU ">
<figcaption>Arrangement found by Felipe Van de Sande Araujo, from NTNU</figcaption>
</figure>
<p>Of course, this uses only the original four hexagons. But one neat thing about a hexagonal grid is that it can be subdivided into smaller hexagons to any resolution we desire. The only issue is that hexagons can’t be perfectly subdivided into smaller ones and there will be some weird overlaps between hexagonal children (in Uber’s H3 system cells will change their parents depending on the resolution). This can be avoided by using instead the Gosper Island, a fractal which is the result of an infinite subdivision of hexagons. It has the same six-sided connectivity of the hexagon, but it can be split into seven perfectly self similar copies of itself.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/08-704.webp" width="2490" height="1094" alt="">
</figure>
<h3 id="h-the-resulting-map">The resulting map</h3>
<p>Putting it all together here is the Gosper World map, a map unlike any you’ve ever seen before:</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/09-704.webp" width="2003" height="1071" alt="The Gosper World map in all its glory, using the Blue Marble imagery from Nasa">
<figcaption>The Gosper World map in all its glory, using the Blue Marble imagery from Nasa</figcaption>
</figure>
<p>Some things to note about the map. The areas are constant, so the sizes of continents you see more closely resemble what they truly are. If we leave the original grid visible, it becomes even easier to estimate areas by counting. By an interesting coincidence, the big Gosper arrangement highlighted has approximately 2.6 million square kilometers, or 1 million square miles (one of the rare examples you’ll find of me using imperial units). By counting them, it’s obvious that Africa fills about 12 of the big gosper shapes, while Greenland barely fills one: and indeed Africa has 11.7 million square miles (30 M km²) while Greenland has only 2 M km² or 0.8 million square miles (a relationship that is not immediately obvious by, say, <a href="https://en.wikipedia.org/wiki/Web_Mercator_projection#/media/File:Web_maps_Mercator_projection_SW.jpg" target="_blank" rel="noopener">looking at google maps</a>).</p>
<p>Unlike <a href="https://en.wikipedia.org/wiki/Equal-area_projection#/media/File:Lambert_cylindrical_equal-area_projection_SW.jpg" target="_blank" rel="noopener">other constant area maps</a>, however, continents are easily identifiable, its easy to see how they connect to each other and Antartica can be seen in it’s full shape and not as a distorted band in the bottom. As mentioned previously, you could simulate a transpolar route by simply making simple hexagonal movements. It’s also possible to understand where each part of the map wraps around to by following the arrows.</p>
<p>Distances however do vary a little bit more, but that distortion is roughly constant on the whole map, instead of concentrated on the edges. A good tool to see how that distortion works is by drawing circles of the same size on the globe and seeing what happens on the resulting map. It’s called a Tissot Indicatrix and it here it is for the Gosper map and some other more classical maps.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/10-704.webp" width="2862" height="1236" alt="Gosper projection on the left, Robinson on the top-right, Dymaxion on the bottom-right">
<figcaption>Gosper projection on the left, Robinson on the top-right, Dymaxion on the bottom-right</figcaption>
</figure>
<p>And so this is it. I hope I have convinced you that this method creates rather interesting maps with very useful properties. And it can even be used to make a soccer ball made only of hexagons!</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/11-704.webp" width="1518" height="1388" alt="It&#x27;s not very round, nor very pretty (it&#x27;s my first time sewing anything in decades) but the &quot;impossible ball&quot; is very much possible.">
<figcaption>It's not very round, nor very pretty (it's my first time sewing anything in decades) but the "impossible ball" is very much possible.</figcaption>
</figure>
<hr>
<h3 id="h-show-us-where-you-cheated">“Show us where you cheated!”</h3>
<p>At this point the presentation ends and we have a few minutes for questions. A hand goes up in the back.</p>
<p>– HOW DARE YOU!</p>
<p>It’s mathematician and standup comedian <strong>Matt Parker</strong>, who at this point I had no idea was in attendance.</p>
<p>– NOW GO BACK TO YOUR SLIDE AND SHOW YOU WERE YOU CHEATED</p>
<p>This is completely true story.</p>
<p>I wasn’t expecting him so I tried answering as best as I could at the moment. But before I show the “cheat” here, let me explain how in the world was Parker in my short, 10 minute lecture.</p>
<p>Initially, one of the featured Keynote speakers for Bridges 2024 was supposed to be Grant Sanderson from 3Blue1Brown. For personal reasons he wouldn’t be able to attend so Matt Parker was invited instead. Matt, of course, is known among other things for <a href="https://www.espn.com/soccer/story/_/id/37536880/uk-government-answers-petition-change-football-geometry-road-signs" target="_blank" rel="noopener">petitioning the UK government to change its signs depicting the “impossible soccer ball”</a>. I had originally intended my work to be applied to maps, but once I heard this news I decided to take a look on what the process would look like with an actual soccer ball, and, inspired by <a href="https://www.tiktok.com/@jonpaulsballs/video/7242269745716776234" target="_blank" rel="noopener">John Paul’s balls</a>, I started to (re)learn how to sew.</p>
<p>The conference started on a Thursday, my talk was Friday and Matt’s talk was Saturday. I had no idea how accessible Matt would be: maybe he would come in the same morning, give his talk and then fly away to another show, surrounded by a large security detail. If I was lucky I could use my prop on the presentation and then use a photo opportunity to give him before he was whisked away by men dressed in black.</p>
<p>Instead I was pleasantly surprised to bump into him on the very first day. He was there the whole conference, quite approachable and friendly with everyone, so I ended up giving him the badly sewn together ball the first day of the conference. And I guess this picked his curiosity enough for him to attend the talk and ask me a question.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/12-704.webp" width="1280" height="960" alt="&quot;practical question before I take this home with me: what is it made of?&quot;, asked Parker, &quot;You promise me there are no drugs inside?&quot;">
<figcaption>"practical question before I take this home with me: what is it made of?", asked Parker, "You promise me there are no drugs inside?"</figcaption>
</figure>
<p><strong>So, detour over: <em>where’s the “cheating"?</em></strong></p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/13-704.webp" width="5184" height="1450" alt="Different arrangements of the 4 basic tiles. Each tile connects to the same neighbor twice in a different manner.">
<figcaption>Different arrangements of the 4 basic tiles. Each tile connects to the same neighbor twice in a different manner.</figcaption>
</figure>
<p>As mentioned previously, a real polyhedron made solely of hexagons is impossible, so instead I am treating the hexagons as a polymorphic network, meaning that the most important bit is that every point on the network is able to move in six different directions. Remember how I mentioned that the planet is transformed into 4 hexagonal tiles that can connect to each of the other 3 in different ways? That’s the trick.</p>
<p>At any resolution there will always be a few hexagonal tiles that will connect to a neighbor twice. However that doesn’t mean the connection is the same: each of these will result in arriving at the new tile with a new rotation of the “forward direction”.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/14-704.webp" width="1412" height="1124" alt="Are those tiles &quot;true hexagons&quot; or Pentagons in hiding? Your call.">
<figcaption>Are those tiles "true hexagons" or Pentagons in hiding? Your call.</figcaption>
</figure>
<p>If you build a paper (or cloth) model this will result in a few “pointy bits” in your model. You can see this on the highlighted area of the 3D model of earth. In three dimensions you can also think of when two half pipes meet at an angle, forming a triangular cut. Are these true hexagons? Or like <a href="https://www.bradyharanblog.com/the-parker-square" target="_blank" rel="noopener">“Parker’s square”</a> they are really just pentagons disguised in the third dimension? It can be a matter of definitions. I would argue they’re not isomorphic to pentagons because the two connections are not identical: taking each will result your pawn is now moving in a different direction.</p>
<p>If you want to try it out for yourself, I encourage you to <a href="https://drive.google.com/file/d/15vduoPguDLWmGideay7MbuQKQBZB-kCC/view?usp=sharing" target="_blank" rel="noopener">download this PDF</a> and print (or sew) your own “Gosperahedron”.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosper-world-a-novel-world-map-made-of-hexagonal-like-fractals-or-how-i-made-matt-parkers-impossible-ball/15-704.webp" width="2232" height="1702" alt="A DIY template for printing your own impossible soccer ball is available.">
<figcaption>A DIY template for printing your own impossible soccer ball is available.</figcaption>
</figure>
<p>All models are wrong, some models are useful. Wrapping the globe (or a soccer ball) in hexagons in this way has been useful to create a rather interesting and novel world map, one that hopefully can help us all understand better the world we live in and our place in it. Maybe that’s what really matters.</p>
<figure>
<!-- The picture that stood here was already gone on Paragraph: only its caption was left. -->
<figcaption>Warning: if your child has one or more of these printed geometric paper models, it could be a sign that he is a mathhead. Investigate his search history for keywords like "hyperdimensional fractals" or "aperiodic tiling".</figcaption>
</figure>
<h3 id="h-available-for-printing"><strong>Available for printing!</strong></h3>
<p>If you want to decorate your (or someone’s else) office or classroom, <a href="https://hexagonal.earth" target="_blank" rel="noopener">the poster can be downloaded at hexagonal.earth</a> and printed as large as you like. My goal is more to share a new vision of the world.</p>
<figure></figure>]]></content:encoded>
</item>
<item>
<title>The Triangle of Everything</title>
<link>https://blog.vandesande.design/the-triangle-of-everything</link>
<guid isPermaLink="false">alFKAKyP026cp0VsVsUa</guid>
<pubDate>Mon, 01 Jul 2024 19:28:57 +0000</pubDate>
<description>&quot;We’ve basically got it all worked out, except for small stuff, big stuff, hot stuff, cold stuff, fast stuff, heavy stuff, dark stuff, turbulence, and the concept of time.” - Zach…</description>
<content:encoded><![CDATA[<blockquote>
<p>"We’ve basically got it all worked out, except for small stuff, big stuff, hot stuff, cold stuff, fast stuff, heavy stuff, dark stuff, turbulence, and the concept of time.” - Zach Weinersmith</p>
</blockquote>
<p>Physicists often talk about the goal of finding a “Theory of Everything” that would connect all the current areas of knowledges. How does relativity work in the very small scale? How does quantum mechanics behaves in very hot temperatures? Our knowledge of how stars explode seems completely separate from the engineering of buildings, which is a completely separate field of knowledge on how particles decay and form atoms, which seems like a separate science from the origin of time. However nature seldom has clear divisor lines and sometimes, just understanding how things connect can help us understand better the universe we live in. In 2023, Physicists Charles Lineweaver and Vihan Patel made a beautiful step in that direction by publishing <a href="https://pubs.aip.org/aapt/ajp/article-abstract/91/10/819/2911822/All-objects-and-some-questions?redirectedFrom=fulltext" target="_blank" rel="noopener">a beautiful paper</a> which despite it’s captivating content, was densely technical and flew completely under the radar for even the most science leaning public.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/01-704.webp" width="1274" height="1316" alt="Lineweaver-Patel&#x27;s log log chart of all objects">
<figcaption>Lineweaver-Patel's log log chart of all objects</figcaption>
</figure>
<p>This post explores redesigns Lineweaver and Patel’s chart and tries to explain each step and expand it. Let’s explore!</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/02-704.webp" width="1772" height="1474" alt="Am attempt to redesign and explain it.">
<figcaption>Am attempt to redesign and explain it.</figcaption>
</figure>
<p>Anything that has ever existed can be plotted on a chart, a single image that tells the story of the Big Bang, how space relates to time and energy, a poster-sized document about how quarks become protons, how stars become black holes, how asteroids become planets, and even why hippopotamus can’t float. It’s a whole physics lecture on a single page. Let’s walk through it.</p>
<p><strong>A summarized poster version of this article can be found at</strong> <a href="https://triangleofeverything.com" target="_blank" rel="noopener"><strong>triangleofeverything.com</strong></a></p>
<figure>
<!-- The picture that stood here was already gone on Paragraph: only its caption was left. -->
<figcaption>This poster about everything can be found at triangleofeverything.com</figcaption>
</figure>
<h3 id="h-the-powers-of-100">The Powers of 100</h3>
<p>The first problem of trying to fit all particles and objects in a single chart is one of scale. The sun, for example, is over 400x wider than the moon, so in any image that the sun appears whole, the moon will be but a pixel. The largest human structures ever built, would also be barely visible when compared to the moon, but absolutely dwarf a human. In <a href="https://www.youtube.com/watch?v=i93Z7zljQ7I" target="_blank" rel="noopener">animation</a> and <a href="https://www.youtube.com/watch?v=0fKBhvDjuy0" target="_blank" rel="noopener">video</a> this is often addressed by having a continuous zoom to show relative sizes, but on a static media this is best addressed switching to a logarithmic scale.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/03-704.webp" width="1920" height="928" alt="A single solar filament, which extends from its surface into space, are many times larger than our planet.">
<figcaption>A single solar filament, which extends from its surface into space, are many times larger than our planet.</figcaption>
</figure>
<p><math alttext="e"><mrow><mi>e</mi></mrow></math></p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/04-704.webp" width="2470" height="1084" alt="Earth&#x27;s radius is almost precisely Tau (𝝉 = 2𝜋 = 6.283..). This is because the Meter was originally defined based on the circumference of the earth, but the calculation done in the late 1700&#x27;s was off by only 1.5%.">
<figcaption>Earth's radius is almost precisely Tau (𝝉 = 2𝜋 = 6.283..). This is because the Meter was originally defined based on the circumference of the earth, but the calculation done in the late 1700's was off by only 1.5%.</figcaption>
</figure>
<p><math alttext="10^{-35} m"><mrow><msup><mn>10</mn><mrow><mo>−</mo><mn>35</mn></mrow></msup><mi>m</mi></mrow></math></p>
<p>We can then repeat the same for the vertical axis, but now for mass. This essentially becomes what is known as a scatter plot representing the relationship between mass and width of all objects. Below we have a graph representing objects from a red blood cell to the largest mammals and large human mande structures like a Soccer Stadium or the Las Vegas Sphere.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/05-704.webp" width="2228" height="1572" alt="Hypopotamus cannot actually float, instead they skip around the bottom of rivers ">
<figcaption>Hypopotamus cannot actually float, instead they skip around the bottom of rivers</figcaption>
</figure>
<p>The first thing we’ll notice is that almost everything is in the same a diagonal line, with an angle of about 3 to 1. Every 10x increase in width an object will increase 1000x in volume, so objects that are aligned in these diagonals have the same density. And even though objects have different densities, in a log chart these do not reflect much change. The blue dotted line represents the density of water, meaning anything to the right of the dotted blue line will sink into water.</p>
<p>Osmium, earth’s densest natural material, is only 20x denser than water. Helium gas, on the other hand, is about 20x less dense than water. This is why most known objects will fall on roughly on the same line, and this will extend all the way into our sun!</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/06-704.webp" width="1616" height="1208" alt="Yes, Saturn could float on water, it&#x27;s as dense as styrofoam.">
<figcaption>Yes, Saturn could float on water, it's as dense as styrofoam.</figcaption>
</figure>
<p>The smallest object on the above graph is the Itokawa asteroid, which was visited by a Hayabusa space probe and successfully returned to Earth, the first probe ever to accomplish that. Then we have the two moons of mars, Phobos and Deimos and Enceladus a small moon of Saturn, believed to harbor a liquid ocean under its frozen crust. Something interesting happens between those last two however, as objects move from 1 trillion tons of mass they start becoming rounder until they are near perfect spheres. This is because the force of gravity overcomes any molecular bonds that keep objects rigid, and at this scale can be basically considered fluid and acquiring a spherical shape. It’s the first requirement to be classified as a planet, like Pluto (albeit a dwarf one).</p>
<p>Small planets and moons don’t have the gravity to hold very light elements like hydrogen and oxygen, so there’s no atmosphere. Larger planets like Earth, Mars, and Venus do, but they exist in a Goldilocks zone: too big, and they hold so much hydrogen that the planet doesn’t have a surface anymore and becomes a gas giant. Gas giants have a solid core, but there’s no set boundary between their low-pressure surface and their dense core.</p>
<h3 id="heading"></h3>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/06-704.webp" width="1616" height="1208" alt="Yes, Saturn could float on water, it&#x27;s as dense as styrofoam.">
<figcaption>Yes, Saturn could float on water, it's as dense as styrofoam.</figcaption>
</figure>
<h3 id="h-stars-and-planets">Stars and Planets</h3>
<p>So far all objects on the graph are just following the same boring line: but that starts to change when we reach stars. Electromagnetic forces are what keeps atoms away from each other and the main reason our density line becomes constant. But as mass increases, the force of gravity starts to increase too and at some point, when an object surpasses roughly 50% more massive than Jupiter, gravity overcomes Electromagnetic repulsion and the object starts becoming smaller the more massive it is (this process is called Degenerate Matter). Its center is so dense that fusion starts happening, first with Deuterium (heavy hydrogen) and the object starts emitting energy, becoming a Brown Dwarf—a middle ground between a Gas Giant and a Star.</p>
<p>But once the mass reaches a critical point, where the pressure of the atoms overcomes the repulsion, regular hydrogen starts fusing into helium and other elements, releasing a huge amount of energy in the form of electromagnetic radiation (including light) and that energy starts pushing the atoms apart again. We are now in Star territory.</p>
<p>And while the new energy from the fusion of atoms seems to allow stars to keep the same density line, that process is not as stable as the repulsion from electromagnetic forces. If the fuel exhausts too quickly the object will collapse into a White Dwarf. Even more massive</p>
<p>That object now becomes a star. The future lifespan of a star also depends on its mass: a small star, once it exhausts its fuel, will transform into a White Dwarf, which will exist for trillions of years. More massive stars will enter a Red Giant phase (some as Blue Giants or Super Giants), during which their outer layers expand, engulfing any planets in their orbit. Once the fuel of a Red Giant is exhausted, the star will go supernova and shed its outer layers across vast distances. Depending on what remains, it will leave behind a White Dwarf, a Neutron Star, or a Black Hole. Stars have a size limit; beyond 100 solar masses, they don’t have enough energy to sustain their size and will immediately collapse into black holes.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/07-704.webp" width="1750" height="1298" alt="">
</figure>
<h3 id="h-first-boundary-of-the-triangle-black-holes">First boundary of the triangle: black holes</h3>
<p>And thus, we reach the first density limit of our universe: the Schwarzschild radius. Once an object exceeds a certain critical density, it will collapse into a black hole. While all the mass in a black hole is considered to be in a single-point singularity at the center, there is a practical radius outside which light cannot escape. This diameter is directly dependent on the mass, which is why the Black Hole line has a lower angle than the isodensity lines we were following before.</p>
<p>But after we crossed the scale of stars, something else interesting happens: as we look at objects on the scale of galaxies and globular clusters, they also fall into a separate diagonal line, also proportional to volume. However, this isn’t the density of atoms as we know it, but the density of dark matter structures. This indicates one of the reasons Dark Matter is so hard for us to understand: its density is less than that of a typical lab vacuum, and can only be observed in very large objects. Yet, it constitutes most of the stuff in the universe. It is possible that there are smaller objects made of Dark Matter, like Dark Planets and so on, but because they’re so sparse, they're hard to detect by the standard methods used to find exoplanets.</p>
<p>The largest structures we <em>can</em> observe in the universe are Superclusters, like the Laniakea Supercluster, in which the Milky Way is located. We can also see large Voids where almost no galaxies can be seen: but they still have roughly the same density as the rest. Finally, we reach the upper limit in size and mass: our own observable universe.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/08-704.webp" width="1652" height="1228" alt="">
</figure>
<h3 id="h-second-boundary-the-hubble-radius">Second boundary: the Hubble Radius</h3>
<p>Due to the constant expansion of the universe, there are some regions that are moving away from us faster than the speed of light, meaning that not only can light from them not reach us, but nothing else can either. It implies that there’s no way anything happening there can ever affect us or even be known by us. This is why, despite our universe being truly infinite in size, in practice physicists often use the terms “observable universe” and “our universe” interchangeably. The universe is infinite, but OUR universe is the size of the Hubble sphere.</p>
<p>This brings us to the second side of our Triangle of physical bounds: the Hubble radius. No structure in the universe (the whole, infinite universe) can be larger than a Hubble length, because if it were, one side would not be able to communicate with or affect the other in any way, and therefore it can’t be considered a single entity. The observable Universe, “our” observable universe, is not one, but an infinite number of bubbles, as every star and every point anywhere will have its own Hubble Sphere around it, limiting what it can observe, much like the Earth’s horizon is an individual circle around each observer.</p>
<p>But what about the other end?</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/09-704.webp" width="1632" height="1216" alt="">
</figure>
<h3 id="h-third-boundary-the-compton-limit">Third boundary: the Compton Limit</h3>
<p>On the other end, we see objects following the same density line: from blood cells, to microbes, to viruses, to molecules, and individual atoms, all seem to follow roughly the same density as the atoms of which they are made. This is also where we move from biology into chemistry and then into particle physics.</p>
<p>Something interesting happens in the bottom left corner: the darker line represents the Compton Limit. Like the Schwarzschild radius, it’s also directly proportional to mass and not volume, and therefore, in our graph, it appears as a line at a 45º angle to the grid. It represents the size at which Quantum Uncertainty meets the energy level of the particles such that anything with sufficient mass, or small enough size, may spontaneously become a particle-antiparticle pair and annihilate itself. Most of our known particles are in a smaller region at the bottom. Let’s zoom in.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/10-704.webp" width="1654" height="1688" alt="">
</figure>
<p>All known particles reside somewhere on the Compton Line. For particles that don’t have mass, we plot them using their mass-energy equivalent from Einstein’s equation (more on that later).</p>
<p>Particles have a complex network of transformations and decays, also dependent on mass. The Top Quark decays into a Bottom Quark, which then decays into even lighter quarks, each time emitting a W Boson in the process. The W Boson, in turn, decays, emitting a Lepton (an Electron, Muon, or Tau) and their corresponding anti-neutrino (or vice versa). Up and Down Quarks combine to form Protons, Neutrons (and sometimes another Meson), implying that the W Boson itself is instrumental in the origin of most known fundamental particles.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/11-704.webp" width="1870" height="952" alt="">
</figure>
<h3 id="h-mass-is-energy-which-is-temperature">Mass is energy which is temperature</h3>
<p>As mentioned, that graph is also plotting some massless particles like photons by using the E = mc² equivalence, so our vertical mass axis is also an energy axis. As photons become more energetic, their wavelength decreases, so our horizontal axis for spherical diameters also doubles as the wavelength measure for the Electromagnetic spectrum. You’ll notice that the point at which our atomic density line crosses the Compton line is around the Gamma Ray region, which is the radiation emitted during nuclear reactions, like fissioning an atom. It then goes down into X-rays, ultraviolet, our visible spectrum, and ends in long radio waves.</p>
<p>Energy is also equivalent to temperature through the Boltzmann constant. This means that now our Mass-Energy vertical axis is also a temperature one. Since this is a logarithmic scale, the range from 0° to 100°C, in which water can be liquid and all known life exists, is displayed only as a thin blue line. It also crosses the EM spectrum at the Infrared range: what does this mean? All matter emits radiation in a spectrum similar to the temperature it occupies. This is why all objects at room temperature emit Infrared radiation as heat, and as they start getting a little hotter, they begin emitting visible light. The Sun, which is at much higher temperatures, also emits Ultraviolet, and to a lesser extent (especially in solar flares), X-ray and Gamma rays from its corona.</p>
<p>What about even hotter temperatures? The core of the Sun is even hotter and has enough pressure to fuse hydrogen into helium, reaching 15 million °C or 15MK (at very large numbers, the Kelvin and Celsius scales are nearly identical). Some more extreme astronomical events like giant stars, supernovas, or black holes can reach up to 1 billion K. But to find even hotter temperatures, you'll need to come back to Earth, or more specifically to Switzerland, where the Large Hadron Collider can reach up to 100 TeV of energy, equivalent to over a quintillion degrees Kelvin. At these energy levels, protons and neutrons (the “hadrons” being collided) will “melt” into their constituent quarks, and the less energetic quarks will transform into more energetic equivalents. At the highest temperatures the LHC can reach, it was even able to briefly create the Higgs Boson, which imparts mass to other particles. Such temperature levels were last seen in the universe only a few picoseconds after the Big Bang (unless some other alien scientists have beaten us to it!).</p>
<p>And this takes us to our final leg in this journey across the universe: the axis of time since the Big Bang.</p>
<h3 id="h-another-axis-density-and-time">Another axis: density and time</h3>
<p>The Big Bang is often visualized as an explosion of something expanding into nothingness, but that’s far from the truth. As far as we can measure (and we’ve done it to an incredible acuracy!), the universe is infinite: how can something infinite still expand? Expand into what? It’s better to visualize it instead as a continuous decrease in density and temperature. The universe started as extremely hot and unbelievably dense and has become less dense and cooler over time. While this progression is not linear, it has always only moved in one direction. Like any gas, as you increase the density and pressure, you increase the temperature. In the case of our universe, increasing the temperature (or more precisely, the “energy levels”) of particles works like turning back the clock to see how the whole universe was in the early moments. We have conducted practical experiments to recreate the conditions of the universe only a few picoseconds after the Big Bang, and our theoretical models can go even further, down to the Planck Scale.</p>
<p>Wait, the Planck what?</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/12-704.webp" width="1044" height="956" alt="">
</figure>
<h3 id="h-planck-units-a-truly-universal-system-of-measurements">Planck Units: a truly “universal” system of measurements</h3>
<p>In most forms of measurement, units are defined based on something related to human experience (the King’s foot, the meridian of Earth, the boiling temperature of water), and then the universe’s fundamental constants are calculated based on that and added to equations. Planck Units reverse this logic and instead define both the Speed of Light and the Gravitational Constant as one, and the Planck constant to be equal to the circle constant. In short:</p>
<p><math alttext="G = e = 1"><mrow><mi>G</mi><mo>=</mo><mi>e</mi><mo>=</mo><mn>1</mn></mrow></math></p>
<p>This greatly simplifies many physics equations:</p>
<p><math alttext="E = mc²"><mrow><mi>E</mi><mo>=</mo><mi>m</mi><mi>c</mi><mn>²</mn></mrow></math><math alttext="r_s = \frac{2Gm}{c^2}"><mrow><msub><mi>r</mi><mi>s</mi></msub><mo>=</mo><mfrac><mrow><mn>2</mn><mi>G</mi><mi>m</mi></mrow><mrow><msup><mi>c</mi><mn>2</mn></msup></mrow></mfrac></mrow></math></p>
<p>The Planck units also have physical manifestations and converge at the Big Bang itself, as all of them represent some type of either limit of our model or a transition between them.</p>
<p>The Planck Length represents a limit where the effects of relativity over spacetime and quantum uncertainty about location converge, and making sense of that would require a new theory of quantum gravity. Similarly, our current models cannot comprehend anything that happened before one Planck Time (the time it takes light to travel a Planck Length) after the Big Bang, nor anything at temperatures higher than Planck Energy (which is the energy level the universe was at a Planck Time). All known fundamental particles simply cannot exist as we know them at such temperatures and therefore did not exist at the time. To even address it would require a theory of everything, that would unify all forces, including gravity.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/13-704.webp" width="2018" height="1286" alt="">
</figure>
<h3 id="h-everything-is-just-condensation">Everything is just condensation</h3>
<p>The history of the universe can be thought of as fundamental particles condensing out of the background, similar to how droplets of water condense out of water vapor as it cools, thereby creating new conditions for new composite objects to emerge. Droplets of rain will condense into rain, which collects into oceans that then become the solvent for countless chemical reactions and the required medium for life as we know it. Similarly, Bosons serve as the mediators of fundamental forces and, as the background energy of the universe cools, they emerge out of the primordial soup in different flavors, breaking down the fundamental forces that existed before into new ones.</p>
<p><math alttext="10^{-32}"><mrow><msup><mn>10</mn><mrow><mo>−</mo><mn>32</mn></mrow></msup></mrow></math></p>
<p>As the universe further cooled down and expanded, up and down quarks, joined by Gluons, formed Protons and Neutrons, and then, as molecular bond forces overcame the background energy, they became atoms (the universe was barely a few minutes old and had the density of water). Further cooling meant that the kinetic energy of atoms was low enough to be overcome by chemical bonds, allowing atoms to form into molecules, and then for these atoms to condense into stars and planets (this took about three to four hundred thousand years).</p>
<p>During those multiple phases, the universe had different densities and was dominated by different forces (like radiation, matter, or dark energy). In our chart, we can imagine the universe's expansion as a diagonal line going from the left to the right, leaving composite objects in its path. The current density of the universe is roughly the same as that of objects we know to be mostly made of Dark Matter, like galaxies, clusters, and voids.</p>
<figure>
<!-- The picture that stood here was already gone on Paragraph: only its caption was left. -->
<figcaption>The "constrains" for Macro Dark Matter: smaller than an asteroid, maybe a moon, bigger than a coin, very dense.</figcaption>
</figure>
<h3 id="h-searching-for-dark-matter"><strong>Searching for Dark Matter</strong></h3>
<p>We know most of the universe is made of it, yet we don’t know what it is. However, we have been searching for it long enough to know a lot about what it is not.</p>
<p>It’s possible that it's not some new particle requiring new physics, but rather just something made of the particles we already know of, like Hadrons, Quarks, and Leptons. We’ve searched for it using Gravitational Lensing with both <a href="https://en.wikipedia.org/wiki/Optical_Gravitational_Lensing_Experiment" target="_blank" rel="noopener">earth-based observatories</a> and <a href="https://en.wikipedia.org/wiki/Fermi_Gamma-ray_Space_Telescope" target="_blank" rel="noopener">space-based ones</a>. If Dark Matter were just made of hard-to-detect stars or lots of rogue planets, we’d have seen it by now.</p>
<p>We also looked for dark matter in the mineral layer of the Earth, knowing that if it was smaller than a few grams, it would have left a mark there. We didn’t find any there either. There’s also a separate line, proportional to the surface of the cross-section and its mass, that would have left some holes in the Cosmic Microwave Background. We looked, and it wasn’t there either.</p>
<p>Meaning that if Dark Matter is made of large objects of stuff we already know, then there’s a specific region where it would be found. One such candidate would be Primordial Black Holes. These are Black Holes formed not from the collapse of stars but from remnants of small fluctuations in the fundamental plasma in the very early moments of the Big Bang. If they exist, they would have masses between a small moon and an asteroid, with a Schwarzschild diameter between micro and picometers (the size of a proton). Larger than this and we’d have seen them in our Microlensing experiments, and smaller than that, and they would have already faded away due to Hawking Radiation.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/14-704.webp" width="882" height="878" alt="">
</figure>
<p>Or, of course, Dark Matter could also be a new fundamental particle requiring some new physics. If that’s the case, then we also know where it should be: mostly because physicists have been running experiments looking for it – and failing to find it – for many decades. If Dark Matter is some sort of WIMP (Weakly Interacting Massive Particle), then it should be found somewhere between 1 and 50 GeV.</p>
<p>In science, failing to find new data is still new data. In the 19th century, scientists spent decades looking for an entity they called the Aether, which would be the medium for light, by trying and failing to measure the difference in the speed of light in the direction the Earth was moving. All those experiments always led to a result of zero, with increasingly more decimal places.</p>
<p>This inspired Einstein to think about what it would mean if the speed of light was indeed always constant, regardless of the direction of travel, and the result was the Theory of Relativity, which redefined Classical Physics (back then just called “Physics”) for very high speeds. Maybe this is what’s happening, and we just need to adjust our Gravity equations for very large objects? However, this possibility has become increasingly unlikely as we have found galaxies where the center of mass is not the same as the center of mass of the visible stars, suggesting it’s not just a miscalculation of gravity but rather something separate from regular baryonic (non-dark) matter.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-triangle-of-everything/15-704.webp" width="3070" height="802" alt="">
</figure>
<h3 id="h-the-far-future">The Far Future</h3>
<p><math alttext="10^{-30} g/L"><mrow><msup><mn>10</mn><mrow><mo>−</mo><mn>30</mn></mrow></msup><mi>g</mi><mo>/</mo><mi>L</mi></mrow></math><math alttext="10^{100}"><mrow><msup><mn>10</mn><mrow><mn>100</mn></mrow></msup></mrow></math></p>
<h3 id="h-the-end">The end</h3>
<p>On that note, we end our journey. What started as a simple density plot became a story of the universe’s past, present, and future, a map of the things we know, an indication of what we know we don’t know, and maybe where to find those we don’t even know we don’t know.</p>
<p><strong>A print version of the main poster can be found at</strong> <a href="https://triangleofeverything.com" target="_blank" rel="noopener"><strong>triangleofeverything.com</strong></a></p>
<p><em>References:</em></p>
<ul>
<li><p><a href="https://pubs.aip.org/aapt/ajp/article-abstract/91/10/819/2911822/All-objects-and-some-questions?redirectedFrom=fulltext" target="_blank" rel="noopener">All objects and some questions</a>, by Charles H. Lineweaver and Vihan M. Patel (Am. J. Phys. 91, 819-825 2023))</p></li>
<li><p><a href="https://arxiv.org/abs/1410.2236" target="_blank" rel="noopener">Macro Dark Matter</a>, by David M. Jacobs, Glenn D. Starkman, Bryan W. Lynn (arXiv:1410.2236)</p></li>
<li><p><a href="https://arxiv.org/abs/2303.12129" target="_blank" rel="noopener">Dark Exoplanets</a>, by Yang Bai, Sida Lu, Nicholas Orlofsky (Phys.Rev.D 108 (2023) 10, 103026)</p></li>
<li><p><em>Credits for illustrations used: NASA, ESA, Hubble and artists from Wikimedia Community: Ivanov, Pablo Carlos Budassi, SounderBruce.</em></p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>ENS Governance Distribution Program</title>
<link>https://blog.vandesande.design/ens-governance-distribution-program</link>
<guid isPermaLink="true">https://blog.vandesande.design/ens-governance-distribution-program</guid>
<pubDate>Fri, 15 Mar 2024 18:14:27 +0000</pubDate>
<description>The core of the ENS DAO is to ensure the long term viability of the ENS protocol and the Metagov Stewards believe that governance would be healthier if we had a wider set of…</description>
<content:encoded><![CDATA[<p>The core of the ENS DAO is to ensure the long term viability of the ENS protocol and the Metagov Stewards believe that governance would be healthier if we had a wider set of responsible actors participating more actively on it.</p>
<p>The goal with this program is the following:</p>
<ul>
<li><p><strong>Combat voter apathy.</strong> Reaching the required quorum of 1M ENS votes for an executable proposal has become harder. We believe this happens because of governance fatigue, where large delegates often get tired of monthly voting. Thus rewarding responsible delegates as well as having new ones should help.</p></li>
<li><p><strong>Increase decentralization of power responsibly.</strong> Right now the current distribution means that 6 top delegates could agree to execute any proposal.It also means that the largest delegates could stop bad proposals being voted, so they’re also a line of defense. It means distributing power should not be done for the sake of redistribution, but responsibly to parties we believe have a long term interest of ENS in mind, as well are philosophically aligned with the goals of web3</p></li>
<li><p><strong>Create more aligned third parties with the ENS ecosystem.</strong> We believe the more we can have serious parties, who have a stake in the future of ENS, the bigger the reach and long term stay our technology will have.</p></li>
<li><p><strong>Combat stagnation of voting power.</strong> We believe that while some continuity in the work of previous stewards and other parties is good, it’s also healthy to bring new voices in the ecosystem and all of that starts in the voting power distribution.</p></li>
</ul>
<h4 id="h-amounts-and-vesting">Amounts and vesting</h4>
<p>These are the current hardcode limits for ENS governance:</p>
<ul>
<li><p>To propose a social vote on Snapshot: 10K ENS</p></li>
<li><p>To propose an executable vote: 100K ENS</p></li>
<li><p>Quorum needed to execute a proposal: 1M ENS</p></li>
</ul>
<p>The equivalent monetary value is volatile: ENS at its launch was briefly at $50, then for many years stayed in the $6-$12 range and recently has gone up again to $25. We believe that the best way to detach governance decisions from monetary value is with multi year vesting. So all our ENS distributed in this program will be streamed using Hedgey, which will permit the receiver from having immediate voting power, but they can only access the monetary value over the 3 years as a stream.</p>
<p>The only exception will be Steward compensation for term 5. <a href="https://snapshot.org/#/ens.eth/proposal/0x26a5c8dec547837495707e70446d1e7cd874a91f75753c602998f6e70083a266" target="_blank" rel="noopener">Due to the limits of rule 4.8 on Stewards ruling on their own compensation</a>, we can only recommend the stream to be applicable starting on term 6 and beyond. Term 5 ENS compensation will follow the manner in which was defined by metagov term 4, distributed in two tranches at the end of each semester, in June and December. It’s effectively similar to a 1 year vesting.</p>
<h4 id="h-stewards">Stewards</h4>
<p>Maintaining previous compensation, all stewards are eligible for 10k ENS over the full term, paid at the end of each semester. This has been done in previous years and was always listed on the metagov budget. In order to increase this transparency, we also commit ourselves to start doing a more longer process of campaign and outreach to new steward candidates, both to get more quality candidates in the candidate pool, but also to make sure they are widely known by the community before the vote. This will be detailed later.</p>
<h4 id="h-ens-stream-providers">ENS Stream Providers</h4>
<p>As people who have been working deeply into the ecosystem building tools for it, we believe developers who are participating in the Service Provider payment should have a vested long term interest in ENS and a larger voice on its future decisions. To ensure that the decisions are not centralized in companies but rather on the people working on them, ENS will be granted for Individual developers, NOT the companies themselves.</p>
<p>Each participating company will have the option to elect one representative for each 100k USDC/year of their current budget. So a company receiving 300k per year will be eligible to indicate 3 different persons, who will receive 10k ENS vested over the next 3 years (with immediate voting power). These persons must be employed in the company and involved in the day to day decisions, development and outreach of ENS (but there’s no requirement they be doing direct development or technical work).</p>
<h4 id="h-delegates">Delegates</h4>
<p>Being a delegate is a big responsibility that requires time commitment which is done voluntarily. Many of the top Delegates have voting power not because of individual ownership of ENS granted at airdrop, but rather the decision of small individual Airdrop receivers who have delegated to them. Because these votes are seldom redelegated (despite <a href="http://delegationweek.com" target="_blank" rel="noopener">campaigns</a>), it means that a person who was a delegate candidate in 2021 might be stuck for the foreseeable future with the responsibility of decisions for many voters without any compensation.</p>
<p>As such the Metagov Working group proposes picking 3 delegates who fall under the following criteria:</p>
<ul>
<li><p>Have voted on most of the snapshot votes in the past 3 years</p></li>
<li><p>Do not already qualify on the two criteria above, as either steward or stream provider</p></li>
<li><p>Their voting power is a representative of a large amount of individual delegations rather than just holding lots of ENS themselves (we understood this could be gamed by an individuals distributing their own ENS in multiple accounts, but right now we have no reason to believe it applies)</p></li>
<li><p>Have shown responsible and thoughtful voting. <em>How</em> they voted should not matter, just the fact that they are share their thinking and engage with debate, etc</p></li>
</ul>
<p>The exact process for this selection will be detailed later. The selected delegates will be compensated with 10k ENS each, with a 3 year vesting and immediate voting power.</p>
<p>Besides these 3 delegates we will also commit to distribute another 30k ENS through snapshot “incentivized voting” feature, over the full year. The exact process for which will be detailed later.</p>
<h4 id="h-other-companies-and-groups-of-interest">Other Companies and groups of interest</h4>
<p>Metagov Working group is also interested in identifying other parties that would benefit from the program. We hope to find 3 to 5 parties that match the following criteria:</p>
<ul>
<li><p>Are building a large product with ENS at the core of their business, or participate in other organizations who would make sense to be aligned with ENS</p></li>
<li><p>Are aligned with the overall philosophy of Web3, distributed applications and permissionless networks</p></li>
<li><p>Are not already large holders of ENS</p></li>
</ul>
<h4 id="h-conclusion">Conclusion</h4>
<p>With the current distribution plan, Metagov would be distributing about 550 thousand ENS to over 50 different key parties, all who are considered responsible and important partners, who would then be aligned over the long term prospect of ENS.</p>
<p>This is just a preliminary temp check to see if the community agrees with the direction. Numbers, dates, amounts, and even criteria are subject to change, and the total amount is not even completely funded by the current metagov budget.</p>]]></content:encoded>
</item>
<item>
<title>On a unified Policy for Refunding Accidental ENS Transfers</title>
<link>https://blog.vandesande.design/refunding-accidental-ens-transfers</link>
<guid isPermaLink="true">https://blog.vandesande.design/refunding-accidental-ens-transfers</guid>
<pubDate>Tue, 05 Mar 2024 17:16:53 +0000</pubDate>
<description>Every so often someone will accidentally send ENS tokens to the ENS contract. Luckily, the token contract does have a feature that allows the DAO to sweep these back and we have…</description>
<content:encoded><![CDATA[<p>Every so often <a href="https://discuss.ens.domains/t/proposal-to-correct-ens-transfer-to-ens-token-contract/18592" target="_blank" rel="noopener">someone will accidentally send ENS tokens to the ENS contract</a>. Luckily, the token contract does have a feature that allows the DAO to sweep these back and we have refunded them, sometimes <a href="https://snapshot.org/#/ens.eth/proposal/0x9ab53c76cee40d58cb27b244dfa5f9f2763bd8b97b1b4be1dd0f0bf706818fb4" target="_blank" rel="noopener">en masse</a> or sometimes <a href="https://discuss.ens.domains/t/accidentally-sending-ens-tokens-to-ens-contract-address/15696/9" target="_blank" rel="noopener">manually</a>.</p>
<p>I’d like to discuss different approaches for how to handle this in the future. Since the cutoff date of December 6, 2021, when EP3 amended the airdrop to include accidental returned funds, there have been <a href="https://etherscan.io/advanced-filter?tkn=0xc18360217d8f7ab5e7c516566761ea12ce7f9d72&amp;txntype=2&amp;tadd=0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72&amp;age=2021-12-07%7e2024-03-05" target="_blank" rel="noopener">21 accidental transactions</a> to a total of 16 different accounts. As far as I could tell only one has been refunded <a href="https://etherscan.io/tx/0xe3c9e56764fc1564c214e2ef6367eef38429e16a649404ef7cdf33cf332adc2f" target="_blank" rel="noopener">manually from the Metagov Safe</a>.</p>
<p>Here’s a summarized table:</p>
<table>
<tr><th>From</th><th>total ENS sent</th></tr>
<tr><td>0xbb370213…5aCF6472F</td><td>200.567159</td></tr>
<tr><td><strong>0x59e58E2C…C34afee4A</strong></td><td><strong>124.194015</strong> *</td></tr>
<tr><td>Coinbase 6</td><td>123.280146</td></tr>
<tr><td>0x9Fc594bF…607449676</td><td>83.826853</td></tr>
<tr><td>0x078ba09a…0b1750136</td><td>41.708035</td></tr>
<tr><td>0x67C8AAC2…24a76DA1e</td><td>40.687676</td></tr>
<tr><td>Coinbase 10</td><td>29.155459</td></tr>
<tr><td>0x0AE07716…Cfe748179</td><td>26.644159</td></tr>
<tr><td>0x99aC46b1…8FF3d9fC0</td><td>25.24</td></tr>
<tr><td>0x194E9c9d…B83c232c6</td><td>16.3</td></tr>
<tr><td>0x3BFcc944…D6e950A12</td><td>10</td></tr>
<tr><td><em>0x95B564F3…AFAFAcc8a</em></td><td><em>10</em> *</td></tr>
<tr><td>dannyh.eth</td><td>8</td></tr>
<tr><td>0x36fAEFB0…ef29879B0</td><td>6.688963</td></tr>
<tr><td>2022020202.eth</td><td>5</td></tr>
<tr><td>Paribu 5</td><td>1</td></tr>
<tr><td>jefflau.eth</td><td>0.01</td></tr>
<tr><td><strong>Grand Total</strong></td><td><strong>752.302465 ENS</strong></td></tr>
</table>
<p>* requested funds back</p>
<p>It’s important to note that the 3 largest transactions account for 60% of the total. Of these listed, only two have reached out to us asking for the funds back and only the second, asked last year, has received it. User <a href="https://discuss.ens.domains/u/tman64" target="_blank" rel="noopener">@tman64</a> has made a request for his funds, which prompted this study. We can safely assume that these are not the only people who would like their money back and that there others who never bother to contact us – or never managed to find out where to do it.</p>
<figure>
<img src="https://blog.vandesande.design/media/refunding-accidental-ens-transfers/01-704.webp" width="1496" height="772" alt="Screenshot 2024-03-05 at 1.52.00 PM">
</figure>
<p>Finally, if you read the account of the user <a href="https://discuss.ens.domains/u/alexw" target="_blank" rel="noopener">@AlexW</a> we can also get some context on how these accidents happen. In his case he was sending from his exchange account into his newly set up Metamask, but he didn’t know how it worked and thought the ENS address listed on the wallet was actually his own “ENS deposit address”. We should assume that many of these accidents were also sent from exchanges (we can even see two known coinbase and one Paribu address on the list) and are probably from users who cannot execute transactions nor necessarily receive the money on the address.</p>
<p>So what are we to do as a general policy? Here’s what I see are the options:</p>
<p><strong>1) Do nothing and wait for requests</strong></p>
<p>We could simply keep not doing anything and acting on requests on a case by case manner. Metagov would send ENS for <a href="https://discuss.ens.domains/u/tman64" target="_blank" rel="noopener">@tman64</a> and then maybe create a more formal ENS request process later.</p>
<p>It’s the natural inertia action, but it would mean that many users who lost coins would never see them until they found their way to the forum.</p>
<p><strong>2) Multisend send all back</strong></p>
<p>We could simply send all these tokens back to the address they came from. This option would be expensive (according to Multisender app calculator it could cost maybe 7 full ethers which is more than the value of the tokens being sent) and not necessarily reach the intended audience. Tokens sent back to the general Coinbase account are not credited to the original recipient, and either end up lost locked up on an accidental address (again!) or are just a donation to Coinbase.</p>
<p><strong>3) Airdrop them back</strong></p>
<p>A second option would be to create an airdrop, which is a lot cheaper for the sender (but still pricey, Multisender quotes at lease 0.5 ether to do it). It has the advantage that it only sends tokens back to accounts that can prove they actually own the address. On the other hand that would indeed exclude many newbies who sent it via exchanges and would have the same issue as option 1, in which if you’re not aware of the new airdrop, then you’ll never know you have the chance.</p>
<hr>
<p>Personally I started this research based on the post by Tman64, thinking there ought to be a better way than to wait for forum threads to send money back, but honestly it might be the case that there isn’t. These accidents are common, but not common enough to merit a new process, and any alternatives to send automatically will be very expensive or exclude exchange users. Maybe the process can be marginally improved by having a proper form where people go and submit their request, but maybe not even that’s worth it.</p>
<p>Whats your opinion?</p>]]></content:encoded>
</item>
<item>
<title>EP4.9 Voting Reports</title>
<link>https://blog.vandesande.design/my-votes-on-the-ens-streams</link>
<guid isPermaLink="true">https://blog.vandesande.design/my-votes-on-the-ens-streams</guid>
<pubDate>Thu, 07 Dec 2023 14:57:27 +0000</pubDate>
<description>I think it’s a good idea to share my reasoning too, so I will also do it. On Voting Strategy The voting system is an approval voting. The reason we did not pick something like…</description>
<content:encoded><![CDATA[<p>I think it’s a good idea to share my reasoning too, so I will also do it.</p>
<h3 id="h-on-voting-strategy">On Voting Strategy</h3>
<p>The voting system is an approval voting. The reason we did not pick something like Range, Star or Ranked Choice voting is mostly because these are not yet supported on Snapshot (Snapshot does allow Ranked choice, but then you must rank ALL candidates, which doesn’t really work with such large amounts of candidates). That does mean that as a voter with a lot of weight I need to think more strategically. On approval voting, approving all candidates simply pushes the baseline up and results in the same as not having voted at all, and it means that if you “approve” on candidates that are already ahead it might hurt other candidates you prefer but that haven’t made the cut.</p>
<p>So I will put my vote in separate sections of support which are a way to express my uncertainty regarding which of those I will actually put on the ballot.</p>
<h3 id="h-strong-support">Strong Support:</h3>
<h4 id="h-blockful">Blockful</h4>
<p>I’ve met Alex Netto on a workshop at EthBrazil 2022 when he was still a student. We then started collaborating on ideas on how we could improve the ENS base contracts to save gas and improve the user experience by doing single-transaction registrations. He surprised me in all aspects. I’ve seen him drop out of university to create a small dev shop dedicated full time to blockchain development and I’ve seen it grow to a 9 people team, doing mostly ENS related work. While Blockful never had a “product” release, they have been involved in developing smart contract work for Namehash and many other clients. I have 100% confidence that they will deliver a great value for their $300k.</p>
<h4 id="h-namehash">Namehash</h4>
<p>I have been following Namehash development closely for over a year and was lucky enough to have a demo of their ENS registration website last year and I was blown away. They are also doing the smart decision to make most of their innovations for their website into modular libraries that others can use, like NameKit and NameGuard, meaning that great experience can be integrated into many other apps. Whenever I pick a project, I ask myself if that team could push ENS forward on their own, if a meteor struck all other teams: I have no doubt that Namehash could.</p>
<h4 id="h-resolverworks">Resolverworks</h4>
<p>Slobo.eth has been an incredible steward for ENS and I have been following his work since Nftychat, an attempt at making ENS the core of a social messaging platform. While his proposal is the most expensive of all the asks, I think it’s worthwhile.</p>
<h3 id="h-support">Support</h3>
<p>This is a section for projects that I support, but for which my vote might depend on external factors, like which projects are more likely to win.</p>
<h4 id="h-eth-limo">ETH.limo</h4>
<p>While we always talk on how ENS was created to replace 0x134.. address types into more readable names, hashes for content, like IPFS or Swarm (for which we had integrated early versions way back in the Mist days) were as important as the names. While the vision for a fully decentralized web – where devices access content not by going through a central server, but by downloading it in a P2P fashion from other devices – seems to be less fashionable, I still believe in that vision and hope to keep supporting the pieces that will make it possible. And Eth.limo is such important piece. One criticism I would make on their proposal is that it seems much more focused on <em>supporting the current eth.limo infrastructure</em> rather than <em>building news tools that will increase the adoption and support of decentralized websites</em>.</p>
<h4 id="h-unrugabble">Unrugabble</h4>
<p>Premm.eth is a great member of our community and creating support for L2 names and Account abstraction is very important.</p>
<h4 id="h-wildcard-labs">Wildcard Labs</h4>
<p>Stevegachau is a long time ENS contributor. They have a good track record, and they have a very decent ask for the value provided.</p>
<h4 id="h-ens-vision">ENS.Vision</h4>
<p>ENS Vision is the second largest ENS domain registrar so it makes sense to support them. Their proposal is however about Forge, a single product which is interesting but of limited use for the ask price. And after their very <a href="https://www.youtube.com/watch?v=DPEvDqNl5M8" target="_blank" rel="noopener">softball interview with the CEO of Unstoppable Domains</a>, I would love if they clarified their position on UD collaboration.</p>
<h3 id="h-projects-i-support-but-don-t-think-fit-service-providers">Projects I support but don’t think fit Service Providers</h3>
<p>There are some great projects that are Service Providers Candidates. However I don’t think they fit what I believe is the goal of the Stream selection, which is to pick great teams that can improve the ENS system. Instead, they are great projects on their own that either support or promote ENS in many ways.</p>
<p>The following projects are ones I would strongly encourage the new Ecosystem stewards to add as candidates for grants (not necessarily in the requested amount) but for which I don’t think are good fits for service providers.</p>
<ul>
<li><p><strong>Tally</strong></p></li>
<li><p><strong>Ethereum Follow Protocol</strong></p></li>
<li><p><strong>Gnosis Guild</strong></p></li>
<li><p><strong>The Interceptor</strong></p></li>
<li><p><strong>Wayback Machine</strong></p></li>
<li><p><strong>Unicorn</strong></p></li>
<li><p><strong>Alphawallet</strong></p></li>
</ul>
<h3 id="h-unsure">Unsure</h3>
<p><strong>Namesys</strong>, <strong>1w3</strong>, <strong>ESF</strong> and <strong>Handle</strong> are projects that on the surface seems interesting although much of the proposed work intersects a lot with what other teams are also proposing. As mentioned, in an approval voting system, giving away too many votes dilutes your own voting impact and can decrease the chances that a project you prefer will be selected. I will commit to make deeper look on their proposals to make a decision.</p>
<h3 id="h-remaining">Remaining</h3>
<p>I would prefer not to criticize projects in this post. The remaining projects are some who vary from "<em>looks like a good but there are other better teams building similar stuff"</em> to “<em>I don’t get that at all</em>”.</p>]]></content:encoded>
</item>
<item>
<title>Visualization of Money Flows between DAO Wallets</title>
<link>https://blog.vandesande.design/visualization-of-money-flows-between-dao-wallets</link>
<guid isPermaLink="true">https://blog.vandesande.design/visualization-of-money-flows-between-dao-wallets</guid>
<pubDate>Mon, 23 Oct 2023 18:22:49 +0000</pubDate>
<description>Since we are right now discussing the DAO’s new request of funds to the working groups I think it would be a good opportunity to analyze how the DAO has spent it’s money so far.…</description>
<content:encoded><![CDATA[<p>Since we are right now discussing the DAO’s new request of funds to the working groups I think it would be a good opportunity to analyze how the DAO has spent it’s money so far.</p>
<p>First of all, how much money has the DAO received so far?</p>
<h4 id="h-money-in">Money In</h4>
<p>There are multiple ways to tell this story, measuring value in ether, or dollars, at the current time or then. The method I will be using will be to account only for USDC, ETH (and WETH) transfers and measure them at the day of the transfer.</p>
<figure>
<img src="https://blog.vandesande.design/media/visualization-of-money-flows-between-dao-wallets/01-704.webp" width="1764" height="856" alt="Screenshot 2023-10-23 at 11.41.09 AM">
</figure>
<p>Almost 100 million dollars. That’s taking all the ether and USDC transactions coming into the address wallet.ensdao.eth at the time of their transfer. That of course doesn’t tell the whole story: it ignores all the ENS tokens it holds (valued at over 90 million right now but of course that would change if the DAO tried to sell much of it) and because lots of these were transferred in ether then that total value is also relative.</p>
<p>Most of the money came originally from the old registrar controller. But both the old and the new still have a large income of money. Here’s the current <a href="https://etherscan.io/address/0x253553366da8546fc250f225fe3d25d0c782303b#analytics3" target="_blank" rel="noopener">incoming flux of ether for the new and active registrar controller</a>:</p>
<figure>
<img src="https://blog.vandesande.design/media/visualization-of-money-flows-between-dao-wallets/02-704.webp" width="2656" height="1206" alt="Screenshot 2023-10-23 at 1.27.01 PM">
</figure>
<p>You can see that the Registrar controller has an incoming flux of roughly 30 thousand dollars per day, which amounts to almost a million dollars per month! And that seems roughly stable, despite the variations on the larger NFT market.</p>
<h3 id="h-money-out">Money Out</h3>
<p>Now if we measure all the outgoing transactions, then we see that the DAO transferred out almost 70 million dollars and still has 16 to spare in its wallet (again, not counting ENS tokens).</p>
<figure>
<img src="https://blog.vandesande.design/media/visualization-of-money-flows-between-dao-wallets/03-704.webp" width="2260" height="1204" alt="Screenshot 2023-10-23 at 6.01.52 PM">
</figure>
<h4 id="h-endaoment-and-ens-labs">Endaoment and ENS Labs</h4>
<p><strong>Most of that money has been sent to the Endaoment, in two tranches.</strong> I am also ignoring a large transfer of 10k ethers made to Cow Swap (as per EP3.3) because it also had a corresponding incoming transaction of equal value. You can follow up the <a href="https://dune.com/queries/2840308/4743382" target="_blank" rel="noopener">Endaoment composition on this Dune Dashboard</a>.</p>
<p>The second largest slice is the “unspent” portion which represents $16M still on the wallet (this adds ether and USDC so it varies).</p>
<p>The third largest slice is for ENS labs, here represented by the address <strong>coldwallet.ens.eth</strong> as “ENS Labs Cold Wallet”, which is the target of the receiving stream of <a href="https://www.tally.xyz/gov/ens/proposal/112764562576314516994943312429834673309292069549953740415731020720942627228986?chart=0" target="_blank" rel="noopener">that was approved in EP14</a>.</p>
<p>To clarify, EP14 was $4,197,500 for the year 2022, but more importantly it approved a stream of $11,500 <em>daily</em> to ENS Labs, which can be revoked at any time by either party. Here are all the transactions that sent USDC from ENS DAO to the ENS Labs wallet:</p>
<table>
<tr><th>Date</th><th>Value</th><th>Link</th><th>Notes</th></tr>
<tr><td>April 1, 2022</td><td>$1,291,135.63</td><td><a href="https://etherscan.io/tx/0xc6fc145016ca50d3c7fbded8037d3ecd16620a56183a15a51a775f051edd3aa5" target="_blank" rel="noopener">EtherScan</a></td><td><a href="https://www.tally.xyz/gov/ens/proposal/82659277767818009782194204088226418907972756681918239480374274857360772298879?chart=0" target="_blank" rel="noopener">EP8 - Reimburse True Names for expenses and tax obligations</a></td></tr>
<tr><td>July 16, 2022</td><td>$2,263,565.15</td><td><a href="https://etherscan.io/tx/0x7c5cbb7c569f50300ed015b3bcfcb304bea6a94b65767fc32eeeabc688bf8378" target="_blank" rel="noopener">EtherScan</a></td><td><a href="https://www.tally.xyz/gov/ens/proposal/112764562576314516994943312429834673309292069549953740415731020720942627228986?chart=0" target="_blank" rel="noopener">EP14 - Funding ENS Labs Stream</a></td></tr>
<tr><td>November 10, 2022</td><td>$1,349,519.16</td><td><a href="https://etherscan.io/tx/0x7aeb4458d00cf90579042c4b77092387a6c2bde79e9baa6982f304de7ca41729" target="_blank" rel="noopener">EtherScan</a></td><td>stream: 117 days * 11,500 $/day</td></tr>
<tr><td>April 28, 2023</td><td>$1,938,319.17</td><td><a href="https://etherscan.io/tx/0x790f484ce3ffb43600509ee802ef69965231399435f85a926b1c220ca48b788b" target="_blank" rel="noopener">EtherScan</a></td><td>stream: 169 days * 11,500 $/day</td></tr>
<tr><td>July 4, 2023</td><td>$770,817.11</td><td><a href="https://etherscan.io/tx/0xaabbb846b0032ba66819d83c2c19b8e8b4e1e81b13704c8701819be9355acb3a" target="_blank" rel="noopener">EtherScan</a></td><td>stream: 67 days * 11,500 $/day</td></tr>
<tr><td>July 31, 2023</td><td>$310,862.92</td><td><a href="https://etherscan.io/tx/0x84ffcd258ec9145296803c2b56aacfd71298760db5d4a39d55da062caff12073" target="_blank" rel="noopener">EtherScan</a></td><td>stream: 27 days * 11,500 $/day</td></tr>
<tr><td>September 7, 2023</td><td>$436,045.35</td><td><a href="https://etherscan.io/tx/0xca8ea1b02f8a53920547600c626866260986c1dfbf42b817c62b37d66c01ffbc" target="_blank" rel="noopener">EtherScan</a></td><td>stream: 38 days * 11,500 $/day</td></tr>
<tr><td>October 6, 2023</td><td>$335,314.82</td><td><a href="https://etherscan.io/tx/0x357f99e5766993de99efaa29c15a2cebc9e42470fb5f22e43ddb617ea01314e5" target="_blank" rel="noopener">EtherScan</a></td><td>stream: 29 days * 11,500 $/day</td></tr>
</table>
<h4 id="h-working-groups">Working Groups</h4>
<p>Here is the budget of the working groups broken down.</p>
<figure>
<img src="https://blog.vandesande.design/media/visualization-of-money-flows-between-dao-wallets/04-704.webp" width="1798" height="1568" alt="Screenshot 2023-10-23 at 2.08.42 PM">
</figure>
<p>First of all, for all it’s governance overhead, it’s important to note that while most of the ENS governance calls are related to Working Groups budget and steward selection, that they all combined have received about half of what ENS Labs have and a fraction of what is sitting unspent on the wallet.</p>
<p>Second it’s curious to note the sheer amount of transactions sent by these groups, transactions under 100k are not even listed otherwise it would be extremely busy – and 100k is a lot of money!</p>
<p>Also a third point of note is that by far, the largest line item on each group is actually the money they did not spend. In all cases, they have remaining in their wallet more than they have sent to any individual address.</p>
<p><strong>Ecosystem</strong> is the largest working group and most of its largest line items are actually sending to other contracts who then forward it elsewhere. Like the Small Grants or Gitcoin grants, these are just ways to offload the governance of funds to other entities, like Gitcoin or the <a href="https://ensgrants.xyz" target="_blank" rel="noopener">Small Grants</a> program.</p>
<p>Ecosystem stewards provided me with even more detailed categorization which allowed me to put this tree map chart of money flows</p>
<figure>
<img src="https://blog.vandesande.design/media/visualization-of-money-flows-between-dao-wallets/05-704.webp" width="2082" height="1958" alt="Screenshot 2023-10-24 at 12.27.49 PM">
</figure>
<p>It’s important to note that money out is not an expense: I have not tracked the funds inside the pods, how much they were sent out and how much of them remains in the pod (which are still in control of stewards)</p>
<p><strong>Metagov</strong> on the other hand has larger individual line items. The biggest is Karpatkeys fees, paid to manage the sizable endowment. Notice these are only tracking “transactions that were paid” for the total life of the DAO: fees incurred and not yet paid, or expenses accounted for but not sent, etc, are not shown. The third largest slice is the <a href="https://etherscan.io/address/0x4f4cadb8af8f1d463240c2b93952d8a16688a818" target="_blank" rel="noopener">Governance Pod</a> which was listed as the “governance” line item in the working group’s budget. I am still clarifying what it does and what its purpose.</p>
<p><strong>Public Goods</strong> is the smallest group and it reflects on smaller checks. Its largest check was sent to Gitcoin and the second largest is the the Scholarship program, where it selected 6 ENS scholars all over the world for a yearly stipend of $1000/month in a super fluid stream.</p>
<p><strong>Community</strong> working group is a defunct group that was abolished after one term and sent the remaining funds to ecosystem.</p>
<h3 id="h-some-conclusions">Some conclusions:</h3>
<p>DAOs can be a great tool for financial transparency as every cent that the DAO can spend has to be accounted, approved and can be transparently audited on chain. But of course, in order for that to work we need to actually look at it.</p>
<ul>
<li><p><strong>Large amount of small tickets</strong> It’s interesting to notice the large amount of small checks in the groups. On one hand it means that the groups are doing a good job spreading funds through many different initiatives. On the other hand, a large amount of small checks can be harder to audit and it also means that a group that has a significant contribution to ENS as developers don’t have the chance of getting bigger funds in similar scales as ENS Labs has. I hope to expand that point in a future point.</p></li>
<li><p><strong>Unspent funds</strong> Most working groups have a large amount of unspent funds. I believe these should be taken in consideration when making requests for new funds. For example the Ecosystem working group is requesting 400k in new funds while they are sitting on over 600k unspent in their wallet.</p></li>
<li><p><strong>Auditability tools</strong> I’ve done this analysis by downloading the data from ether scan as CSV and playing around in Numbers. Ideally we should be able to build Dune Analytics dashboard and other visualization tools that help visualize these. For example, while the ENS Labs stream has been approved in a vote, I had not seen the full usage of funds until now, and I don’t believe there’s any working dashboard for it.</p></li>
<li><p><strong>Possible warnings</strong> I believe that exercises in using on chain data like these are important defense mechanism for the DAO. As more money keeps flowing, we need to make sure all the data is auditable and we have the right tools to make sure the funds are being properly allocated.</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>Gosperaedron: a new polyhedral for mapping purposes</title>
<link>https://blog.vandesande.design/gosperaedron-a-new-polyhedral-for-mapping-purposes</link>
<guid isPermaLink="false">UhoVD1Zhd9WAuu8zEZtY</guid>
<pubDate>Mon, 22 May 2023 15:43:34 +0000</pubDate>
<description>While it typically falls outside my primary areas of research in crypto usability, I&#x27;ve recently found myself exploring a different rabbit hole. My journey began with an attempt…</description>
<content:encoded><![CDATA[<p>While it typically falls outside my primary areas of research in crypto usability, I've recently found myself exploring a different rabbit hole. My journey began with an attempt to improve upon Uber’s H3 system, involved a phase of laser printing numerous paper rhombic dodecahedrons, and finally culminated in a novel map projection. This map not only enhances the aesthetic appeal of Buckminster Fuller’s “Dymaxion" model of a continental Earth, but also integrates a more organic, fractal-based round border.</p>
<h3 id="h-the-problem-with-maps">The problem with maps</h3>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/cover-704.webp" width="1083" height="551" alt="A map found in Da Vinci&#x27;s library, of uncertain authorship, probably meant to be displayed as a globe.">
<figcaption>A map found in Da Vinci's library, of uncertain authorship, probably meant to be displayed as a globe.</figcaption>
</figure>
<p>Beyond their practical applications, maps serve as a representation of our perception of the world. Even before Mercator introduced his infamous map projection, a famous map found in Da Vinci's personal library (though authorship is disputed) depicted the world in a four-leaf clover format, which in turn might have inspired the cartographer Cahill. In 1909 he published a world map that was later expanded upon by Waterman in what came to be known as the “Butterfly" map. It portrays the world as a set of wings spread out in an impressive arrangement.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/01-704.webp" width="720" height="709" alt="Cahill&#x27;s Butterfly map was also presented as a six leaf clover with Americas duplicated">
<figcaption>Cahill's Butterfly map was also presented as a six leaf clover with Americas duplicated</figcaption>
</figure>
<p>Later, in 1943, Buckminster Fuller introduced the Dymaxion Map projects the globe onto an icosahedron. This model can then be unfolded to depict all continents unified as one landmass, a concept Fuller coined as Spaceship Earth. Intended for educational purposes, it was designed to be assembled as a puzzle by students, thereby enabling them to create their own vision of the world.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/02-704.webp" width="2040" height="1012" alt="Buckminster Fuller&#x27;s map is intended to show Earth as a united island, or &quot;spaceship&quot;">
<figcaption>Buckminster Fuller's map is intended to show Earth as a united island, or "spaceship"</figcaption>
</figure>
<p>While the Dymaxion Map is celebrated for its minimal distortion of landmasses and its striking visual appeal, it has also faced criticism due to its jagged coastlines and seemingly inelegant whitespace.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/03-415.webp" width="415" height="236" alt="Dymaxion but with the oceans all wrong.">
<figcaption>Dymaxion but with the oceans all wrong.</figcaption>
</figure>
<p>Videogames present another interesting domain where different types of maps are experimented with. When YouTuber PippenFTS embarked on a collective project to reconstruct Earth in a square grid within Minecraft, they opted for a Dymaxion projection but modified it to give the Americas a more traditional north-south orientation. The game Civilization employs a hexagonal grid, but its maps are cylindrical rather than spherical, with inaccessible poles and sides that wrap around. Its "real earth map" uses a custom projection that deliberately enlarges areas of high player interest, such as Europe, North America, Japan, and the British Isles.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/04-704.webp" width="8804" height="2961" alt="Compare the sizes of the United Kingdom and Africa in this Civilization map">
<figcaption>Compare the sizes of the United Kingdom and Africa in this Civilization map</figcaption>
</figure>
<h3 id="h-a-better-grid">A better grid</h3>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/05-704.webp" width="2036" height="674" alt="">
</figure>
<p>The square grid is by far the most common: it’s simple to build and can be subdivided into identical squares. Given that all their neighbors are equidistant, hexagons facilitate a more accurate approximation of distances, areas, and radii. While hexagons can be divided into smaller hexagons, they don't fit precisely within the parent hexagon, resulting in distortions.</p>
<p>For instance, Uber employs a hexagonal grid for storing and analyzing geographical data, allowing for multi-level hierarchical data sampling. Uber’s world map draws from Fuller's icosahedral division of the world. However, since an icosahedron cannot be tiled purely by hexagons, it incorporates 12 pentagons at every level. At its highest level, it uses 110 hexagons to encapsulate the globe, each of which is subsequently subdivided into seven smaller hexagons. Each pentagon is further divided into five hexagons and one smaller pentagon. Because child hexagons don’t fit perfectly within parent hexagons, a given coordinate could fall into different hexagonal parents, depending on the resolution level. The H3 grid system is never meant for the end users and therefore they never attempted projecting the word in a single flat image.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/06-704.webp" width="1416" height="434" alt="Uber&#x27;s H3 Hexagonal Grid: the red arrow remains in the same place but it&#x27;s parent hex changes depending on the resolution used.">
<figcaption>Uber's H3 Hexagonal Grid: the red arrow remains in the same place but it's parent hex changes depending on the resolution used.</figcaption>
</figure>
<p>While H3 serves Uber’s data analysis purposes efficiently, it may not be as useful in other contexts: it cannot be neatly unfolded onto a flat area, and if you're developing a hexagonal game or simulation, the unavoidable pentagons pose a problem.</p>
<p>A potential compromise between both grid systems might be the use of a fractal known as Gosper Island, which forms the border of the Gosper Curve or results from subdividing a hexagon into infinitely smaller hexagons. But can you tile a sphere with it? Not without some compromises.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/07-704.webp" width="2346" height="1058" alt="The beauty of the Gosper Curve, which at its boundaries creates the Gosper Island.">
<figcaption>The beauty of the Gosper Curve, which at its boundaries creates the Gosper Island.</figcaption>
</figure>
<p>A hexagon can be folded into several polyhedra, provided you're willing to accept certain concessions, such as allowing a few hexagons to connect to other hexagons in more than one way. While some might argue that this makes them isomorphic to a pentagon (or in reality, an octagon, since in this shape two of these special edge cases always come in contact), the crucial point is that they can still be simulated and folded as hexagons.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/08-626.webp" width="626" height="572" alt="">
</figure>
<p>A Rhombic Dodecahedron—the shape derived from spheres arranged in a hexagonal grid—can have its faces divided into four groups of three rhombi, collectively forming a close approximation of a hexagon (Fig E). This structure can be unfolded into a central hexagon surround- ed by three others, matching the initial hexagonal subdivision of our fractal. By subdividing the Rhombic Dodecahedron in this manner we achieve a new polihedra with fractal faces we are calling the “Gosperahedron” (Fig F, G).</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/09-704.webp" width="1492" height="560" alt="">
</figure>
<p>I haven’t been able yet to define it more properly other than constructing it with some degree of error in my methods but by folding it in paper it’s clear that the shape accommodates the Gosper Islands very naturally. One interesting aspect is how the “edge cases” of the two hexagons that connect to each other twice are always at 90º angles from each other, allowing the faces to connect like two cillynders connecting at each other with a 45º cut.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/10-704.webp" width="1104" height="1432" alt="A paper model of the gosperahedron">
<figcaption>A paper model of the gosperahedron</figcaption>
</figure>
<h3 id="h-a-beautiful-new-way-to-see-our-planet">A beautiful new way to see our planet</h3>
<p>Fuller's Dymaxion map was envisioned as an educational tool—a classroom puzzle—challenging students to create their own map projections, centered as they wished. By using a Gosper Island to project Earth onto a Gosperahedron, the puzzle can be simplified to only four pieces. These pieces can be rotated into various configurations, enabling students to more accurately compare areas, distances, and traversal options on the globe.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/11-704.webp" width="2052" height="1898" alt="3 pieces arranged in a gosper island (with the non-center pieces duplicated). Each red ellipsis should correspond to a circle of same area on earth. ">
<figcaption>3 pieces arranged in a gosper island (with the non-center pieces duplicated). Each red ellipsis should correspond to a circle of same area on earth.</figcaption>
</figure>
<p>The map above displays multiple configurations of a projection centered on the North Pole. The representation of areas and distances is consistent, exhibiting minimal distortion. To illustrate how they connect to each other, the Oceania, Africa, and South America pieces are replicated. By rearranging the pieces, a similar map can be produced with any continent at the center.</p>
<p>A more impactful view can be achieved by relinquishing the conventional orientation of continents, instead aiming to portray Earth as a single island—the "Spaceship Earth"—which humans have gradually discovered and navigated.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/12-704.webp" width="1161" height="1163" alt="Blue Marble&#x27;s Earth, highlighting the Gosper Islands that make the grid. (I&#x27;m sorry about the Iberian Peninsula, but they had it coming.)">
<figcaption>Blue Marble's Earth, highlighting the Gosper Islands that make the grid. (I'm sorry about the Iberian Peninsula, but they had it coming.)</figcaption>
</figure>
<h3 id="h-more-to-explore">More to explore</h3>
<p><strong>Geocoding</strong>: Any location on Earth (or the sky) can be referenced by a unique index, based on either the Gosper Curve (Fig H, I) or the H3 binary index. This index can be represented numerically or textually, providing an open-source alternative to systems like "what3words."</p>
<p><strong>Planetary-Sized Simulations</strong>: The fractal nature of the indexes facilitates the creation of simulations or games on a planetary scale for scale-independent phenomena. The system accommodates variable resolution; areas of high interest can be rendered in finer detail, while less relevant areas can be simulated at a coarser resolution. At the boundaries, computations are performed at the level of their parent cells, recursively reducing in detail until, for areas of minimal interest, simulations are computed for just a few very large hexagons.</p>
<p><strong>Spherical Imaging:</strong> This offers an easy way to store spherical images and videos in a two-dimensional square format. Fractal indexing can enable progressive resolution loading based on bandwidth requirements.</p>
<p><strong>The Earth as a Puzzle:</strong> This unique projection enables Earth to be represented by four separate Gosper tiles. These can be rearranged in a classroom or board game setting to help students understand a 2D projection that maintains area and traversal relationships between continents. All hexagons on the ap represent the same area and distances, helping them understand how big and how far things are. By rearranging the pieces, students can gain a better understanding of the distances between areas, including those across the poles.</p>
<figure>
<img src="https://blog.vandesande.design/media/gosperaedron-a-new-polyhedral-for-mapping-purposes/13-704.webp" width="754" height="1034" alt="">
</figure>
<blockquote>
<p><a href="https://drive.google.com/file/d/1Gys27GPD9CY4MgsoY1uNVMxlKxm0Tj3j/view?usp=share_link" target="_blank" rel="noopener">Download a summary PDF version of this article</a></p>
</blockquote>
<p>If you liked this, feel free to reach out to me at avsa at ethereum dot org, or follow me on avsa.eth.limo on Bluesky</p>]]></content:encoded>
</item>
<item>
<title>Brazil&#x27;s Digital Real</title>
<link>https://blog.vandesande.design/brazils-digital-real</link>
<guid isPermaLink="true">https://blog.vandesande.design/brazils-digital-real</guid>
<pubDate>Mon, 24 Apr 2023 14:15:24 +0000</pubDate>
<description>SEC, Anticrypto Army, while the US is waging war against crypto, Brazil Central Bank attended Ethereal Rio to show off their plan to put the Real on chain.| It&#x27;s not China&#x27;s CDBC,…</description>
<content:encoded><![CDATA[<p>SEC, Anticrypto Army, while the US is waging war against crypto, Brazil Central Bank attended Ethereal Rio to show off their plan to put the Real on chain.|</p>
<p>It's not China's CDBC, but rather a model I predict that will be copied all over the western world.</p>
<p>First, a context: Brazil is fast to adopt new technologies. Everyone already has phones, social media accounts and WhatsApp. Also, Brazil is already a pioneer with digital payments, being <a href="https://oglobo.globo.com/economia/noticia/2023/04/com-pix-brasil-fica-em-segundo-lugar-em-ranking-de-paises-por-uso-de-pagamentos-instantaneos.ghtml" target="_blank" rel="noopener">the second largest market of digital transactions behind India</a>.</p>
<p>Pix, launched in 2020 was adopted much faster than digital payment platforms anywhere else in the world. You can go anywhere with just the phone and assume it will be accepted, even with informal beach vendors.<br>
(sorry for the pic quality)</p>
<figure>
<img src="https://blog.vandesande.design/media/brazils-digital-real/01-704.webp" width="1200" height="1189" alt="">
</figure>
<p>Brazil's "Digital Real" will be launched by 2024. It's a hard deadline because that's when the Central Bank's president term ends and he made that his top priority. With Pix and open Finance already launched, he wants to make sure his legacy is digitalization.</p>
<p>How does it work? Well it's a sort of compromise that is not intended to be revolutionary, rather it's purposefully built to make sure that it is welcomed by the same players of the current system. It's pragmatic, but also innovative.</p>
<p>The goal is NOT to have end users have a digital wallet, but rather focused on financial institutions. It would use Hyperledger Besu (a Consensys developed Ethereum implementation for private networks) to act as a the famous "settlement layer" between financial institutions.</p>
<p>It would be a PoA network: the Central Bank would basically issue licenses to run validator nodes, but it's open to issue those licenses to any bank, fintech and even other civil society organizations.</p>
<p>It has a strong focus on privacy, but not like you expect: since banks are running it, they want to make sure their own transactions are shielded from other banks.</p>
<p>It means all transactions are private and if the government wants your data it must get it via a court order.</p>
<p>The goal is to replicate the same legal structure of the current system, just more efficiently. There is no "government controlled button" on the people's wallets – at least not any more than they have today.</p>
<p><strong>But the interesting, is really how it enables NEW applications.</strong></p>
<p>They're dead serious about it: besides working with Consensys' Besu they have selected Aave as one of their development partners.</p>
<p><a href="https://www.bcb.gov.br/detalhenoticia/17632/nota" target="_blank" rel="noopener">One of their stated goal</a> is to make this local network 100% compatible with the EVM ecosystem and to bridge to it.</p>
<p>A more long term goal is to adopt the Ethereum  standards to create standardized financial (and non financial) instruments: emit national bonds as tokens, to have official land registries using NFTs, to have public universities issuing NFT diplomas, all on the  national chain.</p>
<p>They are fans of DAOs, NFTs, AMMs and all the Ethereum ecosystem innovations, and want to bring them to the national government.</p>
<p>One national chain for everything, ran by multiple nongovernmental institutions. Not revolutionary, but quite evolutionary in my opinion.</p>
<p>(got a new keyboard and it keeps replacing Ethereum with Ethereal and Consensys with Consensus, so sorry for all these typos)</p>]]></content:encoded>
</item>
<item>
<title>Condorcet voting explained from a Graphic Designer&#x27;s point of view</title>
<link>https://blog.vandesande.design/condorcet-voting-explained-from-a-graphic-designers-point-of-view</link>
<guid isPermaLink="false">eFRIy7G0K9BktFvMpYQ7</guid>
<pubDate>Tue, 29 Nov 2022 14:26:13 +0000</pubDate>
<description>On a recent post I’ve written critically of Instant Run-off voting, mainly criticizing it for being too complex to visualize the full state of the vote and that’s unintuitive to…</description>
<content:encoded><![CDATA[<p>On a recent <a href="https://blog.vandesande.design/the-failures-of-instant-run-off-voting-from-a-designers-perspective">post I’ve written critically of Instant Run-off voting</a>, mainly criticizing it for being too complex to visualize the full state of the vote and that’s unintuitive to figure out the winner without tallying up all the votes in your head. I’ve also given a few examples in which the vote result could change drastically by a few voters changing their strategies as well as an example that in a typical race where the most popular candidates were extreme opposites, then the moderate candidates in the middle would be squeezed out. <em>Hard to predict, hard to understand and prone to surprising results</em>: those are the opposite qualities you want from a voting system.</p>
<p>Often the rebuttal is “There are better systems, but Condorcet is too complicated for a general audience”. I want to challenge this notion here by trying to explain visually a series of Condorcet compliant systems, as they would be explained to a live audience during multiple phases of an election: polls before election, a running count during it and the analysis and explanations of the result post the count.</p>
<p>The goal here is not merely to educate voters on how a particular system works in general, but to try to find a self explanatory visualization that could be used to show the current result of a vote.</p>
<h3 id="h-rcv-vs-irv-vs-condorcet">RCV vs IRV vs Condorcet</h3>
<p>First some short definitions:</p>
<ul>
<li><p><strong>Ranked Choice voting</strong> is a system in which you rank candidates by the order of your preference</p></li>
<li><p><strong>Instant Run off voting</strong>, is a specific counting algorithm that takes those ranked votes and spits out a winner. There are many other types of similar algorithms</p></li>
<li><p><strong>Condorcet</strong> is not a specific voting system but <em>a feature of voting systems</em> that states that the if there’s a candidate that would win against all others in a 1:1 round, then that candidate should be the winner, and if there’s a candidate that would lose against all others that it should never be the final winner. <strong>IRV does not guarantee that this will be the case!</strong></p></li>
</ul>
<p>The first problem here is how precisely one can visualize the state of all voter’s preferences. Because of the very nature of the Ranked Choice, if there are N candidates then there is at least N! ways a voter can rank them (more if voters can decide not to rank all candidates or rank candidates in equal positions). Meaning that if there are 5 candidates there will be at least 120 different ballots, if there are 10 candidates there are over 3.6 million possible ballots!</p>
<figure>
<img src="https://blog.vandesande.design/media/condorcet-voting-explained-from-a-graphic-designers-point-of-view/cover-704.webp" width="1990" height="760" alt="A possible way to visualize all current ballots in a 4 way race, in a series of &quot;DNA strips&quot;. Gets increasingly complex as more candidates are added.">
<figcaption>A possible way to visualize all current ballots in a 4 way race, in a series of "DNA strips". Gets increasingly complex as more candidates are added.</figcaption>
</figure>
<p>Probably the best way to visualize the whole race is not to try to show individual ballots but to break down on specific preferences as “different races”. Which is a great because it also happens this is the first step in any Condorcet system. If there’s a candidate that beats all others in a one to one race, then in any Condorcet compliant system that candidate should be the overall winner. But what if there isn’t? That’s where it gets interesting.</p>
<figure>
<img src="https://blog.vandesande.design/media/condorcet-voting-explained-from-a-graphic-designers-point-of-view/01-604.webp" width="604" height="576" alt="A Condorcet table">
<figcaption>A Condorcet table</figcaption>
</figure>
<h3 id="h-condorcet-systems-explained-simply">Condorcet systems explained simply:</h3>
<p>Condorcet are often considered the fairest of voting systems, but are also considered complex and hard to understand. Often because wikipedia articles about it are filled with arcane high magic pentagrams and complex formulas. I hope to challenge that notion.</p>
<figure>
<img src="https://blog.vandesande.design/media/condorcet-voting-explained-from-a-graphic-designers-point-of-view/02-704.webp" width="1280" height="1231" alt="That is NOT how you summon an ancient king to your board of directors.">
<figcaption>That is NOT how you summon an ancient king to your board of directors.</figcaption>
</figure>
<p>As a UX designer I also felt the need to test these out, and therefore I used <a href="http://usabilityhub.com" target="_blank" rel="noopener">Usability Hub</a> to show the tables of results you are about to see to 40 random users (without any explanation on the methods). Then I asked them to explain how they thought the winner was selected and had them rate each of them in a fairness/clarity score.</p>
<h3 id="h-shulze-method">Shulze Method</h3>
<figure>
<img src="https://blog.vandesande.design/media/condorcet-voting-explained-from-a-graphic-designers-point-of-view/03-704.webp" width="1264" height="608" alt="">
</figure>
<p>While no country has yet to implement Condorcet methods on their elections (except a few cities in specific referenda), Shulze has been used extensively in many boards and associations and tech organizations like Ubuntu, Wikimedia, Haskell, Kubernetes etc. It’s also a very complex black box, that uses the concept of “heaviest paths”.</p>
<p>An easier way to visualize it would be a <strong>rank of rankings.</strong> After ranking all pairwise preferences, you sort all possible rankings by the amount of votes that would support that position. In that particular example Charlie is always on the bottom since it has been beaten on all races. But there’s a cycle of winnings between Bob, Alice and Donna. The way Shulze resolves this is to add all votes that would support a full ranking. So the ranking Alice &gt; Donna &gt; Bob &gt; Charlie would be supported by the votes of all people who ranked Alice above Donna (1.8M), as well as all the votes that supported Donna above Bob (1.7M) and Bob over Charlie (2.2M) but it would NOT include the pairs Bob over Alice (because it would contradict the ranking) nor Alice above Charlie (even thou it supports the ranking, indirect links are not counted in the algorithm).</p>
<figure>
<img src="https://blog.vandesande.design/media/condorcet-voting-explained-from-a-graphic-designers-point-of-view/04.gif" width="480" height="240" alt="Each final candidate ranking is supported by different pairs. The sum of all these pairs should give the total score of each ranking. Higher score ranking wins.">
<figcaption>Each final candidate ranking is supported by different pairs. The sum of all these pairs should give the total score of each ranking. Higher score ranking wins.</figcaption>
</figure>
<p>Shulze is, in the opinion of this graphic designer, a hard to describe black box that simply says “trust the algorithm”, which is why it’s so often used in tech companies that, by their own nature, trust algorithms. It’s also probably why Condorcet methods have such a bad reputation as hard to comprehend.</p>
<p>It also rated really bad on the usability test, with most subjects not being able to really understand how it worked. It was rated 2.6 out of 5 for clarity and fairness.</p>
<h3 id="h-ranked-pairs-explained">Ranked Pairs Explained</h3>
<figure>
<img src="https://blog.vandesande.design/media/condorcet-voting-explained-from-a-graphic-designers-point-of-view/05-704.webp" width="1246" height="694" alt="">
</figure>
<p>Ranked Pairs is a little bit easier to visualize than Schulze, but it still is complex. You rank all pairwise races among each other and start making the rank from top to bottom until you find the only possible graph possible to draw, skipping any contradictions.</p>
<figure>
<img src="https://blog.vandesande.design/media/condorcet-voting-explained-from-a-graphic-designers-point-of-view/06.gif" width="480" height="240" alt="Names are arranged by following the ranks from top to bottom, ignoring any later rank that would contradict an already established relationship.">
<figcaption>Names are arranged by following the ranks from top to bottom, ignoring any later rank that would contradict an already established relationship.</figcaption>
</figure>
<p>Ranked Pairs did fairly well in the Usability test, being ranked second on the Clarity/Fairness scale but even thou people felt confident to explain it, many still had misunderstandings.</p>
<h3 id="h-minimax-explained">Minimax explained</h3>
<figure>
<img src="https://blog.vandesande.design/media/condorcet-voting-explained-from-a-graphic-designers-point-of-view/07-704.webp" width="1184" height="568" alt="">
</figure>
<p>Minimax is a lot easier to visualize and understand. You rank all candidates by their worst defeat and pick the one where the least bad one. While it’s guaranteed to always pick a Condorcet winner if there’s one, if there’s none then it might result in picking a <em>Condorcet loser</em>! In this example I’m showing how you could have a candidate that <strong>lost all races</strong> and yet was the winner.</p>
<p>For some, it might also feel unfair or lopsided to pick the least worst, but in a way this is precisely the point of the Minimax method: it’s not about picking the most supported candidate but the least rejected. It’s easy to visualize and understand, but it could be seen to be also very unfair and suboptimal.</p>
<p>In the usability test all subjects could explain it with no problem, by just looking at the above image. However it ranked third in the fairness/clarity score, probably due to the fact that many didn’t feel it was very fair (in the test it was the same score for both).</p>
<h3 id="h-copeland-explained">Copeland Explained</h3>
<figure>
<img src="https://blog.vandesande.design/media/condorcet-voting-explained-from-a-graphic-designers-point-of-view/08-704.webp" width="1260" height="562" alt="">
</figure>
<p>Copeland is probably the most familiar and it’s so common that most people have been exposed to it without ever realizing it or even thinking of it as an election system: it’s often used in sports competition. In Copeland, you separate all pair wise races and add a point for each victory (in some systems there’s also a separate score for a tie or a negative score for a loss). Whoever has the most points wins. It seems simple and straightforward and if there’s a single candidate that wins all races it’s guaranteed to be picked, and if there’s a candidate that lost all of them it’s guaranteed not to be picked.</p>
<p>Copeland doesn’t have a proper system for ties, but this is often solved by using Minimax or simply the average Score of each candidate. While Minimax might feel unfair being applied to all candidates, as a tie breaker it feels fundamentally fairer.</p>
<p>In the usability tests, being shown just the image above and no other explanation, all subjects were able to very easily explain how it worked and it scored 3.6 out of 5, the highest for clarity and fairness.</p>
<h3 id="h-conclusion">Conclusion</h3>
<p>Condorcet methods are highly considered among academics but rarely used in real elections, due to it being considered too complex and hard to understand. Often states and cities that change to Ranked Choice voting adopt the Instant Run-off mechanism by default, but <a href="https://blog.vandesande.design/the-failures-of-instant-run-off-voting-from-a-designers-perspective">IRV is also very hard to visualize and can have chaotic and surprising results</a>, which is not what you want from an election.</p>
<p>Condorcet Pairwise rankings is also the best way to visualize the current state of all votes. While an election with N candidates will have N! possible ballots, it will only have N×(N-1) possible rankings. When considering polling situations (or even lessons learned for the next election) it’s a lot easier to think about what factors could change: in our current example it’s clear that if Bob wants to stand a better chance of winning, it should focus on how it compares not to Alice, the winner, but how it fairs among supporters of Donna, which is at third place. Bob doesn’t even need to win all of Donna’s voters: if just a 5% of them start seeing him in a more favourable light, then Bob would rank higher than Alice in the Minimax tiebreaker. If the tiebreaker was average score, then the result is the same: if Bob wants to win, just focusing on diminishing his overall rejection among other voters would be enough to tip the scale.</p>
<figure>
<img src="https://blog.vandesande.design/media/condorcet-voting-explained-from-a-graphic-designers-point-of-view/09-704.webp" width="1262" height="552" alt="">
</figure>
<p>After running these little experiments it’s been my opinion that Copeland is by fair the most fair and easy Condorcet method, specially when used with Minimax. It’s so easy to understand that it requires no other explanation than a simple table of results. It’s no wonder: billions of people are often exposed to Copeland style competitions and have no issue understanding who is ahead on a given ranking, because it’s used in sports everywhere.</p>
<figure>
<img src="https://blog.vandesande.design/media/condorcet-voting-explained-from-a-graphic-designers-point-of-view/10-704.webp" width="984" height="398" alt="">
</figure>]]></content:encoded>
</item>
<item>
<title>The failures of Instant Run-off voting from a Designer&#x27;s perspective</title>
<link>https://blog.vandesande.design/the-failures-of-instant-run-off-voting-from-a-designers-perspective</link>
<guid isPermaLink="false">IXMA56Jk2YSsSnmqphzp</guid>
<pubDate>Mon, 28 Nov 2022 15:02:50 +0000</pubDate>
<description>Democracy is the heart of modern civilization, elections are the heart of democracy, and a voting system is at the heart of elections. While we can’t blame all modern illnesses on…</description>
<content:encoded><![CDATA[<p>Democracy is the heart of modern civilization, elections are the heart of democracy, and a voting system is at the heart of elections. While we can’t blame all modern illnesses on a improper vote counting algorithm, a failed one certainly ripples back its problem on all society. Luckily this isn’t just an academic argument anymore, with more countries and states experimenting with systems beyond First Past the Post and Two Round Systems. Unfortunately, many of those are now migrating to <a href="https://en.wikipedia.org/wiki/Instant-runoff_voting" target="_blank" rel="noopener">Instant run Off voting</a>, which has so many flaws that it can spoil the whole movement for better voting.</p>
<p>Much has been written on the failures of “<a href="https://en.wikipedia.org/w/index.php?title=Special:Search&amp;search=First-past-the-post+voting" target="_blank" rel="noopener">First Past the Post</a>” (the american presidency system) and the <a href="https://en.wikipedia.org/wiki/Two-round_system" target="_blank" rel="noopener">Two round systems</a> (common in south america, asia and europe), not so much has been written about the failures of IRV, which has been recently started being implemented in Alaska and New York City and other places.</p>
<p><strong>Wait, isn’t Ranked Choice Voting and Instant-Runoff Voting the same thing?</strong></p>
<p>No! Ranked choice is how the ballot is presented. Instant runoff is how the ballot is counted. Ranked Choice, can be a great way to express voter’s preferences and it depends heavily on the context (Approval voting and score voting can be perfectly appropriate depending on your goals too). Instant Run-off is specifically how you take these ranked ballots and find a winner.</p>
<p>Ranked Choice is often promoted as a way to eliminate strategic voting and extremism in elections by picking a moderate candidate that appeals to most people, even if they were not the most popular first choice. <em>While this can be true of ranked choice voting, it’s definitely not the case on IRV, as you’ll see below.</em></p>
<p><strong>Voting needs to be simple to understand and predictable</strong></p>
<p>It’s not enough that voters be educated how a voting system works. It must be simple for them to understand the current state of all voter’s preferences and the result should be obvious and intuitive. And it goes deeper than just announcing the winner, as votes have many stages:</p>
<ul>
<li><p><strong>Before the election:</strong> Polling is a very important part of the election. It’s where voters can understand how everyone else besides them think and how likely each candidate is to win. It helps everyone think strategically, not only on who they’ll vote, but what any given candidate needs to do, and who they need to talk to, to win</p></li>
<li><p><strong>During the election count:</strong> during the count (even if it’s a fast electronic counting system) it’s crucial that voters be informed on the current state of votes, when a candidate still has chance to turn the game around and when a candidate becomes mathematically elected. Surprises in an election count lead to less trust in the system.</p></li>
<li><p><strong>After the election:</strong> the clear state of voting is essential for legitimacy of an election. If there’s a surprising turn of events, all voters must be able to understand what exactly happened, and not simply be asked to “trust the algorithm”. It’s also important as lessons learned for the future: which constituencies should be addressed on the next election, what the losing candidate could’ve done to revert the game.</p></li>
</ul>
<figure>
<img src="https://blog.vandesande.design/media/the-failures-of-instant-run-off-voting-from-a-designers-perspective/01-704.webp" width="1662" height="682" alt="Example of in-count vote visualization. It&#x27;s clear that it&#x27;s impossible for Charlie to reach 50% and it&#x27;s looking increasingly unlikely Bob will be ahead.">
<figcaption>Example of in-count vote visualization. It's clear that it's impossible for Charlie to reach 50% and it's looking increasingly unlikely Bob will be ahead.</figcaption>
</figure>
<p><strong>Instant run-off voting is the opposite of that. It’s unpredictable and extremely hard to visualize the current state of all votes.</strong></p>
<p>Let’s try a similar example as before. If we were to have show a poll of the first choice between these four candidates we might see something like this:</p>
<figure>
<img src="https://blog.vandesande.design/media/the-failures-of-instant-run-off-voting-from-a-designers-perspective/02-704.webp" width="1410" height="898" alt="">
</figure>
<p>It seems Donna is on the lead, but this graph doesn’t show anything about second or third preferences. We could add them like this:</p>
<figure>
<img src="https://blog.vandesande.design/media/the-failures-of-instant-run-off-voting-from-a-designers-perspective/03-704.webp" width="1346" height="758" alt="">
</figure>
<p>This chart clearly paints a different picture! While Donna is in the lead as the first choice, it barely has votes for second choice and very few votes for the third choice. It’s unlikely that she will win this election. But you can’t really tell who would, because this chart doesn’t tell you how the secondary preferences are distributed.</p>
<p>Another option is to present the calculated end result of the polls, often in an animated version that will show you some information like this:</p>
<figure>
<img src="https://blog.vandesande.design/media/the-failures-of-instant-run-off-voting-from-a-designers-perspective/04-704.webp" width="968" height="842" alt="">
</figure>
<p>This does a much better job at showing the result, but not much about the state. It tells nothing about the secondary preferences of Donna and Bob voters. If you are an Alice supporter, who should you be convincing to change their mind? More precisely, what was the process that made these votes be redistributed?</p>
<p>It’s common to explain the proccess in which a winner is chosen with IRV using a Sankey Diagram:</p>
<figure>
<img src="https://blog.vandesande.design/media/the-failures-of-instant-run-off-voting-from-a-designers-perspective/05-704.webp" width="2252" height="1350" alt="">
</figure>
<p>But while Sankey Diagrams are great tools to teach how the voting took place and how IRV works, they still don’t show the current state of voting. In this example, Donna votes are not being counted for any other candidate, yet she cannot win. If Donna is eliminated in an earlier round, or if their supporters move her to a second preference rather than a first, how significantly will the result change? In some cases it could change a lot!</p>
<figure>
<img src="https://blog.vandesande.design/media/the-failures-of-instant-run-off-voting-from-a-designers-perspective/06-704.webp" width="1998" height="762" alt="A &quot;DNA&quot; graph of all votes. Contains all information but it&#x27;s not easy to parse and if more candidates were present it would be basically unreadable.">
<figcaption>A "DNA" graph of all votes. Contains all information but it's not easy to parse and if more candidates were present it would be basically unreadable.</figcaption>
</figure>
<p>The above “DNA map” shows the full picture of all voters. Looking at it closely, you can infer that while Alice and Bob voters support each other, most Donna’s voters actually prefer Charlie. This could have a drastic effect on the race, but these preferences are not being counted towards the final round. Which means that if Donna + Charlie supporters strategically switch their preferences to be Charlie + Donna voters, then Charlie would jump from last place to the forefront of the next round, eliminating Bob (which was the previous winner!), and eventually winning the overall election.</p>
<p>The previous winner is now eliminated on the second round, the previous last place is now the winner. No voter preference really changed, Bob didn’t lose a single supporter, all from a simple strategic voting change from voters who already supporter Charlie. That this would be possible is absolutely not inferred from looking at the previous Sankey diagram and very hard to see (unless you do some counting in your head) from looking at the diagram above.</p>
<p><strong>An election whose results are surprising, hard to understand and predict and can dramatically change with strategic voting. This is the opposite of what you want in a voting system.</strong></p>
<p><strong><em>But at least Ranked Choice voting helps eliminate extremism on politics!</em></strong></p>
<p>Not necessarily. At least not with Instant Runoff. Let’s look at an example. Imagine now a much simpler race with now three candidates: <strong>Angry Anne, Brute Bob and Chill Charlie.</strong> Angry Anne is mostly angry at Bob’s brutishness and so are her voters. Bob’s voters love him for his “straight talk” and because he stands for everything that Anne supports. Both Bob and Anne’s voters would prefer anyone but their opponents win. Doesn’t matter which country you live in, you probably had a similar situation in your elections recently: two polarizing candidates.</p>
<p>Now imagine that there’s a third candidate. Chill Charlie consistently polls at 20% of the electorate, at last place. But nobody really hates him: Angry Anne voters would like to see anyone but Bob win, and Bob’s voters feel the same. They don’t love Charlie but they see him as a better alternative than the “other side”. Charlie is the kind of moderate candidate that Ranked Choice vote is supposed to benefit. This is how the current preferences are tallied:</p>
<figure>
<img src="https://blog.vandesande.design/media/the-failures-of-instant-run-off-voting-from-a-designers-perspective/07-704.webp" width="1208" height="574" alt="">
</figure>
<p>How would this election look under Instant Run-off? Not any very different than a two round system. Chill Charlie would be imediatelly eliminated and their votes would be split among the remaining candidates, leading Anne to win.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-failures-of-instant-run-off-voting-from-a-designers-perspective/08-704.webp" width="1158" height="576" alt="">
</figure>
<p>Notice that if Charlie was in the final round against any of the candidates it would’ve beaten them both. Charlie is the first or second preference of ALL of voters in this scenario, 80% of the electorate would be moderately satisfied to see him win. Yet using IRV he is not the winner and we are left with a scenario in which most people are unhappy that the candidate they hate the most won.</p>
<p>This isn’t a random scenario picked to show specifically this point, but rather a quite typical scene in most democracies in the last few years: <strong>two polarizing extremist candidates who don’t have the support of a majority of the population, being rewarded in the electoral system for their extremist views.</strong></p>
<p>So is it over? Should we stop the Ranked Choice voting experiment altogether and go back to whatever systems we had before? Not at all. In my next article I’d like to keep exploring voting systems from a visualization perspective and I want to show how we can have a voting system that takes all preferences in consideration and find the majority opinion while still being understandable and easy to visualize. I’ll explore the many kinds of “Condorcet compliant” voting systems from a designer’s perspective.</p>]]></content:encoded>
</item>
<item>
<title>The Man in the Hole</title>
<link>https://blog.vandesande.design/the-man-in-the-hole</link>
<guid isPermaLink="true">https://blog.vandesande.design/the-man-in-the-hole</guid>
<pubDate>Mon, 29 Aug 2022 16:02:34 +0000</pubDate>
<description>Over the weekend, the loneliest man in the world has been found dead inside his home. He lived the last 30 years of his life under surveillance in a 80km wide, government…</description>
<content:encoded><![CDATA[<p>Over the weekend, the loneliest man in the world has been found dead inside his home.</p>
<p>He lived the last 30 years of his life under surveillance in a 80km wide, government enforced, exclusion zone, created specifically around him.</p>
<p>This is the true story of the Man in the Hole.</p>
<p>This is not, of course, a story of some super powered dangerous hermit living in a fancy prison. There are terrible crimes, but he was the victim of.</p>
<p>The Man of the Hole was the last survivor or a tribe whose existence we were only made aware after they were all murdered.</p>
<p>In 1986, after multiple reports of genocide of uncontacted tribes, Santos, a representative of the Brazilian "National Indian Foundation" (FUNAI), went to the state of Rondonia to investigate and found a remains of a demolished village, where all the huts had 3m deep holes inside</p>
<figure>
<img src="https://blog.vandesande.design/media/the-man-in-the-hole/01-704.webp" width="800" height="445" alt="">
</figure>
<p>The farmers accused him of creating a fake tribe to prevent the regional development, threatened his life and he eventually was forced to quit. The story would have been forgotten but 10 years later Santos returned as the head of Uncontacted Tribes section, looking for survivors.</p>
<p>This time he brought journalists and found definitive proof of a lost tribe, which finally got front page news.<br>
Santos kept searching for any survivors and found evidence of a hut with recent occupation, along with tools and some gardens. Someone had survived!</p>
<figure>
<img src="https://blog.vandesande.design/media/the-man-in-the-hole/02-479.webp" width="479" height="533" alt="">
</figure>
<p>From 1995 to 2006 Santos organized many expeditions to contact the sole survivor of the lost tribe. During one of these one of the expedition members was shot with arrows. After this they ceased any attempt of contact and created an 80km isolation area around him.</p>
<p>But he was surrounded. Farmers kept destroying all the forest around the exclusion area and threatening to kill the Man in the Hole. In 2009 the local Funai outpost was burned and they found evidence of gunshots on his hut. But he survived.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-man-in-the-hole/03-704.webp" width="1200" height="746" alt="">
</figure>
<p>The Man, whose own name we never learned, was found dead in his tent this weekend. He was found in his hammock, with a special ceremonial paint, as if he knew his time was near. Exact cause of death is to be determined but it seems to be from natural causes. He was about 50yo.</p>
<p>After the autopsy, his body is to be returned to his land to be buried.</p>
<p>Along with his name, we will never know what he called his tribe, language they spoke, what they believed about death or whatever burial ceremony they had, nor the purpose of the holes.</p>
<p>His is not an isolated incident. During his (our) lifetime the state of Rondonia has transformed from a wild forest into a huge Cattle and Soy farm.</p>
<p>Both the indigenous people and the officials trying to protect them are under a constant threat of life.</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/dUlh2_bUo60" title="Google Timelapse: Rondonia, Brazil" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<p>In 2019 Macxiel Santos (no relation), a FUNAI official was murdered in Amazonas, a crime that remain unsolved. Earlier this year another official Bruno Pereira and  British Journalist Dom Phillips were also murdered. Arrests were only made after intense international pressure.</p>
<p>Brazil has over over 67 uncontacted Tribes. These are neither a First Contact or Encino Man stories about some unspoiled people ready to see the wonders of modernity. Often these are single families who are aware and going to great lengths to avoid us.</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/1xkTN1Z1rTQ" title="Encino Man Theatrical Trailer" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<figure>
<img src="https://blog.vandesande.design/media/the-man-in-the-hole/04-425.webp" width="425" height="285" alt="">
</figure>
<p>To learn more about <a href="https://www.survivalbrasil.org" target="_blank" rel="noopener">the isolated people</a>.</p>
<p><a href="https://www.amazon.com/Last-Tribe-Epic-Quest-Amazon/dp/1416594744/ref=nodl_?dplnkId=2a314713-09d2-4795-a6db-ba7af70f5880" target="_blank" rel="noopener">A book on the Man in the Hole</a>.</p>
<p>Corumbiara, a documentary about the case:</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/_j1RXDo2MXw" title="Corumbiara - Trailer" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<p>If you want more <a href="https://blog.vandesande.design/random-brazil-trivia">random Brazil Trivia</a>, definitely don't follow me.</p>
<p>Most of my tweets are about random ethereum topics but I will occasionally post random bits on Brazil history.</p>]]></content:encoded>
</item>
<item>
<title>Updates to ENS Controller. Should we do Bulk Commits/reveals?</title>
<link>https://blog.vandesande.design/bulk-commits-and-reveals</link>
<guid isPermaLink="true">https://blog.vandesande.design/bulk-commits-and-reveals</guid>
<pubDate>Thu, 04 Aug 2022 20:24:12 +0000</pubDate>
<description>On the latest ENS Small Grants round, one of the winner was Alexnetto.eth work building a referral feature for the RegistrarController. The basic referral is implemented and…</description>
<content:encoded><![CDATA[<p>On the latest ENS Small Grants round, one of the winner was Alexnetto.eth work building a referral feature for the RegistrarController. The basic referral is implemented and during the process he even found some errors on the tests in the current ENS contracts GitHub. The goal is to enable third party wallet integrations or name registry apps that have a business model built in, thanks to the referral fees (a percent which is reduced from the fee and controlled by the DAO).</p>
<p><a href="https://medium.com/blockful/referral-feature-added-to-ens-15c9635762b8" target="_blank" rel="noopener">You can read more about that progress here.</a></p>
<p>I’d like to talk about the next steps in the improvements we are building.</p>
<p>You can read a <a href="https://publicgoods.notion.site/ENS-Referral-Ask-15dd6dbad3bb48dca3507259a81964e6" target="_blank" rel="noopener">more detailed specification of the next features here</a>, but the main two goals are to make commits with payments and bulk commits. The latter is the one that might be more controversial.</p>
<p><strong>Commits With Payments</strong> would mean that you would send the ether for paying your domain on the first transaction (commit) and not the second (reveal). This small change, together with referral fees and an optional tip, could mean that the registration app could execute the second transaction.</p>
<p>Meaning the process would change from <strong>make one transaction, wait for confirmation, wait another minute, make reveal transaction, wait again</strong> into <strong>Make one transaction and wait</strong>. If you come back in a few minutes and the process hasn’t been finished you could do the reveal yourself and save the tip. This adds the danger that your registry app might frontrun you, but (1) that can happen anyway with the current model as they can simply log your searches and (2) the old process will still be available if you don’t trust your frontend.</p>
<p><strong>Bulk Commits</strong> are the more controversial feature that I think would be nice sharing here. This is mostly a gas saving feature: a lot of the cost of transactions is storing data, so this would enable a registry app to make multiple commits into one (magic of merkle trees).</p>
<p>This feature should also allow the bulk registration of lots of new names at once, which can have more controversial effects.</p>
<ul>
<li><p><strong>More efficient registrars:</strong> the change of the commit+payment already allows the registration flow to become “user does one transaction then waits”. In this case, the user might not even need to do the first commit transaction, as a registrar app might be built in a way that they await for N names to be requested before doing them all at once in bulk. This could lead to cheaper still registrations (althought it concentrates powers on registrars)</p></li>
<li><p><strong>Club impact:</strong> New clubs (10k club, 24h club, Flags clubs) would be easier to register all at once, which might be both good as it allows the quick creation of a club, but it can remove the social and competitive aspect of it.</p></li>
<li><p><strong>Domain squatting:</strong> A squatter can bulk commit to thousands or tens of thousands of domains names at once. They are limited by the cost of the reveal, and because we expect that a lot of potentially squattable names have already been done so.</p></li>
<li><p><strong>Frontrun danger:</strong> a potential frontrunner bot could register all possible 10 letter combinations in a single merkle tree and then use that to frontrun any reveal transaction they see on the network. This would in practice negate the advantadge of a common commit.</p></li>
</ul>
<p>I believe these dangers could be alleviated by limiting the size of the merkle tree and the duration of a commitment to 24h max. This would also make the reveal cheaper as the merkle proof needs less roots to prove.</p>
<p>So what the general community thinks? Are merkle tree based commits a good idea? They could enable massive gas savings and more quick registration of names in bulk, but is that something we want?</p>]]></content:encoded>
</item>
<item>
<title>ENS Affiliate Marketing - Affiliate Program</title>
<link>https://blog.vandesande.design/ens-affiliate-program</link>
<guid isPermaLink="true">https://blog.vandesande.design/ens-affiliate-program</guid>
<pubDate>Tue, 03 May 2022 15:37:16 +0000</pubDate>
<description>Ressurrecting this debate because I think it’s a great idea and I see no issues with that. Below is a graph of all revenue for the DAO since the beginning of the year. In terms of…</description>
<content:encoded><![CDATA[<p>Ressurrecting this debate because I think it’s a great idea and I see no issues with that.</p>
<p>Below is a graph of all revenue for the DAO since the beginning of the year. In terms of registrations ENS is having the best week of the past two years, and in fact it’s the second highest revenue (after august 2020). But in 2020 most of the revenue was coming from premium names, in sheer number of registrations, the current trend dwarves everything else by a LOT.<br></p>
<figure>
<img src="https://blog.vandesande.design/media/ens-affiliate-program/01-704.webp" width="1204" height="706" alt="Screen Shot 2022-05-03 at 12.23.24 PM">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/ens-affiliate-program/02-704.webp" width="1170" height="1208" alt="Screen Shot 2022-05-03 at 12.15.57 PM">
</figure>
<p>This can be traced back directly to the people behind 10k club. I honestly don’t think if we had paid a million dollars for an ad agency, they could come up with such strategy (in fact, if an ad agency came with me with the idea to get people to register random numbers I would be the first to tell them off!). We could create retroactive grants that would reward people on the club, but this would certainly create political attrition as there would be discussion on the subjective issues of who exactly should be rewarded, who came up with the idea, etc.</p>
<p>An affiliate program is much better. I propose a very standard process:</p>
<ol>
<li><p>if someone goes into the main ENS dashboard anywhere with an affiliate ENS on their link, the we save the link on permastorage on the client side. We don’t save anything else about the user.</p></li>
<li><p>If the user clears his memory, the affiliate ENS is deleted. If he arrives again with another affiliate ENS, then that one is overwritten</p></li>
<li><p>At any point (even if weeks later for a different domain), when someone is about to make a purchase, if they have an ENS affiliate stored, they will be shown something like “10% of this purchase is going to foo.eth”</p></li>
<li><p>They should be able to click that and we could offer many options: like instead, give it to savethepuppies.eth or cancerresearch.eth or ensdao.eth or some other charities and orgs that we add to the whitelist. Among one of these we could allow them to add a custom ENS name or even an option saying “I’m selfish and don’t want to share the 10%”.</p></li>
</ol>
<figure>
<img src="https://blog.vandesande.design/media/ens-affiliate-program/03-48.webp" width="48" height="48" alt="">
</figure>
<p>nick.eth:</p>
<blockquote>
<p>We’ve discussed this internally in the past. One issue is that if you make the referral program open (anyone can join onchain permissionlessly), someone will set up a “cost plus” registration UI that gives the buyer the referral fee</p>
</blockquote>
<p>I see absolutely no issue with that. As outlined above, we could even add that option, transparently, on the UI, to give people a discount, and even shame them with all the good charities they could be giving away to instead. I also suppose that if someone is creating an alternative UI for selling names, they would be much more incentivized to put the affiliate link to themselves (even if it to share it with the customer somehow) and I’m ok with that.</p>
<p>Edit: made a mockup. Clicking on the affiliate link (is there a better name?) would open a popup with a few suggestions of charities or a custom name, which the user could put himself as (or maybe even an option to give it as a discount). I’m ok with raising the prices 11.11% to cover that affiliate fee so if the user doesn’t want it, they can use the old price.</p>
<figure>
<img src="https://blog.vandesande.design/media/ens-affiliate-program/04-704.webp" width="856" height="1542" alt="Screen Shot 2022-05-03 at 1.27.55 PM">
</figure>]]></content:encoded>
</item>
<item>
<title>Proposal to use ENS to verify NFT collections in avatars</title>
<link>https://blog.vandesande.design/ens-to-verify-nft-collections-in-avatars</link>
<guid isPermaLink="true">https://blog.vandesande.design/ens-to-verify-nft-collections-in-avatars</guid>
<pubDate>Thu, 17 Mar 2022 17:56:55 +0000</pubDate>
<description>From talking to people, it’s clear the ENS avatar is a very popular feature of the ENS names. It helps communicate that the name represents a profile, and it’s quite popular with…</description>
<content:encoded><![CDATA[<p>From talking to people, it’s clear the ENS avatar is a very popular feature of the ENS names. It helps communicate that the name represents a profile, and it’s quite popular with NFT holders that want to showcase their favorite ones.</p>
<p>Some NFT holders have asked for us to add some sort of “verified” badge on the avatar, to prove that the image truly belongs to a “verified collection”. I see this as troublesome as it adds centralization end points (the authors of the “verified” collection lists) and it doesn’t fully solve the issue. You can, after all, clone existing NFT and have a “true NFT” that has any image you want. Also, it would requiring having some sort of “non verified” badge for images, which I think takes away from people who just like having their images as their avatars.</p>
<p>I would propose updating the metadata service for ENS with a new layout that includes an ENS name for the NFT collection:</p>
<p><br>
Top left is a simple image avatar, while the others represent NFTs. Notice that some of them are not .eth names.</p>
<figure>
<img src="https://blog.vandesande.design/media/ens-to-verify-nft-collections-in-avatars/01-704.webp" width="1028" height="1016" alt="Screen Shot 2022-03-17 at 2.35.03 PM">
</figure>
<p>The underline on the image avatar helps promote the idea that these names are really links, and could even be websites if properly set up. When the image is an NFT the underline becomes a small text. In small sizes the url might be seen as a simple line, but in larger images you should be able to read the URL.</p>
<p>Because the underline is always on image avatars, someone trying to “fake” their verified NFT by just adding the verification overlay on the image, will end up with a striked out URL.</p>
<figure>
<img src="https://blog.vandesande.design/media/ens-to-verify-nft-collections-in-avatars/02-704.webp" width="1412" height="700" alt="Screen Shot 2022-03-17 at 2.38.22 PM">
</figure>
<p>I’ve experimented with some other designs, like having the name be inside the line, or on the side, like a copyright notice, but the underline is my favorite so far.</p>
<figure>
<img src="https://blog.vandesande.design/media/ens-to-verify-nft-collections-in-avatars/03-704.webp" width="1334" height="690" alt="Screen Shot 2022-03-17 at 2.53.14 PM">
</figure>
<p>Notice on how in smaller sizes, a properly designed line just looks like an underline:</p>
<figure>
<img src="https://blog.vandesande.design/media/ens-to-verify-nft-collections-in-avatars/04-438.webp" width="438" height="220" alt="Screen Shot 2022-03-17 at 3.25.34 PM">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/ens-to-verify-nft-collections-in-avatars/04-438.webp" width="438" height="220" alt="Screen Shot 2022-03-17 at 3.25.34 PM">
</figure>
<p>To prevent homograph attack, I would add the requirement that the name must all be of the same alphabet. If any mixed character set was found (exception for emojis) then the metadata would display it as if it was just an image.</p>
<h3 id="h-how-do-we-get-the-correct-ens-name-for-a-contract">How do we get the “correct” ens name for a contract?</h3>
<p>Of course the whole proposal supposes we have ENS names for major collections of NFTs, many who are already existing and can’t change retroactively to fit a new standard. So here’s how I would propose a standard:</p>
<ol>
<li><p><strong>Reverse registrar:</strong> First, of course, if the address is set on the reverse registrar, then we use that. This is what we already do for EOA but very few contracts have support to arbitrary transactions, and even less have a specific function for the reverse registrar.</p></li>
<li><p><strong>Allow owner to set it:</strong> update the reverse registrar to allow it being set if a contract has a owner() function (and maybe even if that owner has an owner). This serves a large number of contracts (specially multisigs and tokens) and was in the plan anyway.</p></li>
<li><p><strong>Use DNSSEC on the baseURI() or contractURI() address:</strong> these are not part of the erc721 standard but are quite common practice in most NFT collections. Since they need to download the image from somewhere, most are just pointing to an external link. We could use DNSSEC to check if that domain is registered on ENS or if that domain points to an ENS name. This would solve a majority NFT contracts: but there are some exceptions. Namely, some contracts don’t use baseURI, others use it to point to an AWS server they can’t update records to and finally some adopt the (good) practice of using direct IPFS links. For these we’d have to find an alternative solution.</p></li>
<li><p>Only in the cases that none of these methods worked, then default to a list of addresses → ens names that uses chainlink or kleros as their oracle. This would also be useful for all sorts of other contracts.</p></li>
</ol>
<p>This method would not, of course, be limited to NFT verification, but it’s also useful for ERC20 listings or even naming contracts on block explorer and would once again tie ENS to the inner workings of the ecosystem. It’s also a quite decentralized model, in which new collections can verify themselves.</p>
<p>We don’t need to add verification for all collections, but if we can get the top 20 largest ones to do that (or we do it for them) then we could help set that as a standard.</p>]]></content:encoded>
</item>
<item>
<title>A map of all ENS contracts</title>
<link>https://blog.vandesande.design/a-map-of-all-ens-contracts</link>
<guid isPermaLink="true">https://blog.vandesande.design/a-map-of-all-ens-contracts</guid>
<pubDate>Thu, 10 Feb 2022 19:21:48 +0000</pubDate>
<description>This is a work in progress and continuation of an earlier thread about threat assessments. ENS is made of many contracts and this is an attempt to clarify. It’s also has been a…</description>
<content:encoded><![CDATA[<p>This is a work in progress and continuation of an <a href="https://discuss.ens.domains/t/on-property-rights-and-threat-models-for-ens/10701/" target="_blank" rel="noopener">earlier thread</a> about threat assessments. ENS is made of many contracts and this is an attempt to clarify. It’s also has been a great understanding path for me to get more acquainted with all the governance changes. But most importantly it answers the question: what is the worst that can happen with my names?</p>
<figure>
<img src="https://blog.vandesande.design/media/a-map-of-all-ens-contracts/02-704.webp" width="858" height="902" alt="Screen Shot 2022-02-10 at 3.30.40 PM">
</figure>
<p>Let’s start at the ENS Registry itself. This is the most important contract, the root of where ownership exists, you can even notice this by the care that was taken in choosing an address with lots of 0s. This makes it harder to spoof and creates tiny gas savings. It’s the contract deployed on all chains including for testing. It’s a very simple contract that uses a nested logic: if you own the root, you can create top level domains, which allows you to create domains, subdomains etc etc etc. You can check who owns the root by going in the contract and asking it for the owner of 0x000..</p>
<p>It should return the root.ens.eth contract, which is just a contract that passes direct orders from its owner–unless the owner specifically forbids that. It has only one locked contract which you can check by passing the keccak256 of “eth”, which will allow to confirm that nobody, not even the root, can change the owner of .eth anymore.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-map-of-all-ens-contracts/03-538.webp" width="538" height="1234" alt="Screen Shot 2022-02-10 at 3.38.26 PM">
</figure>
<p>You’ll notice that the owner of .eth is the contract I named “The NFT” because it is the NFT address you add to your wallet. You’ll also notice that the multisig is still the owner of the root contract, per design as requested on EP1. We should expect this to change for the DAO in the future.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-map-of-all-ens-contracts/04-704.webp" width="1540" height="1272" alt="Screen Shot 2022-02-10 at 3.40.41 PM">
</figure>
<p>Why is the owner of .eth set to the NFT contract and not, let’s say, the dao itself? Great question. If you look at the code in the NFT you’ll see that when you transfer the NFT you are not at all changing the Registry, just the NFT ownership. But the owner can execute the “reclaim()” function which will allow you to set the owner of the NFT to the owner in the ENS registry. So the NFTs in your wallet are not actually the claim on the registry itself, but rather a special token that allows the owner to claim it.</p>
<p>The NFT contract is owned by the wallet.ensdao.eth which is the proper DAO. What can the DAO do to the NFT? It can call the following contracts:</p>
<ul>
<li><p>Change Ownership: this will transfer ownership to someone else</p></li>
<li><p>Revoke Ownership: similar to transferring ownership to a null address</p></li>
<li><p>Set Controller: adds an address as a controller. There can be more than one.</p></li>
<li><p>Remove Controller: revoke controller permissions from the address</p></li>
<li><p>Set Resolver: this is just for setting metadata on the .eth address itself. Not something people usually do.</p></li>
</ul>
<p>What are controllers? They are addresses authorized to call these functions:</p>
<ul>
<li><p>Register: sets the new owner of a name that has expired and updates the ens registry</p></li>
<li><p>RegisterOnly: does the same but doesn’t update the registry (cheaper, but user will have to later reclaim it)</p></li>
<li><p>renew: extends the existing period</p></li>
</ul>
<p>As you can see, there’s no option that will change the ownership of an address that has an owner. The easiest way to check for this without having to read the whole code is to look for instances of “onlyOwner” and “onlyController”, so you can verify it yourself.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-map-of-all-ens-contracts/05-704.webp" width="1674" height="1074" alt="Screen Shot 2022-02-10 at 3.52.09 PM">
</figure>
<p>Finally for the governance side. Both the NFT contract, Registrar Controller and token contracts are owned by wallet.ensdao.eth. The only thing the registrarController owner can do is call it to withdraw the money.</p>
<p>The owner of the Token contract has the right to mint up to 2% of the current total supply, once a year. Notice it’s not “per year” but rather it’s an action that, after done, requires waiting another year. Meaning that if the DAO calls to mind 0.5% of new tokens for some usage, that will be the limit that year.</p>
<p>The token contract is then used as the token inside the governor contract, which is part of an elaborate governance contract from Open Zepellin that I haven’t done researching, but suffice to say it’s the thing that counts the votes and creates a 48h delay before they can be executed by the DAO. It’s also interesting to notice that 65% of the token supply, owned both by the DAO and in minor scale, some contributors, is still locked in the time lock contract.</p>
<p>I urge you to verify all these contracts by going yourself on etherscan and checking the code: you don’t need to read everything, but you can start by searching keywords like “owner” to understand what can happen.</p>
<p><strong>So name ownership is quite locked down. Only a owner of a token NFT (or the previous owner until they reclaim it) can change the ENS registry. This is enforced by a locked contract that is the true owner of the ENS root, which itself is under the control of the multisig. Unless there’s some bug in either of those contracts, then no matter how the token holders vote, people cannot lose their domains.</strong></p>
<h3 id="h-threat-scenarios">Threat scenarios</h3>
<p>One scenario that could be more sensitive is the controller. The DAO can add and remove controllers as will, so while it can’t do anything to existing names, it could stifle or limit the growth of ENS names. Examples that a bad controller could do:</p>
<ul>
<li><p>While it can’t change the expiry date down, a controller could refuse to renew a name for a user for any reason. This would go against the article I of the constitution but right <a href="https://discuss.ens.domains/t/promoting-decentralization/10747/5" target="_blank" rel="noopener">now it’s relatively easy to change that.</a></p></li>
<li><p>A bad controller could also limit who can acquire new names. It could decide to only accept KYC USD token that required its users to doxx themselves. Or it could require that any new user have a specific token that would identify them as a member of some special club. Or it could straightaway create allow and block lists for who can acquire names. Again, goes against the constitution, but if you have votes to control the wallet, you have votes to change the constitution.</p></li>
</ul>
<h3 id="h-security-suggestions">Security suggestions</h3>
<p>It’s too soon for us to lock down controllers. There are probably more creative and clever ways to deal with registration than the simple $5 a month, which also requires an oracle and ties itself to the dollar. But we can add more than one controller, and we could transfer ownership of the NFT contract to a locked contract similar to the one at root.ens.eth, which would prevent a few actions or add more delays.</p>
<ul>
<li><p>We could add a last recourse controller that created a fixed price for ENS names at a higher point. This controller could not be removed, not even by the DAO. Maybe it would say that you could always use/burn X amounts of ether or ENS to acquire a year of domain names. It would of course be more expensive than the other avenue, but at least it would guarantee that someone who couldn’t access whatever other restrictions could be put in place. Of course it’s hard to figure out how to price something in this scenario, but that is a contract that is not meant to be used, rather a lever saying “you can’t add restrictions because there’s already a backdoor”.</p></li>
<li><p>Add greater delays on controller changes. Maybe any controller changes should have a minimum delay of 30 days, so that if some change is about to happen that you disagree with, you still have 30 days to add 100 years to your current domains.</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>Decentralization and governance</title>
<link>https://blog.vandesande.design/decentralization-and-governance</link>
<guid isPermaLink="true">https://blog.vandesande.design/decentralization-and-governance</guid>
<pubDate>Mon, 07 Feb 2022 20:35:43 +0000</pubDate>
<description>ENS aims to be both a decentralized domain and identity system and as such needs to be built to be censorship resistant and neutral. But to get there it needs an including…</description>
<content:encoded><![CDATA[<p>ENS aims to be both a decentralized domain and identity system and as such needs to be built to be censorship resistant and neutral. But to get there it needs an including community of builders in which all are welcome.</p>
<p>That path is neither easy nor without its own conflicts.</p>
<p>Long before Brantly joined ENS, there had been multiple other contributors, many of them queer, at least two were Trans. I only knew that the same way I found out about Brantly’s own deeply held beliefs: casual conversations over dinner in conferences around the world.</p>
<p>As it should be: people’s work only judged by their own merit, independent of the contributors religion, skin tone, gender or country of origin. I think the acceptance of anonymity and respect for privacy in the industry creates an environment where people can be who they want.</p>
<p>I’ve known Brantly for years (he worked with me in Unilogin in 2018) and I’ve seen him do great work. I’ve reached to some of these other contributors and I did not hear a single instance where people felt they were treated differently by him. But he wasn’t just a dev hidden away</p>
<p>Brantly was the de facto spokesperson for the project, the ones that journalists would reach out to hear a word, and maybe the project wouldn’t be where it is today without him. I admired his grit.</p>
<p>It’s hard to be the spokesperson of a community that doesn’t feel spoken by you.</p>
<p>I would like to find a way for Brantly to still be a part of ENS, in a position where he didn’t needed to represent a community that didn’t share his values. Maybe there’s still a space for this, but I feel the rushed termination process might have been too drastic.</p>
<p>This whole debate has raised a much more important question about decentralization and governance. What happens to your names if ENS is taken over by people who don’t share your values? What are the failures of our own governance that led to this?</p>
<p>Brantly was terminated from True Names, as is the right of their directors as a private entity?</p>
<p>But why does a DAO depends so much on a single Singaporean entity?</p>
<p>I believe it should not, and it would benefit for the community to be more legally distributed.</p>
<p>In the beginning of the year I was invited by Brantly to join the core team. It felt wrong then and it feels wronger now:</p>
<p>Going forward I intend that my ENS contributions will be made as a separate entity, with a different jurisdiction, that does not rely on ENS core team.</p>
<p><strong>Secondly:</strong> Brantly is still the top delegate. Second is Coinbase, an entity who has a contract for “analytics”with the US homeland security and is, in my opinion, much more problematic than he could ever be.</p>
<p>Most of the other top 10 delegates (including me) could probably be found in the same table at some random devcon a few years ago. Is that a good thing for diversity of opinions and experiences? It can also be very expensive to redelegate, which is not very democratic.</p>
<p>I would like to see a website that helps people redelegate their votes, including some possible form of subsidy (within limits to avoid grieving attacks ofc), to allow a more liquid democracy. I will look into building/financing this.</p>
<p><strong>Thirdly:</strong> Brantly is a director of the ENS foundation, a non profit incorporated in the Cayman Islands. I’m sure there are good tax reasons for it to exist, but it also creates another bottleneck for the DAO.</p>
<p>We could have a more public debate on the roles of that entity.</p>
<p><strong>Four:</strong> what are the roles of the DAO in .eth names? What can be done to domains if top delegation is taken over by people who don’t share your values?</p>
<p>Not much really. But some could, and we need to investigate and consider alternatives.</p>
<p>The .eth registrar is still under the control of the multisig, but we can expect it to be transferred to the DAO anytime. When it’s done we need to make sure that it maintains it’s locked state and maybe even lock it even more.</p>
<p>As it currently stands, the .eth registrar cannot take away any name that is registered, but it can change the rules on how renewals and new registrations happen. There are good reasons not to freeze that right now but we should try to see how we can limit those further.</p>
<p>One example is the recent rule change for newly expired names, which could be bought by anyone at $2k, has been upgraded to a Dutch auction starting $100k and is being redeveloped as a non linear auction.</p>
<p>The ENS constitution has limits on how these can change, but the constitution can be changed (and it’s still quite easy to do so). Still, some things should be frozen in code so that it supersedes even the constitution changes in the future.</p>
<p>End of thread. So my proposed next steps:</p>
<ul>
<li><p>Decentralize development more so it doesn’t depend on a single person or entity</p></li>
<li><p>Make redelegation more liquid</p></li>
<li><p>Create even stronger property rights guarantees on domain names</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>It’s time for social media interoperability</title>
<link>https://blog.vandesande.design/its-time-for-social-media-interoperability</link>
<guid isPermaLink="true">https://blog.vandesande.design/its-time-for-social-media-interoperability</guid>
<pubDate>Fri, 06 Aug 2021 12:00:00 +0000</pubDate>
<description>Social media is too important to be owned by a few private companies — or governments</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/its-time-for-social-media-interoperability/01-704.webp" width="2602" height="1951" alt="">
<figcaption><a href="https://www.flickr.com/photos/22756666@N06/4183700179" target="_blank" rel="noopener">“bird cages”</a> by <a href="https://www.flickr.com/photos/22756666@N06" target="_blank" rel="noopener">HeedingtheMuses</a> is licensed under <a href="https://creativecommons.org/licenses/by-nc-nd/2.0/?ref=ccsearch&amp;atype=rich" target="_blank" rel="noopener">CC BY-NC-ND 2.0</a></figcaption>
</figure>
<p>Social media is already an integral part of our society, but it’s also ripping us apart. Unfortunately, both the diagnostic on what’s wrong and the solutions on how to fix them are increasingly divided into tribal lines, as are all the other issues that social media debates. Some “solutions” on the table might even worsen the problem by solidifying monopolies and giving them police powers.</p>
<p>This essay proposes to sidestep the issue by separating social media <em>itself —</em> the act of citizens forming communities to share ideas — from social media <em>companies,</em> by allowing a <strong>common interoperable standard in which messages generated on one app could be transported and read in any other application</strong>, therefore breaking the monopoly on social media publication. Doing so would create a <em>more free and competitive market for companies</em> that allow people access to it, <em>allowing multiple implementations of feed sorting, content filtering, and contextualization</em>.</p>
<p><strong>The Problem</strong></p>
<p>Internet issues should not be seen as a digital problem anymore, rather than the traditional human rights translated to a new online medium. The right to talk to other people online encompasses many rights: <em>free speech, peaceful assembly, freedom of religion, freedom of the press, the right to privacy from their governments, and the right to one’s tradition, language, and culture</em>. Those are all ideals that have long practices as essential pillars in our societies. Now that our world is moving more and more into the digital realm, activism needs to push hard to maintain these freedoms.</p>
<p>On the other hand, these universal rights need to be balanced with newer challenges. How can we combat extremist content without falling into the pitfalls of censorship (either by state or private industries)? How can we contextualize the information we see without empowering companies as the “guardians of truth”? Is a lie always more viral than the truth–or does it depend on the medium?</p>
<blockquote>
<p><strong>Falsehood flies, and the Truth comes limping after it —</strong> <a href="https://www.goodreads.com/quotes/7649282-falsehood-flies-and-truth-comes-limping-after-it-so-that" target="_blank" rel="noopener"><strong>Jonathan Swift</strong></a></p>
</blockquote>
<h3 id="h-how-not-to-fix-it">How NOT to fix it</h3>
<p>Popular pressure exerted on politicians can lead to new laws that superficially seem to tackle the problem and create more profound issues. A good example is legislation that requires social media companies to use filtering algorithms to identify and root out terrorist content, graphic violence, and copyright infringement. Politicians tend to propose goal-oriented laws because it allows them to show their constituency they are fighting specific issues that are important to their electors (“Facebook has a problem with A, so we will pass a new law forcing them to do B”). These new laws can create second-order effects that can make the problem much worse:</p>
<p><strong>It creates slippery slopes:</strong> the definitions of pornography, violent content and hate speech are subjective and can vary across jurisdictions and cultures. Even restrictions that seem straightforward, like “no nudity”, are more challenging in practice. Facebook learned this early on when nursing and breastmilk advocacy groups complained that breastfeeding photos were being removed as “porn.” They started fine-tuning the rules but found more and more edge cases, like “adult erotic breastfeeding” (porn) and “human-animal breastfeeding” (a non-erotic cultural practice in some drought-affected rural areas). How can you create a rule for “no underage nudity” that doesn’t accidentally also block historically significant war photos or photos of Yanomami children playing? It’s a fool’s errand to try to develop a universal set of machine enforceable rules for all contexts.</p>
<p><strong>It creates collateral damage:</strong> even the most atrocious content is necessary to be kept in some contexts. For instance, when youtube deleted ISIS propaganda videos, it also unwittingly deleted war crime evidence needed to prosecute captured ISIS fighters. While the government was trying to cover a spike in Mexico’s cartel crimes, citizen journalists started sharing execution videos as proof of the contrary. Suppose someone in power is saying something that can be considered hate speech. Should the content be deleted to avoid further harm or kept as a public and historic service?</p>
<p><strong>It deputizes private companies as extensions of law enforcement:</strong> when your video is taken off youtube for copyright violation (even if it’s your work or performance of a public domain song), your only recourses are youtube’s own “court system”, an opaque system that is not held accountable by anyone other than Google management, meaning that for most people, especially non-American citizens, if you are unfairly accused of something, you have very little recourse. It might feel entirely inconsequential while we are merely talking about simple music performance. Still, like everything else in society, as more of our lives become digital, it’s unavoidable these private courts will take on bigger and bigger responsibilities. Newer legislation that forces social media companies to combat terrorist content (however that is defined) will inevitably make the tech giants an extension of law enforcement. This symbiotic relationship usually goes both ways. As governments ask private companies to surveil their users to enforce specific laws, these tools typically make their way back to the state surveillance mechanism.</p>
<p><strong>It creates a barrier of entry for new startup and enshrines monopolies.</strong> Suppose all websites that hold user content must hire many moderators or train a complex AI filter. In that case, it creates a minimal floor that sets how small a new social app can be. The more stringent the rules for social media companies are, the harder it is to innovate and create new apps that will dethrone the big tech giants. In our lives, we often accept tech giants’ inevitability, but this flies on the face of their own (relatively short) history. Facebook and Google didn’t exist 20 years ago. They reached success by launching a slightly better version of something that already existed before (Myspace, Altavista, etc.). But regulation that puts too much of a heavy burden on smaller companies might make sure they are never dethroned.</p>
<h4 id="h-the-right-to-speech-vs-right-to-reach">The Right to Speech vs Right to Reach</h4>
<figure>
<img src="https://blog.vandesande.design/media/its-time-for-social-media-interoperability/02-704.webp" width="1024" height="678" alt="">
<figcaption><a href="https://www.flickr.com/photos/70816538@N00/5578772178" target="_blank" rel="noopener">“Street preacher”</a> by <a href="https://www.flickr.com/photos/70816538@N00" target="_blank" rel="noopener">TimWilson</a> is licensed under <a href="https://creativecommons.org/licenses/by/2.0/?ref=ccsearch&amp;atype=rich" target="_blank" rel="noopener">CC BY 2.0</a></figcaption>
</figure>
<p>The right of a private business to ban from their platforms certain types of speech or people is predicated by the fact that they’re not a government agency and that these people still have a right to speak in other platforms they create themselves. But if the walls between governments and private corporations are becoming more blurry, and monopolies threaten to remove any sort of other option of public spaces.</p>
<p><em>In short: Twitter should have a right to stop a given politician from posting in their website, but not from shouting outside their own window or a street corner.</em></p>
<p>Social media posts are a natural evolution of websites and blogs, a slow 20 year tale in which these tools have become easier to use and have reached more people. In the late 90’s having a website meant building everything on your own. By mid 2000’s this was simplified in Blogs by making it easier to post updates to your own website, which could be read by any application that supported RSS. But by mid 2010, most social media apps were all in one: you downloaded a single app that would allow you to read other posts, and write to the application website.</p>
<p>We gained users, but lost control over our own content.</p>
<h4 id="h-wait-don-t-we-have-social-media-interoperability-already">Wait, don’t we have social media interoperability already?</h4>
<h3 id="h-tom-eastman-on-twitter-i-m-old-enough-to-remember-when-the-internet-wasn-t-a-group-of-five-websites-each-consisting-of-screenshots-of-text-from-the-other-four-twitter">Tom Eastman on Twitter: "I'm old enough to remember when the Internet wasn't a group of five websites, each consisting of screenshots of text from the other four. / Twitter"</h3>
<p>I'm old enough to remember when the Internet wasn't a group of five websites, each consisting of screenshots of text from the other four.</p>
<p>No. There are many ways in which social media posts can break the limits of their walled gardens. There are official methods, like media embeds or user-generated approaches, usually screen grabs or copy-pasting the contents from one to the other. Both have their particular problems, but the sheer amount of content from one social media site found on another via either method is an excellent proof of how much demand there is from the users for such capability.</p>
<p>The problem with the first approach is that it depends heavily on what the provider wants to do with it. If a politician posts something that years later they feel might embarrass them, they can delete it, and this will remove the content from every site that embedded it. On the other hand, when things are posted via screenshots or simply pasted, any authenticity is stripped away. Is that a fake parody quote, or did that person say this? Is this quote from someone else being now misattributed to another person for a more viral impact?</p>
<h4 id="h-reframing-the-problem">Reframing the problem</h4>
<p>We started talking about hate speech and the future of online democracy, so the “chain of custody of social media posts” seems a relatively innocuous and trivial issue. But bear with me as we rephrase the problem. You’ll see how such a small technicality can have huge implications on the future of online speech (and, therefore, all speech). The issue at hand is:</p>
<blockquote>
<p><em>How can we allow multiple parties to archive social media posts while guaranteeing its authenticity?</em></p>
</blockquote>
<p>Once we reframe the question like this, it becomes evident that there is a solution that you have been using in your life for many, many years: cryptographically signing messages. Before installing a new software update, how does your device verifies that there was not an issue downloading it? Your phone comes out of the factory with some known hardcoded keys. Before doing any updates, it checks the new software’s signature against the ones it knows from the software makers. When you go to a website, and it shows it’s a “secure connection,”? It checks the content’s signatures to the keys of known internet providers, IP hosts, and significant content publishers. It’s also used in many mission-critical financial transactions, both in banks and cryptocurrencies. When a bitcoin node operator receives an order to move a million dollars from one account to another, it doesn’t care how that request arrived at them, how many people handled it, or which software version generated it: all it needs to do is verify that the signature of the message checks with the known, public key of the account that holds the funds. In fact, in the cryptocurrency world, it’s the <em>only</em> thing it needs to know about that account!</p>
<figure>
<img src="https://blog.vandesande.design/media/its-time-for-social-media-interoperability/03-704.webp" width="850" height="1023" alt="">
<figcaption><a href="https://www.flickr.com/photos/81987471@N00/1535921696" target="_blank" rel="noopener">“Wind-up birds illustration”</a> by <a href="https://www.flickr.com/photos/81987471@N00" target="_blank" rel="noopener">Danny PiG</a> is licensed under <a href="https://creativecommons.org/licenses/by-sa/2.0/?ref=ccsearch&amp;atype=rich" target="_blank" rel="noopener">CC BY-SA 2.0</a></figcaption>
</figure>
<h4 id="h-cryptographically-verified-messages-the-new-rss">Cryptographically verified messages: the new RSS</h4>
<p>So how exactly would the future of social media be? Not that very different from the past. Similar to the RSS protocol, every social media site would publish a file with the content of the latest posts by that user. But it would have some significant differences:</p>
<ol>
<li><p>Beyond the usual metadata associated with it, it would also come with two extra fields: a cryptographic signature of these posts and the public keys that signed it</p></li>
<li><p>Publishers would also make available the history of all public keys associated with every account and periodically rss it as new ones were added and old ones revoked</p></li>
<li><p>These messages would not be only hosted on a single file on the publisher’s site but also posted to an open distributed network in which anyone could set up new listeners or publishers</p></li>
</ol>
<p>Let’s unpack that.</p>
<p><strong>An associated signature with each media post:</strong> this would guarantee authenticity with each message. More importantly, it would allow you to separate how you received the message from its veracity. These social posts can travel via multiple websites, email, forwarded by messaging apps — you would not need to go to a third party to check its authenticity. Of course, it doesn’t judge the veracity of what is being said, just that you can verify who said directly from your device without having to check a third party. More than “you don’t need to check twitter to see if it was posted there,” but “it doesn’t even matter IF it came from twitter or Facebook, you know it came from this person”.</p>
<p>This exists already elsewhere: when you send a transaction in Bitcoin or Ethereum, there are popular sites in which you can, given a hash, check information about it. But those sites are not the <strong>sources</strong> of information, just a popular archive of it. If one of them goes away or deletes the data, you can check the same authenticity elsewhere.</p>
<p><strong>Publishers would also periodically publish a list of active and revoked keys from accounts.</strong> Social media publishers’ critical role would still be to verify the account itself and link it to any meatspace persona. These publishers shouldn’t hold all these keys but would have a standard process of verification that a key belonged to a user, using passwords, emails, or other methods–just like they already do when authenticating a user on their website. The process of authenticating a new key should be open to any app and would only tie a public key to an account <strong>on that website</strong>, not necessarily outside of it. This isn’t a process of verifying if that account has a government ID or if they control the brand rights to the name they are using (but websites could offer these services). It’s also cross-compatible, so you could use the same device key to validate your account on both Facebook, Twitter, and YouTube. Validation can be in the form of the most basic “The user BobWY1997 has these three keys currently associate with him” or “We verified that these keys belong to the same owner associated with the email jennytut@gmail.com and the number +(201) 867–5309” to a more advanced “this is the official account for the White House spokespersons”. These lists would be publicized and updated periodically: some keys could be revoked and updated as their users changed their devices or new presidents were elected.</p>
<p><strong>Messages would be published to an open, permissionless network:</strong> while RSS provided a convenient way to get the contents posted to a blog, you still needed to host your feed, meaning that if your site went down, so would the content. In this scenario, all messages would be relayed through one (or more than one) network that would rebroadcast some messages to their peers, similar to email servers. Not all nodes need to be equal or have any obligation to carry, archive and rebroadcast any message they are not interested in, which could open some opportunities for niche services for a geographical area or a given interest.</p>
<h4 id="h-is-that-this-blockchain-stuff-again">Is that this blockchain stuff again?</h4>
<p>No! While P2P networks and signed transactions are wildly used (and necessary) for cryptocurrencies and other blockchain-based technology, blockchains themselves are not needed for this use case. Blockchain is a technology whose primary goal is to find a global consensus on messages’ exact timing. If both messages A and B are broadcasted within a few milliseconds of each other on different sides of the world, each witness in the network might receive them in different orders. While this difference can mean who gets some extra millions of dollars in some machine run financial applications, it’s mostly irrelevant for most cases when we are talking about media supposed to be consumed by humans. There are some edge cases in which a user might want to tie their message to a blockchain (to prove they have posted a message on a given date), but for the most part, this proposal uses <em>cryptography</em> but not much on crypto<em>currency</em>.</p>
<h4 id="h-how-would-that-fix-things">How would that fix things?</h4>
<p>It won’t fix everything, but it can make a big difference in how competition works. In practice, this would make social media an internet primitive, a shared public good that is not owned by any single company. It would also allow a vibrant, competitive market for social media app makers.</p>
<p><strong>Disinformation and Fake news:</strong> a single app would not control how to display and filter your feed, meaning that any enterprising developer could build their filters to spot unauthentic content and prevent the spread of misinformation.</p>
<p><strong>Advertisement abuse:</strong> With the ad market’s fragmentation, no single company could then abuse ads to target minorities or spread misinformation. If you don’t like the type of ads you see or feel your feed is being used to influence your habits, just download another client. Your friends and content will be able to port over!</p>
<p><strong>Bias in media:</strong> On the other hand, this also means that if you fear that your app is biased towards a political cause you disagree with or is unfairly editing or even censoring some voices you support, switch your app!</p>
<p><strong>State censorship:</strong> This would also make State censorship much harder since even if they block some specific apps, a user can use an unofficial app to get to the same content.</p>
<figure>
<img src="https://blog.vandesande.design/media/its-time-for-social-media-interoperability/04-704.webp" width="1024" height="1024" alt="">
<figcaption><a href="https://www.flickr.com/photos/22756666@N06/4183700179" target="_blank" rel="noopener">“bird cages”</a> by <a href="https://www.flickr.com/photos/22756666@N06" target="_blank" rel="noopener">HeedingtheMuses</a> is licensed under <a href="https://creativecommons.org/licenses/by-nc-nd/2.0/?ref=ccsearch&amp;atype=rich" target="_blank" rel="noopener">CC BY-NC-ND 2.0</a></figcaption>
</figure>
<h4 id="h-beyond-social-media">Beyond Social media</h4>
<p>These examples are all about social media, our current usage of twitter, Facebook, etc., but the technology could expand to many other internet areas.</p>
<p><strong>Portable user reviews:</strong> many things make a few marketplaces an almost monopoly, but one of these locking methods is indeed products reviewed by the user. If you are an Amazon reseller feeling like amazon is eating your profits, you can use other places to sell your stuff, but you will lose all your user ratings and reviews. If these are all made in a compatible, portable, signed hashes, a seller could take their reputation with them whenever they go, encouraging better marketplaces.</p>
<p><strong>Instant news articles:</strong> one severely underestimated factor in the dissemination of false information is the fact that when an item is shared in a messaging or social media app, the article headline and main image loads right in the client, no action necessary. If someone wants to read the content to check more details or context, the site will often take a long time to resolve (usually due to a series of user tracking third party code), be closed in a paywall, or provide very little extra content. This makes clickbait headlines go viral, even if the article’s content is not that enraging or absurd. If whole pieces were packed in signed bundles, they would load as fast as downloading an image while retaining a validity check written by an entity you trust.</p>
<h4 id="h-wouldn-t-that-make-banning-hate-groups-impossible">Wouldn’t that make banning hate groups impossible?</h4>
<p>The dark side of the coin that makes it impossible for the Chinese government to censor conversations among Uyghurs or for Russia to ban groups that promote LGBT rights is that it would also make it harder for western governments to combat groups that disseminate neo-nazi propaganda, racist, genocidal ideas, and other hate speech. But an argument can be made that the real issue with our current society is not that these ideas are new or they didn’t exist before: <em>but that they are now mainstream.</em></p>
<p>Before the internet, you could always print your letter supporting scientific racism or promoting your local cross-burning KKK group–but you would never get that letter published on the NYT or on TV (unless you threatened to bomb people via the post). Even before social media, sites that promoted despicable ideas would often find a hard time finding some providers to host them as soon as they got enough attention.</p>
<p>But when a half dozen websites host a billion people’s content, hate groups can not only flourish; they can also use the own internal marketing features to promote their groups to other like-minded antisemite conspiracy fans. Youtube and Facebook have been called a radicalization machine, and their defense is that they have too much content to moderate it all.</p>
<p>If they are too big to moderate their content, then maybe they are too big to exist. In a world where social media content is interoperable and can be posted across networks, any app is free to use their filters to decide what goes in and what goes out, what is acceptable or not. If a significant company finds your content unacceptable, you can always move to a smaller, niche platform. If you are banned from even those smaller niche, you can host the content and handle distribution yourself. If you can’t do it, then maybe your ideas deserve to be forgotten. Like in a working free society, harmful thoughts are not mandated away; instead, they slowly die out, as individuals force them off of the main streets and back in the gutter where they can be collected by researchers working on vaccines that require gut bacteria samples.</p>
<p><strong>Nice idea, but how do you expect it to happen?</strong></p>
<p>Don’t underestimate the power of the web to change itself. It has been doing it nonstop for many years. This goal can be achieved in many complementary ways, either by voluntary cooperation, adversarial interoperability, or governmental mandate.</p>
<p><strong>Voluntary cooperation:</strong> Of course, Facebook has no reason to voluntarily breaking itself up and allow the most valuable part of its business, the social graph, to be taken by anyone who wants it. But while Facebook is the biggest, there are many competitors, and more are popping up every day. If Twitter and a few other smaller sites voluntarily supported such standards, they could benefit from a range of newer clients developed by third parties, which could force the rest of the market to adopt it.</p>
<p><strong>Adversarial interoperability:</strong> not all standards emerge from cooperation. During the browser wars, some browser vendors often would reverse engineer innovations created in Internet Explorer meant to lock users in and make them available in their platform. Open Office spent a large amount of energy trying to correctly read a closed source office document and make sure it was the most compatible tool. These are two examples in which a monopolistic power (Microsoft) ended up ceding and adopting an open standard.</p>
<p><strong>Government mandate:</strong> there are many proposals to regulate social media. As discussed previously, many of these might make the problem worse by creating such a burden of requirements to host user-generated content that only big players can do. But suppose there is an emerging standard of compatibility for social media that can break the current monopolies. In that case, governments worldwide can point to that and say, “you should follow some industry-standard. Otherwise, you’ll force us to create our own”.</p>
<figure>
<img src="https://blog.vandesande.design/media/its-time-for-social-media-interoperability/05-704.webp" width="1024" height="683" alt="">
<figcaption><a href="https://www.flickr.com/photos/39267804@N05/32091439693" target="_blank" rel="noopener">“Via Appiah Antica”</a> by <a href="https://www.flickr.com/photos/39267804@N05" target="_blank" rel="noopener">eriktorner</a> , <a href="https://creativecommons.org/licenses/by-nc-sa/2.0/?ref=ccsearch&amp;atype=rich" target="_blank" rel="noopener">CC BY-NC-SA 2.0</a></figcaption>
</figure>
<h4 id="h-communities-that-last-centuries">Communities that last centuries</h4>
<p>Today, you can still walk on roads that have been laid thousands of years ago. But you can also visit places that have existed for a long time but were suddenly dismantled in a short period. Communities were people were born, lived, fell in love, that disappeared due to a single decision from a board somewhere or a sudden market movement.</p>
<p>The difference between a structure that can last centuries is either the people who live in that community can maintain, repair, clean, own it—long after the people that built it originally are gone.</p>
<p>Our digital communities are where relationships are created, fights are fought, ideas are debated, new births are announced, deaths are mourned. And yet, they can all be deleted or disappear in an instant, with the unplugging of a server.</p>
<h4 id="h-we-can-build-digital-communities-so-they-outlast-their-builders-so-we-must">We can build digital communities so they outlast their builders. So we must.</h4>]]></content:encoded>
</item>
<item>
<title>UX Audit: Status</title>
<link>https://blog.vandesande.design/ux-audit-status</link>
<guid isPermaLink="true">https://blog.vandesande.design/ux-audit-status</guid>
<pubDate>Thu, 19 Nov 2020 12:00:00 +0000</pubDate>
<description>The Dreaded Triple Bar – or when design is outside your control</description>
<content:encoded><![CDATA[<p><a href="http://status.im" target="_blank" rel="noopener">Status.im</a> is one of the earliest projects on the space and the first to focus on a mobile browser. It starts with a–brilliantly correct–assumption that browsers in mobile are not about being smaller versions of their desktop companions but should be all about messaging. As a messaging app is also far ahead of the competition, being a rare example of an open-source, end to end encrypted, fully anonymous message app. I would say it’s one of the best-designed Ethereum focused wallets out there right now. Still, here’s how a typical Dapp looks in Status:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-status/01-704.webp" width="1348" height="1474" alt="">
</figure>
<p>Ok, this is an exaggeration, a composite of many nasty popups, tabs, and other anti-patterns I found while navigating. Here are two real-world examples, the apps Zapper.fi and Zerion. I want to highlight not the apps’ content, mostly, but the many bars on top and the bottom of the screen. Notice how on the left side, the top bar for Zerion has two similar “x” in a similar place, followed by a hamburger menu.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-status/02-704.webp" width="1610" height="1276" alt="">
<figcaption>Try to guess where Status interface ends and the app interfaces start.</figcaption>
</figure>
<p>But the worst offender in this list is undoubtedly the triple bottom bar in the zapper.fi app. The bottom two are from Status, and the top one is from Zapper. Who designed this? Well, most likely, no one did. The old saying, “success has many parents; failure is an orphan” applies very often to design. Design failures are not usually planned, but a set of decisions that individually are not wrong but collectively become a bad idea. Zerion having a top bar suggesting you download the mobile version followed by a hamburger menu is standard practice. Zapper using a bottom bar is a good idea in its face. Status having two bottom bars always visible is… Well, no, this is a bad idea.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-status/03-704.webp" width="1120" height="480" alt="">
</figure>
<p>Why is bottom navigation bars so typical in mobile, while the same navigation often becomes a side or top menu on a desktop? The reason is quite simple: it’s the natural area in which our thumbs can easily navigate around when you hold the device one-handed. Also, because your thumb is an imprecise instrument, they’re on the bottom so that if you hit them slightly below or above them, then that’s still ok. Similarly, the top menu or all the screen sides are used on desktops because if you move the mouse cursor quickly, that’s the longest and most comfortable hit area. Suppose you configure your computer so that a second monitor is arranged above the main desktop. In that case, you’ll see how much of a burden it is to hit the menu or bottom bars on the Mac–instead of being just a quick swipe of the cursor, now you need to hit precisely the border between displays. Creating two (or three in this case!) bottom menu bars transforms the area from a lazy reach from your thumb into a complex control panel.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-status/04-704.webp" width="1378" height="700" alt="">
</figure>
<p>The reason that Status had a double row of bottom navigation seems to indicate that the main navigation and the “browser” navigation were built designed separately, with both adopting the bottom bar as the “natural” way to navigate that particular hierarchy. So it’s natural to expect that an app designer, also working from a different blank slate, would also want to use this prime spot — and therefore, we end up with the haunted triple bar. Probably not designed by any individual, still what the end-user sees. It’s also indicative of a misunderstanding of the hierarchy of functionality versus the hierarchy of usage. From a company perspective, maybe developing the wallet or critical management took a lot more resources than the browser — browser is just one feature of many. But all features follow a Pareto rule: there’s a tiny number of features that account for 80% of usage, and that’s where the browser is.</p>
<p>What is the purpose of these buttons? I arranged them in this diagram with a color code:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-status/05-704.webp" width="1284" height="1332" alt="">
</figure>
<p>We have two different buttons that will take you to chat rooms (although in other areas) positioned on different sides of the screen. Similarly, we have two buttons that will often take you to the same place, the “home” of the browser bar, one on the top another on the bottom. Going “home” on the browser bar has an unhelpful “×,” which makes it seem you are “closing” something. On Safari, the “×” is used briefly as a symbol of “stop loading,” It’s also used as a symbol to delete the URL and write a new one. This particular “×” does neither. I found it quite hard to type a new address since you need to tap the address bar multiple times until it selects the full address and then types backspace on the virtual keyboard. In the example I’ve shown earlier, a similar “×” is used to close a top informational bar. The top right corner is quite a noble position for such an unremarkable and imprecise button.</p>
<p>For the 12 buttons visible on the screen, what would the user probably use the most? Of course, this would require user testing, but I would be willing to bet they would be, in order, the navigation, followed by identity, followed by chat, and finally all the rest. Using that rule, we could probably hide most of the other buttons. A lot of the navigation can be done via gestures that are already standard in iOS, swipe from the left to go back, to the right to go forward, slide everything down to close the tab. Of course, these should be offered as additional, a back button icon should be present.</p>
<p>The four buttons on the bottom bar represent an identity crisis in Status: what is it, a messaging app, a dapp browser, a wallet, or an account management tool for your crypto? Of course, that decision needs to be a strategic one from the team, but I would dare make a bold suggestion here: <em>drop the wallet</em>.</p>
<p>A wallet is just an app among many that you can use. Many wallet interfaces are available on the status “app store” that offer pretty much the same functionality. Don’t remove that functionality, of course; just put it in the same level as any other “favorite app” as a removable default. The second suggestion would be to hide the whole account management thing deep in some hierarchical level. A user will rarely need to use it to get back some of that real estate space back. What’s left is a browser and chat, which reveals what status should strive to be:</p>
<blockquote>
<p>Status is a social app browser for crypto</p>
</blockquote>
<p>It’s the easiest way to interact with crypto apps, but it’s also something you can do while interacting with friends. A universal discord chatroom for all Ethereum. Let’s look at the same page, but remove all the disabled and redundant buttons and hide some of them inside the new icon representing where × used to be.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-status/06-704.webp" width="1074" height="1408" alt="">
</figure>
<p>It’s clear that there’s enough room for us to not need a double bar anymore. But I think a cleaner state like this is an opportunity to think about the app’s meaning and depth. We could have a bottom bar with just three buttons–but navigation buttons only make sense inside a browser window, and you can think of a chat as something on top of all apps, a toggle of sorts.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-status/07-704.webp" width="1828" height="1214" alt="">
</figure>
<p>In this design, Status starts as the main app offering all the cool, exciting stuff Ethereum has to offer and then gradually disappears in the background until the app uses all the space on the screen. Notice even the bottom bar navigation has only two buttons, but these two can also become invisible. These buttons will reappear once the user scrolls up (a standard practice in many apps, including Safari, Google, Preview, etc.). Still, most of the same functionality can be achieved by gestures: swipe from the left to navigate back, scroll down to make the top bar appear, and finally exit the app completely.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-status/08-704.webp" width="982" height="1756" alt="">
<figcaption>Chat windows can hidden on the side of an app, or maybe in the back, after you flip them around</figcaption>
</figure>
<p>Swipe from the right could even be used to show the chat page, again reinforcing the concept of Status as a shared social browser. Or maybe it could even be on the back of each tab, with a flip around animation.</p>
<h3 id="h-in-conclusion">In Conclusion:</h3>
<p>Designers don’t always control all the experience, and sometimes that’s good. Also, an issue with UX is often an issue with a fundamental division, from within the team on what they’re building. Often we want to show on the navigation all the effort we put into making our features, but the reality is that a few features will account for most of what your users will use. Hide the other 80%, and you will get a lot of new blank space to play. Use that to rethink the hierarchy and depth, and you might come out with a brand unique experience from just moving stuff around.</p>
<h4 id="h-response-from-status">Response from Status</h4>
<p>Before publishing this post, I’ve sent the draft for the Status team to take a look and they provided me with <a href="https://notes.status.im/WPFKOfBSQMGGRM6qwL2fOA?view" target="_blank" rel="noopener">a response</a>, quoted below:</p>
<blockquote>
<p>Introspecting, <em>when</em> focusing a on Browser, a challenge that absorbed our attention has been how to provide access to dapps, while being at the mercy of Play/App store policies. Hence the spin-off <a href="https://blog.vandesande.design/ux-audit-status">https://dap.ps/</a>.</p>
</blockquote>
<blockquote>
<p>Regarding gestures: (…) We have a long standing issue for the browser address and tool/nav bar to ‘hide on scroll’. This is definitely a good reminder to get back to that. (…) Gesture interactions can pose it’s own challenges of staggered interactions, less visible but similar to the multiple tab bars or close items. E.g. horizontal scroll in the dapp, in the browser, between tabs.</p>
</blockquote>
<blockquote>
<p>The potential of moving ‘key management’ to the background is definitely there. At the same time, there’s power in considering ‘wallet’ (i.e. account management) an integrated component. For example, to facilitate sending funds over chat, register an ENS username for use in chat, moderating chats through staking mechanisms, setting up paywalls to provide services, or block unsollicitate connections, voting in chat. These types of features benefit from direct access to the associated accounts.</p>
</blockquote>
<blockquote>
<p>Generally, you’re touching on a critical topic for us with the suggestion to move wallet, as we need to deeply understand the distinction between key management, identity and wallet interactions for purpose of transactions. Food for thought for sure. Here’s a prototype of a more Browser centric (or OS -like) navigation you might enjoy:</p>
</blockquote>
<p><a href="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F8UfZlEllSrM%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D8UfZlEllSrM&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F8UfZlEllSrM%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" target="_blank" rel="noopener">https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F8UfZlEllSrM%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D8UfZlEllSrM&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F8UfZlEllSrM%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube</a></p>
<p><em>Thanks Simona and the rest of the team for the reply and the hard work you’ve put in Status!</em></p>]]></content:encoded>
</item>
<item>
<title>Out of Gas: We’re Shutting Down UniLogin</title>
<link>https://blog.vandesande.design/out-of-gas</link>
<guid isPermaLink="true">https://blog.vandesande.design/out-of-gas</guid>
<pubDate>Sat, 19 Sep 2020 12:00:00 +0000</pubDate>
<description>UniLogin is out of gas. Not necessarily out of money, but the current Ethereum gas market, the rise of DeFi, and new browser standards have changed the game significantly enough…</description>
<content:encoded><![CDATA[<p>UniLogin is out of gas.</p>
<p>Not necessarily out of money, but the current Ethereum gas market, the rise of DeFi, and new browser standards have changed the game significantly enough that we don’t see a way forward with the project.</p>
<p>UniLogin started <a href="https://www.youtube.com/watch?v=qF2lhJzngto&amp;t=1s" target="_blank" rel="noopener">two years ago with a vision for a Universal Login standard for Ethereum</a>, a way to onboard new users to Ethereum directly from the browser, using smart accounts and abstracting away all the gas. While the idea was very well received by the community (<a href="https://www.youtube.com/watch?v=TztR_7IehjU" target="_blank" rel="noopener">we packed the second largest stage at Devcon 2018</a>), we made some bets on a few assumptions that turned out to be untrue.</p>
<h4 id="h-incorrect-assumption-1-browsers-could-be-counted-to-store-low-value-secrets">Incorrect Assumption #1: Browsers could be counted to store low value secrets</h4>
<p>A big part of the magic behind “create any account without downloading or installing anything else” was that we were using localstorage for initial secrets.</p>
<p>We knew localstorage had a lot of issues: a malicious browser extension can access all your browser info, a DNS attack could be used to phish users, etc. Our strategy for that was to push users towards multisigs: every time you logged in from a different browser or device we would add another key, meaning that if one of them was stolen, the others could be used to prevent or limit any harm. We could even add further security by making stronger requirements for larger amounts (e.g., to move anything over $20 you need to install a phone based app).</p>
<p>But we didn’t expect to be caught in a fight between Internet giants. Localstorage, cookies, and any sort of client side memory is widely used and abused by marketers to track users across the web. Some browser vendors (most prominently Apple) are fighting back by being more aggressive on their memory wiping policy, <a href="https://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more/" target="_blank" rel="noopener">including erasing all memory if the user doesn’t visit a site in 7 days</a>. As a result we (and ironically, a lot of privacy preserving “burner wallet” websites) simply can’t rely on that method anymore.</p>
<p>As a result, we had to change our roadmap to include signing in via email. We thought it would be the least invasive of the authentication methods (e.g., compared to social media sign in) but it did mean that now we would be hosting (client-side encrypted!) our users wallets. It also significantly altered our flow, since we wanted the only identifying information for the user to provide to be an <a href="http://ens.domains/" target="_blank" rel="noopener">ENS name</a>.</p>
<h4 id="h-incorrect-assumption-2-scalability-wouldn-t-be-a-problem">Incorrect Assumption #2: Scalability wouldn’t be a problem</h4>
<p>This was an explicit assumption in our presentations: usability was more important than scalability, and given that there were so many deployed L2 solutions on the market (like xDai), as soon as scalability became a problem we would all move there.</p>
<p>This turned out a deadly assumption: as soon as we had our email sign-in solution ready, gas fees on Ethereum made the whole process unworkable.</p>
<figure>
<img src="https://blog.vandesande.design/media/out-of-gas/02-704.webp" width="1124" height="788" alt="">
<figcaption>Step 2 of onboarding flow: send $133 to the miner</figcaption>
</figure>
<p>UniLogin is particularly sensitive to gas prices because <em>before onboarding any users</em> we were deploying on their behalf a new multisig wallet, registering an ENS name, and sometimes using our relayer to add a Dai transaction. After that, <em>every new sign-in on a different device required a new on-chain transaction</em> (to add a new key) and <em>every transaction would be a bit more expensive</em> due to the relayer. <strong>Some days the whole process of onboarding a new user was costing over $130!</strong> Meaning you could buy a hardware wallet for the price of signing up on our app.</p>
<p>We don’t consider this to be a temporary problem. Even if the gas situation improves and makes the cost of user onboarding 10x or even 100x better that would still be a deal breaker for many mainstream applications with millions of users.</p>
<h4 id="h-incorrect-assumption-3-ethereum-is-meant-for-everybody">Incorrect Assumption #3: Ethereum is meant for everybody</h4>
<p>I still hold this belief and hope it will be true again in the future, but at the moment Ethereum has been going <a href="https://twitter.com/ameensol/status/1293077109347250176" target="_blank" rel="noopener">through a process of gentrification</a>, where big defi users are pricing out all other usage of the network. Games, NFTs, DAOs, and many other exciting use cases are simply inaccessible at the cost of multiple dollars per transaction. Of course, the natural course will be that a lot of new stuff will move to L2 or their own chains, but right now at the moment the process is scattered, where many apps are using different scalability solutions.</p>
<p>The result is that it’s quite hard for someone to build a system right now as the <strong>One Universal Account</strong>. For the foreseeable future (which is very short in crypto!) I expect that a lot of interesting use cases will migrate to xDAI, and that some stark/rollup solution will be the basis of a trading-specific chain.</p>
<h3 id="h-conclusion">Conclusion</h3>
<p>Because our team is small and lean, we could easily squeeze out another six months of product development and maybe try to find a bridge investment (you can add a #4 to a list of incorrect assumptions: “that a global pandemic and recession wouldn’t dry up a lot of VC capital in early stage startups”).</p>
<p>One more direction we considered would be to do a <em>full pivot into a L2 defi focused wallet or a sign-in solution only for a smaller set of products in xDAI</em>. However, this would be almost a restart of the project and so we decided simply to return the remaining cash to investors and then go on the next opportunity.</p>
<p>The wallet market was very hot two years ago, and now that yield farming is the new hot thing, wallets are going through a natural consolidation. <a href="https://medium.com/portis/portis-is-now-part-of-the-shapeshift-family-c86fc402882b" target="_blank" rel="noopener">Portis is now ShapeShift</a>. <a href="https://medium.com/fortmatic/fortmatic-is-now-magic-reinventing-identity-for-a-more-secure-and-authentic-web-4c6a1608ddcb" target="_blank" rel="noopener">Fortmatic is now Magic</a> and is focused on <a href="https://medium.com/magiclabs/magic-raises-4m-to-end-the-era-of-passwords-f14dda572919" target="_blank" rel="noopener">passwordless signups</a>. Argent (which I consider to be the closest implementation of the original vision I had for Universal Logins) announced their login SDK at EDCON 2020, but haven’t deployed it yet. Also a shoutout to our friends at Authereum which are still working hard on figuring this gas thing out!</p>
<p>Because we always used the open philosophy of putting users in charge, we can’t actually shut off access to user wallets, because they are actually just a standard gnosis safe. We will continue running relayers at least until the end of the year to facilitate users migrating their interfaces and funds elsewhere. If after that you still need some help feel free to contact marek@ethworks.io and we will help you figure out what you need.</p>
<h3 id="h-whats-next">Whats next?</h3>
<p>My co-founder Marek, along with the rest of the team, will be joining the ranks of <a href="https://ethworks.io/" target="_blank" rel="noopener">Ethworks</a> — setting out on a journey to become one of the top Ethereum and blockchain service companies worldwide.</p>
<p>For me personally it was quite an adventure. I travelled to many places, met a lot of great, lovely, beautiful, intelligent, inspiring people, stepped out of my comfort zone, had great conversations with VCs, founders, and builders of all walks of life and did things I had never done before. I’m thankful of everyone who I met in this road and hope to see you soon on whatever my next step is.</p>
<p><em>So long and thanks for all the fish.</em></p>
<figure>
<img src="https://blog.vandesande.design/media/out-of-gas/03-704.webp" width="2842" height="2842" alt="">
<figcaption>Our team, from left to right: Natalia, Alex (behind), Albert, Marek, Jarek, and Justyna. Not pictured: Brantly, who greatly helped communications.</figcaption>
</figure>
<hr>
<p><a href="https://blog.vandesande.design/out-of-gas">Out of Gas: We’re Shutting Down UniLogin</a> was originally published in <a href="https://medium.com/universal-ethereum" target="_blank" rel="noopener">UniLogin</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
</item>
<item>
<title>A security audit of Mist</title>
<link>https://blog.vandesande.design/a-security-audit-of-mist</link>
<guid isPermaLink="true">https://blog.vandesande.design/a-security-audit-of-mist</guid>
<pubDate>Fri, 11 Sep 2020 18:16:33 +0000</pubDate>
<description>In 2016-17 the Ethereum Foundation hired @cure53berlin for a security Audit of Mist. The process was eye opening and contributed to the discontinuation of the project. The report…</description>
<content:encoded><![CDATA[<p>In 2016-17 the Ethereum Foundation hired @cure53berlin for a security Audit of Mist. The process was eye opening and contributed to the discontinuation of the project. <a href="https://drive.google.com/file/d/1LSsD9gzOejmQ2QipReyMXwr_M0Mg1GMH/view" target="_blank" rel="noopener">The report</a> was never publicized but it might still be valuable for builders today.</p>
<p>Mist was a brainchild of Gavin and Jeff but I took the lead of it when I joined the foundation in 2014. We had grand plans for it being the realization of all web3 technologies we were building and it was planned as the main software release of Metropolis</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/IgNjs_WaFSc" title="Ethereum presents Mist" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<p>However the first 2 years I worked on Ethereum we were mostly focused on the Wallet app, so it started being released as a beta in 2016 and we started a security audit at the same time. The Foundation contacted Mario Heiderich from Cure53.</p>
<p><strong>It was a great piece of humble pie.</strong></p>
<p>As a designer I had spent a lot of time working on small things that I was really proud of, for instance instead of the URL being a simple text field we wanted to show all the url elements in a proper hierarchical order. But turns out Meteor’s SafeString wasn’t that safe.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-security-audit-of-mist/01-704.webp" width="1200" height="1068" alt="">
</figure>
<p>We would then build our own sanitizers and then they would come back to us with “actually,  this isn’t enough, there’s a bug in Webkit using this particular character so we were able to execute javascript code by encoding it in a token’s name”</p>
<figure>
<img src="https://blog.vandesande.design/media/a-security-audit-of-mist/02-704.webp" width="1182" height="506" alt="">
</figure>
<p>A lot of the exploits were abusing long strings to hide information that could be used to phish the user, or things that didn’t even cross our minds, like “we can actually make a draggable object from your site overtake elements from the UI”. We were impressed.</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/a-security-audit-of-mist/03-704.webp" width="1200" height="1014" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-security-audit-of-mist/04-704.webp" width="1200" height="947" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p>At this point everything was fixable. But at some point they started going deeper into our tech stack: you could force an error in Node.js to reveal information about the user’s folder names. You could abuse our injected provider and override the native JSON parser functions.</p>
<p>And then the really scary things started popping: the found out how to abuse electron to access privileged commands not even Mist should have access to. At some point a POC was able execute <em>any</em> app in the computer. This is scary for a normal app, but fatal for a crypto wallet.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-security-audit-of-mist/05-704.webp" width="1200" height="681" alt="">
</figure>
<p>The whole process took over a year of back and forth, where they would find issues, we would fix and come back to them. At some point issues started escalating to Electron team, Chromium and Webkit. Cure53 itself said it was out of our hands and they couldn’t have predicted it.</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/a-security-audit-of-mist/06-704.webp" width="1200" height="385" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-security-audit-of-mist/07-704.webp" width="1200" height="321" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-security-audit-of-mist/08-704.webp" width="1200" height="351" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 3</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p><strong>This was fundamentally the end of the project.</strong> We explored  different approaches, using other frameworks, building our own, starting from scratch on a completely different language. We saw Brave pop up and eventually abandon Electron too. In a year Mist would be discontinued.</p>
<p>I wouldn’t have thought about the report again, if it wasn’t for @Jordancoin pinging me about it, wanting to learn more what we learned ourselves and it made me realize these lessons could be applied to more people building desktop wallets in crypto.</p>
<p>So I’m sharing it now.</p>
<p>I hope this is useful for some people. Thanks Jordan for pinging me about it, @Silverhair72 for digging it out again and of course my former team mates @feindura , @evertonfraga , @mhswende, @MaiaVictr, @Philipplgh, @wolovim for working so hard to dig us out.</p>]]></content:encoded>
</item>
<item>
<title>UX Audit: Dark Forest Game</title>
<link>https://blog.vandesande.design/ux-audit-dark-forest</link>
<guid isPermaLink="true">https://blog.vandesande.design/ux-audit-dark-forest</guid>
<pubDate>Tue, 18 Aug 2020 12:00:00 +0000</pubDate>
<description>And in general more about how I approach the UX work While I’ve been an ethereum evangelist for the past 6 years (it feels so weird to type this!) I have never tried selling…</description>
<content:encoded><![CDATA[<p>And in general more about how I approach the UX work</p>
<p>While I’ve been an ethereum evangelist for the past 6 years (it feels so weird to type this!) I have never tried selling people on the idea of buying any coin., because while I am a believer (and hodler) of many assets, and an avid user of DEFI in general, I’ve been always more excited about other non-financial promises of blockchain general computing. Among them, blockchain games, to the extent I said this back when “games” in ethereum were either casinos or cryptokitties:</p>
<p>What I want from blockchain games:1) be a good game first2) explore what makes blockchain unique3) design around the limitations4) persistent always on world 5) players own the game, the items and experiences6) allow anyone to design and improve the game7) embrace bots</p>
<p>A new game I’ve been testing out (a bit excessively) last week, Dark Forest, hits almost all of these except for a few points that they could very well explore better when it’s moved from a testnet into a layer 2 like xdai (owning NFTs, universe persistency, bots). And it has the very interesting twist that uses ZK-Snarks for creating a hidden information game.</p>
<p>It’s a space exploration game with no graphics: a classic formula of exploring the universe to find unconquered planets, and then using the resources from these planets to explore and conquer more planets. The game map is derived from computing a hash of coordinates, which means that the universe is pre-determined the moment a salt is decided, but can only be found by computing all these hashes, so exploring is a sort of proof of work. You then move from planet to planet not by publishing the coordinates in which you’re moving, but rather you submit proof to the chain that you are doing a valid move, using zksnarks circuits. But most importantly for the purposes of this article: <strong>it has terrible user interface.</strong></p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/01-704.webp" width="2820" height="1568" alt="">
<figcaption>Really, what’s going on here?</figcaption>
</figure>
<p>A great compelling idea of a software, with very complex technical concepts that need to be explained to the end user, with a terribly confusing user interface designed by engineers? That’s the sweet spot for a UX designer like me. So let’s go and explore not only how to improve it, but how my process works so that maybe you can apply for your own software.</p>
<h4 id="h-1-the-difference-between-the-theme-and-the-experience">#1 the difference between the “t<em>heme”</em> and <strong><em>the “experience”</em></strong></h4>
<p>A theme is how the game purposefully looks. Terms like “ugly”, “retro”, “pixelated”, “text heavy” relate to the theme and are all valid options. Often when developers (and inexperienced designers) talk about making a better “interface” they’re talking about having nicer fonts, 3d buttons, shadows, colors, etc.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/02-704.webp" width="1688" height="860" alt="">
<figcaption>There are no right way of picking a theme for a software (but there are a few <a href="https://www.reddit.com/r/nostalgia/comments/2lxi5h/album_of_90s_windows_media_player_skins_xpost/" target="_blank" rel="noopener">wrong ways</a>)</figcaption>
</figure>
<p>The Theme (aka a “style” or called a “skin”, when it can be changed by the user) is an artistic decision. Your game can decide to look like an old school BBS or a bubbly display from the future. While of course those decisions have technical reasons behind often (it’s easier to create pixelated sprites, or make changes on a text heavy interface when you don’t have a designer on staff) they are still stylistic options. Things that you can even set for a user preference are usually themes. But if you are discussing “this can be done with a less clicks” or “the user is confused by this” then we are in the realm of user experience.</p>
<p>I find the latter much more interesting, because often you can offer solutions that are even less work to implement, but can drastically improve 10x your user acquisition. Also, a developer might feel they are not capable of “designing” a new theme, but they can always be empowered to learn to optimize the experience like one would optimize an algorithm.</p>
<h4 id="h-2-if-you-need-to-explain-it-then-you-ve-failed-already">#2 If you need to explain it, then you’ve failed already</h4>
<p>The first experience is fundamental for any software development and is often renegated by developers because it’s the screen they <strong>never</strong> see, full of empty and unselected stuff. This is the first screen a user would see when they log in the game:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/03-704.webp" width="2479" height="1448" alt="">
<figcaption>WTF am I looking at??</figcaption>
</figure>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/04-704.webp" width="2471" height="1453" alt="">
<figcaption>First screen after closing the pop up. The black slowly expands as you “explore” but you wouldn’t know that.</figcaption>
</figure>
<p>You have a terminal on the right, a lot of information about planets and fleets. You have a popup with crucial information on how to play, but the user will probably close it out before it reads it because at this point it’s suffering from information overload and wants to go to the game already. They probably don’t know at this moment but this is the most important piece of UI they should look at first:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/05-456.webp" width="456" height="232" alt="">
<figcaption>Is this a game or a cryptocurrency?</figcaption>
</figure>
<p>Unlike many panels this one has no lore, no explanation, no story and set of minimal and confusing buttons. Yet this should be the first thing the user needs to learn about. <em>“Mining” is a bad metaphor for explaining Proof of Work crypto currencies</em> <em>and</em> <strong><em>it’s even worst for a game</em></strong>, even if it’s technically correct. It gets worse because the player will find planets with the “silver” resource which grows over time but is <em>completely unrelated to this mining</em> panel! In this case you are using your computer CPU to explore the map and find planets, so we can simply call it “explore”.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/06-704.webp" width="1052" height="860" alt="">
</figure>
<p>Notice that I did not change the “hacker style” of the game, kept the black and white and text heavy, because our focus is UX, not changing the theme. That should be a separate effort. <strong>Sometimes “redesigning” can be as simple as calling stuff other names.</strong></p>
<p>I renamed the panel to “explorer” and created an icon for it. I chose an spiral inspired by the idea of a Sophon, a particle-sized computer that is invisible but is used to gather information on the <a href="https://www.amazon.com/Dark-Forest-Remembrance-Earths-Past/dp/0765386690/ref=sr_1_1?dchild=1&amp;keywords=dark+forest&amp;qid=1597680804&amp;s=books&amp;sr=1-1" target="_blank" rel="noopener">Dark Forest book</a> (I would not use the actual name, because while this game is inspired by the Liu Cixin trilogy, it’s not meant as an official license of the IP). The icon itself doesn’t matter, but it’s important to show another copy of the same icon on the map, showing it moving around as it explores the unknown region of the map. In the first phases of the game the most important thing the user should do is move the explorer around and drag the map so they can understand what they’re doing. In fact, since most of the panes in the UI were empty or context dependent, the whole first UI could be reduced to this:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/07-704.webp" width="1706" height="1156" alt="">
</figure>
<p>The User doesn’t need to be explained the UI because the UI has very few buttons on it. He can can move the explorer and drag the map around to find new planets. Once he finds them we can have more panels appearing with the context. Now where did the rest of the interface go?</p>
<h4 id="h-3-kondorize-your-room">#3 Kondorize your room</h4>
<p>Sometimes you don’t need a designer, you need <a href="https://www.amazon.com/Life-Changing-Magic-Tidying-Decluttering-Organizing/dp/1607747308" target="_blank" rel="noopener">Marie Kondo</a>: often a lot of great work can be accomplished by looking at all your elements with a fresh eye and asking yourself where they belong, and what goes with them. And if they don’t bring you joy, get rid of them. Often a common mistake is that developers start by making menus and then filling them up, before realizing if they actually <em>need</em> that particular piece of UI. Now let’s look back at our previous UI and understand better what it relates to.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/08-704.webp" width="1766" height="1100" alt="">
</figure>
<p>Related information is all over the place. Some important panes use very little space, while some completelly useless ones (“planet lore”, a randomly generated description of planets, or a “landscape” view) uses a large amount of space. Panels that are very similar in nature: upgrading a planet or managing your fleet are far apart.</p>
<p>At least 20% of the screen is taken by a log window. While this is probably important for developers and sometimes even for the players (if their transactions fail, for instance) it’s inneficient use of space. For developers it should have a toggle visibility hidden somewhere so that most users don’t see it, and any important warnings meant for end users could be put in a temporary notification hover in the top right. Global properties like your score, or a list of top found planets are rarely needed and could very well be hidden inside one click. Another terrible usage is the toolbar which basically has information replicated elsewhere:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/09-418.webp" width="418" height="70" alt="">
<figcaption>It looks important enough to be on top, but isn’t</figcaption>
</figure>
<p>This toolbar contains help, some links to panes that are open elsewhere (top planets, upgrade, manage), a link to a pane not found elsewhere (top players) a link to connect to your twitter (which could be inside your profile) and another for broadcasting coordinates to a planet. While this last one has some questionable strategic reasons and is very aligned with the lore (without getting into book spoilers but the dangers of broadcasting the location of a planet with intelligent life is the driving force in most of the Liu Cixin trilogy), this option really just creates a tweet with the numerical coordinates and could be moved inside some other pane.</p>
<p><strong>Often when designing a UI developers first decide on the navigation and then decide what goes in there.</strong> This is a common error and often leads to a navigation that is unnecessary, specially when they start adding buttons for “coming soon” features.</p>
<p>Now that we looked at our closet drawer, what happens when we separate all the socks, shirts and pants in their respective places?</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/10-704.webp" width="1718" height="1214" alt="">
</figure>
<p>All contextual information (including “broadcast” option) <em>only appears on the right when a planet is selected</em>. All other global information appears on the right <em>when the “menu” button is selected</em>. Other options, like showing the console, could be hidden in there too. This allows most of the interface to be hidden only when the player needs to look at it.</p>
<p>The main lesson here is: <strong>figure what stuff you actually need to show user, and when. Group stuff together, hide stuff you use very rarely, throw away stuff you never use.</strong> It works for your closet as well as your UI.</p>
<h4 id="h-4-discoverability-less-is-not-always-more">#4 Discoverability: Less is not always more</h4>
<p>Finally let’s talk a bit about the proposed contextual menu:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/11-696.webp" width="696" height="892" alt="">
</figure>
<p>As an exercise, I’m not proposing any new features and gettind rid of very few. Even stuff that is relatively useless and is there just for the flavoring, like the planet “view” and lore is kept there. A small change is the addition of a new button, “send fleet”.</p>
<p>Sending spaceships around is the essence of the game, but surprisingly, <em>there’s no button to do it.</em> The way to achieve it is to select a planet, change the slider to selecting how many rockets to send (I made the slider more explicit about “selecting”) and then dragging from one planet to another. While dragging is quite an efficient way of moving troops, it’s sometimes flaky (clicking and dragging on the map is also the way to navigate on it) and it’s hard to find that out by yourself unless you read the help menu. So in this change there’s an alternative way to achieve that: click the origin planet, select the rockets to send, click send fleet, and then click on the destination planet.</p>
<p>While it’s a lot more clicks to achieve the same task, it’s no doubt a better approach because it allows the user to figure out each step and understand what is happening on it. The old way of dragging should be kept, mostly as a shortcut for experienced users.</p>
<p>The principle <strong>here is that discoverability is more important than efficiency, and sometimes adding extra steps or UI elements to a flow is a net positive</strong>.</p>
<h4 id="h-5-polish-polish-polish">#5 Polish polish polish</h4>
<p>A lot of developmnent work is just grinding details the user will never notice over an over. For example, for a text heavy interface, text in Dark Forest is quite messy. Certainly a better text placement algorithm would help avoid them one on top of the other. Another very important strategically important UI element is the radius circle, that, when you select a planet, tells you how far your ships can travel (the grey circles below), Ideally you should be able to see the full circles and they are selfexplanatory:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/12-704.webp" width="960" height="992" alt="">
</figure>
<p>But in most circumstances you’ll see something more like a mess of lines and semicircles with very little explanation, because the text is off screen. Again, text placement algorithm is important.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-dark-forest/13.gif" width="600" height="594" alt="">
</figure>
<p>When you select how many ships to send from a planet, a new yellow circle expands, going from 0 to 100%, which is sort of redundant with the current grey circles and gives a false impression that it represents how far your current troop can go. Instead a much more useful moving circle would be to show multiple lines showing absolute numbers: “by this far you’ll have a power of 500, here you’ll have a power of 150” which is the final information you need to decide where to send your fleet.</p>
<p>I could on in tons of small details like these that would help the UI get less confusing and many of these are probably already in the backlog of the developers. But my point is <strong>a design is not something you build on photoshop once and throw it over the wall to developers: it’s a constant interation of back and forth of finding small ways to improve your product experience, which you’ll only discovering by using it a lot. Be a user.</strong></p>
<h4 id="h-6-designers-learn-to-talk-to-developers">#6 Designers: learn to talk to developers</h4>
<p>Most of this post is intended to developers or designers learning the ropes. But this is a point addressed to designers: know how to talk the language of your audience. Before jumping and trying to make a beautiful screen out of something ugly, try first really understanding the process in which decisions were made so that the UI looks like that.</p>
<p>Often designers see themselves as the “pure ideas” person, while developers see designers as someone to call when the house is already built so they’ll pick which color to paint the walls. Ideas are only as good as they can be implemented and they need to be understood and adopted to be implemented.</p>
<p>Notice that in this whole post I’ve avoided talking about the many ways in which I’d improve the game itself, or even trying to make a nicer looking planets and a fancy theme. Everyone who builds anything has plenty of ideas of their own, and if your fancy theme is a hassle to build, it will never get high priority. Sometimes a designer just needs to be the person tidying up the room after the party.</p>
<p><em>All icons come from open libraries like</em> <a href="https://thenounproject.com/" target="_blank" rel="noopener"><em>The Noun Project</em></a><em>.</em></p>]]></content:encoded>
</item>
<item>
<title>UX Audit: MetaMask Main Navigation</title>
<link>https://blog.vandesande.design/ux-audit-metamask-main-navigation</link>
<guid isPermaLink="true">https://blog.vandesande.design/ux-audit-metamask-main-navigation</guid>
<pubDate>Thu, 13 Aug 2020 12:00:00 +0000</pubDate>
<description>a UX audit about rethinking metamask menus</description>
<content:encoded><![CDATA[<p>Making software—especially on the blockchain—that is both powerful and usable is very hard, <a href="https://blog.vandesande.design/sunsetting-mist">I know</a>. And sometimes we plan a lot of our UI but new features get added, some changes are done in the implementation and while we have ideas on how to improve that, they get pushed to our long backlog. So this isn’t intended as anything but praise at what the great work the team at MetaMask has been doing. I hope this analysis could be useful and due to the great utility MetaMask has on my life at the moment, I’d like to share it. So let’s talk about specifically this little bit on the app:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-metamask-main-navigation/01-704.webp" width="706" height="264" alt="">
<figcaption>MetaMask version 8.0.0 connected to an app</figcaption>
</figure>
<p>Arguably, the most important piece of real estate of the app is the header and menu and it contains the following elements:</p>
<ul>
<li><p><strong>A MetaMask logo.</strong> Despite looking like an icon and being the first thing we see, it is not clickable nor provides any information</p></li>
<li><p><strong>A network switcher</strong>, using most of the space of the top bar</p></li>
<li><p><strong>An account switcher/menu.</strong> The same menu also contains links to add new accounts, import an account, connect hardware wallet, settings and info (which is just another menu inside settings menu). That’s a lot for a menu with an abstract icon.</p></li>
<li><p><strong>A connection status</strong> (new on 8.0.0) tells you information about which apps can see your account.</p></li>
<li><p><strong>Account title</strong> and address, clicking it will copy the address to the clipboard.</p></li>
<li><p><strong>Account menu</strong>, with the options to expand (opens MetaMask app in tab), account details page (more on that later), open in etherscan and a link to the connection menu (the same action as clicking on the connection status bar)</p></li>
</ul>
<p>So, in a diagram format:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-metamask-main-navigation/02-704.webp" width="1686" height="1074" alt="">
</figure>
<p>So, <strong>we have <em>six</em> click areas on the topbar opening <em>four</em> menus.</strong> However the <em>noblest area, the top-left doesn’t provide any information or functionality</em> and <em>the largest click area on the top offers a functionality that is probably only used for more advanced users</em> (how many dapp users want to set up a custom rpc or a localhost node?). Account switching is probably done more often by users (and we should encourage them to, for privacy!) but is hidden in a more neutral looking identicon. They are rather <em>inconsistent</em> in behavior too as some of these will create actions, others will expand menus. Say a user needs to see his seed phrase, it’s not very obvious that this path starts at the weird abstract green art on the top right corner.</p>
<p>Also the “account details” pane is interesting that it offers four actions, two of these will open a new tab (expand, etherscan), one of them will open the same menu that you get by clicking on the “connected apps” menu and finally one will open the “account details” pane.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-metamask-main-navigation/03-700.webp" width="700" height="1070" alt="">
</figure>
<p>And the Account details pane is a thing on its own: it replicates the same information we were looking at before, but now in a modal. It contains the following elements:</p>
<ul>
<li><p><strong>the identicon:</strong> notice you see it twice now, as it’s still visible on the background</p></li>
<li><p><strong>account name:</strong> now it allows editing the name</p></li>
<li><p><strong>The address:</strong> shows more characters and unlike before, clicking on it won’t copy, just select it</p></li>
<li><p><strong>view on etherscan:</strong> notice it’s a duplicate of an action of the previous menu too!</p></li>
<li><p><strong>a QR code</strong></p></li>
<li><p><strong>“export private key”:</strong> arguably a quite advanced feature, given that most users will just use seed phrases and individual private keys are less useful</p></li>
</ul>
<p>This pane is opened from many places, including clicking on the “deposit” button and choosing “crypto”.</p>
<h4 id="h-suggestion-1-replace-the-details-menu-with-an-inline-expansion">Suggestion #1: replace the “details” menu with an inline expansion</h4>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-metamask-main-navigation/04-704.webp" width="1828" height="1050" alt="">
</figure>
<p>Expanded view could happen when you click the identicon, the name, or anywhere on the white bar (except the connection button and maybe the address). This would eliminate both the “account details” menu and “account view” overlay. Reducing the amounts of menus and overlays also reduces cognitive overlay from the user, as is one less place to remember where to navigate. This also keeps consistency, since we are just showing the same information we were showing before, just “bigger”. Actions like “<em>expand</em>” of “<em>open in etherscan</em>” are still just two clicks away. Clicking anywhere on that top bar would expand it, except clicking directly on the “connect” button or the address, which keeps the current behavior of copying the link.</p>
<p>We’ve also moved our little green friend icon to this bar, since <em>identicons are a feature of an account, not the app as a whole.</em> This of course means the top menu has a hole on it now. Let’s explore that.</p>
<h4 id="h-suggestion-2-unify-the-switchers-menus">Suggestion #2: unify the “switchers” menus</h4>
<p>There are three main actions accessible on the top menus:</p>
<ul>
<li><p><strong>Switch</strong>: change your current account or network</p></li>
<li><p><strong>Add</strong>: add a new account from seed, import account from file, connect hardware wallet</p></li>
<li><p><strong>Settings</strong>: since “info &amp; help” is one level deep inside the main settings menu, it means this button essentially does the same as “settings”</p></li>
</ul>
<p>Visually this could be divided like this:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-metamask-main-navigation/05-704.webp" width="728" height="276" alt="">
</figure>
<p>The first big change I would defend is: <strong>unify switching accounts and networks.</strong> Not only this removes clutter from the app, but <em>it also is good practice</em>. You don’t want to be using your main account to sign transactions in a test network, this induces errors (“Help, I accidentally sent to my test account!”), can create replaying issues and reduces privacy as activity between networks can now be linked. Switching to a new network should also switch your accounts (but of course not the other way around). This would also help separate to the user what accounts are used for what and is in line with the common behavior of users so that you can more easily switch from say, playing with a main net app and then quickly switching to a test net app in another tab. When adding a new account the user should also select which network it is for, which also helps hide more advanced options like “localhost:8545”. In the very few cases in which a user might want to use the same account in two different networks, it should be allowed as an advanced feature, and upon first importing new accounts, it would be good for the app to check which accounts have balance or nonces on test networks.</p>
<p>Let’s call these concepts of “cards” in which each account is tied to a given network and contains a balance there. This is executed quite beautifully in <a href="https://apps.apple.com/app/id1464614025" target="_blank" rel="noopener"><strong>MEW’s new wallet</strong></a>:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-metamask-main-navigation/06.gif" width="600" height="664" alt="">
<figcaption>MEW’s app on the Appstore doesn’t allow Testnets, but it’s Beta program did</figcaption>
</figure>
<p>Applying the concepts of cards to MetaMask we would have an interface similar to the following:</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-metamask-main-navigation/07-704.webp" width="1966" height="656" alt="">
</figure>
<p>The same functionality is present in the start, but we eliminated all intermediary modal menus, except for a much shorter “add account” menu. Clicking anywhere on the card header will expand it and show more options, clicking on the floating cards (and MetaMask logo) will expand them to allow a picker. Settings and Add account have clear icons. Not only the MetaMask logo is now in an even more important real estate, it serves an important functionality that is on-brand (access to your ethereum cards).</p>
<p>Some use of color can make the cards even more distinguishable. Colors can either be based on card type (main net, testnet, hardware wallet), random based on the address or they can be derived from the identicon itself (below right, we’re just expanding the icon and blurring it, so it works for any type of identicon including blockies)</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-metamask-main-navigation/08-704.webp" width="2400" height="1194" alt="">
<figcaption>A little color goes a long way.</figcaption>
</figure>
<p>I hope this exercise has been as useful for you to read it as it has been fun for me to work on it. I believe doing these changes would make the main navigation much more consistent, reduce the mental overhead required for users to figure out where stuff is and make the app experience even more interesting. Of course, the final design itself can be tweaked, animation can add another interesting navigation layer and it’s easy to see how it can be converted to mobile. Some tweaks can be done to show more relevant information, like if it’s a “MetaMask account” (derived from seed) or a hardware wallet. This reduces clicks, increases functionality and IMHO looks a lot more interesting.</p>
<figure>
<img src="https://blog.vandesande.design/media/ux-audit-metamask-main-navigation/09-704.webp" width="2452" height="1368" alt="">
</figure>
<blockquote>
<p>Cheers and thanks for all your work, MetaMask team! Let’s keep building it together for a better and nicer ethereum!</p>
</blockquote>]]></content:encoded>
</item>
<item>
<title>Random Brazil trivia</title>
<link>https://blog.vandesande.design/random-brazil-trivia</link>
<guid isPermaLink="true">https://blog.vandesande.design/random-brazil-trivia</guid>
<pubDate>Fri, 12 Jun 2020 20:41:51 +0000</pubDate>
<description>Only capital of a country in Europe to be outside Europe. I’m actually considering doing a whole new thread like Sunny’s, just with Brazilian historical trivia. Hands up if I…</description>
<content:encoded><![CDATA[<p>Only capital of a country in Europe to be outside Europe.</p>
<p>I’m actually considering doing a whole new thread like Sunny’s, just with Brazilian historical trivia. Hands up if I should.</p>
<figure class="tweet">
<blockquote cite="https://x.com/sunnya97/status/1271313741812883457">
<p>Rio de Janeiro in Brazil used to be the capital of Portugal.</p>
<footer><a href="https://x.com/sunnya97/status/1271313741812883457" target="_blank" rel="noopener">Sunny Aggarwal (@sunnya97), 12 June 2020</a></footer>
</blockquote>
</figure>
<hr>
<p>The Amazon is manmade. Its highly fertile soil is the result of purposefully mixing broken pottery, manure and fish bones for large scale agriculture. Many native species that were believed to be wild are now known to have been domesticated over thousands of years.</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/01-704.webp" width="1074" height="818" alt="">
</figure>
<p>References:<br>
<a href="https://en.wikipedia.org/wiki/Terra_preta" target="_blank" rel="noopener">Terra Preta</a><br>
<a href="https://www.sciencemag.org/news/2017/03/hundreds-years-later-plants-domesticated-ancient-civilizations-still-dominate-amazon" target="_blank" rel="noopener">Domestication of plant species in the Amazon</a></p>
<hr>
<p>The first European on the Amazon reported it densely populated, which was later considered an exaggeration. Recent deforestation have uncovered hundreds of geometrical patterns now understood to be remains of wooden temples (the region lack stones) of yet unknown civilizations.</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/02-704.webp" width="1200" height="803" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/03-704.webp" width="780" height="522" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/04-704.webp" width="1200" height="797" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/05-512.webp" width="512" height="355" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 4</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<hr>
<p>All the tribe members had bows, and when they saw white men coming down their river in a weird boat, they welcomed them with arrows. The Spaniards barely made it home alive, but were so impressed about the mythical women warriors they called them the “Amazons”.</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/06-704.webp" width="1200" height="604" alt="">
</figure>
<hr>
<p>Uncharacteristically for nomadic tribes, some Amazon people (Kambeba, Marajoara) have a class based society, further evidence they descended from a more complex agrarian society. The Kambeba even did cranial mods to differentiate themselves from other inferior "forest savages”.</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/07-704.webp" width="864" height="1064" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/08-704.webp" width="712" height="928" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/09-704.webp" width="792" height="1056" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 3</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p>I hope I have convinced you that the idea that the Amazon was a pristine and unocupied land is a myth. I swear tomorrow's trivia will be on a slightly different take.</p>
<p>Reading suggestions on that topic:<br>
<a href="https://en.wikipedia.org/wiki/Francisco_de_Orellana" target="_blank" rel="noopener">en.wikipedia.org/wiki/Francisco_de_Orellana</a><br>
<a href="https://en.wikipedia.org/wiki/Cambeba" target="_blank" rel="noopener">en.wikipedia.org/wiki/Cambeba</a><br>
<a href="https://en.wikipedia.org/wiki/Marajoara_culture" target="_blank" rel="noopener">en.wikipedia.org/wiki/Marajoara_culture</a></p>
<hr>
<p>When the Pope proposed to divide the world between Portugal and Spain in 1493, King John II threatened war to push what was an arbitrary line in unknown sea 270 leagues to the west, later revealed to contain most of Brazil. This was probably not a coincidence.</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/10-704.webp" width="1092" height="890" alt="">
</figure>
<hr>
<p>The first European to arrive on Brazil was a Spaniard.<br>
While there’s controversial evidence for some 1498 trips (and even earlier speculation) the first documented exploration of the Brazilian coast is of Vicente Pinzon, 2 months before the official Portuguese trip by Cabral.</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/11-349.webp" width="349" height="500" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/12-249.webp" width="249" height="316" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<hr>
<p>Cabral’s fleet to India, which claimed brazil for Portugal, was the largest ever assembled, 13 ships and 1500 men, more than Colombo, Pizarro, Vasco da Gama and Cortês expeditions combined. Yet it was given to a high noble with no sea experience as was the custom of the time.</p>
<hr>
<p>Brazil, the netherlands and Italy shared the same King for 60 years. He was spanish.</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/13-704.webp" width="1200" height="555" alt="">
</figure>
<hr>
<p>Like many countries, Brazil celebrates Independence Day. But unlike others, it was actually encouraged by the Portuguese king to his son, who, seeing both colonies and kings were falling out of fashion, declared himself emperor of Brazil<br>
Only his brother opposed.</p>
<hr>
<p>During one of the few battles in the "indepence war”, the brazilian army was outnumbered and the commander ordered the bugle to call the withdrawal, but it played insted “cavalry, charge and kill”.<br>
The Portuguese, fearing reinforcements had arrived, receded. There was no cavalry.</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/14-704.webp" width="714" height="642" alt="">
</figure>
<p>*independence</p>
<p>The trumpet player is commemorated on <a href="https://www.google.com/maps/place/O+Corneteiro/@-22.9839705,-43.2092109,3a,75y,90t/data=!3m8!1e2!3m6!1sAF1QipPym1flWfV8usEl-HPbK9r58J4AlL5tUryXeyLj!2e10!3e12!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipPym1flWfV8usEl-HPbK9r58J4AlL5tUryXeyLj%3Dw115-h86-k-no!7i2592!8i1936!4m5!3m4!1s0x9bd5f4627594af:0xb37554009e5574d9!8m2!3d-22.9839728!4d-43.2091708" target="_blank" rel="noopener">a comical statue in Ipanema</a> on a street named after a big funder of the war, but unfortunately most people have  no idea of his hilarious story.</p>
<hr>
<p>Shortly after the Independence the whole process was <em>accidentally</em> reversed. Due to his father death, Peter the first, emperor of Brazil, was also crowned Peter the fourth, king of Portugal. He abdicated the Portuguese throne for his daughter, the only Brazilian queen ever.</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/15-150.webp" width="150" height="184" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/16-220.webp" width="220" height="358" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<hr>
<p>Half of all victims of the atlantic human trafficking trade were brought to Brazil.   About 4-5 million enslaved africans were brought, 6x the total number of the United States. Brazil was also the last state in the Americas to abolish slavery.</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/17-704.webp" width="1200" height="766" alt="">
</figure>
<hr>
<p>After aboliton, all the files related to slavery were burned, theoretically to "allow the formerly enslaved to have a blank slate". Of course, quite conveniently for the former enslavers, this prevented any talk of reparations for their former victims.</p>
<p>Link to <a href="http://m.acervo.estadao.com.br/noticias/acervo,a-destruicao-dos-documentos-sobre-a-escravidao-,11840,0.htm" target="_blank" rel="noopener">a new story of the time</a>.</p>
<hr>
<p>Brazil had its first “black” president in 1906. The country never had racial laws but racism manifested in society in other ways: his critics would call him a “mullato” but Nilo Peçanha’s family denied it and his photographs would be whitened. Only recently has this view changed.</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/18-704.webp" width="1200" height="800" alt="">
</figure>
<hr>
<p>The emperor was still popular when the republic started, and monarchy still enjoys some occasional popularity. A 1993 referendum to reinstate got 13% of the vote. The current “heir” was elected a congressman in 2018 and was considered for a VP for the current far-right government</p>
<hr>
<p>There's currently a schism in the Brazilian “royal" family, due to a "scandalous” marriage of the Peter’s grandson with a commoner in 1908. As of 2020 there are two claimants for the non-existing throne of emperor of Brazil.</p>
<p>Whe wasn't even a "commoner”, she was a countess noblewoman from the Bohemian kingdom, but she had no <em>shocked face</em> royalty claim. I find <a href="https://en.wikipedia.org/wiki/Line_of_succession_to_the_former_Brazilian_throne" target="_blank" rel="noopener">the whole article</a> particularly funny, a series of detailed wiki articles about people who did nothing but be born.</p>
<hr>
<p>Only once in the history of Brazil was a democratically elected* president both succeeded and preceded by another democratically elected president. It happened in 2016.</p>
<p>*This excludes the first republic in which neither woman or poor people could vote. But even if we include that one, it doesn't get much better: the longest sucessions of presidents without a death, impeachment, or coup d'etat was 4 sucessions, 1894 to 1909.</p>
<p>It was actually 2010, 2016 is her impeachment. Had a brain short circuit there..</p>
<figure class="tweet">
<blockquote cite="https://x.com/interstar/status/1278391632308711424">
<p>@avsa What about Lula in 2002?</p>
<footer><a href="https://x.com/interstar/status/1278391632308711424" target="_blank" rel="noopener">phil jones (he/him - ele) @interstar@artoot.xyz (@interstar), 1 July 2020</a></footer>
</blockquote>
</figure>
<hr>
<p>After Japan, the country with the second largest community of Japanese descendants is Brazil, about 1.5 million people.</p>
<hr>
<p>Brazil’s first war as an independent country was with also newly independent Argentina, over who would control a bordering province. Both countries lost and thus was created the independent country of Uruguay.</p>
<hr>
<p>Brazil still has some territorial disputes with Uruguay. One of them is a river island which was until 2011 inhabited by a single, ninety year old, farmer. When a fire broke there in 2009, firefighters from both countries came to the rescue.  It’s currently uninhabited.</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/19-704.webp" width="1024" height="682" alt="">
</figure>
<p>When the first Brazilian president since redemocratization visited Uruguay, he was met with a congressional protest against the “occupation” of the island. He knew nothing about it. Locals said there was an old stone house built by “dirty mark”. It was an old boundary marker.</p>
<hr>
<p>France’s largest land border is with Brazil. It’s also Brazil’s second <em>smallest</em> border and the only part of Brazil visible on the euro note.<br>
The border is serviced by a single two lanes bridge since 2017.</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/20-704.webp" width="1039" height="906" alt="">
</figure>
<p>Thanks @TheOisinMoran for this one.</p>
<hr>
<p>In 1997 Brazil signed a deal with NASA that would allow one astronaut on the ISS. It required the country to develop and build a metal rack to be mounted un space. Brazil never delivered. Instead in 2006 Brazil paid the Russians $11M for a ride. He’s the current science minister.</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/21-704.webp" width="1019" height="761" alt="">
</figure>
<hr>
<p>Brazil has been ruled by 16 kings, 2 emperors, 38 presidents (20 actually elected) and 3 republican prime ministers.</p>
<p>The country has a brief parliamentary phase during one single controversial presidential term in the 60’s.</p>
<hr>
<p>While officially part of the Allies, the Brazilian Government during WWII was much more aligned with the Axis, having even deported Jewish Germans in brazil back to Nazi Germany. It only sent military forces by the end of 1944—less than 1000 brazilians died figthing in the war.</p>
<hr>
<p>The current Brazilian president had over 50 impeachment requests. If one goes through, it will mean that half of all presidents elected in Brazil since the last constitution would’ve been impeached.<br>
All impeachments have led to removal from office. We never needed to do it twice.</p>
<hr>
<p>In 2013, protesters invaded the national congress, a start of a movement that ultimately led to the president stepping down.<br>
While it still called a soft coup by some, it was never called insurgence, because protesters never openly planned to take hostages or murder politicians.</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/22-500.webp" width="500" height="324" alt="">
</figure>
<hr>
<p>When compared in area, Brazil is about 10 trillion times larger than Room 711 of the Louvre, where the Mona Lisa is displayed.</p>
<p>Yet this single room has, in a normal average year, 25% more tourist visits.</p>
<hr>
<p>Truthfully we only have indirect evidence of large settlements (see thread).</p>
<p>But I’ve always found curious that the earliest civilizations we know were building large stone temples in arid climates. Is that better for large cities or simply better for the archeological record?</p>
<hr>
<p>Today marks the 200th anniversary of what was probably the most farcical “independence” war ever: after “winning” the “war” the country was ruled by the heir of the former king, who—plot twist—was the one who suggested it to his son in the first place.</p>
<hr>
<p>Been a while since I've done one of these Trivias and it's not Brazil related but close enough. I just figured this  cool fact:</p>
<p>Chile is almost as wide as its tall. In fact it's as close to a perfect square  ratio (1.03)  as Egypt, often considered the "squarest of countries".</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/23-704.webp" width="1043" height="1200" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/random-brazil-trivia/24-704.webp" width="1014" height="940" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p>Some friends questioned the calculation. There are many ways to say "wide" as there are no rectangles in a sphere. When measuring the great circle distance from westernmost point (Moto Nui) to easternmost point (Terra del Fuego), Chile is actually wider than tall!</p>
<figure>
<img src="https://blog.vandesande.design/media/random-brazil-trivia/25-704.webp" width="1044" height="1200" alt="">
</figure>]]></content:encoded>
</item>
<item>
<title>Turtles All the Way Down: Multisigs Owning Multisigs</title>
<link>https://blog.vandesande.design/turtles-all-the-way-down</link>
<guid isPermaLink="true">https://blog.vandesande.design/turtles-all-the-way-down</guid>
<pubDate>Mon, 27 Apr 2020 12:00:00 +0000</pubDate>
<description>Using UniLogin and Gnosis Safe to control a multisig from another multisig.</description>
<content:encoded><![CDATA[<p>Despite challenging times, our team is doing our best not to slow down. After tackling the nuances of remote work, we have been focusing on stability and polishing <a href="https://unilogin.io/" target="_blank" rel="noopener">UniLogin</a>.</p>
<p>Meanwhile we are happy to see that some integrations we’ve being working on are going live, namely <a href="http://kickback.events" target="_blank" rel="noopener"><strong>Kickback</strong></a> and <a href="https://gnosis-safe.io/app" target="_blank" rel="noopener"><strong>Gnosis Safe Multisig</strong></a>.</p>
<p>But wait, didn’t we already <a href="https://medium.com/universal-ethereum/universal-login-beta-3-gnosis-safe-support-more-9b72be0e01f8" target="_blank" rel="noopener">announce we were using Gnosis Safe</a>? To explain, let’s clarify some terms.</p>
<p>Besides their prediction markets and exchanges, the Ethereum development company Gnosis has also built two widely used multisig contract wallets: the original <em>Gnosis multisig</em> and the newer <em>Gnosis Safe</em>, which supports etherless transactions. The latter is what we use internally as our contract-based accounts.</p>
<p>But Gnosis also offers Gnosis Safe as a frontend service for teams, so they have an app named <em>“Gnosis Safe Multisig”</em> (no relation to the previous “Gnosis Multisig”). The Gnosis Safe Multisig app, which was formerly named “Gnosis Safe for Teams”, allows you to create and manage safes from MetaMask or other service providers, now including <a href="https://unilogin.io/" target="_blank" rel="noopener">UniLogin</a>, which is <em>itself</em> a multisig.</p>
<h3 id="h-but-why">But <em>why</em>?</h3>
<figure>
<img src="https://blog.vandesande.design/media/turtles-all-the-way-down/01-704.webp" width="784" height="502" alt="">
<figcaption>An identity picker concept from 2014 that would allow multiple addresses for each user “profile,” including one for a collective account.</figcaption>
</figure>
<p>Is this just a curiosity to make a point about daisy-chaining contracts together? <strong>Not at all!</strong> In fact, the idea of modularity and that every account would eventually be a rich, smart account has permeated Ethereum development since the early days. You can see this from this screenshot from my <a href="https://www.youtube.com/watch?v=IgNjs_WaFSc" target="_blank" rel="noopener">2014 presentation of a vision for an Ethereum browser</a> at Devcon0. In fact, when Geth was first developing account management, it was believed that public key pair accounts would be just a temporary measure and that in less than a year most people would have migrated to what we then called “proxy accounts.”</p>
<p>This goes deep into the heart of what an “identity” is. What makes you “you” online?</p>
<p>On the traditional web, it’s about authorization: proving to a central server within their reasonable bounds that you are the correct person, with increasingly hard challenges (a session cookie and, if that fails, a username and password, then a “forgot password” flow, and then sometimes you might be able to escalate it to a human in the help desk).</p>
<p>In the crypto space, traditionally it has been a very binary choice: if you have the private key, then those are your coins. If you lose access to your key, or if someone else gets access to that key, then too bad, you’ve lost them.</p>
<figure>
<img src="https://blog.vandesande.design/media/turtles-all-the-way-down/02-704.webp" width="1254" height="596" alt="">
</figure>
<p>It’s our belief that in a decentralized world, the concept of “you” will be a constellation of devices and keys that all agree to slowly expand. Your phone, your laptop, your tablet, an email, a smart card, maybe someday a smart passport, your watch, eyeglasses, or any other smart wearable will be added to this constellation of your identity. Each device (and each app in each device) holds a single untransferable key that is authorized to do a few actions on your behalf and enables you to vote to add or remove devices to that identity or expand these permissions. <strong>Your digital identity is a democracy made of your devices.</strong></p>
<figure>
<img src="https://blog.vandesande.design/media/turtles-all-the-way-down/03-704.webp" width="1474" height="1334" alt="">
</figure>
<p>If Alice and Bob wants to start a common enterprise, let’s say a bar and restaurant called “Foo,” they should be able to control that identity together in a similar fashion: for some actions (like posting on a social media app) one of the keys should be enough to authorize it, for other more important actions (like moving funds) they would need multiple approvals.</p>
<p>What if now the Foo Bar wants to vote in a trade union of local bars? Or if the local trade unions want to do an assembly vote on state level? Not necessarily all of these collective contracts would follow the same rules, but the important lesson is that they should be infinitely scalable, from the small decision of which of your devices to authorize a transaction, up to who has a right to vote on the global election.</p>
<h3 id="h-in-practice-how-do-we-get-there">In practice: how do we get there?</h3>
<p>Enough with the theory, how does it look today?</p>
<ol>
<li><p>Go to the <a href="https://gnosis-safe.io/app/" target="_blank" rel="noopener">Gnosis Safe app</a>.</p></li>
<li><p>Click connect to wallet &gt; Show More &gt; UniLogin.</p></li>
<li><p>Select your username. If you already have a login it will connect you to one, otherwise it will create one for you.</p></li>
<li><p><strong>If you are in the US, you can now use Apple Pay,</strong> thanks to our Wyre integration! Otherwise you can always use the excellent Ramp in Europe or just use crypto if you are already onboarded.</p></li>
</ol>
<figure>
<img src="https://blog.vandesande.design/media/turtles-all-the-way-down/04.gif" width="1200" height="645" alt="">
</figure>
<p>As soon as the transfer is detected, a new account will be created for you, which uses Gnosis Safe behind the scenes. Now to create a <em>new</em> Gnosis Safe, just click “create new safe” and then follow the instructions on the page. <strong>When you are asked for a list of owners instead of hunting down Ethereum addresses to copy paste, just type your UniLogin username</strong>! Whenever you are using UniLogin you always get assigned an ENS name on account creation, and since this page supports ENS lookups, all you need to do is type the given name and the right account will be found automatically.</p>
<figure>
<img src="https://blog.vandesande.design/media/turtles-all-the-way-down/05.gif" width="1200" height="839" alt="">
</figure>
<p>This will create your second level multisig, from your personal level multisig account. It doesn’t look that complicated does it? If you’re curious to see how it looks like technically, <a href="https://etherscan.io/tx/0x6c17dcfce2d2c38861333cb2c4427c49bd58f73451f5d24ecca812678c52026e#internal" target="_blank" rel="noopener">check the transaction that generates the safe, from the first one</a>.</p>
<p><strong>Warning: Don’t put more than a few dollars into your account yet.</strong></p>
<figure>
<img src="https://blog.vandesande.design/media/turtles-all-the-way-down/06-704.webp" width="1346" height="1370" alt="">
</figure>
<p>Some browsers (like Safari), are changing their approach to local storage and are clearing it with more frequency in order to combat tracking. So you might get logged out and without access to your main account. To make sure that this doesn’t happen, make sure to download the “recovery” key PDF.</p>
<p>This should not happen in most browsers at the moment but we are changing the user flow to make sure this is more prominent to avoid user losses.</p>
<h3 id="h-also-try-it-on-kickback">Also try it on Kickback!</h3>
<p>We are also happy you can use UniLogin with our good friends from Kickback too. Just go to <a href="http://kickback.events" target="_blank" rel="noopener"><strong>kickback.events</strong></a> and select “UniLogin” as your wallet option.</p>
<figure>
<img src="https://blog.vandesande.design/media/turtles-all-the-way-down/07-704.webp" width="1384" height="906" alt="">
</figure>
<h4 id="h-integration-with-blocknative">Integration with Blocknative</h4>
<p>Both Kickback and Gnosis safe use <a href="https://docs.blocknative.com/onboard" target="_blank" rel="noopener"><strong>Blocknative’s OnBoard.js</strong></a>, which is why if you are already using it, add one configuration line to integrate with your app (see line 5 in the snippet below):</p>
<p>The Blocknative team helped us to improve usability by giving users instant feedback during onboarding when ether is being transferred into an account, even before a transaction is mined.</p>
<h3 id="h-follow-us">Follow us!</h3>
<p>To make sure you don’t miss the next posts in the series, follow us <a href="https://medium.com/universal-ethereum" target="_blank" rel="noopener">Medium</a> and <a href="https://twitter.com/unilogin" target="_blank" rel="noopener">Twitter</a>.</p>
<h3 id="h-pilot-program">Pilot program</h3>
<p>Still not signed-up for our Beta program? Fix it!</p>
<p><a href="http://tiny.cc/unilogin" target="_blank" rel="noopener">Join our Pilot program</a> 👮🏽 🛩</p>
<hr>
<p><a href="https://blog.vandesande.design/turtles-all-the-way-down">Turtles All the Way Down: Multisigs Owning Multisigs</a> was originally published in <a href="https://medium.com/universal-ethereum" target="_blank" rel="noopener">UniLogin</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
</item>
<item>
<title>Have we considered using the Uniswap model for domains, based on length tranches?</title>
<link>https://blog.vandesande.design/the-uniswap-model-for-domains</link>
<guid isPermaLink="true">https://blog.vandesande.design/the-uniswap-model-for-domains</guid>
<pubDate>Mon, 28 Oct 2019 18:00:28 +0000</pubDate>
<description>It’s hard to know the “right” price for a domain, and I believe to find a fair pricing algorithm is a common trend here, but usually, the hardest part is figuring out the metric…</description>
<content:encoded><![CDATA[<p>It’s hard to know the “right” price for a domain, and I believe to find a fair pricing algorithm is a common trend here, but usually, the hardest part is figuring out the metric we want to optimize. One I have considered now while looking for domains:</p>
<p><strong>"What’s the chance that the name you’re looking for is already taken?"</strong></p>
<p>We can assume that the ability to find available domains should be a worthy goal. Of course, the problem is that the theoretical limit is infinite. But that’s not so in smaller lenght domains.</p>
<p><a href="https://medium.com/block-journal/uniswap-understanding-the-decentralised-ethereum-exchange-5ee5d7878996" target="_blank" rel="noopener">Uniswap uses a rather straightforward formula:</a> <em>x * y = k</em>.</p>
<p>Where <em>k</em> is a constant and <em>x</em> and <em>y</em> are the variables. The interesting thing about the formula is that it’s an asymptote, in which the price tends to either infinite or almost zero, but never reaches either. How would this work for ENS?</p>
<p><strong>price of a domain * number of domains of that same length = constant K</strong></p>
<p>This means that the very last domain will be infinitely expensive, the very first infinitely cheap, according to a curve we set. So for instance, there are 17,576 three-letter domain (In the english alphabet). Let’s suppose we set the K of this tranch at around 35,000 (2 * 26 * 26 * 26). It would mean that:</p>
<p>If only 1000 three-letter names are registered (less than 10%), then each registration would cost about 2.1 ether.<br>
If 7000 names are (about 50% occupancy) the price surges to 3.5 ether<br>
The 10,000th name will cost 5 ether<br>
If there are 15,000 names taken, then it would cost 17.5 ether<br>
If 17k names were registered (almost 90%) then each new name costs 60 ether.</p>
<p>This could be applied to annual fees going forward, this way it encourages that there will always be a nice amount of names available for registration. Maybe by releasing a name, you get a portion of that amount, meaning that if the prices are going up, you have good reason to drop you unused names. There would be tranches for 3-6 letter names, and then we could use the 6 letter price for everything else since there are over 300 millions of them. This would also mean that for long domains (or non-english ones) prices would always be a small amount.</p>
<p>Would this make sense?</p>]]></content:encoded>
</item>
<item>
<title>Where Ethereum Is Going</title>
<link>https://blog.vandesande.design/where-ethereum-is-going</link>
<guid isPermaLink="true">https://blog.vandesande.design/where-ethereum-is-going</guid>
<pubDate>Fri, 09 Aug 2019 12:00:00 +0000</pubDate>
<description>Changes on Ethereum Foundation and ecosystem from an insider’s perspective</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/where-ethereum-is-going/01-704.webp" width="3200" height="986" alt="">
<figcaption>The Amsterdam Office, the Zug “Boathouse” and the first Berlin Offices, where most the early teams worked at some point.</figcaption>
</figure>
<p>Ethereum is changing, and the Ethereum Foundation is rightly changing with it.</p>
<p>While the high centralization of the early years of the foundation might have been crucial for Ethereum to develop and ship, it was also a great source of criticism as it was antithetical of decentralization.</p>
<p>At Devcon4, Aya Miyaguchi, the new Executive Director of the foundation, gave a beautiful talk clearly influenced by Zen Buddhism on her management style.</p>
<figure>
<img src="https://blog.vandesande.design/media/where-ethereum-is-going/02-704.webp" width="2048" height="1536" alt="">
<figcaption><a href="https://twitter.com/avsa/status/1057575687954010112" target="_blank" rel="noopener">Aya at Devcon4</a></figcaption>
</figure>
<p>Aya believes there was more value to be created by subtraction than addition. The foundation aimed to be smaller, have less power, less resources, and to do it by giving it away as grants.</p>
<p>No longer there would be “official” in-house teams versus external contributors, the foundation would be a financier of everyone inside and outside, and the internal teams had to compete for these resources like everyone else.</p>
<p>Had anyone asked me about where the foundation should go a few years prior and how it should manage their resources, I would have described exactly that model. <em>I know, because they did ask.</em> Before Aya became the director, we all had multiple conversations, both through official channels and in informal corridor meetings at conferences, to describe what everyone wanted to see the foundation become, and that was usually the answer. <strong>Teams wanted more autonomy on their own budget, to do more experiments without having to ask permission for every new hire, or planned conference.</strong> And that’s what they got.</p>
<p>Of course, there’s another side to this: if you get more autonomy, you also take more risks. And if the resources are going to more teams, there’s more competition for them</p>
<p>These might actually be good side effects, but they’re not easy on the receiving side. For example, for years I led the Mist team, a browser that would connect together a bunch of Ethereum technologies to create our vision for Web3. While it was used by a niche of Ethereum enthusiast, it failed any mainstream traction (well, depending on your definition of “mainstream”, no one else really reached that yet either) — and we were flooded by serious security vulnerabilities.</p>
<p>The team realized that, while the biggest security risks were in the browser component, there was still a lot of value on just having one single place that would help connect and manage all the different Ethereum components in one single app, which is now called <a href="https://grid.ethereum.org" target="_blank" rel="noopener"><strong>Grid</strong></a>. Meanwhile, I started to explore what were the real obstacles to mainstream adoption and started a path that I named “<a href="http://universallogin.io" target="_blank" rel="noopener"><strong>universal logins</strong></a>.” At some point I realized the Grid team would have a better chance of getting their full budget if I took myself out of their budget, so I did.</p>
<p>And that was it. I took myself out of any team’s budget in the Ethereum Foundation. Nobody asked me to do it, and I didn’t tell anyone other than the accounting department (and Twitter).</p>
<p>The foundation is quite unique in that I haven’t had a “boss” in the traditional sense in many years. You did your job, you sent an invoice to accounting, which often involves many different people and sometimes different companies in different jurisdictions, and eventually you got paid. Once a year they expect you to tell the world at Devcon what you have been doing. And once a year a different set of people will debate the budget of your team and what you’re doing. Who’s “in” the foundation and out of it is a hard distinction to make. Is it who has an ethereum-dot-org email addresses, or maybe those who get tickets to Devcon, or maybe people who have access to the Discord?</p>
<p>Figuring out how many people actually work at the foundation was in fact one of the first challenges Aya had to take on: it was not uncommon that some people who had active contracts would disappear for months on end into a Github project and suddenly come out of it with a three month invoice — or mabe not even that. <strong>I personally had the case of a team member who never formally quit, was never fired, just <em>ghosted</em> out, stopped responding, and stopped sending invoices.</strong> It’s a weird side effect of remote work.</p>
<p>On that front, the new grants model is superior. It doesn’t really matter how many people worked on a given project: money goes in, code goes out. If the result isn’t good, you just stop sending money.</p>
<p><strong>In short: the foundation is moving into a grants style organization.</strong> My old project was discontinued and I didn’t want to weigh down the new project’s chances of getting that funding by having me on their budget. And that would free more of my time to dedicate to what I think is the biggest issue on the ecosystem: user on-boarding.</p>
<h4 id="h-why-does-ethereum-on-boarding-suck-so-much">Why does Ethereum on-boarding suck so much?</h4>
<p>A year ago, Metamask was pretty much the only game in town on desktop. And while there was a dozen or so mobile apps, everyone was following its footsteps: for every new app, you create a new private key, backup that seed phrase, and transfer ETH into it. Rinse and repeat, every single time.</p>
<p>Not only is the on-boarding process usually long and complicated—you need ETH, which usually requires a credit card or an account in an exchange, which often require official documents and multiple days wait—<strong>but you need to do it every time you install a new app!</strong> If you already have ETH (or even BTC) the process is usually faster, but you still usually need to think about private keys, backups, etc.</p>
<p>In the year since <a href="https://www.youtube.com/watch?v=qF2lhJzngto" target="_blank" rel="noopener">my talk in Toronto on what is now called meta-transactions</a>, the landscape has changed dramatically, and we’re seeing more wallets taking that challenge seriously. Even wallets that still create a private key for each user are now deferring showing the user an interface for backing it up after they’ve had some experience with it and actually own anything of value.</p>
<p>But still we have a main problem: <strong>every app repeats the same on-boarding process. Trying a new app often means starting everything over.</strong> Once a user is on-boarded on Ethereum, we need to be able to have them be able to try new apps without having to either transfer money or share their private key.</p>
<p>When building Mist, our challenge was always to build something for the type of geek that would install Firefox on their mom’s computer just because Internet Explorer was terrible (I hope that metaphor doesn’t age me too much). It was never the most newbie user, but someone a bit more curious and technical, which was, at the time, the least technical savvy person we could reach with the tech we had in mind.</p>
<p>I believe we have the tools now to reach a much wider and more audience now: of people who are outside the crypto sphere and want to try something really magical with their money. That new challenge is now <a href="http://universallogin.io" target="_blank" rel="noopener"><strong>universallogin.io</strong></a>.</p>
<p>Hope you follow me on that new adventure. If you’re in Berlin between 19–23 august, come catch up, I’ll be giving at least four talks:</p>
<ul>
<li><p><a href="https://www.metacartel.org" target="_blank" rel="noopener"><strong>Monday 19th: Metacartel Demo day</strong></a></p></li>
<li><p><a href="https://www.eventbrite.com/e/buildbetter-how-web3-will-be-better-to-use-build-than-web2-tickets-66120820153" target="_blank" rel="noopener"><strong>Tuesday 20th: #BuildBetter</strong></a></p></li>
<li><p><a href="http://web3summit.com" target="_blank" rel="noopener"><strong>Wednesday 21st: Web3 Summit</strong></a></p></li>
<li><p><a href="http://dappcon.io" target="_blank" rel="noopener"><strong>Thursday 22nd: Dappcon</strong></a></p></li>
</ul>
<hr>
<p><a href="https://blog.vandesande.design/where-ethereum-is-going">Where Ethereum is Going</a> was originally published in <a href="https://medium.com/universal-ethereum" target="_blank" rel="noopener">UniLogin</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
</item>
<item>
<title>Sunsetting Mist</title>
<link>https://blog.vandesande.design/sunsetting-mist</link>
<guid isPermaLink="true">https://blog.vandesande.design/sunsetting-mist</guid>
<pubDate>Fri, 22 Mar 2019 12:00:00 +0000</pubDate>
<description>What’s ahead for our team</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/sunsetting-mist/01-704.webp" width="2102" height="771" alt="">
<figcaption>A series of icons for the Mist “Navigator”</figcaption>
</figure>
<p>Personally it feels like yesterday, but I’ve been working on Mist for over four years. While I’m proud of all the accomplishments we achieved in this time advancing the usability of Ethereum and sharing a vision for web3, we feel Mist, the browser has outlived it’s usefulness: the ecosystem has matured so much that now the user has tons of great options of wallets and browsers on both mobile and desktop. At the same time, <strong>the message of how crypto can make a better web has reached so far that now great names like Samsung, Opera and Brave are all focused on integrating web3 features on their roadmap</strong>.</p>
<p>Not all were roses, and in our way we faced some extreme security challenges that forced us to reevaluate our whole roadmap and question if keeping the project alive would be a good use of the Ethereum Foundation resources. We decided then to take everything that was valuable from Mist and roll into separate projects, but the main browser app should be considered deprecated and insecure. For more details on what these are, follow on.</p>
<h3 id="h-what-we-did-right">What we did right</h3>
<p>A vision of a web3 browser always has been essential to the ethereum mission, so much that when we first set up the huge milestones for Ethereum, “Metropolis” would be one in which we had easy, working web3 browsers. More than that, Mist and the accompanying “Ethereum Wallet” app were crucial in these milestones:</p>
<ul>
<li><p><strong>It was the wallet that launched the token standard</strong>. Fabian Vogelsteller, writer of the ERC20 draft, was also the lead developer of Mist and we decided to use it to break the chicken and egg problem of standards: we released a version of the wallet that supported tokens almost at the same time we published the token standard, and it also came with an easy way to write and deploy your own tokens</p></li>
<li><p><strong>Ethereum Wallet paved the way on how to build a Dapp.</strong> While it was a separate downloadble from Mist, it was built completely as web app and the lessons on how to communicate securely with a browser layer really helped pave the way how we deal with that today</p></li>
<li><p><strong>First GUI wallet that enabled early users to use ethereum</strong> and import their presale keys, back when it was only available through command line (or some exchanges)</p></li>
<li><p>First wallet to set and encourage the <strong>Blockie Identicon standard</strong></p></li>
<li><p>First wallet to develop and promote the <strong>CamelCase Checksum</strong> (an idea by Vitalik)</p></li>
<li><p>First wallet to allow <strong>easy deployment of contracts</strong> (long before Remix had a web interface)</p></li>
<li><p>First wallet to create a <strong>visual interface for interacting with any contract</strong> from pure ABI (and for many years, the only one)</p></li>
<li><p><strong>First browser to support ENS domains</strong> without using gateways</p></li>
<li><p><strong>First browser to support Swarm</strong> Hosted websites</p></li>
<li><p><strong>Web3.js, a library used by many apps</strong> as a way to interact with ethereum via javascript, was created by the team for Mist and then made available for others</p></li>
</ul>
<p>These breakthroughs really paved the way to make Ethereum more usable for the first years, and the fact that it was developed in close proximity with the other teams helped their schedule along. The Ethereum Wallet was always built as a web-based app, and this has helped the team learn a lot about how the Web3 should work, which later evolved into other standards. Small things like Geth’s “signAndSend” API, were developed precisely because Mist was able to use and provide feedback to the team.</p>
<figure>
<img src="https://blog.vandesande.design/media/sunsetting-mist/02-704.webp" width="3120" height="1484" alt="">
<figcaption>Screens of early prototypes including many usages for ethereum. These prototypes can still can be navigated <a href="https://invis.io/C2R5VC0WX7F#/23423934_Dapp_Browser" target="_blank" rel="noopener">here</a> and <a href="https://invis.io/5VR5VCXMGBN#/47923761_Add_New_App" target="_blank" rel="noopener">here</a></figcaption>
</figure>
<p>During the early prototypes we had designs for dashboards, appstores, integrated code audit checks, identity as first class citizens, personal tokens, DAOs, prediction markets, and many other things that are only now started to see the light. One should not see this as “being too early” but as a sober reminder of how long projects take to mature. We couldn’t built most of these tools then, and we could only build a few of them today, because they depend on a more broad ecosystem. You can’t build it all in one day, in one team, and you should beware of anyone that promises you otherwise.</p>
<h3 id="h-what-we-did-wrong">What we did wrong</h3>
<figure>
<img src="https://blog.vandesande.design/media/sunsetting-mist/03-704.webp" width="2824" height="868" alt="">
<figcaption>Our lessons, summarized by <a href="https://medium.com/u/d9023ee5756f" target="_blank" rel="noopener">Yan</a> in <a href="https://www.youtube.com/watch?v=Qirdy1TP1Rw" target="_blank" rel="noopener">two slides</a></figcaption>
</figure>
<p>Our biggest speed bumps were always mainly two: syncing a node and relying on Electron. Syncing a full node was doable in the early years, but soon became a chore that would take hours. These issues started being solved in 2017 when light client became reliable, and then in 2018 we also compromised and added a remote node (INFURA) connection that would seamlessly switch between nodes; we strongly believe the ecosystem needs a vast number of nodes being run by users. <strong>This issue led us to lose a lot of our early users who voted with their feet to use apps with hosted remote nodes.</strong> While decentralization and convenience are always constant struggles with both sides having downsides, it certainly something that can be fixed in the long term, with both mixed remote/local solutions like we used and with the advancement of light stateless clients. But this was not the case for the security vulnerabilities brought by electron.</p>
<p>Electron is a great framework for webapps on the desktop, built for apps that used their own trusted javascript files. But when you are building a browser, you are, by definition, running random code from unknown people all around the world. This is tricky. Also, for most of our history together, electron was not updated frequently and even when it was, it was still running several versions behind chromium, which meant that often the latest version of Mist was running an engine several months out of date. Google tends to publish vulnerabilities it found after six months of releasing a fix, and at that point we were still stuck with the one-hundred-day exploit open, leading to a situation where we were paying from our bug bounties fund from people who simply took known vulnerabilities in chrome and applied them to us. We had a professional audit of Mist and they were able to discover multiple vulnerabilities that were fixed, none very dangerous but in late last year we received notice of a few very serious bugs: ones that would allow an attacker to take control of your computer (and your crypto keys) by simply visiting an untrusted website. <strong>This is very bad.</strong></p>
<p>We released a fixed version immediately, but then others similar attacks were revealed and at some point our own internal security team recommended that we not allow the user to navigate to untrusted websites — which is the whole point of a browser. We put an alert on the app and started looking for alternatives.</p>
<p>We explored many alternatives (like <a href="https://github.com/PhilippLgh/tau" target="_blank" rel="noopener">Tau</a>, which uses Chrome Embedded Framework instead of Electron), but still we realized that the amount of human resources needed to keep and maintain a safe browser were far larger than our team could support.</p>
<p>Meanwhile, the ecosystem has also evolved a lot since the early years: Brave (which also started as an electron app but now moved to a full chromium fork) is a solid browser with crypto integration and a great companion to Metamask. In the mobile space, wonderful options were launched in the last couple years: ethereum native apps like Coinbase Wallet (formerly Toshi) and classic browsers vendors like Opera now have a web3 integration. This has lead us to believe that <strong>other browser developers have more resources and are closer to having web3 features natively, than we were of having a secure browser framework.</strong></p>
<h3 id="h-what-nobody-got-right">What nobody got right</h3>
<p>We still believe there’s a long road ahead for the web3 vision. These are things that we haven’t seen done correctly by anyone so far:</p>
<ul>
<li><p><strong>IPFS/Swarm integration on the browser URL.</strong> Sadly, most ethereum apps still use traditional servers that don’t have the immutability guarantees of hash addressing content. If you are building an app or a wallet, consider hosting on IPFS so users can be sure the underlying code can’t change underneath them and break things. In our experience, this not solely the fault of browser vendors, but also an issue with the maturity of the underlying technologies: we successfully implemented swarm hosting over two years ago, but since then both the protocol and their network changed drastically. Sometimes being too early to adopt a changing protocol is a hindrance. <a href="https://twitter.com/ensdomains/status/1105565560224563202" target="_blank" rel="noopener">Brave Browser is making good progress on this.</a></p></li>
<li><p>More use of ENS: we believe ENS (or other decentralized DNS alternative, like handshake) offer much better usability when it comes to adding addresses and domains. We have added ENS support to all our address fields in the wallet so you can use a name whenever you added an address. <strong>But in our experience, doing it unilaterally is not enough: you also have to provide easy ways for the user to register their own names,</strong> in a similar way that we launched token support by not only providing an easy way to add tokens, but also to create them. A good example of progress on this is <a href="https://www.argent.xyz" target="_blank" rel="noopener">Argent</a>—inspired by Universal Logins (another project that came out of the Mist team)—which gives each new user their own username as part of the onboarding.</p></li>
<li><p><strong>Wallet is just another app, identity is not.</strong> We believe we made the right decision when we tried our best to make the wallet just another app on Mist. We also structured the app to focus on Apps that you keep coming back to, and not transient documents you read (which is why we always used sidebar icons instead of tabs for example). But we now realize that the real first class citizen should not be the wallet, but your identity. It’s important for any browser vendor to integrate identity in a way that is both private but universally accessible. This way you shouldn’t need to create a new identity on every app, and you should keep control of that information. For a good approach on keeping information private and yet portable, check the <a href="https://3box.io" target="_blank" rel="noopener">threebox project</a>.</p></li>
</ul>
<h3 id="h-what-now">What now?</h3>
<p>We are sunsetting Mist the browser and will no longer actively support it (but can revisit this decision for occasional security and fork upgrades), but a lot of our work in the past years will be reused, thanks to a great effort of modularizing and modernizing our own code. We are basically splitting Mist in multiple component pieces:</p>
<figure>
<img src="https://blog.vandesande.design/media/sunsetting-mist/04-704.webp" width="1528" height="1162" alt="">
<figcaption>How we’re exploding the current codebase. Dotted are projects not yet started.</figcaption>
</figure>
<ul>
<li><p><strong>Node management</strong>: during the last year we revamped a lot of the internal node management of Mist and how it downloads and runs new versions of geth, swarm, whisper etc. We are now working to release that as a separate app to help developers manage multiple versions, called <a href="https://github.com/ethereum/grid" target="_blank" rel="noopener"><strong>Grid</strong></a>.</p></li>
<li><p><a href="https://ethereum.github.io/ethereum-react-components/" target="_blank" rel="noopener"><strong>Reusable React UI elements</strong></a>: we carefully rewrote most of our components in a reusable library called “Ethereum React Components” that can be used as a starting point for other apps. <a href="https://ethereum.github.io/ethereum-react-components/" target="_blank" rel="noopener">You can check them all live on our storybook</a>.</p></li>
<li><p><strong>Confirmation windows</strong>: we refactored the most important piece of the UI for a wallet, the transaction confirmation, in which the user must understand at a glance what’s happening. We are now working to integrate these interface improvements to Geth’s own key management app, <a href="https://github.com/ethereum/go-ethereum/tree/master/cmd/clef" target="_blank" rel="noopener"><strong>Clef</strong></a>.</p></li>
<li><p><a href="https://github.com/PhilippLgh/electron-app-manager" target="_blank" rel="noopener"><strong>App update manager</strong></a><strong>:</strong> we refactored mist’s self update mechanism in a general App Manager for unified update mechanism for binaries with hot updating and signature verification.</p></li>
<li><p><a href="https://github.com/PhilippLgh/electron-app-manager" target="_blank" rel="noopener"><strong>Package Signer:</strong></a> we also separated a different library that allows you to sign and deliver updates with nothing but an ethereum key, allowing projects to prove the validity of software in a more decentralized way.</p></li>
<li><p><strong>Wallet</strong>: the app known as ethereum wallet is actually a webapp, usable by either mist or metamask at wallet.ethereum.org. That code is outdated and the user experience underwhelming, but we believe we can contribute with the <a href="http://universallogin.io" target="_blank" rel="noopener">Universal Login project</a> in an open source non-custodial but safe wallet.</p></li>
</ul>
<p><a href="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F1lH4q1-Ba0k%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D1lH4q1-Ba0k&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F1lH4q1-Ba0k%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" target="_blank" rel="noopener">https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F1lH4q1-Ba0k%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D1lH4q1-Ba0k&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F1lH4q1-Ba0k%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube</a></p>
<h3 id="h-what-s-next">What’s next?</h3>
<p>The Mist team will continue working together, but our mission now instead of building a single app will be to focus on improving and helping the user experience and front-end of other teams in the Ethereum Foundation. It’s sad for us to see the Mist era coming to a close, but we are happy that one of the reasons for this is that the ecosystem has so many other worthy options. Ultimately, it’s important for our team to help the Ethereum Foundation focus on an area we believe deserves more of our attention and skill sets and we believe our experience in building more accessible front-end interfaces for ethereum apps will be precious.</p>
<p>Our short term goals are to release Grid and some of the other mentioned offshoots of Mist. On the medium term we want to collaborate more with other teams within the Ethereum Foundation, in which teams usually work in isolation, and to lend our our expertise in design, user experience, and front-end architecture, to improve design and usability cross sectionally on all projects.</p>
<h4 id="h-what-to-do-with-funds-on-mist">What to do with funds on Mist?</h4>
<p>Mist and the Ethereum Wallet are user-custodial wallets, meaning all your keys are kept on your own device and you have full control of them, in a file format that is compatible with other ethereum wallets. While there’s no need for any action now, if you want to use them for o, we recommend you migrate these keys to Mycrypto, Metamask and others we have written this <a href="https://medium.com/@omgwtfmarc/6bcf066ac383" target="_blank" rel="noopener">handy Mist migration guide</a>.</p>]]></content:encoded>
</item>
<item>
<title>Paying my whole team with a single click</title>
<link>https://blog.vandesande.design/paying-my-whole-team-with-a-single-click</link>
<guid isPermaLink="true">https://blog.vandesande.design/paying-my-whole-team-with-a-single-click</guid>
<pubDate>Fri, 01 Feb 2019 14:10:13 +0000</pubDate>
<description>Today I was able to pay my whole team with a single click. Could have been none but the scheduler service failed. This little tool really shows how much ecosystem evolved that we…</description>
<content:encoded><![CDATA[<p>Today I was able to pay my whole team with a single click. Could have been none but the scheduler service failed. This little tool really shows how much ecosystem evolved that  we can solve simple real world problems today by connecting multiple contracts.</p>
<figure>
<img src="https://blog.vandesande.design/media/paying-my-whole-team-with-a-single-click/01-704.webp" width="1066" height="1200" alt="">
</figure>
<p>I spent a half a day and was able to build a contract that keeps DAI in compound, but withdraws when it wants to make specific payments. I added yearly salaries of all team members and spent another half day in making a nice interface so they can request payment at anytime.</p>
<p>I recently posted how after being paid in BTC and ETH I was now receiving in DAI. But there's a lot more to the story. In fact my whole team has been receiving in ether for years but we had a lot of trouble doing so.</p>
<figure class="tweet">
<blockquote cite="https://x.com/avsa/status/1087730019055616000">
<p>When I started working at @ethereum I was paid fully in bitcoin. As soon as the option was available, in 2015/16 I started receiving fully in ether. Now I've had the honor to be the first person in the Foundation to be paid in DAI!<br>#DogFooding</p>
<footer><a href="https://x.com/avsa/status/1087730019055616000" target="_blank" rel="noopener">Alex Van de Sande (avsa.eth) (@avsa), 22 January 2019</a></footer>
</blockquote>
</figure>
<p>First of all, it's actually quite hard – purposefully – to move funds. Some of the bigger wallets the foundation has have been an original multisig code, which is safe but only works with command line tools. At some point we had to wait for busy people like Vitalik to sign a tx.</p>
<p>Also, payments in ether are complicated for accounting due to volatility. Do you use the exchange rate of the invoice or the day the tx is sent? People send invoices in different days, it takes some time for the person responsible to go through payments, it's not trivial.</p>
<p>The result is that for a long time the decision was that the exchange rate used would always be either the 1st or 15th of the invoiced month, depending on when the invoice arrived. It simplified things for one side, but also created an inconvenience for those being paid.</p>
<p>In highly volatile months you could receive 30% more or 50% less than you expected. While it can lead to some good surprises, people don't like to gamble their salary usually. So I proposed a solution for my own team: they would invoice to a buffer contract.</p>
<p>The buffer would pay them immediately on the latest exchange rate and then at some point it would be paid back at whatever exchange it was sent to. It had other functions too, requiring secondary approval, listing individual invoices, even a place to put swarm files.</p>
<p>But mostly it became just a way to make sure everyone got paid on time, while it reduced the overhead from HR people that now only had to make one transaction to pay many invoices, since everyone asked to the same address. But it did increase my overhead as I now had to manage it</p>
<p>Since it required a 3 step process for paying (submit, approve, execute), it would meant to pay 4 people I would need to sign 12 transactions or more (I also had to manually add the day rate).  The move to DAI could help most of these points.</p>
<p>At first I considered using Aragon's "Payroll" app, which inspired the idea of setting a yearly salary and allow you to be paid per block. But that app is under development and the buffer dai would stay locked on the contract, not generating interest. So I decided to build my own</p>
<p>As a final touch, I set the default function to pay all amounts due and be public, so it allows a service like ethereum alarm clock to schedule a call for a given day of the month. We recently tested today and it all worked like a charm. <a href="https://github.com/alexvandesande/payroll/blob/master/contract.sol" target="_blank" rel="noopener">Here's the code</a>.</p>]]></content:encoded>
</item>
<item>
<title>I’ve been to all devcons</title>
<link>https://blog.vandesande.design/ive-been-to-all-devcons</link>
<guid isPermaLink="true">https://blog.vandesande.design/ive-been-to-all-devcons</guid>
<pubDate>Sat, 03 Nov 2018 21:46:21 +0000</pubDate>
<description>I’ve been to all devcons (except Cancun) so here’s a perspective and pics. The first devcon (obviously we start counting at 0) could barely be called a “conference” it was mostly…</description>
<content:encoded><![CDATA[<p>I’ve been to all devcons (except Cancun) so here’s a perspective and pics.</p>
<p><strong>The first devcon</strong> (obviously we start counting at 0) could barely be called a “conference” it was mostly a team retreat. About 50 people, many meeting together for the first time, presenting their work</p>
<p><strong>Devcon1</strong> was in London, about 300 people. The whole conference would fit in the main hall at the National House Smíchov which had three more floors of rooms and hosted many satellite events (Cryptolife Hackaton,  Philosophers Salon, Magicians council, the ECF alumni show &amp; tell).</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/ive-been-to-all-devcons/01-704.webp" width="1200" height="485" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/ive-been-to-all-devcons/02-704.webp" width="850" height="1200" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p><strong>Devcon2</strong> was in Shanghai and doubled in size to about 700 people. That’s the same headcount as the Prism sidestage, which ran on day 0 at full capacity.</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/ive-been-to-all-devcons/03-704.webp" width="1200" height="829" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/ive-been-to-all-devcons/04-704.webp" width="1200" height="900" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p><strong>Devcon3</strong>, Cancun was more than twice the size of the year before, about 1500-2000 attendants, and for the first time had two parallel tracks. (I don’t have any picture of the room as I wasn’t there for personal reasons)</p>
<p>This years devcon had 8 parallel tracks!</p>
<p>And also two rooms running person to person events and a series of rooms available for setting up ad hoc meetings. And of course, the Neptune room, where an artist was giving a constant performance of ambient sounds where people could go to relax and do quiet work.</p>
<figure>
<img src="https://blog.vandesande.design/media/ive-been-to-all-devcons/05-704.webp" width="900" height="1200" alt="">
</figure>
<p>Those ad-hoc, off-schedule meetings where crucial as they allowed teams that wanted to coordinate changes or discuss standards to do anytime. I’ve personally seen a Meta-transactions roundtable, news interviews and Amir Taaki giving a talk on the fall of western civilization.</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/ive-been-to-all-devcons/06-704.webp" width="1200" height="480" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/ive-been-to-all-devcons/07-704.webp" width="1200" height="604" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p><strong>Devcon4</strong> has about 3000 badges printed. I personally hope it doesn’t double in size again, because a 6000 person conference sounds unmanageable - and because often the main stage was quite empty, with most people crowding in the smaller and more personal workshops</p>
<figure>
<img src="https://blog.vandesande.design/media/ive-been-to-all-devcons/08-704.webp" width="1200" height="513" alt="">
</figure>
<p>In those you had more  opportunities to interact with the presenters—some people skipped talks altogether and were just mainly networking around the (great) food tables.</p>
<p>If there’s demand, I hope it grows horizontally, with more independently organized events to take on the overflow of devcon attendees. Maybe we can come up with a system where the badges work more like passports that can be stamped and used as ID in other events.</p>
<figure>
<img src="https://blog.vandesande.design/media/ive-been-to-all-devcons/09-676.webp" width="676" height="1200" alt="">
</figure>
<p>But as so many have said before me, the organization was fantastic. I felt it captured the intimate person to person work meetings of the early devcons, with space for the big messages from keynote speakers. Congrats to @mames and @mi_ayako<br>
See you all again at #DevCon5!</p>]]></content:encoded>
</item>
<item>
<title>Sponsored Burning for TCR</title>
<link>https://blog.vandesande.design/sponsored-burning-for-tcr</link>
<guid isPermaLink="true">https://blog.vandesande.design/sponsored-burning-for-tcr</guid>
<pubDate>Fri, 03 Aug 2018 12:00:00 +0000</pubDate>
<description>Creating revenue for token curated registries members If you like reading about novel economic ideas in crypto (and since you’re reading this, I assume you do) then you are…</description>
<content:encoded><![CDATA[<h4 id="h-creating-revenue-for-token-curated-registries-members">Creating revenue for token curated registries members</h4>
<figure>
<img src="https://blog.vandesande.design/media/sponsored-burning-for-tcr/01-704.webp" width="2498" height="1262" alt="">
</figure>
<p>If you like reading about novel economic ideas in crypto (and since you’re reading this, I assume you do) then you are probably aware of “Token Curated Registries”, a token incentivization mechanism to help curate lists of stuff. The short version is that a given list (say, “best restaurants in town” or “funniest star wars prequel memes”) is maintained by a community of token holders which add new items by proposing a new entrant and making bets either the majority will accept that as part of the list. <strong>The incentive for small token holders is to only propose items they think are likely to be accepted by the majority (otherwise they’ll lose a bit of their stake) and the incentive for large token holders is to make sure the list is interesting and valuable, otherwise the tokens themselves would become worthless.</strong></p>
<p>While it hasn’t been tested in any real application, TCRs have been subject to many improvements as well as criticism, specially regarding their aplicability to <a href="https://blog.coinfund.io/curate-this-token-curated-registries-that-dont-work-d76370b77150" target="_blank" rel="noopener">subjective lists whose clear answer either doesn’t exist or is very expensive to discover</a>. One of the main problems is also the classic <strong>tragedy of the commons: tokens themselves have no value except for the ability to buy your place in the list for exposure of your business</strong> (in the case of the restaurant review, for example), and while token holders have a collective long term incentive to keep the list high quality, they can also have a short term profit by accepting money from an advertiser to either sell or temporarily lend their tokens for a vote. I’m mostly interested in TCRs <em>precisely for building subjective lists</em> that have no clear answer, so I’d like to propose a solution for that which would create new incentives for token holders to keep hodling.</p>
<h4 id="h-curved-token-bonding">Curved Token Bonding</h4>
<figure>
<img src="https://blog.vandesande.design/media/sponsored-burning-for-tcr/02-704.webp" width="1178" height="1210" alt="">
</figure>
<p>A common feature of TCRs is that the voting tokens don’t have a fixed supply and instead are <strong>generated by depositing a base token</strong> (which can be ether, dai, or even another token) and then increasing the unit token price as its supply grows.</p>
<p>This has a few benefits over having a fixed supply set by mining or an ICO: first it means that owning 51% of the tokens doesn’t guarantee winning a vote, since the total supply is dinamic. It also guarantees an external value and liquidity for tokens, since they can always be traded to and from another more liquid token. It also creates interesting ways to fight back a whale: if someone buys a lot of tokens to sway a vote, the community can always generate more tokens to vote against it, or simply sell off their own tokens immediately, therefore devaluing the tokens held by the “attacker”.</p>
<p>The assumption of the bonding curve is that the total supply of tokens always equate the funds held, therefore if everyone sold all tokens, the total amount of money going in would be equal to the amount of money going out. The distribution of money for each participant would be different, depending on when they got in and out, <strong>which makes the whole system a zero-sum game that rewards those who got in early and got out at the top,</strong> making it very similar to a pyramid, or a “pump and dump” scheme in which all profit comes at expense of new members.</p>
<p>Of course, if someone loses access to their account (or the participant leaves the community and doesn’t come back) then the amount of tokens will never go back to 0. The lost funds guarantee that you will never be the <em>last bag holder</em>, but these funds are forever locked.</p>
<h4 id="h-sponsored-burning">Sponsored Burning</h4>
<figure>
<img src="https://blog.vandesande.design/media/sponsored-burning-for-tcr/03-704.webp" width="1552" height="1540" alt="">
</figure>
<p>But what if we break the assumption that all funds going in must be equal to the ones going out?</p>
<p>Of course, we can’t have more money going out than it came in, but let’s assume there is a function that enables someone to add to the total supply of funds held by the tokens, <em>without getting any tokens back.</em> This would mean that if every token holder decided to sell their tokens back to the system, the total amount distributed to token holders would be more than what they all bought for. If the first person to enter was also the last person to exit, they would still go home with a profit. Even if a mass exit doesn’t occur, it means that by just holding tokens, without any new member needing to come in, your own tokens have increased in value.</p>
<p>But why would someone make what is essentially a donation to the token holders? That goes back to the purpose of TCRs in the first place: curating lists of stuff. Not only restaurant reviews but, Google result pages, Subreddits, Twitter hashtags, even your social media is a curated list (curated by you).</p>
<figure>
<img src="https://blog.vandesande.design/media/sponsored-burning-for-tcr/04-704.webp" width="3200" height="840" alt="">
<figcaption>What do these have in common? <em>All</em> are different forms of curated registries.</figcaption>
</figure>
<p><strong>And every single one of these pages has some sort of sponsorship.</strong> Advertising is traditionally seen as adversarial for users, or at least as the necessary evil that users must tolerate in order to keep the site running. Users increasingly want not to be tracked, and to block ads, but website owners need the revenue so they add increasingly clever and intrusive methods to force ads into users.</p>
<p>Let’s suppose a website owner tries to make all their users token owners of their favorite lists (which avoids having to ask for them to buy it), and then users can vote on which stuff belongs in their lists. The more popular and active lists will bring more audience which will bring ad interest. Now let’s suppose that in each list there is a clearly demarcated ad space which is distributed in proportion to the amounts of sponsored burns made in the last 30 days. If $7 dollars were added to the token supply via sponsored burns this week, then if you make a $3 contribution you’ll get 30% of the ad views.</p>
<p><strong>But who gets to enforce that?</strong> The beauty of this system is that we are supposing that <strong>there isn’t any single “owner” of the token curated content</strong> that needs to follow strict ad rules or keep track of clicks and views, anyone can create an app or website and show the content that was curated by the token holders. But since now token holders gain value from sponsorship, and advertisers will only want to sponsor if they get exposure, then users themselves will demand app builders to add sponsorship slots. These in turn can be adapted to the medium: token curated lists of audio can measure their sponsors in seconds, while scrolling feed based lists can add them to probability of appearing on fixed slots.</p>
<h4 id="h-conclusion">Conclusion</h4>
<p>Sponsored burning proposes a new method of revenue participants in Token Curated Registries that rely on Token Bonded Curves. Sponsoring can better align the incentives of token holders to create a better quality content specially for subjective lists, by adding an external profit model which doesn’t require token holders to sell or rent their tokens. I hope that this model can allow us to create decentralized communities for curated content that don’t need to resort to intrusive advertising to keep the client developer lights running.</p>
<p><strong>To read more about my ideas on how to create these communities read the</strong> <a href="https://docs.google.com/document/d/10JfZ-6TC48lDqhJh_lGqIBu5KgcuHHYwdd0vo1pD59Y/edit?usp=sharing" target="_blank" rel="noopener"><strong><em>Eternal Septembers paper</em></strong></a> <strong>and the</strong> <a href="https://blog.vandesande.design/token-curating-the-truth"><strong><em>story on how that came about</em></strong></a><strong><em>.</em></strong></p>]]></content:encoded>
</item>
<item>
<title>Token-Curating the Truth</title>
<link>https://blog.vandesande.design/token-curating-the-truth</link>
<guid isPermaLink="true">https://blog.vandesande.design/token-curating-the-truth</guid>
<pubDate>Tue, 31 Jul 2018 12:00:00 +0000</pubDate>
<description>Not all original ideas are good. In fact, often unoriginality is a better indication of a good idea. If multiple smart people have independently come up with similar solutions,…</description>
<content:encoded><![CDATA[<p>Not all original ideas are good. In fact, often <em>unoriginality</em> is a better indication of a good idea. If multiple smart people have independently come up with similar solutions, thought it over and did not reject it outright, that might just one of the best filters for concepts. The glory of suceeding should never go to those who have ideas, but to those who sucessfully executed them, by grinding away at the practical problems, pivoting it in real world scenarios and turning it into a real thing that makes a small impact on other people’s lives. They are like farmers, who carefully tend to small fragile seeds, fight the pests and the elements until they become a real tree. Throwing ideas and walking away is like spitting an apple seed on a patch of wild and coming back later to find an apple tree. You can’t really claim any glory from that. So I’d like to spit some apple seeds now.</p>
<p>When I was introduced to <a href="https://twitter.com/iam_preethi" target="_blank" rel="noopener">Preethi Kasireddy</a>’s “TruStory” project by a <a href="https://twitter.com/ba_minuzzi" target="_blank" rel="noopener">fellow acquaintance</a>, what caught my attention was how similar it was to something I’ve been brewing in my head for a while, after reading a lot about <a href="https://avsa.medium.com/@simondlr/tokens-2-0-curved-token-bonding-in-curation-markets-1764a2e0bee5" target="_blank" rel="noopener">Token Curated Registries</a>. Preethi and I were trying to solve different problems—arguably she was worried about a much more important issue, on how to save the free press in the “post-truth” era—but we were working on very similar solutions. I started writing back an email giving feedback about the state of TruStory as she had shown me and soon I ended up writing my first “White Paper™”. I didn’t want to change what she was working on, just wanted to show a complete solution to a different problem that could help a few areas of her own project. We kept on talking multiple times and I agreed to have a formal position of advisor, which is something I’ve repeatedly turned down.</p>
<p>Preethi’s work has been flying under the radar, until she was able to <a href="https://techcrunch.com/2018/05/23/trustory-a-new-startup-just-raised-3-million-to-identify-ico-scams-before-they-happen/" target="_blank" rel="noopener">close a round of funding</a> without an ICO (much smaller amount than the exuberance of most ICOs) and got some positive press. And then, a few weeks later I started to see a lot of bad press from many in bitcoin twitter. So I’d like to talk about Token Curated Registries, Reddit, my paper, TruStory and my relationship with that project.</p>
<h3 id="h-eternal-septembers">Eternal Septembers</h3>
<figure>
<img src="https://blog.vandesande.design/media/token-curating-the-truth/01-704.webp" width="3200" height="1190" alt="">
<figcaption><a href="https://docs.google.com/document/d/10JfZ-6TC48lDqhJh_lGqIBu5KgcuHHYwdd0vo1pD59Y/edit?usp=sharing" target="_blank" rel="noopener"><strong>Read full paper here</strong></a></figcaption>
</figure>
<p>I started my crypto career, met great friends, got a job, all thanks to Reddit, yet I can barely visit <a href="https://www.reddit.com/r/ethereum/" target="_blank" rel="noopener">r/ethereum</a> anymore. The community there has grown exponentially, which is great, but it has also been transformed in the process, a seemingly inevitable transition that befalls any community once the rate at which new users are added is faster than how they can accomodate and learn the old “culture” of the community. This is not unique to Reddit, but an overall phenomenon on the Internet (<a href="https://en.wikipedia.org/wiki/European_colonization_of_the_Americas" target="_blank" rel="noopener">and in other areas</a>) and it has a name: <a href="https://en.wikipedia.org/wiki/Eternal_September" target="_blank" rel="noopener"><strong>eternal september</strong></a><strong>.</strong></p>
<p>This is usually managed by <a href="https://avsa.medium.com/@johnblocke/a-brief-and-incomplete-history-of-censorship-in-r-bitcoin-c85a290fe43" target="_blank" rel="noopener">heavy moderation</a>, but it usually lends to concentration of power in the hands of moderators and stiffle free debate.</p>
<p>I believe it can be done better which is why I wrote the paper <a href="https://docs.google.com/document/d/10JfZ-6TC48lDqhJh_lGqIBu5KgcuHHYwdd0vo1pD59Y/edit" target="_blank" rel="noopener"><strong>“The Eternal Septembers”</strong></a> which goes into more details but here’s a short version of it:</p>
<ul>
<li><p>Every community is created by a having a different “reputation token” that you need to own before you post about it</p></li>
<li><p>Instead of moderators, any user can post a thread to a topic and stake a bit of their reputation on it. Others that “upvote” it are also staking their reputation that that content belongs on that community. If someone believes it doesn’t belong there, they can make a mod request by stake some reputation against it.</p></li>
<li><p>After a given set of time, whichever side has more stake wins and the reputation tokens redistributed accordingly, and the content either remains or is removed</p></li>
<li><p>The older and more active a user is, the more reputation of that token they have, but often these are not active, meaning that “voting” is actually a bet on “<em>how would the members of this original community vote on this issue</em>” meaning that the community amplifies it’s early culture and multiplies them to the new users</p></li>
<li><p>Tokens are bonded to an inflationary base token, which dilutes away the value of inactive members and redistributes it to active users</p></li>
</ul>
<p>There are some other interesting aspects on the paper, on how it scales by using a lot of off-chain betting, how it can force people to bond to some base values of “harmless content”, and how the tokens can create an actual value to holders by using a novel form of advertising called <strong>“sponsored burning”</strong>. For more details, <a href="https://docs.google.com/document/d/10JfZ-6TC48lDqhJh_lGqIBu5KgcuHHYwdd0vo1pD59Y/edit" target="_blank" rel="noopener">read the paper</a>.</p>
<h3 id="h-trustory">TruStory</h3>
<figure>
<img src="https://blog.vandesande.design/media/token-curating-the-truth/02-704.webp" width="3200" height="1347" alt="">
<figcaption><a href="https://www.trustory.io" target="_blank" rel="noopener"><strong>TruStory website</strong></a></figcaption>
</figure>
<p>I never did any work on Eternal September since sending it to Preethi and AFAIK nobody is (if you want to work on it, let me know). She is, instead, building something completely different and in a ways, more important. While the problem I started with was “my subreddit isn’t what it used to be”, hers is the Fake News™ issue, or “how can we prevent the most important network of free speech ever built to be used as vector of false stories that undermine the society that built it?”. When I met her, she had a lot of the basics of stake-voting and tokenizing reputation, but through our talks she started considering many elements of TCRs, bonded curves and off-chain disputes.</p>
<p>I am very passionate about the issue of the rapid proliferation of untrue but outrageous content on social networks: it’s a real problem affecting democracies everywhere, one that arises directly from values I deeply believe in (<em>that everyone in the world should have access to a global network for free speech</em>), yet the “solutions” currently proposed are methods I deeply dissaprove of (giving central authorities–be them private corporations or governments–tools to censor and control the flow of information). <strong>In short: it’s an issue we created with the tools we built (a free Internet) and we need to solve them ourselves without risking fundamental freedoms or someone else will.</strong></p>
<p>After talking multiple times over the phone I decided to accept an invitation to be a technical advisor for TruStory. What that means is that I am in contact with the team and offer advice on how to deal with technical challenges, as well as voice my opinion about many issues. Which is sort of what I already do unofficially for many other teams. This does <strong>not</strong> mean I am aware of every decision made, audit their finances or every line of code, it does <strong>not</strong> mean that I endorse any sort of investment in the company or any token they might launch. I might be compensated in some form for my work (honestly I have no idea about values) so it only means that if it all goes bust, we’re doing this together. This also doesn’t mean that I will publicize the project: in fact I actually avoid talking about it online because of my connection to them, and this very post is an attempt to put that on the record.</p>
<p>I am a fan of the project and root for it, like I root for many other projects in the space. And while I avoid being “advisor” as much as I can, I do like giving advice to people who need it, so if you find me in a conference, feel free to tell me about your project.</p>]]></content:encoded>
</item>
<item>
<title>Was the hard fork worth it?</title>
<link>https://blog.vandesande.design/was-the-hard-fork-worth-it</link>
<guid isPermaLink="true">https://blog.vandesande.design/was-the-hard-fork-worth-it</guid>
<pubDate>Mon, 18 Jun 2018 00:06:24 +0000</pubDate>
<description>Knowing everything I know today, I don’t think the hard fork was worth its many downsides. But I wouldn’t know most of that if not for the fork. Firstly, the White Hat hackers…</description>
<content:encoded><![CDATA[<p>Knowing everything I know today, I don’t think the hard fork was worth its many downsides. But I wouldn’t know most of that if not for the fork.</p>
<figure class="tweet">
<blockquote cite="https://x.com/el33th4xor/status/1008417777663774720">
<p>The DAO hack was the best thing that happened to Ethereum and to crypto. <a href="https://x.com/VladZamfir/status/1008390451873894400" target="_blank" rel="noopener">x.com/VladZamfir/sta…</a></p>
<footer><a href="https://x.com/el33th4xor/status/1008417777663774720" target="_blank" rel="noopener">Emin Gün Sirer🔺⚔️ (@el33th4xor), 17 June 2018</a></footer>
</blockquote>
</figure>
<p>Firstly, the White Hat hackers have shown to be extremely competent and I feel confident they would have been able to rescue at least 70%-90% of the funds back to dao token holders (as they did).</p>
<p>They knew it was a possibility then, but they didn’t want that pressure on them.</p>
<p>Also a Fork was sold as the “clean” option, the one that would solve the problem quickly so that everyone could get back to work. Instead the fork created arguments that persist to this day. While ETH/ETC communities have been mostly at peace, that animosity is still brought up.</p>
<p>The values back then felt gigantic and community-threatening. I don’t think they were. I remember a common recommendation post hack never to store more than a million dollars in a single smart contract. Those figures are laughable now.</p>
<p>I’m also confident looking back that even if it had not the reentrancy bug or governance problems, the DAO was doomed. Think about the ICO craze that came later, but one in which people could vote (and buy votes!) to invest in them with other people’s money. Not good.</p>
<p>But we have indeed learned a lot about forks. Before it, forking an existing blockchain was a theoretical possibility that most people believed would threaten the original chain on a “there can only be one” combat. I wonder if Bitcoin Cash/Gold would have happened.</p>
<p>Most importantly, we learned how resilient blockchains are. Ethereum Classic is what happens when original developers and a whole community decide to leave an old chain to die in the side of the road. Instead it survived and came back with a vengeance. It’s inspiring really.</p>
<p>But also, we learned that blockchains are replaceable by a community on top of it. Code is law, but we can always turn off the machines and decide to work on new code and a new law and that new code can become more valuable. <strong>Value is just faith.</strong></p>
<p>A fork has been proven as a valid Exit option for disenfranchised community members that feel they have no voice. But I don’t believe fork as governance is something to be cheered and seen as a reason not to work on tools that empower and give voice to your own community</p>
<p>Were these lessons valuable? Definitely. Could we have learned them by other ways? Probably. Was the stress, the distractions, the change in culture, the community split worth the cost of learning them? I don’t think so anymore.</p>]]></content:encoded>
</item>
<item>
<title>What I want from blockchain games</title>
<link>https://blog.vandesande.design/what-i-want-from-blockchain-games</link>
<guid isPermaLink="true">https://blog.vandesande.design/what-i-want-from-blockchain-games</guid>
<pubDate>Sun, 29 Apr 2018 01:22:14 +0000</pubDate>
<description>What I want from blockchain games: be a good game first explore what makes blockchain unique design around the limitations persistent always on world players own the game, the…</description>
<content:encoded><![CDATA[<p>What I want from blockchain games:</p>
<ol>
<li><p>be a good game first</p></li>
<li><p>explore what makes blockchain unique</p></li>
<li><p>design around the limitations</p></li>
<li><p>persistent always on world</p></li>
<li><p>players own the game, the items and experiences</p></li>
<li><p>allow anyone to design and improve the game</p></li>
<li><p>embrace bots</p></li>
</ol>
<h3 id="h-1-be-a-good-game-first">1) be a good game first</h3>
<p>I see too often people just trying to make yet another skin for a cassino or trading card games. Reminds me of slot machine games, all uniquely identical</p>
<h3 id="h-2-embrace-what-makes-blockchain-unique">2) embrace what makes blockchain unique</h3>
<p>Don’t try to make a shooter or something that requires speed. Think about what sort of experience you can create that you couldn’t in any other platform</p>
<h3 id="h-3-design-around-the-limitations">3) design around the limitations</h3>
<p>Only have few moves per second? Then make it strategic turns. Can’t have secret information? Make a commit reveal scheme as part of the game. Moves are expensive? Figure out what actually needs consensus. Need unexplored regions? PoW maps.</p>
<h3 id="h-4-persistent-worlds">4) persistent worlds</h3>
<p>Your game doesn’t have multiple servers and will still exist even after you stop developing it. Explore that. Make that communities live and grow on it</p>
<h3 id="h-5-players-own-the-game">5) players own the game</h3>
<p>Don’t make a game just so that the users buy stuff from you. Make it so that users own many aspects of the game. They own the land, they own the equipment they own the experience. At some point they should have as much or more control than you.</p>
<h3 id="h-6-allow-others-to-design">6) allow others to design</h3>
<p>You don’t need to design everything, if you make a great platform others can expand it. Allow them to create new monsters or levels, leave room for someone to update the graphics or make a new expansion.</p>
<h3 id="h-7-embrace-bots">7) embrace bots</h3>
<p>AI is your friend not the enemy. Allow players to build bots, allow bots to be players under the same rules. Maybe coding bots and freeing them on the world might be the most fun</p>
<p>And a final one: <strong>use money to reward.</strong> A good blockchain game, imho should be one that for most users costs a small price to play but rewards the top players or those who create the best content. But you play because it’s fun, most of all.</p>]]></content:encoded>
</item>
<item>
<title>Recovering lost ether, past and future</title>
<link>https://blog.vandesande.design/recovering-lost-ether-past-and-future</link>
<guid isPermaLink="true">https://blog.vandesande.design/recovering-lost-ether-past-and-future</guid>
<pubDate>Tue, 24 Apr 2018 12:00:00 +0000</pubDate>
<description>I did not start this intending to write a little trilogy on the Parity Multisig hack and its efforts to recover it: I do however care a lot about the integrity of the ethereum…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/recovering-lost-ether-past-and-future/01-704.webp" width="1024" height="576" alt="">
<figcaption><a href="https://www.flickr.com/photos/toddle_email_newsletters/18649732542" target="_blank" rel="noopener">original image from flickr</a></figcaption>
</figure>
<p>I did not start this intending to write a little trilogy on the Parity Multisig hack and its efforts to recover it: I do however care a lot about the integrity of the ethereum community and I wanted to make an alert on the <a href="https://blog.vandesande.design/avoid-evil-twins">dangers related to a controversial split</a>, and then I wanted to explore a more general <a href="https://github.com/ethereum/EIPs/pull/1015" target="_blank" rel="noopener">opportunity to use the future reduction in ether issuance to deal with this and other similar issues</a> in the future. Now I want to explore another idea that emerged from the last two ones on how to prevent a chain split. Here are my starting premises:</p>
<ul>
<li><p>Community splits are bad and should be avoided</p></li>
<li><p>If a major client gives users the option to fork, then the end result will not be a popular vote but a split</p></li>
<li><p>On the other hand, shutting the door on an influential party that is requesting a fork might just force them to a fork</p></li>
</ul>
<h4 id="h-incentives-for-parity-splitting-new-ether">Incentives for Parity splitting: new ether</h4>
<p>It’s a simple calculation really: let’s suppose the overall ethereum community decides not move forward with EIP999, but Parity implements it anyway on their very popular client. The probable result is that there will be a new blockchain, let’s call it Ethereum-999 (should we call it the under-millennial?), where over 500,000 ether that were previously stuck on Multisig contracts can now be accessed. How much will ether-999 be sold for? Cryptocurrencies are volatile and hard to price using traditional means so here I’ll use a simple model: the price of a fork is the likelyhood of that fork overtaking the original chain. Using that logic, at the moment of this writing, the market evaluates Bitcoin Cash having a 15% chance of overtaking bitcoin, Ethereum Classic having 3% chance of overtaking the main Ethereum chain and Bitcoin Gold (lol) having 0.9% chance of being taken seriously by anyone.</p>
<p>It’s hard to know what the market will bet on ether-999 but if Parity puts their development force behind it (even more in the unlikely event that they stop supporting the main chain) then it will be larger than 0, which is what they get for not splitting. A small percentage of access to $250 million dollars is still a lot of money.</p>
<h4 id="h-incentives-for-not-splitting-new-token">Incentives for not splitting: new token</h4>
<p>An obvious solution then would be to create a new token, called ether-recovery, and distribute it to all the parties affected by the multisig hack (<a href="https://github.com/ethereum/EIPs/issues/156" target="_blank" rel="noopener">and other categories of stuck ether</a>). If the potential value of that new ether is larger than the potential value of a split (minus any losses associated with initiating a split) then a fork can be avoided. But what would give value to the new token?</p>
<h3 id="h-futures-market-for-recovery">Futures market for recovery</h3>
<p>Let’s assume we create tokens for all classes of lost and stuck ether. Before tokens can be created these conditions would need to apply:</p>
<ul>
<li><p><strong>It’s not a recurring event:</strong> prevention is always better than recovery, so before a new token class is created it should be show that steps have been taken, either on protocol or in the UX of clients, to avoid these mistakes from happening in the future, as well as showing that if such events are still happening, they are in a much smaller scale.</p></li>
<li><p><strong>Ether is provably not in circulation:</strong> having your ether stolen by a third party or claiming you <a href="https://www.cnbc.com/2017/12/20/man-lost-127-million-worth-of-bitcoins-and-city-wont-let-him-look.html" target="_blank" rel="noopener">lost the hard drive in the trash</a> would not apply, ether needs to be provably lost forever.</p></li>
<li><p><strong>Ownership can be cryptographically verified in an automated way:</strong> it should be possible to run a script and verify which key or keys had access to that ether. So while each token class is dealt in a case by case scenario, who gets assigned tokens in each case can be determined automatically without resorting to lawyers and judges.</p></li>
</ul>
<p>After a token class is created, and the lost ether is assigned on a 1:1 basis, then the new token is set to be the children of a recovery contract that will hold any funds gathered towards that recovery. The contract keeps track of its own total ether balance and the sum of the supply of all tokens that are underneath it. Token holders can decide at any point “withdraw” from the account, at which point the following things happen:</p>
<ul>
<li><p>Upon withdrawal, you get sent ether equivalent to the (amount of tokens you own) * (total balance of recovery account) / (total supply of recovery tokens). Meaning that if you own 0.01% of the recovery tokens, you get 0.01% of all ether on that account</p></li>
<li><p>The token is burnt and you are therefore forfeiting all future claims on recovery. Each new withdrawal therefore increases the portion of the pie of the current holders in any future recovery process.</p></li>
</ul>
<p>If any fork is attempted that tries to remedy the given class of lost ether, then that token is immediately disconnected from the main contract, even if the fork fails to have meaningful traction (with some checks and balances to prevent low-effort forks just to disconnect tokens).</p>
<h4 id="h-source-of-recovery-funds">Source of recovery funds</h4>
<p>When receiveing a recovery token, all owners are implicitly accepting a social contract in which all recovery efforts will help fund the main contract. These can be many:</p>
<ul>
<li><p><strong>Donations</strong>: this might be a hard sell as many of the affected parties are not people in humanitarian crisis, but often corporations or people are otherwise in a comfortable situation. But given that not forking is a benefit for all, some people or institutions might make a gesture of good will to try to avoid the split</p></li>
<li><p><a href="https://github.com/alexvandesande/EIPs/blob/09d943479f1e1c54b36e21da932bd43826ff1a36/EIPS/EIP-1015-on-chain-issuance-control.md" target="_blank" rel="noopener"><strong>EIP1015</strong></a><strong>:</strong> when ethereum changes from PoW to PoS, the block reward can be significantly reduced to reflect the lower cost of Casper security. Instead of throwing the difference away this EIP proposes a platform to decide, via a smart contract, worthy recipients of the block reward to various uses. If the community votes so, then funding recovery could be one of them.</p></li>
<li><p><strong>Services</strong>: a large amount of the funds gathered in the multisig where ICOs, for Musiconomy and Polkadot, for instance. Donating to the recovery fund could in itself create a new token that affected parties could provide some service to.</p></li>
<li><p><strong>Future Insurance of Contracts:</strong> we will explore this in the next section</p></li>
</ul>
<p>An important aspect is that all these options don’t need to happen in order for the token to have value: the value of the recovery token will reflect the chances that any of these will work at any point in the future. For example, in order to have a portion of the block rewards to be used towards recovery, these actions would all need to happen: Casper becomes ready for deployment, EIP1015 is approved and implemented AND enough signalling contracts vote for this particular use of rewards (and still, it can be a small amount or not last for very long).</p>
<p>A recovery token is unlikely ever to reach a 1 ether parity, but that doesn’t matter: <strong>as long as the recovery token is worth potentially more than a possible minority split, then the rational economic choice of all affected actors will be <em>not</em> to fork</strong>. And since both can be seen as indicators of chance, the market will be comparing the chance of a minority fork overtaking the main chain, versus the chance of a total recovery of funds via the token.</p>
<h3 id="h-future-insurance-on-contracts">Future Insurance on contracts</h3>
<p>You might be unconvinced that donations would compensate for the immense losses or doubt the viability of implementing other recovery options using future hard forks that are less controversial. You might even be in the camp that people should have to pay for their own mistakes (or mistakes from entities they trusted) and that we should focus on the future. This section is for you.</p>
<p>This recovery contract is meant for ether that has already been lost, but what about future lost tokens? If they are added to the recovery token side, they risk just further dilluting an already very poor pie and could be another governance nightmare. Unless we turn this on a potential profitable venture: staking ether as insurance.</p>
<p>In order to create a new class of possible recoverable tokens these would be the steps:</p>
<ul>
<li><p>Describe exactly what class of contract or application would be covered by the token</p></li>
<li><p>Lock up ether for a predetermined period of years</p></li>
<li><p>One recover-ether is issued for each ether locked up (independently on how many ethers are on the affected contracts)</p></li>
<li><p>The issuer can then sell their recovery-ether for their clients, ICO participants, users or whoever he wants to use the guarantee</p></li>
<li><p>If the ether in the described scenario happens, then the recovery process is activated and the ether is redeemed at 90% rate (the remainder 10% goes to the general insurance fund of all tokens and the victim gets an equivalent amount of new recover token)</p></li>
<li><p>If nothing happens after the given amount of years, then the recover-ether tokens are destroyed and the issuer can have their locked ether back (and keep the profits of the sale)</p></li>
<li><p>If the clients want a continuing insurance after the years passed, then they can go back to step 1</p></li>
</ul>
<p>Governance decisions, like which token to accept or not, as well as judging decisions on either a given scenario fits the description of “lost” ether, will all be done via some sort of delegated vote by all the holders of current recover-ether. This aligns the interests of all the potential victims of loss with the profit of the fund as a whole: if the fund stops accepting new applicants or refusing to help an insured party when it needs, then it will affect negatively the future profit of the funds and therefore affect the chances of all parties to be fully restored.</p>
<p>This scheme basically <strong>transforms the previous “victims” of lost ether into “shareholders” of a general smart contract insurance fund</strong>. But why would someone want to start an insurance fund with over 500 thousand ether in “liabilities” instead of doing just a “traditional” ICO? Because the affected parties of those contracts (which goes beyond the parity multisig and a lot of early users of ethereum) comprises of many of the most technically capable developers (including one of the ethereum founders) and a diverse set of early ethereum users, a captive audience that would help create a network effect that many other new startups would kill (or better <em>airdrop</em>) for. And if the insurance system is seen as having great future potential, it becomes possible that a recover ether to be traded at higher than 1 ether.</p>
<p>In one action we could:</p>
<ul>
<li><p>Give people who participated in this experiment of <a href="https://twitter.com/gavofyork/status/987659139886256128" target="_blank" rel="noopener">keeping billions of dollars in beta software</a> a way to recover value lost in errors that often were not their own fault</p></li>
<li><p>Avoid creating a controversial hard fork that can ultimately lead to a split community and a lot of <a href="https://blog.vandesande.design/avoid-evil-twins">crazy effects on the current running projects</a>.</p></li>
<li><p>Start an insurance fund that allows future contracts also to be safeguarded against eventual failures</p></li>
<li><p>Profit while doing good</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>Avoid Evil Twins: every ethereum app pays the price of a chain split</title>
<link>https://blog.vandesande.design/avoid-evil-twins</link>
<guid isPermaLink="true">https://blog.vandesande.design/avoid-evil-twins</guid>
<pubDate>Wed, 18 Apr 2018 12:00:00 +0000</pubDate>
<description>Parity has recently proposed an EIP to recover funds lost on the accidental destruction of a multisig library, which held hundreds of millions of dollars at current value by…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/avoid-evil-twins/01-704.webp" width="1920" height="1080" alt="">
<figcaption>art by <a href="http://gabrielsilveira.com/loot-crate-versus" target="_blank" rel="noopener">Gabriel Silveira</a></figcaption>
</figure>
<p>Parity has recently <a href="http://eips.ethereum.org/EIPS/eip-999" target="_blank" rel="noopener">proposed an EIP</a> to recover funds lost on the accidental destruction of a multisig library, which held hundreds of millions of dollars at current value by multiple teams. There are <a href="https://ethereum-magicians.org/t/eip-999-restore-contract-code-at-0x863df6bfa4/130/47" target="_blank" rel="noopener">many debates rehashing the same arguments of the DAO hard fork</a>, about immutability, precedent and moral hazards. I’d like to present a new side by talking what has changed between now and 2016 in the ethereum platform: a lot of new tokens and a new understanding about forks.</p>
<h3 id="h-if-you-build-it-they-will-split-it">If you build it, they will split it</h3>
<p>The first, most important is that forks are not only <strong>possible</strong> but can be <strong>profitable</strong>. Saying this now might be obvious, but there were many people who believed, back in 2016 that once a chain split, one of the sides would eventually die out, as economic and social incentives were worked against coexistence. Actually the opposite happened:</p>
<figure>
<img src="https://blog.vandesande.design/media/avoid-evil-twins/02-704.webp" width="2052" height="1030" alt="">
<figcaption>ETC/ETH: started at less than 0.5%, to almost 30% then back to less than 10% in a few months</figcaption>
</figure>
<ul>
<li><p>Coin media sites have an incentive to discuss any new fork of a coin, as long as it has any sort of narrative behind it on why it makes more sense</p></li>
<li><p>Even if someone doesn’t believe in the narrative, if they believe that someone will believe it enough to buy it allows speculation (specially if you already had the coin for free)</p></li>
<li><p>There’s an incentive for smaller exchanges to be the first to list a controversial new coin as it attract users and more fee</p></li>
<li><p>mining cost will always adjust to profitability eventually (in ethereum classic it happened in a matter of days)</p></li>
<li><p>The smaller the coin is, the higher upside potential to speculators. If you model two coins as prediction market on which will succeed, the main coin dropping from 99.5% of certainity to 95% might be a slight drop, but it’s a 10x increase in price for those who invested in the small fork</p></li>
<li><p>These early speculators can use their gains to fund development and bootstrap a community that therefore can become self-sustainable</p></li>
<li><p>When forks can’t sustain a narrative or a community, they can still be used by scammers that can use a very iliquid market to manipulate market caps and lead users to compromised versions of the main tools to steal private keys</p></li>
</ul>
<p>The main point being: the same censorship resistance, antifragile and self-bootstraping properties of blockchains in general that were able to get most cryptocurrencies off the ground and sustain them long term, apply to any chain splits, making forking a highly profitable venture. As long as you can have any reasonable narrative behind both forks, <strong>giving the option to chain split will inevitably lead to a chain split</strong>.</p>
<h3 id="h-ethereum-in-2016-was-an-experiment-in-2018-it-s-a-platform">Ethereum in 2016 was an experiment, in 2018 it’s a platform</h3>
<p>The rules in the previous section applies to all coin forks, be it Monero, Bitcoin or Ethereum, but usually a fork only applies to the coin itself and only matters for very few traders. But with ethereum, there’s a crucial difference: Ethereum is a platform of a thousand tokens. When the DAO raised a hundred million dollars in ether, that was seen as high milestone for crowdsales. But since then, hundreds, maybe thousands of ICOs were built in Ethereum, capitalizing that trend. In the case of another Ethereum Split, like Ethereum Classic, then every single one of these tokens (and apps) will also have their own forks to deal with. What happens to them? Let’s break them in categories.</p>
<h4 id="h-tokens-as-future-promises">Tokens as future promises</h4>
<p>Many tokens created out of ICO’s have very little built-in functionality and are worth a promise: it will be used in a service or product yet to be built. In these cases, once two tokens exist, the developers will be forced to take a stand and say what they will do. It might be as simple as a blog post clarifying which chain they’ll fulfill their obligation on, but it might also have to involve some sort of community vote or debate. Either way, they will be forced to take a clear position on a debate that they might have no interest in participating and see themselves be dragged in a hot political debate. For small teams it can be a terrible distraction from their main goal, and for some larger projects might involve lawyers.</p>
<h4 id="h-tokens-are-asset-custody">Tokens are asset custody</h4>
<p>Many projects in Ethereum are meant to be backed by something in the real world: gold, oil, real estate. They can be a simple promise by a central company, an so it’s treated like any promise token, but often these projects (or at least the good ones) try to give further guarantees to the user that takes a bit the centralization risk. After all, a token backed by precious metal isn’t worth much <a href="https://en.wikipedia.org/wiki/E-gold" target="_blank" rel="noopener">if the company that holds them is seized by the government</a> or simply disappears out of thin air. But in the case of a chain split, from the point of view of the minority chain, the token will behave as if the company simply decided not to make good on their promises. How exactly this behaves will depend completely on the legal framework and the tech stack that the organization created to defend itself — and it doesn’t matter which argument the company uses to choose a chain, it’s guaranteed that someone unhappy with the decision, or just wanting to try their luck at doubling their gold reserves, will want to test it out.</p>
<h4 id="h-tokens-as-smart-contracts">Tokens as smart contracts</h4>
<p>Tokens that have a more complex contract behind them that decides how they behave are few, but these are also the ones most valuable and best fit to the ethereum ecossystem. A prime example would be the <a href="https://coinmarketcap.com/currencies/dai/#charts" target="_blank" rel="noopener">DAI token</a> which uses a complex CFD enforced by smart contracts to guarantee a constant value at $1. In order to do that it uses ether as a collateral and the MakerDAO tokens for last resort valuations and governance. If a chain split occurred, what happens to the Dai holders, do they have now twice the amount of dollars? Since it’s entirely possible to build DAI in Ethereum Classic, if the system works perfectly it’s plausible that the peg would hold in both sides, but at the cost of the collateral owners.</p>
<p>The first things to fail on the Dai would probably be the oracles that input the current price of ether in dollars, used as a basis. Multiple oracle sources are used and they can be updated by MKR holders (more precisely holders of the <em>split</em> MKR token) in case one of them malfunctions, but it’s a process that by design requires time and in this case all of them would stop working at the same time. If the oracles keep working, then the system would work as if there was a sudden sharp drop in ether price, and dai will be burned in exchange for the remaining collateral. If the drop continues, new maker dao split tokens will be issued as a lender of last resort. Maker is working on a DAI that is collateralized by multiple ERC20 tokens: in the case of a chain split, suddenly some of these would be valid and some not, making the situation worse.</p>
<p>Best case scenario the system would stabilize back, with most of the DAI holders being made whole but the CFD creators having lost their collaterals on the minority chain and the MKR holders being extremely diluted out. The technology would be seen as solid, but it would be like testing aircraft safety by removing both engines of a fully loaded passenger jet mid air.</p>
<h4 id="h-dapps-and-games">Dapps and games</h4>
<p>Ethereum is more than tokens of course, it’s also a platform for apps, games and other sorts of experiments, and all of them would also be split in a similar way. If you <a href="http://ethernalgo.com" target="_blank" rel="noopener">are playing a board game</a>, then you’d suddenly be playing two identical games concurrently, and would have to keep playing both or forfeit the winnings in one of the chain. If you <a href="http://cryptokitties.co" target="_blank" rel="noopener">own rare online cats</a>, now every one of them will have an evil twin in a parallel universe. Similar things would happen to IOT devices, or <a href="https://www.smartcontract.com" target="_blank" rel="noopener">smart oracles using embedded chips</a>.</p>
<p>And in every single one of these cases, developers would be asked to support both chains, and in every one of them a smaller version of the same arguments of which chain was the “best” one would be rehashed. Exchanges are an even worse case, because they will suddenly have twice the amount of tokens to support and then they have to figure out which ones are valid in each chain.</p>
<h3 id="h-conclusion-splits-are-bad">Conclusion: splits are bad</h3>
<p>Imagine if Google employees could vote on some political stance and then every single android developer would also have to explicitly take an action agreeing or disagreeing. No developer gets into a platform looking for uncertainty, extra support work or having legal troubles for their app with issues on the underlying technology.</p>
<p>During the past years since the DAO hack we learned two important lessons:</p>
<ul>
<li><p>When a controversial fork is proposed, <strong>then the end result is <em>not</em> a <em>vote</em> but a <em>split</em>.</strong></p></li>
<li><p>As long there’s a sustaining narrative, <strong>both chains will coexist for a long time</strong></p></li>
<li><p>Splits happen not only to the underlying token <strong>but to all projects built on top of it</strong></p></li>
</ul>
<p>I sympathize with all the affected parties by the Parity multisig wallet disaster that got their funds locked, just like I sympathize with the many projects that had their ether stolen (some also due to another parity bug). I also believe when they say the web3 foundation (the largest invested party) is a serious organization bounded by their mission and the Swiss law to invest their funds in research and decentralized tech. But I think for the sake of the platform, it’s not fair to create a burden on every token. I believe the way to move forward is to build not only better contracts but also insurance systems to hedge against eventual failures and to create a (voluntary) fund to minimize the damages to victims of these failures. Chain splits are bound to happen eventually, but they should be only risked when the whole ecossytem is at risk or needs some sort of upgrade.</p>
<p>The cost of forking might be to create and fund and adversarial community, as if a parallel universe collided and out of there jumped an alternate version of you with a goatee, whose mission is remind you of all the potentially bad decisions you took, and to prove they are worthier than you.</p>
<p>Let’s avoid invoking our evil twins.</p>
<figure>
<img src="https://blog.vandesande.design/media/avoid-evil-twins/03.gif" width="500" height="293" alt="">
</figure>]]></content:encoded>
</item>
<item>
<title>So, about doge and ethereum</title>
<link>https://blog.vandesande.design/so-about-doge-and-ethereum</link>
<guid isPermaLink="true">https://blog.vandesande.design/so-about-doge-and-ethereum</guid>
<pubDate>Fri, 09 Feb 2018 19:18:43 +0000</pubDate>
<description>So, about doge and ethereum... Both coins share some long common friendship. When Ethereum was running its presale, doge was at the top of the game, sponsoring race cars and…</description>
<content:encoded><![CDATA[<p>So, about doge and ethereum...</p>
<p>Both coins share some long common friendship. When Ethereum was running its presale, doge was at the top of the game, sponsoring race cars and overall having a lot of fun. I think it was the first coin to really get that a community, not only tech, was the most important thing.</p>
<figure>
<video class="moving" loop muted playsinline preload="none" controls><source src="https://blog.vandesande.design/media/so-about-doge-and-ethereum/01.mp4" type="video/mp4"></video>
</figure>
<p>The ethereum community was formed, in part from people that didn't like the bitterness that overtook Bitcoin, so we always tried to be light hearted and fun. Devcons accepted dogecoin. I mean, look at this guy, does he want you to take him seriously?</p>
<figure>
<img src="https://blog.vandesande.design/media/so-about-doge-and-ethereum/02-704.webp" width="1200" height="257" alt="">
</figure>
<p>Doge was excited about ethereum too and they posted <a href="https://www.reddit.com/r/dogecoin/comments/3wxbc3/dogecoin_transfer_onto_ethereum/" target="_blank" rel="noopener">a thread asking if it was possible to be integrated in ethereum</a>.</p>
<p>So a few days later, "some guy" had <a href="https://www.reddit.com/r/dogecoin/comments/3xc0co/dogeethereum_twoway_peg_i_wrote_up_an/" target="_blank" rel="noopener">implemented Scrypt (doge's native code) in Ethereum</a>.</p>
<p>Caveat: it would cost about 370M gas just to do one single header verification. But maybe someone could find a solution to it, and some people they could do it, so I implemented <a href="https://www.reddit.com/r/ethereum/comments/41ohhr/the_doge_connection_bounty_dao_is_live_and_working/" target="_blank" rel="noopener">a DAO that would hold a bounty for that purpose</a> and asked donations.</p>
<p>Many donations came from both doge and ethereum community. Someone donated 5 thousand dollars, other people donated just a few cents. <a href="https://etherscan.io/address/0xdbf03b407c01e7cd3cbea99509d93f8dddc8c6fb" target="_blank" rel="noopener">The bounty</a> quickly grew to.. well mostly to a bit more than 5 thousand dollars. Yeah, mostly from that one donor.</p>
<p>The problem was, that verifying a single doge transaction would not fit in the amount of calculations afforded per block. They could be broken down in steps, but they would still be super expensive. That's when @ethchris (the father of solidity came up with a very clever idea:</p>
<p>Going to court is expensive, but not all written contracts need lawyers and judges: but knowing that you can if needed, means both parties tend to behave. You can do the calculation off chain, put money on answer and only calculate if there's a dispute. @Truebitprotocol was born.</p>
<p>In the mean time, some developers have all approached the judges and said they wanted to work on it. Seemed like a quick and easy job. It wasn't. So the bounty stayed frozen, while ether price rose. The original big donor even asked for his money back, so we gave it to them.</p>
<p>Still, at some point the bounty passed a million dollars. That should get some attention to it. And it got.</p>
<p>@oscarguindzberg, @coinfabrik and @Truebitprotocol got together and worked for many months on it and finally had <a href="https://github.com/dogethereum/dogerelay/wiki/How-to-send-dogecoins-to-ethereum" target="_blank" rel="noopener">something to show for it</a>.</p>
<p>Now it's only one-way now, and it's not production ready but let me recap what these crazy people demonstrated us:</p>
<p><strong>They built a DOGECOIN LIGHT CLIENT ON ETHEREUM.</strong> A contract that can check what is the latest dogecoin block, calculate proof of work, figure out chain splits, etc</p>
<p>Right now it can verify that a transaction was sent in Dogecoins to a given address and generate the same amount of cute shiba inu puppy gifs in an ERC20 token. Still need some work to make it solid, then more work making sure they can come back as doge coins, etc</p>
<figure>
<video class="moving" loop muted playsinline preload="none" controls><source src="https://blog.vandesande.design/media/so-about-doge-and-ethereum/03.mp4" type="video/mp4"></video>
</figure>
<p>Still, as a judge I believe the work demonstrated merits 25% of the total bounty, which is <a href="https://etherscan.io/tx/0x0f0e475664792708a0be3cfabb59745c014e0d4224e506f50686fb6801ec1ebc" target="_blank" rel="noopener">372 ether</a> which is worth $350k.. wait $299k.. or maybe $310.. Whatever.</p>
<figure>
<video class="moving" loop muted playsinline preload="none" controls><source src="https://blog.vandesande.design/media/so-about-doge-and-ethereum/04.mp4" type="video/mp4"></video>
</figure>
<p>What can you do? You can check their work yourself by following the above links and also <a href="https://github.com/TrueBitFoundation/scrypt-interactive" target="_blank" rel="noopener">reading up on this</a>.</p>
<p>If you have any concerns, opinions or suggestions about the first award, please let the judges know. They have a week to vote and debate.</p>
<p>Also the remainder 75% of the bounty are still open. That team will still be working to make the app better, but our desire is to see an easy to use interface that anyone can build, so even if you are a simple web designer good at gifs, you can apply to help.</p>
<figure>
<video class="moving" loop muted playsinline preload="none" controls><source src="https://blog.vandesande.design/media/so-about-doge-and-ethereum/05.mp4" type="video/mp4"></video>
</figure>]]></content:encoded>
</item>
<item>
<title>So, about the Petro</title>
<link>https://blog.vandesande.design/so-about-the-petro</link>
<guid isPermaLink="true">https://blog.vandesande.design/so-about-the-petro</guid>
<pubDate>Wed, 07 Feb 2018 14:57:58 +0000</pubDate>
<description>So, about the Petro.. Venezuela released a white paper. And it’s sooo good. First of all it was inspired by Chavez, the first person in history to think that currencies should be…</description>
<content:encoded><![CDATA[<p>So, about the Petro..</p>
<p>Venezuela released <a href="http://www.elpetro.gob.ve/Whitepaper_Petro_en.pdf" target="_blank" rel="noopener">a white paper</a>.</p>
<p>And it’s sooo good.</p>
<p>First of all it was inspired by Chavez, the first person in history to think that currencies should be backed by things. Screw capitalist pig Satoshi, Chavez basically invented crypto. I mean really crypto: Diffie-Helman plagiarized him. He probably invented all currencies too.</p>
<figure>
<img src="https://blog.vandesande.design/media/so-about-the-petro/01-704.webp" width="1200" height="123" alt="">
</figure>
<p>It’s super innovative. Can you imagine the consequences if the Venezuelan people had access to a currency that could be used for investment, savings or means of exchange? Why didn’t anyone think of this before?</p>
<figure>
<img src="https://blog.vandesande.design/media/so-about-the-petro/02-704.webp" width="1200" height="252" alt="">
</figure>
<p>‘The Venezuelan state will not be able to make new emissions”. Except the “superintendency of currency of Venezuela” reserves the right to activate new features, like PoS emission. Or maybe PoW. Which it doesn’t need.</p>
<p>But it’s totally not the government.</p>
<figure>
<img src="https://blog.vandesande.design/media/so-about-the-petro/03-704.webp" width="1200" height="183" alt="">
</figure>
<p>The supply is limited, the demand is market based, but the price will be somehow pegged to the price of oil. Because, thanks to socialism magic, price is not set by supply and demand, but by this incredible formula where both Petro and the Bolivar are divided by themselves</p>
<figure>
<img src="https://blog.vandesande.design/media/so-about-the-petro/04-704.webp" width="1200" height="147" alt="">
</figure>
<p>Notice that in the formula above, not only the “discount rate” DV is set by the government, but the price of Petro and Bolivar as well, as it’s calculated on “exchanges authorized by the government”</p>
<figure>
<img src="https://blog.vandesande.design/media/so-about-the-petro/05-704.webp" width="1200" height="94" alt="">
</figure>
<p>The ICO will happen the day after the day after the pre-sale closes. And tokens on the ICO will be generated by burning the pre-sale tokens. For reasons. And both will have multiple phases. For reasons.</p>
<p>And it doesn’t accept Bolivars. For obvious reasons.</p>
<figure>
<img src="https://blog.vandesande.design/media/so-about-the-petro/06-704.webp" width="1200" height="653" alt="">
</figure>
<p>It’s a token on ethereum, which doesn’t need mining. But it might also be mined anyway in proof of stake. Or maybe they reserve the right to make it proof of work. And miners will be paid in Petro, which is based on price of oil which has no correlation to miner or security cost.</p>
<p>The government cannot create Petros (but it can) which in theory should make the market happy, but there’s no mechanism to issue or destroy the tokens, it’s basically impossible for it to do the one thing it’s supposed to do, follow the price of oil.</p>
<p>So it’s “backed by Venezuelan oil” in the sense that Venezuela promises to buy it back at a discount rate (that they decide) on the price of exchanges (that they control).</p>
<p>But the strength of the Bolivar is a great proof on how much the people trust the government promises.</p>
<p>I am not going to say that the Petro is a useless token intent to get ether and bitcoin out hands of dumb greedy people and in the hands of corrupt government officials, because it has a very clear use:</p>
<p><strong>To circumvent the international sanctions put in the Venezuelan regime.</strong></p>
<figure>
<img src="https://blog.vandesande.design/media/so-about-the-petro/07-704.webp" width="1200" height="122" alt="">
</figure>
<p>So there you have it. If you were desperately looking to gamble some money while at the same time funding oppression and probably running amok of international finance laws, then I have just the perfect token for you.</p>]]></content:encoded>
</item>
<item>
<title>Thanks Ming</title>
<link>https://blog.vandesande.design/thanks-ming</link>
<guid isPermaLink="true">https://blog.vandesande.design/thanks-ming</guid>
<pubDate>Wed, 31 Jan 2018 23:57:35 +0000</pubDate>
<description>When Ming took the job at the Foundation, she was told that we were a few months away from running out of funds. The situation was dire: there were 3-4 different entities, with…</description>
<content:encoded><![CDATA[<p>When Ming took the job at the Foundation, she was told that we were a few months away from running out of funds. The situation was dire: there were 3-4 different entities, with different accounting and legal costs in 4 jurisdictions (🇨🇭🇩🇪 🇬🇧&amp;🇳🇱), and mgmt infighting</p>
<figure class="tweet">
<blockquote cite="https://x.com/ethereum/status/958771887840088064">
<p>[Blog] To Infinity and Beyond! <a href="https://blog.ethereum.org/2018/01/31/to-infinity-and-beyond/" target="_blank" rel="noopener">blog.ethereum.org/2018/01/31/to-…</a></p>
<footer><a href="https://x.com/ethereum/status/958771887840088064" target="_blank" rel="noopener">Ethereum (@ethereum), 31 January 2018</a></footer>
</blockquote>
</figure>
<p>Bitcoin price fell from 600 to 300 just after the presale,  before we could touch most of it so right there half of the money we had raised was gone. The other half was spent developing the clients and launching the network, by August.</p>
<p>The network was live, but we still needed years of development and the money was running out. We had ether, but it was still under $1. They asked  Geth devs (and therefore Mist) to take a 10% haircut, mgmt took more.  CPP team was almost all cut out. Everyone was feeling down.</p>
<p>Back then, many still thought ethereum was a scam/vaporware and never going to launch. We proved them wrong. But as local saying, we had swimmed, swimmed and were about to die on the beach.</p>
<p>Then, by the end of 2015, things started turning around. The multiple entities were closed and our haircuts were buying us time. Ming spent most of her time cleaning up an excessive and expensive legal infrastructure and going through audits and hell of paperwork.</p>
<p>Then Devcon 1 came around (Devcon 0 was a internal developers only get together in Berlin), and Microsoft was a sponsor, Nick Szabo was giving a keynote, it was a clear message that the industry took us seriously.</p>
<p>This was followed by the price, which passed $10 and felt like crazy. Suddenly we had a longer runway and everyone could breathe again. There was and still is a lot of work ahead of us...</p>
<p>But probably none of that would have happened had @mingchan88 not stepped in her role. She was never in the forefront, had no public face other than a few words before Devcon. But on the inside she was crucial, and she worked through multiple Christmas, Thanksgiving and New Years</p>
<p>The Ethereum Foundation is far from perfect, of course. We can do a lot to be more open and transparent, and to act less like a raunchy startup but the leadership of a $200 bilion ecosystem. But to get here, a lot of people had to do big sacrifices that went unthanked.</p>
<p><strong>Not anymore.</strong></p>
<p>Thanks Ming. I’ll miss our two hour skype calls about the history of China and your tales about Media Lab. You deserve some rest and family time.</p>
<p>(History from memory, dates and details might be slightly wrong)</p>]]></content:encoded>
</item>
<item>
<title>Everything you need to know about ERC777, the new proposed token standard but were afraid to ask</title>
<link>https://blog.vandesande.design/everything-you-need-to-know-about-erc777</link>
<guid isPermaLink="true">https://blog.vandesande.design/everything-you-need-to-know-about-erc777</guid>
<pubDate>Mon, 15 Jan 2018 14:11:51 +0000</pubDate>
<description>If you&#x27;ve been to ethereum for more than 5 minutes, you&#x27;ve heard the phrase ERC20, to refer to ethereum tokens. ERC stands for Ethereum Request for Comments and it&#x27;s nothing more…</description>
<content:encoded><![CDATA[<p>If you've been to ethereum for more than 5 minutes, you've heard the phrase ERC20, to refer to ethereum tokens. ERC stands for Ethereum Request for Comments and it's nothing more than a topic on the main Ethereum Improvement proposals GitHub, that help multiple main developers debate definitions of improvements, future forks and contract standards.</p>
<p>Contract standards are one of the most important thing in ethereum: the reason so many projects can issue a token that can be used in other wallets, or exchanged via decentralized exchanges or really used for anything else, is that they all use a set of same standards, basically a "balanceOf" call that tells you how many tokens you have and a "transfer" function that tells you to transfer these tokens from me to you.</p>
<p>Token standard has been one of the first proposed standards and were talked about and debated by multiple users until finally formally written down by /u/feindura/ which also implemented it in Ethereum Wallet, first wallet to adopt it.</p>
<p>What are the main issues with the current ERC20? Many. The first glaring one is how to transfer tokens to contracts. Because you can send tokens to any ethereum address, you can easily also send them to contracts which do not support them, locking them forever. Worse than that: even if the tokens can be manually moved, it's very hard to tell which tokens came from who, and try sending them back.</p>
<p>To solve that, the ERC20 used to have a <strong>approve</strong> function that would allow you to approve the transfer to a contract and then you needed to create a second transaction, letting the contract know you had approved it. This required two transactions, had multiple security issues and was not widely implemented.</p>
<p>Multiple token standard have been proposed since ERC20, to solve that famously ERC223 and the "aproveAndCall" standards. Others have been tried to augment the functionality of tokens by allowing off chain signing to transfer without needing ether, or private transfers that use zksnarks or ring signatures to add privacy to tokens. None had much momentum, but ERC777 seems to be getting it, because it implememts all in a more elegant way:</p>
<p><a href="https://github.com/ethereum/EIPs/issues/777" target="_blank" rel="noopener">ethereum/EIPs#777</a></p>
<h5 id="h-backwards-compatible">Backwards compatible</h5>
<p>Making your token ERC777 compatible will make it compatible with more important functions of ERC20 (and you can implement the rest and make it fully compatible)</p>
<h5 id="h-safer-and-simpler-send-to-contract">Safer and simpler send to contract</h5>
<p>Introduces a new transfer function that adds a third field called bytes where you can add any identifying information to the transfer and it automatically lets the receiving contract that the transfer occurred, so it can do something automatically</p>
<h5 id="h-sets-decimals-to-default-18">Sets decimals to default 18</h5>
<p>This a controversial move: many people feel that it was a mistake to add custom decimals to ERC20. The idea being that its not very useful to add lower limits on the divisibly of your token (and it doesn't make sense to add more thann 18) and adding custom decimals make writing offline wallets like Trezor, harder. ERC777 doesn't remove the decimals, but defaults it to 18.</p>
<h5 id="h-adds-approved-operators">Adds Approved Operators</h5>
<p>The idea is that you give a contract the right to move tokens in your behalf, which means that you can build contracts that enhance your token, independent of the token needing to implement it. Want to add anonymity? Authorize a mixer contract as an approved operator. Worried about backups? Add an emergency recovery service that can move all your tokens out if you lose your keys. People can improve your tokens, years after they were created. This allows the contract full access to the contracts, so any sort of limitation (like daily limits based on exchange rate) needs to be built in the token itself.</p>
<h4 id="h-what-else">What else?</h4>
<p>The standard is not finalized, and that's where you come in. Make your opinion known, what do you like or dislike about it? What would you want changed differently? Next time you meet someone building a new token, ask them about their opinion on this standard.</p>]]></content:encoded>
</item>
<item>
<title>I didn’t want to have to wait 16 years to share my favorite characters with my new baby daughter, so I made her a Daenerys Children Book</title>
<link>https://blog.vandesande.design/a-daenerys-childrens-book</link>
<guid isPermaLink="true">https://blog.vandesande.design/a-daenerys-childrens-book</guid>
<pubDate>Thu, 30 Nov 2017 01:15:57 +0000</pubDate>
<description>So I planned my paternity leave to coincide with our 39th week but my daughter only came at 41 weeks and 3 days, giving us plenty of unplanned free time, so I tried to make a page…</description>
<content:encoded><![CDATA[<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/01-704.webp" width="3098" height="2235" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/02-704.webp" width="3264" height="2448" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/03-704.webp" width="3264" height="2448" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/04-704.webp" width="3264" height="2448" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/05-704.webp" width="3264" height="2448" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/06-704.webp" width="3264" height="2448" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/07-704.webp" width="3264" height="2448" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/08-704.webp" width="3264" height="2448" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/09-704.webp" width="3264" height="2448" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/10-704.webp" width="3264" height="2448" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/11-704.webp" width="3264" height="2448" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 11</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/12-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/13-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/14-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/15-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/16-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/17-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/18-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/19-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/20-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/21-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/22-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/23-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/24-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/25-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/26-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/27-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/28-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/29-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/30-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/31-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/32-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/33-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/34-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/35-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/36-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/37-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/38-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/39-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/40-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/41-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/42-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/43-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/44-704.webp" width="750" height="750" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-daenerys-childrens-book/45-704.webp" width="3024" height="4032" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 34</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<p>So I planned my paternity leave to coincide with our 39th week but my daughter only came at 41 weeks and 3 days, giving us plenty of unplanned free time, so I tried to make a page per day during that period.</p>
<p>I wanted to cover Daenerys story in season 1, but adapt it to a kid friendly format and with a empowering message for my daughter, so I decided to take as many liberties as the average Disney movie takes with their original content, which is to say, a lot.</p>
<p>So I really removed most of the plot elements and it’s a story about a princess who really wants to be a queen, meets a bunch of weird people who give her lots of bad advices, underestimate her and say how it’s impossible for her to be queen. In the end she decides to do things her own way and makes herself queen of the dragons.</p>]]></content:encoded>
</item>
<item>
<title>ELI5: Byzantium Changes</title>
<link>https://blog.vandesande.design/eli5-byzantium-changes</link>
<guid isPermaLink="true">https://blog.vandesande.design/eli5-byzantium-changes</guid>
<pubDate>Thu, 14 Sep 2017 15:07:33 +0000</pubDate>
<description>I&#x27;ll attempt to explain the first Metropolis hard fork changes in a way I can understand them myself. Since I&#x27;m not a low level core dev, I hope this can be useful for others. I…</description>
<content:encoded><![CDATA[<p>I'll attempt to explain the first <a href="https://blog.ethereum.org/2017/09/14/geth-1-7-megara/" target="_blank" rel="noopener">Metropolis hard fork changes</a> in a way I can understand them myself. Since I'm not a low level core dev, I hope this can be useful for others. I welcome any comments or corrections:</p>
<h5 id="h-eip-98-removal-of-intermediate-state-roots-from-receipts-14750">EIP 98: Removal of intermediate state roots from receipts (#14750).</h5>
<p>This allows more parallelization on transaction processing, as not all transactions require the result of the previous one.</p>
<h5 id="h-expanded-by-eip-658-embedding-transaction-return-data-in-receipts-15014">Expanded by EIP 658: Embedding transaction return data in receipts (#15014).</h5>
<p>This allows light clients to be able to see if a call they made was executed properly or if it failed. This could only be verified by full nodes previously.</p>
<h5 id="h-eip-100-change-difficulty-adjustment-to-target-mean-block-time-including-uncles-14733">EIP 100: Change difficulty adjustment to target mean block time including uncles (#14733).</h5>
<p>In bitcoin, only miners who found a block and sucessfully added it to the main chain received block rewards. This leads some ineffiency and some miner centralization as miners who were physically close had an advantadge and wasted work so Ethereum created the uncle reward, in which if you found a correct block but it lost the race to reach all other miners, you would still get paid. But this led to an error in which the total issuance was slightly higher than the expected 5 ether per block in an unpredictable way: during moments where internet connectivity lagged or the network was too busy, more uncles would mean more ether was created. This EIP fixes that.</p>
<h5 id="h-eip-198-eip-212-197-and-eip-213-196-precompiled-contracts-for-modular-exponentiation-elliptic-curve-addition-scalar-multiplication-and-pairing-14959-14993">EIP 198, EIP 212 (197) and EIP 213 (196): Precompiled contracts for modular exponentiation; elliptic curve addition, scalar multiplication and pairing (#14959, #14993).</h5>
<p>Adds some cryptographic primitives that enable some new use cases, mostly around zk-snarks. This indirectly enables new novel uses, including higher privacy, scalability and other stuff people will come up with.</p>
<h5 id="h-eip-214-116-expanding-the-evm-with-static-contract-calls-14978">EIP 214 (116): Expanding the EVM with static contract calls (#14978).</h5>
<p>Whenever a contract calls another contract in the middle of their function, that contract takes priority and can then do anything it wants, including calling the original contract back. This creates some complicated situations that makes writing smart contract more complex as there are tons of ways in which your contract state might have changed after that call in which you can't predict (The Dao bug, for instance). This creates a safer way to call an unknown contract from inside your contract.</p>
<h5 id="h-eip-211-expanding-the-evm-with-dynamically-sized-return-data-14981">EIP 211: Expanding the EVM with dynamically sized return data (#14981).</h5>
<p><strong>explanation from /u/izqui9</strong> At the moment when you make a call to another contract you must specify how many bytes of return data will be copied. EIP 211 introduces two new opcodes RETURNDATASIZE and RETURNDATACOPY. After making a call you can check how many bytes the call returned and then copy exactly that many bytes. This is specially exciting as it will enable Forwarding contracts to return exactly what the underlying call returned. Right now Forwarding contracts rely on hardcoding how much memory they will read from the call, but this is not a good solution for dynamic sized types such as strings or bytes array that can have an arbitrary size.</p>
<h5 id="h-eip-206-140-expanding-the-evm-with-cheap-state-revertals-14983">EIP 206 (140): Expanding the EVM with cheap state revertals (#14983).</h5>
<p>In almost any contract you usually want to check multiple situations that would prevent a transaction from being executed: maybe the caller is not authorized to do that transaction (not the owner!) or maybe the contract is not yet on a state in which it can do that (crowdsale has not started) or some other limit (participation cap is reached!). When that happens you want all execution to stop and no state to change so you execute a <code>throw</code> function. The issue is that is an expensive call: it burns all the gas sent and doesn't provide the user any way to tell the reason it failed. This introduces a better way to do it: by using revert instead of throw, you only spend the gas the user actually used, and it provides a useful error code telling the user <em>why</em> their transaction failed. Super useful for app development!</p>
<h5 id="h-eip-649-delaying-the-difficulty-bomb-and-reducing-the-block-reward-15028">EIP 649: Delaying the difficulty bomb and reducing the block reward (#15028).</h5>
<p>Self explanatory: delays the iceage by 18 extra months and reduces block reward to 3 ether in preparation for future PoS reduction.</p>
<h5 id="h-eip-684-preventing-overwriting-contracts-byzantium-prep-15039">EIP 684: Preventing overwriting contracts (Byzantium prep) (#15039).</h5>
<p>Byzantium will change the way in which contract addresses are created. This prepares to prevent collisions, by preventing contracts from being deployed where there's another one existing.</p>]]></content:encoded>
</item>
<item>
<title>Great summary of the largest three fears</title>
<link>https://blog.vandesande.design/blockchain-fears</link>
<guid isPermaLink="true">https://blog.vandesande.design/blockchain-fears</guid>
<pubDate>Tue, 22 Aug 2017 12:00:00 +0000</pubDate>
<description>Great summary of the largest three fears. Here are how I see them: Censorship resistance: This isn’t a property of blockchains, but of information online. Once that shameful…</description>
<content:encoded><![CDATA[<p>Great summary of the largest three fears. Here are how I see them:</p>
<p><strong>Censorship resistance:</strong> This isn’t a property of blockchains, but of information online. Once that shameful picture of you leaks online, it can live in personal hard disks, it can live in burned cds, it can live in small obscure corners of the globe. What we really need is a change in attitude: stop shaming people for their sexuality, past behavior and substance abuse. Understand that by sharing a picture of someone being bullied or hummiliated, you are also helping the hummiliation. Forgive people for their past mistakes. This isn’t a tech challenge, but a social one.</p>
<p><strong>Financial Freedom:</strong> It’s true, privacy can help hide corrupt acts and laundering of money. But does giving extraordinary powers of omniscience to the powerful actually help prevent that crime? Or does it simply empowers them as they can use their influence to selectively police some transactions but not others? It’s my opinion that the past decades have proven that this has been the more likely outcome: the rich and powerful will always find ways to launder their money. What can we do to prevent this? By taking their power away. Where does that bribe money comes from? A large part comes from money collected in taxes that should fund health and education is instead siphoned away into corruption, mostly because of a total lack of transparent accounting in governments. So I believe the way to fight corruption is at the source: make governments radically transparent, make so that governmental programs are automated with blockchains, tools that blockchain enable.</p>
<p><strong>Tax Evasion:</strong> Common mistake that financial privacy means governments can’t collect taxes anymore. For the longest part of the last many thousand years of the history of taxation, money was untraceable (gold, stones, etc) and taxes were collected anyway, it’s only for the past 50 years or so that govenrments started to having omnicient power over their citizens finance, and we already believe they would crumble? The good news is that blockchains allow taxes to be automatically collected. Most of the stuff that government deals with is basically databases (property, identity, etc) and we can automate those taxes. Vlad and me both attended a london workshop about ENS where the consensus was to create some sort of “tax” on domains to make sure the owners would optimize their utility: here’s an example of a voluntary, non-violent system that allows taxes to be deducted and that deals automatically with those who don’t pay, by auctioning off the domains after a year.</p>
<p><strong>Evil DAOs:</strong> if evil decentralized organizations are able to outcompete evil centralized organizations, then it’s true that there will be many of them, and they will likely take over as they drain the profit out of traditional mafias (as evil DAOs don’t spend money on yatches and prostitutes, only on their own growth). But if this happens, it also means that the concept of DAOs are so successful that they apply to all society, and that most of what we think of the way we are organized will be disrupted. It means that policing, investigating and combating the evil daos can also be automated. I have no idea what the result will be, but it will interesting to watch.</p>]]></content:encoded>
</item>
<item>
<title>Como aumentar a Representatividade mas diminuir os Representantes</title>
<link>https://blog.vandesande.design/como-aumentar-a-representatividade-mas-diminuir-os-representantes</link>
<guid isPermaLink="true">https://blog.vandesande.design/como-aumentar-a-representatividade-mas-diminuir-os-representantes</guid>
<pubDate>Thu, 06 Oct 2016 12:00:00 +0000</pubDate>
<description>Repescagem: uma forma de contabilizar os votos que une o melhor do voto distrital e proporcional e pode diminuir os gastos públicos Saiu o resultado da última eleição e você…</description>
<content:encoded><![CDATA[<p><strong>Repescagem: uma forma de contabilizar os votos que une o melhor do voto distrital e proporcional e pode diminuir os gastos públicos</strong></p>
<p>Saiu o resultado da última eleição e você provavelmente está focado no que aconteceu no Executivo. Mas essa eleição, foi acaba de ser definida sua nova câmara municipal, que deveria ter um impacto grande no que acontece na sua cidade. E agora, você sabe quem te representa na câmara?</p>
<figure>
<img src="https://blog.vandesande.design/media/como-aumentar-a-representatividade-mas-diminuir-os-representantes/01-704.webp" width="2592" height="1831" alt="">
<figcaption>Quem te representa em um voto Proporcional?</figcaption>
</figure>
<p>Se o vereador que você votou foi eleito, <em>parabéns</em>, você está em uma minoria! Mas se você precisar que ele ou ela te represente em alguma coisa, você tem acesso ou a pessoa é popular e inalcançável demais pra isso?</p>
<p>Se seu candidato não foi eleito, a pergunta fica mais complicada: você é representado pelo colega dele de partido? Ou talvez alguém que mora perto de você mas você não votou? E os políticos que ganharam suas cadeiras por voto do partido, a quem eles representam? Quem é responsável por fiscaliza-los?</p>
<p>Ou será que nessa câmara completamente renovada que nem começou a trabalhar, já vale o clichê:</p>
<blockquote>
<p>Nenhum desses políticos me representa</p>
</blockquote>
<p>Sendo tão difícil assim responder a essas perguntas simples, não é de se espantar que estejamos vivendo em uma crise de representatividade onde grande parte da população se questiona <em>pra que sequer temos tantos desses políticos</em>.</p>
<figure>
<img src="https://blog.vandesande.design/media/como-aumentar-a-representatividade-mas-diminuir-os-representantes/02-704.webp" width="2648" height="1778" alt="">
</figure>
<p>Não há nenhuma razão dessa distância tão grande entre políticos e os seus eleitores. No Brasil, um município pequeno tem 1 vereador para cada 500 pessoas, podendo chegar até 1 para 150 mil nas grandes capitais. Parece um número grande mas se você conhece 500 pessoas pelo primeiro nome, e cada uma dessas pessoas puder te apresentar 500 outras, significa que você está a um aperto de mão de distância de 250 mil brasileiros. Mas vereadores e deputados no Brasil são tratados como seres de outro mundo, sub celebridades distantes e inalcançáveis, não um amigo de um amigo.</p>
<p>Pra piorar a situação, durante o período da eleição existem centenas de pretendentes a cada vaga, tornando impossível ao eleitor conhecer a todos, reduziondo-os a números de cinco dígitos (quatro para deputados federais) a serem memorizados. O Brasil tem dez vezes mais prefeitos que deputados, mas enquanto os eleitores minimamente informados conhecem seus candidatos a prefeito, assistem debates e discutem com amigos as opções, quando chega a hora de escolher um representante do legislativo, não existe nada disso. Em geral os eleitores vão em indicação de amigo, rostos conhecidos ou gente que chame a atenção de outra forma. <strong>É assim que o sistema estimula que sejam eleitos velhos políticos, celebridades decadentes e palhaços.</strong></p>
<p>Não falo de “sistema” de forma genérica, mas especificamente do nosso sistema de contagem de votos, chamado de <strong>voto proporcional</strong>. Seu voto é computado entre todos os outros eleitores e depois redistribuído de acordo com uma série de regras complexas e opacas cujo objetivo é fazer com que os partidos tenham uma distribuição de cadeiras proporcionais aos votos recebidos. Esse sistema foi criado para substituir o sistema distrital, ainda usado em alguns países como Estados Unidos, França e Inglaterra onde os eleitores são divididos em áreas geográficas menores e o mais votado de cada distrito é enviado para a câmara.</p>
<p>Em um <strong>voto distrital</strong>, a fronteira dos distritos e distribuição dos eleitores influencia completamente uma eleição. Dois partidos com a mesma quantidade de votos podem ou tomar controle do congresso ou não ter nenhuma cadeira, dependendo de sua distribuição geográfica(vide abaixo). Essas distorções forçam o eleitor a pensar mais no “voto útil” e não votar em partidos menores que ele prefere. Quando se dificulta que novos partidos possam crescer a renovação política se torna muito mais difícil.</p>
<figure>
<img src="https://blog.vandesande.design/media/como-aumentar-a-representatividade-mas-diminuir-os-representantes/03-704.webp" width="2732" height="2048" alt="">
<figcaption>Redefinir fronteiras de distritos eleitorais para garantir um resultado se chama <a href="https://en.wikipedia.org/wiki/Gerrymandering" target="_blank" rel="noopener">Gerrymandering</a>. Mas mesmo em distritos naturais essas distorções podem acontecer. No caso acima o Partido Azul ganhou a maioria da camara obtendo 36% dos votos, enquanto o partido amarelo, com o mesmo número de votos, não teve nenhum representante.</figcaption>
</figure>
<p>O voto proporcional foi feito para resolver esses problemas mas com ele perdemos a maior vantagem do voto distrital: a relação direta, geográfica, entre o representante e o representado. Em uma eleição distrital, todos sabem quem são seus representantes, e os políticos sabem quem está lá cobrando deles. Além disso, a proximidade geográfica torna mais fácil implementar um recall em caso de escândalo, diminui os gastos de campanhas e faz com que o político seja literalmente vizinho do seu eleitor.</p>
<p><strong>Será possível ter o melhor dos dois mundos?</strong></p>
<p>Sim. Alguns países como Alemanha e Nova Zelândia, usam um sistema misto. Normalmente esses sistemas são mais complexos para o eleitor, envolvendo um segundo voto e listas elaboradas pelo partido. Aqui descreveremos um método muito mais simples, que faz esses cálculos de uma vez. <strong>E de brinde, podemos diminuir <em>até a metade</em> a quantidade de políticos.</strong></p>
<h5 id="h-elei-o-distrital-com-repescagem">Eleição distrital com repescagem</h5>
<p>Imagine que o Brasil seja dividido em distritos eleitorais de de acordo com sua população. No caso de um deputado federal, cada distrito teria 600 mil habitantes (uma cidade média ou uma zona de uma cidade grande) e no caso de municípios o número iria variar até 250 mil (um bairro populoso) em grandes capitais.</p>
<p>Partidos poderiam lançar apenas um candidato por distrito. Para o eleitor isso significaria o fim de memorizar longos dígitos para cada candidato: para votar no seu candidato, bastaria digitar o número do partido (um voto em um candidato é considerado um voto no partido). Com um número limitado de candidatos por área, torna-se mais fácil a organização de debates locais entre os candidatos e não haveria a necessidade de caravanas passeando por todo o estado ou cidade, possívelmente diminuindo os custos de campanha.</p>
<figure>
<img src="https://blog.vandesande.design/media/como-aumentar-a-representatividade-mas-diminuir-os-representantes/04-704.webp" width="2732" height="2048" alt="">
</figure>
<p>A eleição se da em apenas um turno, com o candidato mais votado automaticamente ganhando uma vaga na câmara, mas nesse momento <strong>apenas metade das cadeiras é distribuída</strong>. Ao final dessa eleição distrital simples, compara-se a distribuição de cadeiras com os votos conquistado pelo partido no total. Caso não haja distorções significativas (digamos que as distribuições de cadeiras e votos esteja a menos de 3 pontos percentuais de diferença) a eleição é dada por concluída.</p>
<p><strong>Isso significa que em alguns casos as câmaras teriam apenas metade dos políticos atuais, economizando dos cofres públicos.</strong></p>
<p>Caso contrário começa o processo de repescagem:</p>
<h6 id="h-a-repescagem">A repescagem</h6>
<p>Para cada partido, calcula-se a diferença entre a proporção de votos obtidos e cadeiras conquistadas. O partido que estiver mais sub representado (tiver a maior diferença, em pontos percentuais, entre votos populares e composição na camera) ganha automaticamente uma vaga a mais e a preenche com seu candidato mais votado que já não esteja eleito.</p>
<p>Imagine que um partido tenha ganho 120 mil votos dos votos no total de um município de 1 milhão de habitantes mas tenha conquistado a maioria em apenas 1 dos 25 distritos eleitorais. Como ele conquistou apenas 4% das cadeiras mas teve 12% dos votos, ele ganha direito a uma cadeira a mais. Essa vaga não vai para um desconhecido do eleitor, mas para um dos candidatos de outro distrito eleitoral que tenha ido muito bem na sua campanha e provavelmente ficou em segundo ou terceiro lugar. Agora o partido tem 2 vagas das 26 da câmara (7%) e as diferenças entre votos e vagas ganhas são recalculados para todos os partidos novamente.</p>
<p>O processo é repetido até nenhum partido ter uma diferença de representatividade maior do que 5 pontos percentuais entre os votos e as cadeiras, ou até que todas as vagas tenham sido preenchidas.</p>
<p>Vantagens desse método:</p>
<ul>
<li><p><strong>Menos custos:</strong> Garante-se que na maior parte das eleições as câmaras ficarão com um tamanho menor ao que temos hoje em dia</p></li>
<li><p><strong>Garantia de proporcionalidade:</strong> a câmara sempre terá uma composição semelhante aos votos conquistados no total</p></li>
<li><p><strong>Proximidade geográfica:</strong> cada distrito envia um ou dois candidatos, tendo portanto uma conexão direta entre os representantes e seus representados</p></li>
<li><p><strong>Maior cobranças:</strong> cada cidadão é responsável por ficar de olho em um ou dois vereadores que ele elegeu, facilitando a implementação de um <em>Recall</em> caso a população deseje.</p></li>
<li><p><strong>Nada de fantasmas:</strong> Políticos só são eleitos se tiverem votação significativa no seu próprio distrito.</p></li>
<li><p><strong>Menos ou tudo ou nada:</strong> se dois candidatos tem uma eleição apertada, o segundo colocado ainda tem uma chance ganhar uma vaga na repescagem.</p></li>
<li><p><strong>Sem votos desperdiçados:</strong> um voto em candidato que não ganhe a eleição pode ajudar um outro candidato do mesmo partido que tenha tido uma votação mais significativa em outro distrito</p></li>
<li><p><strong>Sem puxadores de votos:</strong> pela limitação de distritos uma celebridade muito famosa não pode ganhar mais do que 100% dos votos em uma área, e consegue no máximo ajudar a eleger um segundo candidato bem votado em outro distrito</p></li>
<li><p><strong>Campanhas mais baratas:</strong> sem necessidade de viagens ou campanhas de alcance nacional, os custos de campanhas são reduzidos</p></li>
</ul>
<h6 id="h-gostei-mas-isso-nunca-vai-ser-implementado">Gostei, mas isso nunca vai ser implementado!</h6>
<p>O meu maior objetivo com esse texto não é realmente esperar que um sistema desses será implementado tão cedo no Brasil, mas fazer as pessoas prestarem menos atenção nos políticos corruptos que são eleitos e mais nos sistemas que fazem com que eles sejam eleitos. Não acredito que todos os problemas do Brasil sejam causados por políticos desonestos tentando sabotar o país, mas que muitos problemas são, na verdade causados por resultados esperados de defeitos em sistemas complexos que ninguém está prestando atenção. Então na próxima vez que você estiver frustrado com um político ou uma crise, tente pensar em de quem ou qual partido é a culpa, mas o que poderia mudar na forma como somos governados para que os desonestos tenham menos oportunidades.</p>
<p>Discuta entre seus amigos menos sobre pessoas e mais sobre formas de fazer uma reforma política.</p>
<p><strong><em>A desesperança na democracia é algo muito perigoso, e a única forma de realmente mudar algo grande é focar em uma parte pequena que poderia melhorar.</em></strong></p>]]></content:encoded>
</item>
<item>
<title>.eth Registrar using only Deposits</title>
<link>https://blog.vandesande.design/eth-registrar-using-only-deposits</link>
<guid isPermaLink="true">https://blog.vandesande.design/eth-registrar-using-only-deposits</guid>
<pubDate>Tue, 09 Aug 2016 13:44:29 +0000</pubDate>
<description>.eth Registrar using only Deposits.md This is an attempt of setting up a name registrar that use deposits instead of burning or token contributions and tries to optimize name…</description>
<content:encoded><![CDATA[<h3 id="h-eth-registrar-using-only-deposits-md">.eth Registrar using only Deposits.md</h3>
<p>This is an attempt of setting up a name registrar that use deposits instead of burning or token contributions and tries to optimize name utility and reduce domain squatting. <a href="https://blog.vandesande.design/default-mist-name-registrar">Previous initiatives of charging a "rent" based on the market price with an yearly auction</a> proved impopular with many developers as they believed the registrar wasn't delivering any value for the "tax" as well as worries that a sudden big auction could force someone unexpectedly to be forced to sell the name.</p>
<p>In order to start doing that let's define the problem:</p>
<p><em>Name squatting</em> is defined as buying a name and not adding any value to it, just holding it expecting that domains names will become more valuable in the future. Let's assume that all name buyers have the intention of acquiring a name and make it more valuable over time, either by working on it as a business and adding value to the "brand", or by working to increase the chances of finding a better suited buyer, all have variable success on these endeavours. It's natural to assume that the value of new names being acquired should keep in line with the market values expectation of how profitable they are to sell (either as a brand, a business or a placeholder domain) in the future.</p>
<p>The solution here lies to require a deposit to own a name and periodically require the owner to update their deposit to what is assumed to be the market rate of the name of their current name. If names in general have increased in value but the owner is among the bottom half that hasn't done anything to increase the value of their own names, then all possible profit will be negated by the extra deposit. If names have decreased in value the owners can request to withdraw part of the deposit and the cost of the name will be the cost of opportunity of possibly having invested in something that would have a better return. At any point name holders can release and get the full deposit back.</p>
<p>So the process is a nutshell:</p>
<h4 id="h-process">Process</h4>
<h5 id="h-1-start-auction-for-available-name">1) Start Auction for available name</h5>
<p>Anyone can start an auction by sending an array of hashes that they want to bid for. Arrays are sent so that someone can open up an auction for X dummy hashes when they are only really interested in bidding for one. This will increase the cost for an attacker from simply bidding on all new auctions blindly. Dummy auctions that are open but not bid on are closed after a week.</p>
<h5 id="h-2-one-week-auction-for-the-desired-hash">2) One week auction for the desired hash</h5>
<p>Bids are sent by sending a message to the main contract with a hash and an amount. The hash contains information about the bid, including the bidded hash, the bid amount, and a random salt. Bids are not tied to any one auction until they are revealed. The value of the bid itself can be maskeraded by changing the required period or sending more than what you are bidding for. This is followed by a 24h reveal period. Bids revealed after this period will be burned and the ether unrecoverable. Since this is an auction, it is expected that most public names, like known domains and common dictionary words, will have multiple bidders pushing the price up. <strong>The minimum bid will be set as the equivalent cost of sending 1000 bid transactions, to increase the cost of trying to spam the network with dummy domains</strong>.</p>
<h5 id="h-3-winning-bids-are-deposited">3) Winning bids are deposited</h5>
<p>The highest bid gets control of the name, by depositing the equivalent amount of the second highest bid. The funds will be held on new contract, controlled only by the owner which contains basic information like when the name was first registered, when it needs to be renewed, and the price paid for it. <strong>The price paid is also saved on a moving average amount, calculated as <code>averagePrice = averagePrice * 0.999 + newPrice * 0.001</code></strong>. The averagePrice at the moment of purchase is also registered on the contract.</p>
<p>The name registrar itself doesn't need to store any ether. Instead, each name could be itself a contract that is acessible only by the owner or the name registrar contract, reducing the attack vectors and making it impossible for someone to take more out than they originally had put in.</p>
<h5 id="h-4-renewals-can-be-done-at-any-moment-by-renewing-the-deposit">4) Renewals can be done at any moment by renewing the deposit</h5>
<p>In order to renew a name you need to calculate how much have average prices of names changed since you last bought it. If the average price names have increased, then you need to increase your deposit. If median prices have fallen down, then you have the right to withdraw part of the difference (1/2 after a year, 3/4 after 2 years, 7/8 after 3 years etc).</p>
<pre><code>required deposit =  cost of name at purchase * latest median price of name / median price at auction or last renewal</code></pre>
<p>This calculation assumes that market values of each particular name are fairly calculated by an open auction, and that the only variable are the demand for new names, the premise being that <em>if the same auction had happened today, this is the amount that you would have to pay for the name</em>. All other variables, like the market price of ether or the perceived demand for names, are thought to be included in each individual auction. Renewals can be done at any moment up to the expiry date.</p>
<p>Once renewed, a new expiry date is set by adding the age of the domain to the current date. Therefore when registered a name needs to be renewed after a year, then after 2 years and then 4 years after that.</p>
<p>Being able to withdraw only partly is made to disincentive users using name holding as proxy for ether holding. This means that liberating the full name is worth more than keeping the name - otherwise owning a 10 ether name would be functionally equivalent to owning 10 ether, with the added benefit of a small chance of reselling it as property later.</p>
<h5 id="h-5-names-not-renewed-can-be-released-at-any-time">5) Names not renewed can be released at any time</h5>
<p>The real cost of holding a name is the opportunity cost of doing something better with your ether. If there are better opportunities, like staking it, lending it or investing in some other new venture, then holding names should be seen as an undesirable outcome and owners have an incentive to release them. Names can be sold at any moment, but the buyer will incur the same renewal cost/benefit analysis.</p>
<h4 id="h-scenarios">Scenarios</h4>
<p>Alice buys alice.eth for her personal use. She bids 2 ether, which is about twice the average most people are paying for a name. One year later, ether is still trading at about the same price, but names became more popular, being bought now at an average of 2 ethers. It means that for her to renew her name, she needs to put an additional 2 ether on the deposit. She makes the calculation that her domain is worth the extra ether, so she is happy to do it.</p>
<p>Bob decides to buy foo.eth because he believes that company Foo will want to buy from him. He imagines that there's a 10% chance of the company buying the name for 100,000. So he bids 10,000 ether and wins, which is way over the average and way over the second place that bid only 1,000 ether. Bob get's 9,000 ether back and keeps the name with the 1,000 deposit. One year later, Bob wasn't able to sell the name, ether now is trading at twice the price, but since demand for names hasn't gone up, they all now go for an average of 0.5 ether. This means that now Bob can withdraw 250 ether and keep the name for another year. But bob realizes that, in dollar averages he would value that name at 500 ether, yet he has 750 ether locked up on that contract. Since Bob hasn't found a better buyer, he decides to release that name, get his full 1,000 ether back and put it to use on something else.</p>
<p>About the same time Bob buys foo.eth, Eve also buys foobar.eth for 100 ether. She believes she has a 10% chance of reselling it for 1,000 so she considers it a bargain. One year later she hasn't sold the name yet and can renew it by withdrawing 25 ether. She keeps 75 ether on the name, althought the deposit value is now worth 50% more than what she originally paid, she has since set up a name selling company and believes her chance of selling that name has also increased, so for her it is still a bargain. Alice keeps the name.</p>]]></content:encoded>
</item>
<item>
<title>The Truth about the Fork</title>
<link>https://blog.vandesande.design/the-truth-about-the-fork</link>
<guid isPermaLink="true">https://blog.vandesande.design/the-truth-about-the-fork</guid>
<pubDate>Wed, 03 Aug 2016 12:00:00 +0000</pubDate>
<description>I respect Ethereum’s Classic philosophical position, in fact I was among the first to be publically against the hard fork, and helped in all other ways to avoid it. Once I felt…</description>
<content:encoded><![CDATA[<p><strong>I respect Ethereum’s Classic philosophical position</strong>, in fact I was <a href="https://twitter.com/avsa/status/743777328082358272" target="_blank" rel="noopener">among the first</a> to be publically against the hard fork, and helped in all other ways to avoid it. Once I felt there was an overwhelming majority support for it (and after having helped build tools to try to measure these supports), and long debates to try to understand both arguments, I accepted — and still do, the majority decision as a good one. In fact, if the fork was merely a dogmatic schism I would be able to appreciate the beauty of the free market figuring out on two philosophical and political positions and no further words were needed. Except, that I care deeply about the truth.</p>
<p>There is a common narrative in some communities that support Ethereum Classic, one in which the Ethereum Foundation is painted as the corrupt bad guys who pushed the fork for financial reasons and the DAO attacker was a liberating hero. A narrative in which the DAO was sloppy code which was obvious to anyone watching that it would crash and burn. A story in which everyone involved was incompetent or unwilling to help.</p>
<p>Those narratives are not only false, but they are are provably, publicly false, yet they persist either because they are easy stories to repeat, or because some of those repeating it are ill-informed or ill-intentioned.</p>
<h3 id="h-false-claim-1-the-ef-or-their-members-were-financially-motivated-to-fork">False claim #1: The EF or their members were financially motivated to fork</h3>
<figure>
<img src="https://blog.vandesande.design/media/the-truth-about-the-fork/01-704.webp" width="1174" height="240" alt="">
</figure>
<p>Many foundation developers (<a href="https://www.reddit.com/r/ethereum/comments/4qiqq8/ethereum_protocol_developer_holds_114877_worth_of/d4tvn6m?context=7" target="_blank" rel="noopener">including me</a>) have come forward about their dao holdings. Most (including our Executive director, Ming Chan) have none, some have very small amounts. Many have openly criticized the DAO. Of course, one can argue that we could be lying, or that the big holders are not disclosing but in all internal and private discussions I’ve had within the team, “saving my holdings” was never even brought up. Maybe there’s some shadow figure lurking behind the developers and influencing the foundation’s decision, but they are certainly not among any of the coders I talked to.</p>
<p>Even among those who owned part of the DAO, they had very small amounts, relative to their Ether holdings. <strong>Who would, in their right mind, want to risk 99% of your wealth to save 1%?</strong></p>
<p>From my experience, I’ve seen the opposite happening. When the news that a white hacker group needed DAO tokens to try to salvage the remainder of the DAO, most volunteered to donate their own tokens, without knowing if they would be burned in the untested process or even asking the identities of the hackers, just to try to save the DAO.</p>
<h3 id="h-false-claim-2-the-fork-came-from-the-foundation-against-the-community-wishes">False claim #2: The Fork came from the foundation against the community wishes</h3>
<p>The first client to start working on the Fork was Parity, developed by Ethcore and not affiliated with the EF. The Foundation develops two clients, the C++ (which only started working on a compatible version after the fork) and Geth, which started implementing the Fork late in the game. If anything the go developer team was heavily criticized for taking too long to build and test their code.</p>
<p>It’s true that Vitalik was one of the first to propose a fork, right after the DAO hack, but it was seen as one of many options and not a yet definitive answer. Anyone who participated on any ethereum community during the long 30 days that preceded the fork can attest that this was a highly debated topic. I personally helped built <a href="https://github.com/ethereum/stake-voice" target="_blank" rel="noopener">Stake Voice</a> as a Mist App to help measure how much the community actually felt about it. It was based on some code from <a href="https://github.com/vulcanize/ethersignal" target="_blank" rel="noopener">Ether Signal</a> a forum weighted by ether stake that was being built for the occasion. <a href="http://carbonvote.com" target="_blank" rel="noopener">Carbonvote</a> was created by the Chinese ethereum community and was released a couple days before any of those tools became available and soon became the most popular polling app. While Geth had a default, <a href="https://github.com/ethereum/mist/releases/tag/0.8.1" target="_blank" rel="noopener">Mist, and the Ethereum Wallet</a>, the official GUI clients did not choose any and forced users to pick from a randomized window.</p>
<p>Carbonvote was not the sole measure, talking to individuals, companies, outside developers, reddit up votes, twitter polls, any signal we could measure indicated the Fork had a high community support. And it showed on the day of the Fork. We immediately had over 90% of the hashrate and market. <strong>The community had a near consensus for this option and the anti-fork group was a minority.</strong></p>
<p>The foundation provided the community a choice they were loudly and repeatedly asking us for.</p>
<h3 id="h-false-claim-3-the-dao-issue-were-entirely-the-dao-s-creators-fault">False claim #3: The DAO issue were entirely the DAO’s creators fault</h3>
<p>At launch day, The DAO was lauded as an overwhelming sucess, having being reviewed by the foremost experts in the field, the crowd, and a private security audit. At the day of the hack, it was immediately derided as sloppy coding, hastily built and unreviewed. Notice the difference?</p>
<figure>
<img src="https://blog.vandesande.design/media/the-truth-about-the-fork/02-574.webp" width="574" height="161" alt="">
</figure>
<p>The DAO hack was made possible due to two lines of code in the DAO, where first it sent funds and <em>then</em> it changed the owed balance. It’s true that had these lines being in a different order the hack would not be possible.</p>
<p>But while the first reentrancy behavior was described on an <a href="https://web.archive.org/web/20160803/https://forum.ethereum.org/discussion/1317/reentrant-contracts" target="_blank" rel="noopener">unnoticed blog post in 2014</a>, it was not widely understood until it was rediscovered by the <a href="https://www.reddit.com/r/ethereum/comments/4nmohu/from_the_maker_dao_slack_today_we_discovered_a/" target="_blank" rel="noopener">developers of MakerDAO</a> with a similar hack that allowed them to drain their own contract. So the importance of that particular ordering of the code was not known by any of the experts in the field. The hack would not be possible if Solidity, the official language treated nesting differently, or how much gas it would send in the <em>.call()</em> function. The bug would have been discovered if formal verification tools where available, that would allow to mathematically assert some invariants (like that no one could get more than it had).</p>
<p>I’ve seen the bug being compared to <a href="https://xkcd.com/327/" target="_blank" rel="noopener">SQL injection</a>, an unexpected behavior that at some point affected most web applications, but once it came to the public consciousness of web developers, it was rather trivial to prevent.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-truth-about-the-fork/03-704.webp" width="1362" height="438" alt="">
</figure>
<p>So while demise of the largest crowdsale in history was caused by two lines of code on a contract, it was also caused by a series of immature tools in an 8 month old ecosystem, dealing with completely new fields of knowledge.</p>
<p><strong>The biggest mistake in the DAO wasn’t bad code but launching when the platform was still too young and the tools still immature.</strong> <a href="http://southpark.cc.com/clips/360430/captain-hindsight" target="_blank" rel="noopener">In hidsight</a> it’s easy to point that many things could have been done to limit the size or scope of the project, but the truth is that nobody expected the DAO to become as big as fast as it became. <strong>The DAO was Ethereum’s first viral sensation.</strong></p>
<h3 id="h-false-claim-4-nothing-else-was-done-to-prevent-the-issues">False claim #4: Nothing else was done to prevent the issues</h3>
<p>This criticism usually comes in two flavours: that either the curators / developers / slockit didn’t do anything when warned or that they did too much and should never have interfered. As a curator, an ethereum developer and a friend of many involved, I was witness to many of those key moments and can safely say this was not true at all.</p>
<p>The <a href="http://hackingdistributed.com/2016/05/27/dao-call-for-moratorium/" target="_blank" rel="noopener">first issues of the DAO</a> were raised by Emir Gün and Vlad Zamfir. The curators responded by following the suggestion of a moratorium and no proposal was approved. After the reentrancy attack was reproduced on MakerDAO, it was soon pointed out that it could be used to attack the DAO reward account (which was empty), leading the Slock.it team to publish the now infamous “<a href="https://blog.slock.it/no-dao-funds-at-risk-following-the-ethereum-smart-contract-recursive-call-bug-discovery-29f482d348b#.fwogvbkt3" target="_blank" rel="noopener">No Funds at risk</a>” blog post. Very few people at the time understood the full extent of the bug and therefore no one realized it could be used on the split function until the attack happened. It’s also important to note that <strong>even if someone had disclosed it responsibly it’s probable that there would be no way to salvage the DAO.</strong> It was already live and holding the funds when the first reentrancy issue was found and the Curators had no power to stop it (curiously, curators where criticised at the time of “having too much power”). Draining the DAO would reveal the issue and trying to upgrade it would take two weeks minimum.</p>
<p>The guys that are often the most vilified on this story are those who lost nights and worked for months without pay to try to salvage the community funds and they are often villified by those who are not taking risks or trying to do anything that has not been done before. In the space of about a month, thousands of new tools were developed to try to salvage what could, white hat attacks, soft forks, blockchain analysis. The Hard Fork was a last ditch effort and everyone tried to keep it as simple as possible because of the small amount of time available (therefore we chose not to deal with replay issues at that moment).</p>
<h3 id="h-the-no-fork-is-not-the-only-logically-consistent-position-possible">The No-Fork is not the only logically consistent position possible</h3>
<p>All the points I raised before were not opinions but simple true facts, to disprove the false narrative that is used to criticize our decisions. <strong>You can still take the new narrative and disagree with our decision</strong>, but before you do, I’d like to point <em>where</em> the disagreement comes from, as it can surprise you.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-truth-about-the-fork/04-704.webp" width="992" height="1092" alt="">
<figcaption>ethereum.org homepage</figcaption>
</figure>
<p>I’ve received a lot of criticism for the first phrase on the Ethereum.org home page as the fork would change the <strong>“exactly as programmed”</strong> promise. <strong>I wrote that phrase and still stand by it as I still believe that is the vision.</strong> I do not like semantic arguments, and believe the place to argue the definition of words like “bug”, “attacker”, “theft” or “hacker” is on <a href="https://en.wiktionary.org/wiki/hacker" target="_blank" rel="noopener">wiktionary</a>.</p>
<p>At the end of the day, what good is to be able to build a contract that will work “exactly as promised” if what it actually does is not what anyone expected? What’s the value of a technology that is intended to build “smart contracts” if not even the top experts in the field can make sure they are either smart or contracts? The DAO was the biggest project that Ethereum ever had, it introduced to thousands of newcomers the very idea of software that manages resources autonomously – and it failed. Of course the Ethereum Foundation <em>needed</em> to be involved, a bug of such size isn’t measured by the amount of money that was stolen, but on how could it affect the public perception of the whole ecosystem.</p>
<p>If you are inventing technology to build giant ships and the Titanic happens, won’t you be involved? If you are in the business of building new jet engines, shouldn’t you help investigate every new crash that could undermine the public’s trust in the whole airplane industry?</p>
<p>Of course, <em>you can take</em> the individualist position where, if you are not directly responsible then you should not get involved in other people’s business. <em>You</em> didn’t build that plane, <em>you</em> didn’t decide to cross the atlantic during iceberg season —why should you care? But it’s not the position I believe in.</p>
<p>It’s not that I don’t care about Blockchain immutability. In fact the Fork taught us two very valuable lessons:</p>
<ul>
<li><p>If there is even a small minority support, Blockchains can resist change and thrive, even if 99% of the miners, users and even the developers want to abandon it</p></li>
<li><p>If there’s a large enough social agreement, a new social consensus can emerge and have more value than the original chain.</p></li>
</ul>
<p>Unlike Bitcoin, ethereum was not created by a mythical creature that bestowed us with the magical Blockchain and disappeared into history. I believe not in One Immutable Blockchain, but in blockchains, a technology that can help us fight government corruption, manage public goods via software, reduce waste and increase transparency on markets. Ethereum was created by a group of flesh and bone developers that at some point in history could all fit in one small office in Berlin. You might feel that’s our weakness, that we are too centralised, too cabalistic, but I believe that’s our main strength, that we care and help each other, that we are willing to take unorthodox measures, do things that no one has dared to do, even if it sometimes goes against an unwritten religious tenet on what a blockchain should be, because we have a different vision on what it could be.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-truth-about-the-fork/05-704.webp" width="1200" height="798" alt="">
<figcaption>Ethereum Developers at Devcon 0, 2014</figcaption>
</figure>]]></content:encoded>
</item>
<item>
<title>How to build server less applications for Mist</title>
<link>https://blog.vandesande.design/build-server-less-applications-for-mist</link>
<guid isPermaLink="true">https://blog.vandesande.design/build-server-less-applications-for-mist</guid>
<pubDate>Tue, 12 Jul 2016 16:47:52 +0000</pubDate>
<description>Ethereum is not meant to be a platform to build esoteric smart contract applications that require a STEM degree to understand, but it aims to be one pillar of a different…</description>
<content:encoded><![CDATA[<p>Ethereum is not meant to be a platform to build esoteric smart contract applications that require a STEM degree to understand, but it aims to be one pillar of a different architecture for applications on the world wide web. With this post we will try to elucidate how this can be done and give some basic examples on how to start building a decentralized app.</p>
<h2 id="h-who-is-this-for">Who is this for?</h2>
<p>This text is intended at those who have a basic understanding of web technology and how to build a simple javascript and html app, and want to convert these skills into building apps for the Ethereum ecosystem.</p>
<h2 id="h-how-can-apps-run-without-servers">How can apps run without servers?</h2>
<p>Currently servers in web apps do much more than what they were originally intended to. Besides serving static web pages, they also keep private information, handle user authentication and deal with all the complicated ways in which data is analyzed and saved. All the user computer does - a device which would be considered a super computer when the web was invented - is to load and display that information to the user.</p>
<p>Current server models</p>
<figure>
<img src="https://blog.vandesande.design/media/build-server-less-applications-for-mist/01-704.webp" width="1846" height="798" alt="Current server models">
</figure>
<p>Instead, a more decentralized architecture would allow a much more modular approach, in which different machines and different protocols would handle specific tasks, some on the user's side and some in specialized machines deployed on a peer to peer network. Therefore all the Data logic (what gets saved, who saves it, how to solve conflicts etc) is handled by smart contracts on the blockchain, static files are served via  <a href="http://swarm-gateways.net/bzz:/a600d48f01d5e6d07907d9d14db0ff205624caf0570d0c2601cdb80c9767bcb9/index.html" target="_blank" rel="noopener">Swarm</a>  and realtime communication over  <a href="https://github.com/ethereum/wiki/wiki/Whisper" target="_blank" rel="noopener">Whisper</a>. The user device keeps the user authentication and runs the application interface.</p>
<p>Doing this would remove the danger of data breach and attacks as there are less single nodes keeping tons of unencrypted data, while also removing the load and cost of serving apps by distributing it across the network. Since all those protocols are decentralized, anyone can connect to the network and start providing a specialized service: if the user is browsing from a powerful laptop, for instance, they can also serve static files to network neighbors.</p>
<p>Decentralised Server models</p>
<figure>
<img src="https://blog.vandesande.design/media/build-server-less-applications-for-mist/02-704.webp" width="1792" height="754" alt="Decentralised Server models">
</figure>
<p>A decentralized architecture also encourages innovation: since the interface is detached from the data, anyone can come up with a new interface to the same app, creating a more vibrant and competing ecosystem. Arguably, one of the most interesting and innovative periods in Twitter history was when it served mostly as a central data hub and anyone could build their Twitter Application.</p>
<h2 id="h-see-it-working">See it working</h2>
<p>If you want to experiment with the app before learning it, we recommend you <a href="https://github.com/ethereum/mist/releases/tag/0.8.0" target="_blank" rel="noopener">download Mist and read our introductory tutorial to how to install the app and run it.</a> If you just want to see the whole app instead, you can download it directly from the <a href="https://github.com/ethereum/stake-voice" target="_blank" rel="noopener">Stake Voice Github repository</a>.</p>
<p>Stake Voice running on the Mist Browser</p>
<figure>
<img src="https://blog.vandesande.design/media/build-server-less-applications-for-mist/03-704.webp" width="2332" height="1594" alt="Stake Voice running on the Mist Browser">
</figure>
<h2 id="h-let-s-get-to-it">Let's get to it</h2>
<p>We are going to build a very simple application called "Stake Voice". The idea is to allow ether stakers to vote on anything they want, and the app will tally the total ether balance of all those who agree or disagree with the statement.</p>
<p>The app underlying contract is written in <a href="https://solidity.readthedocs.io/en/latest/" target="_blank" rel="noopener">Solidity</a>, a javascript-like language and is very simple:</p>
<pre><code>contract EtherVote {
    event LogVote(bytes32 indexed proposalHash, bool pro, address addr);
    function vote(bytes32 proposalHash, bool pro) {
        if (msg.value &gt; 0) throw;
        LogVote(proposalHash, pro, msg.sender);
    }
    function () { throw; }
}</code></pre>
<p>The first line sets up the contract name and the second creates an event called "LogVote", which will output in the log the following:</p>
<ul>
<li><p>a hash of the proposal being voted on</p></li>
<li><p>if the voter agrees or disagrees with it</p></li>
<li><p>the address of the voter</p></li>
</ul>
<p>The function "vote" will then fire the log, which the application later will count. It also has a check that no ether can be sent accidentally. The “anonymous” function is executed when any ether is deposited on the smart contract and will then automatically reject it.</p>
<p>If you want to learn more about coding in Solidity we recommend you start on the <a href="https://ethereum.org/token" target="_blank" rel="noopener">ethereum</a> <a href="https://ethereum.org/crowdsale" target="_blank" rel="noopener">solidity</a> <a href="https://ethereum.org/dao" target="_blank" rel="noopener">tutorials</a>, read the <a href="https://solidity.readthedocs.io/en/latest/" target="_blank" rel="noopener">official documentation page</a> and try it on your browser using the <a href="https://ethereum.github.io/browser-solidity/#version=soljson-latest.js" target="_blank" rel="noopener">online compiler</a>.</p>
<p>That's essentially it: you choose a hash, choose a side and execute Vote(). So how does this translates into a polling app?</p>
<h2 id="h-serverless-architecture">Serverless Architecture</h2>
<p>Following the principle of KISS, we are doing the minimum product possible that is still usable, meaning we won't be using databases for storing proposals or using any feature that requires anything other than vanilla javascript and pure html.</p>
<p>So we will use the URL of the app itself to keep the proposal text, and we will use that to display it to the user and generate a hash that can then be used to check the votes. The users can use social media to share which proposals they want to debate or simply use direct links.</p>
<pre><code>// On the initial startup function:
proposal = decodeURI(getParameterByName(&#x27;proposal&#x27;));

// get parameter function
function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, &quot;\\$&amp;&quot;);
    var regex = new RegExp(&quot;[?&amp;]&quot; + name + &quot;(=([^&amp;#]*)|&amp;|#|$)&quot;),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return &#x27;&#x27;;
    return decodeURIComponent(results[2].replace(/\+/g, &quot; &quot;));
}</code></pre>
<h2 id="h-start-with-basics">Start with basics</h2>
<p>So grab your favorite html framework and get a basic website on your local machine and open it on Mist. All pages in Mist have access to a javascript object called web3 which will where you will be working the most. First thing we need to do is check if web3 is present or not:</p>
<pre><code>Function init() {
...
if(typeof web3 == &#x27;undefined&#x27;) {
    // Alert the user they are not in a web3 compatible browser
    return;    
 }
 </code></pre>
<p>Some application developers might want to load their own web3 object, to guarantee forward compatibility. To do that, just add just before <em>&lt;/body&gt;</em> tag:</p>
<pre><code>&lt;script src=&quot;https://raw.githubusercontent.com/ethereum/web3.js/0.16.0/dist/web3.min.js&quot;&gt;&lt;/script&gt;</code></pre>
<p>And then add this on your initial function to load your own custom web3 provider:</p>
<pre><code>// Checks Web3 support
if(typeof web3 !== &#x27;undefined&#x27; &amp;&amp; typeof Web3 !== &#x27;undefined&#x27;) {
    // If there&#x27;s a web3 library loaded, then make your own web3
    web3 = new Web3(web3.currentProvider);
} else if (typeof Web3 !== &#x27;undefined&#x27;) {
    // If there isn&#x27;t then set a provider
    web3 = new Web3(new Web3.providers.HttpProvider(&quot;http://localhost:8545&quot;));
} else if(typeof web3 == &#x27;undefined&#x27;) {
    // Alert the user he is not in a web3 compatible browser
    return;  
}</code></pre>
<h2 id="h-load-information-from-the-blockchain">Load information from the blockchain</h2>
<p>You checked you are connected to a blockchain, but which one? Is it the main ethereum network? Maybe a testnet or a private network? Maybe it's a fork in the future and your chain is a brand new one. The best way to check this is to see if the contract address you want to load has any code on it.</p>
<p>Furthermore, to execute a contract you need to know two basic things: it's address and the ABI, which will be a json encoded file containing interface information.</p>
<pre><code>var contractAddress = &#x27;0x1e9d5e4ed8ef31cfece10b4c92c9057f991f36bc&#x27;;
var contractABI = [{&quot;constant&quot;:false,&quot;inputs&quot;:[{&quot;name&quot;:&quot;proposalHash&quot;,&quot;type&quot;:&quot;bytes32&quot;},{&quot;name&quot;:&quot;pro&quot;,&quot;type&quot;:&quot;bool&quot;}],&quot;name&quot;:&quot;vote&quot;,&quot;outputs&quot;:[],&quot;type&quot;:&quot;function&quot;},{&quot;anonymous&quot;:false,&quot;inputs&quot;:[{&quot;indexed&quot;:true,&quot;name&quot;:&quot;proposalHash&quot;,&quot;type&quot;:&quot;bytes32&quot;},{&quot;indexed&quot;:false,&quot;name&quot;:&quot;pro&quot;,&quot;type&quot;:&quot;bool&quot;},{&quot;indexed&quot;:false,&quot;name&quot;:&quot;addr&quot;,&quot;type&quot;:&quot;address&quot;}],&quot;name&quot;:&quot;LogVote&quot;,&quot;type&quot;:&quot;event&quot;}];</code></pre>
<p>Now that you have those, you can check if the contract exist on the startup function:</p>
<pre><code>// Load the contract
web3.eth.getCode(contractAddress, function(e, r) {
    if (!e &amp;&amp; r.length &gt; 3)
        loadContract();
 })
 </code></pre>
<p>You can even run this command recursively, to try connecting to it again using another address (in case you are actually on the testnet). Once you have found your contract you can load it up here:</p>
<pre><code>Function   loadContract() {
// load the contract to javascript
      ethervoteContract = web3.eth.contract(contractABI);
      ethervote = ethervoteContract.at(contractAddress);
}</code></pre>
<p>You are using the web3 object to create a new a javascript object that will be able to execute all the ethereum commands directly from the browser. If you want to load only a single instance of the contract, then you can even do it in one line:</p>
<pre><code>    
ethervote = web3.eth.contract(contractABI).at(contractAddress);</code></pre>
<h2 id="h-identify-the-user">Identify the user</h2>
<p>Knowing the user's account reveals a lot of information about the user: how much ether and any other tokens it has on its balance, and their transaction history. So having all apps know this by default would create a super cookie and would be an unacceptable invasion of privacy. On the other hand, requiring the user to create an user account with login information for each site is not only a pain for the user, but also puts your private information in control of third parties, which creates giant honey pots that can be breached by hackers.</p>
<p>As a result of this dilemma most users have most of their personal information and authentication information <a href="https://xkcd.com/1150/" target="_blank" rel="noopener">handled by a half dozen billion dollar corporation</a>. Privacy should not be a compromise we accept in exchange of practicality: users should be able to easily authenticate into any app while being in control of their own personal information.</p>
<p>Using Mist, apps have no information about the user, until the user decides to reveal itself to the app. When you want to query what you know about the accounts, you should call the getAccounts function:</p>
<pre><code>web3.eth.getAccounts(function(e,accounts){
    if (!e) {
        // do something with the accounts
   }
});</code></pre>
<p>Currently, the returning object is an array that holds simple accounts that the user has local access to, but in the future it will also hold smart contract accounts the user uses to identify themselves. This will allow the user to have access to features currently available only to centralized authenticators, like two factor authentication or cloud backup, and to future improvements only available to smart contracts, like allowing a few trusted friends to give you access to an account for which you lost keys or having automatic inheritance of inactive accounts.</p>
<p>Each future Ethereum browser will handle how users identify themselves to the App. In Mist we have two ways: either the user can initiate it by clicking the "connect" button (currently it's just called a "no accounts" button) or the App can request the authentication by calling the "requestAccount" api.</p>
<p>Attention: the accounts on this list are just one which the user claims to hold the key to, but the user has provided no proof of doing, therefore you can show a different UI, but don't send the user any secret information intended only to that account. If you require the user to prove their identity you need them to sign a message, while Mist will also support that in the future, keep it in mind that it would force the user to add an extra step and type their password, so you should only use that when absolutely necessary.</p>
<h2 id="h-voting">Voting</h2>
<p>Once you have the contract as an object, voting is a matter of calling it from javascript. This will pop up a Mist transaction pane, where the user will be able to check the transaction and then type their password. So first we will create two clickable objects that calls a vote function:</p>
<pre><code>    
document.getElementById(&#x27;vote-support&#x27;).addEventListener(&#x27;click&#x27;, function(){ vote(true);}, false);
document.getElementById(&#x27;vote-against&#x27;).addEventListener(&#x27;click&#x27;, function(){ vote(false);}, false);</code></pre>
<p>Notice that one calls the function with a true parameter and the other false. The function vote could be as simple as:</p>
<pre><code>Function vote() {
    ethervote.vote(proposalHash, support, {from: web3.eth.accounts[0]});
}</code></pre>
<p>"Ethervote" is the object we created before, and "vote" is one of its functions, which correspond to one of the contract functions:</p>
<pre><code>function vote(bytes32 proposalHash, bool pro) {}</code></pre>
<p>We pass the two parameters demanded by the function and then add a third object containing transaction informations, like who is it being sent from and optionally, how much gas to include or how much to pay for the gas.</p>
<p>Consequently this would generate a panel asking the user to confirm the transaction - but most likely it will return an error because currently the web3.eth.accounts object is an empty array by default, so you have to check for that and if empty, request the accounts to the user:</p>
<pre><code>function vote(support) {

     web3.eth.getAccounts(function(e,accounts){
        // Check if there are accounts available
        if (!e &amp;&amp; accounts &amp;&amp; accounts.length &gt; 0) {
            // Create a dialog requesting the transaction
            ethervote.vote(proposalHash, support, {from: accounts[0]})

          } else {
            mist.requestAccount(function(e, account) {
                if(!e) {
                    // Create a dialog requesting the transaction
                    ethervote.vote(proposalHash, support, {from: account.toLowerCase()})
                }
            });
        }
    });
}</code></pre>
<p>You should only request an account once the user initiated an action: pinging a transaction out of nowhere will deservedly irritate the user and probably make him close your app. If we observe abuses from apps using this feature, we might add more strict requirements to when an alert will show up.</p>
<h2 id="h-watch-the-contract">Watch the contract</h2>
<p>Finally, to count up all the votes we need to watch the contract events and see what votes were cast. To do that, we have to run this function once to start watching the events, after we instantiated "ethervote":</p>
<pre><code>ethervote = web3.eth.contract(contractABI).at(contractAddress);
var logVotes = ethervote.LogVote({proposalHash: proposalHash}, {fromBlock: 1800000});
// Wait for the events to be loaded
logVotes.watch(function(error, result){
    if (!error) {            
        // Do something whenever the event happens
      receivedEvent(result);
    }
})</code></pre>
<p>The above code will start reading all blocks from number 1.8M (when the contract was uploaded) onwards and then execute the receivedEvent() function once for each event. Whenever a new block arrives with an event this function will be triggered again so you won't need to call continuously. So what would this function do?</p>
<pre><code>Var voteMap = {};
Function receivedEvent(event) {
    // Get the current balance of a voter             
    var bal = Number(web3.fromWei(web3.eth.getBalance(event.args.addr), &quot;finney&quot;));
    voteMap[res.args.addr] = {balance: bal, support: event.args.pro};
}</code></pre>
<p>From the original solidity contract, you can see that the LogVote event comes with three argumenst, proposalHash, Pro and Addr:</p>
<pre><code>event LogVote(bytes32 indexed proposalHash, bool pro, address addr);</code></pre>
<p>So what this function does is that it will use the function web3.eth.getBalance to check the current ether balance of the address that voted. All balances always return numbers in wei, which is a 1/1000000000000000000 of an ether and is not very useful for this particular application, so we also use another included web3 function which converts that to any ether unit we want. In this case we will be using the finney, which is a thousandth of an ether.</p>
<p>Then the function will save the balance, along with the position of the voter to a map based on the address. One advantage of using a map instead of an array is that this will automatically overwrite any previous information about that same address, so if someone votes twice, only their last opinion will be kept.</p>
<p>Another thing we could do is identify the user and show them if they voted or not.</p>
<pre><code>// Check if the current owner has already voted and show that on the interface
web3.eth.getAccounts(function(e,accounts){
    if (!e &amp;&amp; accounts &amp;&amp; accounts[0] == res.args.addr) {
        if (res.args.pro) {
            // User has voted yes!
        } else {
            // User has voted against!
        }
    }
 });</code></pre>
<h2 id="h-tally-up-the-votes">Tally up the votes</h2>
<p>Finally, we should add a separate function to calculate the sums of the votes:</p>
<pre><code>calculateVotes();</code></pre>
<p>Why do we want to tally up the votes on a separate function? Because since the vote weight is based on the current balance of each account, we should recalculate the balances at every new block, event if we received no new event. To do this you can add this function that will execute automatically everytime a new block arrives:</p>
<pre><code>web3.eth.filter(&#x27;latest&#x27;).watch(function(e, result){
    if(!e) {
        calculateVotes();
    }
}); </code></pre>
<p>Finally, up to calculating the final tally. We have previously used eth.getBalance in synchronous mode, where the app would wait for the result of the previous action to proceed. Here, since we can be calling a lot of actions every block, we will use it in asynchronous mode: you call the node and execute the action whenever it replies without freezing the interface.</p>
<pre><code>var totalPro, totalAgainst, totalVotes;
function calculateVotes() {
    totalPro = 0;
    totalAgainst = 0;
    totalVotes = 0;
    Object.keys(voteMap).map(function(a) {
        // call the function asynchronously
        web3.eth.getBalance(a, function(e,r) {
            voteMap[a].balance = Number(web3.fromWei(r, &#x27;finney&#x27;));
            if (voteMap[a].support)
                totalPro += parseFloat(voteMap[a].balance);
            else
                totalAgainst += parseFloat(voteMap[a].balance);
            // do something cool with the results!            
        });            
    });
}</code></pre>
<p>As you can follow on the code, what the app is doing is looping in each of the voting addresses and getting their balance, and as soon as it returns, it will either add it to the pro or against camp and sum the totals.</p>
<h2 id="h-extra-goodies">Extra Goodies</h2>
<p>A few extra caveats: when there are no events, nothing will be returned and votes won't be calculated so you should add a timeout function on all functions that rely on events from the blockchain.</p>
<pre><code>setTimeout(function(){
        // If the app doesn&#x27;t respond after a timeout it probably has no votes
    }, 3000);</code></pre>
<p>Now you can feel free to use all your current webdeveloper foo to work whatever magic you want. Use the numbers to build a nice visualization in 3D or connect to your favorite social media to share the best questions.</p>
<p>Mist also tries to simplify your code by providing some basic navigation and UI methods. If you want your app to be header less and occupy the full height of the mist app, just add this to your &lt;head&gt; tag:</p>
<pre><code> &lt;meta name=&quot;ethereum-dapp-url-bar-style&quot; content=&quot;transparent&quot;&gt;</code></pre>
<p>And if you want to use Mist itself to navigate on your app, you can use the <a href="https://github.com/ethereum/mist/blob/develop/MISTAPI.md#mistmenu" target="_blank" rel="noopener">Mist.menu</a> object:</p>
<pre><code>for (item of propHistory) {
    if (item.length &gt; 0 &amp;&amp; item != &#x27;null&#x27;) {
        mist.menu.add( item ,{
        name: item,
        position: n++,
        selected: item == proposal
        }, function(){
            window.location.search = &#x27;?proposal=&#x27; + encodeURI(this.name);
        });
    }
 }</code></pre>
<p>One great thing about ethereum is that you can expand on this simple contract functionality without needing permission: you can add all extra functionality on separate contracts, keeping every single one of them simple and easier to debug. It also means other people can use the contracts you created to their own apps and give new functionality. Meanwhile, all the apps use the same data and backend.</p>
<p>You can play with this app live hosted on <a href="https://github.com/ethereum/stake-voice" target="_blank" rel="noopener">github pages</a>, but this isn't the canonical source of truth, just one of the many possible interfaces to it. The same app will also work as a local html file on your computer or on an <a href="https://ipfs.io/" target="_blank" rel="noopener">IPFS network</a> and in the future it will be downloaded directly via Mist using Swarm.</p>
<p><strong>Some ideas on how you can try:</strong></p>
<ul>
<li><p>Create a listing of currently available statements. Anyone can check them by seeing the sha3 of the proposal text, so you don't need permission.</p></li>
<li><p>Create threaded comments where users can reply to statements and then upvote or downvote them, sort of like a decentralized stake based Reddit</p></li>
<li><p>Instead of (or in addition to) using ether balance, you can use some other ethereum token, like The DAO or Digix Gold to weight your questions differently. Since all that the original contract stores is the sender, you can check all balances. Or maybe you can create your own currency that is based on reputation, karma or some other way.</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>Fork Vote by Ether commitment, version 2.</title>
<link>https://blog.vandesande.design/fork-vote-by-ether-commitment</link>
<guid isPermaLink="true">https://blog.vandesande.design/fork-vote-by-ether-commitment</guid>
<pubDate>Thu, 30 Jun 2016 21:24:05 +0000</pubDate>
<description>I&#x27;m making a second round at this vote by locking thing, basing on a lot of the feedback I received from the last time. If you missed, here&#x27;s the gist of it: You vote by…</description>
<content:encoded><![CDATA[<p>I'm making a second round at this vote by locking thing, basing on a lot of the feedback I received from the last time. If you missed, here's the gist of it:</p>
<ul>
<li><p>You vote by committing not to move your ether (or DAO tokens) for a given period of time IF a given fork is activated (or none is). The more ether you lock and the longer you are willing to hold it (last one is squared) the more weight your vote has.</p></li>
<li><p>The fork which has the largest amount of people willing to lock is also, by definition, the one in which the least amount of people want to jump ship because they don't want to be involved in the project anymore and should be the more valuable chain long term, meaning miners and exchanges have the incentive to adopt it.</p></li>
</ul>
<p>Since I last proposed this, I made some changes to it:</p>
<ul>
<li><p>Each vote is a separate contract, which can only be operated by it's owner, this reduces the risk of a bug that affects everyone.</p></li>
<li><p>You can also vote with DAO tokens (since this is the reason we are debating it) - or actually any other coin. How these are calculated is a different manner but for simplicity sake we can make 100 DAO : 1 ether or whatever was the price at the end of the crowdsale.</p></li>
<li><p>The maximum period is set at 3 months, which is a long time in this space. There is no minimum time to hold, but since the vote weight as (lock date - fork date)² anyone holding for less than a day will have their vote weight drastically reduced. The 3 month limit also limits the chances of there being another vote coming up before that.</p></li>
<li><p>You can support any number of fork proposals, with different lock dates.</p></li>
<li><p>The lock is only activated if there is a large support from miners. They can start the lock at any point and they also have the power to unlock everyone's coin if something comes up.</p></li>
</ul>
<p><a href="https://gist.github.com/alexvandesande/a1aae99267a79e82334b51f3e3448383" target="_blank" rel="noopener">Here's the source code</a></p>
<h4 id="h-why">Why?</h4>
<p>I think pure coin votes are fundamentally unjust, as very few people have much larger power. I don't feel we should be building a system in which the wealthiest minority or an angry majority have unlimited power over everyone else's property and wealth - history has shown that neither of those create a nice society.</p>
<p>If we are going to open a precedent to decide on either to fork or not and which fork to choose, then we should at least try to make some system that can be built right now and makes some sort of sense.</p>
<p>PS. I am <a href="https://github.com/alexvandesande/stake-voice/blob/master/README.md" target="_blank" rel="noopener">also working on a mist Ðapp that will be pure coin vote</a> but I don't feel it's really good for such an important decision.</p>]]></content:encoded>
</item>
<item>
<title>Update on the White Hat attack</title>
<link>https://blog.vandesande.design/update-on-the-white-hat-attack</link>
<guid isPermaLink="true">https://blog.vandesande.design/update-on-the-white-hat-attack</guid>
<pubDate>Tue, 21 Jun 2016 23:21:53 +0000</pubDate>
<description>I hope that I&#x27;ll be able to write down a more complete blog post at some point, because the full story would make a fascinating read, but right now here&#x27;s are the main points:…</description>
<content:encoded><![CDATA[<p>I hope that I'll be able to write down a more complete blog post at some point, because the full story would make a fascinating read, but right now here's are the main points:</p>
<p>Since Friday I've been in contact with a group of very smart people with the intent on replicating the attack to avoid any more of the ether being bled. Let's call this group, collectively "Robin Hood". Everyone in this group acted as an individual and did not represent or received the endorsements of their employers.</p>
<p>Robin had been able to replicate the attack on the testnet but couldn't be sure it would work until it was tested. First it would require the group to successfully stalk and infiltrate multiple split proposals that were open.</p>
<p>After some initial setbacks the group was able to infiltrate all open split proposals and trying to identify the best one to execute.</p>
<p>The best candidate proposal ended up being <a href="http://etherscan.io/token/thedao-proposal/78" target="_blank" rel="noopener">#78</a> because it didn't have many stalkers and we had identified the curator. We control 3 of the 5 accounts that split with us, if you have any information on who are the other accounts, please contact us so we are able protect the funds.</p>
<p>The group was diverse in their opinions on the fork(s). Some are very strongly anti-any-fork, some are very strong pro-fork and everything in between. Despite our differences, we identified an imminent attack we worked together to prevent it. For that reason everyone was also reticent on doing the White Hat Attack as it could be bad for the recovery efforts on the past hacks. Also, even those in the group that supported the soft fork could agree that we had no idea how long it would take to implement and deploy one.</p>
<p>Today about 19h central european time Robin detected that there was a new attack going on. It was draining slowly, a few ether per round, but it had already amassed a few thousand dollars. It seemed to be someone testing the waters and seeing if it could drain more.</p>
<p>Having our hands forced, the group decided to go forwards with the attack. I donated 100k dao tokens to the process with the full knowledge that it could be burned in the process. The more tokens the Robin contract had, the faster it could syphon the ether to protect it. The attacker picked up the pace and other attackers joined in. Some of the most efficient hackers were able to do up to 30 recursions with up to 200 ether moved in each, so it became clear that if we didn't do anything the DAO would be drained before anything could have been done.</p>
<p>We contacted some "whales" who were happy to donate to the effort and we were able to secure about 6M DAO tokens. We made it clear to everyone that we were not sure they would be able to recover these tokens, but these generous friends were happy to contribute to the effort. Thanks to this we were able to outpace the attacker, doing 4,000 and then at up to 40,000 ether per round, totaling up30 rounds of recursions.</p>
<p>All these attacks <a href="http://etherscan.io/txsinternal?zero=true&amp;a=0xbb9bc244d798123fde783fcc1c72d3bb8c189413&amp;valid" target="_blank" rel="noopener">can be studied on the blockchain</a>. This is the <a href="https://etherscan.io/address/0xb136707642a4ea12fb4bae820f03d2562ebff487" target="_blank" rel="noopener">child DAO of the Robin Hood attack</a>.</p>
<p>These three child daos were the ones in which a concurrent attack drained ether: <a href="http://etherscan.io/address/0x84ef4b2357079cd7a7c69fd7a37cd0609a679106" target="_blank" rel="noopener">84ef</a>, <a href="http://etherscan.io/address/0xf4c64518ea10f995918a454158c6b61407ea345c" target="_blank" rel="noopener">f4c6</a> and <a href="http://etherscan.io/address/0xaeeb8ff27288bdabc0fa5ebb731b6f409507516c" target="_blank" rel="noopener">aeeb</a>. We know nothing about them and if any of these are parallel white hat attacks then this is the right time to come forward. If you happen to be the curator of any of these child daos, or happened to have split with them into one of them, please come forward as well do come forward as well as you can help with this effort. There might be others.</p>
<h4 id="h-what-now">What now?</h4>
<p>7.2M ethers from the DAO are now held in a child DAO and we hold the private keys of the curator. It's important to identify the other 2 - but the risk has been reduced from 20 thousand attackers down to only 2. As soon as that DAO matures, we will try to move all the funds in a refund contract, that will be much simpler than the DAO was. Of course we still need to be very careful with that code and to analyze it for any possible exploit.</p>
<p>If you own the addresses <strong>0xb97ba16dfafa8fc5824c029f0653cc03a1796e99</strong> or <strong>0xe1e278e5e6bbe00b2a41d49b60853bf6791ab614</strong> please come forward.</p>
<p>There is a lot of unaccounted ether, on the main attacker dao and other copycat attacks. If you are the curator in any of them, you might be very useful. If you are the hacker, then all I can say is we are coming for you. There are many <a href="https://blog.slock.it/a-dao-counter-attack-613548408dd7" target="_blank" rel="noopener">plans in place to attack the child daos and either block the funds or recover them</a>.</p>
<h4 id="h-what-about-forks">What about forks?</h4>
<p>I've made my opinion clear many times about my opposition to a hard fork that breaks code or balance immutability, so I don't think this is the place to discuss it.</p>
<p>The child daos are also vulnerable to the same kinds of attacks so it's important to identify everyone else on the same child dao as the main whitehat. There are very valid points for a limited, voluntary, temporary software upgrade in which miners will be able to prevent other attacks like this from happening, and they may be used to prevent further attacks on these child DAOs. We now hope we bought enough time to stay calm and rational about these.</p>
<h4 id="h-what-about-what-s-left-in-the-dao">What about what's left in the DAO?</h4>
<p>There are still plans to retrieve the remainder of the DAO and I can't discuss it further. But most of the ether is now more secure and there are some interesting advantages on having some money left <a href="https://blog.slock.it/a-dao-counter-attack-613548408dd7#.sthdgppgx" target="_blank" rel="noopener">which will allow the DAO itself to buy tokens into the bad splits and attack them to recover or block the ether</a>.</p>]]></content:encoded>
</item>
<item>
<title>If you are coming from /r/bitcoin because of a spam message, then we are sorry. Please read this.</title>
<link>https://blog.vandesande.design/if-you-are-coming-from-rbitcoin</link>
<guid isPermaLink="true">https://blog.vandesande.design/if-you-are-coming-from-rbitcoin</guid>
<pubDate>Fri, 15 Jan 2016 22:55:04 +0000</pubDate>
<description>So it seems someone is creating some hours old account and sending private messages to a lot of people in the /r/bitcoin community linking to this subreddit. Whoever is doing this…</description>
<content:encoded><![CDATA[<p>So it seems someone is creating some hours old account and sending private messages to a lot of people in the /r/bitcoin community linking to this subreddit.</p>
<p><strong>Whoever is doing this is doing it on their own and is not related to our community at all</strong></p>
<p>Since we had problems with spam before, very young accounts can't even post on this subreddit. I have no idea who might be doing this but they have <a href="http://imgur.com/a/j4DiF" target="_blank" rel="noopener">admitted doing it</a> and are using a lot of hours old accounts.</p>
<ul>
<li><p>This forum is for discussions about the technology behind ethereum, it's impact on society and implementations. We ask Price speculation and all kinds of rollercoaster drama to be moved to /r/ethtrader so spamming because of price is not in the spirit of this community</p></li>
<li><p>The Ethereum foundation and most of the developers here own bitcoin and the ethereum technology owns bitcoin its own existence. The current Bitcoin debacle brings us no joy.</p></li>
<li><p>If you are looking for uncensored bitcoin information I personally recommend /r/btc and /r/bitcoin_uncensored and /r/cryptocurrency</p></li>
<li><p>Unfortunately while we can and we do ban sock puppets, we can't do anything about direct messages.</p></li>
<li><p>if you are genuinely interested in smart contracts and Ethereum as a technology, please take a look at our <a href="https://www.reddit.com/r/ethereum/comments/3vxvlx/starter_guide_almost_all_the_links_youll_need_to/" target="_blank" rel="noopener">quick start guide</a></p></li>
</ul>
<p>To end this discussion:</p>
<p><a href="https://youtu.be/WxOp5mBY9IY?t=7m24s" target="_blank" rel="noopener">“We have to let go of the notion that in order for Apple to win, Microsoft has to lose. We have to embrace the notion that in order for Apple to win, Apple has to do as a really good job. If we screw up and not do a good job, it’s not someone else’s fault, it’s our fault”</a></p>
<p><strong>UPDATE</strong></p>
<p><strong>I got a reply from Reddit admins about the issue:</strong></p>
<blockquote>
<p><strong>re: Spam in private messages</strong></p>
</blockquote>
<blockquote>
<p><strong>Hi there. We are aware of the issue and are dealing with the spammy accounts. The person or people behind it know what they are doing though so we are playing Whack-A-Mole with them at the moment.<br>
It seems to have calmed down of late though. Have you gotten any recent reports?</strong></p>
</blockquote>
<p><strong>UPDATE - Jan 27</strong></p>
<p>After a quiet period, I'm getting more reports of the spam account and have even received one myself (again). Also we are working to delete a lot of spammy comments and posts claiming they sell ether.</p>
<p>Finally, <a href="https://www.reddit.com/r/ethtrader/comments/42l8wj/how_i_was_scammed_of_425_btc_last_night/" target="_blank" rel="noopener">we've had reports of someone impersonating Ethereum developers on IRC</a> and attempting to scam people by selling ether. Please pay attention and do not fall for that!</p>]]></content:encoded>
</item>
<item>
<title>Starter guide: (almost) all the links you&#x27;ll need to start understanding ethereum.</title>
<link>https://blog.vandesande.design/starter-guide-to-ethereum</link>
<guid isPermaLink="true">https://blog.vandesande.design/starter-guide-to-ethereum</guid>
<pubDate>Tue, 08 Dec 2015 15:45:48 +0000</pubDate>
<description>Welcome to our community. Ethereum is a smart computing platform that uses the blockchain. This forum is for Ethereum tech discussions and related technologies. What is Ethereum?…</description>
<content:encoded><![CDATA[<p>Welcome to our community. Ethereum is a smart computing platform that uses the blockchain. This forum is for Ethereum tech discussions and related technologies.</p>
<h3 id="h-what-is-ethereum">What is Ethereum?</h3>
<ul>
<li><p><strong><a href="https://www.youtube.com/watch?v=0X33lgMbvdI" target="_blank" rel="noopener">BBC explains Ethereum</a></strong></p></li>
<li><p><strong><a href="https://www.youtube.com/watch?v=j23HnORQXvs" target="_blank" rel="noopener">Ethereum the world Computer</a></strong></p></li>
</ul>
<h3 id="h-where-do-i-start">Where do I start?</h3>
<ul>
<li><p><strong><a href="https://blog.vandesande.design/how-to-build-your-own-cryptocurrency">Download the wallet and build your own cryptocurrency</a></strong></p></li>
<li><p><strong><a href="https://blog.vandesande.design/how-to-build-a-better-democracy">Using the Wallet part 2: build a Democratic Autonomous Organisation</a></strong></p></li>
<li><p><strong><a href="https://blog.vandesande.design/how-to-build-your-own-transparent-bank">Using the Wallet part 3: build your own transparent Central Bank</a></strong></p></li>
<li><p><strong><a href="https://solidity.readthedocs.org" target="_blank" rel="noopener">Learn Solidity, the main language for smart contracts</a></strong></p></li>
<li><p><strong><a href="https://github.com/ethereum/wiki/wiki/Dapp-using-Meteor" target="_blank" rel="noopener">Build apps using Meteor and the ethereum tools</a></strong></p></li>
</ul>
<h3 id="h-devcon-videos">Devcon Videos</h3>
<ul>
<li><p><strong><a href="https://www.youtube.com/playlist?list=PLJqWcTqh_zKHQUFX4IaVjWjfT2tbS4NVk" target="_blank" rel="noopener">Devcon1 (2015) playlist</a></strong></p></li>
<li><p><strong><a href="https://www.youtube.com/watch?v=_BvvUlKDqp0&amp;list=PLJqWcTqh_zKEjpSej3ddtDOKPRGl_7MhS" target="_blank" rel="noopener">Devcon0 (2014) playlist</a></strong></p></li>
</ul>
<h3 id="h-technologies-and-apps">Technologies and Apps</h3>
<ul>
<li><p><strong>Do you have to use Meteor for building Dapps?</strong> Not at all! You can use any frontend GUI you prefer (even plain javascript), just connect to your node. We just use it internally for our Dapps and our lead Dapp Developer Fabian has built a <a href="http://atmospherejs.com/ethereum" target="_blank" rel="noopener">lot of useful tools for that platform</a>.</p></li>
<li><p><strong>How do I include web3.js on my apps?</strong> <a href="https://github.com/ethereum/wiki/wiki/JavaScript-API#getting-started" target="_blank" rel="noopener">Here's a primer</a></p></li>
<li><p><strong>How can I store big files on the blockchain?</strong> <a href="https://www.youtube.com/watch?v=VOC45AgZG5Q&amp;index=11&amp;list=PLJqWcTqh_zKHQUFX4IaVjWjfT2tbS4NVk" target="_blank" rel="noopener">Swarm</a> and <a href="https://www.youtube.com/watch?v=N1DuUARZV5o&amp;index=19&amp;list=PLJqWcTqh_zKHQUFX4IaVjWjfT2tbS4NVk" target="_blank" rel="noopener">IPFS</a></p></li>
<li><p><strong>Is ethereum based on bitcoin?</strong> No, we use bitcoins underlaying technology, <a href="https://www.youtube.com/watch?v=7Y3fWXA6d5k&amp;index=3&amp;list=PLJqWcTqh_zKHQUFX4IaVjWjfT2tbS4NVk" target="_blank" rel="noopener">the blockchain</a>, but Ethereum is a separate Blockchain. Ethereum has one of the first working implementations of <a href="https://www.youtube.com/watch?v=5WGgoVmfIik&amp;index=17&amp;list=PLJqWcTqh_zKHQUFX4IaVjWjfT2tbS4NVk" target="_blank" rel="noopener">bitcoin side chains</a> so you can easily and quickly exchange ether and BTC.</p></li>
<li><p><strong>What tools should I use to develop and build apps?</strong> <a href="https://www.youtube.com/watch?v=uNnshJQF4x8&amp;index=5&amp;list=PLJqWcTqh_zKHQUFX4IaVjWjfT2tbS4NVk" target="_blank" rel="noopener">Ether.camp</a> and <a href="https://www.youtube.com/watch?v=IABwhlibn0o&amp;index=6&amp;list=PLJqWcTqh_zKHQUFX4IaVjWjfT2tbS4NVk" target="_blank" rel="noopener">Mix</a></p></li>
<li><p><strong>What other cool apps are being built?</strong> see this <a href="http://dapps.ethercasts.com/" target="_blank" rel="noopener">awesome constantly updated list</a></p></li>
<li><p><strong>What's the future of Ethereum?</strong> We are planning a switch to <a href="https://www.youtube.com/watch?v=7Y3fWXA6d5k&amp;index=3&amp;list=PLJqWcTqh_zKHQUFX4IaVjWjfT2tbS4NVk" target="_blank" rel="noopener">Proof of Stake</a> in the near future. We are also investigating <a href="https://www.youtube.com/watch?v=7Y3fWXA6d5k&amp;index=3&amp;list=PLJqWcTqh_zKHQUFX4IaVjWjfT2tbS4NVk" target="_blank" rel="noopener">scalability solutions</a> and how to <a href="https://blog.ethereum.org/2014/12/26/secret-sharing-daos-crypto-2-0/" target="_blank" rel="noopener">store secrets on the blockchain</a></p></li>
<li><p><strong>No, I mean, how can I use ethereum to get information about the future?</strong> <a href="http://www.augur.net" target="_blank" rel="noopener">Augur</a> and <a href="http://groupgnosis.com" target="_blank" rel="noopener">Gnosis</a> are building prediction markets that try to gather the best information about uncertain future events</p></li>
<li><p><strong>No, but I want to discuss future price movements by scribbling graphs on trading charts!</strong> Then you should <a href="https://www.reddit.com/r/ethtrader" target="_blank" rel="noopener">go here</a> (not moderated by us).</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>Ethereum in practice part 3: how to build your own transparent bank on the blockchain</title>
<link>https://blog.vandesande.design/how-to-build-your-own-transparent-bank</link>
<guid isPermaLink="true">https://blog.vandesande.design/how-to-build-your-own-transparent-bank</guid>
<pubDate>Mon, 07 Dec 2015 10:00:16 +0000</pubDate>
<description>This is the third and final post on a series on how to use the Ethereum Wallet to create your own autonomous organisations. On the first post we detailed how to create a token,…</description>
<content:encoded><![CDATA[<p>This is the third and final post on a series on how to use the Ethereum Wallet to create your own autonomous organisations. On the <a href="https://blog.vandesande.design/how-to-build-your-own-cryptocurrency">first post we detailed how to create a token</a>, and on the <a href="https://blog.vandesande.design/how-to-build-a-better-democracy">second we shown how to generate a digital democracy controlled by these tokens</a>. Now we will do the full circle and create a token <em>controlled</em> by the Organisation!</p>
<p>We are going to modify the token contract to allow it to be minted by your DAO. So save the address of your current DAO in a note pad (pay attention to the icon) and <a href="http://chriseth.github.io/browser-solidity/?gist=1e8ebf35ff1fd48aca46" target="_blank" rel="noopener">grab this source code</a> and you know the drill: <strong>contracts &gt; deploy new contract &gt; solidity source code &gt; pick contract</strong></p>
<p>You can fill the parameters any way you want (yes, emojis are permitted on the string fields) but you'll notice one new field that didn't exist before: Central Minter. Here add the address of your newly created democracy contract.</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-transparent-bank/01-704.webp" width="2318" height="1766" alt="Ethereum Wallet 2015-12-01 at 7.09.11 PM">
</figure>
<p>Click Deploy and let's wait for the transaction to be picked up. After it has at least two confirmations, go to your democracy contract and you'll notice that now it owns a million of your new coins. Now if you go to the Contracts tab you'll see that there is a new <strong>DAO dollar (admin page)</strong> contract on your collection.</p>
<p>Select the "mintToken" function to your right and then put any address you own as the "target", and then the amount of new mints you want to create from thin air in their account. Press "<strong>execute</strong>" but <strong>don't press send</strong>! You'll notice that there is a warning saying that the transaction can't be executed. This happens because only the <strong>Minter</strong> (which is currently set to the DAO address) can call that function and you are calling it with your main account. But the calling code is the same, which is why you can simply copy it.</p>
<p>Instead, <strong>copy the contract execution code from the "data" field</strong> and put it aside on a notepad. Also get the address of your new "Mint" contract and save it somewhere.</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-transparent-bank/02-704.webp" width="2318" height="1766" alt="Ethereum Wallet Screen-Shot-2015-12-01-at-7.17.06-PM">
</figure>
<p>Now go back to the democracy contract and create a new proposal with these parameters:</p>
<ul>
<li><p>As the <strong>beneficiary</strong>, put the address of your new token</p></li>
<li><p>Leave <strong>etherAmount</strong> blank</p></li>
<li><p>On the <strong>jobDescription</strong> just write a small description that you are minting new coins</p></li>
<li><p>On the <strong>transactionBytecode</strong>, paste the bytecode you saved from the data field on the previous step</p></li>
</ul>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-transparent-bank/03-704.webp" width="2322" height="1800" alt="Ethereum Wallet Screen Shot 2015-12-01 at 7.22.48 PM">
</figure>
<p>In a few seconds you should be able to see that the details on the proposal. Unlike the other fields, transactionBytecode can be extremely lengthy and therefore expensive to store on the blockchain. So instead of archiving it, the person executing the call later will provide the bytecode.</p>
<p>But that of course creates a security hole: how can a proposal be voted without the actual code being there? And what prevents a user from executing a different code after the proposal has been voted on? That's why we keep the hash of the bytecode. Scroll a bit on the "read from contract" function list and you'll see a proposal checker function, where anyone can put all the function parameters and check if they match the one being voted on. This also guarantees that proposals don't get executed unless the hash of the bytecode matches exactly the one on the provided code.</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-transparent-bank/04-704.webp" width="1096" height="978" alt="It&#x27;s an older code, but it checks out">
</figure>
<p>It's an older code, but it checks out</p>
<p>Now everyone can vote on the proposal and after the voting period has passed, anyone with the correct bytecode can ask the votes to be tallied up and the contract to be executed. If the proposal has enough support then the newly minted coins should appear on Alice's account, as if it was a transfer from address Zero.</p>
<p>Why a transfer from address zero? Because doing the opposite, sending a coin to 0x00 is a way to effectively destroy it, but more importantly, because it says so on the contract code. You can change that as you prefer.</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-transparent-bank/05-704.webp" width="2322" height="1800" alt="Why a transfer from code zero? Because it says so on the code. You can change that as you will">
</figure>
<p>And now you have a central minter contract that exists solely on the blockchain, completelly fraud-proof as all their activities are logged transparently. The mint can also take coins from circulation by simply sending the coins it has to address Zero, or by freezing the funds on any account, but it's <strong>mathematically impossible</strong> for the Mint to do any of those actions or generate more coins without the support of enough shareholders of the mint.</p>
<p>Possible uses of this DAO:</p>
<ul>
<li><p>The creation of a universal stable crypto currency. By controlling the total amount of coins in circulation the Mint shareholders can attempt to create an asset whose value doesn't fluctuate too wildly.</p></li>
<li><p>Issuance of certificates of backed assets: the coins can represent an external currency or items that the Mint owns and can prove to it's shareholders and token holders. When the Mint acquires or sells more of these assets it can burn or generate more assets to guarantee that their digital inventory will always match their real counterpart</p></li>
<li><p>Digitally backed assets. The Mint can hold ether or other ethereum based digital currencies and use that to back the value of the currencies circulating</p></li>
</ul>
<h2 id="h-improvements-suggestions">Improvements Suggestions</h2>
<p>There are multiple ways that this structure can be yet improved, but we will leave it as an exercise and challenge to the reader:</p>
<p>Right now votes are made by shareholders based on freely tradable tokens. Can instead membership be based on invitation, each member getting a single vote (or maybe use <a href="http://ericposner.com/quadratic-voting/" target="_blank" rel="noopener">quadratic voting</a> or <a href="https://en.wikipedia.org/wiki/Delegative_democracy" target="_blank" rel="noopener">liquid democracy</a>)?</p>
<p>What about other voting mechanisms? Maybe the vote instead of being a boolean could be a more flexible arrangement: you could vote to postpone the decision, or you can make a vote that is neutral but still count to the quorum</p>
<p>Currently all proposals have the same debating period. Can you make that proportional to the value transfer being proposed? How would you calculate that to tokens?</p>
<p>Can you create a better token that can be automatically created by sending ether into it, which can then be retrieved by burning the token, at a fluctuating market price?</p>
<p>What else can the DAO own or do, besides tokens?</p>]]></content:encoded>
</item>
<item>
<title>Ethereum in practice part 2: how to build a better democracy in under a 100 lines of code</title>
<link>https://blog.vandesande.design/how-to-build-a-better-democracy</link>
<guid isPermaLink="true">https://blog.vandesande.design/how-to-build-a-better-democracy</guid>
<pubDate>Fri, 04 Dec 2015 10:00:31 +0000</pubDate>
<description>This is a second post on a series on how to use the current Ethereum tools to build smart contracts without needing programming experience. Download the latest version of the…</description>
<content:encoded><![CDATA[<p>This is a second post on a series on how to use the current Ethereum tools to build smart contracts without needing programming experience. <a href="https://github.com/ethereum/mist/releases/tag/0.3.7" target="_blank" rel="noopener">Download the latest version of the Ethereum Wallet</a>, <a href="https://blog.vandesande.design/how-to-build-your-own-cryptocurrency">read the first part</a> and let's have fun!</p>
<p><a href="https://blog.vandesande.design/how-to-build-your-own-cryptocurrency">Creating a token is fun</a>, but what is the value of a token that doesn't do anything new? We are now going to create a new contract that uses the tokens we just created. The contract will be a Democratic organization that lives on the blockchain and that anyone holding a share token will be able to vote on proposals.</p>
<p>So let's go back to "<strong>Contracts</strong>" and then "<strong>Deploy Contract</strong>" and paste the <a href="http://chriseth.github.io/browser-solidity/?gist=192371538cf5e43e6dab" target="_blank" rel="noopener">DAO source code</a> on the <strong>"Solidity Source"</strong> field. Choose the contract "Democracy" on the Picker and then select these parameters:</p>
<ul>
<li><p>On the <strong>amount</strong> field you can add any ether amount you want your DAO to start with. Since you can send ether to it at any time in the future, if this is the first time you've been doing this then keep the amount at 0 and send the money later.</p></li>
<li><p>On the <strong>sharesAddress</strong> field, paste the address of the token contract you just created. Pay attention to the icon and color of the little circle that appears by the side of the address. If it doesn’t match exactly the one for the contract you created previously, then there's an error.</p></li>
<li><p>On <strong>minimumSharesForVoting</strong> pick what is the minimum quorum of shareholders that need to vote on an issue before it passes. Here you must put the integer number of the minimum token possible, so if you created a token with 2 decimal places, putting 500 here will mean that in order for a proposal to be executed then the number of votes must be more than 5% of the total shares of the company.</p></li>
<li><p><strong>minutesForDebating:</strong> this is the minimum time a proposal must be discussed and voted on before the results can be tallied up. Put a small number like 10 minutes if you want just to create something for testing, but put something like 20,000 if you want to store large amounts of ether, so all proposals must stay there for at least two weeks.</p></li>
</ul>
<p>Your contract should be looking something like this:</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-a-better-democracy/01-704.webp" width="2314" height="1770" alt="Ethereum Wallet Screenshot 2015-12-03 at 3.50.36 PM 16">
</figure>
<p>After a few seconds you'll be redirected to a the dashboard where you'll see your new contract being created:</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-a-better-democracy/02-704.webp" width="1896" height="204" alt="Ethereum Wallet Screenshot 2015-12-03 at 3.50.36 PM 13">
</figure>
<p>You can also see the link to the new contract on the "Contracts" tab. If it's not there (for example: if you are adding a contract that you didn't create) then you'll have to add it manually. To add that you'll need the contract's address and it's JSON interface, a string of text that explains to the wallet how to interact with the code. You can pick any name you want and press OK.</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-a-better-democracy/03-704.webp" width="2322" height="1764" alt="Ethereum Wallet Screen Shot 2015-12-03 at 9.57.34 AM">
</figure>
<p>Click your new contract box and you'll see a contract page. If you haven't already deposited some ether on that contract, click on deposit and put some small amount of ether so you can test how this particular democracy works. If the contract already has some funds, click the "show contract info" button.</p>
<p>On the <strong>"read from contract"</strong> you can see all the functions you can execute for free on the contract, as they are just reading information from the blockchain. Here you can see, for instance, that the "sharesTokenAddress" is indeed the correct address or that there are currently 0 proposals on the contract. Let's change that.</p>
<p>On the <strong>"Write to contract"</strong> you have a list of all the functions that will attempt to do some computation that saves data to the blockchain, and therefore will cost ether. Select "newProposal" and it will show all the options options for that function.</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-a-better-democracy/04-704.webp" width="2322" height="1838" alt="Ethereum Wallet Screen Shot 2015-12-01 at 6.10.32 PM">
</figure>
<p>For "beneficiary" add the address of someone you want to send ether to, then put how many ethers you want on the "etherAmount" (must be an integer) and finally some text describing the reason you want to do this. Leave transactionByteCode blank for now. Click execute and type your password. After a few seconds the numProposals will increase to 1 and the first proposal, number 0, will appear on the left column. As you add more proposals, you can see any of them by simply putting the proposal number on the "proposals" field and you can read all about it.</p>
<p>Voting on a proposal is also very simple. Choose "vote" on the function picker. Type the proposal Number on the first box and check the "Yes" box if you agree with it (or leave it blank to vote against it). Click "<strong>execute</strong>" to send your vote.</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-a-better-democracy/05-704.webp" width="2322" height="1838" alt="Screen Shot 2015-12-01 at 6.18.22 PM">
</figure>
<p>When the minimum voting time has passed, you can select <strong>"executeProposal"</strong>. If the proposal was simply sending ether, then you can also leave the "<strong>transactionBytecode</strong>" field blank. After pressing "execute" but before typing your password, pay attention to the screen that appears. If there is a warning on the "estimated fee consumption" field, then this means that for some reason the function called will not execute and will be abruptly terminated. It can mean many things, but in the context of this contract this warning will show up whenever you try to execute a contract before its deadline has passed, or if the user is trying to send a different bytecode data than the original proposal had. For security reasons if any of these things happens, the contract execution is abruptly terminated and the user that attempted the illegal transaction will lose the all the ether he sent to pay transaction fees.</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-a-better-democracy/06-704.webp" width="2322" height="1838" alt="Ethereum Wallet Screen Shot 2015-12-01 at 6.21.30 PM">
</figure>
<p>If everything went well you should be able to see the results of the vote in a few seconds. The "<strong>openToVote</strong>" parameter on the first box will turn to false while the <strong>proposalPassed</strong> will reflect if the proposal has been accepted or not. You should also be able to see that the Ether balance of the contract will go down and the equivalent ether will be sent to the beneficiary of the ether you wanted to send.</p>
<p>Now take a moment to let that in: you just created an organization that only exists on the blockchain, that obeys votes based on completely digital tokens, but yet it can move real value around and create a very real impact on the world. Also notice that the organization is not under your control anymore: it will execute only the exact code you used to create it, forever. You can't bribe it, you can't earmark it and the same rules apply either you are moving 0.01 or 1,000,000 ethers.</p>
<p>Can it get any better than this? Actually, it can. <a href="https://blog.vandesande.design/how-to-build-your-own-transparent-bank">On our next post we will explore how you can use "transactionBytecode" to allow the DAO to execute any kind of ethereum transaction</a>, even owning or creating other contracts. We'll also modify the token code to allow the DAO to control the amount of a token that exists on circulation and how to send it forward.</p>]]></content:encoded>
</item>
<item>
<title>Ethereum in practice part 1: how to build your own cryptocurrency without touching a line of code</title>
<link>https://blog.vandesande.design/how-to-build-your-own-cryptocurrency</link>
<guid isPermaLink="true">https://blog.vandesande.design/how-to-build-your-own-cryptocurrency</guid>
<pubDate>Thu, 03 Dec 2015 22:04:45 +0000</pubDate>
<description>A lot of things have happened in the past few weeks in the Ethereum ecosystem, so many that it might be hard for a casual observer to understand where we are and what&#x27;s available…</description>
<content:encoded><![CDATA[<p>A lot of things have happened in the past few weeks in the Ethereum ecosystem, so many that it might be hard for a casual observer to understand where we are and what's available out there. So I would like to use my first post here to give you an overview of the tools we've built and how you can use them to build interesting things <strong>right now</strong>.</p>
<p>But first a short introduction: I am Alex Van de Sande and I am the lead designer on the Ethereum foundation. At DevconOne I gave a talk entitled <a href="https://youtu.be/BUARih8_f68?t=23m14s" target="_blank" rel="noopener">"The Blockchain Versus The Average User"</a> where I went into more details on the challenges to bringing the Ethereum ecosystem to the aforementioned "Average User", one of which is the difficulty of defining what that term even means. When personal computers were introduced they were advertised as being <a href="https://www.flickr.com/photos/pinodita/6742670081" target="_blank" rel="noopener">"to the rest of us"</a>, but the "rest of us" public they targeted was actually a <a href="https://www.flickr.com/photos/pinodita/6747951005" target="_blank" rel="noopener">very narrow audience</a> interested in word processing, spreadsheets and desktop publishing. Today, those would be considered among the top tier geeks, just below the kinds of people that still fight over the <a href="https://twitter.com/iamdevloper/status/435555976687923200?lang=en" target="_blank" rel="noopener">merits of Vim versus emacs</a>. I truly believe that one day your Candy-crush-playing grandma/grandpa will use the blockchain, just like today he/she uses databases and https connections without realising it (maybe when they convert blue diamonds won on one game into cows in another game by some other publisher). But right now, what I'm working on is bringing it to that next tier of users, the ones that can download an office suite and figure out how to use a spreadsheet but don't feel comfortable around command lines.</p>
<p>So if you consider yourself in that group, then welcome we'll guide you to some basic activities you can do in a few minutes in ethereum: <strong>Build your own cryptocurrency, building your own democracy and creating a central bank in the blockchain</strong>. We skipped the "Hello World" tutorial this time, but you'll do fine.</p>
<h3 id="h-download-the-ethereum-wallet">Download the Ethereum Wallet</h3>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-cryptocurrency/01-704.webp" width="1986" height="1426" alt="Ethereum Wallet Screenshot">
</figure>
<p><strong><a href="https://github.com/ethereum/mist/releases/latest" target="_blank" rel="noopener">Download the latest version of the Wallet</a></strong></p>
<p>But enough talking, let's get our hands dirty with Ethereum! I might be biased but I'd say the best place to start is the Ethereum Wallet, a multi platform app that will enable you to send ether and ethereum based currencies, create and execute contracts.</p>
<p>The first thing you have to do on it is create an ethereum account. All you need for it is a strong password and you'll get it. In order to do anything you'll need to put in some ether: but don't worry you don't need much. Most of the contracts here will cost less than a tenth of a US penny. If you are just testing it, we recommend you switch to the testnet: go in the menu <strong>develop &gt; network &gt; testnet (morden)</strong> and then on <strong>develop &gt; start mining</strong>. After a few minutes you'll probably have enough ether to test anything, so you can turn it off and save your computer resources.</p>
<p>The wallet only allows basic mining on the testnet, but if you want to try your luck on the real net, then you need a more advanced tool. This used to be a cumbersome process but now there are better easier tools: and we have new tools that will make that process much easier.</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-cryptocurrency/02-704.webp" width="962" height="1032" alt="Aleah One Miner Screenshot">
</figure>
<p><a href="https://github.com/ethereum/webthree-umbrella/releases" target="_blank" rel="noopener">The AlethOne miner</a> is a straightforward tool with two buttons: press one to start mining in your GPU and press the other to deposit your rewards in a wallet. <a href="https://github.com/ethereum/webthree-umbrella/releases" target="_blank" rel="noopener">Download it from the Turbo Suite</a>, a set of power tools created by the C++ team to develop ethereum applications.</p>
<p>If you want to create smart contracts on the live network and can't mine you'll need some ethers. You can have a friend sent to you or you can exchange it for bitcoins on a cryptoexchange. If you are a bitcoin fan we suggest you keep on eye on the btcrelay project, <a href="http://btcrelay.org" target="_blank" rel="noopener">a fraud-proof sidechain</a> that will launch soon and allow quick exchanges between ether and bitcoin without a third party.</p>
<h3 id="h-create-a-token">Create a token</h3>
<p>The first contract we are going to create is a <em>token</em>. Tokens in the ethereum ecosystem can represent any fungible tradable good: coins, loyalty points, gold certificates, IOUs, in game items, etc. Since all tokens implement some basic features in a standard way, this also means that your token will be instantly compatible with the ethereum wallet and any other client or contract that uses the same standards.</p>
<p>Go to the contracts page and then click "deploy new contract".</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-cryptocurrency/03-704.webp" width="2314" height="1770" alt="Ethereum Wallet Screenshot 2015-12-03 at 3.50.36 PM 7">
</figure>
<p>Now get the <a href="http://chriseth.github.io/browser-solidity/?gist=21935dc37c5bfbe92e5a" target="_blank" rel="noopener">token code</a> from here and paste it into the "Solidity source field". If the code compiles without any error, you should see a "pick a contract" drop down on the left. Get it and select the "MyToken" contract. On the right column you'll see all the parameters you need to personalize your own token. You can tweak them as you please, but for the purpose of this tutorial we recommend you to pick these parameters: 10,000 as the supply, any name you want, "%" for a symbol and 2 decimal places. Your app should be looking like this:</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-cryptocurrency/04-704.webp" width="2314" height="1770" alt="Ethereum Wallet Screenshot 2015-12-03 at 3.50.36 PM 10">
</figure>
<p>Scroll to the end of the page and you'll see an estimate of the computation cost of that contract and you can select a fee on how much ether you are willing to pay for it. <strong>Any excess ether you don't spend will be returned to you</strong> so you can leave the default settings if you wish. Press "deploy", type your account password and wait a few seconds for your transaction to be picked up.</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-cryptocurrency/05-704.webp" width="2314" height="1770" alt="Ethereum Wallet Screenshot 2015-12-03 at 3.50.36 PM 11">
</figure>
<p>You'll be redirected to the front page where you can see your transaction waiting for confirmations. Click the account named "Etherbase" (your main account) and after no more than a minute you should see that your account will show that you have 100% of the shares you just created. To send some to a few friends: select "send", and then choose which currency you want to send (ether or your newly created share), paste your friend's address on the "to" field and press "send".</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-cryptocurrency/06-704.webp" width="2334" height="1764" alt="Screen Shot 2015-12-03 at 9.48.15 AM">
</figure>
<p>If you send it to a friend, they will not see anything in their wallet yet. This is because the wallet only tracks tokens it knows about, and you have to add these manually. Now go to the "Contracts" tab and you should see a link for your newly created contract. Click on it to go to it's page. Since this is a very simple contract page there isn't much to do here, just click "copy address" and paste the contract address on a text editor, you'll need it shortly.</p>
<p>To add a token to watch, go to the contracts page and then click "Watch Token". A popup will appear and you only need to paste the contract address. The token name, symbol and decimal number should be automatically filled but if it's not you can put anything you want (it will only affect how it displays on your wallet). Once you do this, you'll automatically be shown any balance you have of that token and you'll be able to send it to anyone else.</p>
<figure>
<img src="https://blog.vandesande.design/media/how-to-build-your-own-cryptocurrency/07-704.webp" width="2334" height="1764" alt="Ethereum Wallet Beta 4 Screen Shot 2015-12-03 at 9.44.42 AM">
</figure>
<p>And now you have your own crypto token! Tokens by themselves can be useful as <a href="https://en.wikipedia.org/wiki/Local_currency" target="_blank" rel="noopener">value exchange on local communities</a>, ways to <a href="https://en.wikipedia.org/wiki/Time-based_currency" target="_blank" rel="noopener">keep track of worked hours</a> or other loyalty programs. But can we make a currency have an intrinsic value by making it useful? Tomorrow we'll show how tokens can be used as voting system in order to make collective decisions on the use of funds by <a href="https://blog.vandesande.design/how-to-build-a-better-democracy">creating a <strong>Democratic Autonomous Organization</strong></a>.</p>]]></content:encoded>
</item>
<item>
<title>ERC: Default Ethereum Name Registrar</title>
<link>https://blog.vandesande.design/default-mist-name-registrar</link>
<guid isPermaLink="true">https://blog.vandesande.design/default-mist-name-registrar</guid>
<pubDate>Fri, 20 Nov 2015 20:02:58 +0000</pubDate>
<description>Abstract An important aspect of making ethereum Ðapps easily accessible is a name registry that will connect a human readable name to a hash for usage in IPFS/SWARM or any DHT…</description>
<content:encoded><![CDATA[<h3 id="h-abstract">Abstract</h3>
<p>An important aspect of making ethereum Ðapps easily accessible is a name registry that will connect a human readable name to a hash for usage in IPFS/SWARM or any DHT system.</p>
<p>The name registrar is not meant to be the one and only name registrar on ethereum but rather a default registrar to be used by Mist to resolve names. It will be an user configurable setting.</p>
<h3 id="h-motivation">Motivation</h3>
<p>The goal of this contract is:</p>
<ul>
<li><p>To find the optimal price for names: create a strategy where the nash equilibrium for each player is to simply put down the maximum amount they are willing to pay for a name, and not create incentives for names to be overpaid</p></li>
<li><p>To allow optimal usage of names: allow good names to circulate among those who want have better usages for it, while keeping smaller brands reasonably protected</p></li>
<li><p>To make name markets as transparent as possible. Currently domain squatting is a very sneaky business that utilizes information asymmetry to sell names. This proposal, while still allows names to be sold or transferred outside this market, will create a last resort market where name prices are transparent and optimal</p></li>
<li><p>Registering names should have an optimal cost, cheap enough to be inclusive, but not too much to allow excessive name squatting. This intends to describe the design and parts of the proposed system.</p></li>
<li><p>Privacy by obscurity: give unpopular and niche domain holders a reasonable privacy expectation while making the most popular names evaluations transparent. Creating a spider that crawls all name markets is exponentially expensive.</p></li>
</ul>
<h3 id="h-specification">Specification</h3>
<p>The system will consist of 4 main parts:</p>
<h4 id="h-hash-registrar">Hash Registrar</h4>
<p>The registrar itself is the contract that stores the basic data. If more data is needed it can be stored in other contracts, using this one as the reference. It doesn't use the name directly to reference the registry but its data. Keeping the names as hashes instead of plaintext has two advantages: first it allows <em>privacy by obscurity</em>, meaning that if the name isn't known enough to be in a rainbow table then you can't really know who the information is about. Second, it allows a more general purpose and future proofing use of the contract, as it can be used to claim ownership on anything that can be translated into hash, like devices, files, texts and other uses we haven't thought about now.</p>
<pre><code>function getAuction() constant returns (address auction)
function getElection() constant returns (address election)
function getCollector() constant returns (address collector)
function setCollector(address _newCollector) returns (bool success)</code></pre>
<p>The registry is set at startup with the address of three other contracts, the <strong>Collector contract</strong>, <strong>Election Contract</strong> and <strong>Auction contract</strong>, that have special rights. Only the <strong>Election contract</strong> can change the collector. The others are unchangeable.</p>
<pre><code>function getRegistry(bytes32 _hash) constant returns (address _owner, uint _renewalDate,  uint feesPaid, string _redirectAddress)</code></pre>
<p>It uses a hash as an index and attributes these informations to it: an address that owns it; the expiration date of the registration; the amount of ether that the owner effectively paid to the registrar address as the process of renewal; a string which is the http, buzz or ipfs address of the app.</p>
<p>Other contracts might extend this functionality by simply creating a registry of extra information about a hash and then only allowing edits to it by checking this master contract for the owner address. For example, the wallet app might want to make a registry where a name is associated to an address (different from the owner), or if you want to have a secondary content hash for http links then a secondary contract could be deployed, only allowing edit access to the addresses on marked as <code>owner</code> on this contract.</p>
<pre><code>function editRegistry(bytes32 _hash)</code></pre>
<p>All the information on that hash can be edited by the owner of the address up to 48h before the renewal Date, and at that time the information is locked. After the expiration date, only the <strong>Auction Contract</strong> can change the owner of the hash.</p>
<pre><code>function newRegistry(bytes32 _hash, string _redirectAddress, address _owner)</code></pre>
<p>Only the <strong>Auction Contract</strong> can add new registries.</p>
<pre><code>function ()</code></pre>
<p>All funds given to the Registrar contract are redirected to the <strong>Collector Contract</strong>. These will not count towards the <code>feesPaid</code>.</p>
<pre><code>function invalidateEntry(string _name)</code></pre>
<p>The disadvantage of hashes as identifiers is that it literally allows anything, therefore making it impossible to create restrictions such as <strong>"names shorter than 6 letters can only be registered after 2017"</strong>. This could be avoided by creating validity rules that need to be reported and if true will delete the entry, but this would require all those rules to be set at the first setup. Another way to do it is to grant the <strong>Collector Contract</strong> power to invalidate entries, but this would open the possibility of an evil collector contract censoring entries. Another solution is simply to allow any entries, but simply enforce those rules on the client: mist could be programmed to look at other contracts for special names</p>
<p>I'm open to more elegant solutions.</p>
<h4 id="h-auction-contract">Auction Contract</h4>
<p>The auction contract is set at startup of the Hash registrar, but since they are separated it is possible to clone a copy of the registrar contract and just change these variables.</p>
<p>The purpose of the auction contract is to receive bids for hashes and select a winner.</p>
<pre><code>function startBid(bytes32 _newHash)</code></pre>
<p>If <code>_newHash</code> is not registered to anyone this will create a new register, owned by <code>0x000</code> with a renewal date exactly 7 days after this function was executed. This allows a short time in which a Vickrey Auction can decide who is the first owner of the name.</p>
<p>The cost of start a bid can be defined by the <strong>collectorContract</strong>, but otherwise is kept at free.</p>
<pre><code>function putSealedBid(bytes32 _sealedBid)</code></pre>
<p>A sealed bid is just a message with the hash of the bid and some ether. The amount of ether sent on this step is also recorded, as long as the time in which the bid was put. The amount of ether can and should be higher than the amount bid, to protect the privacy of the bid. For the same reason, the bidder doesn't need to be the future owner.</p>
<p>The <strong>collectorContract</strong>, might define a deposit value that needs to be added on top of the put, but if it doesn't implement it then it's free.</p>
<pre><code>function revealBid(bytes32 _sealedBid, bytes32 _biddedHash, address _owner, uint _bidPrice, uint _duration, string _salt)</code></pre>
<p><code>_sealedBid</code> is the hash saved on _sealedBid<br>
<code>_biddedHash</code> is the hash that the bidder wants to own<br>
<code>_owner</code> is the future owner of the hash, if the bid is successful. The bidder and the owner need not to be the same person<br>
<code>_bidPrice</code> is the maximum price the bidder is willing to pay for it<br>
<code>_duration</code> is the length of time (in days) the owner wants to renew it for. Must be longer than 180 and smaller than 3660. If this is the first time this hash is being bidder on then the _duration cannot be longer than 366, if it has been registered before then the _duration cannot be longer than twice the length of time that has passed since it was first registered, as to avoid very long registrations during the first years.</p>
<p><code>_salt</code> is just a random string to prevent deanonimization of sealed bids by brute force</p>
<p>This action can be done by anyone. If the _sealedBid doesn't match the hash of all other parameters put together then the bid is not revealed, otherwise it's saved on the revealed bids. <strong>Collection contract</strong>.</p>
<p>Once a bid is revealed, the proposed setup is a closed bid Vickrey auction, where the highest bidder becomes the owner but only pays the second highest bid:</p>
<ul>
<li><p>If the new prospective owner is not the current owner then his <code>bidPrice</code> will be the parameter on <code>_bidPrice</code>. If the owner is bidding to renew the name then his bid will be calculated as <code>_bidPrice</code> * <code>K</code>/ <code>_duration</code>. In practice this means that the owner is appraising his own name at that price and is putting down a <em>Fee</em> that is a percentage of the total appraised value of his name, proportional to the renewal period. That percentage is the same for all names and is decided by the <em>Collector Contract</em></p></li>
<li><p>If the expiration date is on the past, then the bid is deleted and the funds sent to it are sent to the <strong>Collector Contract</strong></p></li>
<li><p>Else if the duration is outside the bounds of minimum and maximum durations OR if the ether amount sent during the sealed bid isn't enough to cover his price and fees OR if the sealed bid has been sent less than 48h before the renewal period then the bid is considered <strong>invalid</strong>, it is deleted and the ether amount sent back to the bidder.</p></li>
<li><p>If the <code>bidPrice</code> it's the highest yet then it should be saved as such and the price to be paid should be set at the asking price of the previous highest bid (or 0 if there are none). The second highest bid should be deleted and its ether sent back to its bidder. If the bid new owner is not the current owner, K is 1, otherwise (if it's the owner renewing the ownership) then K is a factor set by the <strong>Collector Contract</strong>.</p></li>
<li><p>Else if the bid is lower than the highest bid but bigger than the price to be paid of the highest bid, then the price to be paid is set at the this bid asking price. This bid is deleted and its ether sent back to its bidder.</p></li>
</ul>
<p><em>Should a bid be considered invalid if it's revealed earlier than 48h of the renewal date?</em></p>
<p>Bids revealed too early might affect the game strategy and will influence the price to be paid. In the other hand a deleted bid might mean that someone will lose his property without the correct asking price. Since losing a domain name is harsher than someone overpaying for it, then I suggest that there should not be an obligatory reveal period, only a suggested 24h window.</p>
<p>The collector contract can set a function that will determine a fee to be paid by the bidders, but otherwise it will default to free.</p>
<pre><code>function revealBid(bytes32 _sealedBid, bytes32 _biddedHash, address _owner, uint _bidPrice, uint _duration, string _salt)</code></pre>
<p>A bid can only be removed by the original owner and only earlier than 48 hours before the renewal date.</p>
<pre><code>function finalizeAuction(bytes32 _biddedHash)</code></pre>
<p>This action can be only executed after the renewalDate has passed. Anyone can call it, so it could be scheduled with the alarm clock.</p>
<p>If owner has not changed, then an amount of ether equivalent to <code>_bidPrice</code>/ <code>_duration</code> * <code>K</code> will be sent to the <strong>Collectors Contract</strong> and the remaining amount will be sent back to the original bidder. The amount paid will be registered at <code>feesPaid</code>. The renewal date will be set at the last renewal data + <code>_duration</code>.</p>
<p>If the owner has changed then amount of <code>priceToBePaid</code> will be sent to the previous owner, and a fee calculated by <code>priceToBePaid</code> * <code>K</code> / <code>_duration</code> will be sent to the collectors contract and registered as <code>feesPaid</code>. Otherwise a user could keep a name indefinitely by simply selling it to itself. The renewal date will be set at the last renewal data + <code>_duration</code>.</p>
<pre><code>function cleanOldBids()</code></pre>
<p>Deletes any unsealed bids that are older than the maximum duration time that any name can accept and forwards the ether to the Collector.</p>
<h4 id="h-collector-contract">Collector contract</h4>
<p>The Collector Address is an address that receives all the funds collected in auctions and has a special right to change the <code>K</code> factor. The purpose of the name registry auction is not to make a profit but to allow the optimal distribution of names, to prevent name squatting while still allowing cheap and easy access to registering a name. The cost of the renewal is given by the market price of the total price, divided by K. If K is too low it might allow name squatting, but if it's too high it can make keeping names too expensive.</p>
<p>The collector contract can also define fees related to bidding, in order to fight spam. The collector contract can determine which rules are broken in order to consider a registry invalid (short names could only be registered after a few years, etc)</p>
<p>How exactly the Collector contract changes the K factor or spends its funds is not defined here, as the contract itself is a changeable parameter elected by the <strong>Election Contract</strong>.</p>
<p>My proposal is that the first Collector contract be just a <em>"Boomerang contract"</em>, a contract that simply keeps all ether sent to it and then send them back after 1 year. This will allow the funds to be safely kept for a period while the community build tools and DAOs for the collector contract for the first election. Since they can always elect the 0x address, then if the community wants to do so they can still vote to burn all the ether collected during the first year.</p>
<h4 id="h-election-contract">Election Contract</h4>
<p>The election contract has the special right to change the collector address. The exact workings of the election, as well as their frequency is not yet defined here and is open to discussions.</p>
<p>One important issue is that it's impossible to tell which are the entities behind each name, if they coordinate with each other or if they are owned by other entities, therefore the concept of anti-sybil (and to a point anti-coercion) mechanisms does not really apply here. Also, the job of the Collector Contract is basically to define the use of it's own funds and how to raise or lower the "tax rate" on new names, therefore it's only natural that the weights of the votes should be based barely on the amount of funds each name has sent to the contract during their last renewing period.</p>
<p>A user that bought four names four 1 ether each and a user that bought a single name for 4 ethers have contributed the same amount to the collector contract and therefore should have the same right to decide how the funds are spent. If the system favours the former (like quadratic voting does) will stimulate users to buy tons of small names they are not going to use, a system that favours the latter will stimulate users to double bid on their own names to pay higher taxes and therefore get more voting power. Both will would be contrary to the whole purpose of the name registrar.</p>
<p>The suggested voting mechanism is a mix of <a href="https://en.wikipedia.org/wiki/Approval_voting" target="_blank" rel="noopener">approved voting</a> with Liquid democracy, as follows:</p>
<pre><code>function setDelegate(string32 _ownedHash, address _delegate)</code></pre>
<p>Instead of voting directly, a voter instead can decide to appoint a delegate. The contract verifies that the <code>msg.sender</code> is the owner of the <code>_ownedHash</code> and then moves his voter weight ('feesPaid') to the new <code>_delegate</code></p>
<pre><code>function unsetDelegate(string32 _ownedHash)</code></pre>
<p>The voter removes his vote to his delegate and states that wants to vote himself.</p>
<pre><code>function setVote(address[] approvedCandidates)</code></pre>
<p>The voter selects an array of contracts he approves for the job of <strong>Collector Contract</strong>. These remain static and can be changed anytime. If you</p>
<pre><code>function tallyVotes()</code></pre>
<p>Instead of a fixed election cycle, votes can be counted at anytime if someone feels voter's preference have changed enough. The cost of counting the votes is paid by the function caller. First the function will calculate the voter's weight by the sum of his 'feesPaid' and the weight of all voters that delegate their vote into him. Votes can be delegated forward a finite number of time (3, 5 or 7, depending on gas costs).</p>
<p>Then all addresses the voter approved will be receive an equal number of votes as his weight. The Address with a higher number of approvals will be selected as the new <strong>Collector Contract</strong>, effectively immediately.</p>
<h5 id="h-acknowledgements">Acknowledgements</h5>
<p>People who contributed to this proposal, in no particular order: <a href="https://github.com/nagydani" target="_blank" rel="noopener">@nagydani</a> &amp; <a href="https://github.com/zelig" target="_blank" rel="noopener">@zelig</a> (with their research for the swarm name registrar), <a href="https://github.com/vbuterin" target="_blank" rel="noopener">@vbuterin</a> (for insights in elections), <a href="https://github.com/gavofyork" target="_blank" rel="noopener">@gavofyork</a> (who designed the <a href="https://github.com/alexvandesande/dapp-bin/tree/master/registrar" target="_blank" rel="noopener">first name registrar</a> ), <a href="https://github.com/yann300" target="_blank" rel="noopener">@yann300</a> and <a href="https://github.com/arkpar" target="_blank" rel="noopener">@arkpar</a> (who implemented the current name registrar), <a href="https://github.com/pipermerriam" target="_blank" rel="noopener">@pipermerriam</a> &amp; <a href="https://github.com/nmushegian" target="_blank" rel="noopener">@nmushegian</a> (for their great insights at DevCon1) and @ryepdx (that is implementing the maker registry) and <a href="https://github.com/danielnovy" target="_blank" rel="noopener">@danielnovy</a> (auctions Ðapp at consensys)</p>]]></content:encoded>
</item>
<item>
<title>The Nightmare Scenario</title>
<link>https://blog.vandesande.design/the-nightmare-scenario</link>
<guid isPermaLink="true">https://blog.vandesande.design/the-nightmare-scenario</guid>
<pubDate>Sat, 26 Apr 2014 21:35:04 +0000</pubDate>
<description>For me, the real nightmare scenario is that Ethereum creates very powerful criminal organizations with no one in the top. In short, essentially the worse of our current systemm,…</description>
<content:encoded><![CDATA[<p>For me, the real nightmare scenario is that Ethereum creates very powerful criminal organizations with no one in the top. In short, essentially the worse of our current systemm, but the top 1% is replaced by DAOs. Here's a short walkthrough of one of them:</p>
<p>• A P2P drone delivery system is built in ethereum. Anyone can buy their own drones, config them and add them to the network, and the system will pay for them. These drones will be used to deliver packets from anyone in a city to anyone else, very fast. It disrupts all delivery companies.</p>
<p>• The service is extremely useful, it grows and anyone can add charging stations, smart cars, or services to the network. Soon, there are whole companies dedicated to building and providing them with all kinds of vehicles.</p>
<p>• As the service connects to other distributed services, it's also used as drug delivery mechanism. Libertarians cherish, and governments decide not to outlaw the system because it's seen as useful and instead investigate the deliveries. Slowly, most local drug lords are outcompeted.</p>
<p>• The system develops a variable fee, it can predict how much high risk some deliveries are, soon it can also charge more for high value items high risk, so in essence, much of the drug money previously siphoned to crime is transferred to the mesh network. It's seen as a positive step for many.</p>
<p>• The system is lucrative, but drones don't buy mansions or spend it in prostitutes, all money is going back to buying more robots and expanding the service.</p>
<p>• Vehicles are created for international packet shipping: submarine, torpedoes, long range airplanes. The system is able to reach a container ship in international waters, and grab a packet directly from board. No law is being broken by a human so this is a very hard system to fight against.</p>
<p>• Governments start requiring automated drones to provide identification. Unregistred drones can be shot at will. This doesn't prevent them thou, as slow drones are shot, it only raises the profitability of faster and stronger drones. An arm race starts.</p>
<p>• Legal and illegal factories in china are dedicated exclusively for providing robots for the system. But soon, the factories themselves become DAO's as it's cheaper than CEO's. Maybe humans are still working there, but in bad conditions (just like they are now)</p>
<p>• A prediction market is created to siphon a bit of the money gained in causes that are believed to be good for the system as a whole. If your firm starts lobbying and campaigning for the system, you'll see the system starts just "giving" you money. They lobby for less government intervention, international cooperation, and for worse working conditions.</p>
<p>• The same prediction market evolves into an assassination market: if some person is identified as someone who is a powerful enemy of the system, it siphons money to anyone who can neutralize them.</p>
<p>• Asian factories are 100% automated and can be built anywhere. Reports appear that they are building weaponized drones. No country has ordered them, but someone is paying for them. Why?</p>]]></content:encoded>
</item>
<item>
<title>Should ether contracts have GUIs? I&#x27;m a UI designer and here&#x27;s why I don&#x27;t think so.</title>
<link>https://blog.vandesande.design/should-ether-contracts-have-guis</link>
<guid isPermaLink="true">https://blog.vandesande.design/should-ether-contracts-have-guis</guid>
<pubDate>Thu, 10 Apr 2014 14:07:21 +0000</pubDate>
<description>This discussion was inspired by comments from @Stephan_Tual in two other recent posts so I though I&#x27;d put here because I really want to see what other people believe is the future…</description>
<content:encoded><![CDATA[<p>This discussion was inspired by comments from <a href="https://web.archive.org/web/20140410/http://forum.ethereum.org/profile/Stephan_Tual" target="_blank" rel="noopener">@Stephan_Tual</a> in two other recent posts so I though I'd put here because I really want to see what other people believe is the future of Etherum and the reference clients.</p>
<p><a href="https://blog.vandesande.design/so-i-designed-a-concept-ui-for-the-alethzero-client">http://forum.ethereum.org/discussion/751/so-i-designed-a-concept-ui-for-the-alephzero-client</a><br>
<a href="https://web.archive.org/web/20140410/http://forum.ethereum.org/discussion/711/web-components-marketplace-for-ethereum-ui-markup" target="_blank" rel="noopener">http://forum.ethereum.org/discussion/711/web-components-marketplace-for-ethereum-ui-markup</a></p>
<p>The question is either Smart contracts should, in the future, have UI information. I see mainly two ways this could evolve:</p>
<p>* Ether contracts start having more code related to UI and how to present the information to the final user. New GUI elements are created and can be reused. Ethereum evolves into a whole decentralized OS.</p>
<p>* Contracts have information on what commands they accept and what's the data format or options each command takes. Ether provides the apis, and data for the backend of any app, in any platform. Clients can use whatever native OS code they prefer, and use Ether as the cloud api, a decentralized always persistent network.</p>
<p>I truly believe the second one is by far a better approach. First, because it's simpler and isn't a boil the ocean kind of approach. You don't need to implement custom interface elements, reinvent the browser, recreate 30 years of GUI code from multiple platforms.</p>
<p>Also, it promotes a separation of code in the Data/Model/Controller layer and the View/Interface layers. This creates cleaner and easier to maintain code.</p>
<p>Finally, it allows UI to flourish and Ether to be future proof. A OS built for the desktop isn't necessarily good for tablets and smartphones, and a mobile OS might not be good for wearables, robots or microwaves. OS's and interface needs change and separating Ether as just the data api we allow it to flourish in any platform.</p>
<p>A good example is Twitter clients. When twitter started, it was an open platform that allowed anyone to build clients on top. This created an environment where UI design flourished as everyone tested different approaches, on multiple platforms. The best innovative UI of the time came from twitter third party clients.</p>
<p>So in my vision, the reference client should only have a very basic "contract navigator" that permits you to use and test any contracts, but allows you to launch it in an external client for a better experience. This contract could have a list of accepted commands and a basic UI to provide the correct data in each command (a api request builder) but not more. The way data is presented, and how the interface is displayed, should be left to developers. (see attached)</p>
<figure>
<img src="https://blog.vandesande.design/media/should-ether-contracts-have-guis/01-704.webp" width="961" height="442" alt="">
</figure>
<p>Does everyone thinks similarly or am I too off the mark?</p>]]></content:encoded>
</item>
<item>
<title>So I designed a concept UI for the AlephZero client</title>
<link>https://blog.vandesande.design/so-i-designed-a-concept-ui-for-the-alethzero-client</link>
<guid isPermaLink="true">https://blog.vandesande.design/so-i-designed-a-concept-ui-for-the-alethzero-client</guid>
<pubDate>Tue, 08 Apr 2014 21:34:08 +0000</pubDate>
<description>Since using the AlephZero client I began thinking about how the client could look down the line, and once I had that itch I had to scratch it. Of course this is a very rough…</description>
<content:encoded><![CDATA[<p>Since using the AlephZero client I began thinking about how the client could look down the line, and once I had that itch I had to scratch it.</p>
<figure>
<img src="https://blog.vandesande.design/media/so-i-designed-a-concept-ui-for-the-alethzero-client/01-704.webp" width="842" height="568" alt="">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/so-i-designed-a-concept-ui-for-the-alethzero-client/02-704.webp" width="1406" height="847" alt="">
</figure>
<p>Of course this is a very rough sketch and shows only the contracts tab. I imagined it as a collection of all your active contracts, but added a few features that are not on the current code but seem no-brainer, specifically features in which a contract tells the client the kind of data it accepts (and what UI) and the current status of the client.</p>
<p>I'm also adding the ability of querying a third party of your choosing to audit and describe each contract, so you can trust it before.</p>
<p>Most features of the current AlephZero are visible on that screen. The "owned accounts" would be similar to the contracts page and the remaining status and blockchain could be tucked in the "network" screen.</p>
<p>I'm using Retro gravatars to identify contracts because they're much more instantly recognizable than hashes, and I believe they are much better than the traditional "kaleidoscope" gravatars. I didn't pick or choose any, but you can still read an image in all of those random patterns.</p>
<p>So what does the community think? Is that kind of contribution welcome? How can I help in a more productive way?</p>
<p>Thanks</p>]]></content:encoded>
</item>
<item>
<title>What Micronesian stone coins can teach us about Bitcoin</title>
<link>https://blog.vandesande.design/what-micronesian-stone-coins-can-teach-us-about-bitcoin</link>
<guid isPermaLink="true">https://blog.vandesande.design/what-micronesian-stone-coins-can-teach-us-about-bitcoin</guid>
<pubDate>Thu, 31 Oct 2013 13:10:27 +0000</pubDate>
<description>I submitted this story on another thread about how to talk about bitcoin to a 14-17 crowd, but I thought other people here might like it too. It&#x27;s a tale about something that…</description>
<content:encoded><![CDATA[<p>I submitted this story on <a href="http://www.reddit.com/r/Bitcoin/comments/1pl4cg/i_suggested_using_bitcoin_to_accept_payments_for/cd3m8zn?context=1" target="_blank" rel="noopener">another thread</a> about how to talk about bitcoin to a 14-17 crowd, but I thought other people here might like it too. It's a tale about something that appears to be nonsensical but it's actually not at all, and it shows how weird economy can be sometimes. If you want to google more about it, the island is called Yap, in Micronesia and the stones are called Rai Stones.</p>
<p>Here's a true story that migh help get things started:</p>
<p>There's a pacific island that or many centuries, the only currency they had were round disks of a given stone. But that stone isn't exist anywhere in the island and the disks had to be produced far away and brought back to the island by canoe, making the process very hard. Because the biggest the stone, the harder they were to carry, the bigger were more valuable and by the 16th century most "coins" would weigh over a 100kg, making them impossible to carry.</p>
<p>But still they were very valuable, used mostly for important trades like a dowry or a home and owning just one would make you a wealthy man on the island. But since they were so cumbersome to carry, they could be traded multiple times without ever being moved: trades/gifts were made in public gatherings and everyone knew whose stone belonged to whom.</p>
<p>One day an islander was bringing home a great and beautiful coin that he had labored over months in the other island when his canoe flip sides and the coin went to the bottom of the sea.</p>
<p>Luckily everyone in the canoe survived and had seen the stone and told everyone in the island about it. So since everyone knew the stone actually existed, it still held value and could be traded like the others. Like most stones it wasn't moved but everyone knew who was the current owner of the stone in the bottom of the sea...</p>
<p>Some reflections:</p>
<ol>
<li><p>Why did the villagers "decide" to use a kind of stone that wasn't available in the island? Couldn't they use a more common thing like seashells?</p></li>
<li><p>If the stones didn't actually need to be moved to hold value, why bother moving them <em>into</em> the island in the first place?</p></li>
<li><p>Like the stone in the bottom of the ocean, you rarely actually see the money in your bank. When you send money to somewhere else, <em>what the bank actually moves</em>?</p></li>
<li><p>The stones still exist today and are sometimes given as symbolic gifts in weddings but their demise as an economic system ended when Europeans started trading island goods with large quantities of stones they were bringing themselves. What <em>piece of technology</em> ultimately ended up destroying that economic system and what exactly did it do?</p></li>
</ol>]]></content:encoded>
</item>
<item>
<title>What prevents them from abusing it?</title>
<link>https://blog.vandesande.design/who-decides-the-block-reward-halving</link>
<guid isPermaLink="true">https://blog.vandesande.design/who-decides-the-block-reward-halving</guid>
<pubDate>Mon, 27 May 2013 15:52:13 +0000</pubDate>
<description>During the paranoid saturday thread I posted this scenario and the more I think about it, the more I believe it&#x27;s inevitable to happen sometime in the future. Suppose bitcoin…</description>
<content:encoded><![CDATA[<p>During the paranoid saturday thread I posted <a href="http://www.reddit.com/r/Bitcoin/comments/1f24kg/its_paranoid_saturday_unleash_your/ca6axup?context=3" target="_blank" rel="noopener">this scenario</a> and the more I think about it, the more I believe it's inevitable to happen sometime in the future.</p>
<p>Suppose bitcoin achieves the most optimist scenario where its an essential part of the modern world economy, used for trade worldwide and seen as something that's not going away ever. In this scenario, each bitcoin is worth a lot and mining equipment is very expensive, mostly owned by people who are in for the money — maybe they're banks, corporations or just individuals but what matters is that the pure idealists are the minority.</p>
<p>Now there's a schedule block reward halving coming up. Then someone finds some flaw with that: maybe its technical, maybe it's an economic argument, what matters is that, like the Y2K or bank bailouts, its <em>very hard to actually know how big a problem it will be until it actually happens</em>. There's a chance it's a non issue, but there's also a chance that it will be a problem and then the whole system will be crumbling down and we <em>can't afford that risk now can we</em>? Bitcoin will be <em>too big to fail</em>.</p>
<p>Many heated arguments are held but you know that saying: <strong>"it's hard to make someone understand something when their paycheck depends on him not understanding it"</strong>.. In the end most miners have an economic incentive to believe the issue is real: after all this hipotethical issue is not completely made up, there's some nugget of true.. More than half then agree on postponing the block reward halving until the issue is addressed. They're not creating more money, just buying some time.</p>
<p>But then that temporary thing becomes permanent because no one wants to halve their paycheck voluntarily. And sudennly bitcoins are expected to go over the 21 million limit. People complain but since most of the complainers holds bitcoins they don't want for everything to crash..</p>
<p>Once the cat is out, no one can tell what happens next. Maybe the block reward goes up. Maybe the block rewards gets permanent. Who gets to decide it? The same people who profit from it.</p>
<p>TLDR: At some point miners will have the power to rule over their own rewards. What prevents them from abusing it?</p>]]></content:encoded>
</item>
<item>
<title>What&#x27;s coming: colored coins could allow P2P exchanges and value stability on the bitcoin network.</title>
<link>https://blog.vandesande.design/colored-coins-could-allow-p2p-exchanges</link>
<guid isPermaLink="true">https://blog.vandesande.design/colored-coins-could-allow-p2p-exchanges</guid>
<pubDate>Thu, 18 Apr 2013 13:34:28 +0000</pubDate>
<description>I see very often here people asking for P2P exchanges or open source P2P servers, but since there are many bitcoin newbies I think it&#x27;s valuable to share with everyone a few…</description>
<content:encoded><![CDATA[<p>I see very often here people asking for P2P exchanges or open source P2P servers, but since there are many bitcoin newbies I think it's valuable to share with everyone a few innovations happening right now that could help bring those things.</p>
<p>Colored coin is an innovation on "smart properties" the concept of taking a few of your satoshis and giving it some value that is bigger than the nominal value of bitcoins on them. Because all coins can be tracked to their origin, anyone can keep check of ownership of those coins. For example a bank can issue a bunch of promises saying "I promise I will give the owner of this satoshi an ounce of gold" and then sell those colored coins at however price other people are willing to pay.</p>
<p>Or, for example, Bitpay could whenever someone asks to convert their bitcoin payments in dollars could instead of just adding it to it's internal database, give the owners colored coins that were worth bitpay credits, redeemable for a fixed amount of dollars.</p>
<p>This is where P2P exchanges get in. Imagine that whenever you open an account and deposit money in Mt Gox, instead of that credit being stuck inside MtGox servers they gave you back in colored coins worth "MtGox Dollars". As long as you can find someone that trusts in MtGox, you can exchange those MtGox dollars for any amount of bitcoins you could agree on, just using your own bitcoin client.</p>
<p>If someone is willing, he or she could also accept MtGox directly for a payment for a service, or exchange it for colored coins of other denominations, like BitInstant Euros, Silk Road Pounds Or Shady Pirate Gold.</p>
<p>Thus along as you trust the issuer, you could never hold bitcoins, but hold any other currency you wish. You might not trust the value of bitcoin longterm but if you can still use cryptocurrency innovations to hold a diverse portfolio of gold, dollars, euros and bitcoins.</p>
<p>Even if you don't trust completely the issuer, you can still use the system. Say you owned $100 worth of BitFloor credits in colored coins. Even if Bitfloor is shut down by it's corporate banks, if some other entity is willing to assume it's bill – say the completelly unrelated Bitfloor Cayman Islands Inc – they can accept that credit and exchange for something else. Or you can request that any "colored coin" is worth at least an x amount of satoshis – so if Shady Pirate Gold Corporation just disappears, you still have a minimum amount of bitcoins.</p>
<p>If this sounds like reinventing fiat money, this is exactly what it is: a 21th century reinvention of 18th century non-governamental private banknotes. It might not be your cup of tea but those are very welcome innovations and could really be useful for everyone.</p>
<p>How can you help?</p>
<ul>
<li><p>If you're a <strong>bitcoin client developer</strong>, build colored coin support in your client.</p></li>
<li><p>If you host a <strong>bitcoin related service</strong>, try seeing how you can integrate colored coins on your project</p></li>
<li><p>If you <strong>own an account on any exchange</strong> or fiat money conversion service, write them and ask them for colored coin support</p></li>
<li><p>If you are a <strong>bitcoin holder</strong>, help with bitcoin bounties by chipping in for a colored coin related bounty</p></li>
<li><p>If you are just a <strong>bitcoin enthusiast</strong>: look for clients and services that support colored coins, and inform others of these when you see any discussion on the matter.</p></li>
<li><p>If you're <strong>neither of these</strong> (what are you doing in this subreddit??): check Ripple.com an alternative cryptocurrency that tries to solve the same problems of holding multiple currencies in a very different approach</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>It&#x27;s not the price, it&#x27;s the code, stupid!</title>
<link>https://blog.vandesande.design/its-not-the-price-its-the-code-stupid</link>
<guid isPermaLink="true">https://blog.vandesande.design/its-not-the-price-its-the-code-stupid</guid>
<pubDate>Sat, 30 Mar 2013 21:52:41 +0000</pubDate>
<description>You&#x27;ve heard it before: the dollar exchange to bitcoin is just a side show, it really doesn&#x27;t matter. I would like to expand on that: When people ask you about bitcoin, avoid…</description>
<content:encoded><![CDATA[<p>You've heard it before: the dollar exchange to bitcoin is just a side show, it really doesn't matter. I would like to expand on that:</p>
<p>When people ask you about bitcoin, avoid talking about the current price or how it exploded, because then you'll be talking about bubbles, pyramid schemes and the inherent value of things, and all that is irrelevant to bitcoin. Yes, I have a few and I love seeing my money grow when the price goes up and buying it cheaper when it goes down. But that's just a gamble: here's what made me stick to bitcoins.</p>
<p><strong>Bitcoin is a money API.</strong> It's a technology that allows computers to move wealth around in a more efficient manner, allows contracts to be abided by programming not lawyers. Bitcoin has the potential to change society as much as the internet and Peer to peer has before it. Right now bitcoin is just trying to be a better paypal, but, just like the web started as a better way to store electronic documents, bitcoins can be a lot more than that.</p>
<p>Take a look around and think about how many institutions exists, how many people are employed, energy spent, how much space is devoted to <strong>the simple act of moving wealth around</strong>, to guarantee money will exchange hands and go to the right person: all of those can be made more efficient and sometimes completely redundant with bitcoins.</p>
<p>And if history taught us anything is that <em>geeks with efficient systems tend to win over traditional unmoving inefficient ones</em>.</p>
<p>I have a friend that once visited a company whose job was to guarantee electronic transfers between banks. It was a highly complicated, very expensive, ultra regulated operation. He explained to me that the reason that electronic transfers between banks in brazil costs $5 and are limited to a minimum of $3000 is merely computing power – if they lowered those numbers they couldn't cope with the excess information. Inefficiency.</p>
<p>Banks aren't the only institutions that exists solely to regulate transfer of money: so are <strong>insurance companies</strong>. An insurance is nothing more than a reverse lottery, where everyone pays every month and if something happens you get back a prize. A small group of developers could develop an insurance company that could be much more efficient than regular companies: the whole part of handling money, collecting it, figuring out who paid and who didn't, the covered conditions could be programmed in the system from the start. All that is needed is a way to check if the subscriber needs to be paid or not: but that's now an engineering problem, not an administrative one. You could check nasa for weather and tornado information, google maps, use flying drones, pay agents, check hospital records, crawl newspapers for crime and obituaries news. The more you think about them the more institutions could be perfectly replaces by one automated script that moves money around.</p>
<p><strong>Bitcoin is codified money.</strong> If you believe that then enjoy the ride up. If you're into it just as a get rich quick scam, then throw it all on satoshi dice.</p>]]></content:encoded>
</item>
<item>
<title>The largest Bitcoin exchange in Brazil gets hacked: depositors are not guaranteed to get their money back</title>
<link>https://blog.vandesande.design/the-largest-bitcoin-exchange-in-brazil-gets-hacked</link>
<guid isPermaLink="true">https://blog.vandesande.design/the-largest-bitcoin-exchange-in-brazil-gets-hacked</guid>
<pubDate>Fri, 29 Mar 2013 13:09:55 +0000</pubDate>
<description>Disclaimer: I&#x27;m not associated in any form with Mercado Bitcoin other than having done trades there. Luckily for me I didn&#x27;t have any money there at the moment. Mercado Bitcoin,…</description>
<content:encoded><![CDATA[<p><strong>Disclaimer: I'm not associated in any form with Mercado Bitcoin other than having done trades there. Luckily for me I didn't have any money there at the moment.</strong></p>
<p>Mercado Bitcoin, the largest – and only – bitcoin exchange in Brazil, has been offline for almost a week now. For the first few days there was no communication, but the owner <a href="http://pastebin.com/PZfuZM3X" target="_blank" rel="noopener">just sent an email to all accounts</a> explaining he was hacked. I haven't seen it posted anywhere in English so I'l do my best to translate what I got.</p>
<p>As far as I understood, someone hacked his "redeem code" feature, being able to generate false credits in the system. Then during the night the hacker moved out all his credit into bitcoins, leaving MercadoBitcoin without enough BTC to pay back all the other depositors.</p>
<p>Mercado hasn't revealed how much was robbed or more details than that, but has said he will try to pay back what he can, in that order:</p>
<ol>
<li><p>Withdraws in Reais that were requested before the attack</p></li>
<li><p>Deposits in Reais that hadn't been credited yet</p></li>
<li><p>Current balances in Reais</p></li>
<li><p>Current balances in Bitcoins</p></li>
</ol>
<p>Meaning that depending on how much was left, bitcoin balances will only be given back if he is able to pay back all the money (in Reais) to other creditors, and even that money isn't fully guaranteed.</p>
<p><a href="https://blog.vandesande.design/a-tip-for-bitcoiners-with-brazilian-friends">I posted about MercadoBitcoin last week</a> when I wanted to share the word that Bitcoins in reais where 25% overvalued over other currencies. I assumed it was mostly because of the small amount of sellers but it seems there was also another factor: lack of trust in the exchange.</p>
<p>I doubt this attack is related to this reddit post: this week Exame one big financial magazine in Brazil also had a feature in Bitcoins which mentioned the Mercado. Either this was an opportunistic hack or just a case of worse timing, it seems that the adoption and reputation of Bitcoins in Brazil has received a bad punch.</p>]]></content:encoded>
</item>
<item>
<title>A tip for Bitcoiners with Brazilian friends (or travel plans) you can make a consistent 25% profit by selling BTC in Reais</title>
<link>https://blog.vandesande.design/a-tip-for-bitcoiners-with-brazilian-friends</link>
<guid isPermaLink="true">https://blog.vandesande.design/a-tip-for-bitcoiners-with-brazilian-friends</guid>
<pubDate>Sun, 24 Mar 2013 22:46:44 +0000</pubDate>
<description>In Brazil there are many more Bitcoin Buyers than sellers. I&#x27;ve been watching the market closely for the last 6 months and I noticed that you the Brazilian Real is constantly 25%…</description>
<content:encoded><![CDATA[<p>In Brazil there are many more Bitcoin Buyers than sellers. I've been watching the market closely for the last 6 months and I noticed that you the Brazilian Real is constantly 25% undervalued in relation to the exchange rate.</p>
<p>For example: if you buy 10 bitcoins right now in dollars (or euros) you'll spend $733.80 dollars. Those same bitcoins can be sold for R$1750 which at the current exchange rate is worth $868 dollars. So you could make $150 dollars extra, which would more than cover any exchange tax, a couple of caipirinhas, a hotel room for the night and you've still got some bucks left.</p>
<p>Check it for yourself at: <a href="http://www.mercadobitcoin.com.br/" target="_blank" rel="noopener">http://www.mercadobitcoin.com.br/</a></p>
<p>I expected this to be a temporary thing, but as I said, I've been watching it for a long time and the difference has been constant. I suppose that if enough people do this, the bitcoins offer in the market will catchup with the demand and the price will go to a saner level – which is exactly what I'm spreading the word around.</p>]]></content:encoded>
</item>
<item>
<title>I made this ocean-centric world map for wikipedia a few years ago.</title>
<link>https://blog.vandesande.design/an-ocean-centric-world-map</link>
<guid isPermaLink="true">https://blog.vandesande.design/an-ocean-centric-world-map</guid>
<pubDate>Sun, 09 Dec 2012 13:20:24 +0000</pubDate>
<description>Technical note: this is an azimuthal projection of the world centered on the Antipode of Ürümqi, the city which is farther away from any ocean possible.</description>
<content:encoded><![CDATA[<p>Technical note: this is an azimuthal projection of the world centered on the <a href="http://en.wikipedia.com/wiki/Ant%C3%ADpode" target="_blank" rel="noopener">Antipode</a> of Ürümqi, the city which is <a href="http://en.wikipedia.org/wiki/Pole_of_inaccessibility#Continental" target="_blank" rel="noopener">farther away from any ocean possible</a>.</p>]]></content:encoded>
</item>
<item>
<title>Tarot for iPad and iPhone</title>
<link>https://blog.vandesande.design/tarot-for-ipad-and-iphone</link>
<guid isPermaLink="true">https://blog.vandesande.design/tarot-for-ipad-and-iphone</guid>
<pubDate>Sun, 29 Jul 2012 12:00:00 +0000</pubDate>
<description>I’m a big believer in making things simply beautiful, that the correct line is a beatiful one. Tarot isn’t more a divination game than making fridge magnet poetry, so when I…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/tarot-for-ipad-and-iphone/01-680.webp" width="680" height="510" alt="Tarot for iPad and iPhone">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/tarot-for-ipad-and-iphone/02-680.webp" width="680" height="510" alt="Tarot for iPad and iPhone">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/tarot-for-ipad-and-iphone/03-680.webp" width="680" height="510" alt="Tarot for iPad and iPhone">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/tarot-for-ipad-and-iphone/04-680.webp" width="680" height="453" alt="Tarot for iPad and iPhone">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/tarot-for-ipad-and-iphone/05-680.webp" width="680" height="453" alt="Tarot for iPad and iPhone">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/tarot-for-ipad-and-iphone/06-680.webp" width="680" height="453" alt="Tarot for iPad and iPhone">
</figure>
<p>I’m a big believer in making things simply beautiful, that the correct line is a beatiful one.</p>
<p>Tarot isn’t more a divination game than making fridge magnet poetry, so when I decided to build a tarot app for iOS I tapped on that fountain. I created this app from scratch: from design, to code, to the interpretation algorithm and the subtle animated transitions from states.</p>
<h4 id="h-download-from-the-appstore-http-itunes-apple-com-br-app-jogo-de-tarot-id478366176-mt-8"><a href="http://itunes.apple.com/br/app/jogo-de-tarot/id478366176?mt=8" target="_blank" rel="noopener">Download from the AppStore</a></h4>]]></content:encoded>
</item>
<item>
<title>Testes de Perfil</title>
<link>https://blog.vandesande.design/testes-de-perfil</link>
<guid isPermaLink="true">https://blog.vandesande.design/testes-de-perfil</guid>
<pubDate>Sun, 15 Apr 2012 12:00:00 +0000</pubDate>
<description>A Facebook app for fun profile games. This is what I would call a “skunkworks” facebook game. The company was under a reestructuration so many of the design projects we were…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/testes-de-perfil/01-680.webp" width="680" height="1151" alt="Testes de Perfil">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/testes-de-perfil/02-680.webp" width="680" height="448" alt="Testes de Perfil">
</figure>
<p>A Facebook app for fun profile games.</p>
<p>This is what I would call a “skunkworks” facebook game. The company was under a reestructuration so many of the design projects we were working wer canceled, new ideas were outright rejected because our IT was already too busy or because they had no short term revenues. This left our the design team with a lot of idle time. Instead of slacking off, I recruited them to make a facebook app, which would be a good opportunity for teaching them some HTML and CSS basics and a great opportunity for me to learn more about the facebook app development process. All coding was done inside the team, using our own servers.</p>
<p>At first when the project was launched and revealed to the company it got a lot of rolling eyes, because it could “take visitors away from the site and into facebook”. But not long after the company run into a problem that they had more ad contracts than space to deliver them, and the App fell like a glove. To this day, the app still works as a alternative revenue place, with special profile tests created for promoting books and product giveaways, and helping to bring more users to our company page.</p>]]></content:encoded>
</item>
<item>
<title>Cartola</title>
<link>https://blog.vandesande.design/cartola</link>
<guid isPermaLink="true">https://blog.vandesande.design/cartola</guid>
<pubDate>Sat, 29 Oct 2011 12:00:00 +0000</pubDate>
<description>Cartola is a Fantasy Soccer game created by Globo.com where soccer fans can put their (virtual) money where their mouth is. Users create soccer leagues where they buy and sell…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/cartola/01-678.webp" width="678" height="353" alt="Cartola">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/cartola/02-678.webp" width="678" height="353" alt="Cartola">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/cartola/03-678.webp" width="678" height="353" alt="Cartola">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/cartola/04-680.webp" width="680" height="531" alt="Cartola">
</figure>
<p>Cartola is a Fantasy Soccer game created by Globo.com where soccer fans can put their (virtual) money where their mouth is. Users create soccer leagues where they buy and sell real world Soccer players and see how well their investment pay when the price goes up and down related to their actual performance.</p>
<p>I was responsible to build the Visual interface to the iPhone and iPad port of what was originally a web-only game.</p>
<p><a href="http://itunes.apple.com/us/app/cartolafc-sportv/id390986079" target="_blank" rel="noopener"><strong><em>Cartola</em> in the AppStore</strong></a></p>]]></content:encoded>
</item>
<item>
<title>Estrela Guia iPhone</title>
<link>https://blog.vandesande.design/estrela-guia-iphone</link>
<guid isPermaLink="true">https://blog.vandesande.design/estrela-guia-iphone</guid>
<pubDate>Sat, 29 Oct 2011 12:00:00 +0000</pubDate>
<description>Understanding how things work is the essence of good design. I’m not personally a fan of Astrology but I do love astronomy and both are very closely related (and in some ways…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/estrela-guia-iphone/01-680.webp" width="680" height="830" alt="Estrela Guia iPhone">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/estrela-guia-iphone/02-680.webp" width="680" height="830" alt="Estrela Guia iPhone">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/estrela-guia-iphone/03-680.webp" width="680" height="830" alt="Estrela Guia iPhone">
</figure>
<p>Understanding how things work is the essence of good design. I’m not personally a fan of Astrology but I do love astronomy and both are very closely related (and in some ways opposed).</p>
<p>By understanding how orbits actually work, I pushed the developing team to go beyond a simple horoscope app and bring real world content, using planetary data from Nasa’s website to build a small virtual Orrery in your phone. The app shows people not only information about their Astrological sign, but information about it’s related celestial constellation: where it is in the sky, how to look for it on the sky, what planets are in transit and what this means in the Astrological mythology.</p>
<p>Not only this makes for one of the most visually interesting Astrology software in the AppStore, but it also hopes to make people more interest in the sky above them, by connecting their spiritual symbols to their real world counterparts.</p>
<p>By undertanding how both Astrology and Astronomy correlates, we were able to create a rich and respectful Astrology App that differentiates itself from it’s competitors.</p>
<p><a href="http://itunes.apple.com/app/estrela-guia/id456625305" target="_blank" rel="noopener"><strong>Estrela Guia in the AppStore</strong></a></p>]]></content:encoded>
</item>
<item>
<title>Frugar</title>
<link>https://blog.vandesande.design/frugar</link>
<guid isPermaLink="true">https://blog.vandesande.design/frugar</guid>
<pubDate>Sat, 29 Oct 2011 12:00:00 +0000</pubDate>
<description>Frugar.com is currently a site for organizing lists of your favorite things – but it wasn’t always that. When I first came into the company it was intended to be a feature phone…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/frugar/01-680.webp" width="680" height="830" alt="Frugar">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/frugar/02-680.webp" width="680" height="830" alt="Frugar">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/frugar/03-680.webp" width="680" height="830" alt="Frugar">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/frugar/04-680.webp" width="680" height="830" alt="Frugar">
</figure>
<p>Frugar.com is currently a site for organizing lists of your favorite things – but it wasn’t always that. When I first came into the company it was intended to be a feature phone application for shoppers, which evolved into a barcode reading app for iPhone and into a social network for reviewing products.</p>
<p>I worked as both a Designer (in the earlier versions) and a web developer for Frugar, going through six pivots of the company, an intense learning experience of the inner workings of a startup company.</p>
<p><a href="http://www.frugar.com" target="_blank" rel="noopener"><strong>Frugar.com</strong></a></p>]]></content:encoded>
</item>
<item>
<title>site O Globo para iPhone</title>
<link>https://blog.vandesande.design/site-o-globo-para-iphone</link>
<guid isPermaLink="true">https://blog.vandesande.design/site-o-globo-para-iphone</guid>
<pubDate>Sat, 29 Oct 2011 12:00:00 +0000</pubDate>
<description>The mobile site for the biggest newspaper in Latin America. One of our first big clients.</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/site-o-globo-para-iphone/01-680.webp" width="680" height="830" alt="site O Globo para iPhone">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/site-o-globo-para-iphone/02-680.webp" width="680" height="830" alt="site O Globo para iPhone">
</figure>
<p>The mobile site for the biggest newspaper in Latin America. One of our first big clients.</p>]]></content:encoded>
</item>
<item>
<title>Bolsa de Mulher</title>
<link>https://blog.vandesande.design/bolsa-de-mulher</link>
<guid isPermaLink="true">https://blog.vandesande.design/bolsa-de-mulher</guid>
<pubDate>Fri, 01 Jul 2011 12:00:00 +0000</pubDate>
<description>The biggest internet company focused Women was going through many renovations in 2011 and needed to reflect it on their home page. Our focus was to do a total revamp of the brand…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/bolsa-de-mulher/01-680.webp" width="680" height="803" alt="Bolsa de Mulher">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/bolsa-de-mulher/02-680.webp" width="680" height="803" alt="Bolsa de Mulher">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/bolsa-de-mulher/03-680.webp" width="680" height="803" alt="Bolsa de Mulher">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/bolsa-de-mulher/04-680.webp" width="680" height="803" alt="Bolsa de Mulher">
</figure>
<p>The biggest internet company focused Women was going through many renovations in 2011 and needed to reflect it on their home page. Our focus was to do a total revamp of the brand and site look, in short notice and but without needing a total rewrite of the complex and hard to maintain custom content management used. I was the leader of the team in charge of changing the main page.</p>
<p>In about four weeks we were able to using mostly CSS and the fewest possible infrastructure changes, create a total portal page, more modernized and showcasing the content the team produced.</p>]]></content:encoded>
</item>
<item>
<title>Cuponzal</title>
<link>https://blog.vandesande.design/cuponzal</link>
<guid isPermaLink="true">https://blog.vandesande.design/cuponzal</guid>
<pubDate>Thu, 01 Jul 2010 12:00:00 +0000</pubDate>
<description>Site for collecting and organizing Deals from deal sites. In 2009-2010 deals sites became a gigantic craze in Brazil, earlier and in a much different way from it’s american…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/cuponzal/01-680.webp" width="680" height="830" alt="Cuponzal">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/cuponzal/02-680.webp" width="680" height="473" alt="Cuponzal">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/cuponzal/03-680.webp" width="680" height="430" alt="Cuponzal">
</figure>
<p>Site for collecting and organizing Deals from deal sites. In 2009-2010 deals sites became a gigantic craze in Brazil, earlier and in a much different way from it’s american counterpart. While in the US, the game was dominated by a few early players in Brazil there was a new Daily deals site created every other day.</p>
<p>Localized to small cities, to specific groups or very niche market at some point in 2010 there was more than 200 different sites using the same business model: selling coupon codes that could later be claimed for discounted items or service.</p>
<p>Instead of building another deals site we focused on building a service for people who used them: a central repository for your coupon codes, available anywhere you went, compatible for any device. The idea was to make it as easy to register a code as forwarding an email, and the site would take care of the rest, pinpointing the establishment on a map and alerting you by email when the deal was about to expire.</p>
<p>The site was built in the model of a responsive webapp, the same codebase and a changing CSS to adapt to any device screen size, allowing you to even run it full screen from your iPhone home screen.</p>
<p><a href="http://cuponzal.com" target="_blank" rel="noopener"><strong>Cuponzal</strong></a></p>]]></content:encoded>
</item>
<item>
<title>Presidential elections live results</title>
<link>https://blog.vandesande.design/presidential-elections-live-results</link>
<guid isPermaLink="true">https://blog.vandesande.design/presidential-elections-live-results</guid>
<pubDate>Thu, 01 Jul 2010 12:00:00 +0000</pubDate>
<description>A Webapp for accompanying online the results of the highly digital national Brazilian Election. An intense development during weeks, including a total interface rehaul in the last…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/presidential-elections-live-results/01-680.webp" width="680" height="830" alt="Presidential elections live results">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/presidential-elections-live-results/02-680.webp" width="680" height="830" alt="Presidential elections live results">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/presidential-elections-live-results/03-392.webp" width="392" height="761" alt="Presidential elections live results">
</figure>
<p>A Webapp for accompanying online the results of the highly digital national Brazilian Election.</p>
<p>An intense development during weeks, including a total interface rehaul in the last minute, for a few hours of use.</p>]]></content:encoded>
</item>
<item>
<title>Trânsito iPhone</title>
<link>https://blog.vandesande.design/transito-iphone</link>
<guid isPermaLink="true">https://blog.vandesande.design/transito-iphone</guid>
<pubDate>Thu, 01 Jul 2010 12:00:00 +0000</pubDate>
<description></description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/transito-iphone/01-680.webp" width="680" height="830" alt="Trânsito iPhone">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/transito-iphone/02-680.webp" width="680" height="830" alt="Trânsito iPhone">
</figure>]]></content:encoded>
</item>
<item>
<title>A surpresa</title>
<link>https://blog.vandesande.design/a-surpresa</link>
<guid isPermaLink="true">https://blog.vandesande.design/a-surpresa</guid>
<pubDate>Sun, 16 Aug 2009 19:03:15 +0000</pubDate>
<description>oque andei aprontando secretamente nessas últimas semanas era um plano simples. O que pode dar errado afinal? a surpresa parte II: tentativa um Lembram a primeira semana onde só…</description>
<content:encoded><![CDATA[<h3 id="h-oque-andei-aprontando-secretamente-nessas-ltimas-semanas">oque andei aprontando secretamente nessas últimas semanas</h3>
<p>era um plano simples. O que pode dar errado afinal?</p>
<figure>
<img src="https://blog.vandesande.design/media/a-surpresa/01-704.webp" width="1024" height="768" alt="">
</figure>
<h3 id="h-a-surpresa-parte-ii-tentativa-um">a surpresa parte II: tentativa um</h3>
<p>Lembram a primeira semana onde só fez chover e fazer sol no mesmo dia o dia todo? lembra, há tanto tempo atrás? pois é.</p>
<p>E o mais triste é que nunca escondi nada dela e dessa vez nao podia dividir nada...</p>
<figure>
<img src="https://blog.vandesande.design/media/a-surpresa/02-704.webp" width="858" height="1028" alt="">
</figure>
<h3 id="h-a-surpresa-parte-iii-porqu-ainda-n-o-pedi-ela-em-casamento">a surpresa parte III - Porquê ainda não pedi ela em casamento?</h3>
<p>meu cabelo cresceu o bastante pra voltar a ter rabo nesse meio tempo.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-surpresa/03-704.webp" width="768" height="1024" alt="">
</figure>
<h3 id="h-a-surpresa-parte-iv-domingo-de-sol">a surpresa parte IV : domingo de sol</h3>
<figure>
<img src="https://blog.vandesande.design/media/a-surpresa/04-704.webp" width="768" height="1024" alt="">
</figure>
<h3 id="h-a-surpresa-parte-5-sobremesa">a surpresa parte 5- sobremesa</h3>
<p>na verdade não era um pudim, mas esse fica mais gráfico. Hoje estava sem vontade de colorir</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/05-704.webp" width="768" height="1024" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/06-704.webp" width="768" height="1024" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<h3 id="h-a-surpresa-parte-6-como-fazer-pra-tir-la-de-casa">a surpresa parte 6 - como fazer pra tirá-la de casa?</h3>
<p>ok, prometo, no próximo já começa a parte da surpresa em si.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-surpresa/07-704.webp" width="768" height="1024" alt="">
</figure>
<h3 id="h-a-surpresa-parte-7-na-praia">a surpresa parte 7: na praia</h3>
<p>eu decidi que nesse ritmo não termino a história esse ano e não quero passar a vida toda nesse dia. vou acelerar um pouco</p>
<p>a parte boa é que o meu tempo está sendo comido por trabalho...</p>
<figure>
<img src="https://blog.vandesande.design/media/a-surpresa/08-704.webp" width="768" height="1024" alt="">
</figure>
<h3 id="h-a-surpresa-parte-8-finalmente-o-dito-cujo">a surpresa parte 8 - finalmente, o dito cujo</h3>
<p>claro que continua.</p>
<p>subiu? caiu? será que morri?</p>
<figure>
<img src="https://blog.vandesande.design/media/a-surpresa/09-704.webp" width="768" height="1024" alt="">
</figure>
<h3 id="h-a-surpresa-9-quatro-fatos-sobre-a-experi-ncia-de-voar-de-bal-o">a surpresa 9 - Quatro fatos sobre a experiência de voar de balão</h3>
<p>descobri que gosto de desenhar paisagens...</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/10-704.webp" width="768" height="1024" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/11-704.webp" width="768" height="1024" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<h3 id="h-a-surpresa-parte-10-enquanto-isso-no-aeroporto">A surpresa parte 10: Enquanto isso, no aeroporto..</h3>
<p>Esse é uma homenagem ao bruno, o tipo de amigo que guarda um cartaz de 9 metros quadrados fedendo a tinta durante um mês. Aliás a pessoa que me fez conhecer a pessoa mais fantástica do meu mundo...</p>
<figure>
<img src="https://blog.vandesande.design/media/a-surpresa/12-704.webp" width="1024" height="768" alt="">
</figure>
<h3 id="h-o-anel">O anel</h3>
<p>Tirei umas fériazinhas dos desenhos. Estava planejando segurar mais par a publicar tudo juntos mas percebi que isso so ia fazer tudo demorar mais. Vou contando no meu ritmo mesmo</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/13-704.webp" width="768" height="1024" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/14-704.webp" width="768" height="1024" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 2</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>
<h3 id="h-a-surpresa-12-aterrisando">A surpresa 12 – Aterrisando</h3>
<p>Eu quase peguei aquela florzinha azul!.. Quase.. :(</p>
<figure>
<img src="https://blog.vandesande.design/media/a-surpresa/15-704.webp" width="768" height="1024" alt="">
</figure>
<h3 id="h-a-surpresa-13-indo-pro-brejo">a surpresa 13 – indo pro brejo</h3>
<p>Nessa hora eu estava seriamente pensando em todas as outras coisas românticas que poderia ter feito com a Fê que não envolvia estar em um charco..</p>
<figure>
<img src="https://blog.vandesande.design/media/a-surpresa/16-704.webp" width="768" height="1024" alt="">
</figure>
<h3 id="h-a-surpresa-final">a surpresa final</h3>
<p>Clique pelas setinhas para uma experiência mais divertida...</p>
<figure class="carousel">
<div class="slides" tabindex="0">
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/17-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/18-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/19-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/20-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/21-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/22-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/23-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/24-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/25-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/26-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/27-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/28-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/29-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/30-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/31-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/32-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/33-400.webp" width="400" height="600" alt=""></div>
<div class="slide"><img src="https://blog.vandesande.design/media/a-surpresa/34-400.webp" width="400" height="600" alt=""></div>
</div>
<div class="steer"><button type="button" class="prev" aria-label="Previous" disabled>‹</button><span class="count">1 / 18</span><button type="button" class="next" aria-label="Next">›</button></div>
</figure>]]></content:encoded>
</item>
<item>
<title>O dia onde tive uma das conversas mais importantes da minha vida.</title>
<link>https://blog.vandesande.design/o-dia-onde-tive-uma-das-conversas-mais-importantes-da-minha-vida</link>
<guid isPermaLink="true">https://blog.vandesande.design/o-dia-onde-tive-uma-das-conversas-mais-importantes-da-minha-vida</guid>
<pubDate>Thu, 13 Nov 2008 12:00:00 +0000</pubDate>
<description>E eles responderam basicamente &quot;te entendemos, não concordamos com isso agora, mas vamos te dar todo o apoio que você precisar&quot;</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/o-dia-onde-tive-uma-das-conversas-mais-importantes-da-minha-vida/01-704.webp" width="768" height="1024" alt="">
</figure>
<p>E eles responderam basicamente "te entendemos, não concordamos com isso agora, mas vamos te dar todo o apoio que você precisar"</p>]]></content:encoded>
</item>
<item>
<title>Comic review: Ghost map (ou seria crítica em quadrinhos?)</title>
<link>https://blog.vandesande.design/comic-review-ghost-map-ou-seria-critica-em-quadrinhos</link>
<guid isPermaLink="true">https://blog.vandesande.design/comic-review-ghost-map-ou-seria-critica-em-quadrinhos</guid>
<pubDate>Tue, 28 Oct 2008 18:44:22 +0000</pubDate>
<description>Leio (ou nesse caso ouço) alguns livros que me deixam pensando muito tempo. Quase todos os do Steven Johnson ou Malcom Gladwell caem nessa categoria, pois são livros de não-ficção…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/comic-review-ghost-map-ou-seria-critica-em-quadrinhos/01-704.webp" width="768" height="1024" alt="">
</figure>
<p>Leio (ou nesse caso ouço) alguns livros que me deixam pensando muito tempo. Quase todos os do Steven Johnson ou Malcom Gladwell caem nessa categoria, pois são livros de não-ficção estruturados como uma ficção. Ghost map, especialmente é um livro que daria um filme, de tão bem que ele amarra todas as histórias em uma trama central e um cenário rico. Decidi então desenhar a minha recomendação de leitura. É também um ótimo exercício de <em>storytelling</em> resumir tudo a no máximo nove quadros por página, e me trouxe algumas exigências de desenho um pouco mais complexas...</p>]]></content:encoded>
</item>
<item>
<title>lugares onde estive hoje e me senti sozinho</title>
<link>https://blog.vandesande.design/lugares-onde-estive-hoje-e-me-senti-sozinho</link>
<guid isPermaLink="true">https://blog.vandesande.design/lugares-onde-estive-hoje-e-me-senti-sozinho</guid>
<pubDate>Wed, 22 Oct 2008 19:32:29 +0000</pubDate>
<description></description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/lugares-onde-estive-hoje-e-me-senti-sozinho/01-704.webp" width="768" height="1024" alt="">
</figure>]]></content:encoded>
</item>
<item>
<title>minha gata</title>
<link>https://blog.vandesande.design/minha-gata</link>
<guid isPermaLink="true">https://blog.vandesande.design/minha-gata</guid>
<pubDate>Sun, 19 Oct 2008 19:31:36 +0000</pubDate>
<description>Se você olhar direitinho, deixei no canto em branco os rascunhos que fiz do rosto. Esse desenho deu mais trabalho</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/minha-gata/01-704.webp" width="901" height="1120" alt="">
</figure>
<p>Se você olhar direitinho, deixei no canto em branco os rascunhos que fiz do rosto. Esse desenho deu mais trabalho</p>]]></content:encoded>
</item>
<item>
<title>Saber sorrir</title>
<link>https://blog.vandesande.design/saber-sorrir</link>
<guid isPermaLink="true">https://blog.vandesande.design/saber-sorrir</guid>
<pubDate>Wed, 15 Oct 2008 12:00:00 +0000</pubDate>
<description>alguns dias são difíceis de serem explicados em imagens ou palavras. Mas se você entender só o finalzinho, então é universal...</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/saber-sorrir/01-704.webp" width="1024" height="918" alt="">
</figure>
<p>alguns dias são difíceis de serem explicados em imagens ou palavras. Mas se você entender só o finalzinho, então é universal...</p>]]></content:encoded>
</item>
<item>
<title>Margens de cadernos</title>
<link>https://blog.vandesande.design/margens-de-cadernos</link>
<guid isPermaLink="true">https://blog.vandesande.design/margens-de-cadernos</guid>
<pubDate>Tue, 07 Oct 2008 19:19:57 +0000</pubDate>
<description>todo dia eu vou treinando um pouco, parece que vai voltando alguma coisa...</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/margens-de-cadernos/01-704.webp" width="768" height="1024" alt="">
</figure>
<p>todo dia eu vou treinando um pouco, parece que vai voltando alguma coisa...</p>]]></content:encoded>
</item>
<item>
<title>Anatomia de uma reunião inútil</title>
<link>https://blog.vandesande.design/anatomia-de-uma-reuniao-inutil</link>
<guid isPermaLink="true">https://blog.vandesande.design/anatomia-de-uma-reuniao-inutil</guid>
<pubDate>Tue, 30 Sep 2008 12:00:00 +0000</pubDate>
<description></description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/anatomia-de-uma-reuniao-inutil/01-704.webp" width="1024" height="768" alt="">
</figure>]]></content:encoded>
</item>
<item>
<title>por que eu deveria ouvir mais feist e menos stephen hawking</title>
<link>https://blog.vandesande.design/por-que-eu-deveria-ouvir-mais-feist-e-menos-stephen-hawking</link>
<guid isPermaLink="true">https://blog.vandesande.design/por-que-eu-deveria-ouvir-mais-feist-e-menos-stephen-hawking</guid>
<pubDate>Wed, 24 Sep 2008 12:00:00 +0000</pubDate>
<description>Neutral milk hotel e feist me ajudaram mais a terminar o trabalho. Mas a idéia até agora ainda me fascina...</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/por-que-eu-deveria-ouvir-mais-feist-e-menos-stephen-hawking/01-704.webp" width="1280" height="1707" alt="">
</figure>
<p>Neutral milk hotel e feist me ajudaram mais a terminar o trabalho. Mas a idéia até agora ainda me fascina...</p>]]></content:encoded>
</item>
<item>
<title>ironia</title>
<link>https://blog.vandesande.design/ironia</link>
<guid isPermaLink="true">https://blog.vandesande.design/ironia</guid>
<pubDate>Fri, 19 Sep 2008 12:00:00 +0000</pubDate>
<description>Não vou contar como eu saí dessa. Mas não envolveu pedir dinheiro na rua nem telefonar pra ninguém..</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/ironia/01-704.webp" width="960" height="1280" alt="">
</figure>
<p>Não vou contar como eu saí dessa. Mas não envolveu pedir dinheiro na rua nem telefonar pra ninguém..</p>]]></content:encoded>
</item>
<item>
<title>projetos que eu provavelmente não vou fazer</title>
<link>https://blog.vandesande.design/projetos-que-eu-provavelmente-nao-vou-fazer</link>
<guid isPermaLink="true">https://blog.vandesande.design/projetos-que-eu-provavelmente-nao-vou-fazer</guid>
<pubDate>Tue, 16 Sep 2008 12:00:00 +0000</pubDate>
<description>but someone should.</description>
<content:encoded><![CDATA[<blockquote>
<p>but someone should.</p>
</blockquote>
<figure>
<img src="https://blog.vandesande.design/media/projetos-que-eu-provavelmente-nao-vou-fazer/01-704.webp" width="768" height="1024" alt="">
</figure>]]></content:encoded>
</item>
<item>
<title>The Impact of Riots in Haiti on One Laptop Per Child</title>
<link>https://blog.vandesande.design/the-impact-of-riots-in-haiti-on-one-laptop-per-child</link>
<guid isPermaLink="true">https://blog.vandesande.design/the-impact-of-riots-in-haiti-on-one-laptop-per-child</guid>
<pubDate>Mon, 14 Apr 2008 12:00:00 +0000</pubDate>
<description>Timothy Falconer, from the Waveplace Foundation, wrote to inform about the current status of events in Haiti, as many riots took over Port-au-Prince, where he is running a OLPC…</description>
<content:encoded><![CDATA[<p>Timothy Falconer, from the Waveplace Foundation, <a href="http://lists.laptop.org/pipermail/olpc-open/2008-April/000758.html%20" target="_blank" rel="noopener">wrote to inform about the current status</a> of events in Haiti, as many riots took over Port-au-Prince, where he is <a href="https://web.archive.org/web/20080414/http://www.olpcnews.com/implementation/schools/waveplace_foundation_caribbean_children.html" target="_blank" rel="noopener">running a OLPC pilot project</a>:</p>
<blockquote>
<p>"The children and staff are safe, though they have only enough food and medicine for about a week. The markets have been closed in Port-Au-Prince, so this could become a concern. Emile said earlier today that he feels things will get better soon because of the peacekeepers.</p>
<p>Everyone's taking it day by day. I just got off the phone with Emile, our chief mentor in Haiti, who is staying in the countryside until things come down. Our pilot is effectively on hold due to safety concerns. I'll update you when I hear more about the children, who are close to the area of the protests."</p>
</blockquote>
<p>This raises two important issues on the Haiti Pilot. The first is one that was <a href="https://web.archive.org/web/20080414/http://www.olpcnews.com/countries/haiti/olpc_haiti_xo_laptop_abject_poverty.html" target="_blank" rel="noopener">brought before by Wayan</a>: OLPC is an education project, but there are maybe some places that are beyond the reach of the One Laptop goal. It seems that the riots are calming down now, but what if they did not?</p>
<p>If violence in Port au Prince escalated to a point where most family would be forced to flee to surrounding areas, what would happen to the pilot project? Would the families disperse and the valuable laptops quickly vanish from the kid's hand as they where forced to sell/give it away? Or would Waveplace Foundation grab all the laptops from international donors and move out of the country, or risk having the school looted to bare bones?</p>
<p>Maybe we have to wait until political stability has reigned in some places, before a long term education project can be invested. Maybe it's too much risk for those precious resources that could be more safely invested in quiet rural areas in Peru. Maybe the "Mudhut argument" is true and laptops serve no good for kids below a certain threshold of poverty, that lack more basic things such a peaceful environment in which to grow.</p>
<p>Or maybe not, and that's the second important issue on this. Watch this footage sent us from Haiti:</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/JPYBEJnsb0M" title="YouTube video" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<p>Although it has CNN stamped on it it's clear that much of those videos are made from amateur cameras. We are talking about impoverished Haiti, all right, but we are talking about a 21st Century impoverished Haiti and they are also part of the digital imaging generation, and those in the middle to upper class in Port au Prince can afford some way to film video and post it online.</p>
<p>None of them are actually coming from kids with XO laptops, but - hey they could be. We are all shocked hearing those reports of violence from Haiti, but maybe if there were no computers anywhere we might never hear them in the first place. Thanks to this connecting technology we can see the San Francisco <a href="http://youtube.com/watch?v=bWbVL2PbJ4Y" target="_blank" rel="noopener">Olympic torch protests</a> live on the web, we can see the <a href="http://www.sokwanele.com/map/all_breaches" target="_blank" rel="noopener">violence in Zimbabwe in Google maps</a>.</p>
<p>And thanks to a mesh system this communication network might still work if everything else goes down. So giving the impoverished kids of Haiti a way to allow their voices be heard, their stories be told and allowing them hearing news from the world outside even during a crisis is a way to be a part of this new generation.</p>
<p>And maybe this is worth all the risks.</p>]]></content:encoded>
</item>
<item>
<title>A prova final sobre a impossibilidade de entrarmos em contato com vida inteligente extraterrestre, conforme provado por diagramas visuais</title>
<link>https://blog.vandesande.design/a-prova-final-sobre-a-impossibilidade-de-entrarmos-em-contato-com-vida</link>
<guid isPermaLink="true">https://blog.vandesande.design/a-prova-final-sobre-a-impossibilidade-de-entrarmos-em-contato-com-vida</guid>
<pubDate>Sat, 05 Apr 2008 12:00:00 +0000</pubDate>
<description>Passo 1: Observar como, com o advento da civilização o homem foi criando cada vez mais formas de se autodestruir. Durante os primeiros milhares de anos essas chances eram…</description>
<content:encoded><![CDATA[<p>Passo 1: Observar como, com o advento da civilização o homem foi criando cada vez mais formas de se autodestruir. Durante os primeiros milhares de anos essas chances eram negligenciáveis (chance de acidentalmente destruir todos os humanos com machadadas) essa possibilidade tornou-se palpável a ponto de ser ponto de debate constante em reuniões de cúpula política, processos judiciais ou aulas de ciência do primário.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-prova-final-sobre-a-impossibilidade-de-entrarmos-em-contato-com-vida/01-704.webp" width="1288" height="456" alt="historia de ideias estupidas">
</figure>
<p>Medidas preventivas foram bem sucedidas nos últimos cem anos, mas existe um risco crescente que elas falhem em algum ponto nos próximos 5 mil anos</p>
<figure>
<img src="https://blog.vandesande.design/media/a-prova-final-sobre-a-impossibilidade-de-entrarmos-em-contato-com-vida/02-704.webp" width="1144" height="375" alt="uma questao de escala">
</figure>
<p>Partindo do pressuposto que uma das milhares de opção de apocalipse se realize dentro de dois ou três mil anos, é importante ressaltar que esse tempo, apesar de longo para uma vida é relativamente irrelevante em termos evolutivos ou mesmo cosmogênicos.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-prova-final-sobre-a-impossibilidade-de-entrarmos-em-contato-com-vida/03-475.webp" width="475" height="182" alt="escape">
</figure>
<p>Percebendo que o tempo, na escala cósmica entre o surgimento da vida e seu auto aniquilamente é quase um estlo imediato, notemos que é um tempo muito curto para que possamos mudar de galáxia ou criar um novo planeta.</p>
<figure>
<img src="https://blog.vandesande.design/media/a-prova-final-sobre-a-impossibilidade-de-entrarmos-em-contato-com-vida/04-704.webp" width="1060" height="595" alt="visão geral">
</figure>
<p>Conclusão:</p>
<p>A vida nesse exemplo é como faíscas que surgem espontaneamente em um matagal onde cada plantinha está separada por dois mil kilômetros de deserto.</p>
<p>Do ponto de vista cósmico, Vida é uma anomalidade planetária autodestrutiva de curtíssima duração.</p>
<p>C.Q.D.</p>]]></content:encoded>
</item>
<item>
<title>Sobre o blog</title>
<link>https://blog.vandesande.design/sobre-o-blog</link>
<guid isPermaLink="true">https://blog.vandesande.design/sobre-o-blog</guid>
<pubDate>Sat, 05 Apr 2008 12:00:00 +0000</pubDate>
<description>Meu projeto Original para esse blog era de escrever semanalnte 200 palavras. aparentemente eu nao gosto tanto de escrever assim. Mas o blog não morreu nem morrerá. Tenho o que…</description>
<content:encoded><![CDATA[<p>Meu projeto Original para esse blog era de escrever semanalnte 200 palavras. aparentemente eu nao gosto tanto de escrever assim.</p>
<p>Mas o blog não morreu nem morrerá. Tenho o que dizer e sempre que quiser dizer o farei por aqui. Decidi tomar a pílula do RSS que alivia o autor da necessidade de constância. O dia que eu colocar algo novo, deixe-mem que eu mesmo aviso.</p>
<p>Agora seguimos com nossa programação normal..</p>]]></content:encoded>
</item>
<item>
<title>Going XO Laptop Green is Better and Cheaper</title>
<link>https://blog.vandesande.design/going-xo-laptop-green-is-better-and-cheaper</link>
<guid isPermaLink="true">https://blog.vandesande.design/going-xo-laptop-green-is-better-and-cheaper</guid>
<pubDate>Thu, 28 Feb 2008 12:00:00 +0000</pubDate>
<description>If there&#x27;s a trend that is universally welcome is the greener technology trend. But in most industries green is sold at a special premium: from organic food to electric cars, you…</description>
<content:encoded><![CDATA[<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/going-xo-laptop-green-is-better-and-cheaper/01-200.webp" width="200" height="237" alt="">
<figcaption>Mary Lou Jepsen of OLPC</figcaption>
</figure>
<p>If there's a trend that is universally welcome is the greener technology trend. But in most industries green is sold at a special premium: from organic food to electric cars, you are paying for your eco-conscience. But Mary Lou Jepsen has different approach.</p>
<p>At first when told that to go green would be more costly the OLPC was willing to sacrifice a greener XO for a cheaper but not so green laptop. But as she progressed on the design process it became clear that to build a laptop that cost less also means a laptop that consumes less resources as a whole. In her words:</p>
<blockquote>
<p>"People are trying to make a buck off of green. Green is actually cheaper. Green isn't about (sigh) buying more stuff."</p>
</blockquote>
<p>According to a very inspiring keynote she gave at the <a href="http://www.greenergadgets.com/" target="_blank" rel="noopener">Greener Gadget conference</a> in the beginning of February the factors of making a laptop green are:</p>
<ul>
<li><p>Consume less power. According to Mary Lou if every computer in the consumer market had the power footprint of the XO, their total energy consumption could fall 95%. Also by reducing the necessary power it needs to run you put the laptop under the threshold that can be provided by some clever and surprisingly low tech sources, as cows, bicycles or cheap solar panels.</p></li>
<li><p>Expand the lifetime of the product. Surprisingly enough that's a factor rarely factored in when figuring out the impact of a product: how long will it last?</p></li>
<li><p>Repairing is more important than recycling. If disposed the XO battery can be "consumed by soil bacteria" but Mary Lou has a bigger point: by making the laptop easier to service will prevent it from being dumped in the first place.</p></li>
</ul>
<p>You can check the highlights of the presentation above, but I would highly recommend anyone actually <a href="http://scribemedia.blip.tv/file/682463/" target="_blank" rel="noopener">watching the whole 50 minutes presentation</a> where she talks a bit about the purpose of her new company PixelQi, the deployment of the laptop and the history of the design.</p>
<p>Or if you attended you could have done as Crackhead did and actually get <a href="https://web.archive.org/web/20080228/http://olpcnews.com/forum/index.php?topic=1908.msg14885" target="_blank" rel="noopener">Jepsen to sign your XO</a>.</p>]]></content:encoded>
</item>
<item>
<title>Por que precisamos acabar com cadastros</title>
<link>https://blog.vandesande.design/por-que-precisamos-acabar-com-cadastros</link>
<guid isPermaLink="true">https://blog.vandesande.design/por-que-precisamos-acabar-com-cadastros</guid>
<pubDate>Sun, 10 Feb 2008 12:00:00 +0000</pubDate>
<description>Em quase todas as empresas de web que já trabalhei houve um mesmo momento, já participei da discussão sobre uma mesma página central: cadastro. Se cadastrar é tratado como um mal…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/por-que-precisamos-acabar-com-cadastros/01-400.webp" width="400" height="313" alt="blog-ghost.jpg">
</figure>
<p>Em quase todas as empresas de web que já trabalhei houve um mesmo momento, já participei da discussão sobre uma mesma página central: cadastro. Se cadastrar é tratado como um mal necessário, uma retribuição que o usuário faz ao site “fizemos o site todo, o mínimo que ele pode fazer é nos dar o seu email”.</p>
<p>Espero que essa seja mais uma mentalidade que mude logo. Hoje há dois caminhos básicos para um site login-free: você cria ele como um anexo de uma rede social já existente, (api do twitter, facebook apps ou opensocial) ou você usa um cadastro universal decentralizado (openID) onde o usuário se identifica com uma url.</p>
<p>Nenhuma dessas tecnologias ainda é perfeita, e talvez no futuro surjam mistos interessantes, mas elas são absolutamente necessárias. Por que?</p>
<p>1- Os usuários querem. Já passamos do ponto de saturação de redes sociais. Pedir que eu convide meus amigos para o seu site é me convidar a passar longe.</p>
<p>2- Honestidade. Para muitos sites confiáveis, ter um email checado e informações extras tem um enorme “valor em mailing”. Seremos sinceros: mailing é uma forma disfarçada de spam. Revender essa base é retirar o disfarce.</p>
<p>4- Acabar com os muros entre os sites. Se você pode participar de um site se referenciando como outro os sites tomam vida própria. Torna-se possível ver –literalmente– o que um site ou companhia diz ou faz no outro criando uma conversa real entre eles.</p>
<p>5- Dados atualizados, sempre. Ter uma informação sobre mim sentada em um único canto controlado por mim garante que ela vai estar atualizada e completa.</p>
<p>6- Reputação. É muito mais fácil identificar a reputação de um usuário que já tem um histórico em outras redes do que quando tudo que temos é um username.</p>]]></content:encoded>
</item>
<item>
<title>UCA Brazil Auction for Classmate PC - Canceled!</title>
<link>https://blog.vandesande.design/uca-brazil-auction-for-classmate-pc-canceled</link>
<guid isPermaLink="true">https://blog.vandesande.design/uca-brazil-auction-for-classmate-pc-canceled</guid>
<pubDate>Thu, 07 Feb 2008 12:00:00 +0000</pubDate>
<description>Last Friday the Brazilian Government nullified the December laptop bidding that was partially won by Positivo Informática with the Classmate PC laptop, alleging the final US$360…</description>
<content:encoded><![CDATA[<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/uca-brazil-auction-for-classmate-pc-canceled/01-200.webp" width="200" height="273" alt="classmate pc olpc xo">
<figcaption>No Classmate PC vs OLPC XO?</figcaption>
</figure>
<p>Last Friday the Brazilian Government nullified the December laptop bidding that was partially won by Positivo Informática with the Classmate PC laptop, alleging the final US$360 per unit price was too expensive.</p>
<p>Although it never published what was the reference price it expected, some government officials have compared to the US$199 Uruguay paid for each XO Laptop unit. SIMM, the company with the exclusive distribution of the OLPC in Brazil had offered the XO for US$387 a price that David Cavallo said it was the minimum they could offer at those conditions.</p>
<p>And the auction conditions were in fact very different from Uruguay so the price comparison is almost unfair. For one, Uruguay centralized all shipping to one location and distribution would be done by the government.</p>
<p>In the Brazilian case laptops were to be shipped to different states in almost continental sized country, including some Amazon states that are only reachable by air or river. Other key differences go in the three year warranty that the Lula Government asked and finally the import tax breaks that were promised but never delivered.</p>
<p>At the moment the future of the Um Computador por Aluno (One Computer per Student, in Portuguese) laptops is uncertain. Brazilian Newspaper Folha speculates that the next bidding might have fewer requirements, ask for fewer laptops or finally increase the allotted money.</p>
<p>In the last month, the OLPC Brazil community hasn't stopped analyzing the meaning of the Classmate partial win of the now-cancelled bid. Some highlights:</p>
<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/uca-brazil-auction-for-classmate-pc-canceled/02-200.webp" width="200" height="181" alt="olpc for everyone">
<figcaption>She still has XO hope</figcaption>
</figure>
<ul>
<li><p>Although many have accused Intel of dumping the price of the classmate to win over the XO, this possibility found more ground in the hearts of the conspiracy theory believers than in the math of any rabid OLPC defender.The lower price by Positivo was achieved by more clever business tactics, knowing the Brazilian tax reality and doing local assembly. Positivo responded by saying that they are ready to get the price down to US$300 if some tax-breaks apply.</p></li>
<li><p>An interesting fact has emerged: when adding all the 4,000 hours the laptops are expected to be used, each XO laptop is expected to consume US$45 dollars worth of energy, while the more power hungry Classmate would consume US$90. It's a small difference but in such a tight race, 45 dollars can tip <a href="http://moourl.com/a349u" target="_blank" rel="noopener">TCO calculations</a> to the other side.</p></li>
<li><p>Before the auction took place every hardware manufacturer was complaining for some requirement that should or should not be, which of course always coincided with something that their own product would have. One of the most intriguing was a complaint by the Telecomm industry on the requirement of Mesh Networking. The fact is that some Cell phone carriers were willing to offer phones as tools to bridge the digital gap. On a pay per minute basis, of course.</p></li>
<li><p>The most expensive offer was done by no one other than Sony. This Japanese company was willing to equip every Brazilian student with a feature- full Sony Vaio for the modest fee of over 1 billion US dollars.</p></li>
</ul>
<p>In related news, the teacher Léa Fagundes, responsible for the Brazil pilot project was just awarded a Unesco Prize for her works on technologies in education. The award was given (along with another for the singer, songwriter and Brazil's minister of culture Gilberto Gil) in a special event held to celebrate Unesco's 60 year anniversary..</p>]]></content:encoded>
</item>
<item>
<title>The Apple Ultrathin: Who&#x27;s Driving the Innovation Now?</title>
<link>https://blog.vandesande.design/the-apple-ultrathin-whos-driving-the-innovation-now</link>
<guid isPermaLink="true">https://blog.vandesande.design/the-apple-ultrathin-whos-driving-the-innovation-now</guid>
<pubDate>Wed, 16 Jan 2008 12:00:00 +0000</pubDate>
<description>The first manufactured computer to ship without a floppy drive was the original candy colored iMac, back 1998, which relied only on internet, a CD-ROM and a port called the…</description>
<content:encoded><![CDATA[<p>The first manufactured computer to ship without a floppy drive was the original candy colored iMac, back 1998, which relied only on internet, a CD-ROM and a port called the Universal Serial Bus ports.</p>
<p>Ten years ago, a cd burner was something expensive, few people had heard of USB connections and the keychain flash drive wasn't coming to market for another two years. This move was considered highly ahead of it's time for apple and for some this helped launch the USB as a standard and displace the 3.5" disks onto oblivion.</p>
<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/the-apple-ultrathin-whos-driving-the-innovation-now/01-200.webp" width="200" height="164" alt="olpc price">
</figure>
<p>Fast forward to 2008 and Apple announced the wireless Macbook Air, a ultralight low power laptop with no cd or dvd drive, no hard disk, but highly connected portable computer. In a few years this will probably be the industry standard, but this time around it's not Cupertino who's setting it.</p>
<p>Granted, one cannot compare the $199 XO to a $1,799 Macbook anymore than one can compare the recently announced $2,500 Nano Car by India's Tata motor to a $50,000 Porsche, unless on technological grounds. And that is what I'm going to do.</p>
<p><strong>Apple Macbook Air vs. OLPC XO-1</strong></p>
<p>By using cutting edge technology, the Negroponte's team was able to come out not with a dumbed down version of a commercial laptop but a innovative product that was also cheap. The XO was the first portable rely solely on solid state drive and following it's steps came the classmate, the Eee pc and now the Macbook Air.</p>
<p>The XO stills sets some standards that are sure to be followed by the big players. The screen technology for example is certainly – as Lou Jepsen has said – to become a trend. The Apple iPhone is probably the only other product that can be compared in terms of screen resolution and I would not be surprised if their laptops upgraded to 144 dpi displays soon.</p>
<p>And I could bet that mesh networking is the next XO technology to come to a general consumer product. Of course this is not to say that other industries are copying the XO innovations but this is rather a consequence of bigger trends (like falling flash drive prices) that OLPC happened to catch first.</p>
<p>What this does means is that probably all this incredible "clock-stopping hot" technology the little green laptop has today will probably be quite common place by the end of 2008. And by then, what will happen to the One Laptop?</p>
<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/the-apple-ultrathin-whos-driving-the-innovation-now/02-325.webp" width="325" height="209" alt="olpc price">
</figure>
<p><strong>Price vs. Power Future</strong></p>
<p>By there we can expect Apple, Eee, Dell and every other computer manufacturer to have updated their computer models. Prices may go down a bit, but muscles will surely go way up. What can we expect from OLPC?</p>
<p>I hope XO2 to continue forcing the biggest innovation on the computer industry so far: that muscles might go up a bit, but price – oh price – will continue to drop radically.</p>
<p>Let all the computer manufacturers continue their Arms Race. Let OLPC step outside to another completely different kind of marathon.</p>
<p>The one for the children.</p>]]></content:encoded>
</item>
<item>
<title>ú hebe quatro ponto zero</title>
<link>https://blog.vandesande.design/u-hebe-quatro-ponto-zero</link>
<guid isPermaLink="true">https://blog.vandesande.design/u-hebe-quatro-ponto-zero</guid>
<pubDate>Thu, 10 Jan 2008 12:00:00 +0000</pubDate>
<description>web 4.0 vai ser quando toda a informação estiver bem organizada, todos os metadados estiverem completos, todas as redes sociais estiverem saturadas, todos os artigos sobre o…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/u-hebe-quatro-ponto-zero/01-369.webp" width="369" height="130" alt="web 4.0">
</figure>
<p>web 4.0 vai ser quando toda a informação estiver bem organizada, todos os metadados estiverem completos, todas as redes sociais estiverem saturadas, todos os artigos sobre o assunto forem escritos, a internet se desintegrar em oxigênio, o browser se tornar desnecessário, e pudermos, finalmente, seguir em frente com as nossas vidas nos preocupando com outras coisas mais relevantes.</p>
<p>Eu desejo um 2008 com menos hype e buzzwords e mais conteúdo para todos vocês.</p>]]></content:encoded>
</item>
<item>
<title>David Cavallo Interview on OLPC Brazil&#x27;s Apparent Loss</title>
<link>https://blog.vandesande.design/david-cavallo-interview-on-olpc-brazils-apparent-loss</link>
<guid isPermaLink="true">https://blog.vandesande.design/david-cavallo-interview-on-olpc-brazils-apparent-loss</guid>
<pubDate>Fri, 21 Dec 2007 19:40:56 +0000</pubDate>
<description>The Brazilian auction to purchase 150,000 computers for children is on currently on hold after the end of the first round which ended on December 19th. Positivo Informática won…</description>
<content:encoded><![CDATA[<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/david-cavallo-interview-on-olpc-brazils-apparent-loss/01-200.webp" width="200" height="273" alt="classmate pc olpc xo">
<figcaption>Classmate PC over OLPC XO?</figcaption>
</figure>
<p>The <a href="https://blog.vandesande.design/um-computador-por-aluno-laptop-auction-begins-in-brazil">Brazilian auction to purchase 150,000 computers for children</a> is on currently on hold after the end of the first round which ended on December 19th. Positivo Informática won the first round of biding with the lowest offer, 98 millions of Reais, 6 million less than OLPC had offered.</p>
<p>No one has had access to details of each proposal but the most probable culprit were customs duties in Brazil which, along with all the maintenance and warranties, brought the total of each XO to $387,39, twenty dollars over the winning model. Positivo had by it's side decades olds tax policies that favors local assembly with lower taxes on electronics components, not ready made equipment.</p>
<p>The model offered by Positivo is still unknown but Intel has already congratulated them for winning, which led all to believe that it's a newer version of the <a href="https://web.archive.org/web/20071221/http://olpcnews.com/forum/index.php?board=31.0" target="_blank" rel="noopener">Classmate PC</a> with built-in camera and mesh networking.</p>
<p>To bring yet more confusion to the issue, in the same morning that the auction began was issued an official statement freeing all candidates of the taxes, but no one, neither the candidates or the auction judges, were informed about it.</p>
<p>Currently the fate of the 150,000 laptops are unknown. The judges consider the price high but the rules allow exclusive negotiations with Positivo Informática - the lowest bidder.</p>
<p><a href="http://www.blogger.com/profile/00488197231861395226" target="_blank" rel="noopener">Jaime Balbino</a>, a fervent OLPC supporter made an interview with <a href="http://www.media.mit.edu/people/bio_cavallo.html" target="_blank" rel="noopener">David Cavallo</a>, the main representative of the OLPC in Brazil. They talked about the influence of Brazil in the development of the model advocated by OLPC, the Brazilian development policy, competition against monopolies of technology, the bidding (won by Positive Computing) and the future of the entity without the expansion of the Brazilian experience.</p>
<p>From <a href="http://www.media.mit.edu/people/bio_cavallo.html" target="_blank" rel="noopener">Jaime's interview</a>:</p>
<p>Local assembly: the key to Brazil<strong>David Cavallo</strong>: I personally believe that things went somewhat astray for a variety of reasons and that the structure of the governmental purchase request led to a result no one seems to be satisfied with.</p>
<figure>
<img src="https://blog.vandesande.design/media/david-cavallo-interview-on-olpc-brazils-apparent-loss/02-200.webp" width="200" height="274" alt="olpc production keyboard">
</figure>
<p>We are a non-profit. Our price to any country, including Brazil, is the cost of the laptop itself. Uruguay purchased the laptop for USD$197. They also purchased in a way that brought connectivity to homes and communities. We will not bid above our costs. We cannot bid below our costs, as a for-profit might do in order to make profit by charging more for other products and services, or to lock out competition and raise prices subsequently.</p>
<p>So the huge price differential was because of the extraneous conditions imposed upon price for the bid. This includes local assembly (NOT PRODUCTION OR FABRICATION, for which conditions do not exist at this time in Brazil), various taxes, shipping (of components which also raises costs), and a 3-year warranty. They also decided to select solely on the basis of price, without consideration of the display, or power consumption, or eco-friendliness, or connectivity in and out of schools."David Cavallo then reminds us that the project can go on, with or without Brazil as they have already enough buyers to make it sustainable.</p>
<p>For OLPC in Brazil, the game doesn't ends until the judge brings the hammer down, and the last message from the auction site was that the bid was closed for an indeterminate time.</p>
<p>If we do not hear from them today, we will probably not hear anything until after the Christmas holidays are over. Or worst, we might have to wait until the new year begins because, as a local saying goes"in Brazil the year doesn't start before the carnival ends."And by then, it might be just too late.</p>
<p>Tags: <a href="http://www.technorati.com/tag/Classmate%20PC" target="_blank" rel="noopener">Classmate PC</a> | <a href="http://www.technorati.com/tag/Custom%20Duties" target="_blank" rel="noopener">Custom Duties</a> | <a href="http://www.technorati.com/tag/David%20Cavallo" target="_blank" rel="noopener">David Cavallo</a> | <a href="http://www.technorati.com/tag/Jaime%20Balbino" target="_blank" rel="noopener">Jaime Balbino</a> | <a href="http://www.technorati.com/tag/OLPC" target="_blank" rel="noopener">OLPC</a> | <a href="http://www.technorati.com/tag/OLPC%20Brazil" target="_blank" rel="noopener">OLPC Brazil</a> | <a href="http://www.technorati.com/tag/Positivo%20Informática" target="_blank" rel="noopener">Positivo Informática</a> | <a href="http://www.technorati.com/tag/XO%20Laptop" target="_blank" rel="noopener">XO Laptop</a> |</p>]]></content:encoded>
</item>
<item>
<title>Querido papai noel: eu quero uma interface nova</title>
<link>https://blog.vandesande.design/querido-papai-noel-eu-quero-uma-interface-nova</link>
<guid isPermaLink="true">https://blog.vandesande.design/querido-papai-noel-eu-quero-uma-interface-nova</guid>
<pubDate>Thu, 20 Dec 2007 12:00:00 +0000</pubDate>
<description>A lixeirinha que voce joga coisas fora, assim como as pastas as janelas e icones da área de trabalho, já fizeram 20 anos de vida O mouse com que você mexe tudo isso já passou de…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/querido-papai-noel-eu-quero-uma-interface-nova/01-48.webp" width="48" height="34" alt="picture-3.png">
</figure>
<p>A lixeirinha que voce joga coisas fora, assim como as pastas as janelas e icones da área de trabalho, já fizeram 20 anos de vida O mouse com que você mexe tudo isso já passou de muito disso. 2007 foi definitivamente o ano que produtos com interfaces totalmente diferentes chegaram ao mercado mainstream mostrando que outra interação é possível e que ela vai além do nosso computador pessoal.</p>
<p>&lt;iPhone e seu Multitouch. Touchscreen já existe há duas décadas, mas era tão natural quanto tentar arrumar seus papéis com um dedo só. Poder usar mais de um dedo significa poder girar a mão, apertar, soltar. E adicionar elementos de física, inércia, desaceleração para os elementos da interface são mais do que uma animação decorativa, tornam tudo mais natural. Que 2008 as interfaces pareçam com elementos do mundo real.</p>
<p>Wii e seus vários sensores. O wii tem tantos sensores que fazem você esquecer que ele tem quaisquer sensores. Jogar com ele é usar a imaginação e brincar sacudindo sua espada invisível, apontando um arco e flecha não existente. Que em 2008 interfaces levem mais em consideração o objeto como um todo e sua posição no mundo real e não só os botões que você aperta.</p>
<p>Google Android. A plataforma open source para celulares do google parece já ser campeão antes mesmo de existir. O iPhone só se tornou realmente útil depois que fo hackeado com novos aplicativos. Quem em 2008 plataformas sejam abertas.</p>
<p>XO e o sugar. Claro que não podia deixar esse menino de lado. Apesar de usar a mesma interação básica: teclado e mouse, o Sugar se destaca imensamente por ter toda uma nova metáfora da computação emprestada da web, onde tudo gira em torno de colaboração. Que 2008 possamos aceitar e aprender novas metáforas para nossos sites e softwares.</p>
<figure>
<img src="https://blog.vandesande.design/media/querido-papai-noel-eu-quero-uma-interface-nova/02-128.webp" width="128" height="123" alt="picture-4.png">
</figure>]]></content:encoded>
</item>
<item>
<title>Um Computador por Aluno Laptop Auction Begins in Brazil!</title>
<link>https://blog.vandesande.design/um-computador-por-aluno-laptop-auction-begins-in-brazil</link>
<guid isPermaLink="true">https://blog.vandesande.design/um-computador-por-aluno-laptop-auction-begins-in-brazil</guid>
<pubDate>Wed, 19 Dec 2007 12:00:00 +0000</pubDate>
<description>Yesterday was the first day of the auction process for the Um Computador por Aluno project (One Computer per Student, in Portuguese). The process was suspended at the end of the…</description>
<content:encoded><![CDATA[<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/um-computador-por-aluno-laptop-auction-begins-in-brazil/01-200.webp" width="200" height="157" alt="">
<figcaption>Brazilian classrooms of tomorrow?</figcaption>
</figure>
<p>Yesterday was the first day of the auction process for the Um Computador por Aluno project (One Computer per Student, in Portuguese). The process was suspended at the end of the day inconclusively and can drag for two more days.</p>
<p>The lowest offer was at 71.2 million dollars which prices every one of the 150,000 laptops at US$475 which was deemed as unacceptable by the house. Over 8 proposals were made from prices ranging from $500 to $1,600 dollars, but the identity of all bidders will be revealed only after the auction is over.</p>
<p>The whole process is being very open, and this was embraced wholeheartedly by the <a href="http://lists.laptop.org/listinfo/brasil" target="_blank" rel="noopener">open source community</a> which followed the auction site as if it was a twitter account. All bids and messages from the judges are posted online and can be followed by anyone with an internet access and every half hour updates were posted to multiple OLPC related mailing lists.</p>
<p>From there they where dissected as everyone tries to make sense of what, in the end, makes the price of one laptop. And finally all price changes were documented in an <a href="http://spreadsheets.google.com/ccc?key=pH0vKjJkMrh3kdYXJ2dlaJA&amp;hl=pt_BR&amp;pli=1" target="_blank" rel="noopener">online spreadsheet</a> that also converted the prices from Brazilian real to US dollar.</p>
<p>The price of US$475 ( R$855 ) include shipping, maintenance and taxes, lots of taxes. In Brazil all electronic imports are charged at least 60% percent over their sales price just to cross the border. Take in account other duties, including sales and that`s the reason this is the leading country in the international <a href="http://apple.slashdot.org/article.pl?sid=07/01/24/0133240" target="_blank" rel="noopener">iPod currency index</a>.</p>
<p>This contradiction, where the government cannot afford to pay its own taxes where previously known and led to some Government officials to declare their intent on making the educational laptop duty-free. Nothing official was arranged before the start of the bid which led the bid judge to clarify that all taxes should be taken in account. The taxes could be lifted later for this or future purchases, bringing the total cost to considerably lower.</p>
<p>If OLPC win this game this might mean much more than 150 thousand laptops out of quanta. The UCA project main goal is to achieve a total <em>annual</em> order of 12 million laptops. The process will end in the 20th but government official said the result can be published as late as the 24th.</p>
<p>Will OLPC find a 150 thousand present wrapped under it's Christmas tree?</p>]]></content:encoded>
</item>
<item>
<title>Pequenas ferramentas</title>
<link>https://blog.vandesande.design/pequenas-ferramentas</link>
<guid isPermaLink="true">https://blog.vandesande.design/pequenas-ferramentas</guid>
<pubDate>Sat, 08 Dec 2007 12:00:00 +0000</pubDate>
<description>Aplicativos gigantes sempre vão ter o seu lugar, mas assim como na internet, as vezes programas com um uso específico feitos por um time de 3 ou 4 desenvolvedores as vezes…</description>
<content:encoded><![CDATA[<p>Aplicativos gigantes sempre vão ter o seu lugar, mas assim como na internet, as vezes programas com um uso específico feitos por um time de 3 ou 4 desenvolvedores as vezes conseguem ser mais práticos, eficientes, menos bugs e serem muito mais agradáveis de usar. E como muitas vezes eles trabalham juntos, a soma das partes faz a experiência de usar um colosso como o Dreamweaver tão agradável quanto usar o software de imposto de renda eletrônico.</p>
<p>Essa é a minha receita. Aceito sugestões.</p>
<p>1-O design em si, ninguém escapa do photoshop..</p>
<p>2-Instale o <a href="http://www.blacktree.com/" target="_blank" rel="noopener">Quicksilver</a>. É a cola que junta tudo.</p>
<p>3-Abra uma janela do preview com o design.</p>
<p>4-Para acessar e mesmo editar arquivos direto do ftp: <a href="http://cyberduck.ch/" target="_blank" rel="noopener">Cyberduck</a>.</p>
<p>5-Configure o <a href="http://macrabbit.com/cssedit/" target="_blank" rel="noopener">CSSEdit</a> como editor externo de CSS no Cyberduck. Este é um dos programas mais bem feitos que já vi.</p>
<p>6-Usando o quicksilver chame o <a href="http://iconfactory.com/software/xscope" target="_blank" rel="noopener">Xscope</a>. Um programinha hiper simples com uma série de ferramentas como réguas, lupas e guias para voce colocar por cima de qualquer janela.</p>
<p>7-Use <a href="http://www.johnhaney.com/backdrop/" target="_blank" rel="noopener">Backdrop</a>, o 2o programa mais simples do mundo: uma tela preta pra tapar as outras janelas.</p>
<p>8-Se você tiver uma tela grande (ou dois monitores) pode colocar o preview e o css edit lado a lado e ir copiando usando essas réguas o layout literalmente pixel por pixel. O css edit ainda usa o colorpicker do OS X que permite que você puxe para seus elementos exatamente a cor que estiver em qualquer janela.</p>
<p>9-Para editar os htmls eu uso o <a href="http://smultron.sourceforge.net/" target="_blank" rel="noopener">Smultron</a> que é opensource e faz o básico de um notepad. Graças a comunidade já fizeram até <a href="http://www.shinze.com/index.php/post/2006/09/18/142-a-new-set-of-icons-for-smultron" target="_blank" rel="noopener">mesmo um set de ícones melhor</a> para ele.</p>
<p>10-Poderia continuar listando: <a href="http://www.colorschemer.com/online.html" target="_blank" rel="noopener">Colorschemer</a>, <a href="http://www.discoapp.com/" target="_blank" rel="noopener">Disco</a>, <a href="http://growl.info/" target="_blank" rel="noopener">Growl</a>, <a href="http://www.colorschemer.com/galleria_info.php" target="_blank" rel="noopener">Galleria</a></p>]]></content:encoded>
</item>
<item>
<title>Brazil Requests 150,000 Um Computador por Aluno Laptops</title>
<link>https://blog.vandesande.design/brazil-requests-150-000-um-computador-por-aluno-laptops</link>
<guid isPermaLink="true">https://blog.vandesande.design/brazil-requests-150-000-um-computador-por-aluno-laptops</guid>
<pubDate>Fri, 07 Dec 2007 12:00:00 +0000</pubDate>
<description>Brazil has officially opened a request for proposals for 150,000 &quot;educational laptops&quot; for it&#x27;s Um Computador por Aluno project (One Computer per Student, in Portuguese) and OLPC…</description>
<content:encoded><![CDATA[<p>Brazil has officially opened a request for proposals for 150,000 "educational laptops" for it's Um Computador por Aluno project (One Computer per Student, in Portuguese) and OLPC looks to be the preferred candidate.</p>
<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/brazil-requests-150-000-um-computador-por-aluno-laptops/01-200.webp" width="200" height="226" alt="Brazilian OLPC">
<figcaption>Brazilian children's future?</figcaption>
</figure>
<p><strong>Brazil's UCA Laptop RFP</strong></p>
<p>As the law mandates, the RFP is open for anyone to bid in, but the way the <a href="https://web.archive.org/web/20071207/http://www.olpcnews.com/files/Brazil-Computer-RFP.pdf" target="_blank" rel="noopener">official solicitation is written</a> it becomes clear they already have a winner in mind. The bidding demands that the laptops must have:</p>
<ul>
<li><p>A gnu-linux operation system</p></li>
<li><p>A video camera, microphone and audio output</p></li>
<li><p>Support temperatures between 5 and 41 degrees Celsius</p></li>
<li><p>A screen at least 7 inches, a minimum 800x600 pixel, not too much reflective on highly bright areas and have a high contrast in dark places</p></li>
<li><p>And the ability to mesh network with one another</p></li>
</ul>
<p>If that does not fit the XO laptop description enough, the final winner will be chosen based on who comes with the lowest price. Proposals will be accepted between December 18-20 so if Intel wants to be in the game they have no more than a week to have a serious update on their screen and a mesh network capability.</p>
<p>There's only one requirement that may make One Laptop Per Child sweat: the laptops must have a minimum of 36 months of full warranty. That's far from the naive "kids will repair it" maintenance plan of OLPC, but is in line with the <a href="https://web.archive.org/web/20071207/http://www.olpcnews.com/countries/uruguay/olpc_uruguay_buying_xo_laptops.html" target="_blank" rel="noopener">Brightstar promise to OLPC Uruguay</a>.</p>
<p><strong>Equal Distribution</strong></p>
<p>The laptops are intended to be distributed in 300 schools throughout all 26 states of Brazil equally, independent of state population. For a contrast 4,600 thousand laptops will be distributed in the Amazon state where the total population is 3.2 million while São Paulo with it's population of 40 million will receive only 5,500.</p>
<p>Brazil is a country of over 180 million people with at least 8 million kids aged between 5-9. Just 150,000 might seem shy when compared to the 250,000 of Peru or even 100,000 for the smaller 2 million habitants neighbor Uruguay. But seen as a whole it seems that South America is seriously intending to be the forefront of OLPC for 2008.</p>
<p>And here is a preview of what Brazilian teachers might experience soon, when laptops start to invade classrooms. Professora. Tania da Escola Luciana de Abreu Fala in Luciana de Abreu School, Porto Alegre speaks about OLPC Brazil in her classroom:</p>
<p>Translated video from <a href="http://olpc.tv/2007/10/07/subtitled-teacher-tania-from-luciana-de-abreu-olpc-test-school/#respond" target="_blank" rel="noopener">OLPC.TV</a>.</p>]]></content:encoded>
</item>
<item>
<title>Anúncio deve comunicar. Quantas vezes temos de nos relembrar disso?</title>
<link>https://blog.vandesande.design/anuncio-deve-comunicar-quantas-vezes-temos-de-nos-relembrar-disso</link>
<guid isPermaLink="true">https://blog.vandesande.design/anuncio-deve-comunicar-quantas-vezes-temos-de-nos-relembrar-disso</guid>
<pubDate>Wed, 28 Nov 2007 12:00:00 +0000</pubDate>
<description>Design é comunicar. Principalmente, claramente, comunicar. Um produto pode ser bem feito, bem pensado, bem realizado, baseado em necessidades reais e mesmo assim falhar em uma…</description>
<content:encoded><![CDATA[<p>Design é comunicar. Principalmente, claramente, comunicar. Um produto pode ser bem feito, bem pensado, bem realizado, baseado em necessidades reais e mesmo assim falhar em uma última etapa pela falha total de comunicar com o usuário para que diabos serve esse produto. Veja por exemplo esse anúncio que estava nos ônibus de metrô do rio na época do pan. (reprodução baseada em minha memória pois na época não tinha blog nem andava com uma camera)</p>
<figure>
<img src="https://blog.vandesande.design/media/anuncio-deve-comunicar-quantas-vezes-temos-de-nos-relembrar-disso/01-397.webp" width="397" height="227" alt="Telo">
</figure>
<p>Bonita. Cores vivas, e uma Vag rounded bonita. Mas o que é? Uma compania nova de celulares para concorrer com o mesmo público da oi? Um novo serviço de telefonia fixa? Um voip phone? No fundo eles perderam a maior da platéia nesse ponto que tem coisas mais importantes para fazer no metrô como ficar ouvindo a nona de bethoven em loop nos alto falantes.</p>
<p>Sabe qual é o agravante? Que a porcaria do produto, funcional, real, táctil estava a 10 metros de distância de todos! O produto em questão é um telefone móvel para ônibus que você utiliza com um cartão telefônico comum. Eu sei disso por que tive um amigo que trabalhou no produto, por que sou curioso o bastante para ficar mexendo nos aparelhos misteriosos que aparecem no ônibus e por que procuro respostas no google quando chego em casa. Quantos outros passageiros são assim?</p>
<p>Mesmo na comunicação de “instruções” (colada no aparelho pequenino) não comunica o essencial: quanto custa?</p>
<p>A propaganda sumiu dos metrôs desde então, junto com o aparelho. Espero que eles não tenham levado em conta a utilização do telefone nesse teste piloto (zero, suponho) para pautar o futuro do produto – que, torço eu, seja um sucesso.</p>
<p>Em seguir a minha sutil sugestão para a comunicação (desculpem a falta de vag rounded).</p>
<figure>
<img src="https://blog.vandesande.design/media/anuncio-deve-comunicar-quantas-vezes-temos-de-nos-relembrar-disso/02-397.webp" width="397" height="227" alt="desculpem eu não tinha a vag rounded">
</figure>]]></content:encoded>
</item>
<item>
<title>Papervision 3d: a web moderna como em 1998</title>
<link>https://blog.vandesande.design/papervision-3d-a-web-moderna-como-em-1998</link>
<guid isPermaLink="true">https://blog.vandesande.design/papervision-3d-a-web-moderna-como-em-1998</guid>
<pubDate>Thu, 22 Nov 2007 12:00:00 +0000</pubDate>
<description>Uma das tecnologias mais interessantes e menos faladas que tenho visto é Papervision, uma biblioteca open source que dá capacidade tridimensionais a qualquer objeto flash em um…</description>
<content:encoded><![CDATA[<p>Uma das tecnologias mais interessantes e menos faladas que tenho visto é Papervision, uma biblioteca open source que dá capacidade tridimensionais a qualquer objeto flash em um site, sem a necessidade do usuário instalar qualquer outro plugin.</p>
<p>A comunidade em torno do Papervision é tão ativa que quase não recomendo a ninguém assinar a mailing. No fundo a promessa, interatividade 3d, leve e acessível em todos os browsers, atrai o olho de muita gente.A tecnologia não é fácil de instalar ou aprender, pra começar você tem de instalar um SVN, depois alterar class path nos settings do ActionScript 3.0 e todo os códigos devem ser postos em um arquivo .as externo. Além disso toda a programação e animação no Papervision é feita por código? Pense em 3dMax, Maya ou blender com a interface do Notepad. Nem parece aquele programinha simples pra fazer animações que eu conheci.</p>
<p>Mas talvez isso mude, imagine que por exemplo a Adobe decide integrar isso na próxima interface do Flash.</p>
<p>Quando isso acontecer prevejo uma internet moderna como em 1998: uma febre onde a web será reinfestada de caquinhas de sites comerciais totalmente inacessíveis, animações desnecessárias e navegações incompreensíveis. Sem contar que, simulando 3d através de triângulos e sem acesso a aceleradpres do próprio sistema operacional, a qualidade gráfica está mais para o XWings do que para um videogame mais moderno.</p>
<p>Mas eu tenho esperança: o Youtube pôde surgir por que soube usar o flash para algo que ele faz muito bem, um pequeno objeto que sabe brincar com o resto da internet. Imagine uma amazon com objetos rotacionáveis, um flickr com fotos panorâmica 360, uma wikipedia com objetos manuseáveis. Na internet é importante cada vez mais pensar pequeno.</p>
<p>• Um uso desnecessário: <a href="http://bravia.sony.eu/" target="_blank" rel="noopener">Sony bravia</a>. Você adora os comerciais mas já chegou no site alguma vez? Eis por que não.</p>
<p>• Um uso interessante: <a href="http://www.everyscape.com" target="_blank" rel="noopener">Everyscape</a> (veja tb <a href="http://www.unitzeroone.com/blog/earthmine/earthmine_papervision3d_indexi.html#comments" target="_blank" rel="noopener">EarthMine</a>)</p>
<p>•</p>
<p>Um uso bom, mas cru: <a href="http://freeearth.poly9.com/" target="_blank" rel="noopener">Poly earth</a></p>
<p>• Um uso lindo: Pan<a href="http://www.papervision3d.org/demos/panorama/" target="_blank" rel="noopener">orama Ultrarealístico de uma biblioteca</a></p>
<p>• Demonstrações da tecnologia: <a href="http://labs.blitzagency.com/?p=314" target="_blank" rel="noopener">Coverflow</a>, <a href="http://www.unitzeroone.com/papervision/paperPlanet/Main.html" target="_blank" rel="noopener">Globo de metal</a>, <a href="http://www.papervision3d.org/demos/seahorse/" target="_blank" rel="noopener">Cavalo Marinho</a></p>
<p>• Jogos: <a href="http://www.paperworld3d.com/demos/obstaclecourse/ObstacleCourse.html" target="_blank" rel="noopener">X-Wings</a> e <a href="http://www.suite75.net/blog/dev/paperquake2.html" target="_blank" rel="noopener">Quake</a></p>
<p>• Quer tentar? Então <a href="http://blog.papervision3d.org/2007/07/07/papervision3d-public-beta/" target="_blank" rel="noopener">baixe</a>, <a href="http://wiki.papervision3d.org/index.php?title=Getting_Started_FAQ" target="_blank" rel="noopener">instale</a>, <a href="http://blog.papervision3d.org" target="_blank" rel="noopener">pegue demos</a> e <a href="http://osflash.org/mailman/listinfo/papervision3d_osflash.org" target="_blank" rel="noopener">discuta</a>.</p>]]></content:encoded>
</item>
<item>
<title>Brazilian OLPC Game Jam Results: Pong Still Rules</title>
<link>https://blog.vandesande.design/brazilian-olpc-game-jam-results-pong-still-rules</link>
<guid isPermaLink="true">https://blog.vandesande.design/brazilian-olpc-game-jam-results-pong-still-rules</guid>
<pubDate>Tue, 20 Nov 2007 12:00:00 +0000</pubDate>
<description>From 10 to 11th November, Sao Carlos, a city in Sao Paulo, hosted the first Brazilian OLPC Game Jam. Six groups of students spent 48 hours, some without sleep, developing new…</description>
<content:encoded><![CDATA[<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/brazilian-olpc-game-jam-results-pong-still-rules/01-200.webp" width="200" height="245" alt="olpc brazil">
<figcaption>Brazilian OLPC Game Jam</figcaption>
</figure>
<p>From 10 to 11th November, Sao Carlos, a city in Sao Paulo, hosted the first <a href="http://blog.ericksouza.com/participei-do-game-jam-brasil/" target="_blank" rel="noopener">Brazilian OLPC Game Jam</a>. Six groups of students spent 48 hours, some without sleep, developing new games from scratch to the Sugar platform.</p>
<p>Sunday kids from local schools were called in to the daunting task of playing all the games and choosing a winner, which took home a brand new green machine to continue developing.</p>
<p>The main goal of course was to seed developing of games, no one was expected to have a full complete game without errors, but a playable version that can be further developed. The winner was a game of Pong with a twist: they used the XO tablet mode to build a game for two players each one sitting opposite to each other.</p>
<p>The other games developed were:</p>
<ul>
<li><p><a href="http://code.google.com/p/reciclapy/" target="_blank" rel="noopener">ReciclaPY</a> a circling game with educational purposes. Kids must direct the falling trash to the right basket</p></li>
<li><p>Math Balloon: A math game, were each operation is represented by a color balloon</p></li>
<li><p>War of boots (Guerra das botas): Not much information available, but some kind of Nibble games with boots</p></li>
</ul>
<p>But developer's (and this writer) favorite was one overlooked by the child judges: <a href="http://www.youtube.com/watch?v=lU0pcosVJbQ" target="_blank" rel="noopener">Gambiarra</a>, a The Incredible Machine clone:</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/lU0pcosVJbQ" title="YouTube video" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<p>The game seems really fun, and a feat to accomplish so much in a short period of time, although in the developer's own word the visual were poor because they lack graphic skills.</p>
<p>But in the end of the day, it still is a clone. In a perfect world other developers would <a href="https://web.archive.org/web/20071120/http://www.olpcnews.com/content/games/simcity_on_the_olpc_xo.html" target="_blank" rel="noopener">follow the steps of Will Wright</a> and release the source of old games that cannot be profitable anymore to be repacked into new platforms such as OLPC.</p>
<p>"<a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FIncredible-Machine-Even-More-Contraptions%2Fdp%2FB00005KB3J&amp;tag=olpcnewspost-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325" target="_blank" rel="noopener">The Incredible Machine</a>" was a product of Dynamix Entertainment, released from the early to mid 90's. Dynamix was bought by Sierra which due to a series of twists is now today a failing arm of Vivendi. Just to sort out who owns the rights to the original TIM game would be more costly than anyone in the company could bother to care.</p>
<p>In the real world, most of those games will end up in the XO platform through some MS DOS emulator hoop, which is barely legal and won't allow innovation as future developers improve the code. Then if developer wants to bring to today's kids the joy they had with computer games the only thing they can do is rebuild it from scratch. In our imperfect world, kids learn from a early age how to jump through legal barriers.</p>
<p>As one Game jam developer described, after playing the game a child replied: "Great! Will you release a pirate version of this?"</p>]]></content:encoded>
</item>
<item>
<title>Jesuits and OLPC Laptops: It&#x27;s Education First, Religion Second</title>
<link>https://blog.vandesande.design/jesuits-and-olpc-laptops-its-education-first-religion-second</link>
<guid isPermaLink="true">https://blog.vandesande.design/jesuits-and-olpc-laptops-its-education-first-religion-second</guid>
<pubDate>Sun, 18 Nov 2007 12:00:00 +0000</pubDate>
<description>The recent pitch given by Negroponte at the Jesuits headquarters, might mean a lot more than just making the XO a e-Bible reader. The Catholic News Service reported: &quot;Vatican…</description>
<content:encoded><![CDATA[<p>The recent pitch given by Negroponte at the Jesuits headquarters, might mean a lot more than just making the <a href="https://web.archive.org/web/20071118/http://www.olpcnews.com/use_cases/community/bible-thumping_child_village.html" target="_blank" rel="noopener">XO a e-Bible reader</a>. The <a href="http://www.catholicnews.com/data/stories/cns/0706186.htm" target="_blank" rel="noopener">Catholic News Service reported</a>:</p>
<blockquote>
<p>"Vatican officials, ambassadors to the Vatican, and representatives of the world's religious orders were among the more than 200 people attending an Oct. 29 conference highlighting the One Laptop Per Child initiative. The conference was sponsored by the communications office of Rome's Jesuit headquarters and two commissions of the international organization of superiors general of religious orders."</p>
</blockquote>
<p>The connection should not be as unexpected as it might sound. The Jesuits have, since their inception, sponsored schools across the globe, and involved in missions in the poorest corners of the world. Religious orders have for long known that education is a key to the survival of their beliefs onto the next generation.</p>
<p><strong>Education First</strong></p>
<p>I am <a href="https://web.archive.org/web/20071118/http://wanderingabout.com/" target="_blank" rel="noopener">Alexandre Van de Sande</a>, an interaction designer and a shameless OLPC fan-boy. And as an Agnostic raised inside an Augustinian School I can attest: it's about education first, Christianizing later. The age of Jesuits roaming the world converting natives is over, and "education first" is the only win-win strategy. Religion sponsored education has already graduated millions of children worldwide and for most part this does mean quality education with real science: the phenomena of creationism bogus infiltrating some north American conservative schools tends to be an exception to the rule, and one can only hope that it can be entirely left out of this debate.</p>
<p>Also the Society of Jesus order (as they are known in the Catholic Church) have historically been early adopters of advanced ideas before the rest of the Roman Catholic Church. In the 17th century they were the first to try to debate in scientific – not religious – grounds with Galileo on the phenomena of Sunspots, and in the 19th century South America they were among the first Europeans to defend the native Americans from colonial slavery.</p>
<p>Although the Vatican is a country, a Pope-sponsored OLPC program is more akin to a NGO jumping in the band wagon, which shows one positive consequence of reducing minimal laptop orders to 10,000, 1,000 or 100. As such they have many advantages in place that the OLPC organization might never have: a far reaching distribution network around the world, an established curriculum, teaching infrastructure and perhaps the most important, experience in continuous fundraising. The XO laptop would do what it does best: be just another piece of the education puzzle, not a ready made education revolution in a box.</p>
<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/jesuits-and-olpc-laptops-its-education-first-religion-second/01-200.webp" width="200" height="205" alt="olpc xo">
</figure>
<p><strong>Sugarized Local Religions</strong></p>
<p>Beyond the dangers of proselytization, Sugar can be very powerful to local religion and cultures. It's focus on the local network first and the internet later helps keeping the child under the sphere of influence of their own community, and the camera and mic can be used to record and archive traditional prayers and rituals.</p>
<p>Finally there's a final twist: One thing is to build an interface that is usable by children – kids can learn anything they put their minds to – but another completely different is an interface that can be used by adults with a more traditional mindset.</p>
<p>I believe not only that Sugar can hold to the task but I would go further and say that because of some of it basic principles – like the abandonment of the office desktop metaphor, the more humanized icons and the tablet that allows handwriting in any alphabet – that the OLPC will benefit immensely from their feedback. The XO doesn't require much learning or wasted hours of installing a de-installing applications, cleaning the system and learning a whole new tech vocabulary.</p>
<p>Because it's an open platform, it can be very easily adapted to user's needs. The humans using it won't need to change drastically the way they think – their culture – while the machine is able to be adapted to their lifestyle. We want the OLPC generation to use computers to learn about the world around them, understand their own history and reinforce their own identities, not create a new generation of western computer geeks.</p>
<p>Those last two points were the theme of my graduation thesis about interaction design, which became the <a href="http://revver.com/watch/204271/flv/how-to-sell-computers-to-orthodox-monks/" target="_blank" rel="noopener">short video documentary</a> below:</p>
<p>.</p>]]></content:encoded>
</item>
<item>
<title>Ajude a dar computadores para 100 crianças</title>
<link>https://blog.vandesande.design/ajude-a-dar-computadores-para-100-criancas</link>
<guid isPermaLink="true">https://blog.vandesande.design/ajude-a-dar-computadores-para-100-criancas</guid>
<pubDate>Wed, 14 Nov 2007 12:00:00 +0000</pubDate>
<description>Trabalho com tecnologia. Sou um garoto que “trabalha com computadores” e “monta websites”.Quando no Brasil tantos blogueiros querem ser pagos a peso de big media, as vezes é…</description>
<content:encoded><![CDATA[<p>Trabalho com tecnologia. Sou um garoto que “trabalha com computadores” e “monta websites”.Quando no Brasil tantos blogueiros querem ser pagos a peso de big media, as vezes é importante dar um passo atrás e pensarmos no que somos. E se nos compararmos com médicos ou grandes advogados, qual é mesmo a importância de nossa profissão?</p>
<figure class="youtube">
<iframe src="https://player.vimeo.com/video/385757" title="Vimeo video" allowfullscreen allow="autoplay; fullscreen; picture-in-picture"></iframe>
</figure>
<p><a href="http://www.vimeo.com/385757/l:embed_385757" target="_blank" rel="noopener">OLPCNews one classroom at a time campaign</a> from <a href="http://www.vimeo.com/user259485/l:embed_385757" target="_blank" rel="noopener">alexandre van de sande</a> on <a href="http://vimeo.com/l:embed_385757" target="_blank" rel="noopener">Vimeo</a>.</p>
<p>Acredito que a solução de boa parte de nossos maiores problemas passa necessariamente por educação, informação, comunicação e colaboração. Em permitir que qualquer um registre o presente, lembre do passado e lance sua mensagem.Acredito que a tecnologia é capaz de dar alguma dessas ferramentas ao todos.Por isso quando em 2005 o cérebro por trás do MIT Media Lab, Nicholas Negroponte, anunciou que iria se dedicar a criar um laptop por um décimo do preço dos atuais e esse seria voltado para as crianças do mundo, eu me tornei um grande defensor. Ultimamente me envolvi como colunista para o OLPC News a maior referência de notícias sobre o projeto e ainda mais recentemente me envolvi em um projeto mais interessante ainda.Equipar uma sala de aula.</p>
<p><strong><a href="https://blog.vandesande.design/olpc-news-100-laptop-xo-fundraising-drive">OLPC News 100 laptops fundraising</a></strong></p>
<p>Hoje, na OLPC News iniciamos uma arrecadação de fundos para encontrarmos 200 boas almas que contribuam para a compra de 100 computadores para as salas de aula do 3o mundo. Ao mesmo tempo, estamos procurando escolas que queiram ser a receptora do projeto.Então se você tem amigos em qualquer lugar do mundo que queiram ser um desses patronos, por favor passe essa mensagem adiante.Se você tem um conhecido que trabalhe em uma escola com cabeça pra frente mas precisando de equipamentos, no Brasil ou lá fora, que poderia se tornar uma recipiente desses computadores, também mande essa mensagem adiante. Diga-os para entrar em contato comigo.</p>
<p>Acredito que a internet importa mais que meu blog, que o teu blog ou mesmo a soma dos dois. Ela importa como idéia. E idéias, são a única coisa que mudam.</p>]]></content:encoded>
</item>
<item>
<title>OLPC News 100 Laptop XO Fundraising Drive</title>
<link>https://blog.vandesande.design/olpc-news-100-laptop-xo-fundraising-drive</link>
<guid isPermaLink="true">https://blog.vandesande.design/olpc-news-100-laptop-xo-fundraising-drive</guid>
<pubDate>Wed, 14 Nov 2007 12:00:00 +0000</pubDate>
<description>I believe that if you pick up some of the most pressing world problems, like poverty, corruption, tyranny, most solutions will need some of the same basic needs: easy and free…</description>
<content:encoded><![CDATA[<p>I believe that if you pick up some of the most pressing world problems, like poverty, corruption, tyranny, most solutions will need some of the same basic needs: easy and free access to communication, information, collaboration, education and by giving power to anyone to record present facts, remember their history and broadcast their own voice.</p>
<p>Let me <a href="http://www.youtube.com/watch?v=VSoKqqCheU4" target="_blank" rel="noopener">explain with a video</a>:</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/VSoKqqCheU4" title="YouTube video" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<p>Technology is one tool that can help do that. That’s why I have always been a believer in the power of giving access to computing power and to the internet to the more vast array of people possible, and that’s the main reason I support the One Laptop Per Child program. Now that OLPC has made the Give Many program easier to participate in, I have an idea that Wayan Vota and I want to share with you.</p>
<p>We are proud to start a fundraising to achieve the modest goal of equip one of the local initiatives we’ve been reporting for over two years. We present to you:</p>
<blockquote>
<p><strong><a href="https://www.fundable.com/groupactions/groupaction.2007-11-14.8598198702/" target="_blank" rel="noopener">OLPC News 100 Laptop Fundraising Drive</a></strong></p>
<p>Let's raise $20,000 in donations for one hundred XO-1 laptops to be sent to the best locally-organized OLPC learning club!</p>
<p><strong>Donors</strong></p>
<ol>
<li><p>Pledge at least $100 on the <a href="https://www.fundable.com/groupactions/groupaction.2007-11-14.8598198702/" target="_blank" rel="noopener">OLPC News Fundraising Drive site</a></p></li>
<li><p>If/when we reach $20,000, vote for the best program to get 60-100 laptops</p></li>
<li><p>If we don't reach $20,000, then everyone's pledge is nullified and we just watch others Give Many.</p></li>
</ol>
<p><strong>Local Programs</strong></p>
<ol>
<li><p>Organize a local OLPC learning club in your community</p></li>
<li><p>Send us a post on how you'd use 60 laptops to enhance education</p></li>
<li><p>If you win, pass out laptops with a smile</p></li>
</ol>
<p>Now don't think we'll be passing out laptops to just anyone. Each local initiative will be debated on OLPC News based on what are the concrete realities and how well established is the curriculum implementation, power grid and internet access on each pilot.</p>
<p>After the vote by the donors, the winning group will get our 60 directed laptops, and we will ask OLPC to direct their 40 laptops to the second place group.</p>
<p><strong>Everyone</strong></p>
<p>If you can't donate you can help our cause by spreading the word around, from <a href="http://www.vimeo.com/385757" target="_blank" rel="noopener">re-blogging the video</a> to <a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.olpcnews.com%2Flaptops%2Fxo1%2Folpc_news_100_laptop_fundraising_drive.html&amp;title=OLPC%20News%20100%20Laptop%20XO%20Fundraising%20Drive&amp;bodytext=%3Cdiv%20style%3D%22float%3A%20right%3B%20margin-left%3A%2010px%3B%20margin-bottom%3A%2010px%3B%22%3E%3Ca%20href%3D%22http%3A%2F%2Fwww.flickr.com%2Fphotos%2Fdcmetroblogger%2F1888133087%2F%22%3E%3Cimg%20src%3D%22http%3A%2F%2Fwww.olpcnews.com%2Fimages%2Folpc-laptop.jpg%22%20alt%3D%22olpc%20for%20everyone%22%20style%3D%22border%3A%202px%20solid%20rgb%280%2C%200%2C%200%29%3B%22%3E%3C%2Fa%3E%3Cbr%3E%20%3Cspan%20style%3D%22font-size%3A%200.9em%3B%20margin-top%3A%202px%3B%22%3EOne%20Laptop%20Per%20Child%20XO-1%3C%2Fspan%3E%3C%2Fdiv%3E%0A%0AI%20believe%20that%20if%20you%20pick%20up%20some%20of%20the%20most%20pressing%20world%20problems%2C%20like%20poverty%2C%20corruption%2C%20tyranny%2C%20most%20solutions%20will%20need%20some%20of%20the%20same%20basic%20needs%3A%20easy%20and%20free%20access%20to%20communication%2C%20information%2C%20collaboration%20and%20education.%20Give%20power%20to%20anyone%20to%20record%20present%20facts%2C%20remember%20their%20history%20and%20broadcast%20their%20own%20voice.%0A%3Cbr%3E%3Cbr%3E%0ATechnology%20is%20one%20tool%20that%20can%20help%20do%20that.%20That%E2%80%99s%20why%20I%20have%20always%20been%20a%20believer%20in%20the%20power%20of%20giving%20access%20to%20computing%20power%20and%20to%20the%20internet%20to%20the%20more%20vast%20array%20of%20people%20possible%2C%20and%20that%E2%80%99s%20the%20main%20reason%20I%20support%20the%20One%20Laptop%20Per%20Child%20program.%20%20Now%20that%20OLPC%20has%20made%20the%20Give%20Many%20program%20easier%20to%20participate%20in%2C%20I%20have%20an%20idea%20that%20Wayan%20Vota%20and%20I%20want%20to%20share%20with%20you.%20%0A%3Cbr%3E%3Cbr%3E%0AWe%20are%20proud%20to%20start%20a%20fundraising%20to%20achieve%20the%20modest%20goal%20of%20equip%20one%20of%20the%20local%20initiatives%20we%E2%80%99ve%20been%20reporting%20for%20over%20two%20years.%20%20We%20present%20to%20you%3A%0A%3Cbr%3E%3Cbr%3E%0A%3Cb%3E%3Ca%20href%3D%22https%3A%2F%2Fwww.fundable.com%2Fgroupactions%2Fgroupaction.2007-11-14.8598198702%2F%22%3EOLPC%20News%20100%20Laptop%20Fundraising%20Drive%3C%2Fa%3E%3C%2Fb%3E%0ALet%27s%20raise%20%2420%2C000%20in%20donations%20for%20one%20hundred%20XO-1%20laptops%20to%20be%20sent%20to%20the%20best%20locally-organized%20OLPC%20learning%20club%21%20%3Cb%3EDonors%3C%2Fb%3E%3Col%3E%3Cli%3EPledge%20at%20least%20%24100%20on%20the%20%3Ca%20href%3D%22https%3A%2F%2Fwww.fundable.com%2Fgroupactions%2Fgroupaction.2007-11-14.8598198702%2F%22%3EOLPC%20News%20Fundraising%20Drive%20site%3C%2Fa%3E%3C%2Fli%3E%3Cli%3EIf%2Fwhen%20we%20reach%20%2420%2C000%2C%20vote%20for%20the%20best%20program%20to%20get%20laptops%3C%2Fli%3E%3Cli%3EIf%20we%20don%27t%20reach%20%2420%2C000%2C%20then%20everyone%27s%20pledge%20is%20nullified%20and%20we%20just%20watch%20others%20Give%20Many.%3C%2Fli%3E%3C%2Fol%3E%3Cb%3ELocal%20Programs%3C%2Fb%3E%3Col%3E%3Cli%3EOrganize%20a%20local%20OLPC%20learning%20club%20in%20your%20community%3C%2Fli%3E%3Cli%3ESend%20us%20a%20post%20on%20how%20you%27d%20use%2060%20laptops%20to%20enhance%20education%3C%2Fli%3E%3Cli%3EIf%20you%20win%2C%20pass%20out%20laptops%20with%20a%20smile%3C%2Fli%3E%3C%2Fol%3ENow%20don%27t%20think%20we%27ll%20be%20passing%20out%20laptops%20to%20just%20anyone.%20%20Each%20local%20initiative%20will%20be%20debated%20on%20OLPC%20News%20based%20on%20what%20are%20the%20concrete%20realities%20and%20how%20well%20established%20is%20the%20curriculum%20implementation%2C%20power%20grid%20and%20internet%20access%20on%20each%20pilot.%20%0A%3Cbr%3E%3Cbr%3E%0AAfter%20the%20vote%20by%20the%20donors%2C%20the%20winning%20group%20will%20get%20our%2060%20directed%20laptops%2C%20and%20we%20will%20ask%20OLPC%20to%20direct%20their%2040%20laptops%20to%20the%20second%20place%20group.&amp;topic=" target="_blank" rel="noopener">Digg ing it</a>, to adding it to  <a href="http://del.icio.us/post?v=4&amp;url=http%3A%2F%2Fwww.olpcnews.com%2Flaptops%2Fxo1%2Folpc_news_100_laptop_fundraising_drive.html&amp;title=OLPC%20News%20100%20Laptop%20XO%20Fundraising%20Drive" target="_blank" rel="noopener">del.ico.us</a>,  <a href="http://www.stumbleupon.com/submit?url=http://www.olpcnews.com/laptops/xo1/olpc_news_100_laptop_fundraising_drive.html&amp;title=OLPC%20News%20100%20Laptop%20XO%20Fundraising%20Drive" target="_blank" rel="noopener">Stumble On</a>, <a href="javascript:location.href=&#x27;http://slashdot.org/bookmark.pl?url=&#x27;+encodeURIComponent(location.href)+&#x27;&amp;title=&#x27;+encodeURIComponent(document.title)">Slashdotting it</a>, to posting this page on <a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.fundable.com%2Fgroupactions%2Fgroupaction.2007-11-14.8598198702&amp;t=The+OLPC+News+100+Laptop+Fundraising+Drive" target="_blank" rel="noopener">Facebook</a></p>
</blockquote>
<p><strong>About the XO laptop:</strong></p>
<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/olpc-news-100-laptop-xo-fundraising-drive/01-200.webp" width="200" height="167" alt="olpc for everyone">
<figcaption>One Laptop Per Child XO-1</figcaption>
</figure>
<p>First presented by M.I.T. Media Lab founder Nicholas Negroponte in 2005, the once called US$100 laptop is a fresh start in computing. This is the electric car in a world of SUVs: instead of trying the biggest faster laptop around it's the one that does more with less.</p>
<p>It can connect to other similar laptops without a connection to the internet. If it finds a hotspot it can stretch it to other computers without being turned on.</p>
<p>It allows you to read a book or a site on the screen without consuming any power (while being virtually a sleep). It runs for less energy, cost fewer dollars, <a href="https://web.archive.org/web/20071114/http://www.olpcnews.com/software/operating_system/bitfrost_security_platform.html" target="_blank" rel="noopener">immune to computer viruses</a> and lasts longer even in the hands of children.</p>
<p>Did we mentioned that it's also water and dust proof, can be readable on sunlight and has a <a href="https://blog.vandesande.design/aquatic-sugar">revolutionary but easy to use</a> interface?</p>
<p>Also it's not about doing spreadsheets: it comes with free software for music making drawing, blogging, filming, taking photos, making interactive games, doing stop motion animation, a full encyclopedia, a ebook reader and lots of games, including <a href="https://web.archive.org/web/20071114/http://www.olpcnews.com/content/games/simcity_on_the_olpc_xo.html" target="_blank" rel="noopener">SimCity, the original</a>.</p>
<p><strong>About OLPC NEWS</strong></p>
<p>Started by Wayan Vota in 2006 <a href="https://web.archive.org/web/20071114/http://www.olpcnews.com" target="_blank" rel="noopener">OLPC News</a> prides itself on being an independent news source for all things related to One Laptop Per Child. OLPC News is now a community of more than a dozen regular contributors writing daily about OLPC and its impact on education and technology.</p>
<p>OLPC News is so informative and influential, it's referenced in international media, including <a href="https://web.archive.org/web/20071114/http://www.olpcnews.com/commentary/press/olpc_60_minutes.html" target="_blank" rel="noopener">an appearance on CBS News' 60 Minutes</a>. OLPC News is not affiliated with the One Laptop Per Child organization.</p>]]></content:encoded>
</item>
<item>
<title>Sobre esse blog</title>
<link>https://blog.vandesande.design/sobre-esse-blog</link>
<guid isPermaLink="true">https://blog.vandesande.design/sobre-esse-blog</guid>
<pubDate>Wed, 14 Nov 2007 12:00:00 +0000</pubDate>
<description>Então decidi começar um blog. Mas será que esse mundo precisa de mais um blog? Precisa. Precisa de mais seis bilhões de blogs. Cada pessoa no mundo tem uma história pra contar que…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/sobre-esse-blog/01-217.webp" width="217" height="141" alt="casca de tangerina">
</figure>
<p>Então decidi começar um blog. Mas será que esse mundo precisa de mais um blog? Precisa. Precisa de mais seis bilhões de blogs. Cada pessoa no mundo tem uma história pra contar que vale um filme. Mas isso não é um apelo social dizendo a quantidade de pessoas no mundo que não tem voz, é só um lembrete que acreditar que só vale falar algo se você for o mais ouvido, que a internet é uma competição pelo primeiro lugar, que dizer coisas per se – e não o que é dito – é uma profissão em potencial, você está ignorando não só a estrutua da internet, a cauda longa, a consumergeneratedmedia e tantas outras buzzwords. Você está ignorando a regra básica de viver em sociedade que seu avô aprendeu na pré-escola: para cada duas orelhas do mundo, existe uma boca pra responder.Então esse éum lugar para dizer o que penso – e que creidto não estar sendo dito – para uma meia dúzia de primatas.Mas vêm com algumas regras, por que por exceção de amigos pessoais, não leio nenhum blog que o autor o defina como “sobre o que me vier a cabeça”. E limites ajudam a criatividade.</p>
<ol>
<li><p>Cada post é sobre um assunto e o ponto tem que ser algo que você possa concordar ou discordar, mas que chegue a algum lugar. Se eu tiver outr assunto que isso fique pra outra discussão.</p></li>
<li><p>Os posts deverão ser relativamente curtos. Algo como 140 ou 200 palavras. O número exato ainda será definido.</p></li>
<li><p>Dessas x palavras uma será obrigatória. Vou adotar uma palavra para mim, de preferência uma complexa como “esdrúxulo” ou uma degenerativa porém educada como “cocô”, ou m verbo como “descascar”. Sugestões são bem vindas.</p></li>
<li><p>Os posts serão semanais. As vezes posso escrever um segundo na semana e esse pode ser bem mais simples, mas vou tentar escrever no mínimo um por semana</p></li>
<li><p>Nada de relinkar para reportagens. Gosto e leio de alguns blogs que fazem nada mais que repassar adiante notícias, mas não ouso achar que eu serei o primeiro a saber de uma coisa.</p></li>
<li><p>Cada post terá uma ilustração ou vídeo para os preguiçosos.</p></li>
</ol>
<p>E paro por aqui ou lá se vai a minha regra número 2.</p>]]></content:encoded>
</item>
<item>
<title>Aquatic Sugar: The Children&#x27;s Interface, Translated for Adults</title>
<link>https://blog.vandesande.design/aquatic-sugar</link>
<guid isPermaLink="true">https://blog.vandesande.design/aquatic-sugar</guid>
<pubDate>Wed, 07 Nov 2007 12:00:00 +0000</pubDate>
<description>The field of interaction design has been shaken in the last year as it hasn&#x27;t been since the Xerox Parc, more than 20 years ago. The old metaphors of desktops and the idea that…</description>
<content:encoded><![CDATA[<p>The field of interaction design has been shaken in the last year as it hasn't been since the Xerox Parc, more than 20 years ago. The old metaphors of desktops and the idea that the mouse is the center of our universe are being radically changed by mainly three mainstream products: the Wii, the iPhone and – of course, since you are reading <a href="https://web.archive.org/web/20071107/http://www.olpcnews.com" target="_blank" rel="noopener">OLPCNews</a> – the XO laptop.</p>
<p>You probably know about the Motion Sensors on the Nintendo video game, and about all the multiTouch going on with the apple phone, but do you know why the "$100 laptop" interface experience, called sugar, is radically different from any other operating system on the market? And why not?</p>
<p>Because you don't like the icons. They don't have any eye-candies, do not look 3d, have no drop shadows and no floor reflections. The icons looks childish, the graphics seems like it was designed for a computer with no dedicated video-card and almost no RAM. Guess what – they were.</p>
<p>To fully understand the wonderful work that created the sugar interface you had to see beyond your prejudices (and read a long very technical text or <a href="https://www.youtube.com/watch?v=RZnEtoYlRiE" target="_blank" rel="noopener">watch a video</a>). This article is a guide to the basics of Sugar user experience, translated for those adults which have been spoiled by years of Mac or Windows use. The underlying principles are the same, but the elements of the graphic user interface appears here rendered as if they were in the Mac OS X Aqua interface:But before we continue, a disclaimer. This is in no way intended as a criticism about the look of Sugar GUI. It would be naive to propose superfluous graphic effects on a very no-frills laptop. Also beautiful interfaces can be made using very simple elements and no colors. Finally, even if the MIT team which designed the interface were to ask for help, they would be better off with the Vimeo Designers than with the Apple folks.</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/RZnEtoYlRiE" title="Aqua sugar – the children&#x27;s machine translated for adults" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<figure>
<img src="https://blog.vandesande.design/media/aquatic-sugar/01-500.webp" width="500" height="375" alt="aquatic sugar style=">
</figure>
<h4 id="h-first-principles">First Principles</h4>
<p>Most commercial interfaces were designed originally for office workers wanting to remain undisturbed on their own cubicles. The fingerprint remains, and most windows and macs are still built for single users doing multiple works. The XO laptop was designed to incite collaborative works amongst students. Therefore, sharing files, connecting to friends, P2P downloading of programs, social networking and multiplayer games are not separated applications, but integrated on one experience with the Operating System.</p>
<p>Also the screen – although handling twice the resolution of most conventional monitors – is only 7.5 inches. So all programs run in full screen mode. Again, it's not a computer made for a single user doing multiple tasks at the same time. It's designed so that multiple users can collaborate on a single task.<strong>The Frame</strong></p>
<p>The most important GUI element is the Frame. It appears when the mouse moves beyond any side of the screen, or when the button is pressed on the keyboard. The four sides are (clockwise from the right side): persons, actions, objects and places. Or if you prefer: the buddy list, the dock, the clipboard and the menu bar.</p>
<p>The buddy list is sort of iChat meets twitter meets social network, all integrated in your OS. But instead of being a list of online buddies, it displays the friends who are engaged on the same activity as yourself. See all people that are reading the same book, or working on the same report, or playing the same game that you are right now. Mousing over the icons will display a short profile with name, age, interests, class and etc.</p>
<p>The bottom bar is the dock, which work mainly as an Applications Activity launcher and a system tray. Here will reside all the applications he have already on his computer, and also any pending invitation to download a new app join a new activity. All systems messages, appears on the dock, in the order they are received. Because the system is designed to keep the user concentrated on the task he is currently in, those will not pop up automatically, but instead will appear minimized until they are read and the appropriate action is taken.</p>
<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/aquatic-sugar/02-200.webp" width="200" height="200" alt="olpc xo">
</figure>
<p>On any OS the clipboard is an essential feature that everyone takes for granted, so much to the fact that it almost hasn't changed at all over the years. Because sharing files is so important to the XO experience, the left bar works as a multi-slot, always-visible clipboard.</p>
<p>A temporary place to keep objects to be able to move between activities, on multiple places (see below), or to the bulletin board (which will be explained later). Everything that is copied with the usual keystrokes appears on top of the objects bar, but they can be also dragged in or out directly from web pages, from documents or any other application</p>
<p>And finally on the top you have the menu bar or better referred to as Places bar – since there are no menus on it. At the far right there is the Dashboard Bulletin Board and the spotlight global search field both of which will be discussed later. On the far left, there are four icons which stand for the aforementioned Places. The XO was is designed to be used in many ways, ranging from privately doing some work, to doing it on a selected group or in an open environment where everyone is invited. It's on those icons that you set those preferences.</p>
<h4 id="h-the-places">The Places</h4>
<p>Unlike most systems, the privacy/collaboration settings are chosen even before launching an application. Every application activity on the XO can be launched initiated at multiple places, depending whether you want to work privately or with friends, and which ones. If you start an application on your own home, you will be working on it without anyone knowing, but if you start an application on a friends group or on the neighborhood you are implicitly inviting anyone on that place to join you.</p>
<h4 id="h-neighborhood">Neighborhood</h4>
<p>The most broad sharing level is Neighborhood. Every icon represents one XO laptop that is detectable on your mesh network and what activity (if he allows it) the user is in right now. This map represents multiple things:Your state of connectivity: as every laptop also represent a router that extends your wireless connection, the more icons you have on the screen the more reliable you connection will beThe social interactions going on. Here you can see at a glance all the people that are on close to you and which activities they are doing right now. It's like coming to a party and seeing a bunch of friends gathering in multiple circles, around the fire or around a guitar.A peer to peer distribution of applications. Every task you see active represents laptops running a program in sugar, even if you don't have this program on your own machine. By clicking on one activity the laptop will download the latest application version available from your peers, install and run it for you.All sugar apps are portable, which means that by installing or uninstalling an application you are in fact just copying or deleting one file. And thanks to the bitfrost security, all programs are restricted to a closed sandbox with no special permissions (like copying itself or snitching data) making spyware simply unfeasible.What this map does not represents is the physical localization of the kids. You cannot tell simply from mesh connectivity how distant someone is. Some of your friends will be visible even if they are connected to your network through the internet, so an icon here may represent anything from a few meters to thousands kilometers away.</p>
<h4 id="h-groups">Groups</h4>
<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/aquatic-sugar/03-200.webp" width="200" height="205" alt="olpc xo">
</figure>
<p>The next zoom level is you Groups. Here you can see only who is on your friends list and what they are doing now. Again all activities that are on this group represent a implicit invitation for you to engage in.</p>
<p>Instead of highly restrictive and always breakable, the digital parental control which allows or disallows certain applications relies on a very low tech social supervising.</p>
<p>A teacher or a parent on the network cannot tell what every kid is doing with their laptop. But he or she can tell what he is not doing. All collaborators to a project are visible, and all laptops on the same Group can be viewed if they are engaged in something on this zoom level. If a student – or more than one – is not doing what they are supposed to be doing, this will be apparent, much like a teacher in a class can see which students are sleeping, playing or simply just not paying attention.</p>
<p>Also the groups restrictions are very loose in order to leave space for natural social dynamics. Anyone in the group can invite more members, and everyone else will be notified and introduced to him (as a minimized alert on the system tray bar).</p>
<h4 id="h-home">Home</h4>
<p>The Home level is the computer itself. This is also the most private starting point, and all applications activities started here will be invisible on the network until the user drags it to another broader level. Observe that the default behavior of Windows and OS X, is no more than a special case on the Sugar experience.</p>
<p>The central ring is at the same time a task switcher and the Activity Monitor, where one can see which applications are running and how much memory they are using. Every application running will appear on the circle, filling an area proportional to how much memory it uses, and when the circle is full no new applications will be allowed to run before you close some. Dragging any app from the Dock to the Ring will launch it, and dragging it out of the ring will quit it.</p>
<p>The XO memory is scarce and this allows any children to understand visually how much space is left and to easily identify the memory suckers slowing down the system. Something many other OS'es could use.</p>
<h4 id="h-application">Application</h4>
<p>The main function of all Places is to help the users engage in Activities. But when he finds one, he will go to the Application Activity level. The place the activity was set reflects whom he will be collaborating with– either only with himself, among his friends or with the whole neighborhood. At any point the privacy level of one document can be changed, but this will reflect only on his own copy. Therefore, one can pick a copy of the current work and take it "home" so he can work on it by himself and only later share with the group. Or one can share that document with other groups or a bigger neighborhood.</p>
<p>But how documents are shared? Where are they saved? Where is the file explorer app? In the next part of this post, we will explore how the Bulletin Board – a Dashboard to share files – and the journal, where all the old metaphors of office automation, saving and archiving files are replaced by a more modern, almost blog like way of organizing your data.</p>]]></content:encoded>
</item>
<item>
<title>10 Reasons Why Negroponte Should Change OLPC Distribution</title>
<link>https://blog.vandesande.design/10-reasons-why-negroponte-should-change-olpc-distribution</link>
<guid isPermaLink="true">https://blog.vandesande.design/10-reasons-why-negroponte-should-change-olpc-distribution</guid>
<pubDate>Thu, 20 Sep 2007 12:00:00 +0000</pubDate>
<description>Hello I am Alexandre Van de Sande, an interaction designer currently based in Rio de Janeiro, and in this first article I want to address a fundamental-in my opinion flaw in the…</description>
<content:encoded><![CDATA[<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/10-reasons-why-negroponte-should-change-olpc-distribution/01-200.webp" width="200" height="210" alt="1000 olpc">
</figure>
<p>Hello I am <a href="https://web.archive.org/web/20070920/http://wanderingabout.com/" target="_blank" rel="noopener">Alexandre Van de Sande</a>, an interaction designer currently based in Rio de Janeiro, and in this first article I want to address a fundamental-in my opinion flaw in the OLPC strategy: distribution.</p>
<p>I don't think the One Laptop Per Child as a whole is doing well, there seems to be <a href="https://web.archive.org/web/20070920/http://www.olpcnews.com/sales_talk/countries/sales_inhibiting_xo_distribution.html" target="_blank" rel="noopener">no government buyers</a>, the production is being <a href="https://web.archive.org/web/20070920/http://www.olpcnews.com/hardware/production/xo_laptop_production_delay.html" target="_blank" rel="noopener">constantly postponed</a> and the <a href="https://web.archive.org/web/20070920/http://www.olpcnews.com/sales_talk/price/olpc_uruguay_205_dollars_laptop.html" target="_blank" rel="noopener">XO's newest price</a> is around US$200.</p>
<p>But is it really a two hundred dollar laptop that is being sold? At the minimum order of 250,000 computers Nicholas Negroponte is not in the business of selling cheap laptops, but of selling fifty million dollars in <a href="https://web.archive.org/web/20070920/http://www.olpcnews.com/use_cases/education/one_laptop_per_child_education.html" target="_blank" rel="noopener">untested education reform</a>.</p>
<p>There are of course good reasons for not selling the laptops individually or in the famous <a href="https://web.archive.org/web/20070920/http://www.olpcnews.com/countries/usa/olpc_sales_plan_xo_laptops.html" target="_blank" rel="noopener">buy 2 get 1 scheme</a>: first it's a logistical hell to ship and support. Nicholas Negroponte repeatedly said that half the cost of most laptops were marketing, shipping and support. But most importantly the laptop simply isn't as valuable alone as it's in a group of peers.</p>
<p>It's built up to mesh, to collaborate, to exchange information, to be learned and used within a community of similar laptops. A single laptop when living alone - or worst, when living surrounded by iPhones, Blackberries and Dell machines - becomes simply a cheap toy or an oversized PDA.</p>
<p>But there's a mid ground. It could be sold in radically smaller scale, in 1,000 laptops pack. Then it's not a $200.00 laptop but a $200,000 IT alternative. There are very compelling reasons why it should, maybe even that it must, be delivered that way, and that this decision must be made quick. At least 10 very good reasons:</p>
<p><strong>10. You can't expect the public sector from developing nations to solve anything.</strong> Corrupt politicians that expect to get a cut of any multi-million dollar project they vote, slow democracies and short sighted policies: welcome to the third world, Nicholas Negroponte, where the government is part of the problem not the solution.</p>
<p><strong>9. You can't expect presidents from developing nations to keep their promises.</strong> <a href="https://web.archive.org/web/20070920/http://www.olpcnews.com/sales_talk/countries/bolivarian_pc_venezuela.html" target="_blank" rel="noopener">Populism is a still alive</a> in South America and Africa as it has always been. It's easy to get any president to pose for photos for the press, specially when they are holding a modern computer that they can <a href="https://web.archive.org/web/20070920/http://www.olpcnews.com/sales_talk/countries/bolivarian_computer.html" target="_blank" rel="noopener">promise to give to his people</a>.</p>
<p>But once he on front page, it's over. Populist presidents can see only so far as the next election, and when it comes to invest millions in anything they expect it to be easily understood and remembered to any uneducated voter.</p>
<p>That's why they will prefer to build a unprofitable, incoherent, hand built computer assembly line than to buy any computer from foreign countries. Factories equals Jobs, while sending money to US and Asia spells "evil capitalists".</p>
<p><strong>8. You may expect city councils and municipal powers to take action.</strong> Contrary to state and federal governments, in the municipal scale, one enthusiast can make a project happen. City mayors are usually eager to find projects that can put their own city on the map, even if that means doing things nobody has ever done before.</p>
<p>Also, a thousand children and his families can represent five thousand voters, and that does make a difference in the next elections, specially if you promise to expand this one-school project to others when your term is ending. A couple thousand dollars is the just the scale they can afford: around the cost of a bridge, a new road or reforming a school.</p>
<p><strong>7. You certainly can count on non-governmental organizations and non-profits.</strong> At this lower price point, it becomes affordable to seek alternative fundings. A NGO can amass such a small fortune with a few important donors, micro-loans, a online money raising or just from venture capitalists with a plan in mind.</p>
<p><strong>6. Expect the eccentric riches.</strong> It may be ironic that the first confirmed buyer of the OLPC was <a href="https://web.archive.org/web/20070920/http://www.olpcnews.com/countries/mexico/olpc_mexico_carlos_slim_xo_laptops.html" target="_blank" rel="noopener">Carlos Slim</a>, the Mexican who became richest than Bill Gates, but it's not completely unexpected. Forward thinking billionaires like Slim, Jeff Bezos or Richard Branson or even companies like Google are known to spend huge amounts of money in projects that do not have a direct expectation to be lucrative.</p>
<p>It doesn't really matter if it's some grand plan, philanthropy or simply a way to leave a mark: that's how the new space race is being paid for. Lower the cost of a warm feeling in the heart and you can be certain that every unknown rich will be buying XO laptops for the neighborhood schools they grew up in.</p>
<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/10-reasons-why-negroponte-should-change-olpc-distribution/02-289.webp" width="289" height="246" alt="chasm olpc">
</figure>
<p><strong>5. Technology has a life cycle.</strong> A lot has changed in recent years but not this: breakthrough products still get in the market through the early adopters, and only then it will slowly take the mainstream.</p>
<p>The early adopters have the kind of personality that make them the perfect OLPC faithful: risk-takers, technology enthusiasts, eager to turn the education system upside down and get rid of old paradigms.</p>
<p>You know where you can find some early adopters? They are working as some liberal school director, as community leader or maybe even in charge of some risky but mildly funded government project. Guess where you can't find any: in the state department that is in charge of allotting billions of taxpayers dollars into a already tight education budget.</p>
<p><strong>4. Let others make the trial and error for you.</strong> There isn't much criticism on the Children's Machine itself. But there is a lot in almost everything else. The contructivism, the UI, the curriculum, the "third world only" policy, even the concept of giving one laptop to every child has been scrutinized, and it's at least arrogant to suppose anyone really knows what's the ONE best solution for every community.</p>
<p>If the XO is a true open tool the process should be open also. Let the laptop be used in all countries, every kind of community, to be lent in libraries, given at random, sold by microfinance institutes, exchanged for good grades. The best practices will emerge, and the whole process will evolve.</p>
<p><strong>3. The thousand-laptop number is big enough to create a critical mass in any community.</strong> In a school or community where are all one's friends are using a laptop then it's more probable that he will use the laptop as it was designed.</p>
<p>That is, he will learn Sugar from his peers, and will be able to use the native mesh network to play with the already installed softwares for playing music, writing collaboratively and share animations in Squeak. Give one XO to a single user in and in no time he will learn to wipe it clean, install an illegal copy of Windows 2000 and Office.</p>
<p>His experience of the whole OLPC program will be of a crappy processor running a pirated copy of an unsupported, insecure OS, with software that was designed less for students than for accountants. That's what we call second class online citizens.</p>
<p><strong>2. Selling at a couple hundred thousands, the logistics are kept to minimal.</strong> No marketing is necessary as the kind of customer that buys such technology en masse is already aware of the OLPC program. Transport and shipping will be reduced to sending one container from Taiwan to somewhere in the world.</p>
<p>From that point the distribution to children, infrastructure and deployment rely in the hands of the clients – since they are the one with a plan. Support can be as simple as an laptop replacement - expect 5% of laptops to fail? Then build 1050 and wait.</p>
<figure class="float-right" style="width:50%">
<img src="https://blog.vandesande.design/media/10-reasons-why-negroponte-should-change-olpc-distribution/03-200.webp" width="200" height="219" alt="OLPC XO price">
</figure>
<p><strong>1. Finally: the laptop technology is hot. But won't be hot forever.</strong> Remember how revolutionary was the <a href="https://web.archive.org/web/20070920/http://www.olpcnews.com/prototypes/olpc/olpc_xo_vs_apple_iphone.html" target="_blank" rel="noopener">iPhone when introduced</a>? Today full screen phones are being announced every wee, zooming with two fingers became a cliché and even one tap scrolling - arguably the coolest feature - can be done on common softwares. It's a miracle that a product announced in early 2005 still gets media attention and woes it's users but how much longer can it keep pace?</p>
<p>Once flash-based laptops are commonplace, once the screen technology gets to the market and when mesh networking becomes more common, the XO will not stand out so much. And when <a href="https://web.archive.org/web/20070920/http://www.olpcnews.com/sales_talk/competition/" target="_blank" rel="noopener">other multipurpose computers</a> and cell phones approach the sub $200 mark people will start opting for more conventional methods for their cheap laptop alternative.</p>
<p>It doesn't needs anyone to be better in all categories like <a href="https://web.archive.org/web/20070920/http://www.olpcnews.com/hardware/power_supply/" target="_blank" rel="noopener">low power consumption</a>, mesh repeating while off or 1-second sleep state switch. You can even argue that the XO was not the designed to be top of the line.</p>
<p>But state decision makers don't usually understand that much about technology anyway, all you need to tell them is that it's cheaper, it's black and that it runs exactly like every computer he always used. And the green dream machine is gone.</p>]]></content:encoded>
</item>
<item>
<title>Itsy Deal</title>
<link>https://blog.vandesande.design/itsy-deal</link>
<guid isPermaLink="true">https://blog.vandesande.design/itsy-deal</guid>
<pubDate>Sun, 01 Jul 2007 12:00:00 +0000</pubDate>
<description>Itsy Deal was built in 2007 as a service that would gather together all blogs that sold second hand clothing.</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/itsy-deal/01-680.webp" width="680" height="480" alt="Itsy Deal">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/itsy-deal/02-680.webp" width="680" height="561" alt="Itsy Deal">
</figure>
<p>Itsy Deal was built in 2007 as a service that would gather together all blogs that sold second hand clothing.</p>]]></content:encoded>
</item>
<item>
<title>Diagram, Infographs etc</title>
<link>https://blog.vandesande.design/diagram-infographs-etc</link>
<guid isPermaLink="true">https://blog.vandesande.design/diagram-infographs-etc</guid>
<pubDate>Thu, 19 Apr 2007 12:00:00 +0000</pubDate>
<description>To make the complex visible. to make novel information understandable, with minimal or no words at all. The following are a series of infographs, diagrams and maps that tries to…</description>
<content:encoded><![CDATA[<p>To make the complex visible. to make novel information understandable, with minimal or no words at all. The following are a series of infographs, diagrams and maps that tries to show a different view of things you are used to see. Some where made just for the fun of it. some where donated to wikipedia’s open commons and there where selected by the community as the best of the crop*. Many made their own way to graduation thesis and books in europe, books on photography and a lecture in MIT.</p>
<figure>
<img src="https://blog.vandesande.design/media/diagram-infographs-etc/01-480.webp" width="480" height="342" alt="map-of-human-migrations.jpg">
</figure>
<h3 id="h-human-world-migrations">Human world migrations</h3>
<p>Based on a <a href="http://en.wikipedia.org/wiki/Dymaxion_Map" target="_blank" rel="noopener">buckminster fuller world map</a> that has almost no distortion on land based distances, this is a map of the how, when and why humans colonized the world, based on mitochondrial evidence. Also plotted is where the ocean was ice during the last ice age, so you can see how the Great Britain was reached by foot. And note that as you can see from the temperature grid, humans migrated more when it was colder, seeking better lands.</p>
<figure>
<img src="https://blog.vandesande.design/media/diagram-infographs-etc/02-480.webp" width="480" height="270" alt="oceans-novo-mapa.jpg">
</figure>
<h3 id="h-the-map-of-the-oceans">The map of the oceans</h3>
<p>Being a south american I’ve been always fascinated to views of our world that did not centered in europe (as the mercator) or put north as “up”. This one is centered on the antipode of  <a href="http://en.wikipedia.org/wiki/Urumqi" target="_blank" rel="noopener">Urumqui</a>, most remote city from any sea in the world. This map was donated for the wikipedian community (where it was chosen ‘featured image’) and someone there described it as “When dolphins become ultra-intelligent, their world maps will probably look something like this.”</p>
<figure>
<img src="https://blog.vandesande.design/media/diagram-infographs-etc/03-480.webp" width="480" height="589" alt="running in the rain">
</figure>
<h3 id="h-running-in-the-rain">Running in the rain</h3>
<p>_“In a near future, you will be able to write a doctorate only with images.”</p>
<p>Gui Bonsiepe</p>
<p>_</p>
<p>There is a mathematics book from the 19th century that proves all Euclidean theorems using shapes and colours as nouns. Running on the rain is an exercise on visual rhetoric.</p>
<p>The question itself is a popular saying that states that if you run under the rain you will get more wet than if you walk. This may be true, but you also get home faster. So the question is: is it worth running in the rain?</p>
<p>The insight was to represent all variables in this equation graphically. Speed, distance from home and even how much water you get per second are drawn as lines of constant sizes. This way time could be calculated geometrically. The total amount of water is finally calculated as an area, and by comparing those areas one can reach the final (and rather obvious) conclusion:</p>
<p>If you’re surprised by rain, run.</p>
<ul>
<li><p>about: Constantly made during many years..</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>How to sell Computers to Orthodox Monks</title>
<link>https://blog.vandesande.design/how-to-sell-computers-to-orthodox-monks</link>
<guid isPermaLink="true">https://blog.vandesande.design/how-to-sell-computers-to-orthodox-monks</guid>
<pubDate>Thu, 25 Jan 2007 12:00:00 +0000</pubDate>
<description>A video about how technology may affect certain cultures, and what could be changed in the computer as it is today, so we will not need to change the cultures themselves. How to…</description>
<content:encoded><![CDATA[<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/IMWJtQnz08g" title="How to sell computers to orthodox monks" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<p>A video about how technology may affect certain cultures, and what could be changed in the computer as it is today, so we will not need to change the cultures themselves. How to sell computers for monks is a proposition that designers should start thinking about the laggards, the last people to adopt technologies, as benchmarks. Because if we can fit their requirements of a non-intrusive and fail-proof equipment, then we will build a better machines for all of us.</p>
<p>If you like this you can see a first video draft (with a different script) here:</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/S-EJi2tAwjQ" title="Computers to monks, the first draft" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<figure>
<img src="https://blog.vandesande.design/media/how-to-sell-computers-to-orthodox-monks/01-486.webp" width="486" height="313" alt="how to sell computer to monks video screenshot">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/how-to-sell-computers-to-orthodox-monks/02-486.webp" width="486" height="313" alt="how to sell computer to monks video screenshot">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/how-to-sell-computers-to-orthodox-monks/03-486.webp" width="486" height="313" alt="how to sell computer to monks video screenshot">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/how-to-sell-computers-to-orthodox-monks/04-486.webp" width="486" height="313" alt="how to sell computer to monks video screenshot">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/how-to-sell-computers-to-orthodox-monks/05-120.webp" width="120" height="90" alt="">
</figure>
<ul>
<li><p>about: Made in 2006/07 as a final diploma project</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>The Laser Chess – FAQ</title>
<link>https://blog.vandesande.design/laser-chess-faq</link>
<guid isPermaLink="true">https://blog.vandesande.design/laser-chess-faq</guid>
<pubDate>Tue, 31 Oct 2006 12:00:00 +0000</pubDate>
<description>This link appeared here and there even got a minor digg, so a lot of people seemed interested into building thier own laser chess game What are we talking about? How the table was…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/laser-chess-faq/01-536.webp" width="536" height="358" alt="">
</figure>
<p>This link appeared here and there even got a minor digg, so a lot of people seemed interested into building thier own laser chess game</p>
<p><a href="https://web.archive.org/web/20061031/http://www.wanderingabout.com/thingswithlaser/index.php" target="_blank" rel="noopener">What are we talking about?</a></p>
<h4 id="h-how-the-table-was-made">How the table was made?</h4>
<p>It was a rather big game, a tabletop size. It had a wooden structure, covered in the outside with plastic (polyesthyrene if I remember well) sheets</p>
<h4 id="h-how-you-make-the-laser-visible">How you make the laser visible?</h4>
<p>If you don't make the laser visible you will be rather disappointed, having to search for where the red point had gone since you moved the mirror. You need particles in the air, and anything from clapping a chalkboard or smoking on the board will do. We decided to use dry ice, as we didn't have a smoke machine to spare, and the dry ice provides a quite simple set-up: just drop it on water. If you see closely there is a ditch around the table, it's where we filled with water and dry ice. Be careful: the dry ice doesn't give much smoke so make the ditch as small as possible to get the dry ice inside, but not too deep. Remember to make it impermeable, with plastic sheets and resin. We put a blue snake lamp for the effect. yes we could have used a smoke making machine, and we kept promising we would someday. But we never did, you know how those things go... Also: remember the thicker the smoke there will be a decay in the laser, as you can see one picture. It can be a part of the game rules, as you have to hit the goal, but you have to make the laser travel less than x meters or it will weaken too much</p>
<h4 id="h-how-you-made-the-laser-pointer">How you made the laser pointer?</h4>
<p>That's amazingly more easy than it seems. We bought a couple of cheap laser pointers from the street vendor and opened it up to figure it out. I was a first year student, and my only experience in electronics was making cardboard lanterns with two A batteries. If you can build a lamp, you can build a laser pointer: open it up, put some cooper cables where the batteries used to be and link them to some AA batteries and add a on/off switch.</p>
<h4 id="h-what-about-the-pawns">What about the pawns?</h4>
<p>Those round pawns are made of semi transparent resin (so they look cooler when hit by the laser). We used a halved billiard ball as mold and asked a local glass shop to put the mirrors on it.  <strong>Those yellow lines looks so cool!</strong></p>
<p>Thank you buts that's more due to the lighting than from the lines themselves. We had a black wooden board painted in black, masked and sprayed up the lines. We used a neon colored yellow, nothing special. But put it under a ultraviolet lamp (those that you see in night clubs, I hope they aren't exactly the cancer emitting ultraviolet types) and the yellow neon will look infinitely cool. We also painted ourselves in invisible paint that shines on that lamp and put some techno music to impress our teacher</p>
<h4 id="h-did-it-impress-you-teachers">did it impress you teachers?</h4>
<p>No. He was expecting us to make lego stack able bricks. The only thing stack able were the round pieces and they were merely complementary. But all our colleagues loved it.</p>
<h4 id="h-what-are-the-goals-of-the-game">What are the goals of the game?</h4>
<p>They are two acrylic tubes, folded in heat in a L shape. We drilled two holes at the sides, and put it trough it, so when you hit the bottom the whole stick lightens up</p>
<h4 id="h-are-there-any-game-rules">Are there any game rules?</h4>
<p>Well yes but I suppose you will want to make them yourself. Ours were not very imaginative: each turn you get to move and rotate one pawn, in order to try to reflect the laser to the opponents goal. If you move into an square occupied by an opponent, you capture it, which means the two pieces become one big non-reflective piece you control and can use to block the laser.</p>
<p>Laser Chess was designed and built in 2001, in participation with Ricardo Bacellar, Rodrigo Rego and Daniel Veloso. Those images are actual unaltered photographs of the working model.</p>
<p>|</p>
<p><a href="https://web.archive.org/web/20061031/http://www.wanderingabout.com" target="_blank" rel="noopener">www.wanderingabout.com</a></p>
<p>This website is a repository for design works and ideas by a brazilian student called Alexandre Van de Sande.</p>
<p>If you want to know more you can read about <a href="https://web.archive.org/web/20061031/http://www.wanderingabout.com/myself/index.php" target="_blank" rel="noopener">who is he</a>  or try to <a href="mailto:WVITMUIXCFTM@spammotel.com">contact</a> him.</p>]]></content:encoded>
</item>
<item>
<title>Le button</title>
<link>https://blog.vandesande.design/le-button</link>
<guid isPermaLink="true">https://blog.vandesande.design/le-button</guid>
<pubDate>Thu, 19 Jan 2006 12:00:00 +0000</pubDate>
<description>Le button is one single button that can transform any surface in a radio tuner. It allows to use any printed page as an link to an internet audio file which you can stream to your…</description>
<content:encoded><![CDATA[<p><em>Le</em> button is one single button that can transform any surface in a radio tuner. It allows to use any printed page as an link to an internet audio file which you can stream to your headphones. And because it’s able to save any pattern in it’s internal memory, you can re-save those links in any surface you can look at. how much can you do with a single button?</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/MO__tCvxW58" title="Le button" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<figure>
<img src="https://blog.vandesande.design/media/le-button/01.gif" width="692" height="170" alt="list of different interactions">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/le-button/02-376.webp" width="376" height="501" alt="photo of model">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/le-button/03-376.webp" width="376" height="501" alt="photo of model">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/le-button/04-376.webp" width="376" height="501" alt="working prototype">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/le-button/05-376.webp" width="376" height="501" alt="working prototype">
</figure>
<ul>
<li><p>about: Made in 2006/07 for Kenwood corporation and École Nationale de Création Industrielle along with Clément Tissandier, using Adobe After Effects* for the movie and Max/MSP/jitter* to program the working prototype . *(both which I had learned the week before)</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>Mélange</title>
<link>https://blog.vandesande.design/melange</link>
<guid isPermaLink="true">https://blog.vandesande.design/melange</guid>
<pubDate>Thu, 01 Sep 2005 12:00:00 +0000</pubDate>
<description>Digital tools are great but they lack the refinement or the sensibility of the classical drawing tools such as pens and pencils. Mélange is an attempt of bringing those together…</description>
<content:encoded><![CDATA[<p>Digital tools are great but they lack the refinement or the sensibility of the classical drawing tools such as pens and pencils. Mélange is an attempt of bringing those together not by simulating how ink flows in a paper but by bringing the digital screen over the canvas.</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/kksx2Pimu2M" title="Mélange" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<figure>
<img src="https://blog.vandesande.design/media/melange/01.gif" width="128" height="77" alt="diagram_melange.gif">
</figure>
<ul>
<li><p>about: Started making it in Rio in 2004 and finished in paris, 2005 using watercolor, ink, pencils and a projector.</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>iPod Video</title>
<link>https://blog.vandesande.design/ipod-video</link>
<guid isPermaLink="true">https://blog.vandesande.design/ipod-video</guid>
<pubDate>Wed, 31 Aug 2005 20:11:01 +0000</pubDate>
<description>probably anytime before we start writing down our christmas lists apple is going to release it&#x27;s new ipod, an all bets on the net are that is going to have video support. There is…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/ipod-video/01-400.webp" width="400" height="267" alt="">
</figure>
<p>probably anytime before we start writing down our christmas lists apple is going to release it's new ipod, an all bets on the net are that is going to have video support. There is not much inovation on that single piece, and in a market where windows media mobile failed to get off, where sony's PSP have a comfortable large screen for playing games and watching videos and most important cell phones are already able to stream any video to their screen apple is going to have to justify it's next step. But there is still another bigger challenge on portable video players: what are they for?</p>
<p>Videos, unlike music, requires your full attention and are unapropriate for jogging, walking, working and may be even ilegal while driving. An average everyday commute seldom lasts enough for your average 40minutes sitcom episdode. And if you do have a commute longer than that you probably won't want to show off that you are carrying a 400 dollars portable device, let alone rest it in your lap. Maybe you could want it during a trip, unless it's an air one as most airplanes have individual screens for low budget seats.This restricts drastically the usable window for a video iPod but apple seems to insist on it. They are smarter than me so, let's try to figure out why: My bet, think about portable, not mobile. A mac mini is a portable computer, but is far from being a mobile computer. It´s easy to carry it around, but you are not carrying it all the time. If ipod tries to be an all media in one, in your pocket, then I´m with microsoft in the opinion that thei´ll be won over by cell phones. But I trust apple´s inteligence on not going in that direction, but surprising us all. The new iPod could be:</p>
<p>1-Your personal mtv</p>
<p>That´s where apple want us to look. Just a natural extension of your music iPod, but instead of buying music you buy video clips at the ITMS, and let the thingy playing over your deck. But video could go way beyond that</p>
<p>2-Be your media center</p>
<p>Throw away your phillips DVD player. Have an iPod deck with video output. Leave you iPod there, and it´s all the media you need. An iPod as your home media center works as a concurrent of the huge and not so sucessfull windows media center PC. Or maybe the Xbox, which microsoft is selling as more than a video game but a whole media center (videos, music, games) for the teenager. And if you want to go to a friend´s movie party, why not take it all with you?</p>
<p>3-Be your remote control</p>
<p>It´s reasonable to believe the next iPod will come with bluetooth. It´s logical to think your iPod dock (or your macmini connecetd to your home theather) will also have. So why do not control all your movie functions from the wonderful-easy-to-use-patent-pending iPod interface. A quick look in the average home user and his one hudred buttons among his 10 remote controls in his living room reveals to anyone how much we need an upgrade in that system.</p>
<p>Maybe your next home theather may even come with bluetooth. Or your movie party friend´s.</p>
<p>4-Never rent a movie again</p>
<p>Never go to a blockbuster again. You could buy whole movies from your ITMS for a reasonable price and download directly from apple. The difference between buying or renting a movie are not so big in the end, you rarely get to see the same movie twice, downloading a movie from apple would be like a long term renting: you got the right to watch again the movie you picked up last week.</p>
<p>5-Be your TIVO</p>
<p>At the side of each podcast in the new iTunes you will se a column entitled "price". Althought until now are podcasts are free, the fact that this columns is there itches a lot of people. But althought everyone agrees that it would be foolish and absurd to try to charge for subscribing to a podcast when there are so many excelent ones free, most of us wouldn´t be offended if they charge you to subscribe to a sex and the city sitcom. What if the biggest TV series start being podcasted? Then apple´s iTunes may be the next big television...</p>]]></content:encoded>
</item>
<item>
<title>iPhone</title>
<link>https://blog.vandesande.design/iphone</link>
<guid isPermaLink="true">https://blog.vandesande.design/iphone</guid>
<pubDate>Wed, 31 Aug 2005 20:10:34 +0000</pubDate>
<description>Since Motorola and Apple announced a partnership the tech world started to speculate Apple releasing an iPod cell phone (which one can easily bet would be called iPhone iTalk or…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/iphone/01-607.webp" width="607" height="640" alt="">
</figure>
<p>Since Motorola and Apple announced a partnership the tech world started to speculate Apple releasing an iPod cell phone (which one can easily bet would be called iPhone iTalk or iAnything similar). Some initial images pop’d showing disappointing ordinary cell phones with built-in iTunes, without the iconic iPod click wheel. Later some pictured something a lot more applesque, but still a with a shy click wheel. The above is my contribution to apple: what better way to join wheel with a telephone than a beautiful dial-wheel phone?</p>
<p>The only things that are certain are less hype, but equally tasty. Apple licensed iTunes software for Motorola, long with it’s own digital rights manager, the Fair play. This does means a lot. Apple holds an almost monopoly in portable music players (read iPod). iPod only plays music bought from iTunes Music Store (or downloaded in the rule-less mp3). And, until now, the only player that could play music from the iTunes Music Store was the iPod. That means if you want to legally download some music and if you have (or wish) an iPod, you have to buy it from Apple. And today there no music player that can jeopardize iPod’s ubiquity, unless, the cell-phone. With this deal Apple is insuring it’s market dominance in digital music sale (and maybe in the near future, music recording), and Motorola can announce a cell phone that is friend with iPod users.</p>
<p>But what about an apple phone? As with the possibility of an Apple digital camera, only if Job’s designers can figure out something unique, advanced. Apple does not enter in a already saturated market to be one more. Never enter a war that you are not sure to win.</p>]]></content:encoded>
</item>
<item>
<title>In Between the Days</title>
<link>https://blog.vandesande.design/in-between-the-days</link>
<guid isPermaLink="true">https://blog.vandesande.design/in-between-the-days</guid>
<pubDate>Fri, 01 Jul 2005 12:00:00 +0000</pubDate>
<description>A video is about being into a daily routine while your mind wanders throught so many images and new ideas. Made for a video editing lab while I was in ENSCI, Paris.</description>
<content:encoded><![CDATA[<p>A video is about being into a daily routine while your mind wanders throught so many images and new ideas. Made for a video editing lab while I was in ENSCI, Paris.</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/woVgIt3Pcjs" title="In between the days" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>]]></content:encoded>
</item>
<item>
<title>Live video effects programming</title>
<link>https://blog.vandesande.design/live-video-effects-programming</link>
<guid isPermaLink="true">https://blog.vandesande.design/live-video-effects-programming</guid>
<pubDate>Fri, 01 Jul 2005 12:00:00 +0000</pubDate>
<description>Experiment. learn new tools. the following are a series of experiments I did when I first started exploring an isight iMac with quartz composer, a node-based visual programming…</description>
<content:encoded><![CDATA[<p>Experiment. learn new tools. the following are a series of experiments I did when I first started exploring an isight iMac with quartz composer, a node-based visual programming language for open-gl effects. all movies are around motion detection, and video interferences.</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/Ueq2vmzoKXk" title="Live video effects experiments" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<p>If you are a visual artist with a mac and an iSight camera, I recommend playing with quartz composer for a fun time. Below are the source files for the projects:</p>
<p><a href="https://web.archive.org/web/20050701/http://wanderingabout.com/uploads/quartz-experimentszip.zip" target="_blank" rel="noopener">download quartz source files</a></p>]]></content:encoded>
</item>
<item>
<title>Mind the pad</title>
<link>https://blog.vandesande.design/mind-the-pad</link>
<guid isPermaLink="true">https://blog.vandesande.design/mind-the-pad</guid>
<pubDate>Fri, 23 Jan 2004 12:00:00 +0000</pubDate>
<description>Mind the pad is a mind-tracker application-concept for cell phones and PDAs that is at the same time a scribble &amp; write sketch pad, an address book, agenda and file organizer. The…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/mind-the-pad/01-480.webp" width="480" height="480" alt="hand.jpg">
</figure>
<p>Mind the pad is a mind-tracker application-concept for cell phones and PDAs that is at the same time a scribble &amp; write sketch pad, an address book, agenda and file organizer.</p>
<p>The main principle behind the application is that information is not saved on a fixed location, but is stored as separate pieces that are auto organized as the user reach for it. Each piece of information, or meme, is a small text file along with a drawing (superimposed over the text), which can be linked to images or any file. Upon reading the user may underline some words and they will be transformed on special index words. When the user clicks an index word all information is re-organized and every data containing this index will be joined. Consequently, the user will be able to bridge ideas and concepts while searching for different data or files.</p>
<figure>
<img src="https://blog.vandesande.design/media/mind-the-pad/02-170.webp" width="170" height="175" alt="screenshot.jpg">
</figure>
<p>Each index is also associated to data fields as email or telephone number, so his address book is seaming less joined into the idea flow.</p>
<p>As the user does not need to previously organize it, information can also be inserted by medias such as voice and images. With a built-in text-to-speech technology, he may insert multiple, unrelated, voice memos during the day, which will automatically be converted into easily retrievable, therefore useful, data.</p>
<p>If the hardware has a camera, Mind the Pad becomes even more powerful. The user may add a voice comments to each photography he takes, that will be converted in an associated meme so he will be able to navigate thought his image library much in the same way his brain works when he is telling a story about a trip: by bridging and information association.</p>
<p>Later, the user can use the built in optical character recognition, to retrieve information about some images. Then he may quickly photograph an advertising, a note on the wall or a business card to insert the information about it.</p>
<ul>
<li><p>about: Mind the pad was designed in 2004 as a personal project</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>Radio Jaba</title>
<link>https://blog.vandesande.design/radio-jaba</link>
<guid isPermaLink="true">https://blog.vandesande.design/radio-jaba</guid>
<pubDate>Fri, 23 Jan 2004 12:00:00 +0000</pubDate>
<description>Free music might change our culture. But only if it creates a culture. We live in a funny paradox. You can hear any music, from anywhere, given you already know it, or at least…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/radio-jaba/01-704.webp" width="890" height="452" alt="maze1.gif">
</figure>
<h3 id="h-free-music-might-change-our-culture-but-only-if-it-creates-a-culture">Free music might change our culture. But only if it creates a culture.<br></h3>
<p>We live in a funny paradox. You can hear any music, from anywhere, given you already know it, or at least know how to spell it in a search engine. As a result, most of downloads are the famous artists seen in MTV, which makes the MTV guys very unhappy, as that´s precisely what they don´t want you to do. And at the same time, thousands of ignored musicians out there are actually asking to be heard, but remain in oblivion.</p>
<p>The result: recording companies prosecute people who can´t understand what they have done wrong (we´ve all always heard music for free after all), independent unknown artists who remain unknown artists, and radios plays old music as if nobody had done anything different in the last 10 years. It´s a everybody lose game.</p>
<p>That´s what radio Jaba it´s about.This is not a radio, nor a website, but it isn’t exactly a software neither. At least not yet: right now, it’s a conceptware, a proposal, spoken as an existing software, to stimulate discussion about the future of free music.</p>
<figure>
<img src="https://blog.vandesande.design/media/radio-jaba/02.gif" width="472" height="191" alt="how it works">
</figure>
<p>Radio Jaba is a mp3 player for exploring the musical world. You let him guide you, and he will give you information about the music you already own, bring you discussions and opinions about that musician, history on the albums, background for any musical genre, meanings, lyrics even translations for that song. You take the control and guide it, and it helps you make new unsuspected connections between musical genres, explore unknown realms of music, and get to know novelties uprising anywhere in the world.</p>
<figure>
<img src="https://blog.vandesande.design/media/radio-jaba/03.gif" width="162" height="215" alt="A diagram explaining how to put everything together">
</figure>
<p><em>how to put everything together</em></p>
<p>And, mainly, it analyzes your library to bring you new music, that you might want to hear, and mostly important that the artists want you to hear. This last piece of technology has been already explored in many softwares out there, like iRate, Gnomoradio and Indy.tv , to name a few. We´ve seen them, tested them, being inspired by them and hope for their future. They´ve done the technology right, but that´s not enough. It´s not about just downloading unknown mp3 to user´s HD´s, it´s about making a community. Bring information, bring people together, give them navigating tools and they will make you a community. It´s not just music, it´s about a whole free</p>
<p>Read more:</p>
<p><a href="https://web.archive.org/web/20040123/http://wanderingabout.com/FreeMusic/whatitdoes.php" target="_blank" rel="noopener">What it does?</a></p>
<p><a href="https://web.archive.org/web/20040123/http://wanderingabout.com/FreeMusic/money.php" target="_blank" rel="noopener">And how will the musicians make money?</a></p>
<p><a href="https://web.archive.org/web/20040123/http://wanderingabout.com/FreeMusic/related.php" target="_blank" rel="noopener">Criticism on similar programs</a></p>
<p><a href="https://web.archive.org/web/20040123/http://wanderingabout.com/FreeMusic/related.php" target="_blank" rel="noopener">Related Technologies</a></p>
<p><a href="https://web.archive.org/web/20040123/http://wanderingabout.com/FreeMusic/design.php" target="_blank" rel="noopener">Meta: about the project´s design</a></p>
<p><a href="https://web.archive.org/web/20040123/http://wanderingabout.com/FreeMusic/download.php" target="_blank" rel="noopener">Download Now!</a></p>
<ul>
<li><p>about: Radio Jaba was a pet project of two students: interface designer Alexandre Van de Sande and Music Producer Pedro Borges. It was started in 2004 when we felt that alternative music needed a free distributing channel. About the same time many others were tinkering with the same problems and the emergence of Podcasting showed us that some things we only thought possible through massive computer algorithms, like filtering the gigantic amount of online music, was done thanks to the work of thousands of volunteers, who contributed with time and hosting space. A valuable lesson indeed. Pedro Borges is now a prominent podcaster in Brazil, and set up a site to help others spread the word. Alexandre, besides helping designing that site, still tinkers about media interfaces, as you may see in the rest of this site.</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>Alchemy of Juices</title>
<link>https://blog.vandesande.design/alchemy-of-juices</link>
<guid isPermaLink="true">https://blog.vandesande.design/alchemy-of-juices</guid>
<pubDate>Sat, 19 Apr 2003 12:00:00 +0000</pubDate>
<description>Experiment the Alchemy! Can we map something as subjective as tastes? Alchemy of juices is a interactive infograph that is helps to choose a juice made with various fruits, by…</description>
<content:encoded><![CDATA[<p><a href="https://web.archive.org/web/20030419/http://wanderingabout.com/fruitjuices/alquimia.html" target="_blank" rel="noopener">Experiment the Alchemy!</a></p>
<figure>
<img src="https://blog.vandesande.design/media/alchemy-of-juices/01-600.webp" width="600" height="375" alt="">
</figure>
<p>Can we map something as subjective as tastes? Alchemy of juices is a interactive infograph that is helps to choose a juice made with various fruits, by selecting either the fruits, the feeling or the taste. At the same time it tries to foresse those tastes and feelings of juices you mix there, based on user input from previous juices. Just as an alchemic diagram it’s about being a somewhat misterious but beautiful infograph.</p>
<figure>
<img src="https://blog.vandesande.design/media/alchemy-of-juices/02-400.webp" width="400" height="250" alt="alchemy">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/alchemy-of-juices/03-400.webp" width="400" height="250" alt="alchemy">
</figure>
<p>Yes, we’ve got bananas, and thousands of other tropical fruits. And it is not amazing that in any casual restaurant in Rio de Janeiro you may ask to mix peanuts, banana, and amazonian fruits like Guaraná and Açaí. Best of all, they’ve got creative names: this one for example is called viagra. Watermelon and lemon is called “Sexy juice”. For some unknown reason we have to agree that there is something extremely sensual in that combination, even without tasting. Juices are more than just taste; they bring back memories.</p>
<p>The Alchemy of Juices is an experiment on information architecture which tries to reveal the most information possible in a visually simple and dynamic diagram. The main target is not to be easily readable at first, but to become intuitive once the logic is learnt.</p>
<p>The result is a rather mysterious-looking schema that allows the user to seek for juices based on a sensation or a fruit, to share experiences with other people, to guess what will be the result of a any mix, even to know what fruits you expect in this time of the year. All in one non polluted screen.</p>
<p>Once I head a teacher that, whenever asked how to know if a curve was correct would answer. ‘If it looks beautiful, it’s probably the correct one.’ Alchemy looks as an occult symbol: even though you don’t understand it, it’s attractive to look.</p>
<ul>
<li><p>about: Made with Flash and actionscript in the year 2003, along with Ricardo Bacellar, with the supervision of Gui Bonsiepe</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>Muvuca</title>
<link>https://blog.vandesande.design/muvuca</link>
<guid isPermaLink="true">https://blog.vandesande.design/muvuca</guid>
<pubDate>Sat, 19 Apr 2003 12:00:00 +0000</pubDate>
<description>muvuca is about connecting distant friends through some kind of non verbal sharing. throught their avatar on the movie screen they can sense that their friends have a common focus…</description>
<content:encoded><![CDATA[<p>muvuca is about connecting distant friends through some kind of non verbal sharing. throught their avatar on the movie screen they can sense that their friends have a common focus of attention.</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/Bm6tFNpELRk" title="Muvuca, the short movie" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<figure>
<img src="https://blog.vandesande.design/media/muvuca/01-600.webp" width="600" height="488" alt="">
</figure>
<p>It’s a virtual movie theather, where all friends watch the same movie at the same time. The avatar, controlled by a puppet-like remote, allows the users to hav movements without sounds to allow silent comunications. Also, it can act as a passive microfone transforming the audio in semi controlled movements from the avatar.</p>
<figure class="youtube">
<iframe src="https://www.youtube-nocookie.com/embed/Sn-rhyY8Mj0" title="Muvuca and Bill" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
</figure>
<figure>
<img src="https://blog.vandesande.design/media/muvuca/02-400.webp" width="400" height="300" alt="alchemy">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/muvuca/03-400.webp" width="400" height="300" alt="alchemy">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/muvuca/04-400.webp" width="400" height="400" alt="">
</figure>
<p>Also see this <a href="http://www.youtube.com/watch?v=Sn-rhyY8Mj0" target="_blank" rel="noopener">Bill gate’s comment on the project</a></p>
<figure>
<img src="https://blog.vandesande.design/media/muvuca/05.gif" width="15" height="15" alt=";)">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/muvuca/06-400.webp" width="400" height="182" alt="alchemy">
</figure>
<ul>
<li><p>about: Made for the Microsoft Research Design Expo 2003 contest, along with Rodrigo Rego and Ricardo Bacellar</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>the Wall Maze</title>
<link>https://blog.vandesande.design/the-wall-maze</link>
<guid isPermaLink="true">https://blog.vandesande.design/the-wall-maze</guid>
<pubDate>Fri, 19 Apr 2002 12:00:00 +0000</pubDate>
<description>Enter the maze Game design and programming. While figuring out an algorithm for building a maze with only one right path, it became clear that in such a maze the walls would be a…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/the-wall-maze/01-476.webp" width="476" height="452" alt="maze1.gif">
</figure>
<p><a href="https://web.archive.org/web/20020419/http://wanderingabout.com/mazes/labirinto.html" target="_blank" rel="noopener">Enter the maze</a></p>
<p>Game design and programming. While figuring out an algorithm for building a maze with only one right path, it became clear that in such a maze the walls would be a labyrinth of it’s own. Then it was a natural evolution transforming it into a maze whith special stairs and bridges so you could walk over walls or on the ground.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-wall-maze/02.gif" width="200" height="201" alt="maze">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/the-wall-maze/03.gif" width="200" height="201" alt="maze 2">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/the-wall-maze/04.gif" width="200" height="201" alt="maze 3">
</figure>
<p>For centuries labyrinths have been used for meditation. Taking the longest route to go through a short distance, priests would use that time to pray and think. Back then, no one had invented traffic jam.</p>
<p>I also used my long hours in traffic jams to read and think. So I found some funny things about them. The first is that in a true maze (a labyrinth with multiple ways) every point is reached through one and only one way. Another, is that to build one like that all you need is to start with a open circle and draw lines starting from another line and ending anywhere as long as it does not cross or touch any other. And finally I’ve realized that in a maze built like that, not only the space between, but the walls also form a true maze. Beyond programming the algorithm, I drew the character animation.</p>
<figure>
<img src="https://blog.vandesande.design/media/the-wall-maze/05-196.webp" width="196" height="132" alt="maze character">
</figure>
<ul>
<li><p>about: Made in 2002. Animation, programming, and algorithm in Adobe Flash and Actionscript.</p></li>
</ul>]]></content:encoded>
</item>
<item>
<title>Laser Chess</title>
<link>https://blog.vandesande.design/laser-chess</link>
<guid isPermaLink="true">https://blog.vandesande.design/laser-chess</guid>
<pubDate>Wed, 23 May 2001 12:00:00 +0000</pubDate>
<description>The rule of thumb in the first year of college is: bend the rules to see how far they can go. The teacher asked the students to build a game with resin pieces, just so we would…</description>
<content:encoded><![CDATA[<figure>
<img src="https://blog.vandesande.design/media/laser-chess/01-480.webp" width="480" height="320" alt="laser1.jpg">
</figure>
<p>The rule of thumb in the first year of college is: bend the rules to see how far they can go. The teacher asked the students to build a game with resin pieces, just so we would know how to mould in resin. We added dry ice, acr ylic tubes and a laser beam. Laser Chess is a strategy game for two player s. Each one has four semi-spheric pawns (molded after a hlf cutte billir ball) with a mirror face, and the game objective is to reflect the central laser beam until it hits the opponent’s goal, an acrylic tube which glows red when illuminated. The game was constructed on a 1.2 m (4 ft.) high table with a space under which there is a blue light and a solidified carbon dioxide vapour. For the laser beam we had to unbuild many laser pointers until we figured out how to make it work with ordinary batteries. The final presentation was held in a dark room, with techno music and purple lights.</p>
<figure>
<img src="https://blog.vandesande.design/media/laser-chess/02-480.webp" width="480" height="360" alt="laser21.jpg">
</figure>
<figure>
<img src="https://blog.vandesande.design/media/laser-chess/03-480.webp" width="480" height="360" alt="laser31.jpg">
</figure>
<h3 id="h-how-the-table-was-made">How the table was made?</h3>
<p>It was a rather big game, a tabletop size. It had a wooden structure, covered in the outside with plastic (polyesthyrene if I remember well) sheets</p>
<h3 id="h-how-you-make-the-laser-visible">How you make the laser visible?</h3>
<p>If you don’t make the laser visible you will be rather disappointed, having to search for where the red point had gone since you moved the mirror. You need particles in the air, and anything from clapping a chalkboard or smoking on the board will do. We decided to use dry ice, as we didn’t have a smoke machine to spare, and the dry ice provides a quite simple set-up: just drop it on water. If you see closely there is a ditch around the table, it’s where we filled with water and dry ice. Be careful: the dry ice doesn’t give much smoke so make the ditch as small as possible to get the dry ice inside, but not too deep. Remember to make it impermeable, with plastic sheets and resin. We put a blue snake lamp for the effect. yes we could have used a smoke making machine, and we kept promising we would someday. But we never did, you know how those things go… Also: remember the thicker the smoke there will be a decay in the laser, as you can see one picture. It can be a part of the game rules, as you have to hit the goal, but you have to make the laser travel less than x meters or it will weaken too much</p>
<h3 id="h-how-you-made-the-laser-pointer">How you made the laser pointer?</h3>
<p>That’s amazingly more easy than it seems. We bought a couple of cheap laser pointers from the street vendor and opened it up to figure it out. I was a first year student, and my only experience in electronics was making cardboard lanterns with two A batteries. If you can build a lamp, you can build a laser pointer: open it up, put some cooper cables where the batteries used to be and link them to some AA batteries and add a on/off switch.</p>
<h3 id="h-what-about-the-pawns">What about the pawns?</h3>
<p>Those round pawns are made of semi transparent resin (so they look cooler when hit by the laser). We used a halved billiard ball as mold and asked a local glass shop to put the mirrors on it.</p>
<h3 id="h-those-yellow-lines-looks-so-cool">Those yellow lines looks so cool!</h3>
<p>Thank you buts that’s more due to the lighting than from the lines themselves. We had a black wooden board painted in black, masked and sprayed up the lines. We used a neon colored yellow, nothing special. But put it under a ultraviolet lamp (those that you see in night clubs, I hope they aren’t exactly the cancer emitting ultraviolet types) and the yellow neon will look infinitely cool. We also painted ourselves in invisible paint that shines on that lamp and put some techno music to impress our teacher</p>
<h3 id="h-did-it-impress-your-teachers">did it impress your teachers?</h3>
<p>No. He was expecting us to make lego stack able bricks. The only thing stack able were the round pieces and they were merely complementary. But all our colleagues loved it.</p>
<h3 id="h-what-are-the-goals-of-the-game">What are the goals of the game?</h3>
<p>They are two acrylic tubes, folded in heat in a L shape. We drilled two holes at the sides, and put it trough it, so when you hit the bottom the whole stick lightens up</p>
<h3 id="h-were-there-any-game-rules">Were there any game rules?</h3>
<p>Well yes but I suppose you will want to make them yourself. Ours were not very imaginative: each turn you get to move and rotate one pawn, in order to try to reflect the laser to the opponents goal. If you move into an square occupied by an opponent, you capture it, which means the two pieces become one big non-reflective piece you control and can use to block the laser.</p>
<figure>
<img src="https://blog.vandesande.design/media/laser-chess/04-480.webp" width="480" height="360" alt="laser41.jpg">
</figure>
<ul>
<li><p>about: Made in 2001, along with Ricardo Bacellar, Rodrigo Rego and Daniel Veloso</p></li>
</ul>]]></content:encoded>
</item>
</channel>
</rss>
