<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="https://www.w3.org/2005/Atom">
  <title>Introspection on work, life and the web.</title>
  <subtitle>I write about things that I'm interested in.</subtitle>
  <id>https://yellowshoe.com.au/journal</id>
  <link href="https://yellowshoe.com.au/journal"/>
  <link href="https://yellowshoe.com.au/journal/feed.xml" rel="self"/>
  <updated>2018-09-07T00:00:00Z</updated>
  <author>
    <name>Mark Brown</name>
  </author>
  <entry>
    <title>Barefoot</title>
    <link rel="alternate" href="/journal/barefoot/"/>
    <id>/journal/barefoot/</id>
    <published>2018-09-07T00:00:00Z</published>
    <updated>2018-09-07T00:00:00Z</updated>
    <author>
      <name>Mark Brown</name>
    </author>
    <summary type="html">&lt;p&gt;I am a big fan of the &lt;a href="https://barefootinvestor.com/"&gt;Barefoot Investor&lt;/a&gt;, this entertaining and helpful book gives simple step by step instructions that any Aussie can follow to become financially secure.  His advice is sound and will help you to protect yourself and your family.&lt;/p&gt;

&lt;p&gt;I&amp;#39;ve always hated thinking about money, almost as much as taxes.  I was content with less and avoided debt like the plague, I&amp;#39;ve never owned a credit card.  Yet, I thoroughly enjoyed reading and applying the Barefoot strategy because it helped me put our finances on autopilot.&lt;/p&gt;

&lt;p&gt;</summary>
    <content type="html">&lt;p&gt;I am a big fan of the &lt;a href="https://barefootinvestor.com/"&gt;Barefoot Investor&lt;/a&gt;, this entertaining and helpful book gives simple step by step instructions that any Aussie can follow to become financially secure.  His advice is sound and will help you to protect yourself and your family.&lt;/p&gt;

&lt;p&gt;I&amp;#39;ve always hated thinking about money, almost as much as taxes.  I was content with less and avoided debt like the plague, I&amp;#39;ve never owned a credit card.  Yet, I thoroughly enjoyed reading and applying the Barefoot strategy because it helped me put our finances on autopilot.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Here&amp;#39;s a summary of his strategy:&lt;/p&gt;

&lt;h1&gt;Plant&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Setup your accounts&lt;/strong&gt; - Rather than budgeting, split your income into four categories as it comes in to limit your spending.&lt;/p&gt;

&lt;p&gt;2 Everyday accounts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Daily Expenses&lt;/strong&gt;: 60% of income.  Used for living expenses like food, transport and insurance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Splurge&lt;/strong&gt;: 10% of your income. Spend guilt-free on whatever makes you happy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3 Savings accounts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Smile&lt;/strong&gt;: 10% of your income.  Used for bigger things like holidays and weddings.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fire Extinguisher&lt;/strong&gt;: 20% of your income.  This is used for paying off debts and saving up a deposit.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mojo&lt;/strong&gt;: Cash at hand for emergencies: $2,000 to start.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Get your Super sorted&lt;/strong&gt; - Go with the lowest fee paying Index Fund you can find.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get your Insurance sorted&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Top level hospital cover with a $500 excess through private health insurance.&lt;/li&gt;
&lt;li&gt;12 times your annual salary of combined Life and TPD plus Income protection for 75% of your wage til you reach 65 through your super.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Eliminate your debts&lt;/strong&gt; - Re-negotiate and pay off any debts from smallest to largest with your Fire Extinguisher.&lt;/p&gt;

&lt;h1&gt;Grow&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Save a 20% deposit&lt;/strong&gt; on your home loan with your Fire Extinguisher.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Buy your home&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Boost your Super to 15%&lt;/strong&gt; - Add an additional 5.5% with pre-tax salary sacrifice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Boost Mojo to 3 months Daily Expenses&lt;/strong&gt; with your Fire Extinguisher.&lt;/p&gt;

&lt;h1&gt;Harvest&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Pay off your mortgage&lt;/strong&gt; with your Fire Extinguisher.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Re-nogitiate home loan&lt;/strong&gt; when you&amp;#39;ve paid off 20% of the loan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A working retirement plan&lt;/strong&gt; - Earn 67k per year with 250k in super.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Earn 20k from work&lt;/li&gt;
&lt;li&gt;34k from Age pension&lt;/li&gt;
&lt;li&gt;13k from Super pension&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Boost Mojo to 3-5 years of daily expenses&lt;/strong&gt; with Fire Extinguisher into Super cash account.&lt;/p&gt;

