<?xml version="1.0" encoding="UTF-8"?><rss 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" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Tom's Blog]]></title><description><![CDATA[Thoughts, stories and ideas.]]></description><link>https://blog.tomwj.com/</link><image><url>http://blog.tomwj.com/favicon.png</url><title>Tom&apos;s Blog</title><link>https://blog.tomwj.com/</link></image><generator>Ghost 3.23</generator><lastBuildDate>Sun, 19 Apr 2026 06:28:39 GMT</lastBuildDate><atom:link href="https://blog.tomwj.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Why do Companies Charge for SSO?]]></title><description><![CDATA[<h1 id="what-is-sso">What is SSO?</h1><p>SSO stands for single sign-on. The dream of SSO is that you sign-in once, then you can access websites without creating more accounts, new passwords and, confirming emails. It makes things simpler, easier, and more secure.</p><h1 id="why-is-it-so-complex">Why is it so complex?</h1><p>SSO just refers to the outcome,</p>]]></description><link>https://blog.tomwj.com/why-do-companies-charge-for-sso/</link><guid isPermaLink="false">64dcae11b74960008dd13e0e</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Wed, 16 Aug 2023 11:20:00 GMT</pubDate><content:encoded><![CDATA[<h1 id="what-is-sso">What is SSO?</h1><p>SSO stands for single sign-on. The dream of SSO is that you sign-in once, then you can access websites without creating more accounts, new passwords and, confirming emails. It makes things simpler, easier, and more secure.</p><h1 id="why-is-it-so-complex">Why is it so complex?</h1><p>SSO just refers to the outcome, not how to do it, or the underlying technology. The two major standards are SAML and OpenID Connect (OIDC) these provide the common language for different services and systems to talk to, and understand each other. They’re very flexible to support many different authentication scenarios, this is the first issue, understanding what the scenario is, and how to describe it. For example Offline authentication is the term used for authenticating an application without a person, it kinda makes sense, not obvious though.</p><h1 id="simple-example">Simple Example</h1><p>You are signed into Microsoft Office365 at your company, in this case Microsoft would be called the Identity Provider (IdP) it knows your name and that you’re signed in. You then try to access a website using SSO e.g. Filtered. Filtered will ask Microsoft if you’re signed in and what your name is. Microsoft being security conscious won’t just give that information to Filtered first it will ask your permission for Filtered to see it. You click ok, you’re now logged into Filtered 🎉.</p><p>The first snag is most of companies won’t allow you to give permission to Filtered to access your name for security reasons, in this case we will need permission to be granted by a company administrator. In a 100k+ person company, finding this person, getting the right forms filled, and permissions granted is hard.</p><h1 id="where-things-get-tricky">Where things get tricky</h1><p>In this scenario Filtered is the the client and Microsoft is the IdP. Lots of authentication services e.g. Okta, Keycloak, Azure Active Directory can act as both an IdP and a client. This is where it gets confusing, you might have signed into Microsoft but it is a client of another IdP say Okta 🤯 also lots of companies will have many different applications and each one will have it’s own Microsoft authentication service, which could be being used as an IdP or a client, and that’s just for a single service like Microsoft Azure Active Directory.</p><p>Google, Facebook, GitHub, OneLogin can all also act as IdPs providing one or more IdPs, each with slight differences in how they’re configured. For these giants most authentication services make it easy to connect. However not everything is supported out of the box, if it’s not then we’re back to writing a custom SAML or OIDC workflow to integrate, which requires getting permissions, configurations and tokens from IT and security teams for whom this is a very infrequent job.</p><h1 id="who-controls-access">Who controls access?</h1><p>The next question is who decides who has access to Filtered. Once Microsoft comes back saying you’re signed in, we will check whether you have permission to access Filtered, if not you’ll see an permission denied page. However in some companies it is a hard requirement that they manage access groups. So in addition to your name and if you’re signed in Microsoft can also tell us what groups you belongs to say <code>filtered_users</code>  or <code>filtered_admins</code> we would then need to write code to check and read those groups, to confirm your company has given you permission to access Filtered. What happens if we don’t get the groups we’re expecting back? It gets hard quickly.</p><h1 id="knowledge-gap">Knowledge gap</h1><p>SSO and user authentication is often not well understood inside companies. Once it's setup there's no reason to touch it so administrators aren't familiar with it. There's similar problems in airplane interface design, if there's a manual emergency process but a pilot never has to use it, they'll forget how to do it when it matters. Getting SSO working often requires lots of debugging through a keyhole to try and understand a companies configuration, this is fundamentally why a lot of companies charge for SSO. It could/should be simple, but rarely is for large security conscious companies. If SSO is a pre-requisite to close a deal, then as a supplier you're on the hook to get SSO working, even if it's not in your control to fix.</p><h1 id="can-t-you-just-buy-something-in-this-must-be-a-solved-problem">Can’t you just buy something in, this must be a solved problem?</h1><p>Yes, and no. Most services are billed on the seat, we still run some products that have many active users, which would very quickly eat up our margins if we paid per head. They also don’t fundamentally simplify the problem space which is there are many different services that support many different configurations. Paying for a SaaS system doesn’t change this, it gives a nicer interface, and a few more off the shelf integrations than you get with a common open source tool like Keycloak, but most crucially professional support.</p><!--kg-card-begin: html--><p>If you're having SSO problems <a href="mailto:hello@tomwj.com?subject=SSO Consultancy Services" target="_blank">drop me an email</a> to chat about how I can help</p><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Notes on brazing in the UK]]></title><description><![CDATA[<h1 id="introduction">Introduction</h1><p>Brazing is great for bicycle frame and rack building. It's complementary to welding. As a process it's fairly straightforward, like soldering at a higher temperature. The hard bit is finding suppliers for the consumables.</p><h1 id="heat-sources">Heat Sources</h1><h2 id="oxygen-fuel-torches">Oxygen fuel torches</h2><h3 id="advantages">Advantages</h3><p>Can be used for a variety of tasks including</p>]]></description><link>https://blog.tomwj.com/guide-to-brazing-in-the-uk/</link><guid isPermaLink="false">63557dcdb74960008dd13cda</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Sun, 23 Oct 2022 19:12:56 GMT</pubDate><content:encoded><![CDATA[<h1 id="introduction">Introduction</h1><p>Brazing is great for bicycle frame and rack building. It's complementary to welding. As a process it's fairly straightforward, like soldering at a higher temperature. The hard bit is finding suppliers for the consumables.</p><h1 id="heat-sources">Heat Sources</h1><h2 id="oxygen-fuel-torches">Oxygen fuel torches</h2><h3 id="advantages">Advantages</h3><p>Can be used for a variety of tasks including cutting steel</p><h3 id="disadvantages">Disadvantages</h3><p>Limited options for gas as a DIYer. Businesses rent the bottles per month but for a DIYer who's going to use them infrequently that makes it too expensive.</p><p>Very small <a href="https://www.wolseley.co.uk/product/rothenberger-roxy-35740-welding-kit-set-120-ltr-p688848-44/">disposable bottle kits</a> the gas is really expensive, even if the initial cost is low. £200 for gas, torch, goggles, and ignighter. Good for a one off. The torch also looks very small. <a href="https://www.thewelderswarehouse.com/Welding-Supplies/Disposable-Oxygen-Cylinder-2.2L.html#SID=425">2.2ltrs Oxygen £32</a></p><p><a href="https://www.thewelderswarehouse.com/Welding-Supplies/Portapack-LD-Gas-Welding-Kit.html">OxyAcetylene torch kit</a> £224 has a trolley, goggles, torch, hoses and flashback arrestors. The trolley is part of the safety equipment to make sure the bottle don't fall over, and to secure them.</p><h2 id="hobbyweld">Hobbyweld</h2><p><a href="https://hobbyweld.co.uk/products/acetylene/">Hobbyweld</a> offer bottles rent free, a small acetylene bottle is £120 deposit. It's a 5ltr bottle with 8kg tare. It won't hold anywhere near that much acetylene because it's disolved in acetone. Unfortunately there's a single plant in europe that supplies Hobbyweld so it's not available for new customers. The oxygene is £70 deposit for a small bottle.</p><blockquote>As you may be aware, we - like many other suppliers of Acetylene in the UK - outsource the filling of our Acetylene cylinders to a plant in Europe. We regret to inform you that despite having plenty of new cylinder stock, we continue to have difficulty getting the product filled. We are not currently able to get a substantial product flow from our contracted supplier and this is causing much frustration to end users, stockists and ourselves.<br><br>This has been an on-going issue for a while now and I would like to take this opportunity to thank you for your understanding and patience during this difficult period.<br><br>For now, current status remains unchanged with major supply restrictions from the external filling plant, with no assurance from them to when current shortages are going to end.</blockquote><h3 id="gas-uk">Gas UK</h3><ul><li>£110, £50 for 10ltrs oxygen £60 deposit</li><li>£190, £90 for 10ltrs acetylene £100 deposit</li><li>£75, £25 for<a href="https://gas-uk.co.uk/index.php/propylene-fuel-5-litre.html"> 5ltrs of propylene</a> £50 deposit</li></ul><p>Deposit within 1 year is 100% return and after 3 years it goes to 0%</p><p>Not using acetylene makes it much cheaper and safer, acetylene is not to be messed with,<a href="https://www.boconline.co.uk/en/images/Facts-about-acetylene_tcm410-262700.pdf"> it disolved in acetone, in a honeycomb structure to stop it exploding</a> and has limitations on how much can be drawn from a cylinder.</p><p>A complete OxyPropylene setup would be £435,  £250 for<a href="https://www.thewelderswarehouse.com/Welding-Supplies/Disposable-Oxygen-Cylinder-2.2L.html#SID=425"> the kit</a> and £185 for the gas.</p><p>BOC</p><p>£10 per month rental for each of the oxygen and acetylene cylinder<br>Oxygen £20 6ltrs <br>Acetylene £70 for 5.7ltrs ( probably cylinder size rather than actual acetylene)</p><p><a href="https://www.boconline.co.uk/shop/en/uk/acetylene-size-k-15-k">https://www.boconline.co.uk/shop/en/uk/acetylene-size-k-15-k</a></p><h2 id="propane-torches">Propane Torches</h2><h3 id="advantages-1">Advantages</h3><ul><li>Propane is cheap and easily available</li><li>Safer than acetylene</li></ul><h3 id="disadvantages-1">Disadvantages</h3><ul><li>Doesn't get as hot</li></ul><p><a href="https://bullfinch-gas.co.uk/blowtorches/autotorch-brazing-sys/autotorch-brazing-kit-detail">Bullfinch Autotorch brazing kit</a> £150</p><h1 id="brazing-rods-and-flux">Brazing rods and flux</h1><p></p><h1 id="steels">Steels</h1><p></p><h1 id="east-london-suppliers">East London Suppliers</h1><p>The bulk of these places are trade suppliers, geared up to running on the phone and in person contact. A decent website is a bonus.</p><p>Hobbyweld gas suppliers</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.sovereigndiscountspares.co.uk/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Car Parts | Car Accessories | Caar</div><div class="kg-bookmark-description">Car Parts and Car Accessories from CAAR UK | The best choice for Car Parts, Accessories and Leisure Spares</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.sovereigndiscountspares.co.uk/assets/img/favicon.png"><span class="kg-bookmark-publisher">Caar</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.sovereigndiscountspares.co.uk/assets/img/header.gif"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.londongases.co.uk/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Calor Gas, Coal and Log Delivery in London</div><div class="kg-bookmark-description">As London’s leading independent supplier of calor gas, coal and logs we take pride in our great delivery service to businesses and residential customers in and around London.</div><div class="kg-bookmark-metadata"><span class="kg-bookmark-author">Creative Intent</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.londongases.co.uk/images/london-gases-logo.png"></div></a></figure><p><a href="https://www.wesweld.co.uk/">https://www.wesweld.co.uk/</a></p>]]></content:encoded></item><item><title><![CDATA[Decorating]]></title><description><![CDATA[<h2 id="order-of-operations">Order of operations</h2><ol><li>Finish installing trim and filling</li><li>Start filling walls</li><li>Paint trim</li><li>Mask trim and finish painting walls</li></ol><h2 id="painting-and-paints">Painting and Paints</h2><p><a href="https://www.wickes.co.uk/Dulux-Easycare-Washable+Tough-Matt-Emulsion-Paint---Pure-Brilliant-White---2-5L/p/153767">Dulux Easycare Washable &amp; Tough Matt Emulsion Paint</a> - really good coverage, a brilliant white.</p><p><a href="https://www.wickes.co.uk/Dulux-Matt-Emulsion-Paint---Pure-Brilliant-White---5L/p/121110">Dulex Matt Emulsion Pure Brilliant White</a> thin, poor opacity, slightly yellow compared with</p>]]></description><link>https://blog.tomwj.com/decorating/</link><guid isPermaLink="false">62b1ea8869b6d03d823abbab</guid><category><![CDATA[diy]]></category><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Tue, 21 Jun 2022 16:21:33 GMT</pubDate><content:encoded><![CDATA[<h2 id="order-of-operations">Order of operations</h2><ol><li>Finish installing trim and filling</li><li>Start filling walls</li><li>Paint trim</li><li>Mask trim and finish painting walls</li></ol><h2 id="painting-and-paints">Painting and Paints</h2><p><a href="https://www.wickes.co.uk/Dulux-Easycare-Washable+Tough-Matt-Emulsion-Paint---Pure-Brilliant-White---2-5L/p/153767">Dulux Easycare Washable &amp; Tough Matt Emulsion Paint</a> - really good coverage, a brilliant white.</p><p><a href="https://www.wickes.co.uk/Dulux-Matt-Emulsion-Paint---Pure-Brilliant-White---5L/p/121110">Dulex Matt Emulsion Pure Brilliant White</a> thin, poor opacity, slightly yellow compared with the easycare, not worth it.</p><p><a href="https://www.screwfix.com/p/leyland-trade-fast-drying-paint-brilliant-white-2-5ltr/88133">Leyland Satinwood Fast Drying</a> a tricky paint to use, needs to be put on thick with minimal brushing <a href="https://www.hamiltondecoratingtools.co.uk/knowledge-room/guides/working-with-water-based-gloss-getting-the-best-results/">Working with water based gloss</a> helped. The benefit is though easy clean up and no smell. Hard to get a good finish, but it's definitely worth it for not having to mess around with solvents.</p><ul><li>Good synthetic brush</li><li>Wet brush before use</li><li>Paint in one direction, apply thick, even out, move on. Going back just makes it worse</li></ul><p>Next time I'll get a short extension pole for the roller, to reduce the amount of bending down to load the roller.</p><h2 id="filling">Filling</h2><h3 id="walls">Walls</h3><ol><li>Expanding foam, then trim</li><li>Then fast drying plaster based filler, sand back with eletric sander and shopvac. I used 80 grit. A plastering trowel really helps with blending and reduces the amount of sanding. In time I'd love to get good enough not to need to sand because it's slow, messy and noisy.</li><li><a href="https://www.screwfix.com/p/polycell-trade-polyfilla-one-fill-tub-white-1ltr/82124">Polycell One Fill</a> seems expensive but so easy to apply, and fast drying. 30mins and it can be sanded easily. With a bit of practice it can probably be applied without needing sanding. Great for evening for filling any small holes left after sanding</li></ol><p>This process worked well, and gave a good finish. More sanding and filling gives a better finish. It's a wall at the end of the day though and not a classic car.</p><h3 id="timber">Timber</h3><p>The fast drying epoxy fillers are quick but very hard, so tricky to sand. The Polycell One Fill was good enough and much quicker and less smelly to apply</p><p>DON'T bung a load of caulk in big gaps, it takes ages to dry and shrinks.</p><h2 id="skirting-boards">Skirting boards</h2><ol><li>Drill and counter sink hole in skirting</li><li>Drill into wall</li><li>Hammer the screw through with a wall plug on</li><li>Tighten down</li></ol><p>For uneven wall this meant it was possible to suck the skirting up against the wall so there was less filling.</p>]]></content:encoded></item><item><title><![CDATA[Engineering Management resource]]></title><description><![CDATA[List of management resources, and my thoughts about them.]]></description><link>https://blog.tomwj.com/engineering-management-resource/</link><guid isPermaLink="false">62b0459269b6d03d823abb5b</guid><category><![CDATA[engineering]]></category><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Mon, 20 Jun 2022 10:29:14 GMT</pubDate><content:encoded><![CDATA[<p>List of management resources, and my thoughts about them.</p><h1 id="writing-an-essay">Writing an essay</h1><p>People from various backgrounds won't have ever had to write an essay. This is a simple format to write something well structured and engaging.</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet" data-width="550"><p lang="en" dir="ltr">... remember this? <br><br>I think a lot of adults doing tech work would benefit from this &quot;framework&quot;<br><br>Is it the only way to write? Absolutely not. <a href="https://t.co/shtQBRdEuS">pic.twitter.com/shtQBRdEuS</a></p>&mdash; John Cutler (@johncutlefish) <a href="https://twitter.com/johncutlefish/status/1534340046744014848?ref_src=twsrc%5Etfw">June 8, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p><a href="http://blog.tomwj.com/engineering-management-resource/Standford%20Engineering%20writing%20clearly%20and%20concisely">https://stanford.edu/class/ee267/WIM/writing_style_guide.pdf</a></p><h2 id="writing-well">Writing well</h2><p>Learning to write well is a skill that pays long term dividends. It helps build common ground, and is the fastest way to convey complex topics.</p><p>This is a list of resources I've found useful for my own reference, and to send people.</p><p>gov.uk is quite broad, it's good because it is specifically about writing for the web which is different from a book, or paper.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.gov.uk/guidance/content-design/writing-for-gov-uk"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Content design: planning, writing and managing content - Writing for GOV.UK - Guidance - GOV.UK</div><div class="kg-bookmark-description">How to write well for your audience, including specialists.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.gov.uk/assets/static/govuk-apple-touch-icon-180x180-026deaa34fa328ae5f1f519a37dbd15e6555c5086e1ba83986cd0827a7209902.png"><span class="kg-bookmark-publisher">GOV.UK</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.gov.uk/assets/static/govuk-opengraph-image-dade2dad5775023b0568381c4c074b86318194edb36d3d68df721eea7deeac4b.png"></div></a></figure><p><a href="https://stanford.edu/class/ee267/WIM/writing_style_guide.pdf">Stanford Engineering - Writing Clearly and Concisely</a> is a good short introduction to technical writing.</p><p>Focussed on wordcount, but provides good worked examples of removing waffle from text.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://redwoodink.com/resources/10-tricks-to-reduce-your-word-count-in-academic-writing"><div class="kg-bookmark-content"><div class="kg-bookmark-title">10 Tricks to Reduce Your Word Count in Academic Writing — Redwood Ink - Scientific and Medical Editing</div><div class="kg-bookmark-description">Cutting down your hard-won draft to meet a page or word limit can be agonizing, especially when you’re under pressure to meet a deadline just hours away. When you have little time to spare, making small revisions can add up to the space you need. Learn ten simple tricks you can use to quickly tighte</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://images.squarespace-cdn.com/content/v1/599f5cc5f5e23126904e2edb/1533683217682-FSU0B32V5VNSEXLPLGA9/favicon.ico?format=100w"><span class="kg-bookmark-author">Crystal Herron</span><span class="kg-bookmark-publisher">Redwood Ink - Scientific and Medical Editing</span></div></div><div class="kg-bookmark-thumbnail"><img src="http://static1.squarespace.com/static/599f5cc5f5e23126904e2edb/5a84752653450af3a55e2b46/5c1039ce21c67cbb6c4f2996/1641827548722/nathan-dumlao-553945-unsplash.jpg?format=1500w"></div></a></figure><h2 id="structuring-text-and-documents">Structuring text and documents</h2><p>Although the next couple of links aren't about writing. Thinking about a piece of writing as a journey that you're leading the reader on helps with structuring it.</p><ul><li><a href="https://content.tfl.gov.uk/tfl-interchange-signs-standard.pdf">TFL's wayfinding guidance</a> written for physical navigation applies equally to digital navigation.</li></ul><blockquote>To ensure signing is clear and simple for customers passing through the station there should be a logical progession of information.<br><br>This should be based around the customer needs<br>at key decision points, keeping messages concise<br>and signs as simple and legible as possible.</blockquote><p>There are interesting parrallels with <a href="https://www.polygon.com/2015/9/7/9272113/mario-nintendo-miyamoto-game-design">the design of Mario World 1-1</a>  each element of the game's mechanics are gradually introduced. It's a great example of intuative design and progressive disclosure. Which was achieved by watching people play and adapting the level, based on what they did.</p><p>I often think that a well written text enables speed running, you can very quickly run through it and pull out the information required. Clear flowing text enables, and supports just in time knowledge and skill acquisition.</p><h1 id="annual-performance-reviews">Annual Performance Reviews</h1><p>As I've researched how to do annual reviews better. I've found there's growing articles and thought about how they're counter productive. None of them have provided a good answer for how to manage pay rises. In tech this matters, it's much easier to move jobs and get paid more, than get a pay rise. For a company, it's a false economy not increasing pay. When a good developer leaves you lose domain, and company knowledge. It also creates additional work and cost from recruitment. Recruiting good engineers is hard.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://medium.com/@ElizAyer/annual-performance-reviews-ruin-everything-7464e07dff3a"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Annual Performance Reviews Ruin Everything</div><div class="kg-bookmark-description">There is hardly an area of work, psychological safety, growth, collaboration or equity that annual performance reviews don’t undermine. Think I’m exaggerating? Have I got a (long) post for you…. I’ve…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://miro.medium.com/fit/c/152/152/1*sHhtYhaCe2Uc3IU0IgKwIQ.png"><span class="kg-bookmark-author">Elizabeth Ayer</span><span class="kg-bookmark-publisher">Medium</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://miro.medium.com/max/900/0*sAWEh3UxNbQ2X5Ye.png"></div></a></figure><p>Couples feedback and growth to remuneration ignoring the broader business context, being set up for success or failure. There was another article I read about this that went into more detail about how combining feedback and compensation into the same discussion was counter productive</p><p>The nub of the problem is it's almost impossible to evaluate if someone was given a poison chalice of a project or it was really easy. A large amount of this relates to the context they operate in, which isn't within their control.</p><p>There's also strong evidence that it re-inforces stereotypes, and disadvantages people that don't speak up or advocate for themselves.</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet" data-width="550"><p lang="en" dir="ltr">Performance reviews are riddled with stereotypes:<br><br>1. White &amp; Asian men are geniuses; women are overachievers<br>2. Men are confident &amp; ambitious; women are nice or abrasive<br>3. Black people are passionate (i.e., difficult)<br><br>Feedback should focus on contributions, not personality. <a href="https://t.co/Q2ulhnFFEn">pic.twitter.com/Q2ulhnFFEn</a></p>&mdash; Adam Grant (@AdamMGrant) <a href="https://twitter.com/AdamMGrant/status/1537088653188599809?ref_src=twsrc%5Etfw">June 15, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><h1 id="infrastructure">Infrastructure</h1><p><a href="https://matt-rickard.com/dont-use-kubernetes-yet/">Don't use Kubernetes Yet</a> - Matt Rickard</p><p>Start with containers built locally - strongly agree with this you get most of the benefits of re-producable build without having to spend the effort to set it up.</p><p>The benefit of running code with serverless compute e.g. AWS Lambda breaks down as soon as you have long running tasks or need something outside the constraints of the system. Often you'll then need a container service, at which point you've mitigated the benefits and now have two ways to run and deploy code.</p><p>For very small companies managed Kubernetes has always felt like a foot-gun, one click to deploy. As soon as something doesn't work perfectly you have all the complexity and someone needs to understand it.</p><p>However overtime you often end up building a custom API for defining services. In my case this looked like a terraform module, which handled defining services in ECS. It's badly documented and custom. It also doesn't integrate with the Kubernetes ecosystem which means we can't leverage existing tools for example to do blue/green deployments.</p><p></p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet" data-width="550"><p lang="en" dir="ltr">Go slower to go faster. <br>Or you will go slower. <br><br>Balance. Renewal. Continuous Improvement. Refactoring. <br><br>Allow time for it, every day. Personal and work. <a href="https://twitter.com/hashtag/BVSSH?src=hash&amp;ref_src=twsrc%5Etfw">#BVSSH</a> <a href="https://t.co/qaKTLDslgq">pic.twitter.com/qaKTLDslgq</a></p>&mdash; Jonathan Smart (@jonsmart) <a href="https://twitter.com/jonsmart/status/1539573174479855616?ref_src=twsrc%5Etfw">June 22, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><h1 id="communication-strategies">Communication Strategies</h1><p></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://slack.com/intl/en-gb/blog/collaboration/etiquette-tips-in-slack"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Collaborate with kindness: Consider these etiquette tips in Slack</div><div class="kg-bookmark-description">Slack is where work flows. It’s where the people you need, the information you share and the tools you use come together to get things done.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://a.slack-edge.com/5f35cf0/img/icons/favicon-32-ua.png"><span class="kg-bookmark-author">Slack</span><span class="kg-bookmark-publisher">Slack</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://d34u8crftukxnk.cloudfront.net/slackpress/prod/sites/6/2019-07_Haughey_EtiquetteTips_Unfurl.jpg"></div></a></figure><p>What I find most interesting is how much of what I like about Slack, overlaps with  the thinking from Stripe, from 2014.</p><ul><li>Ability to have full history searchable history</li><li>Being able to @ someone in an existing thread</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://stripe.com/blog/scaling-email-transparency"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Scaling email transparency</div><div class="kg-bookmark-description">Email transparency at Stripe: How we’ve scaled it.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://images.ctfassets.net/fzn2n1nzq965/2EOOpI2mMZgHYBlbO44zWV/5a6c5d37402652c80567ec942c733a43/favicon.png?w=180&amp;h=180"><span class="kg-bookmark-author">Greg Brockman</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://stripe.com/blog/scaling-email-transparency?q=80"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[When the party stops]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h1 id="thelastsong">The last song</h1>
<p>For years I'd woken up hungover, every cell in my body pickled, thinking it must be doing some damage. I'd push it to the back of my mind as paranoia.</p>
<p>Around spring 2018 I developed a faint dull pain in my liver. I'd also noticed some swelling</p>]]></description><link>https://blog.tomwj.com/stopping-drinking/</link><guid isPermaLink="false">5f5b5d4169b6d03d823abb01</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Thu, 17 Dec 2020 16:36:24 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h1 id="thelastsong">The last song</h1>
<p>For years I'd woken up hungover, every cell in my body pickled, thinking it must be doing some damage. I'd push it to the back of my mind as paranoia.</p>
<p>Around spring 2018 I developed a faint dull pain in my liver. I'd also noticed some swelling in the past after a particularly heavy night. I hoped both might be me over reacting. Yes I drank heavily but not particularly more than most people I knew both friends and colleagues.</p>
<p>After a few months of not drinking and proving to myself I could, the pain had gone away. But I missed drinking and nothing was obviously wrong with me so I started again. But the faint ache came back. When I was moaning to someone about this they told me either you're fine and should stop worrying or you need to go to the Doctor.</p>
<p>I went to the Doctor, hoping for a clean bill of health. I got some blood tests done and also an ultrasound to rule out tropical parasites. I'd had malaria in the summer of 2012. In short I'd developed a fatty liver it wasn't clear whether it was the booze or weight but regardless the solution was the same stop drinking, lose weight. The upside was I didn't have diabetes or high blood pressure yet.</p>
<p>From what I can tell from reading the literature the blood tests are basically picking up your liver cells breaking down releasing their contents into your blood 😬.</p>
<p>My last blood test was in the normal range but my liver can't handle the strain I used to put it under anymore.</p>
<h1 id="londonsdrinkingculture">London's drinking culture</h1>
<p>Drinking culture is a big part of a lot of offices. To the extent that I know someone getting briefed on cultural differences coming to London being told that &quot;They drink an astonishing amount in London&quot;. It's pretty common for someone to finish work, go for a quick <em>pint</em> with colleagues and knock back four pints in the hour before getting on their train. Also no food before drinking.</p>
<p>Why this is the case is due to the numbing boost and bonding aspects of drinking, which intertwine with the mercantile history of London and a work-hard play-hard culture.</p>
<p>The UK's culture is tied into the pub. It was the second social and community hub beyond the church. This has been true for a long time <a href="https://www.thefreelibrary.com/The+hood+old+days%3B+EXCLUSIVE+BOOZED+UP+HOODIES+WITH+KNIVES+AREN%27T+NEW+...-a0177762825">One 12th century Latin manuscript refers to Potatrix Anglia, or &quot;England the drunken&quot;</a>.</p>
<p>For a work-hard play-hard culture to work you have to be able to summon energy. When you're tired and stressed alcohol is both energising and de-stressing. Without this energy boost the temptation is to just go home and chillout. After a few beers you want to stay out and have fun, without this it's another chore. My theory is the desire to go out because you've earned it but not really having the energy is also why cocaine is so prevalent in demanding jobs. It steals energy from the next day so people who want to stay out and party can enjoy the night. The alternative is working all the time and spending all down time recovering which is a bleak deal.</p>
<p>My experience now is other than proving a point that I can stay out without drinking, I don't enjoy it anymore so why bother. Yes, I can obviously stay out, but it's stressful and tiring and I'd prefer to be at home. I miss out on japes and getting to know people because of this, but what can you do. When going out feels like another chore, that you're shit at.</p>
<p>There are also historically boozy business sectors. I think it's so common because the sense of being part of the same group and building relationships which is crucial to being able to do business is fast tracked by drinking and eating together. Bunnie Huang has spoken about it's importance to doing business in China too.</p>
<p>Then there's the numbing aspect which I think is more subtle but it's about making a city which can feel; too busy, too crowded, too much. Manageable. It makes travel home on the tube ok, It makes it easier to ignore the inequality and for the career driven, silences the voice that they'll never be good enough.</p>
<h1 id="whenthenightsover">When the nights over</h1>
<p>With some of the money saved, I've learnt to ride a motorcycle. It seems like a good non-drinking activity. It's an attempt to stave off the sense I've become old and boring, and a convenient way for me to go out and see people in London.</p>
<p>Skydiving is next on the list but I need to lose more weight.</p>
<p>But sadly so far nothing comes close in terms of excitement, fun and adventure. No highs, no lows, just ok and nice and boring. The parties over.</p>
<h1 id="commonquestions">Common questions</h1>
<p>When I explain that I had to stop drinking.</p>
<h2 id="youmustfeelgreat">You must feel great?</h2>
<p>No not really, I don't have hangovers, but I didn't really mind them. I still sleep badly and wake up with headaches from lack of <a href="http://blog.tomwj.com/stopping-drinking/tomwj.com/sleep">sleep</a>. I think people underestimate how much a hangover is just sleep deprivation.</p>
<p>I don't have anything to take the edge off my thoughts. I miss tremendously the group bonding aspect, blowing off steam, and letting loose. I do wonder if a sober bender exists and what it looks like. But have a horrible feeling it looks like a triathlon. <a href="https://youtu.be/Vcky5mhZcYs">Sober Hans stag do</a> didn't give a great blueprint either.</p>
<p>On a night out I've now replaced a sense of growing comeraderie with a growing sense of isolation. There was also a feeling that everything was going to be ok, maybe it's not so bad, which is gone. I realise now I also liked the numbing aspect and cutting myself some slack in the afterglow from a big night.</p>
<p>What I think of as my internal water table is a lot more stable. There's none of this peeing loads, drinking loads of water overnight because I'm <em>dehydrated</em> while my body swells up with fluid trying to dilute the toxins coarsing through me.</p>
<p>There's a lot of blog posts from people quitting drinking about how great they feel, and they've met the love of their life and it was the best thing they've done. Which is great for them. But also makes me want to tell the sanctimonious cunts to fuck off. I found <a href="https://www.theguardian.com/lifeandstyle/2019/feb/09/i-am-an-offensive-joke-shouting-cyclops-when-drunk-but-will-i-be-worse-sober">Romesh Ranganathan's article about stopping drinking</a> the most honest and relatable.</p>
<p>Also I have to remind myself that things weren't always great when drinking, and not to look at things through rose tinted glasses. I've embarrassed myself and others, put myself in dangerous situations, missed flights, gone off the deepend emotionally and lost and broken a lot of phones. But for me that was an acceptable risk and collateral for the benefits of drinking.</p>
<h2 id="savingmoney">Saving money?</h2>
<p>Yes, I've saved an absolute fortune. It's not just the booze it's the Taxi home, the food out, the takeaway the next day. It all adds up.</p>
<p>But it was an expensive past time which I enjoyed, and sadly sitting on money like a dragon doesn't bring me any comfort or happiness.</p>
<p>I also go out less than I used to because I feel tired and don't get the boost from having a pint. I've become more parsimonious since the booze loosened the purse strings too.</p>
<h2 id="losingweight">Losing weight?</h2>
<p>Not especially, it's hard to lose weight and it comes down to eating less calories than you use up through exercise and just existing. I'd generally factor in the booze to my calorie intake.</p>
<p>I'm intending to write another post about this going into a bit more detail about <a href="http://blog.tomwj.com/stopping-drinking/tomwj.com/losing-weight">losing weight</a></p>
<h2 id="youllbeabletodrinkagain">You'll be able to drink again?</h2>
<p>While I can have an occasional glass of wine on special occasions I can never drink in the way I used to.</p>
<p>I suspect much like you have to have an addiction to nicotine to enjoy smoking.  To really enjoy drinking you have to have a certain level of dependance too. So I won't ever get the same buzz.</p>
<p>What I miss most is the citrousy, hipster, hop monster, pale ales. I'm looking at you Neck Oil. Even typing that makes me feel parched. So it'll more than likely be the very occasional pale ale.</p>
<h2 id="areyouanalcoholic">Are you an alcoholic?</h2>
<p>This is a question that no-one has actually asked me. But suspect that's more a result of politeness. Ultimately it's a moot point I drank at a level that was harmful to my health. I had a pretty typical relationship with alcohol which is to say not very healthy but with none of the hallmarks of an alcoholic.</p>
<p>Haranguing someone for not drinking is completely unacceptable, and I no longer hang out with people who do this. Thinking that you have to be an alcoholic to be drinking at harmful levels certainly gave me a false sense of security, and I suspect many others too.</p>
<p>Booze is corrosive over the long term. It's like firing a gun, some people will fire that gun and it won't be loaded for others it will. I'm lucky I found out before it was too late to fix.</p>
<h2 id="whatwouldyouliketodrink">What would you like to drink?</h2>
<p>Generally soda water, it's usually cheap or free from the gun. The sugar from soft drinks is a bit much. Having some non-alcoholic drinks at events, like some <a href="http://blog.tomwj.com/stopping-drinking/tomwj.com/tag/beers">decent alcohol-free beers</a>, sparkling elderflower, adult soft drinks.</p>
<h2 id="officedrinks">Office drinks</h2>
<p>It's already othering enough not drinking in most UK offices for health, religious or other reasons. But then standing around with nothing or a glass of water. I feel like a massive fucking twat. It shouldn't be the default to drink, but it is for now, so at least make it easier for people not to drink.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Mac's Just Work]]></title><description><![CDATA[<ul><li>Trackpoint mouse speed is too slow and can't be increased even after editing conf settings</li><li>Screen snapping, even with Amethyst doesn't work nearly as easily or smootly as in Gnome3</li><li>Keyboard layout is global rather than per keyboard, even more annoyingly on first boot it reverts to the default OS</li></ul>]]></description><link>https://blog.tomwj.com/macs-just-work/</link><guid isPermaLink="false">5f5b5d4169b6d03d823abb0d</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Tue, 25 Feb 2020 19:47:06 GMT</pubDate><content:encoded><![CDATA[<ul><li>Trackpoint mouse speed is too slow and can't be increased even after editing conf settings</li><li>Screen snapping, even with Amethyst doesn't work nearly as easily or smootly as in Gnome3</li><li>Keyboard layout is global rather than per keyboard, even more annoyingly on first boot it reverts to the default OS X layout, after login the layout changes. Which still catches me out with my sign in password</li><li>Dock hide/show speed can't be adjusted</li><li>Bluetooth headphones sometimes switch profile between headset and high quaility audio, and there isn't a way to change it.</li><li>It struggles with multiple keyboards and doesn't recognise new keyboards. E.g. if you have a home and office setup with different keyboards</li></ul><p>Stuff that works well</p><ul><li>Zoom screen sharing is better</li></ul><p>Older OS X version</p><ul><li>Bluetooth speakers stutter because it keeps trying to change the bitrate.</li></ul>]]></content:encoded></item><item><title><![CDATA[Future Trends]]></title><description><![CDATA[<p>A colleague shared <a href="https://www.ben-evans.com/presentations">Tech in 2020: standing on the shoulders of giants</a> with me which I thought was interesting read and really nailed how a lot of Tech companies are really existing businesses/sectors expanding where they operate.</p><p>It presents regulation as the new area of development, however rather than</p>]]></description><link>https://blog.tomwj.com/future-trends/</link><guid isPermaLink="false">5f5b5d4169b6d03d823abb10</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Fri, 31 Jan 2020 13:04:45 GMT</pubDate><content:encoded><![CDATA[<p>A colleague shared <a href="https://www.ben-evans.com/presentations">Tech in 2020: standing on the shoulders of giants</a> with me which I thought was interesting read and really nailed how a lot of Tech companies are really existing businesses/sectors expanding where they operate.</p><p>It presents regulation as the new area of development, however rather than regulation being new, I think governments will look to apply and bring into scope existing anti-competitive practice legislation. E.g. Facebook buying competitors ( Instagram and WhatsApp), eBay buying Gumtree. Which is why eBay can charge 15% on sales. It can also be seen in cases like Microsoft Vs. EU in 2004.</p><p>I suspect Tech companies will continue to move into regulated industries, Monzo, Starling are two standout one’s there’s also Bo which is presenting as a Tech startup but is owned by NatWest.</p><p>Also I disagree with the representation of Main Frames -&gt; Home computing -&gt; Smartphones as being separate developments. The dream of a computer in your pocket has existed from the 60s and really they’re all connected and part of maturing technologies. Super compact portable computers e.g. smartphones do away with vast swathes of products and technology. In the 80's BT developed a portable computer with a head up display and pocket interface essentialy Google Glasses but with the technology of the day. Apple had the Newton. The utility of a smartphone has been clear for a long time it was just waiting on the technology to catch up.</p><p>With regards to future trends, I’d put my money on battery tech, and more broadly power storage along with and bio-reactor produced and engineered foods for having the potential to cause major changes. They both have very clear utility but are waiting for technology to catch up.<br><br>It will be interesting to see how this post ages.</p>]]></content:encoded></item><item><title><![CDATA[sleep]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h3 id="haveyoutriedxtofixyoursleep">Have you tried X to fix your sleep</h3>
<p>Since it comes up frequently and everyone has their <em>helpful</em> suggestions.</p>
<h4 id="cuttingoutcoffee">Cutting out coffee?</h4>
<p>Yes, I stopped drinking coffee for over a month.</p>
<p>Initially I slept more, I didn't get any withdrawal headaches. But after the first 10 days or so I</p>]]></description><link>https://blog.tomwj.com/sleep/</link><guid isPermaLink="false">5f5b5d4169b6d03d823abb03</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Sat, 11 Jan 2020 16:17:37 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h3 id="haveyoutriedxtofixyoursleep">Have you tried X to fix your sleep</h3>
<p>Since it comes up frequently and everyone has their <em>helpful</em> suggestions.</p>
<h4 id="cuttingoutcoffee">Cutting out coffee?</h4>
<p>Yes, I stopped drinking coffee for over a month.</p>
<p>Initially I slept more, I didn't get any withdrawal headaches. But after the first 10 days or so I adjusted and started sleeping badly again this time I didn't have to option to have a few mugs of coffee to get me through, so ended up tired, headachy and miserable from tiredness. But now without the option to have some coffee, and my sleep was no better.</p>
<p>I actually really enjoy coffee, the smell, slight mood lift, the jittery buzz. Also there's also a growing evidence base for a multitude of health benefits. I see not drinking coffee for <em>health</em> reasons as mostly protestant self-denial. Although I can appreciate for people of an anxious persuasion it not being good.</p>
<h4 id="excercisingsoyourereallytired">Excercising so you're really tired?</h4>
<p>Yes, if I really go for it like a 50+ mile cycle for example I end up with my metabolism really ramped up, so I'm hot and can't sleep. If I get too physically tired I just lie there with my body humming.</p>
<p>If I do some gentle excercise, e.g. walking, swimming I don't notice any impact, <em>maybe it helps</em>.</p>
<h4 id="notusingacomputerwatchingyoutubeinbed">Not using a computer/watching YouTube in bed?</h4>
<p>I generally watch machining videos, they're not super engaging and stop me from thinking/planning things.</p>
<p>When I've not watched things or listened to the radio I find it even harder to sleep. I end up getting out notebooks and sketching stuff. My mind is like a perpetual motion machine, slowly running faster when left alone.</p>
<h4 id="readingabook">Reading a book?</h4>
<p>Yes, I tend to find books to engaging. If it's a particularly interesting book I'll happily read until the sun comes up.</p>
<h4 id="meditation">Meditation?</h4>
<p>Yes,I tried doing 45mins if mindfulness, focusing on my breathing before bed for a couple of weeks, it didn't do very much.</p>
<p>A full day silent meditation retreat did help me sleep a huge amount, I slept more deeply and we'll than I have for a long time.</p>
<h4 id="maybeyoudontneedmuchsleep">Maybe you don't need much sleep?</h4>
<p>Maybe but I feel pretty exhausted and tired a lot of the time.</p>
<h4 id="maybeyouresleepingtomuch">Maybe you're sleeping to much?</h4>
<p>Well I try to go to bed early in the hope I'll be able to get to sleep.</p>
<p>Having a FitBit has meant I at least have the ability to quantify how little sleep I generally get.</p>
<h4 id="youshouldgetupatthesametimeeverydayandnotnap">You should get up at the same time every day and not nap.</h4>
<p>After two weeks of doing this I became more and more sleep deprived. Averaging 2-4 hours sleep a night, but without any lie in or naps on the weekend to catch up. I was so tired I wanted to cry, but still want getting to sleep any earlier. So stopped.</p>
<h4 id="nytol">Nytol</h4>
<p>The traditional Nytol is a first generation anti-histamine which causes drowsiness.</p>
<p>It helps a lot on the first night but I get a bad rebound affect and sleep much worse the next night.</p>
<h4 id="melatonin">Melatonin</h4>
<p>Strangely not available for sale in the UK but ok to bring in.</p>
<p>Sometimes makes me feel naturally tired and just ready for bed. Although not consistent.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Lean-to]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>This was a short building project. Partly because I had more big heavy cast iron tools than could fit in my shed and partly because my folks had been talking about having somewhere outside to dry cloths for a long time.</p>
<p><img src="http://blog.tomwj.com/content/images/2016/02/IMG_20151027_215519-compressed.jpg" alt="Finished Lean-to"></p>
<h1 id="whatwentwell">What went well</h1>
<p>I scoped the whole project first.</p>]]></description><link>https://blog.tomwj.com/lean-to/</link><guid isPermaLink="false">5f5b5d4169b6d03d823abaf8</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Sun, 10 Apr 2016 03:41:23 GMT</pubDate><media:content url="http://blog.tomwj.com/content/images/2020/06/IMG_20151027_215519-compressed.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="http://blog.tomwj.com/content/images/2020/06/IMG_20151027_215519-compressed.jpg" alt="Lean-to"><p>This was a short building project. Partly because I had more big heavy cast iron tools than could fit in my shed and partly because my folks had been talking about having somewhere outside to dry cloths for a long time.</p>
<p><img src="http://blog.tomwj.com/content/images/2016/02/IMG_20151027_215519-compressed.jpg" alt="Lean-to"></p>
<h1 id="whatwentwell">What went well</h1>
<p>I scoped the whole project first. Costed it within 5% which is bang on as far as I'm concerned. Builders merchants apply discounts when you buy a lot of materials which helped offset unexpected costs. Finished it in the time that I'd scoped. Which was two days, actually it ended up being two half weekend days and a couple of long week nights. Looks good and is really strong.</p>
<h1 id="whatiwoulddodifferently">What I would do differently</h1>
<p>I didn't overlap the sheets enough. The coverage figures expect a two corrugation overlap rather than the single which meant I had an extra sheet but given I broke one it worked out ok.</p>
<p>There has to be a faster way to apply the sheeting, even with two drill it still felt slow.</p>
<ol>
<li>Drill through sheets while holding in correct position</li>
<li>Position plastic stand-off. Really fiddly</li>
<li>Put screw in</li>
<li>Repeat 12 times per sheet</li>
</ol>
<p>Over-engineered for the context, it's really strong but actually I could have used the metric equivalent of 2x4s instead of 2x6s.</p>
<p>Sloping the guttering more, there was more than enough space to do this and there's no down side to having larger drop over a given distance. The given distances and drops are a minimum rather than an optimum.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[About this blog]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h1 id="hosting">Hosting</h1>
<p>This is a blog hosted using an <a href="https://www.elastichosts.co.uk/?gclid=Cj0KEQiAuqC2BRDVxMSnpa-mhZoBEiQAFta8wShbMnPCzy2u4qEDrj--IK4vS6JEgiYj6uiOKpaIkNkaAsPo8P8HAQ">ElasticHosts</a> container which is a dynamic scaling virtual machine that bills on the clock tick.</p>
<h1 id="tech">Tech</h1>
<p>It uses <a href="https://ghost.org/">Ghost</a>, which I prefer over Wordpress because of its architecture. It uses JavaScript to dynamically create pages which are then cashed as static html</p>]]></description><link>https://blog.tomwj.com/about-this-blog/</link><guid isPermaLink="false">5f5b5d4169b6d03d823abafa</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Sun, 21 Feb 2016 04:47:21 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h1 id="hosting">Hosting</h1>
<p>This is a blog hosted using an <a href="https://www.elastichosts.co.uk/?gclid=Cj0KEQiAuqC2BRDVxMSnpa-mhZoBEiQAFta8wShbMnPCzy2u4qEDrj--IK4vS6JEgiYj6uiOKpaIkNkaAsPo8P8HAQ">ElasticHosts</a> container which is a dynamic scaling virtual machine that bills on the clock tick.</p>
<h1 id="tech">Tech</h1>
<p>It uses <a href="https://ghost.org/">Ghost</a>, which I prefer over Wordpress because of its architecture. It uses JavaScript to dynamically create pages which are then cashed as static html and doesn't rely on a huge and complex SQL backend. If you've ever tried to restore a corrupted/hacked SQL DB, you'll understand why this is good, for a blog which is essentially static content. It uses <a href="http://support.ghost.org/markdown-guide/">Markdown</a> which is much lighter than <a href="https://en.wikipedia.org/wiki/LaTeX">LaTeX</a> or HTML.</p>
<h1 id="security">Security</h1>
<p>I've had a couple of blogs but they've all been hacked! I made sure to change the default SSH port and to also make sure all ports that weren't needed were closed. Once I'd configured it, I tested it using <a href="https://nmap.org/">Nmap</a> which basically batters the ports on a server and checks if anything is responding. When I checked I had to set a flag because Nmap didn't think a server was there, if you find something otherwise let me know please ; ).</p>
<h1 id="backups">Backups</h1>
<p>I've also written a short script which backs up everything on the Blog. Ideally this would be run as a Cron job on a remote server but currently I just run it whenever I have written a few posts which saves paying to two servers.</p>
<h1 id="theme">Theme</h1>
<p>The theme I am using is based on Breathe which is quite minimal but isn't Futura or another really common font/theme. The only issue is that I've had a some problems with the CSS being written in a brittle way.</p>
<p>I sometimes wonder about why when the internet (HTML) had been created to allow user to apply their own styles and enable screen readers etc... everything went away from that. Obviously it's branding and presentation but what I'm curious about is why the tools and ability to apply brand and style were butchered e.g. Flash rather than integrate with the designed systems.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[The exploded video player]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>I was involved with a group called the <a href="http://curiositycollective.org/">Curiosity Collective</a> in Ipswich that I found through trying to setup a Hackspace there. An amazing group of people who were bright, welcoming, really interesting, and a high point of my time there.</p>
<p>The concept behind this was <a href="https://www.facebook.com/events/401531859946184/">Together Apart</a>. I wanted</p>]]></description><link>https://blog.tomwj.com/the-exploded-video-player/</link><guid isPermaLink="false">5f5b5d4169b6d03d823abaf9</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Sun, 21 Feb 2016 04:17:47 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>I was involved with a group called the <a href="http://curiositycollective.org/">Curiosity Collective</a> in Ipswich that I found through trying to setup a Hackspace there. An amazing group of people who were bright, welcoming, really interesting, and a high point of my time there.</p>
<p>The concept behind this was <a href="https://www.facebook.com/events/401531859946184/">Together Apart</a>. I wanted to create a physical animated version of an exploded diagram.<br>
<img src="http://blog.tomwj.com/content/images/2016/02/50008168-00001.png" alt="Video player exploded diagram"></p>
<h1 id="day1">Day 1</h1>
<p>Time lapse build video.</p>
<iframe width="420" height="315" src="https://www.youtube.com/embed/guusGsVcUaw" frameborder="0" allowfullscreen></iframe>
<h1 id="day2">Day 2</h1>
<p>Time lapse build video.</p>
<iframe width="420" height="315" src="https://www.youtube.com/embed/muHHpGk1mNI" frameborder="0" allowfullscreen></iframe>
<p>There were quite a few moments through this project that I found problems and felt that I should have picked them up earlier. For example, of-course if you have motion you need feedback to know when something is at the top or bottom of the motion.</p>
<p>The exhibition was really great and I enjoyed the experience. I met <a href="http://www.timhunkin.com/">Tim Hunkin</a> who is a personal hero  of mine, and we took a group photo using <a href="https://en.wikipedia.org/wiki/Ilfochrome">Cibachrome</a> which is a postive reproduction film which will never be produced again. Due to the rise of a digital and the physical difficulty and cost in producing it.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Spotify, Netflix and the illusion of choice]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Spotify, Netflix and many other places give the illusion of endless choice.</p>
<p>My impression is it mirrors the development of TV and other media.</p>
<p>In the UK we used to have one channel, BBC; people would meet at their friends house to watch David Attenborough bring Lions and Tigers from</p>]]></description><link>https://blog.tomwj.com/spotify-netflix-and-the-illusion-of-choice/</link><guid isPermaLink="false">5f5b5d4169b6d03d823abaf6</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Fri, 27 Nov 2015 03:41:19 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Spotify, Netflix and many other places give the illusion of endless choice.</p>
<p>My impression is it mirrors the development of TV and other media.</p>
<p>In the UK we used to have one channel, BBC; people would meet at their friends house to watch David Attenborough bring Lions and Tigers from London Zoo to perform in Alexandra Palace!</p>
<p>We now have hundreds of channels but it seems like there is nothing to watch. At the start there was no choice, and everything was ground breaking. The problem is, people who are breaking new ground aren't on broadcast television. <a href="https://en.wikipedia.org/wiki/We_Live_in_Public">They're streaming on the internet</a>, where you can take risks. On a side note this was also true in the development of film see <a href="https://en.wikipedia.org/wiki/Pre-Code_Hollywood">Pre-Code Hollywood</a>.</p>
<p>Netflix pretends to address this but is still very risk adverse. It's not taking more risks, just using <a href="http://variety.com/2013/digital/news/how-netflix-uses-piracy-to-pick-its-programming-1200611539/">better data</a> on what is popular.</p>
<p>YouTube and Vimeo, give almost complete freedom to create and see if people will come. YouTube provides a small, and easy to tap income for content creators, and censors. From a design and tech perspective Vimeo is a better service, but it lacks an easy route to cash. I see LiveLeak as a very valuable, if astringent entity within video sharing.</p>
<p><a href="https://www.youtube.com/user/enyay">Tom Scott</a> has spoken about how YouTube imperfectly implements Copyright, but how Youtube does it better than anyone else. Much more eloquently and concisely than I could. It all stems from tech evolving faster than legislature.</p>
<p>Spotify provides the illusion of all music at your fingertips, but if you want to see cool new music it's <a href="https://www.mixcloud.com/">Mixcloud</a> for the new radio shows, and <a href="https://soundcloud.com/">SoundClound</a> who are sharing the new demo tapes.</p>
<p>In conclusion. If it's all free, you are the product. But more importantly, the interesting, scary, fun, original stuff is always happening at the fringes. Look for the weird, offensive, unpopular, and poor because, they might just be changing the world.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Melancholy]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>This is a  <a href="https://play.spotify.com/user/tomwj/playlist/0WlNzQoeky2jweensGzhBt">playlist of music</a> that I listen to when I'm feeling <a href="https://en.wikipedia.org/wiki/Melancholia">melancholic</a>.</p>
<p>For a long time I would call these playlists &quot;untitled playlist&quot; or more prophetic <a href="https://play.spotify.com/user/tomwj/playlist/0gu3gWr2EWcpazaLRtWaA4">&quot;It will have a name&quot;</a>.</p>
<p>I like the name &quot;Melancholy&quot; because it embodies a wistfulness for</p>]]></description><link>https://blog.tomwj.com/melancholy-2/</link><guid isPermaLink="false">5f5b5d4169b6d03d823abaf5</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Fri, 27 Nov 2015 02:46:29 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>This is a  <a href="https://play.spotify.com/user/tomwj/playlist/0WlNzQoeky2jweensGzhBt">playlist of music</a> that I listen to when I'm feeling <a href="https://en.wikipedia.org/wiki/Melancholia">melancholic</a>.</p>
<p>For a long time I would call these playlists &quot;untitled playlist&quot; or more prophetic <a href="https://play.spotify.com/user/tomwj/playlist/0gu3gWr2EWcpazaLRtWaA4">&quot;It will have a name&quot;</a>.</p>
<p>I like the name &quot;Melancholy&quot; because it embodies a wistfulness for dreams and ideas. It's almost a regret for dreams that may not be fulfilled, at the edge of a song you know but can't remember,  in place you know but haven't been.</p>
<p>I'm not always in the mood for it, but when I am it's the best playlist I've made.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Compiling and Installing FreeCAD]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Long story short I decided to use an older precompiled binary (0.15) rather than the current dev version (0.18) because I wanted to move on with the design of my workbench-toolbox. If there's a feature I really want to use such as a more complete assembly tool I'll</p>]]></description><link>https://blog.tomwj.com/installing-freecad/</link><guid isPermaLink="false">5f5b5d4169b6d03d823abaf4</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Thu, 26 Nov 2015 00:31:42 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Long story short I decided to use an older precompiled binary (0.15) rather than the current dev version (0.18) because I wanted to move on with the design of my workbench-toolbox. If there's a feature I really want to use such as a more complete assembly tool I'll revisit this.</p>
<p>I started with the <a href="http://www.freecadweb.org/wiki/index.php?title=CompileOnMac#CMake_Options">FreeCAD Mac Compile guide</a>.</p>
<p>I installed the dependencies using <a href="http://brew.sh/">brew</a>. I prefer brew because it tries to integrate with the existing OS X software more than MacPorts does, <s>but I still use both anyway</s>.</p>
<p>There were various input parameters needed to run CMake so I wrote a very short bash script</p>
<pre><code class="language-language-bash">#!/bin/bash
cd ./build
cmake \
-DBUILD_ROBOT=&quot;0&quot; \
-DCMAKE_BUILD_TYPE=&quot;Release&quot; \
-DFREECAD_USE_EXTERNAL_PIVY=&quot;1&quot; \
-DFREETYPE_INCLUDE_DIR_freetype2=&quot;/usr/local/include/freetype2&quot; \
-DPYTHON_LIBRARY=&quot;/usr/local/bin/python&quot; \
-DHOMEBREW_PREFIX=&quot;1&quot; \
 ../FreeCAD-git`
</code></pre>
<p>This is the final version, to get here I had a to add some things.</p>
<pre><code>CMake Error at CMakeLists.txt:467 (message):
  Multiple package management systems detected -CMake Error at CMakeLists.txt:469 (message):
  define either MACPORTS_PREFIX or HOMEBREW_PREFIX
</code></pre>
<p>Tell it to use hombrew,  <code>HOMEBREW_PREFIX=&quot;1&quot;</code> flag</p>
<pre><code>CMake Error at CMakeLists.txt:502 (message):
  Only found the stock Python, that's probably bad.
</code></pre>
<p>I checked this by running</p>
<pre><code>$ ls -al /usr/local/bin/python
lrwxr-xr-x  1 tomjennings  admin  36 25 Nov 15:04 /usr/local/bin/python -&gt; ../Cellar/python/2.7.10_2/bin/python
</code></pre>
<p>Which confirmed it was using a recent enough version of python.</p>
<pre><code>-- Could NOT find OCC (missing:  OCC_INCLUDE_DIR) 
CMake Error at cMake/FindOpenCasCade.cmake:136 (message):
  Neither OpenCASCADE Community Edition nor OpenCasCade were found: will not
  build CAD modules!
</code></pre>
<p>Hmmm now we're getting somewhere, after a bit of googling I found the <a href="https://github.com/tpaviot/oce">OpenCASCADE Community Edition</a> which appears to be a CAD rendering engine.</p>
<h1 id="installingopencacadecommunityeditionoce">Installing OpenCACADE Community Edition (OCE)</h1>
<p>I followed the guide and ran:</p>
<pre><code class="language-language-bash">$ mkdir build
$ cd build
$ cmake ..
$ make -j2
$ make test
$ make install/strip
</code></pre>
<p>Using  <code>$ make -j2</code> because I'm on a dual core machine.</p>
<p>It all worked! Except when I tried to run it, there was a SegFault error. First thing I looked at was whether I'd set all the flags correctly for CMake, everything looked fine, also it had built fine.</p>
<p>I'd assumed first time round the test flags weren't set so had ignored the failed test. Reading the <code>CMakeCache.txt</code> confirmed they were set so I could trust the output. Running <code>$ make test</code> again showed me it was failing on test 12.</p>
<pre><code class="language-language-bash">[12/48 Test #12: BRepImportTestSuite.testImportBRep1 .............***Exception: SegFault
</code></pre>
<p>More searching led me to <a href="https://github.com/tpaviot/oce/issues/576">https://github.com/tpaviot/oce/issues/576</a><br>
and the <a href="http://tracker.dev.opencascade.org/view.php?id=26042">known issue</a> which has been fixed and will be rolled out. My only slight concern is compilation hasn't explicitly been tested on OS X</p>
<p>I rebuilt it with the CMAKE_BUILD_TYPE set to Debug assuming it would all be fixed.</p>
<pre><code>The following tests FAILED:
	 20 - BRepOffsetAPITestSuite.testOffsetBox (OTHER_FAULT)
	 29 - OCAFExportTestSuite.testExportAscii (SEGFAULT)
	 30 - OCAFExportTestSuite.testExportNonAscii (SEGFAULT)
</code></pre>
<p>Hmmph. Some of the demos run now but it still crashes if I click anything</p>
<p>I got a bit further with this by removing MacPorts and running <code>brew doctor</code>.</p>
<h2 id="backtotryingtocompilefreecad">Back to trying to compile FreeCAD</h2>
<p><code>-- Could NOT find Spnav (missing:  SPNAV_LIBRARY SPNAV_INCLUDE_DIR)  </code><br>
FreeCAD CMake still not working need to debug. This is where I decided to cut my losses and use a precompiled binary.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Recumbent bike]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>When I was in my final year of 6th Form which is 18 years old. I designed and built a recumbent bicycle.</p>
<p>From a hands on perspective I learnt how to weld and form wood using a vacuum press bag.</p>
<p>On the design side I learnt about <a href="https://en.wikipedia.org/wiki/Deflection_(engineering)">beam deflection</a>. Given</p>]]></description><link>https://blog.tomwj.com/recumbent-bike-2/</link><guid isPermaLink="false">5f5b5d4169b6d03d823abaf2</guid><dc:creator><![CDATA[Tom Jennings]]></dc:creator><pubDate>Tue, 24 Nov 2015 20:13:20 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>When I was in my final year of 6th Form which is 18 years old. I designed and built a recumbent bicycle.</p>
<p>From a hands on perspective I learnt how to weld and form wood using a vacuum press bag.</p>
<p>On the design side I learnt about <a href="https://en.wikipedia.org/wiki/Deflection_(engineering)">beam deflection</a>. Given a known cross-section, material and thickness it's fairly straightforward to calculate how much it will flex and if it will buckle for a given load.</p>
<p>I used Mild steel for the frame because it's cheap and has a nice failure mode, bending rather than snapping. It was satisfying when I stood in the middle and the deflection was about 16mm and I'd calculated the deflection to be 10-20mm. Although it didn't tell me what I really wanted to know which was would it survive a speed bump! Guestimating the real world forces is the hardest part.</p>
<p><img src="http://blog.tomwj.com/content/images/2015/11/dsc00258.jpg" alt="Recumbent that I built"></p>
<p>This took up a lot of space and has since been taken apart. I didn't like that it wasn't possible to hop up and down curbs and it handled like a boat.</p>
<p><img src="http://blog.tomwj.com/content/images/2015/11/dsc00281-1.jpg" alt="Another Picture"></p>
<p>Things I'd change</p>
<ol>
<li>
<p>Move the rear wheel as forward as possible without it binding on the seat. Making it more compact and handle less like a boat.</p>
</li>
<li>
<p>Start the design around a straight chainline, each kink adds a significant amount of friction and an additional wear point. It took three complete chains to run the length.</p>
</li>
</ol>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>