Jekyll2017-09-27T11:33:50-07:00http://localhost:4000/Breck Yunits’ BlogSome writing about probability, programming, economics and life.
3-Dimensional Source Code2017-07-29T04:25:00-07:002017-07-29T04:25:00-07:00http://localhost:4000/3-dimensional-source-code<p><a href="https://forwardjs.com/">Forward JS</a> was fantastic! Thank you to the organizers and other participants who made it an inspirational event. I look forward to attending again next year.</p>
<p>Forward JS will post videos at some point of the talks synchronized with the slides. Until then, I uploaded just the screencast of my talk.</p>
<p>My talk is titled “3-Dimensional Source Code” and dives into 1-Dimensional vs 2/3-Dimensional programming languages, why we want 2/3-Dimensional languages, Tree Notation and Tree Languages, a “hello world” example in an Tree Language called Fire, and Ohayo.</p>
<p>If you find it interesting, star <a href="https://github.com/breck7/treeprogram">Tree Notation</a> and/or <a href="https://github.com/breck7/ohayo">Ohayo</a> on GitHub, or play with version 2.0 of the <a href="http://ohayo.computer">Ohayo Beta</a>.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/ldVtDlbOUMA" frameborder="0" allowfullscreen=""></iframe>
<p>Update: some folks have commented that the viewing experience is terrible because it’s just the screencast, so you may want to hold off on watching until the video and screencast are published together. If you do watch, here is a photo of the “arts and crafts” project I mention a few minutes in, which is a 3D model of the Fire Hello World program.</p>
<p><img src="/files/3d.jpg" /></p>
<p>Thank you readers so, so much for all your comments and criticisms. Please continue with the feedback (and the harsher/funnier, the better!)</p>
<p>Much more to come!</p>
<p>7/29/2017</p>
<p>(Updated links on 9/27/2017)</p>Forward JS was fantastic! Thank you to the organizers and other participants who made it an inspirational event. I look forward to attending again next year.Ohayo2017-06-23T04:25:00-07:002017-06-23T04:25:00-07:00http://localhost:4000/ohayo<p>You can now try Ohayo.</p>
<p>There is still so much work to do, this is just Day 1. If you’re a busy professional
programmer, it’s not ready for you yet.</p>
<p>But if you’re a researcher, or a student, or a dreamer, it’s ready for you to try:</p>
<p><a href="http://ohayo.computer">http://ohayo.computer</a></p>
<p>You can also download it from GitHub:</p>
<p><a href="https://github.com/breck7/ohayo">https://github.com/breck7/ohayo</a></p>
<p>We’ve got a long way to go. But I’m confident that this new direction will help us all
program faster.</p>
<p>Thank you for everyone for your support, and especially those who provided critical feedback.</p>
<p>I am excited to iterate, but right now need to catch up on sleep.</p>
<p><img src="/files/sleep.png" /></p>
<p>6/23/2017</p>You can now try Ohayo.The flaw in Lisp2017-06-23T04:22:00-07:002017-06-23T04:22:00-07:00http://localhost:4000/the-flaw-in-lisp<p>Let me explain <a href="https://github.com/breck7/treeprogram">Tree Languages</a> another way. Tree Languages fix Lisp.</p>
<p>Below are two math proofs (one visual, one text) that prove the flaw in Lisp.</p>
<p>In Lisp, which uses parantheses for structure and allows arbitrary whitespace,
there are many ways to write your code, and not all of those ways arrange your
source code into “geometric trees”. That is, if you connect the nodes of your
program with lines, sometimes those lines will intersect or be coincident.</p>
<p>Or to put it another way, Lisp source doesn’t map to 2-Dimensions. Lines (edges) can occupy
the same space. Think of a tree in the real world. Branches may touch, but they
never occupy the same space.</p>
<p>Lisp is powerful, but flawed. TN and Tree Languages finally fix that flaw. Fixing the
2-dimensional mapping problem, we will be able to write code as powerful as Lisps,
but we will be able to do it much faster (with the aid of machines), and in a
much simpler and easier to maintain way.</p>
<p>Thank you so much to everyone who has provided feedback on the paper, especially
those who have provided the harshest feedback. Please keep it coming.</p>
<p>I’m still fully confident in my predictions.</p>
<p><img src="/files/proof-visual.jpg" /></p>
<p><img src="/files/proof-math.jpg" /></p>
<p>6/23/2017</p>
<p>(Updated on 9/27/2017 to fix links and change ETNs to Tree Languages)</p>Let me explain Tree Languages another way. Tree Languages fix Lisp.How I discovered Tree Languages2017-06-22T00:00:00-07:002017-06-22T00:00:00-07:00http://localhost:4000/how-i-discovered-tree-languages<p>Below is an email I sent to someone close to me about how I discovered Tree Languages. They knew that in addition to working full time on a personal data visualization app over the past year, I also had some side research project. But they thought the data viz app was my top work priority. Which was true, until recently. So they asked “how are TN and the visualization app related?” This is my (slightly edited) response.</p>
<hr />
<p>As to how the data viz app and the paper are related, it’s a long story.</p>
<p>I remember the very moment when I first “discovered” Tree Notation. I was walking from [our house in San Francisco] to our old NudgePad office [which was on 12th and Folsom]. [Nudgepad was] building a visual html authoring tool, and I was saving the files people would create using a language called HAML. But we were low on money and time, so I needed to cut corners wherever I could, and so I had been dropping features from HAML to save development costs. I kept dropping features from the language and realizing everything still could work, which surprised me.</p>
<p>By that day, I had just 3 syntax characters left “\n”, “ “, and “:”. As I was walking to work I was thinking to myself, “wow, I’ve removed everything from HAML and it still works…wait! no! I could still drop the “:”!”. And it struck me immediately that that was an interesting idea. I remember immediately going and coding it up, and to my delight, things still worked. At that point I thought it was pretty profound, that a simple structured language could be so useful. I had only the vaguest of hints though that this hadn’t been known yet. So for a couple years I refined it while simultaneously searching for whether something like it already existed. Writing this it just dawned on me that at one point years ago I tried to get some advisors for my “research project” but had no luck. For example:</p>
<p><img src="/files/advisor-attempt.png" /></p>
<p>(Note: I’m including the screenshot above as a way of saying thanks to Doug. He was one of a few people who replied at all to my cold emails, and he wished me good luck! That was awesome, even if I didn’t snag him as an advisor.)</p>
<p>At first I called the notation “Tree”, then I called it “Note”, then I called it “Space”, before eventually settling last year on “Tree Notation”.</p>
<p>So anyway, I pitched and pushed the “research project” for many years with little success. People just didn’t care. This was fully my fault, as I had been attacking the wrong problem, but I didn’t know that at the time. I just had a hunch that it was useful (it was too simple and beautiful to not be!), just hadn’t proved for what yet.</p>
<p>At many times I thought of just dropping the project, but in many ways it felt like “my baby”, and that I needed to help it into the world. Sorry if that sounds weird, I don’t know how else to put it. But it was stuck.</p>
<p>And meanwhile I wanted to build the data viz program, because you know me and how I love data and “quantified self” stuff and wanted a tool that made it faster for me to be more data driven. So I left Microsoft last year to build the personal data viz app, and I also expected to continue to work part time on the research on TN.</p>
<p>To solve the data viz problems in a visual programming way, I needed to use TN to store the documents that people would create. I knew this already since I’ve been in the space for so many years and knew that without TN, tools and humans could not interoperate cleanly on the same code. But at first I was just using TN as a replacement for JSON, in that it was just a pretty simple document encoding.</p>
<p>I believe it was over Christmas break, maybe a little before, when I started to experiment with adding more power to the data language format, realizing that really what would work well for the data viz tool would be a “Dataflow language”. And so I started moving “BoardScript” (now called “Flow”), the TN language I was using to encode the data viz boards, into the direction of a more powerful dataflow programming language. IIRC, I sent you a text at one moment like “this is going to be amazing!” Or something hyperbolic along those lines. That was when it dawned on me that I could still use TN to get the visual editing but now my TN language would be a lot more powerful than just a static document language.</p>
<p>Then, about 2 months ago(?), I did a big refactor of my app architecture to more closely model Facebook’s ReactJS. That worked great and made development much easier. But there is a big glaring problem with FB’s React which everyone has tried so far unsuccessfully to fix–how to handle state. I was thinking to myself that maybe I could use TN for that. But I didn’t want to risk it, because I was so late on shipping already and didn’t want to do anything that might delay launch. But then one day, after mounting frustration trying all the other ways Facebook recommends to handle state, I decided to give it a go with TN. I made my base component extend TN and then had a nice, clean, plaintext tree to store and manage state. And it worked brilliantly.</p>
<p>Then, a couple weeks ago, remember how I was struggling getting test coverage up? I was at like 11% or something even worse. I had been doing the bare minimum in unit testing as I was building the data viz app and now with a complex app I was paying for it big time. And I was realizing it was going to take me forever and thousands mores lines of code just for the tests. Which tests themselves would also have to be maintained, etc. It was really scaring me. I knew I could use a Lisp to greatly reduce the code size but I didn’t want to go down that path because I’ve always believed long term Lisp is not scalable on big projects. Then as I’m staring at my test code, I’m thinking, “you know, TN might work for this”. And took a stab at it. And then, within a few days, I had another new “Tree Language” for tests and it worked brilliantly and I was able to rocket to 60-70% test coverage and ended up with fewer lines of code than I had for the 11% coverage!</p>
<p>And really it was just the past two or three weeks that all of these things clicked for me. I had a TN for Dataflow. I had a TN for CSS. I had a TN for my React app. I had a TN for my unit tests. I had a TN for my concurrent async integration tests. And there was the big “aha” moment where I realized that TN wasn’t just a new class of document languages, it was a new class of powerful programming languages. And I realized that 99% of the value in TN lies in the program language use cases, not the document language use cases.</p>
<p>I had been focusing on the wrong application of TN. I was focusing on document languages like JSON and XML because I figured I should get a “foothold” of success in document languages before moving on to programming languages. I do think TN offers about a 10% improvement over JSON or XML. But I have struggled for years to make that a more meaningful improvement, with little luck. But with programming languages, I see that TN/Tree Language might offer a 1,000+% fold improvement.</p>
<p>So anyway, that was a really long story, but explains how it all came together. And how the data viz app really pushed me to take TN to a new level, and really finally figure out what TN is good for. Does that make sense?</p>
<p>Anyway, now I believe the Tree Language discovery will dwarf the impact of the data viz app. That makes the data viz stuff much more fun, because now I look at my job as just encouraging the discovery of more Tree Languages and Tree Language tools, and the data viz app as just one application of many. Of course, that’s still my favorite application, but it’s nice to have a side project again.</p>
<p>6/22/2017</p>
<p>(Updated on 9/27/2017 to change ETNs to Tree Languages)</p>Below is an email I sent to someone close to me about how I discovered Tree Languages. They knew that in addition to working full time on a personal data visualization app over the past year, I also had some side research project. But they thought the data viz app was my top work priority. Which was true, until recently. So they asked “how are TN and the visualization app related?” This is my (slightly edited) response.Show HN: Programming is Now Two-Dimensional2017-06-21T04:02:00-07:002017-06-21T04:02:00-07:00http://localhost:4000/show-hn-programming-is-now-two-dimensional<h4 id="eureka">EUREKA!</h4>
<p>Today I am announcing a significant new discovery in computer science.</p>
<p>The discovery is described in a 2 page paper published freely on GitHub. The paper is titled <a href="https://github.com/breck7/treeprogram/blob/master/paper/treenotation.pdf">Tree Notation: an antifragile program notation</a>.</p>
<p>The paper introduces Tree Notation, a new way to encode tree structures, and then introduces a new family of programming languages called Tree Languages. Tree Languages are 2-dimensional programming languages that can be simple or Turing complete. All modern day programming languages can be derived from a Tree Language. Programs written in Tree Languages can be “perfect”–they can use the minimum number of nodes to solve a problem. With Tree Languages, your programs will be smaller, easier to write, faster, easier to debug, more reliable, and cheaper to create.</p>
<p><img src="/files/a-perfect-program.jpg" /></p>
<h4 id="on-s-curves-black-swans-paradigm-shifts-tipping-points-orders-of-magnitude-0-to-1s-silver-bullets-master-algorithms">On S-Curves, Black Swans, Paradigm Shifts, Tipping Points, Orders of Magnitude, 0 to 1s, Silver Bullets, Master Algorithms…</h4>
<p>Pedros Domingos published an incredible book titled “The Master Algorithm” (TMA). In my favorite chapter, Domingos reduces many great ideas–which have each shifted my thinking over the years–to a common parent idea, which he calls “S-Curves.”</p>
<p>This discovery will mark the start of a new S-curve in programming.</p>
<p><img src="/files/the-etn-s-curve.jpg" /></p>
<p>Programmer productivity will soon accelerate. Conceptualizing all programs as trees, and directly implementing them as trees in Tree Languages, will prove to be a rare <a href="http://faculty.salisbury.edu/~xswang/Research/Papers/SERelated/no-silver-bullet.pdf">“silver bullet”</a>.</p>
<h4 id="on-doubt">On doubt…</h4>
<p>To predict an S-curve before it happens is generally a foolish thing to do.</p>
<p>Most reviewers question the validity and/or the significance of this discovery. I also ask you readers, for your skepticism, rebuttals, nits, and (hopefully clever and humorous) insults.</p>
<h4 id="on-certainty">On certainty…</h4>
<p>I stumbled into Tree Languages over the past few years. I was lucky enough to have the time and modern tools to explore them. I personally have no doubt in the validity of the claims.</p>
<h4 id="on-the-future-of-programming">On the future of programming…</h4>
<p>I will make the following 2 bets about the next ten years:</p>
<ul>
<li>Tree Languages will make software design, development, and debugging, at least 10x faster.</li>
<li>Tree Languages will make parallel programming, machine learning, and AI, at least 10x faster.</li>
</ul>
<p>I could make many more, but that should be enough to get the point across. If anyone wants to make a $1 charity-of-your-choice bet against any of these statements, post a comment to HN, we can hash out the details, and I will give you 100-1 odds.</p>
<h4 id="on-research">On research…</h4>
<p>In the course of my research, I came across an obscure paper published in 1972 by Mark B. Wells, a researcher at Los Alamos. In “A Review of Two-Dimensional Programming Languages,” Wells predicts: “There is no doubt in this author’s mind that twenty years from now linear string languages, at least from the general user’s point of view, will be completely passe.”</p>
<p>He was a little early, but otherwise I believe he will be proven correct.</p>
<h4 id="on-being-ahead-of-your-time">On being ahead of your time…</h4>
<p>My high school English teacher once read us a Tom Stoppard quote (in a dramatic voice), “I don’t think writers are sacred, but words are. They deserve respect. If you get the right ones in the right order, you can nudge the world a little…”</p>
<p>Well’s hunch was correct, but someone needed to get the “right words in the right order”, so to speak.</p>
<h4 id="on-uncertainty">On uncertainty…</h4>
<p>I have no doubt that Tree Languages will change the world in unpredictable ways, and that in the future, a woman somewhere in the world will discover something that makes Tree Languages look antique. Maybe in ten years, fifty years, or maybe next month (I will learn from Wells’ prediction and be less precise in the timeframe).</p>
<h4 id="on-what-you-can-do">On what you can do…</h4>
<p>Today is Day 1 of the Tree Language S-Curve. The most valuable (and difficult!) work is in front of us. But the opportunity is immense. Code is ideas. Ideas change the world. With Tree Languages we will be able to create good code much faster. Therefore, we can make the world better, faster.</p>
<p>Therefore, I ask you, good programmers, to act! Steal this idea! Make it your own! Together, programming faster, let’s build new ideas that make our world a more beautiful, loving, freer home for all!</p>
<h4 id="on-what-eureka-feels-like">On what EUREKA feels like…</h4>
<p>“Do you hear them talking of genius, Degna? There is no such thing. Genius, if you like to call it that, is the gift of work continuously applied. That’s all it is, as I have proved for myself.” - Guglielmo Marconi to his daughter, Degna.</p>
<p>So many great programmers have started S-Curves in the past, like Long, Holowaychuk, Dahl, Bostock, Bak, Skinner, Graham, Crockford, Hillis, Wales, Torvalds, Eich, van Rossum, Bray, Norvig, Matsumoto, Berners-Lee, Kay, Wolfram, Stallman, Steele, Moon, Ritchie, Knuth, Kahn, Cerf, Thompson, Wells, McCarthy, Shannon, Turing, Church, and Lovelace, to name a few. My discovery will never come close to the impact of those discoveries, but I have enjoyed a short EUREKA “gift”. In my quantified experience, EUREKA is ~24,900 hours perspiration followed by ~100 hours of serene, joyful, productivity. Then things are right back to normal, except now you have a new, better tool (until something better comes along).</p>
<h4 id="one-more-thing">One more thing</h4>
<p>Later today I’ll be releasing the beta of Ohayo, the first general purpose Tree Language editor. Ohayo will ship with two Tree Languages, Flow, a Tree Language for doing data science, and Fire, a Tree Language that compiles to Javascript. Ohayo will be completely free to all Internet users around the world and the source code will be found in the <a href="https://github.com/breck7/treeprogram/">Tree Notation GitHub</a> as well as in the Ohayo GitHub (coming soon) which will go live by the end of the year (but first I need some time to do big, breaking refactors…and to get some sleep). Ohayo will help you build programs faster. In the first few weeks, there will be plenty of bugs and missing features, but with your feedback and help we’ll quickly build a bulletproof tool.</p>
<h4 id="thank-you">Thank you</h4>
<p>This has been quite a journey, with many highs and lows. I owe all the highs to the Ovarian Lottery. I lucked into incredible parents and siblings, incredible friends, incredible communities and incredible books. Despite how many dumb mistakes I made, my family, friends, communities, and books were always there to catch, support, advise, and humor me until I was back on my feet. It was a lot of fun and great luck to have a EUREKA moment, and I owe it all to them. I’ll keep working hard, creating Tree Languages and building <a href="https://ohayo.computer">Tree Language tools</a> (of course!), but now the baton is largely out of my hands and into yours, my fellow programmers.</p>
<p>Thank you to my favorite authors, to my fellow programmers, to my communities, to my friends.</p>
<p>Thank you to 1145, Cam, Ben, Nick, Andrew. Thank you to my former colleagues and mentors (and still good friends) at Microsoft, Mozilla and Lab Zero. Thank you to HackerNews, Reddit, SciHub and YCombinator. And thank you to the many, many other people who helped, mentored, and supported me along the way.</p>
<p>Thank you to Conor, Sarah, Casey, Derek, Mairi, my nieces and nephews, aunts, uncles, and cousins.</p>
<p>Thank you to my fiancée, my partner, the love of my life.</p>
<p>Finally, thank you to my mom, who always remembers to tell us to drink 8 glasses of water a day, to never stop growing, and who always asks us “did I tell you I loved you today?”, and thank you to my dad, who always tells us to not move our heads, and who shows us by example, how to serve others, to work harder than hard, and to always keep in mind that “one must imagine Sisyphus happy.”</p>
<p>This is for you two.</p>
<p>6/21/2017</p>
<p>(Updated 9/27/2017 to fix links and change ETNs to Tree Languages)</p>EUREKA!Big Data Notation2013-09-24T02:06:40-07:002013-09-24T02:06:40-07:00http://localhost:4000/big-data-notation<p><b>A Suggestion for a Simple Notation</b>
<br />
<br />What if instead of talking about Big Data, we talked about 12 Data, 13 Data, 14 Data, 15 Data, et cetera? The # refers to the number of zeroes we are dealing with.
<br />
<br />You can then easily differentiate problems. Some companies are dealing with 12 Data, some companies are dealing with 15 Data. No company is yet dealing with 19 Data. Big Data starts at 12 Data, and maybe over time you could say Big Data starts at 13 Data, et cetera.
<br />
<br />What do you think?
<br />
<br />This occurred to me recently as I just started following <a href="http://www.quora.com/Big-Data">Big Data on Quora</a> and was surprised to see the term used so loosely, when data is something so easily measurable. For example, a <a href="http://www.mckinsey.com/insights/business_technology/big_data_the_next_frontier_for_innovation">2011 Big Data report from McKinsey</a> defined
big data as ranging “from a few dozen terabytes to multiple petabytes (thousands of terabytes).” <a href="http://en.wikipedia.org/wiki/Big_data">Wikipedia defines Big Data</a> as “a collection of data sets so large and complex that it becomes
difficult to process using on-hand database management tools or traditional data processing applications.”
<br />
<br />I think these terms make Big Data seem mysterious and confusing, when in fact it could be completely straightforward.</p>
<p>Published September 24th 2013, 9:06:15 am</p>A Suggestion for a Simple Notation What if instead of talking about Big Data, we talked about 12 Data, 13 Data, 14 Data, 15 Data, et cetera? The # refers to the number of zeroes we are dealing with. You can then easily differentiate problems. Some companies are dealing with 12 Data, some companies are dealing with 15 Data. No company is yet dealing with 19 Data. Big Data starts at 12 Data, and maybe over time you could say Big Data starts at 13 Data, et cetera. What do you think? This occurred to me recently as I just started following Big Data on Quora and was surprised to see the term used so loosely, when data is something so easily measurable. For example, a 2011 Big Data report from McKinsey defined big data as ranging “from a few dozen terabytes to multiple petabytes (thousands of terabytes).” Wikipedia defines Big Data as “a collection of data sets so large and complex that it becomes difficult to process using on-hand database management tools or traditional data processing applications.” I think these terms make Big Data seem mysterious and confusing, when in fact it could be completely straightforward. Published September 24th 2013, 9:06:15 amNudgePad: An IDE in Your Browser2013-09-23T02:46:40-07:002013-09-23T02:46:40-07:00http://localhost:4000/nudgepad-an-ide-in-your-browser<p>Making websites is slow and frustrating.
<br />
<br />I met a young entrepreneur who wanted to create a website for his bed and breakfast. He had spent dozens of hours with different tools and was no closer to having what he wanted.
<br />
<br />I met a teacher who wanted his students to turn in web pages for homework instead of paper pages. No existing tool allows his students to easily create pages without restricting their creativity.
<br />
<br />I met an artist who wanted a website with a slideshow for her portfolio.
<br />
<br />A restaurant owner who wanted a website that could take online orders.
<br />
<br />An author who wanted a website with a blog.
<br />
<br />A saleswoman who wanted to build a members-only site for great deals she gathered.
<br />
<br />A candidate who wanted a website that could coordinate his volunteers.
<br />
<br />A nonprofit founder who wanted a website that told the story of impoverished children in his country and accepted donations.
<br />
<br />These are just a handful of real people with real ideas who are frustrated by the current tools.
<br />
<br /></p>
<h3>The problem</h3>
<p><br /></p>
<p class="lead">The fact is, people want to do millions of different things with their websites, but the only two options are to use a tool that limits your creative potential or to program your site from scratch. Neither option is ideal.</p>
<p><br /></p>
<h3>The solution</h3>
<p>Which is why we’re building a third option. We are building an open source, general purpose IDE for building websites.
<br />
<br />Here’s a short video demonstrating how it works:
<br />
<br /></p>
<iframe width="420" height="315" src="//www.youtube.com/embed/yh_EdtGpBak" frameborder="0" allowfullscreen=""></iframe>
<p><br />
<br />NudgePad is in early beta, but is powering a number of live websites like these:
<br />
<br />
<img src="/files/samples.gif" />
<br />
<br />Although we have a lot more to do to get to a stable version 2.0, we thought the time was right to start opening up NudgePad to more people and recruiting more help for the project. We also want to get feedback on the core ideas in
NudgePad.
<br />
<br />To get involved, give NudgePad a try or <a href="http://github.com/nudgepad">check out the source code on GitHub.</a>
<br />
<br />We truly believe this new way to build websites–an IDE in your browser– is a faster way to build websites and the way it will be done in the future. By this time next year, using NudgePad, it could be 100x faster and
easier to build websites than it is today.
<br />
<br /></p>
<p>Published September 23rd 2013, 9:46:59 am</p>Making websites is slow and frustrating. I met a young entrepreneur who wanted to create a website for his bed and breakfast. He had spent dozens of hours with different tools and was no closer to having what he wanted. I met a teacher who wanted his students to turn in web pages for homework instead of paper pages. No existing tool allows his students to easily create pages without restricting their creativity. I met an artist who wanted a website with a slideshow for her portfolio. A restaurant owner who wanted a website that could take online orders. An author who wanted a website with a blog. A saleswoman who wanted to build a members-only site for great deals she gathered. A candidate who wanted a website that could coordinate his volunteers. A nonprofit founder who wanted a website that told the story of impoverished children in his country and accepted donations. These are just a handful of real people with real ideas who are frustrated by the current tools. The problem The fact is, people want to do millions of different things with their websites, but the only two options are to use a tool that limits your creative potential or to program your site from scratch. Neither option is ideal. The solution Which is why we’re building a third option. We are building an open source, general purpose IDE for building websites. Here’s a short video demonstrating how it works: NudgePad is in early beta, but is powering a number of live websites like these: Although we have a lot more to do to get to a stable version 2.0, we thought the time was right to start opening up NudgePad to more people and recruiting more help for the project. We also want to get feedback on the core ideas in NudgePad. To get involved, give NudgePad a try or check out the source code on GitHub. We truly believe this new way to build websites–an IDE in your browser– is a faster way to build websites and the way it will be done in the future. By this time next year, using NudgePad, it could be 100x faster and easier to build websites than it is today. Published September 23rd 2013, 9:46:59 amSoftware Should Save People Time2013-04-02T05:13:59-07:002013-04-02T05:13:59-07:00http://localhost:4000/software-should-save-people-time<p>For me, the primary motivation for creating software is to save myself and other people time.</p>
<p>I want to spend less time doing monotonous tasks. Less time doing bureaucratic things. Less time dealing with unnecessary complexity. Less time doing chores.</p>
<p>I want to spend more time engaged with life.</p>
<p>Saving people time is perhaps the only universal good. Everyone wants to have more options with their time. Everyone benefits when a person has more time. They can enjoy that extra time and/or invest some of it to make the world better for everyone else.</p>
<p>Nature loves to promote inequality, but a fascinating feature of time is that it is so equally distributed. Nature took the same amount of time to evolve all of us alive today. All of our evolutionary paths are equally long. We also have equal amounts of time to enjoy life, despite the fact that other things may be very unequally distributed.</p>
<p>The very first program I made was meant to save me and my family time. Back in 1996, to start our computer, connect to the Internet and launch Netscape took about 20 minutes, and you had to do each step sequentially. My first BAT script automated that to allow you to turn the computer on and go play outside for 20 minutes while it connected to the web. Many years later, my ultimate motivation to save people time has remained constant.</p>For me, the primary motivation for creating software is to save myself and other people time.Time2013-04-01T03:42:21-07:002013-04-01T03:42:21-07:00http://localhost:4000/time<pre class="prewrap">Two people in the same forest,
have the same amount of water and food,
Are near each other, but may be out of sight,
The paths behind each are equally long.
The paths ahead, may vary.
One's path is easy and clear.
The other's is overgrown and treacherous.
Their paths through the forest,
in the past, in the present, and ahead
are equal.
Their journeys can be very different.</pre>Two people in the same forest, have the same amount of water and food, Are near each other, but may be out of sight, The paths behind each are equally long. The paths ahead, may vary. One's path is easy and clear. The other's is overgrown and treacherous. Their paths through the forest, in the past, in the present, and ahead are equal. Their journeys can be very different.Why 10,000 hours?2013-03-30T12:03:54-07:002013-03-30T12:03:54-07:00http://localhost:4000/why-10000-hours<p>Why does it take 10,000 hours to become a master of something, and not 1,000 hours or 100,000 hours?</p>
<p>The answer is simple. Once you’ve spent 10,000 hours practicing something, no one can crush you like a bug.</p>
<p>Let me explain. First, the most important thing to keep in mind is that nature loves inequality. For example, humans and bugs are not even close to equal in size. Humans are 1,000x bigger than bugs. It is very easy for a human to squash a bug.</p>
<p>Now, when you are starting to learn something and have spent say, 100 hours practicing that thing, you, my friend, are the bug. There are many people out there who have been practicing that thing for 10,000 hours, and can easily crush you like a bug, if they are mean spirited like that.</p>
<p>Once you’ve got 1,000 hours of practice under your belt, it becomes very hard for someone to crush you.</p>
<p>You reach 10,000 hours of practice, and you are now at a level where no one can possibly crush you like a bug. It is near impossible for a human to practice something for 100,000 hours. That would be 40 hours of practice per week for fifty years! Life is too chaotic, and our bodies are too fragile, to hit that level of practice. Thus, when you hit 10,000 hours, you’re safe. You no longer have to wonder if there’s someone out there who knows 10x more than you. You are now a master.</p>
<p><i>Do you hear them talking of genius, Degna? There is no such thing. Genius, if you like to call it that, is the gift of work continously applied. That’s all it is, as I have proved for myself.</i></p>
<ul>
<li>Guglielmo Marconi&lt;/i&gt;</li>
</ul>
<p><img src="/files/bug.png" width="100%" /></p>Why does it take 10,000 hours to become a master of something, and not 1,000 hours or 100,000 hours?