&lt;h2&gt;&lt;/h2&gt;

&lt;p&gt;Additional steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Investment Bonds with a SMSF Lite&lt;/strong&gt; through your super.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write your will and detail all accounts&lt;/strong&gt; for your family.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be generous&lt;/strong&gt; and leave a legacy.&lt;/p&gt;

&lt;h2&gt;&lt;/h2&gt;

&lt;p&gt;Read the book!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Two years in Europe</title>
    <link rel="alternate" href="/journal/europe/"/>
    <id>/journal/europe/</id>
    <published>2018-08-09T00:00:00Z</published>
    <updated>2018-08-09T00:00:00Z</updated>
    <author>
      <name>Mark Brown</name>
    </author>
    <summary type="html">&lt;p&gt;On June 8, 2016 Trish and I moved to London on a Youth Mobility Visa for two years, it was great!&lt;/p&gt;

&lt;p&gt;</summary>
    <content type="html">&lt;p&gt;On June 8, 2016 Trish and I moved to London on a Youth Mobility Visa for two years, it was great!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div class="media max"&gt;&lt;img src="../images/journal/london.jpg" /&gt;&lt;/div&gt;

&lt;p&gt;We based ourselves in South London, Trish had a few friends around the Clapham / Brixton area that we stayed with during our first few weeks in London.  Trish started work with Visit Victoria the day after we landed, I had a few good leads from friends and after a few interviews joined &lt;a href="http://equalexperts.com/"&gt;Equal Experts&lt;/a&gt;, a successful agile consultancy.&lt;/p&gt;

&lt;p&gt;Here&amp;#39;s a few things I&amp;#39;ll miss:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;London summers are the best summers - Many evenings were spent in the parks and commons in sunny 19 degree weather. The sun wakes up at 5am and tucks itself in at 9:30pm leaving plenty of time after work for drinks in the park with friends.&lt;/li&gt;
&lt;li&gt;The accents &amp;amp; languages - One of the most multi-cultural cities in the world.&lt;/li&gt;
&lt;li&gt;The free museums and galleries - Make good on Britain&amp;#39;s centuries of looting and colonising.&lt;/li&gt;
&lt;li&gt;The pubs - Beers come warm and cheap, the bars are cosy and charming and the bitter will grow on you.&lt;/li&gt;
&lt;li&gt;Entertainment - Theatre, outdoor/undercover cinema, music and food festivals, ice skating.&lt;/li&gt;
&lt;li&gt;Travel opportunity - Having never been to Europe before we were kids in a candy shop away on weekend trips every fortnight.  A cheap fare and an hours travel and you&amp;#39;re in a different country, Australia is very isolated in comparison.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;London is a transient city, It seemed that the majority were living here only temporarily, like us.&lt;/p&gt;

&lt;h2&gt;Adolescence&lt;/h2&gt;

&lt;p&gt;I&amp;#39;ve grown up a lot these last two years, learning a lot of history along the way.
Trish and I have been on over fifteen walking tours through European cities and visited over forty museums &amp;amp; galleries. We travelled with friends and created lasting memories of beautiful parts of the world with good people.  Food tours and galleries were highlights but so were the places marked by death like Auschwitz and Gallipoli.&lt;/p&gt;

&lt;p&gt;We visited &lt;a href="/travel/#europe"&gt;over thirty countries&lt;/a&gt; and took more extensive road trips around these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;England, Ireland, Scotland&lt;/li&gt;
&lt;li&gt;Italy&lt;/li&gt;
&lt;li&gt;Spain&lt;/li&gt;
&lt;li&gt;Morocco&lt;/li&gt;
&lt;li&gt;Estonia, Latvia, Lithuania&lt;/li&gt;
&lt;li&gt;Turkey&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The UK countryside, Italy, Greece &amp;amp; the Netherlands were some of our favourite places to relax.  My work was stress-free and I was able to make valuable contributions to teams that respected each other.&lt;/p&gt;

&lt;h2&gt;The good life&lt;/h2&gt;

