<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><description>developing software, living the expat life in beijing, other fun stuff! 

previous projects: alchemy, swik, open source stuff, now adylitica.</description><title>Alex Bosworth's Weblog</title><generator>Tumblr (3.0; @alexbosworth)</generator><link>https://alexbosworth.net/</link><item><title>Memo Notepad</title><description>&lt;p&gt;In 2012, my company Adylitica made a very big switch.&lt;br/&gt;&lt;br/&gt;We made the decision to focus our development efforts on building Apps we really believed in. This meant that instead of concentrating on our profits, we would concentrate only on projects we really believed in.&lt;br/&gt;&lt;br/&gt;The list of these projects is varied, but at the top of our list was our most successful and widely used App &amp;ldquo;&lt;a href="http://tomorrow.do/"&gt;Do it (Tomorrow)&lt;/a&gt;&amp;rdquo;&lt;br/&gt;&lt;br/&gt;In building the sync system for Do it (Tomorrow), I learned a lot of lessons about what an enormous challenge sync is to get right. Even though Do it (Tomorrow) sync seems simple, there are many, many things that can go wrong, it is very complex, and there are various deficiencies that were a result of compromises or incorrect decisions.&lt;br/&gt;&lt;br/&gt;In 2012 my goal was to build a successor to the Do it (Tomorrow) sync system (which was already on v2). This new sync system would power the next generations of our Apps, which were on track to be much more complex.&lt;br/&gt;&lt;br/&gt;Another goal of mine was to set up the next generation of our Web Apps. Currently there is a huge mismatch between Web App capabilities and smartphone App capabilities. The differences are vast, but we really want to support access to our Apps on the desktop, and via the web.&lt;br/&gt;&lt;br/&gt;Finally, in my everyday life, I have a lot of ideas that I want to get down. Things to do go into Do it (Tomorrow). My weekly plans and appointments go into &lt;a href="https://itunes.apple.com/us/app/everyday-notes-monthly/id546982659?mt=8"&gt;Everyday Notes&lt;/a&gt;. Bugs and ideas for improvements of our Apps go into our &lt;a href="http://github.com/"&gt;Github&lt;/a&gt;. But a lot of what I want to get down is more free-form: sketches, or simple general notes.&lt;br/&gt;&lt;br/&gt;To match all of these goals: a next generation sync system, a next generation web app framework, and an App that captures my day to day thinking and notes, I began work on an App called &amp;ldquo;Memo Notepad&amp;rdquo;. This would be a general purpose notepad, that could be randomly edited, would work without loading times or delays, and allow for me to solve my problem of keeping track of my thoughts.&lt;br/&gt;&lt;br/&gt;I finished the new sync system and Memo Notepad by the summer of 2012, and I shipped it to the Google Chrome store in September.&lt;br/&gt;&lt;br/&gt;If you have Google Chrome, you should check it out!&lt;br/&gt;&lt;a href="https://chrome.google.com/webstore/detail/memo-notepad/nmoihkoninaoanjobiiknmgenhpaecec"&gt;https://chrome.google.com/webstore/detail/memo-notepad/nmoihkoninaoanjobiiknmgenhpaecec&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sync system that powers Memo Notepad syncing is based on &lt;a href="http://aws.amazon.com/dynamodb/"&gt;Amazon&amp;rsquo;s DynamoDb service&lt;/a&gt;, which is a very limited sort of database that is however extremely fast and reliable. It is based on flash memory drives, which are much faster than the hard disk drive system we were previously using. At least 5 times as fast in our testing, up to 10 times faster.&lt;br/&gt;&lt;br/&gt;The Web framework that I made for Memo Notepad is also based on a new database product, but this one is a new web standard called &lt;a href="http://www.w3.org/TR/IndexedDB/"&gt;IndexedDb&lt;/a&gt;. IndexedDb is definitely the way forward for building web apps that can keep pace with smartphone Apps, as it allows you to read and write data without the delays or costs of a server connection for every data access. Local Storage APIs already exist, but in building my Twitter App &lt;a href="http://tweetbe.at/"&gt;TweetBe.at&lt;/a&gt;, I realized that Local Storage is never going to work for a serious standalone web app data model due to critical performance and API design problems.&lt;br/&gt;&lt;br/&gt;Unfortunately, Firefox and Safari are &lt;a href="http://caniuse.com/indexeddb"&gt;not completely on board&lt;/a&gt; the IndexedDb standard. Firefox has implemented IndexedDb, but its implementation is not good, in my continued testing of Firefox Nightlies, it continues to fail in critical ways that would prevent me from using it in a production web App. Safari hasn&amp;rsquo;t even touched the standard. Google Chrome on the other hand has pretty good support for IndexedDb, and does a lot to support web Apps with its App Market, so Memo Notepad is a Google Chrome exclusive for the time being.&lt;br/&gt;&lt;br/&gt;Since Memo Notepad launched a few months ago, it has been featured by Google on their App Market, and has attracted a lot of nice reviews and ratings.&lt;br/&gt;&lt;br/&gt;Since then I&amp;rsquo;ve also added a few cool features to the project:&lt;br/&gt;1. Two way sync with Google Drive&lt;br/&gt;2. Two way sync with Dropbox&lt;br/&gt;3. Variable fonts support&lt;br/&gt;4. Tumblr post integration&lt;br/&gt;&lt;br/&gt;Although we plan to support mobile access of Memo Notepad notes, building those Apps is going to take us significant time, so I decided to create Google Drive sync as a way to access my notes on the go. &lt;br/&gt;&lt;br/&gt;My key takeaway from Google Drive is that it is not a product I would endorse. Although it has some really key strengths and I was very impressed with its product offering and API, its ability to do even its normal job of syncing properly interfered with my development process, and contributed to souring me on the product. Google support on issues encountered was true to Google form, virtually non-existent or comically unhelpful.&lt;br/&gt;&lt;br/&gt;After Google Drive failed to service my &amp;lsquo;notes on the go&amp;rsquo; concept, I tried Dropbox. I&amp;rsquo;ve always been wary of Dropbox due to their viral marketing, it basically turned me off the entire product as I didn&amp;rsquo;t want to get sucked into some multi-level marketing scheme. However the Dropbox OSX App, general service and API has been unexpectedly delightful, albeit with a few scary bumps on the development road (dealing with making nice filenames across various operating systems for example).&lt;br/&gt;&lt;br/&gt;Finally, today I completed work on Tumblr integration (which hosts this blog). And today I am using for the first time Memo Notepad to write this blog post :)&lt;br/&gt;&lt;br/&gt;So far the new sync system, the new web framework have worked quite well, which should set us up very well for 2013, and expect to see some very ambitious projects out of Adylitica that use this new sync system, some web apps that really push the boundaries of how we can use our new web framework, and a &lt;a href="https://www.facebook.com/sketchlens"&gt;little camera project&lt;/a&gt; we are working on to deal with your sketches and drawings!&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;</description><link>https://alexbosworth.net/post/39651563895</link><guid>https://alexbosworth.net/post/39651563895</guid><pubDate>Fri, 04 Jan 2013 20:10:35 +0800</pubDate></item><item><title>How To Use Bitcoin</title><description>&lt;p&gt;I&amp;rsquo;ve been interested in &lt;a href="http://alexbosworth.net/post/5538483856/buy-bitcoin"&gt;Bitcoin&lt;/a&gt; for almost two years now, and it&amp;rsquo;s something that I&amp;rsquo;d really like to succeed. It has the potential to disrupt a lot of industries by radically improving the efficiency of commerce.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t know what bitcoin is: it&amp;rsquo;s a system of conducting transactions where all transactions are secured by a decentralized network of computers working together over the internet.&lt;/p&gt;
&lt;p&gt;At the core, payment processors and banks are profiting from a position of trust that they have spent a lot of time and money to attain. Bitcoin flips this model on its head: instead of amassing capital and spending a long time to establish a reputation of trustworthiness, bitcoin offers full transparency and mathematical proofs of why users can rely that their transactions and currency are safe.&lt;/p&gt;
&lt;p&gt;Of course just flipping things around only gets you so far. Many problems that the big transaction processing players have spent centuries mastering are still in a slow process of being solved in the bitcoin world. Name awareness. Security from theft and fraud. Ease of exchange. Speed of exchange. General trust building. Software and apps. Merchant signups.&lt;/p&gt;
&lt;p&gt;That doesn&amp;rsquo;t mean it&amp;rsquo;s not very usable today however. Right now, for bitcoin to succeed, people will have to find ways to use it in a sustained, ongoing way. For a few months now, I&amp;rsquo;ve been working on finding ways to use bitcoin in my daily life, and I&amp;rsquo;ve found a lot of very cool ways it can be useful. Since the start of September, I&amp;rsquo;ve carried out over 100 transactions, sending and receiving in total about $570.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How To Use Bitcoins&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;First: get a wallet. Like everything bitcoin related, this is more complicated and technical than it should be, but it&amp;rsquo;s getting easier and better as the community grows. By far the best option at the moment is the wallet software at &lt;a href="http://blockchain.info/"&gt;blockchain.info&lt;/a&gt;. They have apps for iOS and Android, which makes it a true wallet you can carry around with you and use everywhere.&lt;/li&gt;
&lt;li&gt;Next: get bitcoins. This can be more complicated than it seems. Most transaction processors allow for rollbacks of their transaction. You can cancel Paypal and credit card transactions for a long time after you have sent them. This makes trading them for bitcoins problematic, since it only takes about 10 minutes for the bitcoin transaction to be quite securely complete. There are still many ways to purchase bitcoins however, even using paypal and bank cards. Personally I favor &lt;a href="https://www.bitcoinary.com/"&gt;bitcoinary.com&lt;/a&gt; which is something like an ebay currency exchange market for bitcoin.&lt;/li&gt;
&lt;li&gt;Another great way to get into bitcoins is through advertising. Online advertising is essentially trading links around, and bitcoins make a great medium for facilitating those trades. Bitcoin advertising can pay out within 24 hours, it doesn&amp;rsquo;t require a check or connecting a bank account, and even if you make just a few pennies, consider that you can also buy advertising for just a few pennies. I&amp;rsquo;d say I&amp;rsquo;ve made about $10/month from advertising, and I&amp;rsquo;ve also spent a lot of that on advertising in turn. A good option here is &lt;a href="https://anonymousads.com/"&gt;anonymousads.com&lt;/a&gt; - akin to an extremely simplistic Google Adsense. Buying and selling retweets is an option at &lt;a href="http://www.feedzebirds.com/"&gt;feedzebirds.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Get someone to buy you coffee or lunch. One problem that I have on a daily basis is splitting the check at lunch. More often than not, someone doesn&amp;rsquo;t have exact change, so we have to figure out how to get the correct change back, or remember to pay someone back, etc. My main use of bitcoin is just trading them back and forth, essentially as chips or tokens: I&amp;rsquo;ll buy lunch today, you buy lunch tomorrow. Or not. Or for someone else. Bitcoins make for a lot of very useful flexibility in this situation. Via my iPhone, I can also typically send bitcoins to settle a bill faster than we can pay in cash.&lt;/li&gt;
&lt;li&gt;Gamble, take some risk. Of course even playing with bitcoin is risky: the price goes up and down, there is no central backer to try and stabilize its value, there is no tax authority that will accept it as payment. But risk is also fun. You can easily try gambling bitcoin, even small amounts. And the payouts can be provably fair, paying out a very high percentage of the time: running a bitcoin betting program is a very low maintenance operation that does not require the house to win a lot of the time. Given &lt;a href="http://en.wikipedia.org/wiki/Gambler%27s_ruin"&gt;gambler&amp;rsquo;s ruin&lt;/a&gt;, we might even see a 100% fair, no house edge bitcoin casino created. Blockchain.info has betting built into it. Another fun option is &lt;a href="http://betsofbitco.in/"&gt;betsofbitcoin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tell people your address. Mine is &lt;a href="bitcoin://15rqWE4mYsUAHHvVewKdcJrgoSAtwrjKr2?label=alexbosworth"&gt;15rqWE4mYsUAHHvVewKdcJrgoSAtwrjKr2&lt;/a&gt; - like your phone number, once people have your address saved, it&amp;rsquo;s a lot easier to use in the future. People can get very creative with the currency and although currently bitcoin still is not very usable, it&amp;rsquo;s getting better all the time as people come up with innovative ways to use it. Tip someone on a popular forum or bulletin board for a great post. Send a small donation to a great cause or for disaster relief. Pay what you want for software or digital goods. Quickly send a small loan to a friend in a far away country. &lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Bitcoin is still not a stable currency. It may never be stable versus the dollar, there is no reason it will be and other commodity types such as &lt;a href="https://www.google.com/finance?chdnp=1&amp;amp;chdd=1&amp;amp;chds=1&amp;amp;chdv=1&amp;amp;chvs=maximized&amp;amp;chdeh=0&amp;amp;chfdeh=0&amp;amp;chdet=1351648601515&amp;amp;chddm=787474&amp;amp;chls=IntervalBasedLine&amp;amp;q=NYSEARCA:GLD&amp;amp;ntsp=0&amp;amp;ei=S4WQUMi1EIO1kAX_aw"&gt;gold&lt;/a&gt; certainly have not been. It will certainly go up and down versus the dollar, unpredictably.&lt;/p&gt;
&lt;p&gt;But that doesn&amp;rsquo;t mean it&amp;rsquo;s not a usable currency, and I&amp;rsquo;d expect it to grow more and more useful as time goes by, until finally it or something like it can gain mainstream use.&lt;/p&gt;
&lt;p&gt;It took Linux/Open Source unix over 20 years, but it now dominates the server market and completely owns the smartphone and mobile device markets. Why? Because it represents a better idea than what came before. A new model that despite having all the disadvantages of not having powerful backing or ease of use has many clear advantages in many use cases, and it is a free community and open source project that grows in strength as people and companies exploit it for their own purposes.&lt;/p&gt;</description><link>https://alexbosworth.net/post/34677221142</link><guid>https://alexbosworth.net/post/34677221142</guid><pubDate>Wed, 31 Oct 2012 10:11:13 +0800</pubDate></item><item><title>We have just released our newest App on the Apple App Store:...</title><description>&lt;img src="https://64.media.tumblr.com/tumblr_m9rod8A2wp1qz9ldvo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;We have just released our newest App on the Apple App Store: &lt;a href="http://bit.ly/todayAppFree" title="Everyday Notes"&gt;Everyday Notes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here is the idea behind the App: just write down what is going on in your life. A simple piece of paper for every day.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://tomorrow.do/"&gt;Do it (Tomorrow)&lt;/a&gt; was made for people who don’t want to be super organized. There’s no labels. There’s no due dates. There’s no ‘hey why haven’t you done this’. Instead there’s a big button next to every task: “I’ll do it tomorrow!”&lt;/p&gt;
&lt;p&gt;Everyday Notes is made the same way. Not every event in your life has a time. Most things are just 'will/should happen on this day’.&lt;/p&gt;
&lt;p&gt;Our goal is to give you a great, elegant planning notebook that you don’t have to carry with you: it’s in your phone. It’s not software. It doesn’t say 'fill in these forms to continue’. It’s paper. You write down what you want. If you want a photo, you paste it on.&lt;/p&gt;
&lt;p&gt;That’s our mission in bringing these Apps to life: we love paper, but we’d love it even more if it also had the convenience of our mobile devices.&lt;/p&gt;</description><link>https://alexbosworth.net/post/30789680015</link><guid>https://alexbosworth.net/post/30789680015</guid><pubDate>Mon, 03 Sep 2012 17:15:08 +0800</pubDate></item><item><title>Working with JQueryMobile</title><description>&lt;p&gt;I&amp;rsquo;ve been playing with and building small apps in &lt;a href="http://jquerymobile.com/"&gt;JqueryMobile&lt;/a&gt; since it came out.&lt;/p&gt;
&lt;p&gt;I still can&amp;rsquo;t make up my mind if I like it or not.&lt;/p&gt;
&lt;p&gt;On one hand, it is completely against the principles of JQuery: which a simple, non-intrusive, non widget focused library. Jquerymobile on the other hand holds your hand the whole way and is basically an app framework.&lt;/p&gt;
&lt;p&gt;However, it is very fast to develop on, and it does try to be un-intrusive.&lt;/p&gt;
&lt;p&gt;I really want it to succeed, but there is a lot that worries me about committing to it as a development platform:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;It was pushed out as &amp;lsquo;final&amp;rsquo;, but the performance is still pretty bad in a lot of situations, even on my laptop.&lt;/li&gt;
&lt;li&gt;The architecture is very much designed to make static web apps easy, which is really weird since the rest of the design is very helpful for building dynamic apps, and how often do you need a static app? I guarantee that if you are building a dynamic app on jquerymobile you will either have to give up their multi-platform benefits to some degree, or spend a lot of time fighting with their automatic caching stuff.&lt;/li&gt;
&lt;li&gt;The overloading of data attributes is an interesting idea, but you start to get a lot of style markup in your page content, and it can be frustrating to write so many data attributes&lt;/li&gt;
&lt;li&gt;It doesn&amp;rsquo;t help you with the difficult offline stuff - it assumes you are building an always online app&lt;/li&gt;
&lt;li&gt;Some features are added because they are cool, but don&amp;rsquo;t actually work very well: fixed position title bars for example.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s not designed with targeting tablets or the web in mind - it&amp;rsquo;s a false premise that anything can automatically handle all screen sizes without you worrying about that.&lt;/li&gt;
&lt;li&gt;I would like it to target more modern browsers and aim where the market is going: the jquery 'A-grade&amp;rsquo; experience browser list is &lt;a href="http://jquerymobile.com/demos/1.0/docs/about/platforms.html"&gt;really broad&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;It&amp;rsquo;s so fast and easy to create apps on jquerymobile though I think it will have some good success, particularly in intranet situations - what is more reassuring is that it seems like an independent, truly open source effort, which should prevent potential lock-in problems in the future.&lt;/p&gt;</description><link>https://alexbosworth.net/post/14348547681</link><guid>https://alexbosworth.net/post/14348547681</guid><pubDate>Sat, 17 Dec 2011 17:41:13 +0800</pubDate></item><item><title>Fear and Civilization</title><description>&lt;p&gt;&amp;ldquo;The only thing we have to fear is fear itself.&amp;rdquo; - FDR summed it up nicely. &lt;/p&gt;
&lt;p&gt;Society has a flaw: paranoia. At the core of human psychology is a processing error, a bug: our ability to logically assess risk is out of whack. &lt;/p&gt;
&lt;p&gt;We are living in a golden age: from the Renaissance to modern times, the embrace of reason has carried us on a rapid wave of advances that have extended our lifespans beyond our twenties, has put a universe of information in our pockets, has enabled instant communication between anyone, anywhere in the world.&lt;/p&gt;
&lt;p&gt;In computers, there has been a golden age: microchips. Every generation, like clockwork - smaller and smaller, &lt;a href="http://en.wikipedia.org/wiki/Moore's_law"&gt;faster and faster, cheaper and cheaper&lt;/a&gt;. But this golden age has been slowly winding down, because it is hitting &lt;a href="http://en.wikipedia.org/wiki/Moore's_law#Ultimate_limits_of_the_law"&gt;fundamental limitations&lt;/a&gt;: the speed of light, available power, quantum uncertainties at microscopic scales all mean that the focus is now on low power chips and multiple cores, the well of infinite computing plenty has started to run dry.&lt;/p&gt;
&lt;p&gt;The golden age of civilization is powered by human reason and civilizations across the world that support reason. At a level above capitalism vs communism, democracy vs dictatorship, there is realism. But in modern societies, progress has started to hit a limit to growth: our world has grown so complex, it is hard for regular people to understand what is going on, uncertainty is fear, so regular people are becoming afraid of dangers real and imagined. &lt;/p&gt;
&lt;p&gt;The problem is that psychologically speaking, people are likely to put equal weight on clear and present dangers that they would on imagined dangers or unlikely dangers. Very many people are killed by &lt;a href="http://en.wikipedia.org/wiki/List_of_causes_of_death_by_rate"&gt;hamburgers, the flu and car crashes&lt;/a&gt;. Very few people are killed by sharks, airplanes and terrorists. Movies and politicians and newspapers and schools play into these fears, because that is what people want to hear about, because of a psychological failure of reason around the unknown. &lt;/p&gt;
&lt;p&gt;If reason is the driving force behind the advance of civilization, then a limit to reason is also a limit to that advance. &lt;/p&gt;
&lt;p&gt;This limit is slowly becoming more apparent as we work to advance within the framework of our societies&amp;rsquo; ability to promote reason:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;SOPA - stop online piracy: there are pirates out there, they threaten established business models. What will happen when these business models change? Regular people and congresspeople &lt;a href="http://www.washingtonpost.com/blogs/compost/post/the-nightmarish-sopa-hearings/2011/12/15/gIQA47RUwO_blog.html"&gt;don&amp;rsquo;t understand these issues&lt;/a&gt;: an irrational response that seems reasonable is to shut down progress to protect the past.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Shut down your electronic devices&amp;rdquo; - This is ludicrous even with back of the envelope math. Assuming a tiny fraction of people ignore this, we have a testbed of millions and millions of flights a year that take off and land without issue with an electronic device online. &lt;a href="http://bits.blogs.nytimes.com/2011/12/14/f-a-a-approves-ipads-in-cockpits-but-not-for-passengers/"&gt;The FAA just approved the iPad&lt;/a&gt; for use during take off and landing - but only in the cockpit of the aircraft!&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Take off your shoes&amp;rdquo; - &lt;a href="http://www.schneier.com/essay-095.html"&gt;the irony and cynicism of airport security&lt;/a&gt; could take ages to lay out. The most horrible example is that the 911 hijackers had no special devices and were actually stopped by airport security, who saw their box cutter and let them through anyway. Free and easy travel to anywhere in the world is progress that is being stopped by fear of an uncertain world.&lt;/li&gt;
&lt;li&gt;HIPAA - For the thousands of great web apps and smartphone apps and desktop apps that have come out, why is there still no great medical apps? The answer is: &lt;a href="http://www.medscape.com/viewarticle/516261"&gt;fear stopping innovation in this area&lt;/a&gt;. I can startup a new online business like Mint and take your bank account passwords directly from you and have the power to take your money, but if I want to store the fact that you have congenitally high blood pressure, I need to follow expensive protocols and pay for an independent auditor to make sure I am following some arbitrary and largely useless security rules.&lt;/li&gt;
&lt;li&gt;The stop and rollback of new drugs. More and more money has been rolling into the medical field, we are living longer than ever before, and spending huge amounts of money on healthcare. But where is this money going? Developing new drugs is extremely risky because it involves vast, vast sums of money to test them. People are afraid of drugs, so even a drug that saves &lt;a href="http://en.wikipedia.org/wiki/Vioxx#Withdrawal"&gt;many people&lt;/a&gt; but kills some can be banished from the marketplace, and worse the maker can be sued for all the profits made saving the majority of people for the minority that died, even if they warned of the risk and doctors studied and still recommended the drug.&lt;/li&gt;
&lt;li&gt;Banking - Even after many many years of telecommunication and the internet, we are still paying huge percentages of every online and credit card transaction to middle-men who essentially skim off the top of every transaction, don&amp;rsquo;t let small transactions go through at all, and charge usurious rates to the public for small loans. Attempts to innovate like facecash and bitcoin, etc face huge obstacles or &lt;a href="https://www.facecash.com/legal/ca.html"&gt;get shut out&lt;/a&gt; before even getting started for not working within the established system, a new system of free and instant transactions at any level is a scary concept that society is quick to reject.&lt;/li&gt;
&lt;li&gt;Driverless cars - Google has been proving the concept that computers can drive cars better than people can. In addition to sensing and preventing accidents thousands of times faster than even the most alert person could, computer driven car systems could make highway systems many times more efficient than the current &amp;rsquo;&lt;a href="http://trafficwaves.org/trafexp.html"&gt;waves of traffic&lt;/a&gt;&amp;rsquo; problem caused by irrational human drivers. Efforts are in place or underway to &lt;a href="http://www.nytimes.com/2011/05/29/business/economy/29view.html?_r=1"&gt;ban driverless cars from the road&lt;/a&gt; - both by scared people and by car companies who like their established business models.&lt;/li&gt;
&lt;li&gt;COPPA: children and the internet - The internet: what was supposed to be the best resource for children to learn, is shackled by outsized fear of its dangers. Google and many others &lt;a href="http://www.zdnet.com/blog/google/dad-to-google-thanks-for-making-my-daughter-cry/3493"&gt;simply block children from using their services&lt;/a&gt;, because it&amp;rsquo;s not cost or time effective to comply with societies&amp;rsquo; demands that they perform arbitrary and useless measures to &amp;lsquo;protect&amp;rsquo; children.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Taking a look at societies&amp;rsquo; deficiencies is the job of entrepreneurs and even governments and large businesses: every deficiency represents an opportunity to improve and advance society. But many paths are now or have long been blocked by societal fears, and as society gets more advanced, fears and blocks multiply, and advances in many 'scary&amp;rsquo; areas slows and slows.&lt;/p&gt;
&lt;p&gt;The good news is that if people in the US take leadership in fighting irrational fear, they will be rewarded for it, and the rest of the world can be rewarded too. Seeing a scary solution actually work out OK in practice is a great way to fight fear of the unknown and tear down barriers to progress. But some people and some societies always have to be the first to brave their way forward to break the static status quo and help the others get over their fears of the unknown.&lt;/p&gt;</description><link>https://alexbosworth.net/post/14297494621</link><guid>https://alexbosworth.net/post/14297494621</guid><pubDate>Fri, 16 Dec 2011 12:59:44 +0800</pubDate></item><item><title>Should I use Heroku</title><description>&lt;p&gt;To Heroku or not to Heroku, that is the question.&lt;/p&gt;
&lt;p&gt;(I should preface this with the info that the CEO / now General Manager of &lt;a href="http://heroku.com/"&gt;Heroku&lt;/a&gt; was my previous boss)&lt;/p&gt;
&lt;p&gt;I personally love building web services, but hate configuring Linux boxes, and database and web servers.&lt;/p&gt;
&lt;p&gt;That is why when I build new services, I gravitate towards outsourcing the configuration and database/web server stuff, or using a solution where I can control and understand all aspects of how it works because it is either simple or familiar.&lt;/p&gt;
&lt;p&gt;Examples of things I like because I can understand how they work and I control them&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Memcache&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;JQuery&lt;/li&gt;
&lt;li&gt;Nginx&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Examples of things that work by complicated or magic rules and I try to avoid&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Ubuntu, CentOS, etc&lt;/li&gt;
&lt;li&gt;MySQL, Postgres&lt;/li&gt;
&lt;li&gt;Any ORM solution&lt;/li&gt;
&lt;li&gt;Apache&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Examples of things I outsource because I don&amp;rsquo;t want to worry about them&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Amazon EC2 / S3 / SimpleDb&lt;/li&gt;
&lt;li&gt;Tumblr&lt;/li&gt;
&lt;li&gt;GMail&lt;/li&gt;
&lt;li&gt;Github&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;So where does Heroku fit in for me? I am actually very wary about outsourcing, because there is a good chance that an outsource partner will change the deal on you at some point unexpectedly, not behave as you expect or hope, or just disappear.&lt;/p&gt;
&lt;p&gt;I have in fact always been burned by outsourcing:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Amazon changed their SimpleDB API and said I must change or my App will break. If I control a solution only I get to decide when I must change.&lt;/li&gt;
&lt;li&gt;Tumblr has let me down by not really improving anything that I use on their site. &lt;/li&gt;
&lt;li&gt;GMail has had progressively worse usability with every update, and they failed to make a decent iOS App because they are putting their Android strategy ahead of their users&amp;rsquo; needs.&lt;/li&gt;
&lt;li&gt;Github&amp;rsquo;s pricing plans don&amp;rsquo;t match my business needs, they are focused on other kinds of businesses&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;But all of these negatives don&amp;rsquo;t mean I want to do everything myself, the world is not a black and white place. Not outsourcing has costs too.&lt;/p&gt;
&lt;p&gt;So where does Heroku fit?&lt;/p&gt;
&lt;p&gt;In the beginning, I thought the idea of Heroku was wrong: Amazon is already doing for me what Heroku is selling.&lt;/p&gt;
&lt;p&gt;But Node.js changed everything for me. Node.js is a framework that is very bare-bones. You have to do a lot yourself. When I switched to Node.js over a year ago, I started work on a scalability system for Node.js where I could reduce process failure vulnerability and increase my ability to easily scale beyond a single machine.&lt;/p&gt;
&lt;p&gt;I did this all on my own server, an EC2 instance that cost money every month to run, although thanks to Node.js&amp;rsquo;s great performance characteristics, was not stressed at all.&lt;/p&gt;
&lt;p&gt;But eventually I saw a series of factors that made Heroku the right choice for me:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Node.js support (one of the few vendors, even Joyent who invented node.js wouldn&amp;rsquo;t let me pay them to host my apps on their platform)&lt;/li&gt;
&lt;li&gt;Salesforce.com owns Heroku which means it&amp;rsquo;s not going to go bust anytime soon&lt;/li&gt;
&lt;li&gt;There is incredible community support for Heroku&lt;/li&gt;
&lt;li&gt;Heroku is free to start, and for me even with tens of thousands of users it&amp;rsquo;s still free&lt;/li&gt;
&lt;li&gt;Heroku&amp;rsquo;s dyno system is almost exactly like the system I built for myself, only more reliable and better&lt;/li&gt;
&lt;li&gt;Heroku is git based and has a very simple command line interface&lt;/li&gt;
&lt;li&gt;Heroku is hosted on Amazon EC2, which I already was using and trust&lt;/li&gt;
&lt;li&gt;Heroku&amp;rsquo;s pricing model is incredibly friendly to Node.js, almost troublingly so. The model of pricing is based on the idea that web servers &amp;lsquo;block&amp;rsquo; on requests - so to get more simultaneous requests you will have to pay more money. But node.js doesn&amp;rsquo;t block on requests, so it&amp;rsquo;s like getting thousands of servers for free.&lt;/li&gt;
&lt;li&gt;Heroku&amp;rsquo;s customer support is very friendly and good, even though I&amp;rsquo;m not a big customer&lt;/li&gt;
&lt;li&gt;Heroku has a nice logging command&lt;/li&gt;
&lt;li&gt;It takes only a single command to scale up and down&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;OK, so I made the full switch in August of this year. I said before: every outsourcing solution will burn you. How has Heroku burned me?&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Heroku makes an implicit and sometimes explicit promise that you can just write code and stop worrying about the server characteristics. This is false, for example if you use too much memory in a single process Heroku will start presenting errors to users, and this threshold of memory is easily reachable in practice.&lt;/li&gt;
&lt;li&gt;Heroku Apps are blocked in China - I live in China, I want a service that isn&amp;rsquo;t blocked here. China is projected to become the biggest economy in the world within 5 years, it&amp;rsquo;s an important market.&lt;/li&gt;
&lt;li&gt;Heroku&amp;rsquo;s failure rates have an impact to users: about 0.05% of my requests this month failed&lt;/li&gt;
&lt;li&gt;Heroku&amp;rsquo;s add-on system is weird and scary&lt;/li&gt;
&lt;li&gt;Heroku hasn&amp;rsquo;t updated their version of node.js in over 6 months and is incommunicative about when they plan to update. &lt;/li&gt;
&lt;li&gt;Heroku doesn&amp;rsquo;t support HTML5 websockets&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Given all of these drawbacks, should I still be using Heroku?&lt;/p&gt;
&lt;p&gt;Yes, I think Heroku is great. The costs are definitely outweighed by the benefits.&lt;/p&gt;
&lt;p&gt;And one of the best features of Heroku is that I could switch away quickly if I ever change my mind.&lt;/p&gt;</description><link>https://alexbosworth.net/post/13244162414</link><guid>https://alexbosworth.net/post/13244162414</guid><pubDate>Thu, 24 Nov 2011 14:44:46 +0800</pubDate></item><item><title>iOS 5.0 / iCloud Release day is here at long last!
This...</title><description>&lt;img src="https://64.media.tumblr.com/tumblr_lszmggnstk1qz9ldvo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;iOS 5.0 / iCloud Release day is here at long last!&lt;/p&gt;
&lt;p&gt;This means: &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;You can get our new iOS 5 exclusive App with the insanely great new Apple Page Flip wooo! &lt;a href="http://bit.ly/todayApp"&gt;http://bit.ly/todayApp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Did i mention our new App: &lt;a href="http://bit.ly/todayApp"&gt;Everyday Notes&lt;/a&gt; ;) ? &lt;/li&gt;
&lt;li&gt;You can reorder spaces in Lion&lt;/li&gt;
&lt;li&gt;Your Pages and Numbers and soon all your Apps magically sync together&lt;/li&gt;
&lt;li&gt;You create an incredibly enormous music library in iTunes Match and it will take up 0 disk space&lt;/li&gt;
&lt;li&gt;Configure your Airport from your phone/iPad&lt;/li&gt;
&lt;li&gt;Text message and MMS anyone on iOS all you want for free&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;This is an incredibly important day for Apple.&lt;/p&gt;
&lt;p&gt;We are smartphone developers. We are paying attention. Today, we have over 2.5 million people on our App &lt;a title="Do It (Tomorrow)" href="http://tomorrow.do/"&gt;Do It (Tomorrow)&lt;/a&gt;. It started on iOS, but the tides are turning: we now have 1.5 million downloads on Android, and only 1 million downloads on iOS. &lt;/p&gt;
&lt;p&gt;Apple’s business model is one of the highest risk and highest reward models: they must consistently leapfrog the competition every single year in order to justify their margins. Their only natural monopoly they can rest on is their amazing brand. Google can rest on their data, Microsoft and Facebook can rest on their network effects, but Apple must always, always make ground breaking products.&lt;/p&gt;
&lt;p&gt;The reality today is that they have started to lose momentum to Android. As indie developers, iOS is still our preferred platform but we are starting to invest more in Android and stabilize iOS investment. &lt;/p&gt;
&lt;p&gt;Whatever the case though, if Apple loses or Android loses or even if they both lose, you and I will win. The super smartphone model is here to stay, it will replace everything in your home and in your office, and everyone will have them in every location in the world. Some people will lament or put on blinders to the passing of the HTML centric world, which does have its advantages and will probably eventually return to dominance, but this revolution is just starting: 95% of mobile phone users do not have a smartphone, but it is certain that they will.&lt;/p&gt;</description><link>https://alexbosworth.net/post/11385857491</link><guid>https://alexbosworth.net/post/11385857491</guid><pubDate>Thu, 13 Oct 2011 12:43:28 +0800</pubDate></item><item><title>Do It (Tomorrow) Web in HTML5</title><description>&lt;p&gt;We&amp;rsquo;ve now had 1 million iPhones, iPads, iPod Touches and Androids install &lt;a href="http://adylitica.com/"&gt;our&lt;/a&gt; App &lt;a href="http://tomorrow.do/"&gt;Do It (Tomorrow)&lt;/a&gt; - So we figured we should also bring the App to the Web as well :D&lt;/p&gt;
&lt;p&gt;&lt;a href="http://tomorrow.do/"&gt;&lt;img width="414" src="http://cdn.tomorrow.do/browser_preview.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you are not interested in the dirty details of development, depart. If you are, great: read on. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prototype&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I often like to develop in a quick style where I put together a prototype and then look and see what I learned. Sometimes I can go directly into a shipping App, sometimes tweaks are required, sometimes I throw the idea out completely.&lt;/p&gt;
&lt;p&gt;The prototype revealed a couple major design issues with porting an iOS App to the Web:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;In an iOS App, if you start using it you expect it to save all your data. In a web app, you expect it to lose all your data if you don&amp;rsquo;t register/login first.&lt;/li&gt;
&lt;li&gt;To get the App to a level of polish that matches the iOS App, I was going to need very modern CSS features, which meant that older browsers were not going to be supported.&lt;/li&gt;
&lt;li&gt;Just like we did a redesign for iPad, yet another redesign was necessary for Desktop - a flexible resolution design for computer monitors is a lot different than a fixed resolution design for iPad or iOS.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Redesign&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Login and Register&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you have the smartphone version of DIT (I hope you do!) You notice that you don&amp;rsquo;t need to register. You can just type in an email and password and it will use that as syncing credentials to make sure we know whose todos are whose.&lt;/p&gt;
&lt;p&gt;This actually turned out to be too clever by half, and something that we did as a reaction to Apple&amp;rsquo;s limited Settings feature, but the net result means that we don&amp;rsquo;t have a register feature.&lt;/p&gt;
&lt;p&gt;This makes for a very weird Web experience, so instead I just added what is essentially a &amp;ldquo;&lt;a href="http://en.wikipedia.org/wiki/Placebo_button"&gt;placebo button&lt;/a&gt;&amp;rdquo; to register. The register button doesn&amp;rsquo;t really do anything, it just opens the book and sets up your credentials, but it is functionally almost equivalent to login, which also sets up your credentials. &lt;/p&gt;
&lt;p&gt;This also gives you a chance to read a blurb about the App. On the App store you can read a description of the App, but people like to just jump on in when it comes to Web sites. We debated this blurb a lot, but the basic message of Do It (Tomorrow) is represented: &amp;ldquo;blessed are the procrastinators.&amp;rdquo; :D&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3d rotation transforms&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One thing I began experimenting on as a wow factor is something called 3D transforms. Do It (Tomorrow) has always had an &amp;lsquo;opening&amp;rsquo; effect, and we put a lot of work into making that look right. The prototype used a 2D CSS transform, but I did research into doing a cover opening in 3D, based on &lt;a href="http://www.paulrhayes.com/experiments/cube-3d/touch.html"&gt;demos&lt;/a&gt; I found of this Webkit feature.&lt;/p&gt;
&lt;p&gt;Moving divs in 3d space took some trial and error, the way it works is interesting: you set up a &amp;ldquo;stage&amp;rdquo; in which you view your transforms. You can set the stage close, so the 3d effect jumps out at you like a cheesy 3d movie, or you can set the stage far away, so the 3d effect looks like it is in the distance.&lt;/p&gt;
&lt;p&gt;Once you have established your stage, you set axis of rotation on your div, and you can rotate it around that axis in the 3 dimensions. &lt;/p&gt;
&lt;p&gt;Now the tricky part is animating :D This can also be a trial and error process. To animate the cover, the cover is 3d rotated until it hits an apex, at which point some magic happens and now it&amp;rsquo;s not the cover rotating, it&amp;rsquo;s the left page! Important here is to match up all the timings correctly, and to make sure that the functions describing the animation speed are also well matched to each other.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Server architecture&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The backend architecture of Do It (Tomorrow) syncing was designed for iOS, with one major goal in mind: be as simple as possible.&lt;/p&gt;
&lt;p&gt;The tasks are stored on S3, which means that Amazon can worry about keeping them safe for us. &lt;/p&gt;
&lt;p&gt;To process the tasks, and to serve the web page, I used a small Node.js script that doesn&amp;rsquo;t do all that much except deal with the mundane work of storage. This script sits behind a nginx reverse proxy.&lt;/p&gt;
&lt;p&gt;Most of the logic about tasks actually lives in the client JavaScript - when to move tasks, how to merge sync data and resolve conflicts, etc. &lt;/p&gt;
&lt;p&gt;I am using a &lt;a href="https://github.com/alexbosworth/Node-S3"&gt;S3 library I am writing&lt;/a&gt; as I learn Node.js - it is jQuery inspired but my reasons for developing an AWS S3 and SimpleDb library are better for another post.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CSS 3&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;CSS 3 and HTML 5 features are not just used in the opening transform animation. These features are critical to the polish of the App.&lt;/p&gt;
&lt;p&gt;In fact, the CSS file has more lines than all the other project files put together, tomorrow.do is quite a complex CSS beast.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.w3.org/TR/css3-mediaqueries/"&gt;Media Queries&lt;/a&gt;: we felt the App looked weird on very large resolutions. Media Queries add polish details as the browser is resized. (All employees of Adylitica have 27&amp;quot; Apple monitors - btw we &lt;a href="http://adylitica.com/joinus"&gt;are hiring&lt;/a&gt;! )&lt;/li&gt;
&lt;li&gt;Multiple Backgrounds: to do a realistic setting and not having messy non semantic elements littering the page, 7 background images are stacked on each other to achieve a layered look.&lt;/li&gt;
&lt;li&gt;Custom Font support: We use a special font for Do It (Tomorrow) - that&amp;rsquo;s part of the App&amp;rsquo;s identity. Mozilla makes it a little annoying due to their font-origin policy but it was very important to get in.&lt;/li&gt;
&lt;li&gt;CSS gradients: Obviously these are already having a huge effect on web design. The very good news is that Webkit and Mozilla are coming to agreement on syntax and this looks to be a standard CSS tool very soon.&lt;/li&gt;
&lt;li&gt;::-webkit-scrollbar - this is something that adds tons of polish and unfortunately Mozilla is religiously against. &lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Domain Name&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Apps can use any old name you like, for the most part. Web Domains on the other hand are like precious jewels, hoarded by evil dragons that will kill you with a breath. &lt;/p&gt;
&lt;p&gt;To find &lt;a href="http://tomorrow.do/"&gt;http://tomorrow.do/&lt;/a&gt; I used an App called &lt;a href="http://domai.nr/"&gt;http://domai.nr/&lt;/a&gt; - I highly recommend it. I like unconventional TLDs because they &lt;a href="http://tweetbe.at/"&gt;look cool to me&lt;/a&gt;, but they are usually more expensive and more of a hassle.&lt;/p&gt;
&lt;p&gt;To get tomorrow.do took well over a month, after paying $140 for the privilege. The Dominican Republic can move quite slowly on domains as it turns out. &lt;/p&gt;
&lt;p&gt;We had many ideas, but I chose tomorrow.do because I feel like it is easy to remember and notable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Deployment!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I hope that people enjoy it, I enjoyed making it. One of the strengths of developing a web app is that it is way less stressful than iOS or even Android. I can for the most part control the audience, by only showing it to friends and family, then wider and wider. I can receive also feedback - code a fix or a tweak - and roll it out to the server in the space of 5 minutes - easy!&lt;/p&gt;</description><link>https://alexbosworth.net/post/7841969458</link><guid>https://alexbosworth.net/post/7841969458</guid><pubDate>Wed, 20 Jul 2011 20:43:00 +0800</pubDate></item><item><title>Buy Bitcoin!</title><description>&lt;p&gt;Here at &lt;a href="http://adylitica.com/"&gt;Adylitica&lt;/a&gt; we have been paying close attention to the new currency you probably have heard of by now: &lt;a href="http://www.weusecoins.com/"&gt;Bitcoin&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;In a sentence: Bitcoin is a new currency of virtual coins that are limited in number and can easily be traded in a decentralized internet marketplace.&lt;/p&gt;
&lt;p&gt;Obviously the concept of Bitcoin is to be used as a medium for commerce, but to a person everyone I have talked to about Bitcoin has been extremely skeptical. &lt;/p&gt;
&lt;p&gt;When I started looking into Bitcoin seriously in January/February of this year, Bitcoin&amp;rsquo;s exchange to the dollar was headed from about $.60 to $1, already high volatility. But now 4 or 5 months later it is up to $7 to $8.&lt;/p&gt;
&lt;p&gt;Half seriously in January we attempted to buy some Bitcoin but it was too much trouble and they were sold out. Looking now, was not buying Bitcoin a huge mistake? Theoretically, in opportunity cost on paper we have already lost a lot of money by not buying when we first heard about it.&lt;/p&gt;
&lt;p&gt;When I analyzed Bitcoin in February I came to the following conclusions:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Bitcoin is based on a piece of software, the marketplace and transaction hub for Bitcoins. Even though this software is open source and decentralized, it may have bugs or vulnerabilities that have yet to be considered fully or even found.&lt;/li&gt;
&lt;li&gt;Fixed supply commodities have volatile prices. Part of the reason for governments switching away from a commodity backed currency is that these standards are subject to random whims of the market. (&lt;a href="http://www.emirates247.com/2.277/commodities/silver-is-the-new-gold-prices-double-in-a-year-2011-02-27-1.361297"&gt;Silver up 100% in 1 year&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Trading with Bitcoin will have a lot of resistance until it becomes mainstream, a chicken and egg problem. Trying to actually buy and using Bitcoins, it&amp;rsquo;s definitely doable, but akin to setting up desktop Linux, it&amp;rsquo;s just enough of a hassle for a small benefit that it&amp;rsquo;s not a good sell for &amp;lsquo;normal people&amp;rsquo;.&lt;/li&gt;
&lt;li&gt;Bitcoin has absolutely no intrinsic value and no backing whatsoever. Gold and diamonds are shiny, and have brand value at the very least.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;This is not to say that it wouldn&amp;rsquo;t be great if Bitcoin were to take off. Currency and monetary trading today is an entrenched system that is hostile to innovation. Bitcoin&amp;rsquo;s wide adoption could trigger a www or app store style innovation boom in the money space. A lot of fields could benefit: Micro-loans in poor countries, tips to bloggers, in app purchases, easy funding and purchasing for small businesses and indie developers. &lt;/p&gt;
&lt;p&gt;So buy Bitcoin now? Not to advocate too strongly for it, but definitely buy Bitcoin if you want to help the movement, or at least talk about Bitcoin: awareness of Bitcoin as a currency will actually increase its chances of becoming a currency. This is a big reason the value of a coin has gone up over 10x in the past year: people are talking about it.&lt;/p&gt;
&lt;p&gt;Buy it as an investment? No. As a gamble? Yes. Bitcoin is a zero sum game, it&amp;rsquo;s not like a company&amp;rsquo;s stock where money can be created from nothing given innovation and hard work. It&amp;rsquo;s a commodities market, not a stock market. &lt;/p&gt;
&lt;p&gt;The relevant questions:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Are people undervaluing Bitcoins?&lt;/li&gt;
&lt;li&gt;Are people likely to overvalue Bitcoins in the future? &lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Not to prognosticate, but Bitcoin by itself is a very intriguing idea and piece of technology that probably deserves mainstream attention. In the future it is likely to be over-valued on that basis alone.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not going to buy myself as I don&amp;rsquo;t have so much money I feel like I can gamble it, but I would say yes it&amp;rsquo;s a good gamble if you do: it will probably rise in price when it gets mainstream attention, at which point you can sell for a profit.&lt;/p&gt;
&lt;p&gt;Use Bitcoin for actual commerce? Not yet, unless you are prepared to change your prices frequently and only keep limited amounts of Bitcoin on hand, or you don&amp;rsquo;t care about the risks. Bitcoin is too volatile, there are too few players, it still is a hassle to integrate, and it is risky at this point in its life-cycle. &lt;/p&gt;</description><link>https://alexbosworth.net/post/5538483856</link><guid>https://alexbosworth.net/post/5538483856</guid><pubDate>Mon, 16 May 2011 14:40:43 +0800</pubDate></item><item><title>Android Gripes: Why do apps from the same company look worse on Android than on iPhone?</title><description>&lt;a href="http://android-gripes.tumblr.com/post/4409289546"&gt;Android Gripes: Why do apps from the same company look worse on Android than on iPhone?&lt;/a&gt;: &lt;p&gt;Interesting comparisons, I think Android is getting better fast but it still has a long way to come before it’s as good as the iOS platform.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://android-gripes.tumblr.com/post/4409289546"&gt;android-gripes&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When I use an iPhone and an Android phone at the same time, I often find that apps from the same company look a lot different on these two platforms - the ones on Android usually look much worse.&lt;/p&gt;
&lt;p&gt;Here is a couple of examples.&lt;/p&gt;
&lt;p&gt;This is what Meebo IM looks on Android, the contact list screen and…&lt;/p&gt;
&lt;/blockquote&gt;</description><link>https://alexbosworth.net/post/4433396884</link><guid>https://alexbosworth.net/post/4433396884</guid><pubDate>Fri, 08 Apr 2011 11:38:28 +0800</pubDate></item><item><title>App Advice reviews our iPad App</title><description>&lt;a href="http://appadvice.com/appnn/2011/02/time-management-organizationally-challenged-tomorrow/"&gt;App Advice reviews our iPad App&lt;/a&gt;</description><link>https://alexbosworth.net/post/3463877314</link><guid>https://alexbosworth.net/post/3463877314</guid><pubDate>Wed, 23 Feb 2011 22:08:49 +0800</pubDate></item><item><title>Very happy to announce that Do It (Tomorrow) iPad is our first...</title><description>&lt;img src="https://64.media.tumblr.com/tumblr_lh0ooiP03U1qz9ldvo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Very happy to announce that Do It (Tomorrow) iPad is our first iPad App release ever! It’s a universal App, so it will work on both iPads and iPhones.&lt;/p&gt;
&lt;p&gt;We’ve had 800k downloads of our To-do App for the iPhone, and one of the biggest requests was an iPad App. &lt;/p&gt;
&lt;p&gt;Doing an iPad App required a complete redesign of the iPhone App as well, to maintain continuity between both Apps. &lt;/p&gt;
&lt;p&gt;I think to the surprise of a lot of people, the iPad is a solid success, something that is not just a cool toy, but something that has become a part of people’s lives. Since getting my own iPad, I use it a little less than when I first got it, but it’s still a daily part of my life: for travel and for around the house, it’s an awesome device.&lt;/p&gt;</description><link>https://alexbosworth.net/post/3443119831</link><guid>https://alexbosworth.net/post/3443119831</guid><pubDate>Tue, 22 Feb 2011 19:45:54 +0800</pubDate></item><item><title>Services + HTML5/iOS, a new model for App development</title><description>&lt;p&gt;A lot of things are changing with the advent of HTML5 + the rise of iOS/Android.&lt;/p&gt;
&lt;p&gt;We are going to have to throw out a lot of how we make service oriented Apps. &lt;/p&gt;
&lt;p&gt;This stuff isn&amp;rsquo;t going to be done overnight, but the kind of web frameworks that exist now and new web frameworks and languages going forward are going to need to adapt to a new dynamic of smart clients like HTML5 browsers and iOS/Android Apps.&lt;/p&gt;
&lt;p&gt;The next steps for service architectures remove HTML/CSS/JS from the equation. Apps will consist of: data store access, business logic, and static file + JSON service endpoints, with separate client code driving interaction and interfacing with the service endpoints. &lt;strong&gt;Notice what&amp;rsquo;s missing? &lt;/strong&gt;No more &amp;ldquo;page&amp;rdquo; classes. Client agnosticism is coming, and it will make service development a bit more abstract but a lot more fun to do in the long term. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No More HTML Munging&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The curse of web development is working with an ugly mess of strings that is HTML. Why do we put up with this? No one really wants to work with putting HTML together, it&amp;rsquo;s long been just a necessary evil. Template frameworks help but also add complexity and present annoying walls to rapid development.&lt;/p&gt;
&lt;p&gt;So celebrate, this is going away, it will be the client&amp;rsquo;s problem to deal with the interface! Yes HTML will still exist, but JQuery is now a great solution for putting pages together from scratch, you get more dynamic interfaces and importantly interfaces that are clearly separate from server code.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://visualajax.blogspot.com/2008/02/top-ten-ajax-mistakes.html"&gt;Before&lt;/a&gt;, a big reason to do server-side HTML munging was SEO. (Thanks Chris for rescuing that article from my old blog). Today, Facebook and Twitter both use what will likely grow more and more common: &lt;a href="http://stackoverflow.com/questions/3009380/whats-the-shebang-in-facebook-and-new-twitter-urls-for"&gt;Google&amp;rsquo;s #! syntax&lt;/a&gt;. Many apps don&amp;rsquo;t even need SEO, and Google themselves have moved to JS driven clients.&lt;/p&gt;
&lt;p&gt;Now that we have HTML5, killer fast JS engines and and rich plugin resources like JQuery&amp;rsquo;s, putting all web pages together on the client transforms from a Quixotic time sink into the smart design decision.&lt;/p&gt;
&lt;p&gt;Finally: HTML browsers are now just another client for backend services, iOS/Android apps are a major way to consume services - the most cost effective and maintainable solution will move to a common API layer for all clients.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br/&gt;Eliminate Cookies&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developing based on cookies is not a good model for server development. Cookies are a terrible model for maintaining state between the server and client. They add latency, they are extremely limited and a hassle to work with, and are the source of a litany of exploits.&lt;/p&gt;
&lt;p&gt;Cookies are going to be less and less relevant. &lt;a href="http://diveintohtml5.org/storage.html"&gt;localStorage APIs&lt;/a&gt; obliterate the space limitations of cookies. Request header manipulation + cross domain request standards provide security + flexibility as well as natural speed improvements by eliminating the cookies model of sending state variables back and forth with every single request.&lt;/p&gt;
&lt;br/&gt;&lt;strong&gt;Service Oriented Frameworks&lt;/strong&gt;
&lt;p&gt;I&amp;rsquo;m through with web frameworks. What&amp;rsquo;s the point of a web framework when I do my HTML generation on the client, or iOS/Android apps use my service?&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s a huge reason I&amp;rsquo;m through with PHP. PHP was a language built from the ground up for web development. It was a great tool for HTML munging, for rapid development, and for scaling to large numbers of page requests. PHP is not fundamentally a good language however, and now that the HTML munging and page request models are fading, it&amp;rsquo;s time for something else.&lt;/p&gt;
&lt;p&gt;Node.js is right now at a great position for leading a new model of service oriented development. There&amp;rsquo;s no framework yet to make this stuff easy or idiot proof, but the fundamentals of Node are all right on target to drive the next generation of web and smartphone apps.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m only about 50% of the way to converting all my code &lt;a href="http://alexbosworth.net/post/1200375966/switching-to-node-js"&gt;to Node.js&lt;/a&gt;, there&amp;rsquo;s no question to me that it&amp;rsquo;s still immature but there is also no question that it has huge strengths for developing next-gen services and it&amp;rsquo;s well designed + fun and deserves the growing momentum it&amp;rsquo;s getting.&lt;/p&gt;</description><link>https://alexbosworth.net/post/2321219606</link><guid>https://alexbosworth.net/post/2321219606</guid><pubDate>Wed, 15 Dec 2010 12:42:09 +0800</pubDate></item><item><title>Switching to Node.js</title><description>&lt;p&gt;Although it&amp;rsquo;s still very new, I&amp;rsquo;m confident now that Node.js represents a changing point in web application development and the line blurs between front end and backend development. &lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been porting my &lt;a href="http://tweetbe.at/"&gt;http://tweetbe.at/&lt;/a&gt; code over to run on Node, and it&amp;rsquo;s not seamless as Node.js is still a different environment, but my end goal is to merge the two worlds and write client code and server code at the same time.&lt;/p&gt;
&lt;p&gt;Node still has many flaws, but they are the kind of flaws that the developer in me likes to see: problems that require interesting work to solve, and the realization that this is the future and eventually the problems will give way to an overall better solution.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve started work on various pieces of code to bridge the gaps in node&amp;rsquo;s still nascent libraries. One thing I&amp;rsquo;ve been working on is a port of jQuery to Node.js. The idea here is that if you do $.getJSON() in a function on your client, you should be able to do that in your Node code as well.&lt;/p&gt;
&lt;p&gt;The issue though is that Node has no XMLHTTPRequest (obviously, since it can just make normal HTTPRequests), so I have had to clone XMLHTTPRequest. There are many other issues and I am not done yet, but my goal is to be able to do var $ = require(&amp;lsquo;node-jquery&amp;rsquo;) and have all the same jQuery functionality I depend on in web javascript.&lt;/p&gt;
&lt;p&gt;If you are interested you can see the code on github here: &lt;a href="http://bit.ly/node-jquery"&gt;http://bit.ly/node-jquery&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Another thing that keeps me interested and loving JavaScript is that the basic language is so abstract, there are a lot of different ways to do things, and no clear answer on what is the best. Generally what I hope to see out of the node.js community is the practicality of jQuery come through, a balance of 'optimize for the most common tasks&amp;rsquo; with 'dont push the language too crazily far&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;Another piece of code I&amp;rsquo;ve been working on is a simple Amazon S3 library for node. I use S3 a lot instead of going to disk, because it&amp;rsquo;s reliable, affordable, scalable, and I never want to rely on a single machine. I have had my issues with Amazon SimpleDb, but I want to go back to it and I may do a node.js library for it.&lt;/p&gt;
&lt;p&gt;If you want to check out how my amazon s3 project is coming by the way, the code is on github here: &lt;a href="http://bit.ly/amazon-s3"&gt;http://bit.ly/amazon-s3&lt;/a&gt;  &lt;/p&gt;</description><link>https://alexbosworth.net/post/1200375966</link><guid>https://alexbosworth.net/post/1200375966</guid><pubDate>Tue, 28 Sep 2010 05:32:50 +0800</pubDate></item><item><title>Our App: Do It (Tomorrow) has reached 265,000 downloads and we...</title><description>&lt;img src="https://64.media.tumblr.com/tumblr_l6kc3j2yHB1qz9ldvo1_400.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Our App: &lt;a href="http://bit.ly/todoApp"&gt;Do It (Tomorrow)&lt;/a&gt; has reached 265,000 downloads and we are trying to figure out what lessons to take away on what factors are important to reaching the iPhone App market.&lt;/p&gt;
&lt;p&gt;The biggest lesson is that you must, must get to be listed in Apple’s various lists to drive downloads, in order of importance:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Top Overall - the biggest driver by far, 10x as big as category.&lt;/li&gt;
&lt;li&gt;New and Notable - luckily for new app developers this is a very big driver&lt;/li&gt;
&lt;li&gt;What’s Hot - after new and notable fades, you can wind up here, which is about ½ as big a driver.&lt;/li&gt;
&lt;li&gt;Category Top - very hard to stay there without the other lists&lt;/li&gt;
&lt;li&gt;Staff favorite - unknown, we didn’t end up here.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Surprisingly to us, it required zero marketing to reach 260k downloads. We followed a naive plan of build it, write a description, publish, done. &lt;/p&gt;
&lt;p&gt;The big thing we did focus on is keeping it small and focusing on design. The actual code was not the major part of the project, the big time sinks were the icon and the overall design polish. &lt;/p&gt;
&lt;p&gt;Now that we are out of Apple’s New and Notable section and only in What’s Hot, we can see the end of the road for the App. Getting out of that list knocked us from #1 productivity app in 38 countries to #1 in only 16 countries, overnight - but we had a nice run.&lt;/p&gt;</description><link>https://alexbosworth.net/post/896780792</link><guid>https://alexbosworth.net/post/896780792</guid><pubDate>Tue, 03 Aug 2010 14:16:31 +0800</pubDate></item><item><title>Working with Javascript Worker Threads</title><description>&lt;p&gt;When the &lt;a href="https://developer.mozilla.org/en/Using_web_workers"&gt;Web Workers&lt;/a&gt; feature was announced for the good browsers (safari/chrome/firefox), it seemed to me like something fairly cool but mostly useless. How often do you really need to calculate a Fibonacci sequence in the browser, as Mozilla suggests?&lt;/p&gt;
&lt;p&gt;Well I finally found a legit use for it in &lt;a href="http://tweetbe.at/"&gt;TweetBe.at&lt;/a&gt;, in calculating follow back percentages - which is a major new feature for the site.&lt;/p&gt;
&lt;p&gt;Currently other Twitter apps show you a twitter users&amp;rsquo; follow back percentage by comparing the total follower total to the total following total. But that ignores the fact that followers and followings may be completely different sets.&lt;/p&gt;
&lt;p&gt;Enter Worker Threads. To calculate the intersection between hundreds of thousands of followers and following in id matrices, even Chrome on my Macbook Pro was having a tough time and stalling the UI. &lt;/p&gt;
&lt;p&gt;The Documentation for Web Workers is terrible, but it&amp;rsquo;s actually a straightforward feature, although unfortunately you must have a separate javascript file for your workers, something I feel is a mistake.&lt;/p&gt;
&lt;p&gt;To show you how easy it is here is my main JS file code:&lt;/p&gt;
&lt;pre&gt;var intersections = new Worker('intersections.js');
  intersections.onmessage = function(event) {
  showIntersections(event.data);
};
&lt;/pre&gt;
&lt;p&gt;OK and now the worker code&lt;/p&gt;
&lt;pre&gt;self.onmessage = function(event) {
  var results = findIntersections(event.data);
  return postMessage(results);
}
&lt;/pre&gt;
&lt;p&gt;Easy as pie, and very useful in a pinch.&lt;/p&gt;</description><link>https://alexbosworth.net/post/866115599</link><guid>https://alexbosworth.net/post/866115599</guid><pubDate>Tue, 27 Jul 2010 22:01:20 +0800</pubDate></item><item><title>Our Todo App has been doing great. 60,000+ iPhone downloads in...</title><description>&lt;img src="https://64.media.tumblr.com/tumblr_l65jdsTSp21qz9ldvo1_400.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a title="Do It Tomorrow" href="http://bit.ly/todoApp"&gt;Our Todo App&lt;/a&gt; has been doing great. 60,000+ iPhone downloads in our first week, from a simple problem that we wanted to solve for ourselves turning out to be a problem many people want a solution for.&lt;/p&gt;
&lt;p&gt;The idea is that being too disciplined and organized saps zest, creativity and fun from life - but it pays to be at least a little organized. We wanted a Todo app that looks good, but is simple enough that you don’t feel overwhelmed. &lt;/p&gt;
&lt;p&gt;It sounds a little weird doing a productivity app that is more about having fun than being maximally productive, but can’t argue with downloads.&lt;/p&gt;</description><link>https://alexbosworth.net/post/860206787</link><guid>https://alexbosworth.net/post/860206787</guid><pubDate>Mon, 26 Jul 2010 14:29:52 +0800</pubDate></item><item><title>App Store Bad Karma</title><description>&lt;p&gt;Having experienced getting Electron Zero through to the App Store was  good, but now I can feel the other side of the equation - of the last 6  apps we submitted to Apple, 3 were approved - our awesome Beijing, Formula 1,  and Stock Trading apps all got through!&lt;/p&gt;
&lt;p&gt;&lt;figure class="tmblr-full" data-orig-height="231" data-orig-width="500"&gt;&lt;img src="https://64.media.tumblr.com/50b4937261c2bbbb5564283e05f7c30c/dcd2137283fe9be9-0d/s540x810/1cb4aa69217325c0988740b0c47d6fa76763747b.png" data-orig-height="231" data-orig-width="500"/&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;You can search Adylitica  on the app store to check them out btw.&lt;/p&gt;
&lt;p&gt;Also if you want a free  copy of one comment or email me (alexbosworth on the gmail)&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s  definitely kind of a bummer to put work into Apps and then Apple shuts  you down - hopefully we can appeal and get two through, but for the  World Cup one it&amp;rsquo;s too late.&lt;/p&gt;</description><link>https://alexbosworth.net/post/715130205</link><guid>https://alexbosworth.net/post/715130205</guid><pubDate>Sat, 19 Jun 2010 22:58:21 +0800</pubDate></item><item><title>Bummed World Cup app wasn't approved, having fun using it myself though</title><description>&lt;a href="http://tweetbe.at/world-cup/"&gt;Bummed World Cup app wasn't approved, having fun using it myself though&lt;/a&gt;</description><link>https://alexbosworth.net/post/715090711</link><guid>https://alexbosworth.net/post/715090711</guid><pubDate>Sat, 19 Jun 2010 22:41:56 +0800</pubDate></item><item><title>My version of Google News, using my trends algorithm</title><description>&lt;a href="http://tweetbe.at/journalists/"&gt;My version of Google News, using my trends algorithm&lt;/a&gt;</description><link>https://alexbosworth.net/post/676178965</link><guid>https://alexbosworth.net/post/676178965</guid><pubDate>Tue, 08 Jun 2010 18:09:20 +0800</pubDate></item></channel></rss>
