<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Steve Marshall</title>
  <link href="http://stevemarshall.com/atom.xml" rel="self"/>
  <link href="http://stevemarshall.com/"/>
  <updated>2026-04-09T10:17:30+00:00</updated>
  <id>http://stevemarshall.com</id>
  <rights>© 2026 Steve Marshall, all rights reserved.</rights>
  <author>
    <name>Steve Marshall</name>
  </author>

  
  <entry>
    <title>Quotes that inspire me</title>
    
    <link href="http://stevemarshall.com/journal/quotes/"/>
    <published>2025-11-28T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/quotes/</id>
    <content type="html">&lt;p&gt;People who know me will know that I can barely go five minutes without mentioning some pithy quote that I think fits the topic at hand. This is a list of the quotes that I find insightful or inspiring, and refer back to often. I may edit this post in future to add more.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Antoine de Saint Exupéry, &apos;Terre des Hommes&apos; (1939)&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Wenniger aber besser (Less, but better)&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Dieter Rams&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Be curious, not judgmental.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Walt Whitman&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Of the good leader, when the task is done, the people will say, “We did it ourselves”&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Lao Tsu&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;He that is everywhere is nowhere.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Thomas Fuller, 17th-century scholar.&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;If you want to build a ship, don’t drum up the men to gather wood, divide the work, and give orders. Instead, teach them to yearn for the vast and endless sea.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Antoine de Saint Exupéry&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;A smooth sea never made a skilled sailor.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;???&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Stop knowing so much and listen.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;???&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;I am not difficult, I am happy with the best.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Fernand Point, in Croque-en-Bouche by Fanny Deschamps (1976), translated by Jessica Green&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Empty your mind.
Be formless, shapeless, like water.
You put water into a cup; it becomes the cup.
You put water into a bottle; it becomes the bottle.
You put it into a teapot; it becomes the teapot.
Now water can flow, or it can crash.
Be water, my friend.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=2qvYa5t-JUc&quot;&gt;Bruce Lee (1971)&lt;/a&gt;&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;La cuisine, c’est quand les choses ont le goût de ce qu’elles sont. (Cooking is when things taste like what they are.)&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Curnonsky&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Drinks are for strangers,
acquaintances, workmen and
family. Meals are for family, close
friends, honoured guests&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;anthropologist Mary Douglas&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;If you’re not embarrassed by the first version of your product, you’ve launched too late&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;&lt;a href=&quot;https://www.linkedin.com/pulse/arent-any-typos-essay-we-launched-too-late-reid-hoffman/&quot;&gt;Reid Hoffman&lt;/a&gt;&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Small rooms or dwellings discipline the mind, and large ones weaken it.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Leonardo da Vinci (&lt;a href=&quot;https://www.ft.com/content/12c015c3-5d6a-49f5-8d8c-4e29820b2ed3&quot;&gt;via the FT&lt;/a&gt;)&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;God grant me the serenity
To accept the things I cannot change,
The courage to change the things I can,
And the wisdom to know the difference.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Reinhold Niebuhr (1892-1971)&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Mastering the fundamentals wont guarantee we win, but failing to master them will guarantee that we’ll lose&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Unknown, allegedly an NBA coach (&lt;a href=&quot;https://www.youtube.com/watch?v=-3ge9CqPw4M&amp;amp;t=339s&quot;&gt;via Paul Reed Smith&lt;/a&gt;)&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Things which matter most must never be at the mercy of things which matter least.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Goethe&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;When faced with a hard change, first make it easy (warning, this may be hard), then make the easy change.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;&lt;a href=&quot;https://tidyfirst.substack.com/p/mastering-programming&quot;&gt;Kent Beck&lt;/a&gt; (see also &lt;a href=&quot;https://www.adamtal.me/2019/05/first-make-the-change-easy-then-make-the-easy-change&quot;&gt;Adam Tal&lt;/a&gt;)&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  
  <entry>
    <title>How to enable empowered, autonomous teams by prioritising ways of working</title>
    
    <link href="http://stevemarshall.com/journal/how-to-enable-empowered-autonomous-teams-by-prioritising-ways-of-working/"/>
    <published>2024-09-30T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/how-to-enable-empowered-autonomous-teams-by-prioritising-ways-of-working/</id>
    <content type="html">&lt;p&gt;When we were rebooting MOJ’s Cloud Platform team in 2018 as part of our
then-new &lt;a href=&quot;https://mojdigital.blog.gov.uk/2018/10/15/how-were-making-our-hosting-simpler-more-cost-effective-and-more-modern/&quot;&gt;hosting strategy&lt;/a&gt;,
we had a lot of work to do in a short period: build a new platform,
retrain the team on a new technology stack, and prove the value of a
&lt;a href=&quot;https://stevemarshall.com/journal/how-loosely-coupled-autonomous-teams-are-improving-mojs-hosting-estate/&quot;&gt;new approach to operating infrastructure in MOJ&lt;/a&gt;,
all while operating (and, ideally, migrating from) the team’s current
infrastructure. With all of these competing priorities, we wanted to be
intentional in how the team worked, and what they worked on, in these
formative months.&lt;/p&gt;

&lt;p&gt;How a team works together, and what types of work they do, is incredibly
important to help them succeed, so in this post I’ll describe the steps
we took to prioritise specific ways of working for the team, how we got
the team to buy in to that, and how this helped the MOJ Cloud Platform
team to successfully reinvent itself and build a platform that, six
years later, hosts hundreds of government services and has saved
millions of pounds a year.&lt;/p&gt;

&lt;h2 id=&quot;how-did-we-do-it&quot;&gt;How did we do it?&lt;/h2&gt;

&lt;p&gt;The first step was organising a workshop to identify two things:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;What &lt;strong&gt;types&lt;/strong&gt; of work (not specific features or tasks) we should
focus on for the next 3-6 months&lt;/li&gt;
  &lt;li&gt;What we should &lt;strong&gt;avoid&lt;/strong&gt; working on in that time (even—especially—if
we care about it or it’s interesting)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The workshop was two hours long. In order to make sure that the whole
team bought in to how we were prioritising, we had about eight people in
it: all of the senior members of the MOJ Cloud Platform team (product
manager, delivery manager, technical architect, and the three senior
engineers), the team’s product coach (this was their first foray into
product-centric development), and the head of hosting (me).&lt;/p&gt;

&lt;p&gt;The group weren’t asked to prepare anything, but were told what we’d be
discussing, and to think about how they thought we should work, and what
sorts of work to prioritise.&lt;/p&gt;

&lt;p&gt;The workshop was then structured like this:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;30 minutes collating ideas of things we would like to consider, with
no judgement of if they’re things to optimise for, avoid, or something
else.&lt;/li&gt;
  &lt;li&gt;45 minutes identifying duplicates, ensuring shared understanding of
all the ideas, and identifying those that are about prioritisation and
those that weren’t&lt;/li&gt;
  &lt;li&gt;45 minutes identifying what to optimise for and what to actively
avoid optimising for&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this work was done on a whiteboard in the room, but we’ve since
re-run it remotely, both live and asynchronously in shared documents.&lt;/p&gt;

&lt;p&gt;Because this workshop was about &lt;em&gt;how&lt;/em&gt; to do the work, not the specifics
of what we were building, we made a point of quickly noting and moving on
from any conversations that arose around specifics of what we might
build. All of these details, like which infrastructure as code tool we
would use, or how users would describe their services, were important
but could be worked out by understanding our users and their systems.&lt;/p&gt;

&lt;p&gt;The important thing was that the group worked together to come up with
as broad a list of ideas for how we wanted to work, generated a shared
understanding of those ideas, and identified, together, which few of a
long list we would use to prioritise our work.&lt;/p&gt;

&lt;h2 id=&quot;the-output&quot;&gt;The output&lt;/h2&gt;

&lt;p&gt;After the workshop, I documented what we’d agreed, adding descriptions
for each item both to ensure we still agreed with the ideas and to allow
others who hadn’t been in the meeting to understand what our headlines
meant. This document was then shared with everyone in the team so that
we all understood what sorts of work we would prioritise.&lt;/p&gt;

&lt;p&gt;You can &lt;a href=&quot;/files/posts/enable-empowered-teams-prioritisation/cloud-platform-prioritisation-principles.pdf&quot;&gt;read the complete prioritisation document&lt;/a&gt;.
It comprises three sections:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Our priorities: An ordered list of the five types of things we were
going to optimise our work to deliver, in order of preference.&lt;/li&gt;
  &lt;li&gt;Our principles: The group of ideas that we valued, but were
day-to-day things we expected the team to embed in all their work,
regardless of the team’s current focus.&lt;/li&gt;
  &lt;li&gt;Things we value, but won’t optimise for right now: These are things
that either might happen as a natural consequence of our work, but we’re
not going to organise our work to force them, or are things we’d like to
do but aren’t important yet (either because the platform was too young,
or the rest of the organisation wasn’t ready)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These three things allowed us to focus the team on only doing the sorts
of work they needed to do to meet our initial objectives, do so fast,
and with everyone able to understand why a particular type of work is
being prioritised (or why not!).&lt;/p&gt;

&lt;h3 id=&quot;our-top-priority-was-regularly-shipping-value-to-our-users&quot;&gt;Our top priority was regularly shipping value to our users&lt;/h3&gt;

&lt;p&gt;In the workshop, it became clear that our top priority should be to
regularly ship value to our users.&lt;/p&gt;

&lt;p&gt;Before the reboot, the team had spent a number of years working on
various ultimately-unreleased attempts at “solving” infrastructure. Each
of these previous iterations spent so much time being polished and
updated to meet users’ needs before being officially launched that the
users had moved on and got more needs. With the rebooted Cloud Platform,
we decided that the most important thing was to start small, with
something that added value and could be shipped quickly, then iterate to
bring more and more users needs into the fold.&lt;/p&gt;

&lt;p&gt;Shipping value to users regularly is, to this day, the team’s highest
priority, to the point that the team make changes to the production
platform dozens of times a day, and the platform itself changes
thousands of times a day, all to make sure tenants are getting the value
they need.&lt;/p&gt;

&lt;h3 id=&quot;learning-simultaneously-was-something-we-valued-but-decided-not-to-optimise-for&quot;&gt;Learning simultaneously was something we valued, but decided not to optimise for&lt;/h3&gt;

&lt;p&gt;An example of something we decided not to optimise for was making sure
that the whole team learned every new thing at the same pace.&lt;/p&gt;

&lt;p&gt;We cared very much about the team having opportunities to learn and
grow, but we decided not to optimise for everyone learning about
everything from day one. Instead, we relied on the fact that we were
prioritising good software development practices (notably, code reviews
and pairing) to ensure that everyone was able to learn the technologies
we were using over time.&lt;/p&gt;

&lt;p&gt;As the team became more mature, we added both 10% learning time and
“fire breaks”: every fourth sprint was dedicated to priorities set by
the engineers on the team, often investigating potentially-useful
technologies for the future.&lt;/p&gt;

&lt;h2 id=&quot;this-workshop-set-the-team-up-for-years-of-success&quot;&gt;This workshop set the team up for years of success&lt;/h2&gt;

&lt;p&gt;It’s now six years since I ran the Cloud Platform’s first prioritisation
workshop. In that time, the team has built and grown a hosting
platform that’s now the default choice to host all new systems being
built in the MOJ. It hosts &lt;a href=&quot;https://reports.cloud-platform.service.justice.gov.uk/hosted_services&quot;&gt;nearly 500 services&lt;/a&gt;,
allowing those teams to focus on meeting their users’ needs, is
&lt;a href=&quot;https://github.com/ministryofjustice/cloud-platform&quot;&gt;developed entirely in the open&lt;/a&gt;,
allowing others to learn from and reuse our work, and allows MOJ to make
dramatically better use of cloud infrastructure than before by
offering our teams a platform that can scale up or down to meet their
needs without them having to understand how to run their own
infrastructure.&lt;/p&gt;

&lt;p&gt;Without our early focus on how to prioritise the team’s work, they could
have been easily distracted by potential users’ ideal-world features, or
by focussing on making the platform more resilient than it needed to be
when it hadn’t got any users. Instead, the team set up a world-class
hosting platform, went live within six months, and have added an average
of seven new services a month since then, saving millions of pounds per
year in the process.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>How loosely coupled, autonomous teams are improving MOJ’s hosting estate</title>
    
    <link href="http://stevemarshall.com/journal/how-loosely-coupled-autonomous-teams-are-improving-mojs-hosting-estate/"/>
    <published>2024-09-23T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/how-loosely-coupled-autonomous-teams-are-improving-mojs-hosting-estate/</id>
    <content type="html">&lt;p&gt;At the Ministry of Justice (MOJ), we have hundreds of different systems.
Over the last six years, we’ve saved tens of millions of pounds on
hosting them. In order to do that, we had to change our organisation
structure. In this post I’ll share how we did that.&lt;/p&gt;

&lt;h2 id=&quot;most-services-had-their-own-unique-hosting-environment&quot;&gt;Most services had their own unique hosting environment&lt;/h2&gt;

&lt;p&gt;When we started on this journey six years ago, MOJ had dozens of teams
responsible for the infrastructure underlying our services. &lt;/p&gt;

&lt;p&gt;Some of these teams were staffed by MOJ employees but the majority of
infrastructure for the MOJ was managed by suppliers and related to just
one or a few services. &lt;/p&gt;

&lt;p&gt;MOJ had to pay each supplier for the hosting and the people to support
it. Because each environment was unique, MOJ couldn’t benefit from
consolidation or economies of scale.&lt;/p&gt;

&lt;p&gt;In addition, very few of MOJ’s services used public cloud hosting. Many
systems could only be released every six months, making releases
expensive and error prone.&lt;/p&gt;

&lt;h2 id=&quot;we-predicted-we-could-reduce-our-costs-by-60&quot;&gt;We predicted we could reduce our costs by 60%&lt;/h2&gt;

&lt;p&gt;In 2017, I pitched to our then-CTO to build a team to manage hosting for
the MOJ. We predicted we could reduce MOJ’s overall hosting costs by
60%, all while improving MOJ’s ability to deliver modern, user-centred
software at pace. &lt;/p&gt;

&lt;p&gt;I &lt;a href=&quot;https://mojdigital.blog.gov.uk/2018/10/15/how-were-making-our-hosting-simpler-more-cost-effective-and-more-modern/&quot;&gt;described our strategy on the MOJ Digital blog in
2018&lt;/a&gt;,
a year into the process.&lt;/p&gt;

&lt;h2 id=&quot;principles-for-a-strategic-team-structure&quot;&gt;Principles for a strategic team structure&lt;/h2&gt;

&lt;p&gt;As outlined in that strategy, we had three types of infrastructure: &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Retirement infrastructure: we aimed to close these down&lt;/li&gt;
  &lt;li&gt;Modernisation infrastructure: in the public cloud, but not yet cloud native&lt;/li&gt;
  &lt;li&gt;Cloud native infrastructure: reproducible, and easily scalable in response to demand &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In order to deliver the strategy, we needed teams to work on each of
these areas, and there were some key principles:&lt;/p&gt;

&lt;p&gt;Each team should be able to &lt;a href=&quot;https://www.gov.uk/service-manual/service-standard/point-7-use-agile-ways-of-working&quot;&gt;work
iteratively&lt;/a&gt;
and independently of the other teams, so that teams using the platforms
were able to deliver their work without being blocked by work in other
teams. This is similar to how we architect software to be loosely
coupled, so that one system can be changed without breaking another.&lt;/p&gt;

&lt;p&gt;At this stage we didn’t know how many retirement environments we would
need to close down, so we needed to be able to add new work without
derailing existing teams. This meant we needed to be able to grow our
capacity without affecting other work: adding or combining teams where
needed. This is similar to the software design principle of modularity,
where we design software such that its components are able to be
separated and recombined flexibly.&lt;/p&gt;

&lt;p&gt;We also wanted to ensure that each sub-team was &lt;a href=&quot;https://www.gov.uk/service-manual/service-standard/point-2-solve-a-whole-problem&quot;&gt;solving a whole problem
for their users&lt;/a&gt;,
so they had a clear vision for their area that fed into the wider
strategy, and the autonomy to deliver it. This is analogous to how we
design systems to take account of the separation of concerns, where each
component of the system is autonomously responsible for its area of
concern.&lt;/p&gt;

&lt;p&gt;In summary, we needed to design a team structure like a well-architected
software system, where:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Teams are loosely coupled&lt;/li&gt;
  &lt;li&gt;Teams are modular&lt;/li&gt;
  &lt;li&gt;Teams are responsible for an area of concern&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;we-built-the-cloud-platform-to-support-new-services-that-needed-infrastructure&quot;&gt;We built the Cloud Platform to support new services that needed infrastructure&lt;/h2&gt;

&lt;p&gt;In order to stem the tide of new services setting up new infrastructure,
I re-focused one of our in-house teams on building a new, cloud native
hosting platform: the &lt;a href=&quot;https://user-guide.cloud-platform.service.justice.gov.uk/&quot;&gt;MOJ Cloud
Platform&lt;/a&gt;.
This platform is now the default hosting environment for the MOJ.&lt;/p&gt;

&lt;p&gt;This is a mature, evergreen product built to offer an excellent
developer experience to the teams responsible for over 400 production
systems. The Cloud Platform handles more than 200 million requests a
day, and the platform and the systems that run on it are changed more
than 5000 times a day.&lt;/p&gt;

&lt;h2 id=&quot;we-built-the-modernisation-platform-for-services-that-cant-yet-be-cloud-native&quot;&gt;We built the Modernisation Platform for services that can’t yet be Cloud Native&lt;/h2&gt;

&lt;p&gt;Many of MOJ’s legacy systems weren’t likely to become cloud native in
the near future.&lt;/p&gt;

&lt;p&gt;To allow us to support more of these services while improving their
ability to be changed and operated, we built the &lt;a href=&quot;https://user-guide.modernisation-platform.service.justice.gov.uk/&quot;&gt;MOJ Modernisation
Platform&lt;/a&gt;
and migrated services onto it. These services now get the benefits of
being on the cloud and we can operate their fundamental infrastructure
at scale rather than having duplicated teams for each system.&lt;/p&gt;

&lt;p&gt;The Modernisation Platform now hosts the majority of MOJ’s largest, most
sensitive and complex services, used across the justice system.&lt;/p&gt;

&lt;h2 id=&quot;we-set-up-an-operations-engineering-team-to-improve-shared-services&quot;&gt;We set up an Operations Engineering team to improve shared services&lt;/h2&gt;

&lt;p&gt;Many shared services like our GitHub organisation or DNS were being
looked after by a small number of busy people, and were often reliant on
things only they knew, so we couldn’t improve how we used them. &lt;/p&gt;

&lt;p&gt;To tackle this, I set up the &lt;a href=&quot;https://operations-engineering.service.justice.gov.uk/&quot;&gt;Operations Engineering
team&lt;/a&gt;, whose
mission is to manage shared services and identify opportunities to
improve our developers’ experience by buying, building, or otherwise
solving common problems.&lt;/p&gt;

&lt;h2 id=&quot;we-also-got-involved-in-governance&quot;&gt;We also got involved in governance&lt;/h2&gt;

&lt;p&gt;We also started supporting MOJ’s spend controls process. Many projects
don’t look like they involve hosting but a lot of government work
ultimately involves running a website or a piece of software somewhere.
We work with those project teams to use our strategic solutions, making
sure they’re getting the best value for money and are aligned to our
hosting strategy.&lt;/p&gt;

&lt;p&gt;By doing this, we have been able to save time and money for many
systems, as well as giving them a better outcome than they expected.&lt;/p&gt;

&lt;h2 id=&quot;we-have-reduced-costs-by-nearly-50-so-far&quot;&gt;We have reduced costs by nearly 50% so far&lt;/h2&gt;

&lt;p&gt;We’ve already saved tens of millions of pounds by turning off older
systems and environments and by making newer systems more efficient by
moving them onto our &lt;a href=&quot;https://user-guide.cloud-platform.service.justice.gov.uk/&quot;&gt;Cloud
Platform&lt;/a&gt; and
&lt;a href=&quot;https://user-guide.modernisation-platform.service.justice.gov.uk/&quot;&gt;Modernisation Platform&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;All of our hosting teams improve their systems multiple times a day, and
work to improve the experience of the developers who use their systems.
Solving hosting issues once, for all of MOJ, means more of us can focus
on meeting users’ needs.&lt;/p&gt;

&lt;p&gt;There’s still more to do: we’re migrating all of our remaining prison,
probation, and legal aid systems to our platforms over the next year.
All of our teams can focus on delivering the best experiences for users
and we know that the team structure we’ve built allows us to continue to
make the most efficient use of public money.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post originally appeared &lt;a href=&quot;https://mojdigital.blog.gov.uk/2024/09/20/how-loosely-coupled-autonomous-teams-are-improving-mojs-hosting-estate/&quot;&gt;on the MOJ Digital blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>BuzzFeed's ultimate brownies, in metric</title>
    
    <link href="http://stevemarshall.com/journal/buzzfeeds-ultimate-brownies/"/>
    <published>2019-07-14T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/buzzfeeds-ultimate-brownies/</id>
    <content type="html">&lt;p&gt;I really like &lt;a href=&quot;https://www.buzzfeed.com/marietelling/heres-exactly-how-to-make-the-best-brownies-of-your-life&quot;&gt;BuzzFeed’s ultimate brownie recipe&lt;/a&gt;,
but every time I make it, I find myself doing mental gymnastics to
convert from American measurements (cups and sticks) to real (metric)
measurements. To save myself that difficultly next time, I decided to
convert it once and for all, and publish it here.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h2 id=&quot;ingredients&quot;&gt;Ingredients&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;284g unsalted butter, plus more, softened, for greasing&lt;/li&gt;
    &lt;li&gt;227g good-quality semisweet or bittersweet chocolate (60-70% cacao),
roughly chopped&lt;/li&gt;
    &lt;li&gt;128g unsweetened Dutch process cocoa powder, divided&lt;/li&gt;
    &lt;li&gt;1 tablespoon espresso powder&lt;/li&gt;
    &lt;li&gt;402g granulated sugar&lt;/li&gt;
    &lt;li&gt;110g dark brown sugar, packed&lt;/li&gt;
    &lt;li&gt;2 teaspoons vanilla extract&lt;/li&gt;
    &lt;li&gt;2 teaspoons kosher salt&lt;/li&gt;
    &lt;li&gt;6 large eggs&lt;/li&gt;
    &lt;li&gt;128g all-purpose flour&lt;/li&gt;
    &lt;li&gt;Flaky sea salt, for sprinkling&lt;/li&gt;
  &lt;/ul&gt;

  &lt;h2 id=&quot;directions&quot;&gt;Directions&lt;/h2&gt;

  &lt;p&gt;Position a rack in the middle of the oven and preheat to 350°F
(180°C/gas mark 4). Grease a 9x13-inch dark metal pan with softened
butter, then line with parchment paper, leaving overhang on all sides.
Grease the parchment with softened butter.&lt;/p&gt;

  &lt;p&gt;Combine the chopped chocolate, ⅓ of the cocoa powder (43g), and
espresso powder in a heatproof liquid measuring cup or medium bowl and
set aside.&lt;/p&gt;

  &lt;p&gt;Add the butter to a small saucepan over medium heat and cook until the
butter just comes to a vigorous simmer, about 5 minutes, swirling the
pan occasionally. Immediately pour the hot butter over the chocolate
mixture and let sit for 2 minutes. Whisk until the chocolate is
completely smooth and melted, then set aside.&lt;/p&gt;

  &lt;p&gt;Combine the granulated sugar, brown sugar, vanilla extract, salt, and
eggs in a large bowl. Beat with an electric hand mixer on high speed
until light and fluffy, about 10 minutes. It will be similar to the
texture of very thick pancake batter.&lt;/p&gt;

  &lt;p&gt;With the mixer on, pour in the slightly cooled chocolate and butter
mixture and blend until smooth.&lt;/p&gt;

  &lt;p&gt;Sift in the flour and remaining 85g cocoa powder and use a rubber
spatula to gently fold until just combined.&lt;/p&gt;

  &lt;p&gt;Pour the batter into the prepared baking pan and smooth the top with a
spatula. Bake until lightly puffed on top, about 20 minutes.&lt;/p&gt;

  &lt;p&gt;Remove the baking pan from the oven using oven mitts or kitchen towels,
then lightly drop the pan on a flat surface 1-2 times until the
brownies deflate slightly. Sprinkle with flaky sea salt.&lt;/p&gt;

  &lt;p&gt;Return the pan to the oven and bake until a wooden skewer inserted into
the center of the brownies comes out fudgy but the edges look cooked
through, about 20 minutes more. The center of the brownies will seem
under-baked, but the brownies will continue to set as they cool.&lt;/p&gt;

  &lt;p&gt;Set the brownies on a cooling rack and cool completely in the pan.&lt;/p&gt;

  &lt;p&gt;Use the parchment paper to lift the cooled brownies out of the pan. Cut
into 24 bars and serve immediately.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  
  <entry>
    <title>Why I use `chruby` instead of RVM or `rbenv`</title>
    
    <link href="http://stevemarshall.com/journal/why-i-use-chruby/"/>
    <published>2018-03-01T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/why-i-use-chruby/</id>
    <content type="html">&lt;p&gt;When you’re working with multiple Ruby projects, you often end up
needing to run different versions of Ruby. Version managers help
make this easier, and there are three well-known choices for Ruby:
&lt;a href=&quot;https://github.com/rvm/rvm&quot;&gt;RVM&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rbenv/rbenv&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rbenv&lt;/code&gt;&lt;/a&gt;, and
&lt;a href=&quot;https://github.com/postmodern/chruby&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here’s why I use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt;.&lt;/p&gt;

&lt;h2 id=&quot;chruby-is-simpler-and-easier-to-understand&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt; is simpler and easier to understand&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/postmodern/chruby&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt;&lt;/a&gt; is essentially a very
small shell script that sets a few environment variables (mostly
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$PATH&lt;/code&gt;) to point at a given install of Ruby. It also has a separate,
optional, script to auto-switch ruby versions when changing
directories. Both of the scripts are short enough and clear enough that
I can read and follow what they’re doing. It doesn’t do anything more
than that, itself; you use
&lt;a href=&quot;https://github.com/postmodern/ruby-install&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ruby-install&lt;/code&gt;&lt;/a&gt; (a
completely separate tool) to install versions of Ruby. Or install them
by hand. Or whatever.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/rvm/rvm&quot;&gt;RVM&lt;/a&gt; and
&lt;a href=&quot;https://github.com/rbenv/rbenv&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rbenv&lt;/code&gt;&lt;/a&gt;, on the other hand, do things
like overriding &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cd&lt;/code&gt; so that it can switch rubies “magically”. They
also install shims of commands like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gem&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ruby&lt;/code&gt;, and others that
dynamically look up the available Rubies. These sometimes have bugs, or
aren’t entirely transparent. RVM does a bunch of this to enable
features like &lt;a href=&quot;https://rvm.io/gemsets&quot;&gt;Gemsets&lt;/a&gt;, but most of that
functionality has been surpassed by &lt;a href=&quot;https://bundler.io&quot;&gt;Bundler&lt;/a&gt;.
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rbenv&lt;/code&gt; is a bit better, but the shims still require “rehashing”
(updating) whenever you install a new gem that offers executables.&lt;/p&gt;