&lt;p&gt;I don&amp;#39;t expect I&amp;#39;ll be travelling as much in the coming years and I&amp;#39;m totally fine with that, I should be so lucky as to call Australia home.  These are the things I&amp;#39;m looking forward to for a happy life:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Good food &amp;amp; friends&lt;/li&gt;
&lt;li&gt;More time with family&lt;/li&gt;
&lt;li&gt;More music &amp;amp; art&lt;/li&gt;
&lt;li&gt;A dog&lt;/li&gt;
&lt;li&gt;A vegetable and herb garden&lt;/li&gt;
&lt;li&gt;An exercise room&lt;/li&gt;
&lt;li&gt;No money problems&lt;/li&gt;
&lt;li&gt;Panettone&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Abroad</title>
    <link rel="alternate" href="/journal/abroad/"/>
    <id>/journal/abroad/</id>
    <published>2014-05-28T00:00:00Z</published>
    <updated>2014-05-28T00:00:00Z</updated>
    <author>
      <name>Mark Brown</name>
    </author>
    <summary type="html">&lt;p&gt;I describe travel as one of the greatest privileges and educators, I hope to continue traveling and learning from different cultures and history for as long as my legs will carry me.  Still, after a three month trip through India and Nepal and another five months in the Philippines I find myself missing home.&lt;/p&gt;

&lt;p&gt;</summary>
    <content type="html">&lt;p&gt;I describe travel as one of the greatest privileges and educators, I hope to continue traveling and learning from different cultures and history for as long as my legs will carry me.  Still, after a three month trip through India and Nepal and another five months in the Philippines I find myself missing home.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div class="media max"&gt;&lt;img src="../images/journal/india.jpg" /&gt;&lt;/div&gt;

&lt;p&gt;I found Indians to be playful yet fond of intellectual argument, the sub-continent boasts a wealth of UNESCO World Heritage Sites and it&amp;#39;s spiritualism touches every part.  India is a fascinating place that I would love to see again one day.&lt;/p&gt;

&lt;p&gt;For someone very interested in understanding world religions and spirituality I found it to be a treasure housing every major religion in the world, fundamental to this diversity is the Indian&amp;#39;s deep tolerance of others.
One clear demonstration of India&amp;#39;s religious harmony are the caves of Ellora - home to 34 Hindu, Buddhist and Jain cave temples.  For more than a two kilometer stretch these ancient temples of the three religions rest side by side peacefully, in my mind I could hear the songs of a hundred monks with hammer in hand chiseling and chanting.&lt;/p&gt;

&lt;p&gt;Being adopted by a group of friends in Hyderabad was an experience I won&amp;#39;t forget either, meeting their families and being taken to their hangouts I learned of an Indian&amp;#39;s love for his friends, their hospitality and sentimentality.&lt;/p&gt;

&lt;p&gt;Indian food is healthy and delicious pretty much everywhere, I half expected to be eating the westernized Indian take out I was used to - Naan slathered in butter and heavy Punjab curries.  Instead I found healthy vegetarian curries and Dosa, spicy Biryani&amp;#39;s and enjoyed the ritual of sharing Masala Chai, brewed in the freshly squeezed milk from the cow that just passed.
&lt;div class="media max"&gt;&lt;img src="../images/journal/nepal.jpg" /&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;The Himalayas are breathtakingly beautiful, resting after a full day of trekking at the worlds peak with fresh Momo and Dal Bhat is as good for the soul as it is for the body.  I remember the relief that I felt each day we reached our destination and warming myself by the fire, chatting with fellow trekkers, our friendly guide and porter.&lt;/p&gt;

&lt;p&gt;The physical aspect is challenging and the solitude helps to separate you from your life back home, making your mind still to better appreciate the natural wonder of the mountains.  Trekking in Nepal is a wonderful rewarding experience in one of the most naturally beautiful places on earth.&lt;/p&gt;

&lt;div class="media max"&gt;&lt;img src="../images/journal/philippines.jpg" /&gt;&lt;/div&gt;

&lt;p&gt;Filipino&amp;#39;s are carefree, good natured, inclusive and know how to have fun and they need little more than a basketball ring stapled to a tree and some rice to get by.  Fiesta&amp;#39;s, dance routines and pageants get everyone together for a good laugh or sing along.  Filipino&amp;#39;s tease each other in jest all the time, no one is offended when they&amp;#39;re called baboy(pig) for being fat for example, it&amp;#39;s never said in a hurtful way and so the laughs continue.&lt;/p&gt;

