<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" 
xmlns:content="http://purl.org/rss/1.0/modules/content/" 
xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>gnome on Nick Richards</title>
    <link>https://www.nedrichards.com/categories/gnome/</link>
    <description>Recent content in gnome on Nick Richards</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <lastBuildDate>Wed, 03 Jun 2026 22:50:40 +0100</lastBuildDate>
    
	<atom:link href="https://www.nedrichards.com/categories/gnome/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Sunset Appearance</title>
      <link>https://www.nedrichards.com/2026/06/sunset-appearance/</link>
      <pubDate>Wed, 03 Jun 2026 22:50:40 +0100</pubDate>
      
      <guid>https://www.nedrichards.com/2026/06/sunset-appearance/</guid>

      <description><![CDATA[ <p>I love adaptive interfaces and technology that blends in more than the average human. I&rsquo;ve spent literally years tinkering with &lsquo;frecency&rsquo; ordered lists, bought a <a href="https://en.wikipedia.org/wiki/Meural">meural</a> screen and have recently been glorying in the fantastic <a href="https://github.com/dmy3k/gnome-adaptive-brightness">GNOME Adaptive Brightness</a>.</p>
<p>On that last point, whilst GNOME already has Automatic Screen Brightness, and it is a good feature, dmy3k&rsquo;s extension goes further on the specific machines with cool hardware: steadier behaviour with changing light, smoother transitions and brightness curves you can tune. One of the things I&rsquo;ve been exploring with extensions recently is &rsquo;this feature, only more so&rsquo; and adaptive brightness is a good example.</p>]]></description>
      <content:encoded><![CDATA[ <p>I love adaptive interfaces and technology that blends in more than the average human. I&rsquo;ve spent literally years tinkering with &lsquo;frecency&rsquo; ordered lists, bought a <a href="https://en.wikipedia.org/wiki/Meural">meural</a> screen and have recently been glorying in the fantastic <a href="https://github.com/dmy3k/gnome-adaptive-brightness">GNOME Adaptive Brightness</a>.</p>
<p>On that last point, whilst GNOME already has Automatic Screen Brightness, and it is a good feature, dmy3k&rsquo;s extension goes further on the specific machines with cool hardware: steadier behaviour with changing light, smoother transitions and brightness curves you can tune. One of the things I&rsquo;ve been exploring with extensions recently is &rsquo;this feature, only more so&rsquo; and adaptive brightness is a good example.</p>
<p>Living far from the equator, evenings happen. The room goes grey, the window stops being a useful light source and GNOME is still cheerfully in light mode because I told it to be bright at the time one takes screenshots. Night Light is already doing its bit by then. The display has warmed up, which is nice, but the rest of the interface lacks the level of &lsquo;darque&rsquo; required. I wanted the normal GNOME appearance preference to follow the day as well: light while it still feels like day, dark once the evening has properly arrived. Users of other operating systems may be aware of this feature, but for the purposes of this blog post let us pretend that everything below is entirely unique.</p>
<p>So I hacked up <a href="https://github.com/nedrichards/sunset-gnome-extension">Sunset Appearance</a>, a small GNOME Shell extension for GNOME Shell 45 to 50. At civil dusk it writes the same setting GNOME Settings uses:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>org.gnome.desktop.interface color-scheme = &#39;prefer-dark&#39;
</span></span></code></pre></div><p>At civil dawn it sets it back to:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>org.gnome.desktop.interface color-scheme = &#39;default&#39;
</span></span></code></pre></div><p>My dad was an aviator, so I got to hear a lot of exciting words growing up, such as &lsquo;civil twilight&rsquo;, which always makes me think of Romeo and Juliet. Sunset turns out to be a surprisingly slippery concept, and very longitudinally mediated. In London in summer there can be plenty of useful light after the sun has dipped below the horizon, and the desktop does not need to go &lsquo;darque&rsquo; the moment the sun touches the skyline. Nautical and astronomical twilight are too late for an interface preference, and in some places at some times of year they can fail to happen in the normal way at all.</p>
<p>Civil twilight is when the centre of the sun is 6 degrees below the horizon and when it really does feel like the world has changed character.</p>
<p>Location is awkward too, because civil dawn and dusk need latitude, longitude and date. There&rsquo;s some interesting fallback logic to infrequently get a coarse location (good enough for a city) and then fall back to cached data if available as Night Light already needs much the same information. Frequent readers will remember my concerns over London, Ontario being above London, England in many search boxes so there is no virtue in making the user type London into another small box. If neither source has usable coordinates, nothing changes.</p>
<p>Manual override behaviour is another thing that avoids annoyance. If the extension sets dark mode at dusk and I then change GNOME back to light mode, I meant that. After any override, it waits until the next scheduled dawn or dusk transition before touching the setting again.</p>
<p>Solar time code has an unreasonable number of edges for something everyone thinks they intuitively understand. Keeping with my aggressive policy on internationalisation the tests keep London as the ordinary case, then poke at time zones, date line longitudes, DST changes, Antarctic stations, Arctic towns, awkward offsets such as Lord Howe and Chatham and cases where civil dawn or dusk may not exist at all. My time reading <a href="https://brr.fyi/">brr</a> and pretending to be in New Zealand to solve work bugs was not poorly spent.</p>
<p>Right now Sunset Appearance can be <a href="https://github.com/nedrichards/sunset-gnome-extension/">built from source</a>. At some point I may choose to distribute it more widely, or even see if someone has already solved my problem better.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Fuzzy Time Everywhere</title>
      <link>https://www.nedrichards.com/2026/05/fuzzy-time-everywhere/</link>
      <pubDate>Tue, 26 May 2026 21:57:00 +0100</pubDate>
      
      <guid>https://www.nedrichards.com/2026/05/fuzzy-time-everywhere/</guid>

      <description><![CDATA[ <p>I do not always want to know what time it is. This is a slightly awkward position for someone who keeps making clocks, but there we are. Quite often the useful answer is not <code>17:42</code>. It is &ldquo;quarter to six&rdquo;, &ldquo;nearly lunch&rdquo; or &ldquo;you should probably start thinking about leaving&rdquo;. The precise time is useful when catching trains, baking things and joining calls; the rest of the time it can be a bit much.</p>]]></description>
      <content:encoded><![CDATA[ <p>I do not always want to know what time it is. This is a slightly awkward position for someone who keeps making clocks, but there we are. Quite often the useful answer is not <code>17:42</code>. It is &ldquo;quarter to six&rdquo;, &ldquo;nearly lunch&rdquo; or &ldquo;you should probably start thinking about leaving&rdquo;. The precise time is useful when catching trains, baking things and joining calls; the rest of the time it can be a bit much.</p>
<p>So I have been working on fuzzy time for a while. The first version I made was <a href="https://github.com/nedrichards/fuzzy-time-gb/">for the Pebble</a>, which remains one of those devices that makes later technology feel slightly ashamed of itself. A small always-on screen, good battery life, physical buttons and just enough personality. It&rsquo;s not <a href="https://tokyoflash.com/">tokyoflash</a> after all.</p>
<p>The current versions are <a href="https://github.com/nedrichards/fuzzy-time-android-gb">Fuzzy Time GB</a>, a Wear OS watch face, and <a href="https://github.com/nedrichards/gnome-fuzzy-clock-gb">Fuzzy Clock GB</a>, a GNOME Shell extension.</p>
<p><img src="https://github.com/nedrichards/fuzzy-time-android-gb/raw/main/release-assets/screenshots/default.png" alt="Fuzzy Time GB watch face showing a fuzzy time phrase"></p>
<p>The Android version is quite a funny object internally. It is a Watch Face Format v2 face, so the APK has no app code:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span>android:hasCode=&#34;false&#34;
</span></span></code></pre></div><p>The face itself is declarative XML. Since writing thirty-six thousand lines of watch face XML by hand would be a cry for help, there is a generator which writes the cases out from the same fuzzy time rules. For every hour and every five-minute bucket it emits the condition, text and separate interactive and ambient versions.</p>
<p>That sounds excessive until you look at the details; and then it still sounds excessive. There are lots of pernickety things that give this the correct <code>GB</code> locale to my ears. &ldquo;Five Past Midnight&rdquo; is a real phrase. <code>23:58</code> should say &ldquo;Midnight&rdquo;, and if the date is visible it should be tomorrow&rsquo;s date. <code>11:58</code> should say &ldquo;Noon&rdquo;. &ldquo;O&rsquo;Clock&rdquo; wants different spacing and weight from &ldquo;Twenty-five To&rdquo;. Ambient mode wants smaller, quieter text. A round watch face leaves less room than you think it does. The watch face has a few small choices rather than a settings cathedral: warm white, cool white, soft green, dim amber; system font or <a href="https://antonkoovit.com/typefaces/arvo">Arvo</a>; optional radial complication slots above and below the text. The range complications are deliberately arcs around the edge rather than little widgets in the middle. They can show useful things, but they should not make the face stop being mostly words and calm black space.</p>
<p><img src="https://github.com/nedrichards/gnome-fuzzy-clock-gb/raw/main/screenshot.png" alt="Fuzzy Time GB GNOME Shell extension"></p>
<p>The GNOME version is the same idea on a different surface. It finds the existing clock label, listens to the same wall clock, respects the existing &ldquo;show date&rdquo; and &ldquo;show weekday&rdquo; settings, and changes the text. I have wanted to build something like this for years, partly because of <a href="https://github.com/ebassi/word-clock-extension">Emmanuele Bassi&rsquo;s word clock extension</a>. That extension was great, but <a href="https://www.nedrichards.com/2011/09/gnome-shell-iterations-what-you-need/">not quite the thing I wanted</a>, so eventually I got around to making my own.</p>
<p>One of the few design decisions left that I helped on in main GNOME (which is much better now) is that the shutdown and logout dialogue only updates its timing every so often. It could update every second; the computer is quite capable of counting. But it&rsquo;s much more pleasant when the number doesn&rsquo;t twitch constantly while you are trying to decide whether you meant to press the button.</p>
<p>You can build both projects from source. I may choose to distribute them in a more structured fashion in future. The Android one is a minimal Wear OS watch face, and the GNOME one is a normal Shell extension that currently supports GNOME Shell 45 to 50.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Agile Rates After Launch</title>
      <link>https://www.nedrichards.com/2026/05/agile-rates-after-launch/</link>
      <pubDate>Mon, 11 May 2026 20:53:09 +0100</pubDate>
      
      <guid>https://www.nedrichards.com/2026/05/agile-rates-after-launch/</guid>

      <description><![CDATA[ <p>Last summer I wrote up <a href="/2025/07/octopus-agile-prices-for-linux/">Octopus Agile Prices For Linux</a>, a small GTK app to show the current <a href="https://octopus.energy/smart/agile/">Octopus Agile</a> electricity price and the next day of half-hourly rates. It did one thing, which is a good number of things for a desktop utility to do.</p>
<p>Since then the app has become a bit less narrow. But it now does enough more that the launch post undersells it, and in a couple of places sends people looking for the wrong name.</p>]]></description>
      <content:encoded><![CDATA[ <p>Last summer I wrote up <a href="https://www.nedrichards.com/2025/07/octopus-agile-prices-for-linux/">Octopus Agile Prices For Linux</a>, a small GTK app to show the current <a href="https://octopus.energy/smart/agile/">Octopus Agile</a> electricity price and the next day of half-hourly rates. It did one thing, which is a good number of things for a desktop utility to do.</p>
<p>Since then the app has become a bit less narrow. But it now does enough more that the launch post undersells it, and in a couple of places sends people looking for the wrong name.</p>
<p>The app is now called <a href="https://flathub.org/apps/com.nedrichards.octopusagile">Agile Rates</a>. The application ID is still <code>com.nedrichards.octopusagile</code>, because changing stable app IDs is not exciting for anyone, but the name changed because Agile is no longer the whole story. Thanks to code from Andy Piper, it can also work with Octopus Go and Intelligent Go tariffs. Intelligent Go needs an API key because those prices are account-specific, but plain Agile and Go can still be set up manually.</p>
<p>That was the first larger change: setup had to become a thing.</p>
<p>The original app assumed you knew your tariff and region, or at least were willing to rummage in preferences until the graph stopped being wrong. That is fine for a scratch-your-own-itch project and a bit rude for an app on Flathub. The current version opens with a setup assistant. You can connect an Octopus account with an API key and account number, in which case the app tries to detect the active electricity tariff. Or you can keep it simple and choose the tariff and region manually.</p>
<p>The second change is the one I actually use most: finding the cheapest slot.</p>
<p>The launch version showed a graph and left the planning to the human. That works for quick glances, but most of my real questions are more specific:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>When should the dishwasher run?
</span></span><span style="display:flex;"><span>When should the washing machine run?
</span></span><span style="display:flex;"><span>Is there a cheap three-hour block before tomorrow afternoon?
</span></span></code></pre></div><p>So there is now a &ldquo;find cheapest time&rdquo; tool. Pick a duration and it searches the available forecast window for the cheapest continuous block. The chart now scrolls to the chosen time instead of making you squint along the bars like you are reading a very dull railway timetable.</p>
<p>The graph itself has had a lot of tweaks. It has grid lines, clearer day boundaries, better current-price highlighting, less terrible dark-mode contrast, and layout rules that behave on narrower screens. The preferences window and main window are adaptive now too. Handy if you split your screen or have a Linux phone.</p>
<p>The biggest recent addition is usage history. If you connect an account, the app can fetch recent smart meter consumption data, cache it locally, and show a Usage view. That includes kWh history, a seven-day trend, an estimated monthly usage figure, and charts. It also tries to estimate spend by matching historical usage to tariff rates and standing charges.</p>
<p>Underneath that, the project has become more like a real small application. There are unit tests for pricing, tariff selection, adaptive layout, usage insights, and historical cost calculation. The development Flatpak manifest runs the Meson tests inside the GNOME SDK, which catches the class of bugs where the host Python environment was accidentally being too kind. Ruff is in the loop for linting. The app moved to the GNOME 50 runtime. Screenshots, AppStream metadata, branding colours, and icons have all been tidied up.</p>
<p>So the current description is: Agile Rates is a small GNOME app for UK Octopus Energy customers who want current and upcoming smart tariff rates, a cheap-time finder, and, if they connect their account, recent usage and estimated spend history. It is independent and is not affiliated with, endorsed by, or sponsored by Octopus Energy. I hope you find it useful.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>WhatCable, Framework, and USB-C</title>
      <link>https://www.nedrichards.com/2026/05/whatcable-framework-and-usb-c/</link>
      <pubDate>Sun, 03 May 2026 21:10:00 +0100</pubDate>
      
      <guid>https://www.nedrichards.com/2026/05/whatcable-framework-and-usb-c/</guid>

      <description><![CDATA[ <p>USB-C is excellent, provided you don&rsquo;t look too closely.</p>
<p>I&rsquo;ve been seeing a drum beat of interest in the internals of USB-C. <a href="https://github.com/darrylmorley/whatcable">Darryl Morley&rsquo;s macOS WhatCable</a>, <a href="https://nelsonslog.wordpress.com/2026/01/05/chromebooks-identify-usb-c-details/">Chromebooks exposing lots of lovely info about emarkers</a>, <a href="https://www.amazon.co.uk/dp/B0DYJ4T37X/">USB cable testers</a> and a bit more. Very <a href="https://infrastructureclub.org/">infrastructure club</a> topics. So I made a small GTK app also called <a href="https://github.com/nedrichards/whatcable-linux">WhatCable</a> which is intended to show what Linux knows about your USB ports, cables, chargers and devices, but written as a GNOME/libadwaita app and using the interfaces Linux exposes through sysfs.</p>]]></description>
      <content:encoded><![CDATA[ <p>USB-C is excellent, provided you don&rsquo;t look too closely.</p>
<p>I&rsquo;ve been seeing a drum beat of interest in the internals of USB-C. <a href="https://github.com/darrylmorley/whatcable">Darryl Morley&rsquo;s macOS WhatCable</a>, <a href="https://nelsonslog.wordpress.com/2026/01/05/chromebooks-identify-usb-c-details/">Chromebooks exposing lots of lovely info about emarkers</a>, <a href="https://www.amazon.co.uk/dp/B0DYJ4T37X/">USB cable testers</a> and a bit more. Very <a href="https://infrastructureclub.org/">infrastructure club</a> topics. So I made a small GTK app also called <a href="https://github.com/nedrichards/whatcable-linux">WhatCable</a> which is intended to show what Linux knows about your USB ports, cables, chargers and devices, but written as a GNOME/libadwaita app and using the interfaces Linux exposes through sysfs.</p>
<p>The hope was fairly straightforward: plug things into my Framework 13, ask Linux what is going on, and present the answer in a way that doesn&rsquo;t require remembering which bit of <code>/sys</code> to poke. In particular I wanted cable identity and e-marker details. These are the useful little facts that tell you whether a cable is what it claims to be, or at least what it claims to be electronically. Given the number of USB-C cables in the house whose origin story is &ldquo;came in a box with something&rdquo;, this felt like a public service, or at least a satisfying evening.</p>
<p>The first bit is pleasantly sensible. Linux has standard-ish places for this information:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>/sys/bus/usb/devices
</span></span><span style="display:flex;"><span>/sys/class/typec
</span></span><span style="display:flex;"><span>/sys/class/usb_power_delivery
</span></span><span style="display:flex;"><span>/sys/bus/thunderbolt/devices
</span></span></code></pre></div><p>When those are populated, a normal unprivileged app can learn quite a lot. It can show USB devices, Type-C ports, partners, cables, roles, power data, Thunderbolt and USB4 domains. That&rsquo;s exactly the sort of thing a small Flatpak app should be good at: read some public kernel state, translate it into something at least moderately human friendly and then depart.</p>
<p>On my Framework 13, the USB device and Thunderbolt sides were useful. The Type-C side was not. <code>/sys/class/typec</code> existed but had no ports. <code>/sys/class/usb_power_delivery</code> existed but was empty. This is a slightly annoying result, because it means the nice standard API is present as a signpost rather than a destination.</p>
<p>The next clue was that the machine clearly does have USB-C machinery, and not just because I could look at the side of the device. It is a Framework 13 with the embedded controller and Cypress CCG power delivery controllers doing real work. The relevant kernel modules were loaded, including UCSI and Chrome EC pieces. There was also an ACPI UCSI device at:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>/sys/bus/acpi/devices/USBC000:00
</span></span></code></pre></div><p>but <code>ucsi_acpi</code> did not appear to bind to it and create the Type-C class ports. So the hardware and firmware know things, but they were not arriving in the standard Linux userspace shape.</p>
<p>Framework&rsquo;s own tooling gives another route in. I built <code>framework_tool</code> from <a href="https://github.com/FrameworkComputer/framework-system">FrameworkComputer/framework-system</a> and asked the EC what it could see. The Framework-specific PD port command did not work on this firmware:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>USB-C Port 0:
</span></span><span style="display:flex;"><span>[ERROR] EC Response Code: InvalidCommand
</span></span></code></pre></div><p>and similarly for the other ports. That&rsquo;s not very poetic, but it is at least clear.</p>
<p>The Chromebook-style power command was more useful. With a charger connected it reported, for example:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>USB-C Port 0 (Right Back):
</span></span><span style="display:flex;"><span>  Role:          Sink
</span></span><span style="display:flex;"><span>  Charging Type: PD
</span></span><span style="display:flex;"><span>  Voltage Now:   19.776 V, Max: 20.0 V
</span></span><span style="display:flex;"><span>  Current Lim:   2250 mA, Max: 2250 mA
</span></span><span style="display:flex;"><span>  Dual Role:     Charger
</span></span><span style="display:flex;"><span>  Max Power:     45.0 W
</span></span></code></pre></div><p>That&rsquo;s good information. It&rsquo;s not cable identity, but it is the kind of port state people actually want when they are trying to work out why a laptop is charging slowly, or not charging, or doing something else mildly USB-C shaped.</p>
<p><code>framework_tool --pd-info</code> could also talk through the EC to the Cypress controllers and report their firmware details:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>Right / Ports 01
</span></span><span style="display:flex;"><span>  Silicon ID:     0x2100
</span></span><span style="display:flex;"><span>  Mode:           MainFw
</span></span><span style="display:flex;"><span>  Ports Enabled:  0, 1
</span></span><span style="display:flex;"><span>  FW2 (Main)   Version: Base: 3.4.0.A10,  App: 3.8.00
</span></span><span style="display:flex;"><span>Left / Ports 23
</span></span><span style="display:flex;"><span>  Silicon ID:     0x2100
</span></span><span style="display:flex;"><span>  Mode:           MainFw
</span></span><span style="display:flex;"><span>  Ports Enabled:  0, 1
</span></span><span style="display:flex;"><span>  FW2 (Main)   Version: Base: 3.4.0.A10,  App: 3.8.00
</span></span></code></pre></div><p>Again, useful. Again, not the cable.</p>
<p>Much of this investigation and app code was written with AI tools in the loop. That was useful for chasing down boring plumbing and generating probes. The decisive test was asking the Chrome EC for the newer Type-C discovery data directly. The EC advertised USB PD support, but not the newer Type-C command set. <code>EC_CMD_TYPEC_STATUS</code> and <code>EC_CMD_TYPEC_DISCOVERY</code> both came back as invalid commands on all four ports.</p>
<p>That means that on this Framework 13 firmware path I cannot get Discover Identity results, SOP/SOP&rsquo; discovery data, SVIDs, mode lists or e-marker details through Chrome EC host commands. The cable may well be telling the PD controller interesting things, but those things are not exposed through a stable unprivileged interface I can sensibly use in a desktop app.</p>
<p>This is the main lesson from the whole exercise: USB-C inspection on Linux is not one API. It is a set of possible stories. Sometimes the kernel Type-C class tells you lots of things. Sometimes Thunderbolt sysfs tells you a different useful slice. Sometimes a vendor EC can tell you power state, but only as root. Sometimes the information exists below you somewhere, but not in a form you should build an app around.</p>
<p>So WhatCable needs to be honest. It should show the sources it can read, and it should say when a source is unavailable rather than pretending absence means certainty. &ldquo;No cable identity exposed on this machine&rdquo; is a very different statement from &ldquo;this cable has no identity&rdquo;. The former is boring but true. The latter is how you end up lying with an icon (it is not a nice icon).</p>
<p>The current shape I think is right is:</p>
<ul>
<li>use USB, Type-C, USB PD and Thunderbolt sysfs whenever they are available;</li>
<li>show raw values as well as friendly summaries;</li>
<li>explain missing sources in diagnostics;</li>
<li>treat Framework EC data as an optional extra, not a default dependency;</li>
<li>if EC access is added, put it behind a narrow read-only helper rather than teaching a Flatpak app to fling arbitrary commands at <code>/dev/cros_ec</code>.</li>
</ul>
<p>That last point matters. On the host <code>/dev/cros_ec</code> exists, but it is root-only. Making a normal app require broad device access would be a poor bargain. A small privileged helper that answers a few known-safe questions might be acceptable. A graphical app with arbitrary EC command execution would be exciting in the wrong way.</p>
<p>This is not quite the result I wanted when I started. I wanted to show a friendly &ldquo;this is a 100W e-marked cable&rdquo; label and feel very clever about it. What I have instead is a more modest app and a better understanding of where the bodies are buried. That&rsquo;s still useful. A tool that tells you what your machine actually exposes is better than one that implies the USB-C universe is more orderly than it is. Given this, I&rsquo;m not going to be sharing this one more widely, but fork away if you wish, or come back with a better idea.</p>
<p>It&rsquo;s very easy to run with GNOME Builder, so just check out the source and &lsquo;press play&rsquo; or get an artifact out of the Github Actions. If you run <a href="https://github.com/nedrichards/whatcable-linux">WhatCable</a> on a different laptop and see rich Type-C data, lovely. If you run it on a Framework 13 like mine and mostly see USB devices, Thunderbolt controllers and a note that Type-C data is missing, that is also information. Not as glamorous as catching a suspicious cable in the act, but much more likely to be true.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Octopus Agile Prices For Linux</title>
      <link>https://www.nedrichards.com/2025/07/octopus-agile-prices-for-linux/</link>
      <pubDate>Sat, 26 Jul 2025 17:01:29 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2025/07/octopus-agile-prices-for-linux/</guid>

      <description><![CDATA[ <p>I&rsquo;m on the <a href="https://octopus.energy/smart/agile/">Octopus Agile</a> electricity tariff, where the price changes every half hour based on wholesale costs. This is great for saving money and using less carbon intensive energy, provided you can shift your heavy usage to cheaper times. With a family that insists on eating at a normal hour, that mostly means scheduling the dishwasher and washing machine.</p>
<p>The snag was not having an easy way to see upcoming prices on my Linux laptop. To scratch that itch, I built a small GTK app: <a href="https://github.com/nedrichards/octopus-agile-energy/">Octopus Agile Energy</a>. You can use it yourself if you&rsquo;re in the UK and have this electricity tarriff. Either install it directly <a href="https://flathub.org/apps/com.nedrichards.octopusagile">from Flathub</a> or download the source code and &lsquo;press play&rsquo; in GNOME Builder. The app is heavily inspired by the excellent <a href="https://play.google.com/store/apps/details?id=com.m4consulting.octopus_comparison">Octopus Compare</a> for mobile but I stripped the concept back to a single job: what&rsquo;s the price now and for the next 24 hours? This felt right for a simple desktop utility and was achievable with a bit of JSON parsing and some hand waving.</p>]]></description>
      <content:encoded><![CDATA[ <p>I&rsquo;m on the <a href="https://octopus.energy/smart/agile/">Octopus Agile</a> electricity tariff, where the price changes every half hour based on wholesale costs. This is great for saving money and using less carbon intensive energy, provided you can shift your heavy usage to cheaper times. With a family that insists on eating at a normal hour, that mostly means scheduling the dishwasher and washing machine.</p>
<p>The snag was not having an easy way to see upcoming prices on my Linux laptop. To scratch that itch, I built a small GTK app: <a href="https://github.com/nedrichards/octopus-agile-energy/">Octopus Agile Energy</a>. You can use it yourself if you&rsquo;re in the UK and have this electricity tarriff. Either install it directly <a href="https://flathub.org/apps/com.nedrichards.octopusagile">from Flathub</a> or download the source code and &lsquo;press play&rsquo; in GNOME Builder. The app is heavily inspired by the excellent <a href="https://play.google.com/store/apps/details?id=com.m4consulting.octopus_comparison">Octopus Compare</a> for mobile but I stripped the concept back to a single job: what&rsquo;s the price now and for the next 24 hours? This felt right for a simple desktop utility and was achievable with a bit of JSON parsing and some hand waving.</p>
<p><img src="https://github.com/nedrichards/octopus-agile-energy/raw/main/data/octopus-agile-screenshot.png" alt="Screenshot of the Octopus Agile Energy app showing the current electricity price and a graph of future prices"></p>
<p>I wrote a good chunk of the Python for it with the <a href="https://github.com/google-gemini/gemini-cli">gemini-cli</a>, which was a pleasant surprise. My workflow was running Gemini in a <a href="https://containertoolbx.org/">Toolbx</a> container, building on my <a href="https://fedoraproject.org/atomic-desktops/silverblue/">Silverblue</a> desktop with GNOME Builder, and manually feeding back any errors. I kept myself in the loop, taking my own screenshots of visual issues rather than letting the model run completely free and using integrations like <a href="https://github.com/bilelmoussaoui/gnome-mcp-server?tab=readme-ov-file#">gnome-mcp-server</a> to inspect itself.</p>
<p>It&rsquo;s genuinely fun to make apps with GTK 4, libadwaita, and Python. The modern stack has a much lower barrier to entry than the GTK-based frameworks I&rsquo;ve worked on in the past. And while I have my reservations about cloud-hosted AI, using this kind of technology feels like a step towards giving users more control over their computing, not less. Of course, the 25 years of experience I have in software development helped bridge the gap between a semi-working prototype that only served one specific pricing configuration, didn&rsquo;t cache anything and was constantly re-rendering; and an actual app. The AI isn&rsquo;t quite there yet at all, but the potential is there and a locally hosted system by and for the free software ecosystem would be super handy.</p>
<p>I hope the app is useful. Whilst I may well make some tweaks or changes this does exactly what I want and I&rsquo;d encourage anyone interested to fork the code and build something that makes them happy.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Endless 3.8.0 Beta 1 Trip Report</title>
      <link>https://www.nedrichards.com/2020/04/endless-3.8.0-beta-1-trip-report/</link>
      <pubDate>Fri, 17 Apr 2020 17:03:58 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2020/04/endless-3.8.0-beta-1-trip-report/</guid>

      <description><![CDATA[ <p>Endless have recently released the <a href="https://community.endlessos.com/t/beta-release-endless-os-3-8-0-beta1/12340">first beta of the 3.8 series</a> for their Linux based operating system. As someone who used to work there in product, and is still friends with a number of Endless-ers I upgraded my personal machine and checked it out. This is a &ldquo;trip report&rdquo; of my notes and may be a little bitty but I hope it&rsquo;s useful feedback for the developers and designers and maybe encourages a few other people to give Endless a go.</p>]]></description>
      <content:encoded><![CDATA[ <p>Endless have recently released the <a href="https://community.endlessos.com/t/beta-release-endless-os-3-8-0-beta1/12340">first beta of the 3.8 series</a> for their Linux based operating system. As someone who used to work there in product, and is still friends with a number of Endless-ers I upgraded my personal machine and checked it out. This is a &ldquo;trip report&rdquo; of my notes and may be a little bitty but I hope it&rsquo;s useful feedback for the developers and designers and maybe encourages a few other people to give Endless a go.</p>
<p><strong>Things that are great</strong></p>
<p>Always the first thing to comment on with a new Endless release but the upgrade process driven by ostree is still class leading. A quick download, reboot and you&rsquo;re in. And the reassurance of a quick and reliable rollback as well, always handy when testing a beta!</p>
<p>The star of the show is the GNOME 3.36 improvements, which have been <a href="https://help.gnome.org/misc/release-notes/3.36/">well covered elsewhere</a>. Many of these features have been on the Endless plan for years, some of them, like the login screen I remember discussing in the <a href="https://blog.system76.com/post/167747412318/gnome-ux-hackfest-2017">London Design Hackfest in 2017</a>. It&rsquo;s really exciting to see these kinds of long term projects delivering.</p>
<p>The aforementioned new Login is the first change you&rsquo;ll see, the new design means no animation judders in reveal on HiDPI screens. Revealing inline password peeking answers a big user need. It&rsquo;s just a much slicker experience end to end.</p>
<p>The new App Grid is just plain marvellous. It keeps the direct access to content of the initial design but the implementation now has a real solidity and materiality. With multiple pages the two finger scroll animation is a joy and it&rsquo;s equally good on a touchscreen. The new folder position, reveal and hide animation is good as well. Similar to the login screen this animation enhances the visual stack metaphor and is a more predictable and scalable animation which thus performs better and adds to the overall tightness.</p>
<p>The process of manipulating app folders has also improved, although it&rsquo;s still a little difficult to see when the app has been &rsquo;lifted up&rsquo;, I recommend an additional animation that makes that clear and ideally warping the app icon to the center of the mouse cursor, as carrying around an icon that&rsquo;s off center but having the effect of the icon being on the cursor breaks immersion.</p>
<p>Here and on the login screen you can really see the payoff for the literally years of upstream performance work that Endless engineers have put in across all areas of the stack. Not to disparage others but the Endless crew don&rsquo;t always get the credit they deserve.</p>
<p>I love the new settings app, it has a much clearer layout and addresses some longstanding bugbears like easier linkage into OS updates on the About pane.</p>
<p>Parental controls worked very well. Having experienced them in other operating systems, the effort taken to make this consistent across the whole stack - down to the CLI - is a big differentiator. I love how the age categories react to your locale. The investment in OARS was a good thing. It&rsquo;s a good idea to have them as a standalone app as well as a control center panel, although the panel looks a little bit sad as a standalone. Some width constraints for the central column would help a lot. Also, the target for the &lsquo;Restrict Applications&rsquo; action looks like it should be the whole row, not just the arrow button on the edge.</p>
<p>Metered data seemed to work well. Still sad that there&rsquo;s a fair bit of work &lsquo;on the shelf&rsquo; for that to really flesh out the vision around logging, revealing and prioritisation but what&rsquo;s there delivers to protect users.</p>
<p>Automatic app updates seem more reliable and there&rsquo;s much less jank in the App Center. The category filtering and sorting controls work well. Amazing that we now have enough apps that just throwing them all at a screen doesn&rsquo;t work any more! Flathub, another long term bet, has paid off beautifully there. There are still some issues with state &lsquo;sticking&rsquo; (I seem to have a perpetually updating Scribus in my Installed pane which doesn&rsquo;t show that state on the item page for instance) but this is a substantial improvement.</p>
<p>Moving the system tray from TopIcons to Ubuntu&rsquo;s AppIndicators was a good move as well. Pragmatically some kind of tray is absolutely required for key customer apps like Dropbox and AppIndicators is the most polished end user execution of the concept. There are changes I&rsquo;d make, but this isn&rsquo;t an area that Endless can or should focus on.</p>
<p>I didn&rsquo;t go through the first run experience, although I can see from the release notes that there are changes there. I can only say that in my experience motivated users aren&rsquo;t swayed either way by a competent first run experience (check out the iPad first run if you disagree) and it was already competent.</p>
<p><strong>Things to get better</strong></p>
<p>We&rsquo;re still all in on X11, which is still the pragmatic choice based upon resources and differentiation, however it&rsquo;s starting to get obvious that the air cover a product like Endless gets from other parties investments in the graphics stack is breaking down. New features like Firefox&rsquo;s video playback acceleration are starting to come to Wayland only and you&rsquo;ve got to imagine that 20.04 will be the last Ubuntu release that has an X11 session by default. This isn&rsquo;t a leap that needs to be made immediately but I&rsquo;d be looking at resurrecting that testing branch we had a couple of years back to see any quality gaps and starting to include that in new device testing.</p>
<p>The in browser Exploration center is still A Bad Thing and the fact that the in toolbar Feedback path goes via there continues to irritate.</p>
<p>There&rsquo;s a flash of unexpected content launching the Discovery feed which is a shame as it&rsquo;s one of my favourite features, although, absent a way of keeping this more dynamic and integrating 3rd party apps I question the ongoing investment.</p>
<p>There&rsquo;s not enough contrast in the alt-tab overlay at low screen brightnesses, Endless users care deeply about battery life and often run with low brightness, coupled with overall higher ambient light levels in their environments.</p>
<p>Search panels lack contrast in some corners whilst having too much in others. The interaction between the panel and the scroll bar (which will almost always be there on an Endless system as there&rsquo;s so much more content) is ugly, give that a bit more space to breathe, even if it means being slightly asymmetric it&rsquo;ll even up perceptually.</p>
<p><strong>My conclusions</strong></p>
<p>I feel incredibly satisfied with this release, even in an early state. Whilst I haven&rsquo;t worked for Endless in more than a year this beta is pretty much where we wanted to be all along with regards to slickness and material coherence. It&rsquo;s once you have that solid base that you can appreciate the differentiating features in the Endless experience.</p>
<p>Operating systems are a marathon, not a sprint. Coordinating features and experiences can take marshalling multiple communities, many years and a lot of effort. With 3.8 you can see a lot of the longer term bets Endless made a few years back paying off, I look forward to carrying on using this every day.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Linux Application Summit 2019</title>
      <link>https://www.nedrichards.com/2019/11/linux-application-summit-2019/</link>
      <pubDate>Tue, 19 Nov 2019 22:25:58 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2019/11/linux-application-summit-2019/</guid>

      <description><![CDATA[ <p>I was lucky enough to be sponsored by the <a href="https://www.gnome.org/foundation/">GNOME Foundation</a> to attend the 2019 Linux Application Summit, hosted in Barcelona between November 12th and 15th 2019.</p>
<p><img src="/img/sponsored-by-foundation-round.png" alt="Sponsored by the GNOME Foundation"></p>
<p>It was a great conference with a diverse crew of people who all care about making apps on Linux better. I particularly enjoyed <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/7">Frank&rsquo;s keynote on Linux apps from the perspective of Nextcloud</a>, an Actual ISV. Also worth your time is <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/59">Rob&rsquo;s talk on how Flathub would like to help more developers</a> earn money from their work; Adrien on <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/22">GTK and scalable UIs for phones</a>; Robin on <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/61">tone of voice and copywriting</a>; Emel on <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/47">Product Management in the context of GNOME Recipes</a> and Paul Brown on <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/9">direct language and better communication</a>. There were also great lightning talks including a starring turn by one of my former colleagues Martin Abente Lahaye who showed off the work he&rsquo;s been doing to make the Sugar educational applications more widely available with Flatpak. After a bit of review and some polish in the cafe they&rsquo;re now <a href="https://flathub.org/apps/details/org.sugarlabs.AbacusActivity">starting to appear on Flathub</a>. All of these videos are available to watch in the <a href="https://www.youtube.com/channel/UCjSsbz2TDxIxBEarbDzNQ4w">YouTube livestream playback</a>, and I&rsquo;m sure individually soon when appropriately processed.</p>]]></description>
      <content:encoded><![CDATA[ <p>I was lucky enough to be sponsored by the <a href="https://www.gnome.org/foundation/">GNOME Foundation</a> to attend the 2019 Linux Application Summit, hosted in Barcelona between November 12th and 15th 2019.</p>
<p><img src="https://www.nedrichards.com/img/sponsored-by-foundation-round.png" alt="Sponsored by the GNOME Foundation"></p>
<p>It was a great conference with a diverse crew of people who all care about making apps on Linux better. I particularly enjoyed <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/7">Frank&rsquo;s keynote on Linux apps from the perspective of Nextcloud</a>, an Actual ISV. Also worth your time is <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/59">Rob&rsquo;s talk on how Flathub would like to help more developers</a> earn money from their work; Adrien on <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/22">GTK and scalable UIs for phones</a>; Robin on <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/61">tone of voice and copywriting</a>; Emel on <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/47">Product Management in the context of GNOME Recipes</a> and Paul Brown on <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/9">direct language and better communication</a>. There were also great lightning talks including a starring turn by one of my former colleagues Martin Abente Lahaye who showed off the work he&rsquo;s been doing to make the Sugar educational applications more widely available with Flatpak. After a bit of review and some polish in the cafe they&rsquo;re now <a href="https://flathub.org/apps/details/org.sugarlabs.AbacusActivity">starting to appear on Flathub</a>. All of these videos are available to watch in the <a href="https://www.youtube.com/channel/UCjSsbz2TDxIxBEarbDzNQ4w">YouTube livestream playback</a>, and I&rsquo;m sure individually soon when appropriately processed.</p>
<p>I gave a talk entitled <a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/17">Product Management In Open Source</a>. Astute readers will recognise the title from the similar talk I gave <a href="https://www.nedrichards.com/2018/12/guadec-2018-product-management-in-open-source/">last year at GUADEC</a>, however the content is actually fairly different. Emel&rsquo;s talk that I mentioned above covered quite a lot of the basic material so I concentrated more on how individual app developers could use Product Management techniques to make their own practice a bit more deliberate and help them guide and prioritize their work.</p>
<script async class="speakerdeck-embed" data-id="a9239ac5477049ee90e9bafe5c261a68" data-ratio="1.41436464088398" src="//speakerdeck.com/assets/embed.js"></script>
<p>If you&rsquo;d like to <a href="https://youtu.be/FX2NpzdQz7c?t=13453">watch the video</a> then you&rsquo;re more than welcome, although I must warn you that I managed to lose my voice a couple of days before so my delivery isn&rsquo;t exactly what I would wish for. Still, I think you&rsquo;ll find it worthwhile.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Lucid</title>
      <link>https://www.nedrichards.com/2019/01/lucid/</link>
      <pubDate>Fri, 11 Jan 2019 16:45:37 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2019/01/lucid/</guid>

      <description><![CDATA[ <p>The start of a new year often brings change. Our family has increased in size, which is very exciting. I&rsquo;m also moving on from <a href="https://endlessos.com">Endless</a> and have a new job Managing Product at <a href="https://luc.id">Lucid</a>. I&rsquo;m sad to be leaving my friends at Endless after a couple of delightful and very satisfying years but I&rsquo;m also very pleased to be working with <a href="http://jonty.co.uk/">Jonty</a> and <a href="https://twitter.com/jonocole">Jono</a> again. I still remain as emotionally invested in the GNOME and Flatpak communities as ever - I just won&rsquo;t be paid to contribute, which is no bad thing for an open source project.</p>]]></description>
      <content:encoded><![CDATA[ <p>The start of a new year often brings change. Our family has increased in size, which is very exciting. I&rsquo;m also moving on from <a href="https://endlessos.com">Endless</a> and have a new job Managing Product at <a href="https://luc.id">Lucid</a>. I&rsquo;m sad to be leaving my friends at Endless after a couple of delightful and very satisfying years but I&rsquo;m also very pleased to be working with <a href="http://jonty.co.uk/">Jonty</a> and <a href="https://twitter.com/jonocole">Jono</a> again. I still remain as emotionally invested in the GNOME and Flatpak communities as ever - I just won&rsquo;t be paid to contribute, which is no bad thing for an open source project.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>GUADEC 2018 - Product Management In Open Source</title>
      <link>https://www.nedrichards.com/2018/12/guadec-2018-product-management-in-open-source/</link>
      <pubDate>Wed, 19 Dec 2018 22:40:24 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2018/12/guadec-2018-product-management-in-open-source/</guid>

      <description><![CDATA[ <p>This year at GUADEC in Almería I was lucky enough to give a talk entitled &ldquo;Product Management in Open Source&rdquo;. I&rsquo;ll give a text synopsis of the talk below but if you prefer you can watch the whole thing as delivered at <a href="https://archive.org/details/GUADEC2018ProductManagement">the Internet Archive</a> or have a look at the slides, which are entirely mysterious when viewed alone:</p>
<script async class="speakerdeck-embed" data-id="130a100f4cf64e0ba2ab7dfb1691cbf3" data-ratio="1.41436464088398" src="//speakerdeck.com/assets/embed.js"></script>
<p>The talk begins like so:
I&rsquo;m Nick Richards. I&rsquo;ve been a GNOME User for 20 years and a contributor and Foundation Member - 10 years (off and on). These days, the Free Software project I&rsquo;m most passionate about is <a href="https://flathub.org">Flathub</a>.</p>]]></description>
      <content:encoded><![CDATA[ <p>This year at GUADEC in Almería I was lucky enough to give a talk entitled &ldquo;Product Management in Open Source&rdquo;. I&rsquo;ll give a text synopsis of the talk below but if you prefer you can watch the whole thing as delivered at <a href="https://archive.org/details/GUADEC2018ProductManagement">the Internet Archive</a> or have a look at the slides, which are entirely mysterious when viewed alone:</p>
<script async class="speakerdeck-embed" data-id="130a100f4cf64e0ba2ab7dfb1691cbf3" data-ratio="1.41436464088398" src="//speakerdeck.com/assets/embed.js"></script>
<p>The talk begins like so:
I&rsquo;m Nick Richards. I&rsquo;ve been a GNOME User for 20 years and a contributor and Foundation Member - 10 years (off and on). These days, the Free Software project I&rsquo;m most passionate about is <a href="https://flathub.org">Flathub</a>.</p>
<p>These days I&rsquo;m a Product Manager at Endless. Endless OS ships a customised, forked version of GNOME shell and a plain version of the rest of the GNOME platform. It&rsquo;s currently based on 3.26 but with plenty of activity going on upstream.</p>
<p><strong>What is a Product Manager?</strong> <a href="https://blogs.gnome.org/chergert/2017/12/11/developing-skills-with-gnome/">Christian Knows</a>!</p>
<blockquote>
<p>&ldquo;Product managers are responsible for taking information and feedback from everywhere and converting that into a coherent project direction and forward looking vision. They analyze common issues, bug velocity, and features to ensure reasonable milestones that keeps the product functional as it transforms into it’s more ideal state. Most importantly, this role is leadership.&rdquo;</p>
</blockquote>
<p>It&rsquo;s often a role you grow into; Product Managers rarely start there. In the past I&rsquo;ve been a User Advocate, Interaction Designer, User Tester, Localiser and messed about with Development and Operations. Having a diverse background helps you empathise with all the people you have to interact with although most Product Managers are deep experts in one area.</p>
<p><strong>What does a product manager actually do?</strong></p>
<ul>
<li>Integrate all the things. You should know everything about your project, know a bit about everyone&rsquo;s job and be able to help wherever there&rsquo;s stress.</li>
<li>Maintain Standards everywhere. You don&rsquo;t have to approve everything and become a bottleneck, but you should be able to keep on top of things and be aware if dubious code is about to be released.</li>
</ul>
<p>A lot of this often boils down to saying no in an encouraging way. Doesn&rsquo;t this sound like a free software maintainer? So why should you care? You do this already. Christian, again:</p>
<blockquote>
<p>&ldquo;For the past 3 years I’ve been working very hard because I fulfill a number of these roles for Builder. It’s exhausting and unsustainable. It contributes to burnout and hostile communication by putting too much responsibility on too few people’s shoulders.&rdquo;</p>
</blockquote>
<p>You might want to get Product Management involved so you can spend more time doing the things you joined the project to work on.</p>
<p><strong>Which projects need Product Management?</strong> Not everything does, but if you&rsquo;re working on these kinds of things it can help:</p>
<ul>
<li>Cross cutting initatives (GNOME Goals) like the App Developer Experience or Privacy. The kind of areas where you need a strategic vision and co-ordination</li>
<li>&ldquo;Big&rdquo; projects likw the shell, builder, anywhere where really getting close to the details makes a difference or where a large team of regular contributors help out.</li>
</ul>
<p>Your project may not yet have the ambition to be &ldquo;Big&rdquo;, which is OK. I love constrained scope too and the growth of small &lsquo;single serving&rsquo; apps is one of the most interesting recent developments on the Free Desktop.</p>
<p><strong>Product doesn&rsquo;t work alone</strong>, Product is part of a software team. Here&rsquo;s a quick rundown of some of the roles that you might find on a software team: Developers, Interaction Designers, Quality Assurance,
User Support, Graphic Designers, Security Engineers, User and Developer Advocates, User Researchers, Tech writers, Build engineers, Operations people, Release managers, Standards Committee Members, Public Relations, Hackfest Organisers, Localisers, Internationalisers, and more&hellip; Very few projects will have all of these but expand your mind, what could your project do if it had some people working on one of these roles?</p>
<p>Product without other people is lonely and pointless. Solving complex problems requires a diverse team and often doesn&rsquo;t admit simple solutions. A perennial problem for open source is attracting people with skillsets you don&rsquo;t know about. You can&rsquo;t just sit around and wait for them to turn up and start working, you need to invite them in by name. Maybe also start by taking their tools seriously. Yes, that probably means GNOME should have a Discourse forum. There&rsquo;s been some really encouraging recent progress on modernising our infrastructure but GitLab is a great first step, not the end. The tricky, tricky bit once you&rsquo;ve got these people involed is making sure they don&rsquo;t go away. This doesn&rsquo;t mean &lsquo;do everything they say&rsquo; but it does need some open mindedness. The promise of Free Software is thatby having control over the software they run it will better fit peoples needs. Reducing the barrier between producers and consumers has always been a critical part of this and lowering it further by welcoming the skills of those who can help can only make our software stronger.</p>
<p><strong>How do you decide what to do?</strong> The best way to decide is by focusing on a mix of internal drive and user satisfaction. I never want to underestimate internal drive and product feel, it&rsquo;s what gives your software its unique flavour and can help create fanatically devoted and delighted users and contributors but if you want a large number of users then listening to feedback can be helpful.</p>
<p>Some good sources of feedback are: In person, GitLab (or bugzilla), IRC, Telegram, press reviews, blogs, forums, user testing. Just plain listening on bugzilla is kind of unhelpful, you need to look at your user support channels to feel the pain, and then translate that into a good engineering journal solution.</p>
<p>Endless has metrics which tell us some anonymised things about how people use our software (this is controversial). But they are very useful when used responsibly, for example they can tell me that Nautilus was GNOME app that Endless users opened most in the last month. But it&rsquo;s not clear we can just roll this out. GNOME has strong privacy guarantees and intermediating forces (like Endless!). It&rsquo;s not normally helpful to have people between yourself and the user if you want to react to their problems and provide solutions. Where possible, disintermediate (this means you should be using Flatpak for your apps).</p>
<p>User research and going onto the ground to talk to users and stakeholders is also really important. It&rsquo;s great to talk to people who were motivated enough to come to GUADEC but you get a whole different view by meeting people in their own context. This is something that Endless has been fanatical about, and has really influenced our product developement process and is an area GNOME can also do well in with its distributed community.</p>
<p>At the end of the day, great products never listen in just one way and a key role for Product Management is to weigh the feedback from each channel and merge it together into a coherant product direction. That&rsquo;s the real trick, good luck!</p>
<p>Summing up:</p>
<ul>
<li>
<p>Everyone is making a product - you may not need dedicated management right now but using the techniques can help.</p>
</li>
<li>
<p>If you want new people you have to do something to make it happen.</p>
</li>
<li>
<p>Get a diversity of feedback - but be discerning with how you listen to it.</p>
</li>
</ul>
]]></content:encoded>

    </item>
    
    <item>
      <title>Pinpoint Flatpak</title>
      <link>https://www.nedrichards.com/2018/08/pinpoint-flatpak/</link>
      <pubDate>Wed, 01 Aug 2018 15:40:38 +0100</pubDate>
      
      <guid>https://www.nedrichards.com/2018/08/pinpoint-flatpak/</guid>

      <description><![CDATA[ <p>A while back I made a <a href="https://www.nedrichards.com/2014/06/pinpoint-copr-repo/">Pinpoint COPR repo</a> in order to get access to this marvelous tool in Fedora.
Well, now I work for <a href="https://endlessos.com">Endless</a> and the only way you can run apps on our system is in a <a href="https://flatpak.org">Flatpak</a> container.
So I whipped up a quick <a href="https://github.com/nedrichards/pinpoint-flatpak">Pinpoint Flatpak</a> in order to give a talk at <a href="http://2018.guadec.org/">GUADEC</a> this year.</p>
<p>Flatpak is actually very helpful here, since the libraries required are rapidly becoming antique, and carrying them around on your base system is gross as well as somewhat insecure.
There isn&rsquo;t a GUI to create or open files, and it&rsquo;s somewhat awkward to use if you&rsquo;re not already an expert, so I didn&rsquo;t submit the app to Flathub, however you can easily download and install the bundle locally. I hope the two people for whom this is useful find it as useful as I did to make.</p>]]></description>
      <content:encoded><![CDATA[ <p>A while back I made a <a href="https://www.nedrichards.com/2014/06/pinpoint-copr-repo/">Pinpoint COPR repo</a> in order to get access to this marvelous tool in Fedora.
Well, now I work for <a href="https://endlessos.com">Endless</a> and the only way you can run apps on our system is in a <a href="https://flatpak.org">Flatpak</a> container.
So I whipped up a quick <a href="https://github.com/nedrichards/pinpoint-flatpak">Pinpoint Flatpak</a> in order to give a talk at <a href="http://2018.guadec.org/">GUADEC</a> this year.</p>
<p>Flatpak is actually very helpful here, since the libraries required are rapidly becoming antique, and carrying them around on your base system is gross as well as somewhat insecure.
There isn&rsquo;t a GUI to create or open files, and it&rsquo;s somewhat awkward to use if you&rsquo;re not already an expert, so I didn&rsquo;t submit the app to Flathub, however you can easily download and install the bundle locally. I hope the two people for whom this is useful find it as useful as I did to make.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Gitorious Closedown</title>
      <link>https://www.nedrichards.com/2015/04/gitorious-closedown/</link>
      <pubDate>Wed, 01 Apr 2015 10:20:22 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2015/04/gitorious-closedown/</guid>

      <description><![CDATA[ <p>The not-super-great-open-source code hosting system Gitorious has been <a href="https://about.gitlab.com/2015/03/03/gitlab-acquires-gitorious/">acquired and shut down</a> by the much-better-and-open-source code hosting system GitLab. This is an overall net win for humanity but does have a few downsides.</p>
<p>A few years ago Intel and Nokia selected Gitorious to host the source code for their MeeGo Operating System. With the upcoming shutdown, that code was about to go offline. Since I have a sentimental attachment to MeeGo I&rsquo;ve copied the repos for the <a href="https://meego-netbook-ux.github.io">MeeGo Netbook UX</a> (<a href="https://github.com/meego-netbook-ux">source code</a>) and <a href="https://meego-tablet-ux.github.io">MeeGo Tablet UX</a> (<a href="https://github.com/meego-tablet-ux">source code</a>) to GitHub.</p>]]></description>
      <content:encoded><![CDATA[ <p>The not-super-great-open-source code hosting system Gitorious has been <a href="https://about.gitlab.com/2015/03/03/gitlab-acquires-gitorious/">acquired and shut down</a> by the much-better-and-open-source code hosting system GitLab. This is an overall net win for humanity but does have a few downsides.</p>
<p>A few years ago Intel and Nokia selected Gitorious to host the source code for their MeeGo Operating System. With the upcoming shutdown, that code was about to go offline. Since I have a sentimental attachment to MeeGo I&rsquo;ve copied the repos for the <a href="https://meego-netbook-ux.github.io">MeeGo Netbook UX</a> (<a href="https://github.com/meego-netbook-ux">source code</a>) and <a href="https://meego-tablet-ux.github.io">MeeGo Tablet UX</a> (<a href="https://github.com/meego-tablet-ux">source code</a>) to GitHub.</p>
<p>Both of these projects are totally abandoned so don&rsquo;t expect Pull Requests to be merged or issues to be looked at, but it would be a shame if this just disappeared into a black pit of indifference.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Pinpoint COPR Repo</title>
      <link>https://www.nedrichards.com/2014/06/pinpoint-copr-repo/</link>
      <pubDate>Sat, 21 Jun 2014 19:59:35 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2014/06/pinpoint-copr-repo/</guid>

      <description><![CDATA[ <p>A few years ago I worked with a number of my former colleagues to create <a href="https://wiki.gnome.org/action/show/Apps/Pinpoint">Pinpoint</a>, a quick hack that made it easier for us to give presentations that didn&rsquo;t suck. Now that I&rsquo;m at <a href="https://www.collabora.com/">Collabora</a> I have a couple of presentations to make and using pinpoint was a natural choice. I&rsquo;ve been updating our internal templates to use our shiny new brand and wanted to use some newer features that weren&rsquo;t available in Fedora&rsquo;s version of pinpoint.</p>]]></description>
      <content:encoded><![CDATA[ <p>A few years ago I worked with a number of my former colleagues to create <a href="https://wiki.gnome.org/action/show/Apps/Pinpoint">Pinpoint</a>, a quick hack that made it easier for us to give presentations that didn&rsquo;t suck. Now that I&rsquo;m at <a href="https://www.collabora.com/">Collabora</a> I have a couple of presentations to make and using pinpoint was a natural choice. I&rsquo;ve been updating our internal templates to use our shiny new brand and wanted to use some newer features that weren&rsquo;t available in Fedora&rsquo;s version of pinpoint.</p>
<p>There hasn&rsquo;t been an official release for a little while and a few useful patches have built up on the master branch. I&rsquo;ve packaged a git snapshot and created a <a href="https://copr.fedoraproject.org/coprs/nedrichards/Pinpoint/">COPR repo for Fedora</a> so you can use these snapshots yourself. They&rsquo;re good.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Leaving Intel</title>
      <link>https://www.nedrichards.com/2012/02/leaving-intel/</link>
      <pubDate>Fri, 10 Feb 2012 17:05:24 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2012/02/leaving-intel/</guid>

      <description><![CDATA[ <p>Today was my last day at Intel. It&rsquo;s been an exceptional experience working with the guys and girls in London to make things that people haven&rsquo;t seen before and do it in an open fashion. It would (and did) take a wonderful opportunity to make me want to leave and I&rsquo;m really looking forward to telling you all about it when we announce what we&rsquo;re up to. In the meantime, have fun.</p>]]></description>
      <content:encoded><![CDATA[ <p>Today was my last day at Intel. It&rsquo;s been an exceptional experience working with the guys and girls in London to make things that people haven&rsquo;t seen before and do it in an open fashion. It would (and did) take a wonderful opportunity to make me want to leave and I&rsquo;m really looking forward to telling you all about it when we announce what we&rsquo;re up to. In the meantime, have fun.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>GNOME Shell: Iteration&#39;s what you need</title>
      <link>https://www.nedrichards.com/2011/09/gnome-shell-iterations-what-you-need/</link>
      <pubDate>Mon, 26 Sep 2011 21:46:13 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2011/09/gnome-shell-iterations-what-you-need/</guid>

      <description><![CDATA[ <p>I was delighted to be asked to give the <a href="http://www.gnome.org">GNOME</a> community keynote at the recent Desktop Summit in Berlin. It was entitled &ldquo;<a href="https://desktopsummit.org/program/sessions/gnome-shell-iterations-what-you-need">Iteration&rsquo;s what you need</a>&rdquo; and talked about getting better at making software. GNOME of course was one of the early pioneers of time based releases. They allowed things to get better, six months at a time and started to decouple features from releases. This is a process that has been taken on and intensified by the major browser makers and of course, websites.</p>]]></description>
      <content:encoded><![CDATA[ <p>I was delighted to be asked to give the <a href="http://www.gnome.org">GNOME</a> community keynote at the recent Desktop Summit in Berlin. It was entitled &ldquo;<a href="https://desktopsummit.org/program/sessions/gnome-shell-iterations-what-you-need">Iteration&rsquo;s what you need</a>&rdquo; and talked about getting better at making software. GNOME of course was one of the early pioneers of time based releases. They allowed things to get better, six months at a time and started to decouple features from releases. This is a process that has been taken on and intensified by the major browser makers and of course, websites.</p>
<p>This is especially relevant to GNOME given the recent release of 3.0, a slightly divisive major version which provides a whole new base to iterate on top of. I argued that we can use the new extensions framework in 3.0 to deliver a more personalised and adaptive interface to users which allows the community to target more users and helps to ease the pathway for new contributors into the project.</p>
<p>I was particularly keen to stress the importance of the existing design and goals led approach which has created such distinctive software, whilst trying to balance it with a slightly more anarchic playfulness. A lot of this shouldn&rsquo;t exactly be news to those who follow a number of today&rsquo;s leading software thinkers, or who&rsquo;ve looked at how top open organisations such as Mozilla deliver software platforms but hopefully it was brought together in an interesting way.</p>
<p>The talk was given in (and partly about) <a href="https://live.gnome.org/Pinpoint">Pinpoint</a>, a tool for making hackers give excellent presentations, and as such a plain look at the slides won&rsquo;t help very much as I won&rsquo;t be there to witter on over the top. But they <a href="https://speakerdeck.com/nedrichards/gnome-shell-iterations-what-you-need">are available if you&rsquo;re interested</a>.</p>
<p>In a great example of potential iteration within the tool the PDF export doesn&rsquo;t include the rather voluminous speaker notes which would be a good feature to add and if we do I&rsquo;ll update the post. Sadly, although the session was recorded on video there was an issue with the storage and it appears to have been lost. As such, I&rsquo;ve taken a little while to try and transform my notes into something a little more literary. Obviously, it&rsquo;s worth reading along with the pictures as the jokes will hopefully be funnier, and you&rsquo;ll get to enjoy many more of Pippin&rsquo;s beards. Anyway, and without further ado:</p>
<p><strong>GNOME: Iteration&rsquo;s what you need</strong></p>
<script src="https://speakerdeck.com/embed/4e80df6a55e59a0063001d32.js?size=preview"></script>
<p>Despite working on GNOME it appears that <a href="http://dot.kde.org/2011/07/26/release-47-new-features-improved-stability-and-performance">I&rsquo;m the face of a recent release of KDE</a>, so, welcome all to the ecumenical desktop summit. I work for Intel&rsquo;s OTC in London. Which is cool as according to MATHS we write a lot of Linux.</p>
<p>I am a designer. As a designer, my job is to try and meet people&rsquo;s needs and solve problems. As we know, GNOME is people so this talk should be full of overlap.</p>
<p>Or, to put it another way, my job is to work out how can you make people happy. Not by doing everything they say they want. At the same time people aren&rsquo;t (all) toddlers, you can&rsquo;t look or talk down to them. You&rsquo;ve got to get onto their level and often, humbly, admit they know more than you do about how to solve their problems.</p>
<p>This is one of the great strengths of open source, harnessing the energy of users and turning them into contributors, so for the future of your project you want to say yes as often as you can. So, this talk is going to be about ways that we can say &ldquo;yes, but&rdquo; more often rather than just plain no.</p>
<p>GNOME 2 was great (but it got there over 9 years). A few other things happened 9 years ago: The Euro, Water on Mars and Attack of the Clones. Not all of these have aged as well as GNOME 2. GNOME 3 is great (and it&rsquo;ll get better), 6 months at a time, on the same time based cycle that 2 did. But how do we get to awesome? And more quickly this time because we really need to be getting better at software after all this time.</p>
<p>Do we listen to the hackers, who want to launch lots of terminals? (turns out their workload looks uncannily like normal people wanting to launch lots of web browsers.) Or do we listen to <a href="https://plus.google.com/106327083461132854143/posts/SbnL3KaVRtM">this guy</a>?</p>
<p>Maybe we already did. The latest versions of GNOME and OS X are uncannily similar in visual and interaction terms, so maybe we should just follow the word of Steve Jobs. I reckon we say no, it is possible to do better than OS X, as anyone whose seen people use it for the first time will atest. But Apple&rsquo;s actually a really good case of iteration, both visual and interaction. They&rsquo;ve refeshed their experience, whilst staying pretty close to their core goals which is a success in my book.</p>
<p>How do designers iterate? Badly, and often on paper. Our tools suck for this currently, we need things which have the power of a dvcs to experiment and play with (example, I really need multiple pages in Inkscape).</p>
<p>Often we work by sketching a complete redesign, usually missing key features. Developers, do not be alarmed by this. It&rsquo;s just a way of finding out by feel what the key parts of the application are and can be a good way to remove cruft. We usually make sure we add all the stuff back in afterwards unless the point of an iteration is to remove a feature.</p>
<p>Here&rsquo;s a cool thing, it&rsquo;s an adaptation of the GIMP to add <a href="http://www.youtube.com/watch?v=RBL1cVzIQik">version control</a>. This is exactly the kind of awesome, ground breaking feature we need in open source to enable the kind of open collaboration that developers currently enjoy to work more easily for people who code less.</p>
<p>There is currently a surfeit of design wanted, compared to designers available in GNOME, which is great but sadly I&rsquo;m here to tell you that designers don&rsquo;t scale very well. There are quick wins available for improving software, but not as much as all that, as you need deep domain knowledge to create really cool stuff. So please, come and work with us. The great advantage of GNOME for designers who want to get into an open source community is that there are already some of us here, so you&rsquo;ve got people to chat to and that the developers are keen to collaborate, work with you and make great stuff together.</p>
<p>Iteration isn&rsquo;t a rewrite from scratch, you have to have the solid base existing to iterate on top of. But still, no sacred cows. GNOME is defined by the design goals, not specific instantiations of them. If the data leads you to do something drastic, then do something drastic. To me, these design principles are the most important document in the project. short enough to understand, opinionated enough to create a flavourful experience. This is the core around which iteration takes place, a guide to future goals and a quick test if something&rsquo;s &lsquo;gnomey&rsquo;.</p>
<p>Extensions lead to the possibility of cobranding. How would we feel about a Twitter enhanced GNOME product? How would we feel about a Kernel endorsed gnome product. Fedora has been ahead of the curve here with their spins and at intel we&rsquo;ve got a really cool thing called yocto which could be really interesting to manage a bundle of these extensions. Also we like automator. if we really embrace this kind of mass customisation, then we need a way to move users from mastery to ownership. Tools to build your own are a big theme for me and a big hole in our current setup.</p>
<p>Creating iteration should be a structured process of play: Structured in that you need a current benchmark to ensure you get no worse; Playful in that you should explore the problem space in unusual and interesting ways. Test before; test after, then you&rsquo;ll have some ammunition for going through a review process. We need design and code review. On this, I&rsquo;m very excited by the ui-review keyword in bugzilla it&rsquo;s very important conceptually to stop bad things happening but of course, the maintainter still owns their code so you&rsquo;re in an advisory position as a standard designer.</p>
<p>Feedback is the hard bit. As a company I would give you the standard designer answers (test with users, test with users, also, test with users). But as GNOME, the situation is different. After a bit of thought I feel that most bits of functionality should be tried as extensions first, and made available for installation and review. You then rely on the extension installer being a thing for normal people like it is on firefox. This will take investment.</p>
<p>Now, an example of iteration. I&rsquo;ll tell a story about pinpoint, which is a tool started by my friend <a href="http://pippin.gimp.org">Pippin</a>. In many ways this is a very standard open source story.</p>
<p>A person has a problem, in this case giving a presentation, so they write some software to fix that problem. And because they&rsquo;re a talented hacker, just turning out a new one isn&rsquo;t a problem, so they write it again and again, slightly different each time.</p>
<p>I&rsquo;m going to talk to you about Monty Panesar, he plays cricket for England. He started very well, but tailed off badly. And Shane Warne (another cricketer) said something very perceptive. He hasn&rsquo;t played 30 tests, he&rsquo;s played the same test 30 times. This is not iteration. So this was the most amazing and exciting thing, that rather than writing a new tool for every presentation. He started adding features to an existing tool. And why?</p>
<p>Because it rocked. Pinpoint has a view. it hates powerpoint, it hates most presentations that hackers give at conferences like this and it wants to make it so easy to give better presentations that you&rsquo;d be stupid not to. Its self defintion says it all, it&rsquo;s &ldquo;a tool for making hackers do excellent presentations&rdquo;.</p>
<p>He got some friends who wanted to use it too and who agreed with the plan. And they added a load of features. Hopefully you saw (or caught later) a couple of the awesome talks that my colleagues, Damien, Neil, Emmanuele and former colleague Chris put on to see some of the crazy features we have in pinpoint now such as webcam backgrounds, an embedded terminal and live update ad view of file changes.</p>
<p>But still, it&rsquo;s remained simple. Pinpoint a simple presentation tool that hopes to avoid audience death by bullet point and instead encourage presentations containing beautiful images and small amounts of concise text in slides.</p>
<p>And why? It&rsquo;s simple because features have to meet the opinionated design in order to get in. You&rsquo;re not allowed to make it any worse at its core, or add needlessly to the &lsquo;format&rsquo; but other than that - go for it!</p>
<p>So, we&rsquo;re coming in to land:
☃ Have a strong identity
☃ Adapt around that core
☃ Share those changes
Thanks.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Moblin language style guide</title>
      <link>https://www.nedrichards.com/2011/01/moblin-language-style-guide/</link>
      <pubDate>Sun, 23 Jan 2011 21:32:56 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2011/01/moblin-language-style-guide/</guid>

      <description><![CDATA[ <blockquote>
<p>I <a href="http://journal.benbashford.com/post/2848763029">read this</a> on the internet today. It&rsquo;s pretty good and made me think I should probably share some of the work I did for Moblin Netbook the year before last. Note: this does not apply to MeeGo.
Moblin is different. This is what you always need to remember when translating it into another language. Moblin is not OS X, GNOME, Windows or a phone.</p>
</blockquote>
<p>Moblin is not you, we do not use &lsquo;My&rsquo; anywhere. As Moblin is your friend we use &lsquo;Your&rsquo; this should be an informal you if your language has differences in status.</p>]]></description>
      <content:encoded><![CDATA[ <blockquote>
<p>I <a href="http://journal.benbashford.com/post/2848763029">read this</a> on the internet today. It&rsquo;s pretty good and made me think I should probably share some of the work I did for Moblin Netbook the year before last. Note: this does not apply to MeeGo.
Moblin is different. This is what you always need to remember when translating it into another language. Moblin is not OS X, GNOME, Windows or a phone.</p>
</blockquote>
<p>Moblin is not you, we do not use &lsquo;My&rsquo; anywhere. As Moblin is your friend we use &lsquo;Your&rsquo; this should be an informal you if your language has differences in status.</p>
<p>Moblin is your friend. She&rsquo;s one of our design personas - a single woman approx 30 years of age with a teenage son. She speaks informally and demotically to you, but not disrespectfully. You are treated as a partner throughout.</p>
<p>Moblin is not creepy. It doesn&rsquo;t remember embarassing things. It is always polite.</p>
<p>Moblin is funny, but not too funny. As an extension of the informality occasionally the interface will make a culturally specific pun or joke. This is intentional and should be replicated to your translation. Not specifically in the same place and not the same joke. Consider the many translations of the excellent Asterix comic book series where the jokes are culturally specific, everyone feels like they&rsquo;ve been told the same joke - but they actually share a joke space where everyone feels included despite having a seperate experience.</p>
<p>We aim only to use humour as a double indicator, where the user has another way of finding out the correct context. A great example is the volume control where the user can see their position on the slider and use the slider to control the volume. In English the descriptions of the slider positions are jokes based on Music and audio that is understood by the target market e.g. &lsquo;Turned up to 11&rsquo;. We aim for a maximum of 20% humorous labels in a multiple choice box. Be thoughtful.</p>
<p>Moblin is a symbiosis between hardware and software, collectively referred to as the &lsquo;computer&rsquo;. Moblin takes responsibility for successes and failures across the system.</p>
<p>Have fun writing for Moblin and it&rsquo;s quite likely that your users will have fun using it.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>MeeGo 1.0</title>
      <link>https://www.nedrichards.com/2010/05/meego-1.0/</link>
      <pubDate>Wed, 26 May 2010 16:45:53 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2010/05/meego-1.0/</guid>

      <description><![CDATA[ <p>New today, part of the last few months work. <a href="http://meego.com/devices/netbook/netbook-screenshots">MeeGo 1.0 for Netbooks</a>. Hope you like it.</p>]]></description>
      <content:encoded><![CDATA[ <p>New today, part of the last few months work. <a href="http://meego.com/devices/netbook/netbook-screenshots">MeeGo 1.0 for Netbooks</a>. Hope you like it.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>What Moblin Did Next</title>
      <link>https://www.nedrichards.com/2009/09/what-moblin-did-next/</link>
      <pubDate>Tue, 22 Sep 2009 18:03:57 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2009/09/what-moblin-did-next/</guid>

      <description><![CDATA[ <p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/wB8endPZoJ8&hl=en&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/wB8endPZoJ8&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>
<br />
We <a href="http://www.engadgetmobile.com/2009/09/22/intel-announces-moblin-2-1-for-phones/">designed an operating system for phones</a> too. Another awesome job from everyone in design and implementation. As ever, I&rsquo;m proud to work with you all.</p>]]></description>
      <content:encoded><![CDATA[ <p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/wB8endPZoJ8&hl=en&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/wB8endPZoJ8&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>
<br />
We <a href="http://www.engadgetmobile.com/2009/09/22/intel-announces-moblin-2-1-for-phones/">designed an operating system for phones</a> too. Another awesome job from everyone in design and implementation. As ever, I&rsquo;m proud to work with you all.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Talk at GCDS</title>
      <link>https://www.nedrichards.com/2009/06/talk-at-gcds/</link>
      <pubDate>Wed, 24 Jun 2009 14:45:05 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2009/06/talk-at-gcds/</guid>

      <description><![CDATA[ <p>If you happen to be heading to the Gran Canaria Desktop Summit in a couple of weeks then I&rsquo;d encourage you to come and see <a href="http://www.grancanariadesktopsummit.org/node/298">my talk on designing Moblin</a> at midday on the 8th July. It&rsquo;ll be fun.</p>]]></description>
      <content:encoded><![CDATA[ <p>If you happen to be heading to the Gran Canaria Desktop Summit in a couple of weeks then I&rsquo;d encourage you to come and see <a href="http://www.grancanariadesktopsummit.org/node/298">my talk on designing Moblin</a> at midday on the 8th July. It&rsquo;ll be fun.</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Moblin 2.0 Netbook Beta</title>
      <link>https://www.nedrichards.com/2009/05/moblin-2.0-netbook-beta/</link>
      <pubDate>Tue, 19 May 2009 09:30:15 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2009/05/moblin-2.0-netbook-beta/</guid>

      <description><![CDATA[ <p>Moblin is different. If there&rsquo;s one phrase that sums up what I&rsquo;ve been trying to do with the last six months or so it&rsquo;s that. After all, all of the stuff that&rsquo;s out there right now already exists. Doing the same thing again does not create a compelling reason for people to use your software.</p>
<p><object width="580" height="360" data="http://www.youtube-nocookie.com/v/vsCpIeLLoT8&amp;hl=en&amp;fs=1&amp;rel=0&amp;border=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/vsCpIeLLoT8&amp;hl=en&amp;fs=1&amp;rel=0&amp;border=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>So we set about putting our money where our mouth was and started building something. Starting today <a href="http://moblin.org/documentation/moblin-netbook-into">you can see where we&rsquo;ve got to so far</a> with the beta release of the Moblin 2.0 for Netbooks User Experience. Just <a href="http://moblin.org">go to moblin.org</a>, download it, burn it onto a nearby USB stick and you can either just run it live or install it to pretty much any netbook with an Atom chip. I think you&rsquo;ll like it.</p>]]></description>
      <content:encoded><![CDATA[ <p>Moblin is different. If there&rsquo;s one phrase that sums up what I&rsquo;ve been trying to do with the last six months or so it&rsquo;s that. After all, all of the stuff that&rsquo;s out there right now already exists. Doing the same thing again does not create a compelling reason for people to use your software.</p>
<p><object width="580" height="360" data="http://www.youtube-nocookie.com/v/vsCpIeLLoT8&amp;hl=en&amp;fs=1&amp;rel=0&amp;border=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/vsCpIeLLoT8&amp;hl=en&amp;fs=1&amp;rel=0&amp;border=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>So we set about putting our money where our mouth was and started building something. Starting today <a href="http://moblin.org/documentation/moblin-netbook-into">you can see where we&rsquo;ve got to so far</a> with the beta release of the Moblin 2.0 for Netbooks User Experience. Just <a href="http://moblin.org">go to moblin.org</a>, download it, burn it onto a nearby USB stick and you can either just run it live or install it to pretty much any netbook with an Atom chip. I think you&rsquo;ll like it.</p>
<p>During this project I&rsquo;ve had the good fortune to work with a whole group of people whose immense technical skills, personal charm and good humour I respect and admire wholeheartedly. Everything that is good about or project is there because they envisioned, supported or improved it in countless ways. Most of these people will not be mentioned in press releases so I&rsquo;d like to take a moment to thank as many of them as I can personally for making this last little while the most thrilling, tiring and satisfying period of my professional life. So thanks (in no particular order) to: Darren Wilson, Claire Alexander, Hylke Bons, Matthew Alum, Ross Burton, Tomas Frydrych, Mark Skarpness, Paul Cooper, Øyvind &lsquo;Pippin&rsquo; Kolås, Michael Meeks, Srini Ragavan, Chris Lord, Neil Roberts, Rob Bragg, Cyrene Domogalla, Jason Casseza, Arjan van den Ven, Anas Nashif, all the guys and girls in PRC QA, Iain Holmes, Damien Lespiau, Josh Lock, Jussi Kukkonen, Patrick Ohly, Thomas Wood, Emmanuele Bassi, Geoff Gustafson, Robert Staudinger, Sharon Murphy and of course, Rob Bradford. Thanks guys, I really couldn&rsquo;t have done it without you. It&rsquo;s been fun but it doesn&rsquo;t end here.</p>
<p>We&rsquo;re going to continue iterating this platform to knock off as many of the sharp edges as possible (we&rsquo;re well aware that there&rsquo;s quite a few) and continue taking our design philosophy to other platforms. Now that our UI is public and properly open source we&rsquo;d love to chat. <a href="http://moblin.org/documentation/moblin-netbook-into">I hope you enjoy it</a>.</p>
<p>Love,</p>
<p>Nick</p>
]]></content:encoded>

    </item>
    
    <item>
      <title>Intel</title>
      <link>https://www.nedrichards.com/2008/11/intel/</link>
      <pubDate>Mon, 17 Nov 2008 12:10:04 +0000</pubDate>
      
      <guid>https://www.nedrichards.com/2008/11/intel/</guid>

      <description><![CDATA[ <p>After a very happy and rewarding time I&rsquo;ve left <a href="http://www.fjordnet.com">Fjord</a> and today I started working in the <a href="http://software.intel.com/sites/oss/">Intel Open Source Technology Centre</a> with the old <a href="http://o-hand.com/">Opened Hand</a> crew in London. It&rsquo;s good. We&rsquo;re going to make some nice stuff. I&rsquo;ll let you know when you can have a look.</p>]]></description>
      <content:encoded><![CDATA[ <p>After a very happy and rewarding time I&rsquo;ve left <a href="http://www.fjordnet.com">Fjord</a> and today I started working in the <a href="http://software.intel.com/sites/oss/">Intel Open Source Technology Centre</a> with the old <a href="http://o-hand.com/">Opened Hand</a> crew in London. It&rsquo;s good. We&rsquo;re going to make some nice stuff. I&rsquo;ll let you know when you can have a look.</p>
]]></content:encoded>

    </item>
    
  </channel>
</rss>