&lt;p&gt;In short: I’ve had weird issues in the past that ended up being down to
RVM or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rbenv&lt;/code&gt; components misbehaving. With &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt;, there’s nothing
actually there other than a script that tweaks environment variables,
so issues are pretty much nonexistent.&lt;/p&gt;

&lt;h2 id=&quot;what-you-need-to-do-to-use-chruby&quot;&gt;What you need to do to use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt;&lt;/h2&gt;

&lt;p&gt;Getting started with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt; is pretty easy and, because it’s designed
to be self-contained and loosely coupled, it’s easy to back out if
change your mind. Here’s how to install it and set it up with your first
Ruby version:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Install &lt;a href=&quot;https://github.com/postmodern/chruby&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt;&lt;/a&gt; and
&lt;a href=&quot;https://github.com/postmodern/ruby-install&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ruby-install&lt;/code&gt;&lt;/a&gt;. This
doesn’t install a version of Ruby, just &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt; itself and
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ruby-install&lt;/code&gt;. I do this with a &lt;a href=&quot;https://brew.sh&quot;&gt;Homebrew&lt;/a&gt;
&lt;a href=&quot;https://github.com/SteveMarshall/suit/blob/master/Brewfile#L5...L7&quot;&gt;Brewfile&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ruby-install&lt;/code&gt; to install a version of Ruby, then install
Bundler for that version of Ruby:
    &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;rouge-gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;rouge-code&quot;&gt;&lt;pre&gt;ruby-install ruby-2.5.0
~/.rubies/ruby-2.5.0/bin/gem &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;bundler
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;Enable &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt; in your shell (&lt;a href=&quot;https://github.com/postmodern/chruby#configuration&quot;&gt;like
this&lt;/a&gt;). This
means you can run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby ruby-2.5.0&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby system&lt;/code&gt; (for
example) to switch to that version of Ruby, wherever you are. Just
running &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt; will list the available versions (not including
“system”).&lt;/li&gt;
  &lt;li&gt;Set your default Ruby by calling &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby ruby-2.5.0&lt;/code&gt; in your
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.bash_profile&lt;/code&gt;. Without this, you’ll need to manually call
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt; every time you want to use something other than the system
Ruby.&lt;/li&gt;
  &lt;li&gt;You can also optionally set up &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt; to auto-switch Ruby versions
based on the presence of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.ruby-version&lt;/code&gt; files in folders you &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cd&lt;/code&gt; to
by adding it to your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.bash_profile&lt;/code&gt;, too (&lt;a href=&quot;https://github.com/postmodern/chruby#auto-switching&quot;&gt;like
this&lt;/a&gt;). With
this enabled, you can also set your default Ruby with a
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.ruby-version&lt;/code&gt; instead of running &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt; in your shell.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can see 3 and 5 in &lt;a href=&quot;https://github.com/SteveMarshall/homedir/blob/master/etc/bash/r
c/ruby#L6...L9&quot;&gt;my bash
profile&lt;/a&gt;. I haven’t done step 4 because I have a &lt;a href=&quot;https://github.com/SteveMarshall/homedir/blob/master/.ruby-version&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.ruby-version&lt;/code&gt;
in my home directory&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;chruby-is-a-simple-tool-that-does-one-thing-well&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt; is a simple tool that does one thing well&lt;/h2&gt;

&lt;p&gt;Like all &lt;a href=&quot;https://en.wikipedia.org/wiki/Unix_philosophy&quot;&gt;good Unix tools&lt;/a&gt;,
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt; does one thing well and works with other programs to achieve
its goal. It doesn’t try to take over, or insert itself between its
user and Ruby, it just helps switch between versions of the language.&lt;/p&gt;

&lt;p&gt;I hope this helps you get started with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt;. If you want to know
more, &lt;a href=&quot;https://github.com/postmodern/chruby&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chruby&lt;/code&gt;’s documentation&lt;/a&gt;
is pretty clear and easy to follow.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Automating Let’s Encrypt certificate renewal on non-standard servers</title>
    
    <link href="http://stevemarshall.com/journal/automating-lets-encrypt-certificate-renewal-on-non-standard-servers/"/>
    <published>2017-12-27T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/automating-lets-encrypt-certificate-renewal-on-non-standard-servers/</id>
    <content type="html">&lt;p&gt;I run &lt;a href=&quot;https://en.wikipedia.org/wiki/BNC_(software)#IRC&quot;&gt;an IRC bouncer&lt;/a&gt;
to allow me to maintain a single, consistent presence on IRC. I wanted
to ensure that all my connections to it were encrypted.&lt;/p&gt;

&lt;p&gt;Encrypting connections to your servers used to require complicated
configuration and buying expensive SSL certificates. Thanks to &lt;a href=&quot;https://letsencrypt.org//&quot;&gt;Let’s
Encrypt&lt;/a&gt;, encrypting web traffic is much
easier, and entirely free!&lt;/p&gt;