&lt;p&gt;Another oddity is how they celebrate and encourage gays, just last week we attended the local Miss Gay 2014 (a pageant for ladyboys) - the highlight for me was when one them chair surfed in high heels into a cartwheel finishing on the floor with a splits.  There&amp;#39;s so many ridiculous things here that you find yourself laughing, surprised and often shocked by what you see.&lt;/p&gt;

&lt;p&gt;And, the mangos and baby back ribs are delicious.&lt;/p&gt;

&lt;h2&gt;Working abroad&lt;/h2&gt;

&lt;p&gt;Given my love of travel you may think that I chose to work abroad whilst traveling around the Philippines, that&amp;#39;s not the case.  In fact, the idea of traveling around whilst working has never really appealed to me.  I have always tried to separate my travel from my work so that I can be completely present at any given moment, I don&amp;#39;t want my travel experience to be diluted or for my work to be broken up into managed chunks of time.  Travel for me is a rejuvinating escape from my work and I want to protect that aspect of it.  Life had brought me here because I wanted to be with my gal who had taken up a volunteer position, remote work enabled me to be here without sacrificing my work as well.&lt;/p&gt;

&lt;p&gt;Working from home is often glorified but personally I haven&amp;#39;t found it to be ideal. I&amp;#39;ve had to work much harder to achieve a good work / life balance from home, interruptions happen frequently and it&amp;#39;s easy to mis-communicate with my colleagues back home, my physical fitness has fallen through the floor and I have a tendency to overwork leaving me depleted at the end of the day.  These types of issues are discussed in detail in &lt;a href="http://37signals.com/remote/"&gt;Remote - office not required&lt;/a&gt; and I know that I can do things to help with each of these areas, it&amp;#39;s an issue of discipline for the most part.  However, working alone from home simply isn&amp;#39;t as fun or motivating for me as being in a room full of passionate people.&lt;/p&gt;

&lt;p&gt;The environment where I find myself comes with it&amp;#39;s own challenges too, the temperature is consistently in the mid thirties, there are short but regular power / internet / water outs, and there&amp;#39;s niggling annoyances like getting extremely itchy after showering and tummy bugs.  These small things taken together can be frustrating when you require long stretches of focused effort to complete a task.&lt;/p&gt;

&lt;p&gt;Remote work is wonderful though! It&amp;#39;s enabled me to be here with someone I love and despite my gripes with my working environment I&amp;#39;ve had a lot of fun whilst I&amp;#39;ve been here.  I&amp;#39;m thankful to &lt;a href="http://adioso.com/"&gt;Adioso&lt;/a&gt; for enabling me to work away from home and look forward to seeing the team in person again in a few more months.  Whilst I appreciate all of the benefits and freedom that comes with working remotely I find it easier and more satisfying being close to my team.&lt;/p&gt;

&lt;h2&gt;Home&lt;/h2&gt;

&lt;p&gt;I&amp;#39;ve had some eye opening experiences in India, Nepal and the Philippines and wouldn&amp;#39;t pass them up if given those choices again.  I&amp;#39;m becoming more mindful of the sacrifices that I make when I do travel though, in four months I&amp;#39;ll be home again and happy to be so.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Seeing my two year old nephew and able to have a little conversation this time&lt;/li&gt;
&lt;li&gt;Riding around on my bicycle looking for coffee and hamburgers&lt;/li&gt;
&lt;li&gt;Working closely with my team and friends at the office&lt;/li&gt;
&lt;li&gt;Catching up with friends and family&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enjoying all the comforts of home.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Client-side MVC</title>
    <link rel="alternate" href="/journal/client-side-mvc/"/>
    <id>/journal/client-side-mvc/</id>
    <published>2013-07-09T00:00:00Z</published>
    <updated>2013-07-09T00:00:00Z</updated>
    <author>
      <name>Mark Brown</name>
    </author>
    <summary type="html">&lt;p&gt;What role should frameworks play in the front-end architecture of rich web applications?
People are &lt;a href="http://angularjs.org/"&gt;working&lt;/a&gt; &lt;a href="http://emberjs.com/"&gt;hard&lt;/a&gt; on frameworks to give us a more powerful, easier way to build the types of applications that have become common (single page applications).
I find myself agreeing with &lt;a href="https://twitter.com/jashkenas"&gt;Jeremy Ashkenas&lt;/a&gt; that these all-singing, all-dancing frameworks are not the answer - a minimal framework that leaves you in control of when things happen and doesn&amp;#39;t make assumptions about your UI is a much better place to start.&lt;/p&gt;

&lt;p&gt;</summary>
    <content type="html">&lt;p&gt;What role should frameworks play in the front-end architecture of rich web applications?
People are &lt;a href="http://angularjs.org/"&gt;working&lt;/a&gt; &lt;a href="http://emberjs.com/"&gt;hard&lt;/a&gt; on frameworks to give us a more powerful, easier way to build the types of applications that have become common (single page applications).
I find myself agreeing with &lt;a href="https://twitter.com/jashkenas"&gt;Jeremy Ashkenas&lt;/a&gt; that these all-singing, all-dancing frameworks are not the answer - a minimal framework that leaves you in control of when things happen and doesn&amp;#39;t make assumptions about your UI is a much better place to start.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;The end game&lt;/h2&gt;

&lt;p&gt;We are setting out to build interactions on the web that look and feel like native applications.  The biggest challenge that web applications face in achieving this is &lt;em&gt;the network&lt;/em&gt;, we rely on making requests across the internet to fetch and update data.  A large part of making an application feel native is remaining in control of &lt;em&gt;what&lt;/em&gt; and &lt;em&gt;when&lt;/em&gt; we request data from web servers.&lt;/p&gt;

&lt;p&gt;By default, HTML is requested from a server and parsed by the browser discarding all of the state from previous requests.  We follow a link to move around, when we do this we trash and rebuild the &amp;#39;native environment&amp;#39; on the client with each request.  If the HTML contains references to other assets it needs(images, CSS, JavaScript) they are requested by the browser automatically.&lt;/p&gt;

&lt;p&gt;Having server-side techniques like russian-doll caching and turbolinks to make requests &lt;em&gt;just fast enough&lt;/em&gt; isn&amp;#39;t the answer, though their speed gains are impressive and worthwhile we still need to be able to manipulate important details with JavaScript. &lt;a href="http://vimeo.com/64895205"&gt;Stop drawing dead fish&lt;/a&gt; by &lt;a href="https://twitter.com/worrydream"&gt;Bret Victor&lt;/a&gt; is a brilliant articulation of why we should embrace the digital nature of the web to get the best experiences out of it.  The fact is that JavaScript gives us a much richer environment to work with, it allows us to store and maintain application state inside the browser, gain control over network requests and respond to user interaction instantly without waiting for the network.  We can respond to interactions programatically, close to the metal where it counts.&lt;/p&gt;

&lt;p&gt;The end result is for us to &lt;a href="https://www.youtube.com/watch?v=4udR30JYenA"&gt;take JavaScript seriously&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;What&amp;#39;s not a problem&lt;/h2&gt;

&lt;p&gt;Fetching HTML from the server is perfectly fine and has been the foundation of the web since the beginning, there are great tools and frameworks to help us build HTML and being dogmatic about squeezing all of this content into JSON doesn&amp;#39;t make any sense to me.  It&amp;#39;s still often the best method.&lt;/p&gt;

&lt;p&gt;The time when rendering HTML server side becomes sub-par is when you need to dynamically change the DOM based on user interaction, relying on a web server to construct our UI simply will not do in these cases. If we already have the data we need, waiting for &lt;em&gt;the network&lt;/em&gt; to provide us with a UI is slow and is the heart of the reason for client-side frameworks.&lt;/p&gt;

&lt;h2&gt;Solving the problem&lt;/h2&gt;

&lt;h3&gt;Models and Views&lt;/h3&gt;

&lt;p&gt;Our content needs to live in two places on the client, in HTML so the users can see and interact with it, as well as in JavaScript objects so that we can manipulate it programatically.  All frameworks provide us with Models to give structure to our data in JavaScript and Views for responding to events and updating our HTML.&lt;/p&gt;

&lt;h3&gt;Events&lt;/h3&gt;

&lt;p&gt;Having Views respond to changes in a Model is a great help in decoupling components.  If one piece of code makes a change to a model it doesn&amp;#39;t need to know about all the views making use of it.  Each view can listen to changes in the models that it needs to know about and apply relevant updates to the page.&lt;/p&gt;