&lt;p&gt;Unfortunately, my IRC bouncer (&lt;a href=&quot;http://znc.in/&quot;&gt;ZNC&lt;/a&gt;) isn’t one of the
servers that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;certbot&lt;/code&gt; (Let’s Encrypt’s official client) &lt;a href=&quot;https://certbot.eff.org/docs/using.html#getting-certificates-and-choosing-plugins&quot;&gt;supports out
of the
box&lt;/a&gt;
or for which there are &lt;a href=&quot;https://certbot.eff.org/docs/using.html#third-party-plugins&quot;&gt;third-party
plugins&lt;/a&gt;,
so I had to do some work to automate getting, installing, and updating
the certificates. Since it involved some effort, I thought it was worth
writing it up here.&lt;/p&gt;

&lt;h2 id=&quot;how-certbot-works-with-non-standard-servers&quot;&gt;How &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;certbot&lt;/code&gt; works with non-standard servers&lt;/h2&gt;

&lt;p&gt;For a server using the ports &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;certbot&lt;/code&gt; needs for renewal (80 or 443)
and without a way to serve extra files, you have to stop the server,
&lt;a href=&quot;https://certbot.eff.org/docs/using.html#standalone&quot;&gt;run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;certbot&lt;/code&gt; in “standalone”
mode&lt;/a&gt; (where it
runs its own web server for the certificate issuing process), put the
certificate somewhere your server can find it, and restart the server
process. And you have to do this every 60-90 days, because &lt;a href=&quot;https://letsencrypt.org/2015/11/09/why-90-days.html&quot;&gt;that’s how
long Let’s Encrypt certificates are valid
for&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The actual auto-renewal itself is &lt;a href=&quot;https://certbot.eff.org/docs/using.html#renewing-certificates&quot;&gt;pretty clearly
documented&lt;/a&gt;:
configure &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cron&lt;/code&gt; (or some other tool for scheduled tasks) to run
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;certbot renew&lt;/code&gt; every night, and it’ll auto-renew any certificates due
to expire in less than 30 days.&lt;/p&gt;

&lt;h2 id=&quot;automating-certificate-renewal&quot;&gt;Automating certificate renewal&lt;/h2&gt;

&lt;p&gt;The trick is that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;certbot&lt;/code&gt; allows us to configure, in the &lt;a href=&quot;https://certbot.eff.org/docs/using.html#modifying-the-renewal-conf
iguration-file&quot;&gt;renewal configuration
file&lt;/a&gt;, pre-renewal, post-renewal, and certificate-deployment
scripts for each domain we’re managing certificates for.&lt;/p&gt;

&lt;p&gt;In my case, &lt;a href=&quot;https://github.com/SteveMarshall/znc-config/blob/master/certbot-hooks/pre&quot;&gt;the pre-renewal
script&lt;/a&gt;
stops the IRC bouncer and &lt;a href=&quot;https://github.com/SteveMarshall/znc-config/blob/master/certbot-hooks/post&quot;&gt;the post-renewal
script&lt;/a&gt;
starts it again.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/SteveMarshall/znc-config/blob/master/certbot-hooks/deploy.tpl&quot;&gt;The deploy
script&lt;/a&gt;
has a slightly more complex job: it makes sure the renewed domain is
the one it expects, and merges the various parts of the certificate
into a single file in the format that my IRC bouncer expects.&lt;/p&gt;

&lt;h2 id=&quot;automating-ssl-certificate-renewal-with-certbot-is-easy&quot;&gt;Automating SSL certificate renewal with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;certbot&lt;/code&gt; is easy&lt;/h2&gt;

&lt;p&gt;I’m really pleased that I managed to encrypt my ZNC server’s traffic
(for free!), and don’t have to worry about updating certificates by
hand. Being able to add encryption so easily means that even services
with minuscule user bases can benefit from the increased privacy it
brings.&lt;/p&gt;

&lt;p&gt;All &lt;a href=&quot;https://github.com/stevemarshall/znc-config&quot;&gt;the code for my ZNC
setup&lt;/a&gt; is open and MIT
licensed, so feel free to reuse it. If you have questions or
suggestions, open an issue or pull request on GitHub, or let me know on
Twitter.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Shared Parental Leave: a dad’s experience</title>
    
    <link href="https://civilservice.blog.gov.uk/2016/05/23/shared-parental-leave-a-dads-experience/"/>
    <published>2016-05-23T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/shared-parental-leave-a-dads-experience/</id>
    <content type="html">&lt;p&gt;I’m spending 6 months this year on shared parental leave looking after
my new son. &lt;a href=&quot;https://civilservice.blog.gov.uk/2016/05/23/shared-parental-leave-a-dads-experience/&quot;&gt;Read about my experience of SPL on the Civil Service
blog&lt;/a&gt;.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>MOJ Digital’s third birthday: 3 years and 24 million lines of code</title>
    
    <link href="https://mojdigital.blog.gov.uk/2015/10/16/moj-digitals-third-birthday-3-years-and-24-million-lines-of-code/"/>
    <published>2015-10-16T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/moj-digitals-third-birthday/</id>
    <content type="html">&lt;p&gt;In honour of MOJ Digital’s third birthday, I spent some time this week
digging through our &lt;a href=&quot;https://github.com/ministryofjustice&quot;&gt;GitHub
repositories&lt;/a&gt; generating some
stats about everything we’ve built. I’ve &lt;a href=&quot;https://gist.github.com/SteveMarshall/316808849ee857d4c21f&quot;&gt;published the code I wrote to
generate the
stats&lt;/a&gt; and
written up &lt;a href=&quot;https://mojdigital.blog.gov.uk/2015/10/16/moj-digitals-third-birthday-3-years-and-24-million-lines-of-code/&quot;&gt;my findings on the MOJ Digital
blog&lt;/a&gt;.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Opera Mini for iPhone</title>
    
    <link href="http://stevemarshall.com/journal/opera-mini-for-iphone/"/>
    <published>2010-04-13T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/opera-mini-for-iphone/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://www.opera.com/mobile/&quot;&gt;Opera Mini for iPhone&lt;/a&gt; was released this morning, and after some
discussion on Twitter, I thought it might be useful (if only to
&lt;a href=&quot;http://twitter.com/chrisdavidmills&quot;&gt;Chris&lt;/a&gt;) to write up my thoughts. In general, though, I
think &lt;cite&gt;&lt;a href=&quot;http://aralbalkan.com/&quot;&gt;Aral&lt;/a&gt;&lt;/cite&gt; &lt;a href=&quot;http://twitter.com/aral/status/12092104843&quot;&gt;said it best&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Opera Mini: the Nokia browsing experience, now on iPhone.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Essentially, Opera Mini doesn’t feel at all like an iPhone app. The
gestures are all wrong to varying degrees, the interface is jarring and
detracts from the pages you’re trying to view, and it’s not fast enough
(its main selling point) to justify using it over Safari (particularly
given the myriad interface oddities).&lt;/p&gt;

&lt;h2 id=&quot;gestures&quot;&gt;Gestures&lt;/h2&gt;

&lt;h3 id=&quot;scrolling&quot;&gt;Scrolling&lt;/h3&gt;

&lt;p&gt;Let’s start with the most basic interaction we have on iPhone:
scrolling. Scrolling on iPhone is &lt;em&gt;fun&lt;/em&gt;. iPhone uses inertial
scrolling; it employs real-world physics to make scrolling feel like
you’re interacting with something physical with weight and friction.
People sit and endlessly scroll back and forth through their lists on
iPhone because it’s so tactile.&lt;/p&gt;

&lt;p&gt;I have to admit, I spent about five minutes simply scrolling around in
Opera Mini. Not because it was &lt;em&gt;fun&lt;/em&gt;, mind you, but because it felt so
badly wrong. In Opera Mini, scrolling doesn’t accelerate or decelerate
in the same way as elsewhere on iPhone, or bounce back when you hit a
boundary.&lt;/p&gt;

&lt;p&gt;But then again, sometimes it doesn’t do that: sometimes, it slides at a
constant rate until it stops and then jumps in the &lt;em&gt;opposite&lt;/em&gt; direction
to your gesture and scrolls a little bit in that direction. Not because
it hit a page edge, though (those stop scrolling dead, mostly): these
reversals tend to happen just when you think you’ve got the measure of
scrolling in Opera.&lt;/p&gt;

&lt;p&gt;Then there are the invisible pseudo-boundaries Opera puts into the page:
if you’re within a column in the page you’re looking at (the sort that
double-tapping in Safari would fill the screen with; more on that
later), Opera will put a scroll boundary around that so that flinging
the page across hits that boundary and stops or, more likely, scrolls a
little further vertically. I suspect these boundaries are what cause the
aforementioned changes in direction, come to think of it.&lt;/p&gt;

&lt;h3 id=&quot;zooming&quot;&gt;Zooming&lt;/h3&gt;

&lt;p&gt;So what about the other most common gesture in Safari? Zooming in Opera
is a little like scrolling: it feels like a first-cut demo that you’d
get if you described how an iPhone does it to someone who had never
used one, then had them build their own.&lt;/p&gt;

&lt;p&gt;Opera Mini has two levels of zoom: in, or out. In Safari, if I want to
zoom in just a little, I can zoom to &lt;em&gt;exactly&lt;/em&gt; the level I want. I have
full control. In Opera, if I’m zoomed out and pinch in either direction,
for any distance, I get zoomed right in. If I’m zoomed in and pinch at
all, I get zoomed out fully.&lt;/p&gt;

&lt;p&gt;For a time, I thought that double-tap-to-zoom (in both directions)
didn’t work in Opera Mini. As it happens, it does but you have to tap in
&lt;em&gt;exactly&lt;/em&gt; the same spot for both taps, or Opera considers it a scroll
instead of a zoom. Unlike Safari, double-tap doesn’t zoom in on the
content you tapped to fill the screen’s width, though: it simply zooms
you all the way in where you double-tapped.&lt;/p&gt;

&lt;p&gt;But that’s OK because you can single-tap to zoom in. Yes, you read that
right: single-tap when zoomed out zooms you in. Know the site you’re
visiting well enough that you know exactly which link you want to click
on as soon as you see it? Well, tough: you have to zoom in and &lt;em&gt;then&lt;/em&gt;
click the link.&lt;/p&gt;

&lt;p&gt;What if I want to focus on a picture that takes up two thirds of the
page? I either have to look at it one bit at a time, fully zoomed in, or
as a thumbnail when zoomed out.&lt;/p&gt;

&lt;p&gt;Also: since when is zooming a browsing operation? If I’m zoomed in, why
does pressing ‘Back’ zoom me out? Why can’t I just navigate back to the
page prior to the current page?&lt;/p&gt;

&lt;h3 id=&quot;text-selection&quot;&gt;Text selection&lt;/h3&gt;

&lt;p&gt;Remember the days when iPhone didn’t have copy and paste (or text
selection), and how Apple’s solution seemed to fit into the OS so
naturally?&lt;/p&gt;

&lt;p&gt;Opera doesn’t. If you try to select text by pressing and holding when
zoomed out, you get zoomed in (or maybe scrolled). If you try to select
text when zoomed in, a spinning cursors orbits your fingertip for a few
seconds and, sometimes, presents you with a popup menu. Unless you’ve
lost your internet connection since loading the page, in which case it
doesn’t.&lt;/p&gt;

&lt;p&gt;Typically, this menu offers simply ‘Select Text’. If you press-and-hold
on, or near, an image, the popup menu offers, in addition to text
selection, the option of opening or saving the image, as you’d see in
native image selection popover dialogs.&lt;/p&gt;

&lt;p&gt;So you click on ‘Select Text’, and a serifed bar cursor (rather than
iPhone’s native slab bar cursor) is inserted where your finger was. You
then have to click at the beginning of the text you wish to select, and
drag to the end.&lt;/p&gt;

&lt;p&gt;Sounds like iPhone text selection, right? Wrong: you get no
insertion-point loupe like you would elsewhere on iPhone, making precise
selection impossible. Made a mistake in your selection? You have to
deselect (by clicking away from the popover offering to copy, search,
etc.) and start again.&lt;/p&gt;

&lt;h2 id=&quot;interface--rendering&quot;&gt;Interface &amp;amp; rendering&lt;/h2&gt;

&lt;p&gt;Opera Mini really seems to have an inferiority complex.&lt;/p&gt;

&lt;p&gt;Whenever you’re using it, the interface screams ‘you’re using Opera!’,
detracting from the web pages you’re trying to read. For starters: I
know I’m using Opera Mini. I clicked on the app icon on my home screen,
so I really don’t need to see Opera’s logo for my entire browsing
session. Sure, this is subtle and in the title bar, but it’s another
un-iPhone-like touch. Worse, this title/branding bar is fixed and never
leaves the screen , regardless of where you scroll.&lt;/p&gt;

&lt;p&gt;The branding, though, pales in comparison to the ‘look at me!’ colour
scheme. If I’m using a web browser, I’m using it to look at web pages.
This means browser chrome should be kept to a minimum, fade into the
background, and be relatively low-contrast.&lt;/p&gt;

&lt;p&gt;It does not mean that you should make the browser chrome black and red
stripes around the web page I’m trying to use. Red and black is
high-contrast and, thus, attracts the eye to it. If I’m using Opera,
this means my eye is drawn away from the sole reason for me using the
app.&lt;/p&gt;

&lt;p&gt;This, of course, is ignoring the fact that Opera commits &lt;a href=&quot;http://news.atebits.com/post/197574144/once-you-go-black&quot;&gt;the ultimate
faux pas&lt;/a&gt;: it uses iPhone’s
light status bar instead of the black status bar, despite most of the
app’s chrome being black. Whilst we’re looking at visual faux pas, the
&lt;a href=&quot;http://my.opera.com/chooseopera/blog/2010/04/13/opera-mini-5-settings&quot;&gt;settings interface&lt;/a&gt; is awful, using completely custom controls for
everything.&lt;/p&gt;

&lt;p&gt;All that said, there is one piece of Opera Mini’s interface that &lt;em&gt;is&lt;/em&gt;
quite nice: the tabs. Where Safari shuffles you off to a full-screen tab
switcher, Opera Mini slides a pane up from the bottom of the screen with
small snapshots of your tabs stacked on top of one another, with the
active tab frontmost. It’s not worlds ahead of Safari’s implementation,
granted, but it’s a nice differentiator.&lt;/p&gt;

&lt;h2 id=&quot;speed-privacy-and-javascript&quot;&gt;Speed, privacy, and JavaScript&lt;/h2&gt;

&lt;p&gt;I mentioned at the outset that Opera Mini isn’t fast enough to justify
using it over Safari. That’s not to say it’s not faster than Safari in
terms of raw page rendering speed. The problem is that the difference in
speed isn’t significant enough to justify using it over Safari,
particularly when you take into account the cognitive dissonance
required to use it on iPhone. Sure, the page renders a second or two
faster but, if it takes you an extra half-second to second-guess
everything you do, what’s the point?&lt;/p&gt;

&lt;p&gt;This speed-boost is achieved by Opera’s servers downloading, rendering,
and compressing the requested page into one bundle, then passing that
back to the user’s browser. On older phones this was a boon because they
were underpowered enough that rendering HTML and CSS was a significant
overhead. On iPhone, sufficient processing power makes performance
increase from offloaded rendering moot, but the
connection-and-compression optimisation can still be a significant
benefit over slow EDGE and GPRS connections.&lt;/p&gt;

&lt;p&gt;On top of that, there’s the matter of privacy: with all the data going
through Opera’s servers, you have to trust Opera. If you’re just
checking the news or weather, that’s no big deal. The idea of checking
email, or doing mobile online banking, through Opera Mini and, thus,
Opera’s cache servers (even if nothing &lt;em&gt;is&lt;/em&gt; cached) concerns me.&lt;/p&gt;

&lt;p&gt;And then there’s JavaScript. Opera Mini doesn’t support JavaScript.
Except where it does, which tend to be the most inconvenient places.
&lt;a href=&quot;http://finance.yahoo.com/news&quot;&gt;Yahoo! Finance News&lt;/a&gt;, for example, sports a number of
progressively enhanced personalisation features. If you visit the page
in Opera Mini, it executes the first-run JavaScript but disables any
further JavaScript-enhanced interactions.&lt;/p&gt;

&lt;p&gt;It seems that Opera Mini runs JavaScript on the server such that pages
are progressively enhanced, then delivers the rendered page to the
client. For any progressively enhanced pages that hide the
non-JavaScript interactions when they’re not needed (read: most of
them), this will mean that Opera Mini users get a broken experience.&lt;/p&gt;

&lt;p&gt;On the plus side, at least the JavaScript experience matches with the
rest of the Opera Mini for iPhone experience.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>`django_fireeagle`</title>
    
    <link href="http://stevemarshall.com/journal/django-fireeagle/"/>
    <published>2008-04-12T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/django-fireeagle/</id>
    <content type="html">&lt;p&gt;Just a brief note to mention that I uploaded &lt;a href=&quot;http://django-fireeagle.googlecode.com/&quot;&gt;my Django Fire Eagle
authentication wrapper&lt;/a&gt; to &lt;a href=&quot;http://code.google.com/&quot;&gt;Google Code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It uses (and complements) &lt;a href=&quot;http://fireeagle.yahoo.net/developer/code/python&quot;&gt;my Fire Eagle API binding&lt;/a&gt; to
wrap up the process of authorising your Django application with Fire
Eagle into little more than pointing your users at a URL and setting
them free.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Sou’westerly</title>
    
    <link href="http://stevemarshall.com/journal/souwesterly/"/>
    <published>2008-03-06T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/souwesterly/</id>
    <content type="html">&lt;p&gt;Given that I’m sitting [or was, at the time of writing—Ed.] in a
large, metal tube at about 35,000ft., and &lt;a href=&quot;http://ben-ward.co.uk/&quot; title=&quot;Ben Ward&quot;&gt;Ben&lt;/a&gt; is writing for
his blog, I’ve been gripped by the desire to write for mine, too.
Miracles, apparently, will never cease.&lt;/p&gt;

&lt;p&gt;For the third year running, now, I’m on my way to Austin, Texas for
&lt;a href=&quot;http://2008.sxsw.com/&quot; title=&quot;SXSW 2008&quot;&gt;SXSW&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;past&quot;&gt;Past&lt;/h2&gt;

&lt;p&gt;The first year (&lt;a href=&quot;http://2006.sxsw.com/&quot; title=&quot;SXSW 2006&quot;&gt;2006&lt;/a&gt;), travelling with &lt;a href=&quot;http://fatbusinessman.com/&quot; title=&quot;David &amp;quot;Fatty&amp;quot; Thompson&quot;&gt;Fatty&lt;/a&gt; (whom I had
met but once before), was an incredible experience. I got to make lots
of new friends and, generally, learn a huge amount and have a brilliant
time.&lt;/p&gt;

&lt;p&gt;Fast-forward a year to &lt;a href=&quot;http://2007.sxsw.com/&quot; title=&quot;SXSW 2007&quot;&gt;2007&lt;/a&gt; and Fatty and I were joined by
Ben, and I got to share a room with the inimitable &lt;a href=&quot;http://kurafire.net/&quot; title=&quot;Faruk Ateş&quot;&gt;Faruk&lt;/a&gt;.
There were lots of complaints, from others, of the conference becoming
too big for its own boots, of too many panels with too little content,
and so forth; generally, there seemed to be an air of malaise about
SXSW.&lt;/p&gt;

&lt;p&gt;Socially, for me, it was bigger and better than my first year: I went to
more parties, spent time with more people, and generally made more
friends than in 2006. &lt;em&gt;It was good&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;present&quot;&gt;Present&lt;/h2&gt;

&lt;p&gt;I fully expect this year to continue that trend given that, at the
airport this morning, Ben and I (alas, no Fatty this year) bumped into
&lt;a href=&quot;http://muffinresearch.co.uk/&quot;&gt;Stuart Colville&lt;/a&gt; &lt;em&gt;before we had even checked in&lt;/em&gt;, Paul Duncan over
breakfast, &lt;a href=&quot;http://cyril.doussin.name/&quot;&gt;Cyril Doussin&lt;/a&gt; and Tristan Turpin (who, along with Stuart,
are on the same flight as Ben and me) just after breakfast, and &lt;a href=&quot;http://morethanseven.net/&quot;&gt;Gareth
Rushgrove&lt;/a&gt; in the departures lounge.&lt;/p&gt;

&lt;p&gt;All this, mark you, &lt;em&gt;before we had even left Gatwick Airport&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Granted, this was aided in no small part by the magic of &lt;a href=&quot;http://twitter.com/&quot;&gt;Twitter&lt;/a&gt;
(and generally being better acquainted with more people in the web
scene), but there was also a certain amount of serendipity thrown in for
good measure, too.&lt;/p&gt;

&lt;h2 id=&quot;near-future&quot;&gt;Near-Future&lt;/h2&gt;

&lt;p&gt;Compared to the last two years, my aims have ever-so-slightly changed,
too. Rather than, as last year, placing the focus on attending sessions
and parties, my focus this year will simply be on “am I making the most
of this time?”. I intend to be rather mercenary about this, in fact:
last year and the year before, there were times when I stayed at a party
for fear of not knowing anyone at another. That shan’t happen this year.&lt;/p&gt;

&lt;p&gt;Further, I intend to be very much, to use an Neuro-Linguistic
Programming phrase, “in the moment”. Also, in a change to normal
programming, I shall be drinking alcohol (although hopefully not to
&lt;a href=&quot;http://flickr.com/&quot;&gt;the levels of excess&lt;/a&gt; seen at &lt;a href=&quot;http://2007.dconstruct.com/&quot;&gt;d.Construct 07&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The biggest change, though, is that I shall, finally, be attending &lt;a href=&quot;http://2008.sxsw.com/music/&quot;&gt;SXSW
music&lt;/a&gt;. The past two years, I’ve lusted after that extra
week of partying and gigs (and envied &lt;a href=&quot;http://www.7nights.com/asterisk/&quot; title=&quot;D. Keith Robinson&quot;&gt;Keith&lt;/a&gt;
horribly when he’s stayed on); this year, I get to partake myself (along
with Ben, &lt;a href=&quot;http://csensedesign.co.uk/&quot;&gt;Alex Lee&lt;/a&gt;, and Lindsey Mooney). Not only that but, thanks
to contacts in &lt;a href=&quot;http://uk.music.yahoo.com/&quot;&gt;Yahoo! Music UK&lt;/a&gt;, I may have wangled access to closed
recording sessions for Yahoo! Music with Ben, Alex, and Lindsey.&lt;/p&gt;

&lt;p&gt;I’m looking forward to it all more than you can possibly imagine.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Pinpoint</title>
    
    <link href="http://stevemarshall.com/journal/pinpoint/"/>
    <published>2008-03-06T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/pinpoint/</id>
    <content type="html">&lt;p&gt;For those of you that haven’t seen it already, go look at &lt;a href=&quot;http://fireeagle.com/&quot;&gt;Fire
Eagle&lt;/a&gt;. Do it now.&lt;/p&gt;

&lt;p&gt;Good, innit?&lt;/p&gt;

&lt;p&gt;For those of you that don’t quite get it, the point is that it’s a
central location-brokering service. You tell Fire Eagle where you are
(or set your devices and &lt;a href=&quot;http://blog.dopplr.com/index.php/2008/03/05/dopplr-at-etech-announcing-fire-eagle-integration/&quot; title=&quot;Dopplr announces Fire Eagle integration&quot;&gt;web apps&lt;/a&gt; to tell it), and other
applications can, if you allow them, use that data in fun and
interesting ways (think auto-geo-tagging of photos on flickr, or mapping
where your friends are, to name the most obvious).&lt;/p&gt;

&lt;p&gt;Anyway: Fire Eagle really caught my attention and, thanks to my
friendship with &lt;a href=&quot;http://plasticbag.org/&quot; title=&quot;Tom Coates&apos;s Plasticbag&quot;&gt;the lovely Mr. Coates&lt;/a&gt;, I got to play a
little with its API before launch. Whilst it’s not &lt;em&gt;quite&lt;/em&gt; finished yet
(the methods to find users of your application within a given area,
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;within&lt;/code&gt;, and to find recent location updates from your users, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;recent&lt;/code&gt;,
are not there at the time of writing), the API and, indeed, website are
decidedly lovely.&lt;/p&gt;

&lt;p&gt;The website is friendly, playful, and takes all the hard edges off of
the concept of using a web app whose sole purpose is to serve other
applications and widgets. It has non-awful markup and CSS (although
there are a few things I might quibble with in a code review). The URLs,
though…&lt;/p&gt;

&lt;p&gt;Oh, the URLs! Whoever came up with the idea of allowing
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://fireeagle.com/my/location/is/Austin%20TX&lt;/code&gt; (or, indeed, any other
location, but Austin, Texas is &lt;a href=&quot;http://2008.sxsw.com/&quot; title=&quot;South by South-West 2008&quot;&gt;particularly apt&lt;/a&gt; for me right
now) is an evil genius after my own heart.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://fireeagle.com/developers/&quot; title=&quot;Fire Eagle&apos;s API documentation&quot;&gt;The API&lt;/a&gt; has had as much care and attention as the web
interface, though: no method is out of place, everything accepts what
you’d expect. What’s more, it uses &lt;a href=&quot;http://oauth.net/&quot;&gt;OAuth&lt;/a&gt; for authorising third-party
applications to access user data (and Fire Eagle allows you to specify
what level of granularity you want to allow per-application), so even
&lt;em&gt;that&lt;/em&gt; is positively simple given the existence of libraries to deal
with OAuth for you.&lt;/p&gt;

&lt;p&gt;If it all &lt;em&gt;still&lt;/em&gt; seems like too much hard work to implement bindings
for the API in your app, that’s been covered, too: there are bindings
for &lt;a href=&quot;http://fireeagle.yahoo.net/developer/code/javascript&quot;&gt;Javascript&lt;/a&gt;, &lt;a href=&quot;http://fireeagle.yahoo.net/developer/code/php&quot;&gt;PHP&lt;/a&gt;, &lt;a href=&quot;http://fireeagle.yahoo.net/developer/code/ruby&quot;&gt;Ruby&lt;/a&gt;,
&lt;a href=&quot;http://fireeagle.yahoo.net/developer/code/perl&quot;&gt;Perl&lt;/a&gt;, and even one for &lt;a href=&quot;http://fireeagle.yahoo.net/developer/code/python&quot;&gt;Python&lt;/a&gt;
written by yours truly.&lt;/p&gt;

&lt;p&gt;I intend to spend a sizeable chunk of my time over the next few weeks
playing with Fire Eagle, both updating my Python API binding and hacking
around with various ideas I’ve had for fun, useful little apps using
Fire Eagle data.&lt;/p&gt;

&lt;p&gt;Now, where was I?&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>`HTTPSConnection`</title>
    
    <link href="http://stevemarshall.com/journal/httpsconnection/"/>
    <published>2008-03-06T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/httpsconnection/</id>
    <content type="html">&lt;p&gt;So apparently I now write Python.&lt;/p&gt;

&lt;p&gt;In a flustered, last-minute, push to get the &lt;a href=&quot;http://fireeagle.com/developer/&quot;&gt;Fire Eagle Python API
binding&lt;/a&gt; ready to ship, I had to switch it to
use HTTPS (and point to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fireeagle.yahooapis.com&lt;/code&gt;, natch).&lt;/p&gt;

&lt;p&gt;Given that I’m relatively new to Python, it took a moment to realise I
had simply to switch from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;httplib.HTTPConnection&lt;/code&gt; to
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;httplib.HTTPSConnection&lt;/code&gt;. This would have all been fine, save one
issue: apparently, the otherwise wonderful &lt;a href=&quot;http://macports.org/&quot;&gt;MacPorts&lt;/a&gt; doesn’t appear
to link &lt;a href=&quot;http://www.openssl.org/&quot;&gt;OpenSSL&lt;/a&gt; in Python by default (which, naturally, is a
requirement for HTTPS).&lt;/p&gt;

&lt;p&gt;Without OpenSSL linked, trying to use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HTTPSConnection&lt;/code&gt; (or, one would
imagine, any SSL-related task) results in an error akin to
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AttributeError: &apos;module&apos; object has no attribute &apos;ssl&apos;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To rectify this is, actually, very simple: run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo port install
py25-socket-ssl&lt;/code&gt; in the Terminal (assuming you’re using Python 2.5:
other versions of Python will require different ports).&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Red</title>
    
    <link href="http://stevemarshall.com/journal/red/"/>
    <published>2007-11-05T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/red/</id>
    <content type="html">&lt;p&gt;I’d been talking to John about her for quite a while before Peter
finally introduced us. Dressed in close-fitting red, subtly accentuating
her curves, she waited patiently outside.&lt;/p&gt;

&lt;p&gt;As I approached she perked up, attentive to my presence, a youthful
exuberance in her eyes. My hand lightly touching her side, she drew me
closer. As I pushed all the right buttons, she progressed from a quiet
whimper to an excited, throaty purr.&lt;/p&gt;

&lt;p&gt;I still don’t know her name. Her number, though, is 368 of 500.&lt;a href=&quot;http://www.flickr.com/photos/steviebm/sets/72157602936819100/&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2094/1875843891_1f9a266ea0.jpg?v=0&quot; alt=&quot;Photos
of my new car on
flickr&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Perfection</title>
    
    <link href="http://stevemarshall.com/journal/perfection/"/>
    <published>2007-11-02T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/perfection/</id>
    <content type="html">&lt;blockquote&gt;
  &lt;p&gt;Perfection is achieved, not when there is nothing more to add, but
when there is nothing left to take away.&lt;/p&gt;

  &lt;footer&gt;&lt;cite&gt;Antoine de Saint Exupéry, &apos;Terre des Hommes&apos; (1939)&lt;/cite&gt;&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;p&gt;This sentiment is just as true for markup, style, and behaviour on the
web. The trick, though, is to find the optimal balance between the
three.&lt;/p&gt;

&lt;h2 id=&quot;markup&quot;&gt;Markup&lt;/h2&gt;

&lt;p&gt;When building a page, one should assume nothing: mark it up in the most
minimal, sparse way possible whilst still maintaining a logical
structure.&lt;/p&gt;

&lt;p&gt;No &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;class&lt;/code&gt;es. No &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;id&lt;/code&gt;s. No &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;div&lt;/code&gt;s or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;span&lt;/code&gt;s. Just pure, semantically
rich HTML elements.&lt;/p&gt;

&lt;p&gt;Next, divide the page into major logical divisions using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;div&lt;/code&gt;s with apt
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;id&lt;/code&gt;s. Use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;class&lt;/code&gt;es to identify patterns used throughout the page (cf.
&lt;a href=&quot;http://microformats.org/&quot;&gt;Microformats&lt;/a&gt;). At this stage, one should be adding semantic context
as minimally as possible.&lt;/p&gt;

&lt;p&gt;Further, this context should be added at the highest level in the DOM
that is appropriate, and no higher. For example, an ordered list of blog
posts should not feature a class of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;post&lt;/code&gt; on each list item; rather,
the list itself should have the class &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;posts&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Remove redundancy in all aspects of the markup. Consider different
choices of elements, even if they seem unfit for purpose.&lt;/p&gt;

&lt;p&gt;If, at the end of this process, it seems like the document should be
easy to style accordingly then there are probably too many styling
hooks, in the form of non-semantic &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;class&lt;/code&gt;es, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;id&lt;/code&gt;s and elements, in
place already. Go back and think about everything once more. Make every
element and attribute justify its existence.&lt;/p&gt;

&lt;p&gt;By this point all functionality of the page, be it part of an
application or straight prose, should be exposed and fully usable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All of it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If there’s a single piece of functionality that you feel you can’t
provide in raw HTML, you’re doing it wrong.&lt;/p&gt;

&lt;p&gt;This doesn’t mean the interaction has to be as rich as it might be, but
it should be usable.&lt;/p&gt;

&lt;h2 id=&quot;style&quot;&gt;Style&lt;/h2&gt;

&lt;p&gt;As with the markup, styling should be approached by using the most
simple approaches possible to achieve the desired look.&lt;/p&gt;

&lt;p&gt;The styling shouldn’t obfuscate any functionality: everything should
still work as intended.&lt;/p&gt;

&lt;p&gt;Avoid adding extra markup at all costs. If it seems that extra markup is
necessary to aid styling, consider that the approach being used to
acheive the style is the wrong one.&lt;/p&gt;

&lt;h2 id=&quot;behaviour&quot;&gt;Behaviour&lt;/h2&gt;

&lt;p&gt;Finally, enhance the behaviour as necessary. As with styling, consider
that the desire to add to the DOM (either before or during the life of a
script) could be a sign that the solution is not the optimal one.
Similarly, if styles must be added &lt;em&gt;before&lt;/em&gt; any interaction occurs,
separate them using some class high in the DOM tree.&lt;/p&gt;

&lt;p&gt;If anything must be added, be they elements, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;id&lt;/code&gt;s, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;class&lt;/code&gt;es, or
styles, add them at the latest possible instant and promptly remove them
when unneeded. When applying behaviour use, as far as possible, already
extant semantics for context.&lt;/p&gt;

&lt;p&gt;Further, if the behaviour relies on styling to justify its existence, it
may need rethinking.&lt;/p&gt;

&lt;p&gt;Throughout all three, one should attempt to focus on the smallest area
possible at a time. Break the document into its requisite parts,
developing these in isolation from one another and the framework to bind
them together.&lt;/p&gt;

&lt;p&gt;Above all: if you’re not finding it hard, and agonising over it, you’re
probably not doing it right.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Tired of this phase</title>
    
    <link href="http://stevemarshall.com/journal/tired-of-this-phase/"/>
    <published>2007-10-08T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/tired-of-this-phase/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://ben-ward.co.uk/&quot; title=&quot;Ben Ward&quot;&gt;Ben&lt;/a&gt; has publicly &lt;a href=&quot;http://ben-ward.co.uk/journal/getting-up/&quot; title=&quot;&apos;Tired of this phase&apos; by Ben Ward&quot;&gt;challenged
himself&lt;/a&gt; to not waste his pre-work mornings by
sleeping through multiple alarms.&lt;/p&gt;

&lt;p&gt;Whilst I don’t intend to mimic his goal (I already get up at 6:30am
thankyouver’much), I have a habit of not doing things (posting here,
writing for &lt;a href=&quot;http://webtypography.net/&quot;&gt;Web Typography&lt;/a&gt;, exercising, and the list goes on) for
similar reasons. I bemoan a lack of time, a fear of failure, a lack of
knowledge… Anything, in fact, to excuse myself from doing things that
might challenge me and require me to put effort into something.&lt;/p&gt;

&lt;p&gt;So, to echo Ben’s sentiment:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This week, I’m taking the “don’t be so pathetic” method to not being
shit at stuff.&lt;/p&gt;
&lt;/blockquote&gt;

</content>
  </entry>
  
  <entry>
    <title>A vote for Ask Us Anything is a vote for awesome</title>
    
    <link href="http://stevemarshall.com/journal/a-vote-for-ask-us-anything-is-a-vote-for-awesome-2/"/>
    <published>2007-08-20T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/a-vote-for-ask-us-anything-is-a-vote-for-awesome-2/</id>
    <content type="html">&lt;p&gt;It would appear that the &lt;a href=&quot;http://2008.sxsw.com/&quot;&gt;SXSW08&lt;/a&gt; &lt;a href=&quot;http://panelpicker.sxsw.com/&quot;&gt;panel picker&lt;/a&gt; is live. &lt;a href=&quot;http://tartarus.org/james/&quot; title=&quot;James Aylett&quot;&gt;James&lt;/a&gt;,
&lt;a href=&quot;http://cackhanded.net/&quot; title=&quot;Mark Norman Francis&quot;&gt;Norm!&lt;/a&gt; and I are hoping to run an &lt;a href=&quot;http://ask-us-anything.com/&quot;&gt;Ask Us Anything&lt;/a&gt; session.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://panelpicker.sxsw.com/ideas/view/233&quot; title=&quot;Vote for Ask Us Anything to appear live at SXSW08&quot;&gt;Vote for it&lt;/a&gt;, you know you want to!&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Search, and ye shall fail</title>
    
    <link href="http://stevemarshall.com/journal/search-and-ye-shall-fail/"/>
    <published>2007-05-11T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/search-and-ye-shall-fail/</id>
    <content type="html">&lt;p&gt;There’s an accepted solution for channelled searching: offer a textbox
input and a submit button, supported by a series of links to each
channel of the search. The links will typically have JavaScript layered
onto them (in theory, at least) to rewrite the form’s target, so that
the user may refine their search before submitting it. This behaviour
can be seen on &lt;a href=&quot;http://yahoo.com/&quot;&gt;Yahoo! US&lt;/a&gt;, &lt;a href=&quot;http://uk.yahoo.com/&quot;&gt;Yahoo! UK and Ireland&lt;/a&gt;,
&lt;a href=&quot;http://msn.com/&quot;&gt;MSN&lt;/a&gt;, and yes, even &lt;a href=&quot;http://google.com/&quot;&gt;Google&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It &lt;em&gt;must&lt;/em&gt; be the best solution, mustn’t it, if all these sites use
similar techniques?&lt;/p&gt;

&lt;h2 id=&quot;the-objective-of-my-affection&quot;&gt;The objective of my affection&lt;/h2&gt;

&lt;p&gt;If we step back for a moment, to examine the user’s needs, we can see
two objectives for the average searcher: &lt;strong&gt;find something&lt;/strong&gt; and
[&lt;ins&gt;perhaps&lt;/ins&gt;] make it &lt;em&gt;of this type&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The ‘something’ for which the user is searching is, in their mind, the
foremost concern. &lt;em&gt;Everything else&lt;/em&gt; is secondary. When searching, a
user’s first instinct will almost always be to enter their search terms
(and why should it be otherwise?). Everything about a search interface
is geared toward this: the keyword input has the most visual weight on
the screen – on a typical search index page – and the most prominent
position – either near dead-centre or in the head of the page,
depending on the type of page.&lt;/p&gt;

&lt;p&gt;The accepted solution, happily, cedes to this under all circumstances.&lt;/p&gt;

&lt;p&gt;The second objective, then, is the type of results that will satisfy the
search. The introduction of this second objective is where user
behaviour will begin to deviate: depending on their priorities and
personal inclinations, users’ execution of this may take place before,
after, or even &lt;em&gt;during&lt;/em&gt; the steps to meet the primary objective. Unlike
the emphasis placed on the keyword input, the type of results to return
should be – and, typically, are – de-emphasised where possible, but be
present – and have their presence known – should the user require them
(either to confirm their beliefs or to make a change).&lt;/p&gt;

&lt;h2 id=&quot;humbled&quot;&gt;Humbled&lt;/h2&gt;

&lt;p&gt;But the accepted solution only pays lip-service to this more complex
interaction: for any user without JavaScript, the only acknowledged
paths for them to change the channel in which they are searching is to
select it before they begin their search or, assuming that the search
engine alters the links based on the latest query, directly after (and
before they attempt to manipulate their search further).&lt;/p&gt;

&lt;p&gt;By using JavaScript to bludgeon links into selecting from a choice of
mutually exclusive channels, the user experience of what &lt;em&gt;should&lt;/em&gt; be a
simple search form is broken for many users when they attempt to
interact with it in a way that seems natural to them. To compound this
issue further, the use of links means that screen reader users may
&lt;em&gt;never&lt;/em&gt; be able to use this functionality, as links within the form will
never be announced when they are entering their search terms.&lt;/p&gt;

&lt;p&gt;The problem is that whomever has implemented these solutions (or their
forebears) had the mindset of ‘HTML is static, JavaScript is dynamic’ –
or simply didn’t care enough to question the accepted norm – and so
overlooked what was staring them right in the face: HTML already has a
perfectly good input device for selecting one and only one item from a
collection:&lt;/p&gt;

&lt;p&gt;The humble radio-button.&lt;/p&gt;

&lt;p&gt;Given a little semantic markup and CSS (with a smattering of JavaScript
to add extra styling hooks), it’s entirely possible to style a group of
radio-buttons in a more visually apt way to indicate that it is
filtering the search input, whilst offering a far more interactive
experience to &lt;em&gt;all&lt;/em&gt; users of the site, not just those with JavaScript.&lt;/p&gt;

&lt;p&gt;So I did.&lt;/p&gt;

&lt;p&gt;That’s what you can see in action on the new &lt;a href=&quot;http://uk.tv.yahoo.com/&quot;&gt;Yahoo! UK and Ireland
TV&lt;/a&gt; (along with &lt;a href=&quot;http://fr.tv.yahoo.com/&quot; title=&quot;Yahoo! France Télé&quot;&gt;France&lt;/a&gt;, &lt;a href=&quot;http://de.tv.yahoo.com/&quot; title=&quot;Yahoo! Deutschland TV&quot;&gt;Germany&lt;/a&gt;,
&lt;a href=&quot;http://it.tv.yahoo.com/&quot; title=&quot;YahoO! Italia TV&quot;&gt;Italy&lt;/a&gt;, and &lt;a href=&quot;http://es.tv.yahoo.com/&quot; title=&quot;Yahoo! España TV&quot;&gt;Spain&lt;/a&gt;).&lt;/p&gt;

&lt;h2 id=&quot;implementation-notes&quot;&gt;Implementation notes&lt;/h2&gt;

&lt;p&gt;As noted above, the main components of the form are a list of
radio-buttons, a textbox, and a submit button. Of particular note is the
way the radio-buttons are scripted and styled, and the structure of the
radio-button labels relative to the form’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;legend&amp;gt;&lt;/code&gt;. Further,
implementing the search this way requires that the server-side script be
able to handle the new field being passed its way appropriately.&lt;/p&gt;

&lt;h3 id=&quot;scripted-style&quot;&gt;Scripted style&lt;/h3&gt;

&lt;p&gt;For all users, the core functionality of the radio-buttons is available,
with these styled as an inline list for users with CSS enabled. The
JavaScript, when enabled, will simply add a class to the root of the
list, along with an extra &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;span&amp;gt;&lt;/code&gt; to allow styling of the labels in
accordance with the design. When the radio-buttons receive focus the
‘selected’ class is moved to the new selection. This activity takes
place on focus, mark you, and not click: click events fire on the
&lt;em&gt;originating&lt;/em&gt; control which, when navigating with the keyboard, will
mean the &lt;em&gt;previously selected&lt;/em&gt; radio-button.&lt;/p&gt;

&lt;h3 id=&quot;a-legend-in-its-own-life-time&quot;&gt;A &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;legend&amp;gt;&lt;/code&gt; in its own life-time&lt;/h3&gt;

&lt;p&gt;It was brought to my attention that a form’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;legend&amp;gt;&lt;/code&gt; will, by
default, be announced before each and every form field by screen
readers. To make this as unobtrusive as possible, each radio-button’s
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;label&amp;gt;&lt;/code&gt; is worded such that it makes the most possible sense when
preceded by the legend text. In English, for example, the radio-buttons
will be announced as ‘Search… the web’, ‘Search… for images’, and so
forth (where ‘Search’ is the form’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;legend&amp;gt;&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;The radio-buttons’ full text, though, would not make sense in a visual
context: they should be presented as tabs titled ‘Web’, ‘Images’, and so
on. To achieve this, the visually inappropriate portions of the
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;label&amp;gt;&lt;/code&gt; are wrapped in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;span&amp;gt;&lt;/code&gt;s and positioned outside the browser’s
viewport – along with the form’s legend and the radio-buttons
themselves – such that they may still be accessed by screen readers and
the like.&lt;/p&gt;

&lt;p&gt;Furthermore, because the radio-buttons are still present in the content
of the page, keyboard users may navigate the form fully through the
keyboard (using arrow keys to move between items radio-buttons in a
collection).&lt;/p&gt;

&lt;p&gt;&lt;ins&gt;Once again, this can all be seen in action on the new &lt;a href=&quot;http://uk.tv.yahoo.com/&quot;&gt;Yahoo! UK
and Ireland TV&lt;/a&gt; (along with &lt;a href=&quot;http://fr.tv.yahoo.com/&quot; title=&quot;Yahoo! France Télé&quot;&gt;France&lt;/a&gt;, &lt;a href=&quot;http://de.tv.yahoo.com/&quot; title=&quot;Yahoo! Deutschland TV&quot;&gt;Germany&lt;/a&gt;, &lt;a href=&quot;http://it.tv.yahoo.com/&quot; title=&quot;YahoO! Italia TV&quot;&gt;Italy&lt;/a&gt;, and &lt;a href=&quot;http://es.tv.yahoo.com/&quot; title=&quot;Yahoo! España TV&quot;&gt;Spain&lt;/a&gt;). [Links added at Mike’s
suggestion]&lt;/ins&gt;&lt;/p&gt;

&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;/h2&gt;

&lt;p&gt;I can by no means take full responsibility for the successful
implementation of this concept, though: I’d particularly like to thank
&lt;a href=&quot;http://cackhanded.net/&quot; title=&quot;Mark Norman Francis&apos;s Cackhanded.net&quot;&gt;Norm!&lt;/a&gt;, &lt;a href=&quot;http://www.isolani.co.uk/&quot; title=&quot;Mike Davies&apos;s isolani&quot;&gt;Mike Davies&lt;/a&gt;, &lt;a href=&quot;http://www.csensedesign.co.uk/&quot; title=&quot;Alex Lee: in the arms of strangers&quot;&gt;Alex Lee&lt;/a&gt; (our designer), &lt;a href=&quot;http://nefariousdesigns.co.uk/&quot; title=&quot;Tim Huegdon&apos;s Nefarious Designs&quot;&gt;Tim
Huegdon&lt;/a&gt;, and &lt;a href=&quot;http://www.pixeldiva.co.uk/&quot; title=&quot;Ann McMeekin: pixeldiva&quot;&gt;Ann McMeekin&lt;/a&gt; (of the &lt;a href=&quot;http://www.rnib.org.uk/&quot;&gt;RNIB&lt;/a&gt;) for all their
help, advice, and patience (particularly when I got things working and
made lots of excited noises at them), and this wouldn’t have ever been a
reality on Yahoo! TV for Europe if it hadn’t been for the receptive,
responsive attitude of the engineers working on Yahoo! Search for
Europe.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Grace</title>
    
    <link href="http://stevemarshall.com/journal/grace/"/>
    <published>2007-04-04T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/grace/</id>
    <content type="html">&lt;p&gt;Graceful degradation.&lt;/p&gt;

&lt;p&gt;Innocuous little phrase, isn’t it?&lt;/p&gt;

&lt;p&gt;If one takes a moment to consider it, however, the idea can be taken to
it’s logical conclusion: ‘You (or your browser) are incapable of
handling the full experience we want to present, so here’s a cut-down
version.’&lt;/p&gt;

&lt;p&gt;At its core, the mere concept of ‘graceful degradation’ belies a lack of
respect for one’s users and, more critically, a fundamental
misunderstanding of the medium in which we work.&lt;/p&gt;

&lt;p&gt;The fundamental building block of the web is not JavaScript. Nor is it
CSS. If your user experience relies on either of these, rather than
features native to HTML, then that user experience is fundamentally
flawed for use on the web.&lt;/p&gt;

&lt;p&gt;The key is to design user interactions with naught but HTML’s base
features in mind, later using CSS and JavaScript to enhance that
experience (most likely streamlining it or making it more efficient).
Done right, this enhancement can even be done in progressive levels,
based on the availability of given features in the browser.&lt;/p&gt;

&lt;p&gt;As a community, we coin phrases with nary a thought to deeper
connotations these might have. Under scrutiny, the idea of ‘graceful
degradation’ simply doesn’t align with user-centric design and
development.&lt;/p&gt;

&lt;p&gt;Progressive enhancement it is, then.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Unrelenting</title>
    
    <link href="http://stevemarshall.com/journal/unrelenting/"/>
    <published>2007-02-22T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/unrelenting/</id>
    <content type="html">&lt;p&gt;Where did the last six months go?&lt;/p&gt;

&lt;p&gt;It doesn’t seem like it was that long ago that I was &lt;a href=&quot;/journal/camp&quot; title=&quot;‘Camp’ on nascentguruism&quot;&gt;getting
excited&lt;/a&gt; in the build-up to &lt;a href=&quot;http://www.readingfestival.com/&quot; title=&quot;Reading Festival&quot;&gt;Reading&lt;/a&gt;, &lt;a href=&quot;http://barcamp.org/BarCampLondon&quot;&gt;BarCampLondon&lt;/a&gt;, and
&lt;a href=&quot;http://2006.dconstruct.org/&quot;&gt;d.Construct ‘06&lt;/a&gt; (all three of which were incredibly fun).&lt;/p&gt;

&lt;p&gt;Since then, I’ve managed to get a job at &lt;a href=&quot;http://uk.yahoo.com/&quot;&gt;Yahoo! Europe&lt;/a&gt; as a web
developer, become a regular at &lt;a href=&quot;http://pubstandards.co.uk/&quot;&gt;Pub Standards&lt;/a&gt;, &lt;a href=&quot;/journal/happy-new&quot; title=&quot;‘Happy New’ on nascentguruism&quot;&gt;launch a new
design&lt;/a&gt; for this site (and let it languish, despite my best
intentions), and attend a &lt;a href=&quot;http://barcamp.org/BarCampLondon2&quot; title=&quot;BarCampLondon2&quot;&gt;second BarCamp&lt;/a&gt;, as well as
going to various gigs (to name but a small fraction).&lt;/p&gt;

&lt;p&gt;I had thought that I’d experience a quick flurry of activity before
things returned to normal. How wrong I was: my definition of normal has
been altered to include working with some of the &lt;a href=&quot;http://cackhanded.net/&quot; title=&quot;Norm!, King of the Britons&quot;&gt;best&lt;/a&gt;,
&lt;a href=&quot;http://nefariousdesigns.co.uk/&quot; title=&quot;Tim Huegdon&quot;&gt;brightest&lt;/a&gt;, and &lt;a href=&quot;http://setmajer.com/&quot; title=&quot;Chris Fucking Kaminski&quot;&gt;most influential&lt;/a&gt; people I could
ever care to work with, having an influence on potentially thousands of
people’s browsing experiences, almost 4 hours of commuting every day
(most of which is spent on public transport), and a general feeling of
awe at everything my life has become in this short period of time.&lt;/p&gt;

&lt;p&gt;Everything seems to be happening at an unrelenting pace now:
&lt;a href=&quot;http://2007.sxsw.com/&quot;&gt;SxSW07&lt;/a&gt; is just around the corner, &lt;a href=&quot;http://www.vivabit.com/atmedia2007/&quot; title=&quot;@media 2007&quot;&gt;@media&lt;/a&gt; won’t be far
behind that, with d.Construct ‘07 sure to follow. BarCamps will probably
be plentiful this year, too, and I’m going to try to go to &lt;a href=&quot;http://www.readingfestival.com/&quot; title=&quot;Reading Festival&quot;&gt;Reading&lt;/a&gt;
again, as well as (hopefully) taking an &lt;a href=&quot;http://www.outwardbound.org.uk/Individual/Expeditions/WelshExpedition.htm&quot;&gt;Outward Bound
‘adventure’&lt;/a&gt;. Because of this I’m making loads of new
friends and seeing old ones more often, too.&lt;/p&gt;

&lt;p&gt;I’m busy as hell, but I couldn’t be happier.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Five</title>
    
    <link href="http://stevemarshall.com/journal/five/"/>
    <published>2007-01-11T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/five/</id>
    <content type="html">&lt;p&gt;How, exactly, does one write a post that purports to list ‘five things
&lt;em&gt;you&lt;/em&gt; don’t know about me’?&lt;/p&gt;

&lt;p&gt;No matter how it’s written, &lt;em&gt;someone&lt;/em&gt; out there will probably already
know most–if not all–of the items (hi, Mum!). Should it be written for
&lt;a href=&quot;http://www.sarahblow.com/&quot; title=&quot;Sarah Blow&quot;&gt;the person&lt;/a&gt; &lt;a href=&quot;http://girlygeekdom.blogspot.com/2007/01/5-things-you-probably-dont-know-about.html&quot; title=&quot;Sarah Blow&apos;s Girly Geekdom Blog:5 Things You (probably) don&apos;t know about [Sarah]....&quot;&gt;asking the question&lt;/a&gt;, in
which case it might be a different list to that offered to new friends
which, in turn, might be different to that offered to fresh visitors
from search engines. Maybe I’m just over-thinking the whole thing.&lt;/p&gt;

&lt;p&gt;To make this a little more interesting (for me, at least) I’m going to
change the game a little and write in detail about one thing (and one
that I often have to explain, at that), along with a shorter list of a
further four things.&lt;/p&gt;

&lt;h2 id=&quot;non-alcoholic&quot;&gt;Non-alcoholic&lt;/h2&gt;

&lt;p&gt;For seven years or so, I’ve abstained from drinking alcohol.&lt;/p&gt;

&lt;p&gt;Yes, you read that correctly: a 24 year-old guy that doesn’t drink. No
need to alert the media.&lt;/p&gt;

&lt;p&gt;On a friend’s birthday (I believe it was his 18th), all those years ago,
I got heinously drunk. A &lt;em&gt;bottle of Bacardi, bottle of Jack Daniels,
multiple lagers, and an amount of vodka by 10 o’clock and being unable
to recall the rest of the drinks consumed until midnight&lt;/em&gt; kind of drunk.&lt;/p&gt;

&lt;p&gt;Needless to say, I stumbled back home (which, thankfully, was just
around the corner) by about midnight and after attempting to sleep
and—being troubled by the fact that my room had, apparently, been
relocated to a turntable—decided that being violently sick with my
head down the toilet for the next six hours was a smart course of
action.&lt;/p&gt;

&lt;p&gt;Over the next two days, I came to the conclusion that taking a break
from alcohol was a good idea. I never intended this break to last very
long–much like anyone with an awful hangover–but I held out for a week
or two. The next thing I knew, it was a year later and I was telling
this story to new friends at &lt;a href=&quot;http://www.surrey.ac.uk/&quot; title=&quot;University of Surrey&quot;&gt;university&lt;/a&gt;. 7 years on, and I still
don’t drink.&lt;/p&gt;

&lt;p&gt;I’m often asked if I miss it, or if I’d consider drinking again. I’ve
certainly thought about drinking again, but every time I find myself
wondering exactly what I’d gain from it. Who knows: maybe one day I’ll
give drinking another try.&lt;/p&gt;

&lt;h2 id=&quot;and-the-rest&quot;&gt;…and the rest&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;I wasn’t always a rabid &lt;a href=&quot;http://apple.com/&quot; title=&quot;Apple Inc.&quot;&gt;Apple&lt;/a&gt; fan: there was a time that I
ridiculed a &lt;a href=&quot;http://en.wikipedia.org/wiki/Ibook#iBook_.28.22Clamshell.22.29&quot; title=&quot;iBook &amp;quot;Clamshell&amp;quot; on Wikipedia&quot;&gt;clamshell-iBook&lt;/a&gt;-toting friend for his ‘toy’ computer,
with its one-button mouse. It took membership—and ultimately
becoming an Admin—at &lt;a href=&quot;http://aqua-soft.org/&quot;&gt;Aqua-Soft&lt;/a&gt; to turn me into the Apple-lover
I am today.&lt;/p&gt;

    &lt;p&gt;During this time, I made an &lt;a href=&quot;http://www.deviantart.com/deviation/3077318/&quot; title=&quot;iTunes 4 For Windows Media Player 9&quot;&gt;iTunes skin for Windows Media Player
9&lt;/a&gt;. And then Apple released &lt;a href=&quot;http://apple.com/itunes/&quot;&gt;iTunes&lt;/a&gt; for Windows about 2
months later. And then &lt;a href=&quot;http://www.flickr.com/photos/steviebm/sets/358672/&quot; title=&quot;The day the Mac invaded, a flickr photoset by Stevie BM&quot;&gt;I finally got a Mac of my own&lt;/a&gt;.
&lt;a href=&quot;http://www.flickr.com/photos/steviebm/sets/960054/&quot; title=&quot;The day the other Mac decided to join the party, a flickr photoset by Stevie BM&quot;&gt;And another&lt;/a&gt;. &lt;a href=&quot;http://twitter.com/SteveMarshall/statuses/1065293&quot; title=&quot;&amp;quot;Steve has his MacBook Pro at long last&amp;quot; on Twitter&quot;&gt;And another&lt;/a&gt;
(although, technically, that’s a machine owned by Yahoo!).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;Climbing is the only sport that I have any interest in. I haven’t
done any outdoor climbing yet—much to my chagrin—and have always
been tempted to go on an &lt;a href=&quot;http://www.outwardbound.org.uk/Individual/Expeditions/WelshExpedition.htm&quot;&gt;Outward Bound ‘adventure’&lt;/a&gt;
but haven’t managed to… yet.&lt;/li&gt;
  &lt;li&gt;Thanks to my GCSE in Art (or rather, my GCSE Art teacher), I found
myself unable to draw, design, or even so much as &lt;em&gt;doodle&lt;/em&gt; until I
was at university (thanks, in no small part, to design blogs). Even
now, I find it hard to do (but I’d like to think that I’m getting
better at design).&lt;/li&gt;
  &lt;li&gt;I &lt;em&gt;adore&lt;/em&gt; food and cooking. Flavours and the science of food—and
their application—are an eternal source of interest for me. I could
happily spend days investigating and experimenting in the kitchen. I
doubt I’m particularly &lt;em&gt;talented&lt;/em&gt;, but I’d like to think I can at
least cook &lt;em&gt;well&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;pass&quot;&gt;Pass&lt;/h2&gt;

&lt;p&gt;Rather than passing this on to &lt;a href=&quot;http://ben-ward.co.uk/&quot; title=&quot;Ben Ward&quot;&gt;the&lt;/a&gt; &lt;a href=&quot;http://fberriman.com/&quot; title=&quot;Frances Berriman&quot;&gt;usual&lt;/a&gt;
&lt;a href=&quot;http://fatbusinessman.com/&quot; title=&quot;David &amp;quot;Fatty&amp;quot; Thompson&quot;&gt;suspects&lt;/a&gt; (who are, incidentally, &lt;em&gt;very&lt;/em&gt; suspect—and
welcome to take this as passing to them, if they like), I thought I’d
try to pass this on to a different bunch:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://dkeithrobinson.com/&quot;&gt;D. Keith Robinson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://superfluousbanter.org/&quot;&gt;Dan Rubin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://joshuaink.com/&quot;&gt;John Oxton&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://hicksdesign.co.uk/&quot;&gt;Jon Hicks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cackhanded.net/&quot; title=&quot;Mark Norman Francis&quot;&gt;Norm!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <title>Happy New</title>
    
    <link href="http://stevemarshall.com/journal/happy-new/"/>
    <published>2007-01-02T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/happy-new/</id>
    <content type="html">&lt;p&gt;Since the day it was launched, &lt;a href=&quot;/&quot;&gt;nascentguruism&lt;/a&gt; was forsaken. When I
started designing it, I had a limited understanding of design and so
faced a massive learning curve. Because of this, most of my efforts went
into working out how to translate the concepts and feelings I wanted to
convey into a working site, along with understanding how to achieve what
I wanted in the tools I was using (Photoshop).&lt;/p&gt;

&lt;p&gt;In hindsight, it’s entirely logical that the first version of
nascentguruism’s design would turn out to be everything I made it and
nothing I wanted it to be: I was learning about design by observing and
experimenting, and so would quickly lose focus on the overall design,
becoming preoccupied with whatever details I wanted to introduce at that
moment in time.&lt;/p&gt;

&lt;p&gt;After ten months’ toil, the site &lt;a href=&quot;/journal/the-inaugural-journal-entry/&quot;&gt;launched with a whimper&lt;/a&gt;
and, because of the shoehorning that had taken place to include all the
extra details, I quickly became jaded: the format of the site didn’t
appeal to me, and so I was unwilling to write. As time passed, my
interest waned.&lt;/p&gt;

&lt;h2 id=&quot;lather-rinse-repeat&quot;&gt;Lather, Rinse, Repeat&lt;/h2&gt;

&lt;p&gt;Shortly after &lt;a href=&quot;http://2006.sxsw.com/&quot;&gt;SxSW&lt;/a&gt; in March–around June, if memory serves–I
was inspired to play with some ideas for a redesign of nascentguruism.&lt;/p&gt;

&lt;p&gt;Rather than pressuring myself to continue working solidly until it was
ready to launch–as I had with the initial ten-month design–I decided
simply to get all my ideas down &lt;del&gt;on paper&lt;/del&gt; &lt;ins&gt;into a
PSD&lt;/ins&gt; before taking time to mull over what I’d come up with. After a
while, I’d start anew, creating a design from scratch, building
upon–or, in some cases, replacing–what I’d done in the last iteration.&lt;/p&gt;

&lt;p&gt;This process continued until mid-October, when I finally felt that the
design could go no further without transitioning to markup. Throughout,
I refused to do any work–design or markup– unless I was compelled to
do so.&lt;/p&gt;

&lt;p&gt;I think this relaxed approach to the design and implementation has
served me twofold: the design and implementation was less forced, and so
the final site has a more relaxed, open feel to it, and this design is
something I positively want to work with, to the point that I’m
practically &lt;em&gt;itching&lt;/em&gt; to post new content to it (and have been for the
last month). Further, the iterative, throwaway-prototype approach to
designing allowed me to incorporate new ideas effectively, without
compromising the design as much as I might before.&lt;/p&gt;

&lt;h3 id=&quot;typography&quot;&gt;Typography&lt;/h3&gt;

&lt;p&gt;One of my primary focuses in this new design was to experiment with
typography, using some of the ideas gleaned from reading Robert
Bringhurst’s ‘&lt;a href=&quot;http://www.amazon.co.uk/Elements-Typographic-Style-Robert-Bringhurst/dp/0881791326/&quot;&gt;The Elements of Typographic Style&lt;/a&gt;’ and working
with &lt;a href=&quot;http://clagnut.com/&quot; title=&quot;Rich Rutter&quot;&gt;Rich&lt;/a&gt; on &lt;a href=&quot;http://webtypography.net/&quot;&gt;Web Typography&lt;/a&gt;. I’ve tried to blend more
widely used ideas (like working with &lt;a href=&quot;http://webtypography.net/Rhythm_and_Proportion/Vertical_Motion/2.2.2/&quot; title=&quot;Web Typography §2.2.2: Add and delete vertical space in measured intervals&quot;&gt;vertical rhythm&lt;/a&gt; using
&lt;a href=&quot;/journal/happy-new?show=baselines&quot; title=&quot;View this page with baselines visible&quot;&gt;baselines&lt;/a&gt;) and more playful ones (like &lt;a href=&quot;http://webtypography.net/Rhythm_and_Proportion/Blocks_and_Paragraphs/2.3.2/&quot; title=&quot;Web Typography §2.3.2: In continuous text mark all paragraphs after the first with an indent of at least one en&quot;&gt;ornamented indentation&lt;/a&gt;), and will continue to experiment and integrate ideas put forth
in Web Typography.&lt;/p&gt;

&lt;p&gt;Some of these experiments are very reliant on using modern CSS
techniques, such as &lt;a href=&quot;http://www.w3.org/TR/CSS21/generate.html&quot; title=&quot;CSS 2.1 §12: Generated content, automatic numbering, and lists&quot;&gt;generated content&lt;/a&gt; and &lt;a href=&quot;http://www.w3.org/TR/CSS21/selector.html#q20&quot; title=&quot;CSS 2.1 §5.12: Selectors (Pseudo-elements)&quot;&gt;pseudo-elements&lt;/a&gt; and,
as such, may not display as expected on all browsers (Internet Explorer,
I’m looking at &lt;em&gt;you&lt;/em&gt;). Further, most of the font-size-related typography
has been optimised for WebKit-based browsers on Mac OS X and, as such,
there may be sizing issues with other platforms or browsers. Or maybe
not. Everything should be &lt;em&gt;usable&lt;/em&gt;, at the very least.&lt;/p&gt;

&lt;h3 id=&quot;style&quot;&gt;Style&lt;/h3&gt;

&lt;p&gt;As it stands, the CSS is very clearly showing signs of the hap-hazard
approach I took to developing it; in the very near future, I plan to
rework it–possibly using &lt;a href=&quot;http://developer.yahoo.com/yui/&quot;&gt;YUI&lt;/a&gt; &lt;a href=&quot;http://developer.yahoo.com/yui/reset/&quot;&gt;reset&lt;/a&gt; and &lt;a href=&quot;http://developer.yahoo.com/yui/fonts/&quot;&gt;fonts&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;support&quot;&gt;Support&lt;/h2&gt;

&lt;p&gt;I couldn’t have achieved everything I have in this redesign if it
weren’t for the help of a two notable individuals:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://antonpeck.com/&quot; title=&quot;Anton Peck&quot;&gt;Anton&lt;/a&gt; was a constant source of inspiration and has the
patience of a monk, answering all my design questions–no matter how
inane–with nary a complaint.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ben-ward.co.uk/&quot; title=&quot;Ben Ward&quot;&gt;Ben&lt;/a&gt; put up with my badgering for opinions on this or that
markup quandary, and seemed to delight in challenging me to get the
ideal markup working in whatever layout I was attempting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These two deserve more gratitude than I can express here–or in beer
form–thank-you both.&lt;/p&gt;

&lt;p&gt;There are, however, others that have supported me throughout the
process, who also deserve thanks:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://allinthehead.com/&quot; title=&quot;Drew McLellan&quot;&gt;Drew&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://kurafire.net/&quot; title=&quot;Faruk Ateş&quot;&gt;Faruk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://fatbusinessman.com/&quot; title=&quot;David &amp;quot;Fatty&amp;quot; Thompson&quot;&gt;Fatty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://fberriman.com/&quot; title=&quot;Frances Berriman&quot;&gt;Fran&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cackhanded.net/&quot; title=&quot;Mark Norman Francis&quot;&gt;Norm!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://pe8er.net/&quot; title=&quot;Piotr Gajos&quot;&gt;Piotr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://clagnut.com/&quot; title=&quot;Rich Rutter&quot;&gt;Rich&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fin&quot;&gt;&lt;em&gt;Fin&lt;/em&gt;?&lt;/h2&gt;

&lt;p&gt;nascentguruism is far from complete–during this redesign, I’ve come up
with many, many ideas for future work on the design and implementation.
Most importantly, however, I have a renewed excitement for blogging and
a few ideas for future posts in mind.&lt;/p&gt;

&lt;p&gt;Only time will tell if it lasts, I suppose.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Just my type</title>
    
    <link href="http://stevemarshall.com/journal/just-my-type/"/>
    <published>2006-09-29T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/just-my-type/</id>
    <content type="html">&lt;p&gt;Last December, &lt;a href=&quot;http://clagnut.com/&quot; title=&quot;Richard Rutter&apos;s Clagnut.com&quot;&gt;Rich Rutter&lt;/a&gt; announced &lt;a href=&quot;http://webtypography.net/&quot; title=&quot;The Elements of Typographic Style Applied to the Web&quot;&gt;The Elements of Typographic
Style Applied to the Web&lt;/a&gt; (&lt;a href=&quot;http://webtypography.net/&quot; title=&quot;The Elements of Typographic Style Applied to the Web&quot;&gt;Web Typography&lt;/a&gt;, for
short), a site that, for me, couldn’t have been more timely: I was just
finishing reading the last chapters of Robert Bringhurst’s master-work,
&lt;a href=&quot;http://www.amazon.co.uk/Elements-Typographic-Style/dp/0881792055/&quot; title=&quot;Robert Bringhurst&apos;s &apos;The Elements of Typographic Style&apos; (Hardcover) on Amazon UK&quot;&gt;The Elements of Typographic Style&lt;/a&gt;, the site’s inspiration.&lt;/p&gt;

&lt;p&gt;Just as the book itself was beautifully set (as one would expect), well
written, entertaining, and generally a joy to behold, the same can be
said of Web Typography. From the subtle use of Flash for the logotype to
the carefully set table of contents, everything about the site reeks of
typographic quality, its own distinct style echoing that of the original
Elements.&lt;/p&gt;

&lt;p&gt;The purpose of Web Typography, of course, was not to &lt;em&gt;supplant&lt;/em&gt; Elements
as the definitive resource for typography - “the Typographers’ Bible”,
in the words of &lt;cite&gt;Herman Zapf&lt;/cite&gt;  - but rather to &lt;em&gt;supplement&lt;/em&gt;
it: to act as an unofficial companion for those working with type on the
web.&lt;/p&gt;

&lt;p&gt;It is with much excitement, then, that I’m announcing what will,
hopefully, mark the start of a trend: my first contributions to Web
Typography, &lt;a href=&quot;http://webtypography.net/Rhythm_and_Proportion/Blocks_and_Paragraphs/2.3.1/&quot;&gt;§2.3.1: Set opening paragraphs flush left&lt;/a&gt; and
&lt;a href=&quot;http://webtypography.net/Rhythm_and_Proportion/Blocks_and_Paragraphs/2.3.2/&quot;&gt;§2.3.2: In continuous text, mark all paragraphs after the first with an
indent of at least one en&lt;/a&gt;, have been published.&lt;/p&gt;

&lt;p&gt;I’d like to thank Rich for the opportunity to be involved: he’s been
incredibly supportive of my contributions. Like Rich, I’m not a
professional typographer (or, in fact, anything more than ‘a guy who has
an interest in typography’) but I’d like to hope that, with my
contributions, I can help someone out there fall in love with typography
and, more specifically, its applications online. If just one person
learns to love typography a little more thanks to something I
contribute, I’ll be happy.&lt;/p&gt;

&lt;p&gt;So, I hope you enjoy what I hope will be the first of many contributions
I make to &lt;a href=&quot;http://webtypography.net/&quot; title=&quot;The Elements of Typographic Style Applied to the Web&quot;&gt;Web Typography&lt;/a&gt;!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://webtypography.net/Rhythm_and_Proportion/Blocks_and_Paragraphs/2.3.1/&quot;&gt;§2.3.1: Set opening paragraphs flush left&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://webtypography.net/Rhythm_and_Proportion/Blocks_and_Paragraphs/2.3.2/&quot;&gt;§2.3.2: In continuous text, mark all paragraphs after the first with
an indent of at least one en&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <title>Camp</title>
    
    <link href="http://stevemarshall.com/journal/camp/"/>
    <published>2006-08-10T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/camp/</id>
    <content type="html">&lt;p&gt;When I was &lt;a href=&quot;http://www.millchase.hants.sch.uk/&quot; title=&quot;Mill Chase Community School&quot;&gt;progressing&lt;/a&gt; &lt;a href=&quot;http://www.altoncollege.ac.uk/&quot; title=&quot;Alton College&quot;&gt;through&lt;/a&gt;
&lt;a href=&quot;http://www.surrey.ac.uk/&quot; title=&quot;University of Surrey&quot;&gt;education&lt;/a&gt;, September was, naturally, a very busy time of year,
with new starts and changes to the way my time was squandered: more
homework, less homework, more socialising, less socialising, more free
time, less free time. Generally, Septembers would set the tone for the
rest of the year.&lt;/p&gt;

&lt;p&gt;Since entering the real world, these flurries of activity seem to occur
far more irregularly but this year is refreshingly different, with
September being marked once more by a flurry of activity, much of which
is an indicator (hopefully) of how the coming year will shape up.&lt;/p&gt;

&lt;p&gt;The back-to-&lt;del&gt;school&lt;/del&gt;&lt;ins&gt;cool&lt;/ins&gt; build-up starts with
&lt;a href=&quot;http://www.readingfestival.com/&quot;&gt;Reading&lt;/a&gt;, over the last weekend of August. Whilst
I’ve been to a fair few gigs, I’ve never been to Reading Festival before
and I’m getting pretty excited about it now. Granted, some of the acts
I’d been hoping to see have &lt;a href=&quot;http://www.meanfiddler.com/displayPage_reading.asp?ArticleID=3041&amp;amp;URLID=67&quot; title=&quot;Audioslave pull out of Reading &amp;amp; Leeds Festivals&quot;&gt;pulled out&lt;/a&gt; or simply
&lt;a href=&quot;http://www.thebronxxx.com/&quot; title=&quot;The Bronx&quot;&gt;weren’t going&lt;/a&gt; this year, but it still looks like there’s a
&lt;a href=&quot;http://www.meanfiddler.com/displayPage_reading.asp?ArticleID=1358&amp;amp;URLID=67&quot; title=&quot;Reading Festival line-up&quot;&gt;decent line-up&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Then we enter September, and the web-standards conference year kicks off
with a quick one-two punch of &lt;a href=&quot;http://barcamp.org/BarCampLondon&quot;&gt;BarCamp London&lt;/a&gt; and &lt;a href=&quot;http://2006.dconstruct.org/&quot;&gt;d.Construct
2006&lt;/a&gt;. d.Construct 2005 was my first web-standards conference and, if
last year - along with the &lt;a href=&quot;http://2006.dconstruct.org/schedule/&quot;&gt;line-up for this year&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;is anything to go by, this year should be stellar.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;What is &lt;a href=&quot;http://barcamp.org/BarCampLondon&quot;&gt;BarCampLondon&lt;/a&gt;? Think of it as a way
to get the tech/geek community together in London at the end of
the summer. What will happen during the event? Only one thing is
certain: It’s up to you to decide. The most important thing you should
take away from the event? Relationships with other geeks!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This openness permeates every facet of the ‘conference’: rather than a
formal gathering at a conference venue, with all the attendees staying
in the local swanky hotel at great expense, BarCampers are expected to
bring a sleeping bag and pillow, and all find somewhere to camp at the
venue. This, to me, is incredible: I’ve often said (although obviously
not on nascentguruism, what with not posting much) that the biggest
reason for attending any conference is the social aspect.&lt;/p&gt;

&lt;p&gt;Add to that the idea that first-timers are &lt;em&gt;expected&lt;/em&gt; to contribute
(usually by way of presenting something or leading a discussion), and
things really start getting exciting. This entirely demolishes the
established ‘get an industry figurehead to talk from a pedestal’
approach: everyone is equal, and everyone has something to contribute.&lt;/p&gt;

&lt;p&gt;And so I’ve landed my first public speaking gig.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Where was I?</title>
    
    <link href="http://stevemarshall.com/journal/where-was-i/"/>
    <published>2006-05-02T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/where-was-i/</id>
    <content type="html">&lt;p&gt;Apparently, &lt;a href=&quot;http://www.ellythompson.co.uk/blog/2006/04/23/where-was-i/&quot;&gt;Elly tagged me&lt;/a&gt; with this ‘where was I?’ meme,
so I suppose I ought to follow it up:&lt;/p&gt;

&lt;h2 id=&quot;where-was-i-one-year-ago&quot;&gt;Where was I… one year ago?&lt;/h2&gt;

&lt;p&gt;This time last year, I was working with &lt;a href=&quot;http://ben-ward.co.uk/&quot;&gt;Ben&lt;/a&gt; at &lt;a href=&quot;http://www.fujitsu-siemens.com/&quot;&gt;Fujitsu Siemens
Computers&lt;/a&gt;. As Ben &lt;a href=&quot;http://ben-ward.co.uk/journal/where-was-i/&quot;&gt;noted&lt;/a&gt;, we would have been
working on a Microsoft-SharePoint-based document management system.
Unfortunately for Ben and I (and our other team-mate, Steve Hayter, who
appears to have fallen off the face of the earth), we had short
deadlines and large workloads.&lt;/p&gt;

&lt;p&gt;As such, we were working long hours on hard problems, pushing one
another to our mental limits. I recall one week in particular that I
worked something in the region of seventy hours in five days. As one
could imagine, trying to push my friends to work this way was a double
edged sword: I wanted the work to be done, but I also didn’t want to
have to make Ben and Steve do the stupid hours it would require.&lt;/p&gt;

&lt;h2 id=&quot;where-was-i-five-years-ago-or-how-to-make-steve-feel-old&quot;&gt;Where was I… five years ago? (or ‘How to make Steve feel old’)&lt;/h2&gt;

&lt;p&gt;It took me a while to work this one out, but it seems that five years
ago I would have been coming to the end of my first year at
&lt;a href=&quot;http://www.surrey.ac.uk/&quot; title=&quot;University of Surrey&quot;&gt;university&lt;/a&gt;. I’d met a bunch of people I now feel privileged
enough to call my closest friends, spent lots of time avoiding work, and
generally doing what university students do (well, other than the
getting dangerously drunk part).&lt;/p&gt;

&lt;h2 id=&quot;where-was-i-ten-years-ago-or-how-to-make-steve-feel-really-old&quot;&gt;Where was I… ten years ago? (or ‘How to make Steve feel &lt;em&gt;really&lt;/em&gt; old’)&lt;/h2&gt;

&lt;p&gt;I was coming up to the ripe old age of fourteen and would have been in
year nine at &lt;a href=&quot;http://www.millchase.hants.sch.uk/&quot;&gt;Mill Chase Community School&lt;/a&gt;, four months from
starting my GCSEs. I wasn’t big but, for my age, I might have been
clever.&lt;/p&gt;

&lt;h2 id=&quot;who-am-i-tagging&quot;&gt;Who am I tagging?&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://mindthe.net/badger/&quot; title=&quot;Jonathan Relf&quot;&gt;Jon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.sober-productions.com/&quot; title=&quot;Paul Park&quot;&gt;Paul&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;That’s it: I’m lazy.&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <title>Mac OS X Keyboard Layouts on Windows</title>
    
    <link href="http://stevemarshall.com/journal/mac-os-x-keyboard-layouts-on-windows/"/>
    <published>2006-03-19T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/mac-os-x-keyboard-layouts-on-windows/</id>
    <content type="html">&lt;p&gt;A while back, &lt;a href=&quot;http://ben-ward.co.uk/&quot;&gt;Ben&lt;/a&gt; was trying to replicate &lt;a href=&quot;http://ben-ward.co.uk/journal/macosx_typography_on_windows/&quot; title=&quot;Ben Ward&apos;s post on Mac OS X Typography in Windows&quot;&gt;certain keyboard niceties
from the wonderful Mac OS X&lt;/a&gt; in Windows. As a fellow
&lt;del&gt;superhero with an alter ego&lt;/del&gt;&lt;ins&gt;Mac user by night, Windows
user by day&lt;/ins&gt; and utter pedant, I was intrigued, so decided to dig
further into the problem.&lt;/p&gt;

&lt;h2 id=&quot;microsoft-keyboard-layout-creator&quot;&gt;Microsoft Keyboard Layout Creator&lt;/h2&gt;

&lt;p&gt;The &lt;a href=&quot;http://www.microsoft.com/globaldev/tools/msklc.mspx&quot;&gt;Microsoft Keyboard Layout Creator&lt;/a&gt; seems the most obvious
option to start with: it allows re-mapping of all of the standard keys
on a keyboard (all the way across to the return key), along with the use
of any of the Windows modifiers (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Ctrl&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Shift&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AltGr&lt;/code&gt; - which is
the same as pressing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Ctrl&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Alt&lt;/code&gt; together; apparently &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Alt&lt;/code&gt; isn’t
considered a “Shift state” by the Keyboard Layout Creator)&lt;/p&gt;

&lt;p&gt;It’s easy enough to get most of the way to Mac OS X keyboard goodness:
one can assign whatever characters to keys as one sees fit, assign
values for the aforementioned modifiers, and generally make some pretty
cool changes to your keyboard layout. This lets us get most of the way
towards the dream of proper, nice OS X typography on Windows: you can
rearrange the standard keyboard, set up &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AltGr&lt;/code&gt; to behave like the
Mac’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Opt&lt;/code&gt; with lots of keys, and generally get most of the real
niceness in OS X done, and using native Windows functionality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Warning: the following will almost certainly make the characters
shown on your keyboard not match those they produce in Windows (unless
you use Windows through Virtual PC on Mac OS X, in which case they will
match more). If you have to look at the keys to remember which is
which, using this is not advised. I cannot be held responsible for you
breaking/being unable to use your computer if you use this.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To save everyone the time and effort, however, I’ve already made &lt;a href=&quot;/files/posts/mac-os-x-keyboard-layouts-on-windows/MacOSUK.zip&quot; title=&quot;Mac OS X keyboard layout for Windows&quot;&gt;a
keyboard layout for Windows&lt;/a&gt;. To install the new
layout, simply unzip the file and run the contained MacOSUK.msi. To then
set the layout up for use, go to Control Panel&amp;gt;Regional and Language
Options&amp;gt;Languages, click Details…, then click Add…, and set ‘Input
Language’ to ‘English (United Kingdom)’ and ‘Keyboard layout/IME’ to
‘United Kingdom (Mac OS X)’. Click Ok, and then Apply.&lt;/p&gt;

&lt;p&gt;With this, the Windows language bar should appear on your task bar. You
can then switch between United Kingdom (Mac OS X) keyboard and whatever
other keyboard layout you so choose. Alternatively, you could remove
other keyboard layouts in the ‘Text Service and Input Languages’ (the
one where you added the new layout), making the new Mac OS X style
layout your default (and hiding the language bar).&lt;/p&gt;

&lt;h2 id=&quot;accent-chords&quot;&gt;Accent chords&lt;/h2&gt;

&lt;p&gt;The one thing that this doesn’t cover, though, is the neat little
tricks you can do in Mac OS X to create characters like ñ: hold &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Opt&lt;/code&gt;
and press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;n&lt;/code&gt; followed by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;n&lt;/code&gt; on its own, along with various others of
a similar ilk.&lt;/p&gt;

&lt;p&gt;Here is where &lt;a href=&quot;http://www.autohotkey.com/&quot;&gt;AutoHotKey&lt;/a&gt;, that Ben mentioned, comes in: you can
specify character replacement strings which are identified as you type
(think auto-correct for letters). The observant members of the audience
will already be thinking to themselves ‘but didn’t you just link to a
homebrew keyboard layout to make our Windows keyboards just like those
on the Mac, save a few keys?’&lt;/p&gt;

&lt;p&gt;Why yes I did Billy, yes I did.&lt;/p&gt;

&lt;p&gt;With a combination of AutoHotKey and our Mac-esque keyboard layout, we
can have almost identical input on Mac and Windows, save the need, on
Windows, to use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AltGr&lt;/code&gt; in lieu of the Mac’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Opt&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Once again, because I’ve more time on my hands than is necessarily
healthy, I’ve already made &lt;a href=&quot;/files/posts/mac-os-x-keyboard-layouts-on-windows/AHKChords.txt&quot; title=&quot;Mac OS X accent chords for AutoHotKey on Windows&quot;&gt;an AutoHotKey script for most of the easier
accent chords&lt;/a&gt;. Notably absent are grave chords (due to what
appears to be a bug in AutoHotKey’s Unicode handling, I felt compelled
to leave them commented out) and all those chords that create characters
with no extended-ASCII value.&lt;/p&gt;

&lt;p&gt;To use it, install and run AutoHotKey, right-click the system tray icon
and select ‘Edit This Script’. Copy and paste the contents of my script
into this script (either overwrite or append it), save, and select
‘Reload This Script’ from the menu of AutoHotKey’s system tray icon.&lt;/p&gt;

&lt;h2 id=&quot;thats-all-folks&quot;&gt;That’s all, folks!&lt;/h2&gt;

&lt;p&gt;By this point, you should have Mac OS X style text input on your humble
Windows computer. The only thing that’s missing now is switching the
modifier keys so that they’re all laid out like the Mac but, thus far,
I’ve not found any program that successfully achieves that. I’ll let you
know when I do.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Suckswee</title>
    
    <link href="http://stevemarshall.com/journal/suckswee/"/>
    <published>2006-03-07T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/suckswee/</id>
    <content type="html">&lt;p&gt;Apparently it’s nearly time for &lt;a href=&quot;http://blog.fatbusinessman.com/&quot; title=&quot;David Thompson&apos;s blog, FatBusinessman.com&quot;&gt;Fatty&lt;/a&gt; and me to make our way to
&lt;a href=&quot;http://2006.sxsw.com/&quot;&gt;SXSWi ‘06&lt;/a&gt;. Tomorrow (Wednesday) morning, we’ll be leaving my
house at some ungodly hour and heading to Gatwick, to fly with
&lt;a href=&quot;http://www.continental.com/&quot;&gt;Continental&lt;/a&gt; to Austin, via Houston.&lt;/p&gt;

&lt;p&gt;As Fatty &lt;a href=&quot;http://blog.fatbusinessman.com/archives/2006/03/06/suckswee/&quot;&gt;mentioned&lt;/a&gt;, we’ll probably be spending some of
the flight working out how we’re going to spend our time in Austin.
Thanks to the wonders of &lt;a href=&quot;http://www.sitesucker.us/&quot;&gt;SiteSucker&lt;/a&gt;, I have details for all the
goings-on throughout the week direct from the SXSW site and loaded onto
my iBook. The only certainty at this point is that we plan on spending
Monday night &lt;a href=&quot;http://bowling.avalonstar.com/&quot;&gt;fiddling with some shiny balls&lt;/a&gt; with the likes of
&lt;a href=&quot;http://molly.com/&quot;&gt;The Molly&lt;/a&gt; (who is our team’s official cheerleader, apparently),
&lt;a href=&quot;http://kurafire.net/&quot;&gt;Faruk&lt;/a&gt; (our team captain), &lt;a href=&quot;http://7nights.com/asterisk&quot; title=&quot;D. Keith Robinson&quot;&gt;Da Keith&lt;/a&gt; (a team-mate), and
&lt;a href=&quot;http://9rules.com/whitespace&quot; title=&quot;Paul Scrivens&quot;&gt;many&lt;/a&gt;, &lt;a href=&quot;http://mikeindustries.com/&quot; title=&quot;Mike Davidson&quot;&gt;many&lt;/a&gt; &lt;a href=&quot;http://mezzoblue.com/&quot; title=&quot;Dave Shea&quot;&gt;more&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you’re going to be at Suckswee, take a look at my &lt;a href=&quot;/about/&quot;&gt;about page&lt;/a&gt;,
remember my face, and either try to avoid me like the plague (which I’d
heartily recommend, if you value your sanity) or grab me and say ‘hi’.&lt;/p&gt;

&lt;p&gt;I’d prefer the latter.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Four Things</title>
    
    <link href="http://stevemarshall.com/journal/four-things/"/>
    <published>2006-01-23T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/four-things/</id>
    <content type="html">&lt;p&gt;Apparently, Ben’s poked &lt;a href=&quot;http://ben-ward.co.uk/journal/four-things/&quot; title=&quot;Ben Ward&apos;s Four Things&quot;&gt;another meme&lt;/a&gt; in my direction.
Without further ado, here are my lists:&lt;/p&gt;

&lt;h2 id=&quot;four-jobs-ive-had-in-my-life&quot;&gt;Four jobs I’ve had in my life&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Petrol-station assistant&lt;/li&gt;
  &lt;li&gt;Checkout supervisor&lt;/li&gt;
  &lt;li&gt;Technology analyst&lt;/li&gt;
  &lt;li&gt;Information systems developer&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;four-movies-i-can-watch-over-and-over&quot;&gt;Four movies I can watch over and over&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Lethal Weapon&lt;/li&gt;
  &lt;li&gt;The Wedding Singer&lt;/li&gt;
  &lt;li&gt;Star Wars Episode V: The Empire Strikes Back&lt;/li&gt;
  &lt;li&gt;High Fidelity&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;four-tv-shows-i-love-to-watch&quot;&gt;Four TV shows I love to watch&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Family Guy&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.qi.com/tv/&quot; title=&quot;Quite Interesting TV show&quot;&gt;QI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Numb3rs&lt;/li&gt;
  &lt;li&gt;X-Men: Evolution&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;four-places-i-have-lived&quot;&gt;Four places I have lived&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Bordon&lt;/li&gt;
  &lt;li&gt;Um… Yeah…&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;four-places-i-have-been-on-holiday&quot;&gt;Four places I have been on holiday&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Orlando, Florida, USA&lt;/li&gt;
  &lt;li&gt;Paris, France&lt;/li&gt;
  &lt;li&gt;Spain&lt;/li&gt;
  &lt;li&gt;Nottingham&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;four-of-my-favourite-dishes&quot;&gt;Four of my favourite dishes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Carpaccio&lt;/li&gt;
  &lt;li&gt;Bacon, sausage, and egg sarnie&lt;/li&gt;
  &lt;li&gt;Whole packs of ‘speciality’ meats (Parma ham,&lt;/li&gt;
  &lt;li&gt;Anything with seafood (and mussels in particular)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;four-websites-i-visit-daily&quot;&gt;Four websites I visit daily&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://mail.google.com/&quot;&gt;Gmail&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cad-comic.com/&quot;&gt;Ctrl+Alt+Del&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://sinfest.net/&quot;&gt;Sinfest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;This very site, in the hopes that the Magic Blog-Post Færies will
have added content in my &lt;del&gt;laziness&lt;/del&gt;&lt;ins&gt;absence&lt;/ins&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;four-places-i-would-rather-be-right-now&quot;&gt;Four places I would rather be right now&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Universal Studios: Islands of Adventure&lt;/li&gt;
  &lt;li&gt;Paris&lt;/li&gt;
  &lt;li&gt;Two feet to my right and three feet back, playing on my Xbox 360
whilst sat on my bed.&lt;/li&gt;
  &lt;li&gt;With The Girlfriend&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;four-bloggers-i-am-tagging&quot;&gt;Four bloggers I am tagging&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://mindthe.net/badger/&quot;&gt;Jonathan Relf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://kurafire.net/&quot;&gt;Faruk Ateş&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://adactio.com/journal/&quot;&gt;Jeremy Keith&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://andybudd.com/&quot;&gt;Andy Budd&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <title>Carson Workshops Summit</title>
    
    <link href="http://stevemarshall.com/journal/carson-workshops-summit/"/>
    <published>2005-11-28T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/carson-workshops-summit/</id>
    <content type="html">&lt;p&gt;Another month, another conference booking. This time, &lt;a href=&quot;http://ben-ward.co.uk/&quot; title=&quot;Ben Ward&apos;s blog&quot;&gt;&lt;del&gt;The Boy
Wonder&lt;/del&gt;&lt;ins&gt;Ben&lt;/ins&gt;&lt;/a&gt; and I will be attending the
&lt;a href=&quot;http://www.carsonworkshops.com/summit/&quot;&gt;Carson Workshops Summit&lt;/a&gt; on the 8th of February, 2006, with &lt;a href=&quot;http://fatbusinessman.com/&quot; title=&quot;David &apos;Fatty&apos; Thompson&apos;s blog&quot;&gt;&lt;del&gt;The
Joker&lt;/del&gt;&lt;ins&gt;Fatty&lt;/ins&gt;&lt;/a&gt; in tow.&lt;/p&gt;

&lt;p&gt;Rumour has it that &lt;a href=&quot;http://www.adactio.com/&quot; title=&quot;Jeremy Keith&apos;s Adactio&quot;&gt;Jeremy&lt;/a&gt;, &lt;a href=&quot;http://www.andybudd.com/&quot; title=&quot;Andy Budd&quot;&gt;Andy&lt;/a&gt;,
&lt;a href=&quot;http://www.clagnut.com/&quot; title=&quot;Richard Rutter&quot;&gt;Richard&lt;/a&gt;, and &lt;a href=&quot;http://www.hicksdesign.co.uk/journal/&quot; title=&quot;Jon Hicks&apos;s blog&quot;&gt;The Jon&lt;/a&gt; will be there, not
to mention the speakers: &lt;a href=&quot;http://www.shauninman.com/&quot; title=&quot;Shaun Inman&quot;&gt;Mister Mint&lt;/a&gt;, &lt;a href=&quot;http://www.loudthinking.com/&quot; title=&quot;David Heinemeier Hansson&apos;s loudthinking&quot;&gt;a Signal&lt;/a&gt;, and &lt;a href=&quot;http://www.bd4d.com/blog/&quot; title=&quot;Ryan Carson&apos;s BD4D&quot;&gt;someone predictable&lt;/a&gt;, to
name but a few.&lt;/p&gt;

&lt;p&gt;Add to that the fact that it’s Ben’s birthday the day after, and it
should make for an altogether good day/evening.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>XAML: An insider's look out</title>
    
    <link href="http://stevemarshall.com/journal/xaml-an-insiders-look-out/"/>
    <published>2005-11-24T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/xaml-an-insiders-look-out/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://www.zachinglis.com/&quot; title=&quot;Zach Inglis&quot;&gt;Zach&lt;/a&gt; recently &lt;a href=&quot;http://www.zachinglis.com/web-accessibility/xaml-who/&quot; title=&quot;XAML: An Outsiders Look In&quot;&gt;posted his thoughts&lt;/a&gt; on
Microsoft’s XAML (eXtensible Application Markup Language). As my main
development environment is Microsoft’s .Net Framework, I’ve had a
chance to have a more in-depth look at what XAML is and does, and feel
that I should clear some points up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: I have no knowledge of Microsoft’s true plans for XAML.
These are simply &lt;em&gt;my observations&lt;/em&gt; based on what I’ve read and seen on
the Internet, and cursory fiddlings with XAML as part of the &lt;a href=&quot;http://www.microsoft.com/downloads/info.aspx?u=http%3A%2F%2Fgo.microsoft.com%2Ffwlink%2F%3FLinkId%3D50707&amp;amp;na=44&amp;amp;p=0&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=CE888B4C-CCBD-452F-9D90-F4B7190CCA24&quot;&gt;WinFX
pre-release SDK&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-is-this-xaml-you-speak-of&quot;&gt;What is this XAML you speak of?&lt;/h2&gt;

&lt;p&gt;XAML is Microsoft’s new &lt;em&gt;application&lt;/em&gt; markup language (as noted in the
name ‘eXtensible Application Markup Language’).&lt;/p&gt;

&lt;p&gt;This, then, automatically implies that its primary focus is applications
or, more specifically, &lt;em&gt;client-side&lt;/em&gt; applications. These could be the
likes of Microsoft Word, or they could be something that runs on the
client, but is hosted in a browser environment (read: Flash
applications).&lt;/p&gt;

&lt;p&gt;The raison d’être of XAML, rather than being to replace HTML, is (or
rather, would appear to be) to allow &lt;em&gt;client-side&lt;/em&gt; application
developers to seperate their user interface ‘code’ from their functional
code.&lt;/p&gt;

&lt;h2 id=&quot;why-all-the-hubbub&quot;&gt;Why all the hubbub?&lt;/h2&gt;

&lt;p&gt;Web developers know that having a hulking great piece of
&lt;del&gt;JavaScript&lt;/del&gt;&lt;ins&gt;ECMAScript&lt;/ins&gt; to build their entire user
interface isn’t good for code maintenance. Why should the same not be
true for client-side applications? After all, you don’t hear anyone
crying “think of the children!” when people talk about &lt;a href=&quot;http://en.wikipedia.org/wiki/XUL&quot; title=&quot;Wikipedia entry on XUL&quot;&gt;XUL&lt;/a&gt;
which is, ultimately, a different implementation of the same concept.&lt;/p&gt;

&lt;p&gt;Personally, I think most of the noise is because Microsoft is making
(and, in fact, &lt;em&gt;has to&lt;/em&gt; make) noise about the benefits of XAML over the
old-school way of doing things. Your average in-house developer, closed
off from the outside world, that only uses computers for their day job
will probably only care about what comes from &lt;a href=&quot;http://msdn.microsoft.com/&quot; title=&quot;Microsoft Developer Network&quot;&gt;the hand of God&lt;/a&gt;.
Add to that the fact that Microsoft has to get the message out to what
probably amounts to millions of developers, and they need to make a lot
of noise.&lt;/p&gt;

&lt;p&gt;Compare this again to XUL: it’s &lt;em&gt;not&lt;/em&gt; the default framework for the most
used operating system in the world; it has a handful of ‘big’ adopters
(who are, in terms of user base, significantly smaller than that of
Windows) and a (relatively) small, vocal developer-base.&lt;/p&gt;

&lt;p&gt;The point, however, is that XUL and XAML have very similar goals in
mind: seperation of interface structure and presentation from ‘logic’.&lt;/p&gt;

&lt;h2 id=&quot;implementation&quot;&gt;Implementation&lt;/h2&gt;

&lt;p&gt;As a very strong advocate of semantic, accessible web development, the
implementation details of XAML grate against my nerves slightly, but not
as much as you might think.&lt;/p&gt;

&lt;h3 id=&quot;usability&quot;&gt;Usability&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Look at the CD Catalogue, that’s less usable friendly than what
Amazon is. That makes me wonder if the web is turning too looks
specific. &lt;em&gt;Soon the content will be forgotten and it’ll only be about
looks&lt;/em&gt;. With that, it looks as though its taking the focus of what the
web’s built for (‘To house globally accessible documents’).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m not sure Zach’s comparison of the CD Catalogue tech demo with
&lt;a href=&quot;http://www.amazon.com/&quot;&gt;Amazon&lt;/a&gt; is a fair one; a better one would be to something like
&lt;a href=&quot;http://www.steelskies.com/coverflow/HomePage.html&quot;&gt;CoverFlow&lt;/a&gt; with Amazon integration. It’s also worth bearing in mind
that this is a tech demo we’re talking about, &lt;em&gt;not a final product&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Further, I would reiterate the point that XAML is for &lt;em&gt;applications&lt;/em&gt;,
not documents.&lt;/p&gt;

&lt;h3 id=&quot;semantics&quot;&gt;Semantics&lt;/h3&gt;

&lt;p&gt;Zach also laments the lack of semantics within XAML, referencing setting
an attribute value (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Value=&quot;verticalgradient LimeGreen Green&quot;&lt;/code&gt;), rather
than some seperate, more semantic notation (he seperates the three
values into their own attributes).&lt;/p&gt;

&lt;p&gt;This is one point I’d tend to agree with Zach on and, in fact, take one
step further: if Microsoft &lt;em&gt;really&lt;/em&gt; want to seperate things, allow
seperation of structure from presentation, too. As I noted earlier, I’ve
a strong feeling that this is already possible, to some degree but, if
it is, it’s almost certainly not enforced in any way (like, say, a
completely different markup tailored for each, with some form of
referencing).&lt;/p&gt;

&lt;h3 id=&quot;platform-specificity&quot;&gt;Platform specificity&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Every year more people are switching to a Mac for various reasons(I’m
not going to get into a debate here), what about them? Will Mac
retaliate and do their own version thus leaving Windows users in the
dark on some of the web pages. Will their [sic] be a port? Will it
get taken back by Microsoft in the hope to fish some Mac users over?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Looking at the direction Microsoft appear to be taking with their
&lt;a href=&quot;http://www.microsoft.com/products/expression/en/interactive_designer/default.aspx&quot;&gt;Sparkle Interactive Designer&lt;/a&gt; (as a tool to create rich
applications on Windows and the web), you can almost taste the ‘we want
a piece of Flash’ sentiment. Add to that the fact that Microsoft
explicitly state that the output from Sparkle will work cross platform
and device (in their &lt;a href=&quot;http://www.microsoft.com/products/expression/en/demos.aspx&quot; title=&quot;Microsoft Expression Tours &amp;amp; Demos&quot;&gt;Expression family tour&lt;/a&gt;). I
wouldn’t be in the least surprised if we see:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A gradual uptake (mostly by &lt;a href=&quot;http://www.fujitsu-siemens.com/&quot; title=&quot;Fujitsu Siemens Computers, the company I work for&quot;&gt;Microsoft shops&lt;/a&gt; and geeks,
initially) of Sparkle in addition to Flash (or, perhaps, instead of,
for some geeks).&lt;/li&gt;
  &lt;li&gt;A cross-platform .Net runtime environment that is, in some way,
endorsed by Microsoft. This might be in the form of support for
&lt;a href=&quot;http://www.mono-project.com/&quot;&gt;Mono&lt;/a&gt; or the like, some extension of the current &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyId=3A1C93FA-7462-47D0-8E56-8DD34C6292F0&amp;amp;displaylang=en&quot;&gt;shared source
initiative&lt;/a&gt;, a fully-fledged, Microsoft-built
.Net runtime for the Mac and *nix, or something in between.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;final-thoughts&quot;&gt;Final thoughts&lt;/h2&gt;

&lt;p&gt;This is something I’ve actually been mulling over for quite a while and,
much as I don’t like the approach Microsoft are taking in terms of the
actual markup, I can see XAML making my life (and the lives of those I
work with) far, far easier when we have to manage future application
interfaces.&lt;/p&gt;

&lt;p&gt;It &lt;em&gt;is&lt;/em&gt; far from the panacea Microsoft are suggesting that it is, but it
is still &lt;em&gt;far&lt;/em&gt; superior to the current code-soup approach in most
Windows applications.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>What's in your folder of shame?</title>
    
    <link href="http://stevemarshall.com/journal/whats-in-your-folder-of-shame/"/>
    <published>2005-11-08T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/whats-in-your-folder-of-shame/</id>
    <content type="html">&lt;p&gt;I just noticed &lt;a href=&quot;http://www.veen.com/jeff/archives/000811.html&quot;&gt;&lt;cite&gt;Jeff Veen&lt;/cite&gt;’s post about his “folder of
shame”&lt;/a&gt; (via &lt;a href=&quot;http://ben-ward.co.uk/journal/whats-in-your-folder-of-shame/&quot;&gt;Ben&lt;/a&gt;, surprise,
surprise) and, much as I’m still very new to this here blogging malarky,
I too have a folder of shame. Currently, it contains:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Why I love my Macs&lt;/li&gt;
  &lt;li&gt;What I want to play with or fix on my site&lt;/li&gt;
  &lt;li&gt;Mac OS &lt;em&gt;keyboard layouts&lt;/em&gt; on windows&lt;/li&gt;
  &lt;li&gt;A post commenting on Microsoft’s &lt;a href=&quot;http://atlas.asp.net/&quot;&gt;Atlas&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As I’m still pretty new to the game, my folder actually seems to contain
things I’m seriously working on, but haven’t yet finished. This, though,
is mostly because I’m still very much trying to find my feet in the
world and get the hang of writing things for &lt;del&gt;my mum&lt;/del&gt;&lt;ins&gt;the
world&lt;/ins&gt; to see.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>The musical baton</title>
    
    <link href="http://stevemarshall.com/journal/the-musical-baton/"/>
    <published>2005-10-30T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/the-musical-baton/</id>
    <content type="html">&lt;p&gt;Back when I was still known as Stevie ‘no blog’ Marshall, &lt;a href=&quot;http://ben-ward.co.uk/&quot;&gt;Ben&lt;/a&gt; passed
me the &lt;a href=&quot;http://ben-ward.co.uk/journal/musical_baton/&quot;&gt;musical baton&lt;/a&gt;. Well, I’ve finally decided to pick it
up and run the final stretch.&lt;/p&gt;

&lt;p&gt;As Ben noted, all those months ago, the baton is something akin to a
chain-letter but, via the medium of blogging, seems rather pleasant, as
opposed to the innumerable forwarded e-mail quizzes that garner instant
deletion. I also think it would be rather intriguing to have some kind
of auto-generated map of who passed this to whom. Granted, that would be
hard to manage when Johnny-come-latelys like myself are involved, but it
would be interesting, all the same.&lt;/p&gt;

&lt;p&gt;As I’m so late to the party, I’ve decided to take a little more time and
care over this, with a little more detail and information.&lt;/p&gt;

&lt;p&gt;Anyway, here’s the meat:&lt;/p&gt;

&lt;h2 id=&quot;total-volume-of-music-on-my-computer&quot;&gt;Total volume of music on my computer&lt;/h2&gt;

&lt;p&gt;I currently have 38.95GB of music on my PowerMac, which I manually copy
to my iBook whenever the whim takes me. If iTunes is to be believed,
that’s about 20.2 days’ worth of non-stop
&lt;del&gt;noise&lt;/del&gt;&lt;ins&gt;music&lt;/ins&gt;. That’s mostly made up of
192kbps-encoded mp3s, with the occasional non-conformist track from
&lt;a href=&quot;http://www.bradsucks.net/&quot; title=&quot;Brad Sucks&quot;&gt;other&lt;/a&gt; &lt;a href=&quot;http://www.frontalot.com/&quot; title=&quot;MC Frontalot&quot;&gt;sources&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That’s enough that I can’t quite fit it all on my 40GB fourth-generation
iPod (black and white screen with click-wheel); this is a source of much
discomfort.&lt;/p&gt;

&lt;h2 id=&quot;the-last-cds-i-bought&quot;&gt;The last CD(s) I bought&lt;/h2&gt;

&lt;p&gt;I’ve actually not bought any music within the last fortnight or so,
which is &lt;em&gt;incredibly&lt;/em&gt; uncommon for me.&lt;/p&gt;

&lt;p&gt;The last CDs I bought, though, were &lt;a href=&quot;http://www.fightingwithwire.co.uk/&quot;&gt;Fighting With Wire&lt;/a&gt;’s ‘Cut The
Transmission’ EP and their ‘Machine Parts’ single, when I saw them live
at the &lt;a href=&quot;http://www.wedgewood-rooms.co.uk/&quot;&gt;Wedgewood Rooms&lt;/a&gt; on the 10th of October.&lt;/p&gt;

&lt;p&gt;As I was able to buy both of those for a handful of change, though, I
feel compelled to include my next-most-recent full-price purchase:
&lt;a href=&quot;http://www.jimmychamberlincomplex.com/&quot;&gt;Jimmy Chamberlin Complex&lt;/a&gt;’s ‘Life Begins Again’.&lt;/p&gt;

&lt;h3 id=&quot;fighting-with-wire&quot;&gt;Fighting With Wire&lt;/h3&gt;

&lt;p&gt;The two Fighting With Wire CDs comprise 6 tracks, which sound somewhat
akin to a combination of Foo Fighters and another, more metal-y band I
can’t quite remember the name of.&lt;/p&gt;

&lt;p&gt;Considering I hadn’t even heard of &lt;a href=&quot;http://www.wordsfromreuben.com/&quot;&gt;Reuben&lt;/a&gt;, the act that they were
supporting when I saw them, until the day before the gig, I’m very
impressed to have come across such a promising group. I was also
suitably impressed by &lt;a href=&quot;http://www.themascarastory.co.uk/&quot;&gt;The Mascara Story&lt;/a&gt;, but their CDs had sold out
by the time I went to get one.&lt;/p&gt;

&lt;h3 id=&quot;jimmy-chamberlin-complex---life-begins-again&quot;&gt;Jimmy Chamberlin Complex - ‘Life Begins Again’&lt;/h3&gt;

&lt;p&gt;The Jimmy Chamberlin Complex album is an altogether different beast:
the debut album of Jimmy Chamberlin, the former Smashing Pumpkins and
Zwan drummer, was something for which I had very high expectations.&lt;/p&gt;

&lt;p&gt;As a huge Pumpkins and Zwan fan, I had many preconceived ideas about
what a Jimmy Chamberlin album might be like. This album broke all of my
preconceptions, and it broke them beautifully. Whilst the album has
echoes of his contributions to the Pumpkins (and highlights his input on
their style or, perhaps, the effect his time with them had on his
style), it is very much distinct from their works.&lt;/p&gt;

&lt;p&gt;A word of warning, however: this album is a little more prog-rock than
that of the Pumpkins - it focuses heavily on Jimmy’s work on the drums
(obviously), and is very instrumental. If you need something to sing
along to, this isn’t necessarily the best choice (or give this a try and
see if it changes your perceptions and tastes; either way is good).&lt;/p&gt;

&lt;p&gt;All that said, I love this album.&lt;/p&gt;

&lt;h2 id=&quot;the-song-im-playing-right-now&quot;&gt;The song I’m playing right now&lt;/h2&gt;

&lt;p&gt;Portishead’s ‘Sour Times’ has just started playing. I was introduced to
Portishead a few months ago when a friend sent me their debut album,
‘Dummy’, as a gift for no apparent reason (not that I’m complaining -
any CD I don’t have to buy is fine by me).&lt;/p&gt;

&lt;p&gt;Whilst I didn’t actually choose to play this song (&lt;a href=&quot;http://www.apple.com/itunes/overview/&quot;&gt;iTunes&lt;/a&gt; party
shuffle, how I love thee!), it’s a bloody good choice, all the same:
haunting, melancholy, ethereal, and, at the same time, soothing and
refreshing.&lt;/p&gt;

&lt;h2 id=&quot;fivesixseven-songs-i-listen-to-a-lot-or-that-mean-a-lot-to-me&quot;&gt;&lt;del&gt;Five&lt;/del&gt;&lt;del&gt;&lt;ins&gt;Six&lt;/ins&gt;&lt;/del&gt;&lt;ins&gt;Seven&lt;/ins&gt; songs I listen to a lot, or that mean a lot to me&lt;/h2&gt;

&lt;p&gt;Writing this list is incredibly difficult for me. As with most people
who are passionate about music, pinning myself down to a handful of
songs that I would find it hard to be without usually results in a list
that’s longer than my actual music collection. &lt;del&gt;Also, this list will
probably change to some degree if you were to ask me the same thing next
week, or in a year’s time, so don’t hold me to it.&lt;/del&gt; &lt;ins&gt;Make that
‘this list will change within a minute of me posting it’.&lt;/ins&gt;&lt;/p&gt;

&lt;p&gt;That said, here goes (in no particular order):&lt;/p&gt;

&lt;h3 id=&quot;i-heard-it-through-the-grapevine-by-marvin-gaye-from-motown-heartbreakers&quot;&gt;‘I Heard It Through The Grapevine’ by Marvin Gaye, from ‘Motown Heartbreakers’&lt;/h3&gt;

&lt;p&gt;Whilst this may not, technically, be Marvin Gaye’s best song, it was
Motown’s biggest selling record. More importantly for me, however, this
song reminds me very much of my childhood - it epitomises my mum’s
(somewhat limited) taste in music, and makes me think of long journeys
as a child to visit my grandparents.&lt;/p&gt;

&lt;p&gt;It’s also of note that I have this song on three different albums:
‘Motown Heartbreakers’, ‘Motown Chartbusters: Volume 3’, and ‘The Very
Best Of Marvin Gaye’. I chose to mention ‘Motown Heartbreakers’
specifically because that is the album I would have listened to as a
child: the others are far more recent acquisitions.&lt;/p&gt;

&lt;h3 id=&quot;show-me-how-to-live-by-audioslave-from-audioslave&quot;&gt;‘Show Me How To Live’ by &lt;a href=&quot;http://www.audioslave.com/&quot;&gt;Audioslave&lt;/a&gt;, from ‘Audioslave’&lt;/h3&gt;

&lt;p&gt;I simply &lt;em&gt;cannot&lt;/em&gt; get enough of this song (or, in fact, the rest of the
album). I spent about 15 minutes just trying to decide which track from
the album to list. Audioslave’s music is hard-as-nails, but intricately
crafted and with awesome vocals from Chris Cornell. I listen to this
album at least once a week and, without fail, I end up
&lt;del&gt;screaming&lt;/del&gt;&lt;ins&gt;singing&lt;/ins&gt; along.&lt;/p&gt;

&lt;h3 id=&quot;whenever-wherever-whatever-by-maxwell-from-mtv-unplugged&quot;&gt;‘Whenever, Wherever, Whatever’ by &lt;a href=&quot;http://www.musze.com/&quot;&gt;Maxwell&lt;/a&gt;, from ‘MTV Unplugged’&lt;/h3&gt;

&lt;p&gt;Maxwell is one of those artists that I think doesn’t get anywhere near
the respect he deserves. He has one of the richest, most satisfying
voices I’ve ever heard. His songs are romantic without being trite,
intellectual without sacrificing accessibility, and, above all, &lt;em&gt;just
damn good&lt;/em&gt;. Not only does this song define the way I feel about the
people I care about, it exudes an intimacy and tenderness rarely found
in other songs (especially so in the live version I’m referring to, but
the same holds for the original studio version).&lt;/p&gt;

&lt;h3 id=&quot;baby-lets-rock-by-zwan-from-mary-star-of-the-sea&quot;&gt;‘Baby Let’s Rock!’ by Zwan, from ‘Mary Star Of The Sea’&lt;/h3&gt;

&lt;p&gt;This is another track where I could substitute it for any other from
the album. Beautifully crafted, sweet with just enough rockiness, the
whole album rarely has time to finish before I’m playing it again.&lt;/p&gt;

&lt;p&gt;Zwan’s work is an altogether different beast from that of The Smashing
Pumpkins, the band from which half their members originated, but just as
good.&lt;/p&gt;

&lt;p&gt;Speaking of Pumpkins…&lt;/p&gt;

&lt;h3 id=&quot;silverfuck-live-in-london--over-the-rainbow-by-the-smashing-pumpkins-from-earphoria&quot;&gt;‘Silverfuck (Live In London) / Over The Rainbow’ by The Smashing Pumpkins, from ‘Earphoria’&lt;/h3&gt;

&lt;p&gt;What can I say about a thirteen-and-a-half minute rendition of
‘Silverfuck’ that has a rendition of ‘Over The Rainbow’ in the middle,
for good measure?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Fuck me, it’s good&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;That’ll do just fine. When I got ‘Earphoria’, I already had most of the
Pumpkins’ back-catalogue, so my expectations were high. ‘Earphoria’
delivers, and then some, until you get to ‘Silverfuck’, whereupon you
spend the next thirteen-and-a-half minutes thinking “holy shit, this is
the most insane thing I’ve heard in years”. Or maybe that’s just me.&lt;/p&gt;

&lt;h3 id=&quot;brighter-hell-by-the-watchmen-from-silent-radar&quot;&gt;&lt;ins&gt;‘Brighter Hell’ by The Watchmen, from ‘Silent Radar’&lt;/ins&gt;&lt;/h3&gt;

&lt;p&gt;Another beautiful, intricate, sensual song. The story goes that, to
make their ‘Silent Radar’ album, The Watchmen spared no expense, to the
point that they used a $10,000 vocal microphone! That may sound
excessive but, if ‘Brighter Hell’ is anything to go by, it was more
than worth it. (And yes, I realise that money doesn’t equal talent, but
money &lt;em&gt;plus&lt;/em&gt; talent can often make wonderul things.)&lt;/p&gt;

&lt;h3 id=&quot;no-ones-gonna-hurt-you-by-james-iha-from-let-it-come-down&quot;&gt;&lt;ins&gt;‘No One’s Gonna Hurt You’ by James Iha, from ‘Let It Come Down’&lt;/ins&gt;&lt;/h3&gt;

&lt;p&gt;Yet another soft one, again from a former Pumpkin. I’d explain why this
one means a lot to me, but the person it’s for knows who they are and
why it does, so that’s all that matters. Just trust me that it’s a
beautiful song, and, as with Jimmy Chamberlin, you can see Iha’s
influence on the Pumpkins, and how they influenced his work.&lt;/p&gt;

&lt;p&gt;I could continue this list for hours, but I think it’s for the best if I
leave it at that.&lt;/p&gt;

&lt;p&gt;&lt;ins&gt;‘Brighter Hell’ was added to the list minutes after I originally
posted it, for anyone that cares about such things.&lt;/ins&gt;&lt;/p&gt;

&lt;p&gt;&lt;ins&gt;So was ‘No One’s Gonna Hurt You’ (although significantly after the
fact)…&lt;/ins&gt;&lt;/p&gt;

&lt;h2 id=&quot;passing-it-on&quot;&gt;Passing it on&lt;/h2&gt;

&lt;p&gt;As the rest of the Internet (or as near as damnit) has already had the
baton, I think there’s little point in me trying to pass it off to
anyone, so I won’t bother. If you feel like prising it from my hands by
all means do, but leave a note in the comments so I can add a link to
you as someone I ‘passed’ the baton to.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>All booked up for SXSWi</title>
    
    <link href="http://stevemarshall.com/journal/all-booked-up-for-sxswi/"/>
    <published>2005-10-23T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/all-booked-up-for-sxswi/</id>
    <content type="html">&lt;p&gt;So that’s it - &lt;a href=&quot;http://blog.fatbusinessman.com/&quot; title=&quot;David &apos;Fatty&apos; Thompson&apos;s blog&quot;&gt;Fatty&lt;/a&gt; and I are all booked up for our sojourn to the
veritable geek-fest that is &lt;a href=&quot;http://2006.sxsw.com/interactive/&quot;&gt;SXSW interactive&lt;/a&gt; (which I am hereby
christening ‘suckswee’).&lt;/p&gt;

&lt;p&gt;We’ll be be arriving in Austin at about 4pm local time on the 8th of
March 2006, having left Blighty (that’s Britain for those of you that
didn’t know) at 9:30am on the same day.&lt;/p&gt;

&lt;p&gt;We ended up getting a room together in the &lt;a href=&quot;http://www.radisson.com/austintx&quot;&gt;Radisson&lt;/a&gt;; I know everyone
says that the &lt;a href=&quot;http://hamptoninn.hilton.com/en/hp/hotels/index.jhtml?ctyhocn=AUSDTHX&quot;&gt;Hampton Inn Downtown&lt;/a&gt; is where all the cool kids
stay, but they were all booked out (save rooms with double beds, and I
don’t plan on sharing a bed with Fatty anytime soon). This either means
that there are going to be far too many truly cool people in Austin next
March, or that the Hampton booking system somehow knows when people who
it deems uncool are trying to book rooms, and simply lies to them.&lt;/p&gt;

&lt;p&gt;I’m hoping it’s the former.&lt;/p&gt;

&lt;p&gt;We’ve then got a day or so either end of SXSW to enjoy the sights and
sounds around Austin or, better yet, to get more acquainted with our
fellow sucksweers, and we leave at about 4pm local time on the 16th.&lt;/p&gt;

&lt;p&gt;I can’t wait.&lt;/p&gt;

&lt;p&gt;PS: Let me know in the comments if you’re going too and we can meet up
or something!&lt;/p&gt;

&lt;p&gt;Also, recommendations for where we can go for breakfasts would be good,
too, as such things appear to be unheard of in the Austin Radisson…&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>The inaugural journal entry…</title>
    
    <link href="http://stevemarshall.com/journal/the-inaugural-journal-entry/"/>
    <published>2005-10-19T00:00:00+00:00</published>
    <id>http://stevemarshall.com/journal/the-inaugural-journal-entry/</id>
    <content type="html">&lt;p&gt;Well, it’s finally here!&lt;/p&gt;

&lt;p&gt;After 10 long months, countless hours slaving over HTML and CSS, and
more procrastinating than even I would have thought possible,
nascentguruism is finally a real website!&lt;/p&gt;

&lt;p&gt;First and foremost, I’d like to thank &lt;a href=&quot;http://ben-ward.co.uk/&quot;&gt;Ben&lt;/a&gt; for all his help and
support. Were it not for his inspiration, assistance, and, frankly,
constant whinging that I just needed to get on with my site and get it
live, nascentguruism wouldn’t be half the site it is now. Thanks Ben, I
owe you, big-style.&lt;/p&gt;

&lt;p&gt;So, welcome to nascentguruism, one and all. If you’re interested in who
I am or how the site is made, then you probably want the
&lt;a href=&quot;/about/&quot;&gt;about&lt;/a&gt; page.&lt;/p&gt;

&lt;p&gt;A word of warning: the site is still very much a work in progress. I’m
going to be tweaking and sprucing up pretty much anything I can think of
over the coming weeks (well, from a techie perspective, at least - the
look of things should remain fairly constant). As such, if you see
something that looks a bit odd or that you think needs work, don’t
hesitate to let me know, either via the comments here, or via &lt;a href=&quot;/about/#contact&quot;&gt;email&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Update: One of the first errors I’m going to try to crack is visible on
the &lt;a href=&quot;/about/&quot;&gt;about&lt;/a&gt; page for those of you using either Firefox up to 1.0.* or
Safari - if the image isn’t loaded quickly enough, the CSS-positioned
corners don’t end up in the right places on the page. Any suggestions
are much appreciated.&lt;/p&gt;

&lt;p&gt;Also, if anyone uses Opera and has any idea how I can fix the fact that
it doesn’t correctly handle absolutely positioned elements with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;width:
auto&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;left&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;right&lt;/code&gt; positions, then that would be nice.&lt;/p&gt;

</content>
  </entry>
  
</feed>