&lt;h3&gt;Ajax&lt;/h3&gt;

&lt;p&gt;Rather than blowing away our environment with full page requests we need to be able to fetch new content when appropriate and update our models and views with new data.  Keeping local models allows us to make use of data in the page without asking the server what the current state is every time.&lt;/p&gt;

&lt;h3&gt;Templates&lt;/h3&gt;

&lt;p&gt;Templates are just a clean way for us to turn JavaScript objects into HTML.  They are necesary if we want to be able to construct HTML client-side cleanly.&lt;/p&gt;

&lt;h3&gt;URL&amp;#39;s&lt;/h3&gt;

&lt;p&gt;We only need URL&amp;#39;s for sharing a particular view that needs to be accessible.&lt;br&gt;
I have never once needed to share or load a specific URL inside GMail, I&amp;#39;d argue that URL&amp;#39;s aren&amp;#39;t important to that application.
When we do have distinct pages of our application Pjax is a great solution for rendering new views into the page fast whilst keeping the shell of our application the same.&lt;/p&gt;

&lt;h2&gt;Remain in control&lt;/h2&gt;

&lt;p&gt;My biggest beef with frameworks like Angular and Ember is that they take control from you, do too much, making too many assumptions along the way about your UI and what features the authors deem important.  Both frameworks take control of when and how the DOM is rendered, you don&amp;#39;t get to choose when this occurs, it&amp;#39;s just part of the magic.  The entire page is rendered by the machine, you are just there to pass the machine some inital instructions and then you sit back and watch it behave.&lt;/p&gt;

&lt;p&gt;When you adopt a heavyweight framework and say &amp;quot;This is an angular/ember application&amp;quot;, from there on in you are encouraged to use their methods from start to finish, the whole hog.  Angular encourages you to write HTML templates with a lot of embedded logic and attribute hooks in your HTML to prevent the boilerplate being in JavaScript. I find this littering of the HTML templates ugly and a mix of concerns.&lt;br&gt;
Ember makes a feature of fetching data automatically for you as the data is required and updating the view for you, great right? No.&lt;br&gt;
We need to be able to control network requests for data and to control how our DOM is updated to achieve a polished result.&lt;/p&gt;

&lt;p&gt;A feature that is always in demos for these frameworks is two way binding.&lt;br&gt;
&amp;quot;&lt;b&gt;Behold!&lt;/b&gt; As I type in this text box you see before you, the views are updated automatically! I don&amp;#39;t need to write any code to make this happen.&amp;quot;  It&amp;#39;s a neat magic trick but it&amp;#39;s not a particular UI pattern that I want or need, I would rather be pulling the strings and choosing when things happen.&lt;/p&gt;

&lt;h3&gt;A life sentence&lt;/h3&gt;

&lt;p&gt;Another concern I have is that if things turn bad, or another better framework is written you can&amp;#39;t change frameworks or scale back, you&amp;#39;re in rewrite terriority.  So, be sure you want to use this framework &lt;em&gt;forever&lt;/em&gt; before signing up.&lt;/p&gt;

&lt;h2&gt;Size matters&lt;/h2&gt;

&lt;p&gt;On the web it&amp;#39;s best to be small.  I&amp;#39;ve always believed that you should have read, understood and agree with a framework before you adopt it.  These are the development versions of Ember, Angular, jQuery and Backbone full of comments just waiting for you to read them.&lt;br&gt;
Skimming through Backbone and jQuery it&amp;#39;s easy to get a feel for how things are structured, Ember and Angular are beasts already and they&amp;#39;re still in their infancy.&lt;/p&gt;

&lt;h3&gt;lines of code&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="http://builds.emberjs.com/ember-1.0.0-rc.6.js"&gt;Ember&lt;/a&gt; - 30,971&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js"&gt;Angular&lt;/a&gt; - 14,847&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.jquery.com/jquery-2.0.3.js"&gt;jQuery&lt;/a&gt; - 8,880&lt;/li&gt;
&lt;li&gt;&lt;a href="http://backbonejs.org/backbone.js"&gt;Backbone&lt;/a&gt; - 1,572&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Mobile&lt;/h3&gt;

&lt;p&gt;The best mobile experiences I have had online are ones with minimal JavaScript and CSS3.
I know that devices will continue to improve and allow for more heavyweight applications but we&amp;#39;re not there yet, the size and constant updating of the DOM will never be as fast as applications that focus on &lt;em&gt;less&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;Code speaks&lt;/h2&gt;

&lt;p&gt;Nicholas Zakas&amp;#39; presentation &lt;a href="http://www.slideshare.net/nzakas/enough-withthejavascriptalready/24"&gt;Enough with the JavaScript already!&lt;/a&gt; got a lot of attention recently, one slide in particular resonated with me.  As rich web applications are developed the time spent on JS grows inproportionally to the rest of the application, I&amp;#39;ve seen it happen.&lt;/p&gt;

&lt;p&gt;Keeping any complex web application maintainable is a difficult task, it requires keeping things small, putting a lot of thought into decoupled components, as well as foresight into how the components will be used in the future.  Every time we add a component we&amp;#39;re writing API&amp;#39;s for future use.  I find it much easier to maintain a client-side application when you can choose the right set of tools and are not governed by strict rules, flexibility is key.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Perhaps rendering HTML on the server is the simplest and best thing for an interaction.&lt;/li&gt;
&lt;li&gt;Maybe a small targetted javascript library does just what you need.&lt;/li&gt;
&lt;li&gt;Perhaps a component that initialises itself based on hooks in the HTML.&lt;/li&gt;
&lt;li&gt;Maybe using strict REST will be more inefficient than it could be.&lt;/li&gt;
&lt;li&gt;Hopefully tomorrow&amp;#39;s templating language will be better than today&amp;#39;s.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are so many small decisions to be made when crafting an application, you must remain in control over the code execution and be able to choose appropriate tools.  Frameworks that make too many of these decisions for you do away with flexibility.&lt;/p&gt;

&lt;h2&gt;One right way&lt;/h2&gt;

&lt;p&gt;There isn&amp;#39;t one.&lt;/p&gt;

&lt;p&gt;The complexity and tools you use on the front-end should entirely depend on your UI.  What is the simplest, fastest, most enjoyable interface we can build to help our users do something?
This is the main reason why a minimal framework like Backbone is &lt;em&gt;best&lt;/em&gt;, it doesn&amp;#39;t make any assumptions yet gives us practical tools to help us solve the real problems.&lt;/p&gt;

&lt;h3&gt;Rules of thumb&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Don&amp;#39;t aim to create a single-page app&lt;/li&gt;
&lt;li&gt;Create as few pages as possible&lt;/li&gt;
&lt;li&gt;Keep your JavaScript small&lt;/li&gt;
&lt;li&gt;Use libraries that you have read and agree with&lt;/li&gt;
&lt;li&gt;Render HTML on the server initially&lt;/li&gt;
&lt;li&gt;Use Pjax to change between pages&lt;/li&gt;
&lt;li&gt;Use Backbone Views and Models for complex components.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This won&amp;#39;t always be the best path, it does work for a lot of real web applications though.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Bad presentations</title>
    <link rel="alternate" href="/journal/bad-presentations/"/>
    <id>/journal/bad-presentations/</id>
    <published>2013-06-17T00:00:00Z</published>
    <updated>2013-06-17T00:00:00Z</updated>
    <author>
      <name>Mark Brown</name>
    </author>
    <summary type="html">&lt;p&gt;I gave a &lt;a href="http://vimeo.com/68351277"&gt;god-awful presentation&lt;/a&gt; last week at &lt;a href="http://melbjs.com/"&gt;MelbJS&lt;/a&gt;.  It was actually the second time I gave the presentation on d3 and it was a little worse than the first time, which was also bad.&lt;/p&gt;

&lt;p&gt;</summary>
    <content type="html">&lt;p&gt;I gave a &lt;a href="http://vimeo.com/68351277"&gt;god-awful presentation&lt;/a&gt; last week at &lt;a href="http://melbjs.com/"&gt;MelbJS&lt;/a&gt;.  It was actually the second time I gave the presentation on d3 and it was a little worse than the first time, which was also bad.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;Giving a bad presentation is still worthwhile&lt;/h3&gt;

&lt;p&gt;It means that you&amp;#39;re wanting to share something that you&amp;#39;re interested in and you are willing to be outside of your comfort zone.  One of the things I like most about working on the web is that ideas are so freely shared, we should all try to contribute where we can.&lt;/p&gt;

&lt;h3&gt;It gives you a chance to work on valuable skills&lt;/h3&gt;

&lt;p&gt;I didn&amp;#39;t realise the presentation would be recorded but I&amp;#39;m glad it was.  It seems that talking and sharing are important skills.&lt;/p&gt;

&lt;h3&gt;Keep them short&lt;/h3&gt;

&lt;p&gt;Bad short presentations can be forgiven&lt;br&gt;
Bad long presentation are terrible&lt;br&gt;
Good short presentation are great&lt;br&gt;
Good long presentation can be boring&lt;/p&gt;

&lt;h3&gt;Learning&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;One slide per idea, don&amp;#39;t use a lot of text&lt;/li&gt;
&lt;li&gt;Break up slides with examples, something visual and a minimum of 3 jokes&lt;/li&gt;
&lt;li&gt;Large titles let you focus on speaking, rather than focusing on reading&lt;/li&gt;
&lt;li&gt;Practice by recording yourself&lt;/li&gt;
&lt;li&gt;Keep trying and improving&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, give a presentation and make some visualisations with d3.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Balance</title>
    <link rel="alternate" href="/journal/balance/"/>
    <id>/journal/balance/</id>
    <published>2013-04-28T00:00:00Z</published>
    <updated>2013-04-28T00:00:00Z</updated>
    <author>
      <name>Mark Brown</name>
    </author>
    <summary type="html">&lt;p&gt;Near the end of a four year stint in a corporate environment I took four weeks holiday by the beach. I relaxed, played guitar, prayed, treated acne, ate well and exercised with running, push ups and sit ups.  It was a great time of recovery and healing and I started feeling better about myself and more healthy in the process.&lt;/p&gt;

&lt;p&gt;</summary>
    <content type="html">&lt;p&gt;Near the end of a four year stint in a corporate environment I took four weeks holiday by the beach. I relaxed, played guitar, prayed, treated acne, ate well and exercised with running, push ups and sit ups.  It was a great time of recovery and healing and I started feeling better about myself and more healthy in the process.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;When I returned back to work one of my managers looked at me, surprised and laughing, saying &amp;quot;You look so healthy!.. I guess a holiday will do that&amp;quot;.  And I &lt;em&gt;was&lt;/em&gt; healthier.  Up until that point my work and church had been my life, even church had become work where I served as a leader in youth group, worship team, and later the leadership team.  Study and music were my only escape from my work, I enjoyed the creative and intellectual stimulation that they brought and they made me feel.. more balanced.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I joined Inspire9 in December, 2011 and my work life changed considerably.&lt;/li&gt;
&lt;li&gt;I left my church of ten years and moved in with two high school mates and their partners near the city but far enough out of the smog for it to be enjoyable.&lt;/li&gt;
&lt;li&gt;I was a beginner again.&lt;/li&gt;
&lt;li&gt;I rested and played often by going to St Kilda beach or eating out with friends.&lt;/li&gt;
&lt;li&gt;I bought a bicycle and began riding to work whenever the sun was out.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It took me a little while to actually enjoy exercise other than riding but I got there in the end.  There&amp;#39;s a large group interested in fitness at inspire9 and they encouraged me to start running, now I love it.  Recently I was inspired by the gymnastics of Cirque du Soleil and &lt;a href="http://www.youtube.com/watch?v=aLogFAbTlDI"&gt;Ido Portal&amp;#39;s thoughts on movement&lt;/a&gt;.  I&amp;#39;m riding and running regularly and practicing my handstands most days, the stretches and strength exercises make me feel healthier, happier and more balanced.  I attended Yoga for the first time last week and instantly enjoyed it, even though I found it difficult.&lt;/p&gt;

&lt;p&gt;Lastly but certainly not least there is a good woman in my life.  Trish is honest, kind and beautiful, we laugh often and comfort each another.  I like her a lot.&lt;/p&gt;

&lt;p&gt;Right now, I feel I am living a more balanced and healthy life than I ever have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A balance in my physical body and spirituality.&lt;/li&gt;
&lt;li&gt;A balance in intellectual study and artistic expression.&lt;/li&gt;
&lt;li&gt;A balance in my relationships and my work.&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
</feed>
