<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>LifeinTECH</title>
    <description>Technology and Development</description>
    <link>https://www.lifeintech.com/</link>
    <atom:link href="https://www.lifeintech.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Fri, 03 Apr 2026 02:27:33 -0500</pubDate>
    <lastBuildDate>Fri, 03 Apr 2026 02:27:33 -0500</lastBuildDate>
    <generator>Jekyll v4.3.4</generator>

    
      <item>
        <title>HP Zbook Ultra G1a Webcam</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2025/08/30/amd-ryzen-ai-max-300/&quot;&gt;I have previously written about the HP Zbook Ultra G1a, which includes the incredible AMD Ryzen AI Max+ 395 (Strix Halo) processor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The combination of a 16-core processor with 128GB DDR5 memory and a beautiful, high-resolution, high-refresh-rate OLED display is a compelling one, especially when packaged as a compact 14-inch laptop.&lt;/p&gt;

&lt;p&gt;In my opinion, it is the only laptop on the market that comes close to the Apple MacBook Pro 14-inch.&lt;/p&gt;

&lt;p&gt;The full specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;AMD Ryzen AI Max+ 395 3GHz Base / 5.1GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;128GB LPDDR5x-8000 Unified Memory&lt;/li&gt;
  &lt;li&gt;AMD Radeon 8060S Graphics (40 Graphics Cores)&lt;/li&gt;
  &lt;li&gt;2TB M.2 2280 TLC NVM-e SSD&lt;/li&gt;
  &lt;li&gt;MediaTek Wi-Fi 7 MT7925 (Wi-Fi 7 and Bluetooth 5.4)&lt;/li&gt;
  &lt;li&gt;2x Thunderbolt 4, 1x USB-C, 1x USB-A, HDMI 2.1, 3.5mm Headphone&lt;/li&gt;
  &lt;li&gt;14-inch OLED Display (2880x1800 @ 120Hz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition to the exceptional hardware, the HP Zbook Ultra G1a also works great with Linux. The AMD Ryzen AI Max+ 395 has excellent support out of the box, with one exception.&lt;/p&gt;

&lt;p&gt;The webcam uses the AMD ISP4 (Image Signal Processor Generation 4) hardware block, designed to handle advanced camera processing. Unfortunately, following multiple delays, the AMD ISP4 is not natively compatible with Linux. Support has been teased on more than one occasion but has not made it to a production release.&lt;/p&gt;

&lt;p&gt;Thankfully, the community has come to the rescue, specifically “&lt;a href=&quot;https://github.com/jtsiros&quot;&gt;jtsiros&lt;/a&gt;” who developed a simple script that downloads and builds the patch series, with support for Arch, Debian and Fedora based distributions.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/jtsiros/amd-isp4-camera&quot;&gt;https://github.com/jtsiros/amd-isp4-camera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I did have an issue building the patch series on Fedora 43. However, I was able to resolve the issue via a simple tweak to the version number. A new forked repository can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mswbull/amd-isp4-camera&quot;&gt;https://github.com/mswbull/amd-isp4-camera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To install on Fedora, simply download the repository and navigate to the directory within the Terminal.&lt;/p&gt;

&lt;p&gt;From within the directory, run the following commands:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install kernel-devel kernel-headers gcc make b4
make install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The webcam should now be enabled.&lt;/p&gt;

&lt;p&gt;You will need to run the ‘make install’ command each time the kernel is updated. Therefore, I recommend keeping the files local.&lt;/p&gt;
</description>
        <pubDate>Tue, 31 Mar 2026 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2026/03/31/HP-Zbook-Ultra-G1a-Webcam/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2026/03/31/HP-Zbook-Ultra-G1a-Webcam/</guid>
      </item>
    
      <item>
        <title>M5 Max USB-C Regression</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - &lt;a href=&quot;https://smcleod.net/2026/03/new-apple-silicon-m4-m5-hidpi-limitation-on-4k-external-displays/&quot;&gt;Sam McLeod has written an excellent article on his blog&lt;/a&gt; covering the HiDPI limitation in detail.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2025/07/31/my-setup-q3-2025/&quot;&gt;I recently upgraded my Apple MacBook Pro 14-inch to an M5 Max&lt;/a&gt; (specification below).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple MacBook Pro 14-inch (MAR-2026)&lt;/li&gt;
  &lt;li&gt;Apple M5 Max (18-core - 6 Super / 12 Performance)&lt;/li&gt;
  &lt;li&gt;40-core GPU&lt;/li&gt;
  &lt;li&gt;16-core Neural Engine&lt;/li&gt;
  &lt;li&gt;128GB Unified Memory (614GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;2TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;Wi-Fi 7 and Bluetooth 6&lt;/li&gt;
  &lt;li&gt;3x Thunderbolt 5, HDMI 2.1, 3.5mm Headphone, SDXC Card Reader&lt;/li&gt;
  &lt;li&gt;14.2-inch Liquid Retina XDR Nano-texture Display (3024x1964 @ 120Hz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a monster laptop, delivering unrivalled performance in a compact package.&lt;/p&gt;

&lt;p&gt;When working at home, I connect my MacBook Pro to a Samsung G95NC Odyssey Neo G9 display, which has a native resolution of 7680x2160 and a maximum refresh rate of 240Hz.&lt;/p&gt;

&lt;p&gt;To minimise the number of cables, I have previously used a &lt;a href=&quot;https://www.anker.com/eu-en/products/a83b5-anker-prime-thunderbolt5-docking-station-14-in-1-140w-8k&quot;&gt;Anker Prime Thunderbolt 5 Docking Station&lt;/a&gt;, which allowed me to connect my MacBook Pro (and other laptops) via one cable (Thunderbolt 5) delivering power and the full 7680x2160 resolution at 120Hz with HDR enabled.&lt;/p&gt;

&lt;p&gt;This has always worked perfectly with pervious MacBook Pro laptops (e.g., M4 Max), connected to the same display and docking station via DisplayPort 2.1.&lt;/p&gt;

&lt;p&gt;Unfortunately, I have been unable to get the M5 Max to connect via USB-C at the native resolution above 60Hz. At first, I figured this issue was caused by a software bug or a defective cable. However, after some basic troubleshooting, it became clear that this was a limitation of the M5 Max itself.&lt;/p&gt;

&lt;p&gt;Thankfully, the issue does not impact the HDMI 2.1 port, which can deliver a 7680x2160 resolution at 120Hz with HDR enabled. Therefore, I have replaced the docking station and returned to using multiple cables.&lt;/p&gt;

&lt;p&gt;Overall, this is a minor inconvenience. However, the outcome is still frustrating, as it limits the ability to use the USB-C ports with high performance displays, which I consider a core requirement for a laptop targeting professional users.&lt;/p&gt;

&lt;p&gt;On a positive note, I can see no reason why this issue would be caused by a hardware limitation, assuming Apple have not made a mistake with their latest design. Therefore, I hope this issue can be resolved via a firmware update.&lt;/p&gt;
</description>
        <pubDate>Thu, 26 Mar 2026 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2026/03/26/M5-Max-USB-C-Regression/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2026/03/26/M5-Max-USB-C-Regression/</guid>
      </item>
    
      <item>
        <title>Gartner AI Webinar</title>
        <description>&lt;p&gt;Earlier today, I presented as part of a &lt;a href=&quot;https://www.gartner.com/&quot;&gt;Gartner&lt;/a&gt; private webinar, covering our highly successful journey with Artificial Intelligence (AI), specifically the development and scale of an Agentic AI platform.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/gartneraiwebinar01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/gartneraiwebinar01.jpg&quot; alt=&quot;Gartner AI Webinar&quot; title=&quot;Gartner AI Webinar&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Outlined below are a few highlights from the webinar, which included a live overview of the platform.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;User Adoption:&lt;/strong&gt; The custom platform, ElancoGPT, boasts a 90% adoption rate across the workforce (~11,900 users) with employees independently creating over 4,000 custom AI personas and agents.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;From Chatbot to “Agentic” OS:&lt;/strong&gt; Elanco evolved a simple 2022 chatbot into a multi-model and multimodal platform that integrates directly with core enterprise systems (e.g., SAP, ServiceNow, SharePoint) and autonomously acts on data.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tiny Team, Huge Impact:&lt;/strong&gt; The platform was built entirely in-house by a small squad of fewer than six engineers—many of them students or recent graduates—without the use of expensive third-party consultancies.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Staggering ROI:&lt;/strong&gt; The custom build generates a conservative $6.8 million return on investment against operating costs of just $120,000 per year. For comparison, licensing Microsoft 365 Copilot for the same workforce would cost roughly $4.5 million annually.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Real-World Value:&lt;/strong&gt; AI is actively transforming daily operations, including automating weeks of manual R&amp;amp;D regulatory work, instantly triaging HR requests, and creating AI-generated customer insights for sales reps.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It was a fun presentation, with approximately 60 companies in attendance. The session was recorded. Therefore, if you are a Gartner customer, you should be able to request access.&lt;/p&gt;
</description>
        <pubDate>Tue, 17 Mar 2026 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2026/03/17/Gartner-AI-Webinar/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2026/03/17/Gartner-AI-Webinar/</guid>
      </item>
    
      <item>
        <title>Product Vision</title>
        <description>&lt;p&gt;The &lt;a href=&quot;https://www.svpg.com/&quot;&gt;Silicon Valley Product Group (SVPG)&lt;/a&gt; describe a product vision as a persuasive, inspiring, and long-term description of the future state.&lt;/p&gt;

&lt;p&gt;It serves as a “North Star” to align and motivate product teams, ensuring they remain focused on the outcome of discovering and delivering solutions that solve the highest-value problems.&lt;/p&gt;

&lt;p&gt;Partnered with Google, &lt;a href=&quot;https://www.linkedin.com/posts/elanco-it_as-elanco-plans-our-2030-strategy-to-innovate-activity-7424483264960069633-a6OZ&quot;&gt;we recently launched our new product vision for Elanco IT&lt;/a&gt;, leveraging the power of Generative AI (&lt;a href=&quot;https://deepmind.google/models/veo/&quot;&gt;Veo&lt;/a&gt; and &lt;a href=&quot;https://labs.google/flow/about&quot;&gt;Flow&lt;/a&gt;) to highlight the transformative power of technology and data.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/posts/elanco-it_as-elanco-plans-our-2030-strategy-to-innovate-activity-7424483264960069633-a6OZ&quot;&gt;&lt;img src=&quot;/images/posts/productvision01.jpg&quot; alt=&quot;Product Vision&quot; title=&quot;Google Antigravity&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Elanco brand is grounded in real imagery, celebrating our customers as authentic, real people. The use of Generative AI in this case targets our internal workforce. Although not perfect, it helps our product teams imagine the future, providing a common understanding to ensure team alignment.&lt;/p&gt;
</description>
        <pubDate>Sun, 01 Feb 2026 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2026/02/01/Product-Vision/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2026/02/01/Product-Vision/</guid>
      </item>
    
      <item>
        <title>AI Future</title>
        <description>&lt;p&gt;The hype around Artificial Intelligence (AI) continues to build. Is it a fundamental shift for humanity or a bubble that will eventually burst?&lt;/p&gt;

&lt;p&gt;In my opinion, it is both. There is no question that we are in a period of heightened excitement, with many over-inflated claims and businesses attempting to profit from the market turbulence.&lt;/p&gt;

&lt;p&gt;However, there is also genuine innovation, supported by a perfect storm of computing capability, software sophistication, and data availability, backed by massive investment.&lt;/p&gt;

&lt;p&gt;I believe that AI will transform the way we work, impacting every industry. Outlined below are my thoughts as to how this transformation could impact enterprise businesses.&lt;/p&gt;

&lt;p&gt;AI agents will become increasingly powerful, with an ability to pursue goals, take action and learn autonomously.&lt;/p&gt;

&lt;p&gt;These AI agents will be built on large-scale, general-purpose AI models, trained on vast amounts of data that can be applied to a wide range of tasks. This includes multimodal input and output (e.g., text, images, video), alongside the ability to break down complex problems into smaller steps to arrive at a more accurate and reliable conclusion.&lt;/p&gt;

&lt;p&gt;Each AI agent will be grounded and provided with specific context, covering the business (e.g., framing, principles, policies, standards) and domain specialisation. In addition, AI agents will be granted access to specific data sources and tooling, with the appropriate permissions and approval to trigger actions.&lt;/p&gt;

&lt;p&gt;This combination of knowledge, reasoning and action will allow an AI agent to learn and complete complex tasks, similar to a human worker.&lt;/p&gt;

&lt;p&gt;An AI agent will not work in isolation; instead, they will collaborate, with each AI agent providing input based on their specialisation. Other AI agents will provide oversight (management), orchestrating the different inputs to achieve the desired goal.&lt;/p&gt;

&lt;p&gt;This model, which is technically viable today, is a paradigm shift for how work gets done and could act as a force multiplier. This is because, for the first time, the human workforce will work alongside AI, partnering to achieve specific business outcomes.&lt;/p&gt;

&lt;p&gt;These new human-centric, AI-powered teams are designed for rapid, on-demand scalability. By harnessing parallel processing, they achieve greater speed and agility, while their ability to ingest and contextualise insights from large, disparate data sources leads to significantly improved decision-making and precision.&lt;/p&gt;

&lt;p&gt;A team that includes a human workforce and AI agents will inevitably outperform a team that is only comprised of humans.&lt;/p&gt;

&lt;p&gt;This new way of working can lead to fear, with the concern that jobs will be replaced or lost. Although I believe this is true in certain circumstances, in many cases, I think these new human-centric, AI-powered teams will simply become more productive, delivering increased value and a higher return on investment.&lt;/p&gt;

&lt;p&gt;Therefore, I believe it is in everyone’s best interest to embrace this future, where humans and machines partner to achieve outcomes. This requires individuals to upskill, with businesses looking to evolve their practices and processes.&lt;/p&gt;

&lt;p&gt;The businesses that proactively engage with a clear strategy that embeds and prioritises AI, including the prerequisites regarding expertise and data, will succeed.&lt;/p&gt;

&lt;p&gt;This will deliver a competitive advantage, differentiated from their peers and protected from disruption.&lt;/p&gt;
</description>
        <pubDate>Mon, 01 Dec 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/12/01/AI-Future/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/12/01/AI-Future/</guid>
      </item>
    
      <item>
        <title>Linus Torvalds</title>
        <description>&lt;p&gt;The global tech community includes some amazing talent, with awe-inspiring contributions that have shaped the world.&lt;/p&gt;

&lt;p&gt;However, there are a few individuals that I consider tech royalty, standing above their peers, with a direct impact on my &lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My list would include Linus Torvalds, John Carmack, Steve Wozniak, Demis Hassabis, Gabe Newell, and Mark Cerny.&lt;/p&gt;

&lt;p&gt;Due to the nature of these individuals, they rarely seek out the spotlight. Therefore, in those rare situations, when they do speak publicly, it is worth taking note.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=mfv0V1SxbNA&quot;&gt;This leads me to the recent interview with Linus Torvalds (creator of Linux and Git) from Linus Tech Tips&lt;/a&gt;.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/mfv0V1SxbNA?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;In this 50+ minute video, Linus Sebastian playfully interviews Linus Torvalds, covering a wide range of topics.&lt;/p&gt;

&lt;p&gt;It is well worth a watch, as it combines good (tech-centric) entertainment with insightful knowledge from one of the most influential software engineers to have ever lived.&lt;/p&gt;

&lt;p&gt;As an avid fan of Linux and long-time user of Git, it is fun to hear his perspective on the state of the projects, as well as his hopes for the future.&lt;/p&gt;

&lt;p&gt;In addition, Linus shares that he is still a &lt;a href=&quot;https://www.fedoraproject.org/&quot;&gt;Fedora&lt;/a&gt; user at home, which I can relate to directly, as this is always the Linux distribution I return to.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2024/01/29/linux-endgame-nixos/&quot;&gt;As outlined in previous articles&lt;/a&gt;, &lt;a href=&quot;https://nixos.org/&quot;&gt;NixOS&lt;/a&gt; is the Linux operating system I want to use, as I like the use of declarative configuration files for reproducibility, alongside the flexible package management and atomic architecture.&lt;/p&gt;

&lt;p&gt;However, NixOS is still a relatively immature operating system, which in my experience leads to more hiccups. These are rarely system-breaking, but they disrupt my workflow, which can become frustrating.&lt;/p&gt;

&lt;p&gt;Therefore, &lt;a href=&quot;2025/07/09/fedora-42-configuration/&quot;&gt;I always find myself reverting back to Fedora&lt;/a&gt;, which has a very stable foundation, with a clean/open philosophy, delivering vanilla GNOME and robust package management via DNF and Flatpak.&lt;/p&gt;

&lt;p&gt;Regardless of the distribution, I do believe Linux on the desktop is entering a period of prosperity, helped in no small part by the contributions from Valve, alongside the &lt;a href=&quot;/2025/10/22/Windows/&quot;&gt;inconsistent and (at times) bewildering strategy from Microsoft with Windows&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 30 Nov 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/11/30/Linus-Torvalds/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/11/30/Linus-Torvalds/</guid>
      </item>
    
      <item>
        <title>Google Antigravity</title>
        <description>&lt;p&gt;Earlier this week, Google publicly released Gemini 3 and a new AI-powered Integrated Development Environment (IDE), known as &lt;a href=&quot;https://antigravity.google/&quot;&gt;Antigravity&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The IDE is built as a fork of &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Visual Studio Code&lt;/a&gt; and supports multiple AI models, primarily Gemini 3 Pro, as well as Anthropic Claude Sonnet 4.5 and open-source models from OpenAI.&lt;/p&gt;

&lt;p&gt;Similar to &lt;a href=&quot;https://cursor.com/&quot;&gt;Cursor&lt;/a&gt;, Google Antigravity follows an “agent-first” paradigm, which goes beyond a traditional AI code assistant, with multiple specialised agents operating simultaneously alongside a human developer, delivering actions and collaborating autonomously.&lt;/p&gt;

&lt;p&gt;The video below highlights Google Antigravity in action, including a simple use case building a flight tracker that pulls from a public API and integrates with Google Calendar.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/nTOVIGsqCuY?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Antigravity is available for Windows, macOS and Linux, which is great to see! It is also surprisingly “feature complete” for a version one release.&lt;/p&gt;

&lt;p&gt;In my testing, I took my previous &lt;a href=&quot;/2025/10/24/Continuing-the-Vibe/&quot;&gt;vibe coding project&lt;/a&gt; (an educational web application to support spelling) and triggered the same prompt with Google Antigravity.&lt;/p&gt;

&lt;p&gt;Google Antigravity immediately produced a task list, which made it very easy to see how the prompt was being interpreted and delivered.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/googleantigravity01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/googleantigravity01.jpg&quot; alt=&quot;Google Antigravity&quot; title=&quot;Google Antigravity&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After a few minutes (impressive performance), the implementation was completed, and Google Antigravity created a simple walkthrough guide.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/googleantigravity02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/googleantigravity02.jpg&quot; alt=&quot;Google Antigravity&quot; title=&quot;Google Antigravity&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The web application itself was fairly simple, but fully functional.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/googleantigravity03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/googleantigravity03.jpg&quot; alt=&quot;Google Antigravity&quot; title=&quot;Google Antigravity&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It included the key requirement to add/upload custom words.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/googleantigravity04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/googleantigravity04.jpg&quot; alt=&quot;Google Antigravity&quot; title=&quot;Google Antigravity&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The spelling test itself achieved the goal of displaying ten spellings.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/googleantigravity05.jpg&quot;&gt;&lt;img src=&quot;/images/posts/googleantigravity05.jpg&quot; alt=&quot;Google Antigravity&quot; title=&quot;Google Antigravity&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each spelling is verified as correct or incorrect, providing a final score.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/googleantigravity06.jpg&quot;&gt;&lt;img src=&quot;/images/posts/googleantigravity06.jpg&quot; alt=&quot;Google Antigravity&quot; title=&quot;Google Antigravity&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Overall, I have been extremely impressed by Google Antigravity, which delivers a comprehensive experience, incorporating many of the best features from other AI coding assistants and vibe coding platforms, such as Cursor and &lt;a href=&quot;https://lovable.dev/&quot;&gt;Lovable&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have been most impressed with the tightly integrated and intuitive workflow, where a human developer can trigger actions at speed, with multi-threaded AI agents delivering end-to-end actions from planning through to testing, including third-party integrations via APIs, etc. These steps can be reviewed in simple language, enabling a clear “human in the loop” peer review process, promoting visibility, understanding, and quality assurance.&lt;/p&gt;

&lt;p&gt;In addition, Google can directly benefit from their significant investment in AI across software and hardware. For example, Google Antigravity offers a massive context window, with Gemini 3 handling over 1 million tokens natively, allowing Google Antigravity to understand monorepos without truncation. They also provide a very public preview, available for free for all users, including unlimited tab completions and command requests.&lt;/p&gt;

&lt;p&gt;Finally, Google are ready for enterprise business engagement, with tenant-isolated environments by default, alongside SOC 2, ISO 27001, and FedRAMP compliance.&lt;/p&gt;

&lt;p&gt;In my opinion, this combination of features, performance, scale and business-ready compliance could reshape the market for AI coding assistants and vibe coding platforms.&lt;/p&gt;
</description>
        <pubDate>Thu, 20 Nov 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/11/20/Google-Antigravity/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/11/20/Google-Antigravity/</guid>
      </item>
    
      <item>
        <title>InkyPi</title>
        <description>&lt;p&gt;With two kids, my wife and I spend most of our day acting as their personal assistants and taxi service. With PE kit, outdoor learning, school homework, lunches, afterschool clubs, evening sports, it is a constant battle to ensure they have everything they need for the day ahead.&lt;/p&gt;

&lt;p&gt;Currently, we use a shared calendar to keep track of everything. However, during the morning rush, I wanted a dashboard in the kitchen that could provide “at a glance” information without needing to use my phone.&lt;/p&gt;

&lt;p&gt;There are plenty of commercial products, such as &lt;a href=&quot;https://uk.myskylight.com/&quot;&gt;Skylight&lt;/a&gt;. However, these are fairly expensive (Skylight Frame 10-inch = £159) and commonly require a subscription (Skylight Plus Subscription = £29pa). Considering the fairly basic nature of the technology, I question the return on the investment.&lt;/p&gt;

&lt;p&gt;This led me to &lt;a href=&quot;https://github.com/fatihak/InkyPi&quot;&gt;InkyPi&lt;/a&gt;, which is an open-source E-Ink display powered by a Raspberry Pi. The image below shows my prototype, showing a list view of my familiar calendar. The Ikea frame is not perfect, but it can be easily improved by inserting a better cutout (hiding the edges of the E-Ink display).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/inkypi01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/inkypi01.jpg&quot; alt=&quot;InkyPi&quot; title=&quot;InkyPi&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The InkyPi project includes a range of features, made available as plugins. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Text (Hardcoded or AI Generated)&lt;/li&gt;
  &lt;li&gt;Calendar (Google, Outlook, or Apple)&lt;/li&gt;
  &lt;li&gt;Clock&lt;/li&gt;
  &lt;li&gt;Countdown&lt;/li&gt;
  &lt;li&gt;GitHub Contributions&lt;/li&gt;
  &lt;li&gt;Images (Folder, URL or AI Generated)&lt;/li&gt;
  &lt;li&gt;Newspaper/Comic&lt;/li&gt;
  &lt;li&gt;RSS Reader&lt;/li&gt;
  &lt;li&gt;To Do List&lt;/li&gt;
  &lt;li&gt;Weather&lt;/li&gt;
  &lt;li&gt;Year Progress&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The plugins can be configured quickly and easily via a web interface, with settings that allow for plugins to be refreshed automatically and displayed based on specific criteria.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/inkypi02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/inkypi02.jpg&quot; alt=&quot;InkyPi&quot; title=&quot;InkyPi&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As the project is open source, it is also extensible, with the option to customise any plugin or add new ones based on your specific requirements.&lt;/p&gt;

&lt;p&gt;The build consists of a &lt;a href=&quot;https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/&quot;&gt;Raspberry Pi Zero 2 W&lt;/a&gt; (ideally with Headers), a &lt;a href=&quot;https://shop.pimoroni.com/products/inky-impression-7-3?variant=55186435244411&quot;&gt;Pimoroni Inky Impression Spectra 7.3-inch&lt;/a&gt; display and an SD Card for the operating system (&lt;a href=&quot;https://www.raspberrypi.com/software/operating-systems/&quot;&gt;Raspberry Pi OS&lt;/a&gt;). The unit can be powered via a standard micro-USB socket and is easily mounted within a standard photo frame (you may need to cut a gap in the back).&lt;/p&gt;

&lt;p&gt;The core components cost £17.50 for the Raspberry Pi Zero 2 W, £79.50 for the Inky Impression 7.3-inch display, and approximately £25 for an SD card, resulting in a total of £122. This is cheaper than many of the commercial products, with no subscription required.&lt;/p&gt;

&lt;p&gt;In addition, the Raspberry Pi Zero 2 W is very versatile, with its 1GHz ARM Cortex-A53 CPU, 512MB SDRAM, mini HDMI, and wireless connectivity via Wi-Fi b/g/n and Bluetooth 4.2. Considering it runs Linux, it can be used to host other applications for home automation, etc.&lt;/p&gt;

&lt;p&gt;The video below highlights the InkyPi in action, alongside the build process, which should not take more than 20 minutes total time.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/L5PvQj1vfC4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The &lt;a href=&quot;https://github.com/fatihak/InkyPi&quot;&gt;InkyPi GitHub project&lt;/a&gt; includes everything you need to get up and running, configured as a series of scripts that automate the process.&lt;/p&gt;
</description>
        <pubDate>Tue, 18 Nov 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/11/18/InkyPi/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/11/18/InkyPi/</guid>
      </item>
    
      <item>
        <title>Spark Configuration</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2025/10/28/NVIDIA-DGX-Spark/&quot;&gt;Last month, I started testing the NVIDIA DGX Spark&lt;/a&gt;, the self-described “Grace Blackwell AI supercomputer on your desk”.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2025/10/28/NVIDIA-DGX-Spark/&quot;&gt;As highlighted in my previous article&lt;/a&gt;, the NVIDIA DGX Spark is a very specific product, targeting those who are interested in AI development, using the NVIDIA AI hardware/software ecosystem.&lt;/p&gt;

&lt;p&gt;I would not recommend it for anyone looking for general-purpose computing or a device for open source AI inference, where there are plenty of cheaper alternatives (like systems configured with the &lt;a href=&quot;/2025/08/30/AMD-Ryzen-AI-Max-300/&quot;&gt;AMD-Ryzen-AI-Max-300&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;This article will explain my initial configuration for the NVIDIA DGX Spark running as a headless server, providing a CUDA-enabled AI platform that can be accessed from any location.&lt;/p&gt;

&lt;p&gt;The configuration includes the initial setup via SSH, alongside the installation of &lt;a href=&quot;https://tailscale.com/&quot;&gt;Tailscale&lt;/a&gt; for secure remote access and &lt;a href=&quot;https://app.lizardbyte.dev/Sunshine/?lng=en-US&quot;&gt;Sunshine&lt;/a&gt; for low-latency desktop remote access streaming.&lt;/p&gt;

&lt;p&gt;The decisions to use Tailscale and Sunshine are very deliberate, as they are open source and free to use. They also offer high performance with a low support overhead, which is perfect for a home lab.&lt;/p&gt;

&lt;h3 id=&quot;initial-configuration&quot;&gt;Initial Configuration&lt;/h3&gt;

&lt;p&gt;Start by powering on the NVIDIA DGX Spark by plugging it in and pressing the button on the back of the device.&lt;/p&gt;

&lt;p&gt;Frustratingly, NVIDIA decided not to include any lights to signify power status; therefore, without a monitor attached, there is no easy way to see if the device is actually on. You can place your hand on the front of the device, where you should feel a small amount of air flow.&lt;/p&gt;

&lt;p&gt;Assuming this is the first time using the NVIDIA DGX Spark, it will automatically create a local Wi-Fi hotspot, with the SSID and password printed on the included “Quick Start Guide”.&lt;/p&gt;

&lt;p&gt;Connect to the local Wi-Fi hotspot via another system, which will allow you to open the system setup page via a browser using the link &lt;a href=&quot;http://spark-a3aa.local&quot;&gt;http://spark-a3aa.local&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The system setup page includes a step-by-step wizard, covering configuration items such as the hostname, username, password, network, etc.&lt;/p&gt;

&lt;p&gt;Once configured, it will also complete a full system update and reboot. The NVIDIA DGX Spark can now be accessed over the local area network either via the browser (using the previously configured hostname) or using the &lt;a href=&quot;https://docs.nvidia.com/dgx/dgx-spark/nvidia-sync.html#spark-nvidia-sync&quot;&gt;NVIDIA Sync&lt;/a&gt; tool.&lt;/p&gt;

&lt;p&gt;If running Windows or macOS, I would recommend installing and using the NVIDIA Sync tool, which provides a simple way to connect and launch common applications on the NVIDIA DGX Spark. For example, a Terminal connection via SSH or the &lt;a href=&quot;https://www.nvidia.com/en-gb/deep-learning-ai/solutions/data-science/workbench/&quot;&gt;NVIDIA AI Workbench&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The configuration for the NVIDIA Sync tool is very simple, requiring the hostname or IP address, username and password.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/sparkconfiguration01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/sparkconfiguration01.jpg&quot; alt=&quot;Spark Confguration&quot; title=&quot;Spark Confguration&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;remote-access-tailscale&quot;&gt;Remote Access (Tailscale)&lt;/h3&gt;

&lt;p&gt;Tailscale is a fast, secure mesh VPN service, using the open source WireGuard protocol. I use Tailscale to access other devices on my home network, such as my &lt;a href=&quot;/2025/07/15/ugreen-nas/&quot;&gt;UGREEN NAS&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;Tailscale works great with all client operating systems (Windows, macOS and Linux), while being easy to install, configure and use. It is also free for personal use.&lt;/p&gt;

&lt;p&gt;Using the NVIDIA Sync tool, open the Terminal, which will automatically connect to the NVIDIA DGX Spark via SSH.&lt;/p&gt;

&lt;p&gt;Run the following commands to install Tailscale, which will be used to support secure remote access. The final command (‘sudo tailscale up’) will prompt you to connect to your Tailscale account, establishing the remote connection with the NVIDIA DGX Spark.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt update

sudo apt install -y curl gnupg

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg | \
  sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg &amp;gt; /dev/null
  
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list | \
    sudo tee /etc/apt/sources.list.d/tailscale.list
    
sudo apt update

sudo apt install -y tailscale

sudo tailscale up
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
With Tailscale installed and enabled, you can now access your NVIDIA DGX Spark using the Tailscale IP address, which can be viewed using the command ‘tailscale status’.&lt;/p&gt;

&lt;h3 id=&quot;remote-desktop-streaming-sunshine&quot;&gt;Remote Desktop Streaming (Sunshine)&lt;/h3&gt;

&lt;p&gt;Sunshine is a self-hosted game stream host for &lt;a href=&quot;https://moonlight-stream.org/&quot;&gt;Moonlight&lt;/a&gt;. Delivering low-latency, cloud gaming server capabilities with support for NVIDIA hardware encoding.&lt;/p&gt;

&lt;p&gt;Although you could access the NVIDIA DGX Spark via RDP or VNC, Sunshine and Moonlight offer higher performance, designed to run on ARM64 with an NVIDIA Blackwell (GB10) Graphics Processing Unit (GPU).&lt;/p&gt;

&lt;p&gt;To install Sunshine, I recommend using the &lt;a href=&quot;https://github.com/eelbaz/dgx-spark-headless-sunshine&quot;&gt;script&lt;/a&gt; maintained by &lt;a href=&quot;https://github.com/eelbaz&quot;&gt;eelbaz&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Using the NVIDIA Sync tool, open the Terminal, which will automatically connect to the NVIDIA DGX Spark via SSH. Run the following commands.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone https://github.com/eelbaz/dgx-spark-headless-sunshine.git
cd dgx-spark-headless-sunshine

sudo ./configure_headless_sunshine.sh

sudo reboot
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once complete, browse to “https://xyz.local:47990/”, which will display the Sunshine web interface. Within this interface, you can configure a username and password, as well as pair the NVIDIA DGX Spark using a shared PIN.&lt;/p&gt;

&lt;p&gt;To pair the device, open the Moonlight client application and connect to NVIDIA DGX Spark via the hostname or IP address (local or Tailscale, depending on your location).&lt;/p&gt;

&lt;p&gt;You will be prompted with a PIN, which you can add to the Sunshine web interface.&lt;/p&gt;

&lt;p&gt;The NVIDIA DGX Spark is now accessible via Sunshine and Moonlight, providing full desktop remote access streaming.&lt;/p&gt;

&lt;p&gt;With everything configured, you can now start experimenting with the NVIDIA DGX Spark using the &lt;a href=&quot;https://developer.nvidia.com/topics/ai/dgx-spark&quot;&gt;documentation provided by NVIDIA&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 14 Nov 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/11/14/Spark-Configuration/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/11/14/Spark-Configuration/</guid>
      </item>
    
      <item>
        <title>Vibe Code Review</title>
        <description>&lt;p&gt;In my previous article (&lt;a href=&quot;/2025/10/24/Continuing-the-Vibe/&quot;&gt;Continuing the Vibe&lt;/a&gt;), I shared my latest experimentation with the vibe coding platform, &lt;a href=&quot;https://lovable.dev/&quot;&gt;Lovable&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I created a simple, single-purpose web application to support my son with his spelling education.&lt;/p&gt;

&lt;p&gt;To help appraise the quality of the code produced by a vibe coding platform, I took the codebase and completed an end-to-end automated review using &lt;a href=&quot;https://cursor.com/&quot;&gt;Cursor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A summary of the findings can be found below.&lt;/p&gt;

&lt;h3 id=&quot;critical-security-issues&quot;&gt;Critical Security Issues&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Unsafe random in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Test.tsx&lt;/code&gt; line 139: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;const shuffled = [...allWords].sort(() =&amp;gt; Math.random() - 0.5);&lt;/code&gt;. Not cryptographically secure and can be biased. Use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;crypto.getRandomValues()&lt;/code&gt; or a Fisher–Yates with an RNG. Also review &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;src/components/ui/sidebar.tsx&lt;/code&gt; line 536.&lt;/li&gt;
  &lt;li&gt;Missing env validation in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;src/integrations/supabase/client.ts&lt;/code&gt;: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SUPABASE_URL&lt;/code&gt;/&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SUPABASE_PUBLISHABLE_KEY&lt;/code&gt; can be undefined. Add startup checks; consider a guard/constants module.&lt;/li&gt;
  &lt;li&gt;Overly permissive RLS policies. After migrations, public read/write on users, words, test_scores, and word_attempts is risky.&lt;/li&gt;
  &lt;li&gt;No user input sanitization beyond &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.trim()&lt;/code&gt;. Add validation and allowlists.&lt;/li&gt;
  &lt;li&gt;Authentication/client-only auth relies on localStorage; logouts don’t invalidate server-side sessions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;code-quality-and-architecture&quot;&gt;Code Quality and Architecture&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Duplicated user management across &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Home.tsx&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Dashboard.tsx&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Test.tsx&lt;/code&gt;. Extract a shared hook or component.&lt;/li&gt;
  &lt;li&gt;No error boundary for app-wide crashes. TypeScript strict settings (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;noImplicitAny&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;strictNullChecks&lt;/code&gt;, etc.) are off; risks unknown-typed code. Missing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;QueryClient&lt;/code&gt; defaults for refetch, stale time, retries.&lt;/li&gt;
  &lt;li&gt;Missing loading skeletons in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;WordPerformanceHeatmap&lt;/code&gt;; only plain text.&lt;/li&gt;
  &lt;li&gt;Unused route &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Index.tsx&lt;/code&gt; with placeholder content. Unused &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;App.css&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Race conditions in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Test.tsx&lt;/code&gt; line 179 via nested async after &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;setTimeout&lt;/code&gt;; prefer &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;async/await&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;No memoization: heavy list/grid renders and inline functions; query results not memoized.&lt;/li&gt;
  &lt;li&gt;Unbounded lists: words, users, scores, and attempts load fully. Add pagination/cursors.&lt;/li&gt;
  &lt;li&gt;Possible loop: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Home.tsx&lt;/code&gt; line 127: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;loadUsers()&lt;/code&gt; on dialog open; enforce a cooldown or debounce.&lt;/li&gt;
  &lt;li&gt;Large state: full word/user arrays kept in memory with no streaming.&lt;/li&gt;
  &lt;li&gt;UI queries are parallelizable where missing; e.g., &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Dashboard.tsx&lt;/code&gt; lines 108–136.&lt;/li&gt;
  &lt;li&gt;Supabase &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;order()&lt;/code&gt; without indexes; verify existing indexes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;reliability-and-user-experience&quot;&gt;Reliability and User Experience&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;File upload in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;WordManager.tsx&lt;/code&gt; accepts any text; enforce a schema and size limits.&lt;/li&gt;
  &lt;li&gt;Orphaned records: deleting a user leaves scores/attempts; inconsistent dashboard totals.&lt;/li&gt;
  &lt;li&gt;Race conditions in auto-creation: double inserts if users create concurrently.&lt;/li&gt;
  &lt;li&gt;No conflict/rate-limiting handling (e.g., duplicate usernames; concurrent test submissions).&lt;/li&gt;
  &lt;li&gt;Missing network retries; toasts lack deduplication.&lt;/li&gt;
  &lt;li&gt;Inconsistent error handling (some toasts, some logs, some silent).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;positive-observations&quot;&gt;Positive Observations&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Clean migration structure.&lt;/li&gt;
  &lt;li&gt;Useful indexes and foreign keys.&lt;/li&gt;
  &lt;li&gt;Decent component organization.&lt;/li&gt;
  &lt;li&gt;Solid UI patterns.&lt;/li&gt;
  &lt;li&gt;Working RLS setup (policies need tightening).&lt;/li&gt;
  &lt;li&gt;Broad test coverage.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, Cursor provided the following scores.&lt;/p&gt;

&lt;h4 id=&quot;security-score-410&quot;&gt;Security Score: 4/10&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Overly open RLS, no rate limiting, weak input validation, and no authentication.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;code-quality-score-6510&quot;&gt;Code Quality Score: 6.5/10&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Duplication and missing boundaries; solid structure and user interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;performance-score-510&quot;&gt;Performance Score: 5/10&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Missing memoization and pagination.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;overall-score-510&quot;&gt;Overall Score: 5/10&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Needs tighter security, deduplication, pagination, and strict typing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In conclusion, I believe this is a fair review and score. The security score is a little misleading, as I had purposely not included user authentication, recognising the use case and target audience. Therefore, the score of 4/10 reflects reality, but is an expected outcome (part of the design).&lt;/p&gt;

&lt;p&gt;These results validate my position that vibe coding is very well positioned for rapid experimentation and the development of single-purpose web applications for personal use (where there is minimal risk).&lt;/p&gt;

&lt;p&gt;However, when considering the use of vibe coding for business or commercial use cases, I would highly recommend a thorough peer review, with a focus on security and performance at scale.&lt;/p&gt;
</description>
        <pubDate>Mon, 03 Nov 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/11/03/Vibe-Code-Review/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/11/03/Vibe-Code-Review/</guid>
      </item>
    
      <item>
        <title>NVIDIA DGX Spark</title>
        <description>&lt;p&gt;After a five-month delay, &lt;a href=&quot;https://www.nvidia.com/en-gb/products/workstations/dgx-spark/&quot;&gt;NVIDIA has finally released the DGX Spark&lt;/a&gt;, the self-described “Grace Blackwell AI supercomputer on your desk”.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/nvidiadgxspark01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/nvidiadgxspark01.jpg&quot; alt=&quot;NVIDIA DGX Spark&quot; title=&quot;NVIDIA DGX Spark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The specification of the NVIDIA DGX Spark is listed below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CPU:&lt;/strong&gt; Arm 20 Core (10 Cortex-X925 + 10 Cortex-A725)&lt;br /&gt;
&lt;strong&gt;GPU:&lt;/strong&gt; Blackwell Architecture&lt;br /&gt;
&lt;strong&gt;CUDA Cores:&lt;/strong&gt; 6,144 (Blackwell Generation)&lt;br /&gt;
&lt;strong&gt;Tensor Cores:&lt;/strong&gt; 5th Generation&lt;br /&gt;
&lt;strong&gt;RT Cores:&lt;/strong&gt; 4th Generation&lt;br /&gt;
&lt;strong&gt;System Memory:&lt;/strong&gt; 128GB LPDDR5X 8533 16 channels (256 bit)&lt;br /&gt;
&lt;strong&gt;Storage:&lt;/strong&gt; 4TB M.2 NVM-e SSD&lt;br /&gt;
&lt;strong&gt;Network:&lt;/strong&gt; 2x 100GB/s ConnectX-7 NIC, 1x 10GB/s Ethernet, Wi-Fi 7, Bluetooth 5.4&lt;br /&gt;
&lt;strong&gt;Display Connectors:&lt;/strong&gt; 1x HDMI 2.1a&lt;br /&gt;
&lt;strong&gt;Connectivity:&lt;/strong&gt; 4x USB-C&lt;/p&gt;

&lt;p&gt;The standout components include the 128GB unified memory, delivering 273GB/s bandwidth, the GB10 Blackwell GPU, which provides up to 1 petaFLOP of AI performance at FP4 precision, as well as the dual 100Gb/s ConnectX-7 network interface cards, enabling high-performance distributed computing.&lt;/p&gt;

&lt;p&gt;In addition, the NVIDIA DGX Spark supports the NVFP4 precision format, a novel 4-bit floating-point representation developed specifically for NVIDIA’s next-generation inference pipeline.&lt;/p&gt;

&lt;p&gt;In theory, a single NVIDIA DGX Spark is capable of running a 200 billion parameter AI model locally. With two connected via NVIDIA ConnectX Networking, AI models of up to 405 billion parameters become feasible.&lt;/p&gt;

&lt;p&gt;The NVIDIA DGX Spark is £3,699.98, making it an expensive proposition. By comparision, the &lt;a href=&quot;https://www.minisforum.uk/products/minisforum-ms-s1-max&quot;&gt;Minisforum MS-S1 MAX&lt;/a&gt;, equipped with &lt;a href=&quot;/2025/08/30/AMD-Ryzen-AI-Max-300/&quot;&gt;AMD Ryzen AI Max+ 395&lt;/a&gt; and 128GB LPDDR5x is £2,079.00. You can also purchase an &lt;a href=&quot;/2025/03/24/nvidia-geforce-rtx-5090/&quot;&gt;NVIDIA GeForce RTX 5090&lt;/a&gt; for £1,799.&lt;/p&gt;

&lt;p&gt;The AMD Ryzen AI Max+ 395 has the same unified memory architecture, with a memory bandwidth of 256GB/s (just below the NVIDIA DGX Spark of 273GB/s).&lt;/p&gt;

&lt;p&gt;As a result, for basic AI inference (using AI models via Ollama and/or LM Studio), any system equipped with the AMD Ryzen AI Max+ 395 will perform similarly to the NVIDIA DGX Spark. These systems, which are x86-64, will also be more versatile, as they can run Windows and Linux software with no constraints.&lt;/p&gt;

&lt;p&gt;The NVIDIA GeForce RTX 5090 has a memory bandwidth of 1,792GB/s, which is far beyond the NVIDIA DGX Spark and AMD Ryzen AI Max+ 395.&lt;/p&gt;

&lt;p&gt;As a result, the NVIDIA GeForce RTX 5090 will easily outperform the NVIDIA DGX Spark for AI inference, whilst also delivering market-leading gaming performance. However, with only 32GB of VRAM, the size of the AI models will be restricted.&lt;/p&gt;

&lt;p&gt;Therefore, depending on your use case, the NVIDIA DGX Spark may not offer much unique value. In fact, it may be less performant and versatile, whilst being more expensive.&lt;/p&gt;

&lt;p&gt;With this in mind, the only people who should consider an NVIDIA DGX Spark are those who are interested in AI development, using the NVIDIA AI hardware/software ecosystem.&lt;/p&gt;

&lt;p&gt;With this audience in mind, the NVIDIA DGX Spark provides a compelling entry point to prototype, fine-tune, and deploy large AI models on a desktop computer, using tools and techniques that translate directly to enterprise NVIDIA products and services.&lt;/p&gt;

&lt;p&gt;Over the coming weeks, I will be testing the NVIDIA DGX Spark, targeting a range of AI development workloads.&lt;/p&gt;

&lt;p&gt;Stay tuned for updates.&lt;/p&gt;
</description>
        <pubDate>Tue, 28 Oct 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/10/28/NVIDIA-DGX-Spark/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/10/28/NVIDIA-DGX-Spark/</guid>
      </item>
    
      <item>
        <title>Continuing the Vibe</title>
        <description>&lt;p&gt;In my previous article “&lt;a href=&quot;/2025/09/22/Vibe-Coding/&quot;&gt;Vibe Coding&lt;/a&gt;”, I documented my experience using &lt;a href=&quot;https://lovable.dev/&quot;&gt;Lovable&lt;/a&gt;, which is a popular vibe coding platform targeting individuals with limited technical experience.&lt;/p&gt;

&lt;p&gt;Overall, I was reasonably impressed with the capabilities and quality of the output. Although I would not recommend vibe coding for complex production-scale web applications, I do believe it is well-positioned to support rapid prototyping and simple (single-purpose) personal projects.&lt;/p&gt;

&lt;p&gt;With this in mind, I recently attended my son’s parents’ evening (he is ten). A key development area for him is spelling, and we were provided a sheet of words that he must practice and learn.&lt;/p&gt;

&lt;p&gt;As any parent will know, getting a child to engage and focus in an area that they find difficult can be a challenge. Although the sheet of paper provides the required context (list of words), it is hardly inspiring and offers no process to actually facilitate learning.&lt;/p&gt;

&lt;p&gt;Hence, I decided to take 30 minutes to build a small web application that would gamify the process of learning, based on these specific words. This included the following prompt.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I am looking to create an educational web application to help children with their spelling.&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;The web application must be simple, intuitive and mobile responsive.&lt;/li&gt;
    &lt;li&gt;The primary function of the web application is to test the user (a child) across ten pre-defined words. Each test should select ten different words at random from the pre-defined list.&lt;/li&gt;
    &lt;li&gt;Each test should display a pre-defined word and then prompt the user to spell the word from memory, checking to see if the word was correctly spelt or not. At which point, the next word in the test is displayed until the test is finished.&lt;/li&gt;
    &lt;li&gt;The tests must be gamified, with each correct answer earning a score, which should be displayed on a dashboard, with specific targets for the user to achieve.&lt;/li&gt;
    &lt;li&gt;The web application must include a section for the pre-defined words to be defined, which can be manually entered and saved or uploaded via a comma-delimited text file.
The web application should be fun and engaging, recognising that it is targeting a child.&lt;/li&gt;
  &lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;Within a few minutes, I had a fully working web application, with all the key functionality available for testing.&lt;/p&gt;

&lt;p&gt;Using the Lovable development environment, I was able to quickly verify the features of the web application, taking note of any required changes. I added a feature to allow for multiple users, connected the Postgres database using the native &lt;a href=&quot;https://supabase.com/&quot;&gt;Superbase&lt;/a&gt; integration and fixed a couple of small bugs (mostly padding issues with the user interface).&lt;/p&gt;

&lt;p&gt;At which point, I hit publish and uploaded the list of words provided by the school. My son was then able to test immediately, using his iPad.&lt;/p&gt;

&lt;p&gt;The screenshots below highlight the core features of the web application, starting with the home screen, where the user can select to start a test, view their dashboard or manage the words. The user switching capability is accessible via the menu in the top right.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/continuingthevibe01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/continuingthevibe01.jpg&quot; alt=&quot;Continuing the Vibe&quot; title=&quot;Continuing the Vibe&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When a test is started, a single word is displayed. Each test consists of ten words, randomly selected from the pre-defined list.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/continuingthevibe02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/continuingthevibe02.jpg&quot; alt=&quot;Continuing the Vibe&quot; title=&quot;Continuing the Vibe&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The user is prompted to spell the word and submit their answer, which includes a fun animation to signal if the answer is correct or incorrect.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/continuingthevibe03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/continuingthevibe03.jpg&quot; alt=&quot;Continuing the Vibe&quot; title=&quot;Continuing the Vibe&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the test is complete, the results are displayed.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/continuingthevibe04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/continuingthevibe04.jpg&quot; alt=&quot;Continuing the Vibe&quot; title=&quot;Continuing the Vibe&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The dashboard includes gamification features, with results, achievements and a history of previous tests.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/continuingthevibe05.jpg&quot;&gt;&lt;img src=&quot;/images/posts/continuingthevibe05.jpg&quot; alt=&quot;Continuing the Vibe&quot; title=&quot;Continuing the Vibe&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The ability to add specific words is important, as this allows a parent to input the words specific to their child’s needs. The words can be added manually or uploaded in bulk.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/continuingthevibe06.jpg&quot;&gt;&lt;img src=&quot;/images/posts/continuingthevibe06.jpg&quot; alt=&quot;Continuing the Vibe&quot; title=&quot;Continuing the Vibe&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I will not claim my son loves completing the tests. However, it is certainly better than simply reading the sheet of paper or being forced to spell them aloud. It provides my son with an option to work at his own pace, whilst also feeling a sense of reward, as he improves his score, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/continuingthevibe07.jpg&quot;&gt;&lt;img src=&quot;/images/posts/continuingthevibe07.jpg&quot; alt=&quot;Continuing the Vibe&quot; title=&quot;Continuing the Vibe&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In my opinion, this is a great example of how vibe coding can be used very effectively. If I were to attempt to create this web application manually, it would have taken significantly longer. To be honest, that effort would outweigh the value. However, thanks to vibe coding, I was able to create a fully working web application with minimal effort in less than one hour total time.&lt;/p&gt;

&lt;p&gt;The fact that it is a small, single-purpose personal project makes it perfect for vibe coding (minimal risk) and opens my mind to what other use cases I could target to improve through the use of these capabilities.&lt;/p&gt;
</description>
        <pubDate>Fri, 24 Oct 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/10/24/Continuing-the-Vibe/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/10/24/Continuing-the-Vibe/</guid>
      </item>
    
      <item>
        <title>LibreOffice</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://www.libreoffice.org/&quot;&gt;LibreOffice&lt;/a&gt; is an excellent productivity suite, available for Windows, macOS and Linux. Most notably, it is free and open-source (licensed under a dual LGPLv3 and MPL 2.0 model), meaning it can be used for personal and commercial purposes without any payment or subscription.&lt;/p&gt;

&lt;p&gt;By default, LibreOffice uses the OpenDocument Format (ODF) as its file format, which is an international standard developed by the ISO and IEC. However, it also supports the Office Open XML file format, used by Microsoft Office.&lt;/p&gt;

&lt;p&gt;As a Linux user, it is also the most popular and (arguably) most comprehensive productivity suite. It includes applications for word processing (Writer), spreadsheets (Calc), presentations (Impress), vector graphics (Draw), database management (Base), and formula editing (Math).&lt;/p&gt;

&lt;p&gt;Recognising that Microsoft Office is not available on Linux as a native application, LibreOffice provides an excellent alternative and is often “bundled” with Linux distributions, such as Fedora, etc.&lt;/p&gt;

&lt;p&gt;Unfortunately, in a world dominated by Microsoft Office, compatibility is an important requirement. As someone who also uses Microsoft Office across macOS and Windows (mostly for work), having a consistent user experience is desired.&lt;/p&gt;

&lt;p&gt;Thankfully, it is possible to configure LibreOffice on Linux to work “like” Microsoft Office, whilst also achieving acceptable (not perfect) compatibility.&lt;/p&gt;

&lt;p&gt;To achieve this outcome, I recommend the steps outlined below.&lt;/p&gt;

&lt;p&gt;NOTE: The steps will be different for each Linux distribution. The steps below are for Fedora.&lt;/p&gt;

&lt;p&gt;First, if LibreOffice came bundled with your Linux distribution, I would actually recommend uninstalling and reinstalling using the Flatpak version. This will ensure you have the latest features and receive regular/timely updates.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf group remove libreoffice
sudo dnf remove libreoffice*

flatpak install flathub org.libreoffice.LibreOffice -y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
With the Flatpak version installed, the next task is to ensure font compatibility, recognising that Microsoft Office includes a range of proprietary fonts.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install \   https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install \   https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install mscore-fonts-all -y

sudo dnf install curl cabextract xorg-x11-font-utils fontconfig

sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
With the fonts installed, open “LibreOffice Writer” and select “User Interface” from the “View” menu. Now select “Tabbed” and “Apply to All”.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/libreoffice01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/libreoffice01.jpg&quot; alt=&quot;LibreOffice&quot; title=&quot;LibreOffice&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will update the user interface for all LibreOffice applications to closely match the default Microsoft Office Ribbon interface.&lt;/p&gt;

&lt;p&gt;Next, open “Options” and select “LibreOffice &amp;gt; Appearance”. Within these settings, select “Icons” and “Colibre (SVG)” or “Colibre (SVG+ dark)” depending on if you are running light or dark mode.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/libreoffice02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/libreoffice02.jpg&quot; alt=&quot;LibreOffice&quot; title=&quot;LibreOffice&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will update the default icons across the applications to closely match the Microsoft Office defaults.&lt;/p&gt;

&lt;p&gt;Switch to “Load/Save &amp;gt; General” and update the “Default File Format and ODF Settings” to “Always save as” the Microsoft Office Open XML file format. For example, “Word 2010-365 Document (*.docx)”. This setting must be configured per application, specifically Writer, Calc and Impress.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/libreoffice03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/libreoffice03.jpg&quot; alt=&quot;LibreOffice&quot; title=&quot;LibreOffice&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, switch to “Load/Save &amp;gt; Microsoft Office” and ensure all features are selected; this will help with compatibility between LibreOffice and Microsoft Office.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/libreoffice04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/libreoffice04.jpg&quot; alt=&quot;LibreOffice&quot; title=&quot;LibreOffice&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With these settings configured, LibreOffice should look, feel and operate similarly to Microsoft Office.&lt;/p&gt;

&lt;p&gt;For more information about the benefits of LibreOffice, check out the article &lt;a href=&quot;https://www.pocket-lint.com/libreoffice-best-microsoft-365-alternative/&quot;&gt;Pocket-lint&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Thu, 23 Oct 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/10/23/LibreOffice/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/10/23/LibreOffice/</guid>
      </item>
    
      <item>
        <title>Windows</title>
        <description>&lt;p&gt;As outlined in the article “&lt;a href=&quot;/2011/12/12/first-pc/&quot;&gt;First PC - The Beginning&lt;/a&gt;”, I have been using Microsoft Windows for the past three decades.&lt;/p&gt;

&lt;p&gt;During that time, I believe I have used every major release of Windows targeting consumers, whilst also spending a year administering Windows Server (NT/2000) for a large enterprise business.&lt;/p&gt;

&lt;p&gt;I vividly remember upgrading from Windows 3.11 to Windows 95 using floppy disks (thirteen disks plus the boot disk). I also remember getting to see a pre-release version of Windows XP, which fueled my excitement for the first Windows NT-based operating system specifically targeting consumers.&lt;/p&gt;

&lt;p&gt;Throughout this time period, I also used Apple OS X and later macOS, alongside various Linux distributions. However, Windows was always a major part of my computing world, delivering value at home and work.&lt;/p&gt;

&lt;p&gt;Therefore, it is with some regret that for the first time in my life, I no longer have Windows installed on any of my core systems. &lt;a href=&quot;/2024/11/08/work-setup/&quot;&gt;The only Windows device I have left is a Microsoft Surface Laptop, which I use (very rarely) for Work&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;2025/07/31/My-Setup-Q3-2025/&quot;&gt;Between my two primary laptops, I use macOS and Linux (specifically Fedora), with Linux also installed on my desktop PC&lt;/a&gt;. As I consider &lt;a href=&quot;/2024/01/20/software-list-2024/&quot;&gt;my common software&lt;/a&gt; and usage scenarios, I have reached a point where Linux has moved from being a compromise to being viable and even preferred. This includes gaming, recognising that I do not play competitive multiplayer and therefore have no issues with Windows proprietary anti-cheat software.&lt;/p&gt;

&lt;p&gt;In my opinion, Microsoft has completely lost sight of Windows to the point where there is no clear vision, direction, or meaningful innovation.&lt;/p&gt;

&lt;p&gt;I recognise the Microsoft priority regarding Artificial Intelligence (AI) and even agree with the strategic direction from a business persective. However, I feel they have allowed this to distract them from their “right to operate” responsibilities, which must include the estimated 1.5 billion devices running Windows.&lt;/p&gt;

&lt;p&gt;As a result, Windows (specificlly Windows 11) has become a mismatch of features, that are mostly self-serving (Microsoft-centric, not customer-centric). For example, forced system hardware requirements, mandated software features, unwanted bundled applications and relentless advertisements for Microsoft services.&lt;/p&gt;

&lt;p&gt;In addition, the user experience is more disjointed than ever before, with years of technical debt impacting performance and legacy user interface elements scattered across the operating system, which has eroded any sense of quality or attention to detail.&lt;/p&gt;

&lt;p&gt;To be clear, Windows has never been perfect, and Microsoft has historically made very public mistakes (e.g., Windows ME and Windows 8). However, even Windows 8 had a vision and direction, even if it was misguided. In short, even during these more difficult periods, I have always felt that Windows offered enough unique value to warrant its existence.&lt;/p&gt;

&lt;p&gt;As I consider my current usage of computing systems, I no longer see a logical place for Windows, where it offers clear value. Ironically, it has now become the “compromise” in the way I used to consider Linux.&lt;/p&gt;

&lt;p&gt;For example, if I want a highly opinionated system that “just works”, I would turn to macOS, whilst also reaping the benefits of Apple Silicon. For everything else, there is Linux, which has reached a point of maturity where it is “compatible enough”, usually delivering higher performance and a better user experience that also respects community (e.g., prioritising openness, privacy, choice, etc.)&lt;/p&gt;

&lt;p&gt;I sincerely hope Microsoft are able to improve the state with Windows. However, I see little evidence of any meaningful attempt. Personally, I still believe they should consider a more dramatic pivot, as outlined in my article “&lt;a href=&quot;/2021/12/02/microsoft-linux/&quot;&gt;Microsoft Linux&lt;/a&gt;”.&lt;/p&gt;
</description>
        <pubDate>Wed, 22 Oct 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/10/22/Windows/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/10/22/Windows/</guid>
      </item>
    
      <item>
        <title>Fedora and NVIDIA</title>
        <description>&lt;p&gt;In my previous article “&lt;a href=&quot;/2025/07/09/fedora-42-configuration/&quot;&gt;Fedora 42 Configuration&lt;/a&gt;”, I outlined the software and dependencies I install as part of my standard configuration for &lt;a href=&quot;https://fedoraproject.org/&quot;&gt;Fedora Linux&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The focus of that article was a laptop installation (Framework Laptop 13), which includes an AMD processor with integrated AMD graphics.&lt;/p&gt;

&lt;p&gt;As it stands today, an all-AMD system continues to be the simplest way to get Linux up and running, thanks to the open source drivers supported by AMD.&lt;/p&gt;

&lt;p&gt;Although I favour AMD processors, I still prefer NVIDIA when it comes to dedicated graphics. The reason is simple, NVIDIA offer the best performance, with the most innovative features, especially when it comes to advanced graphics rendering such as Ray Tracing, as well as their parallel computing platform and programming model, known as CUDA.&lt;/p&gt;

&lt;p&gt;Therefore, this article will document the process to install NVIDIA drivers, which can be slightly convoluted, especially if Secure Boot is enabled.&lt;/p&gt;

&lt;p&gt;Outlined below is the specification of my custom-built PC, which includes an &lt;a href=&quot;/2025/03/24/nvidia-geforce-rtx-5090/&quot;&gt;NVIDIA GeForce RTX 5090&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X870 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 9950X 4.3GHz Base / 5.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 G2 LBC CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance EXPO DDR5 PC5-48000C30 6000MHz RAM&lt;/li&gt;
  &lt;li&gt;2TB Crucial T705 M.2 PCI-e Gen5 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;2TB Samsung 990 EVO Plus M.2 PCI-e Gen5 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 5090 Founders Edition 32GB GDDR7&lt;/li&gt;
  &lt;li&gt;Corsair HX1200i 1200W ‘80 Plus Platinum’ ATX PSU&lt;/li&gt;
  &lt;li&gt;Fractal Torrent Compact&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The process described in this article should work for any system running a modern NVIDIA graphics processing unit (GPU), such as the 20/30/40/50 series.&lt;/p&gt;

&lt;p&gt;It should also work for Fedora 42+, where Secure Boot is enabled. As a reminder, Secure Boot is a security feature in a system’s firmware that verifies the digital signatures of software components during the startup process.&lt;/p&gt;

&lt;p&gt;As a result, to use Secure Boot with Fedora and an NVIDIA GPU, you must generate and import a key. Without this key, the drivers will fail to initialise correctly.&lt;/p&gt;

&lt;p&gt;The following command can be used to confirm your graphics card is being detected. It also provides details regarding the make/model.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/sbin/lspci | grep -e VGA
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Prior to any installation, ensure Fedora is up to date.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;  sudo dnf upgrade --refresh -y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Ensure the RPM Fusion repositories are installed.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install \   https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install \   https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

sudo dnf upgrade --refresh -y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
If Secure Boot is enabled, you must install the signing modules and generate and import a key. As part of this process, you will be asked to provide a password.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install kmodtool akmods mokutil openssl -y

sudo kmodgenca -a

sudo mokutil --import /etc/pki/akmods/certs/public_key.der
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Upon completion, restart the system, which will prompt the MOK enrollment.&lt;/p&gt;

&lt;p&gt;Select “Enrol MOK” &amp;gt; “Continue” &amp;gt; “Yes” and enter the password. You can then select “Reboot”.&lt;/p&gt;

&lt;p&gt;Install the NVIDIA driver and cuda/nvdec/nvenc support, ensuring the use of the open kernel space driver.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo sh -c 'echo &quot;%_with_kmod_nvidia_open 1&quot; &amp;gt; /etc/rpm/macros.nvidia-kmod'

sudo dnf install akmod-nvidia

sudo dnf install xorg-x11-drv-nvidia-cuda
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The installation is complete once the following command returns the driver version as a response (For example, 580.95.05).&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;  modinfo -F version nvidia
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This process may take several minutes. If you receive any other response, simply wait and retry the command.&lt;/p&gt;

&lt;p&gt;Restart the system to finalise the installation.&lt;/p&gt;

&lt;p&gt;To see more information about the drivers and graphics card installed, use the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nvidia-smi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The following two commands can be useful if you encounter issues. Specifically, recompiling the installed kernel modules (akmods) and rebuilding the initial RAM file system image (dracut).&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo akmods --force

sudo dracut --force
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Finally, if you ever need to uninstall the NVIDIA drivers, use the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;  dnf remove xorg-x11-drv-nvidia\*
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The NVIDIA drivers are now installed and running.&lt;/p&gt;
</description>
        <pubDate>Sun, 12 Oct 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/10/12/Fedora-and-NVIDIA/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/10/12/Fedora-and-NVIDIA/</guid>
      </item>
    
      <item>
        <title>WinBoat</title>
        <description>&lt;p&gt;Is this the year of the Linux desktop?&lt;/p&gt;

&lt;p&gt;I have been using Linux since 2001 and on many occasions have felt it was close to becoming a viable mainstream operating system for general consumers, specifically the more mature distributions, such as &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt; and my personal choice, &lt;a href=&quot;https://fedoraproject.org/&quot;&gt;Fedora&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A great example of the progress is gaming, which, thanks to the great work from &lt;a href=&quot;https://www.valvesoftware.com/&quot;&gt;Valve&lt;/a&gt; and the open source community, is now very feasible on Linux, using the &lt;a href=&quot;/2021/08/07/proton-the-trojan-horse/&quot;&gt;Proton&lt;/a&gt; translation layer.&lt;/p&gt;

&lt;p&gt;Except for competitive multiplayer games, which require Windows-specific anti-cheat software, it works surprisingly well, even delivering better performance than Windows, thanks to the lower resource impact and ability to pre-cache assets, etc.&lt;/p&gt;

&lt;p&gt;In addition, the most common software (e.g., productivity, collaboration) is now available for Linux or has an open source alternative. For example, &lt;a href=&quot;/2024/01/20/software-list-2024/&quot;&gt;I maintain my list of common software&lt;/a&gt;, with options available across Windows, macOS and Linux.&lt;/p&gt;

&lt;p&gt;Unfortunately, even with all of this progress, there are still a few specific applications that individuals rely upon. Most notably, gaming and access to specific Windows applications, such as Microsoft Office and Adobe Photoshop.&lt;/p&gt;

&lt;p&gt;Although there are alternatives, such as &lt;a href=&quot;https://www.libreoffice.org/&quot;&gt;LibreOffice&lt;/a&gt;, they are not perfect and do not have feature parity with their proprietary Windows counterparts. These applications are also not compatible with translation layers, such as WINE.&lt;/p&gt;

&lt;p&gt;To overcome this issue, users can either dual-boot Windows (not ideal) or leverage virtualisation. For example, I use &lt;a href=&quot;/2022/07/27/kvm-on-fedora/&quot;&gt;KVM&lt;/a&gt;. However, it requires effort to install and configure.&lt;/p&gt;

&lt;p&gt;Introducing &lt;a href=&quot;https://www.winboat.app/&quot;&gt;WinBoat&lt;/a&gt;, a new Linux application that aims to run Windows apps on Linux
with seamless integration.&lt;/p&gt;

&lt;p&gt;It uses a combination of KVM and Docker, which sounds scary, but uniquely automates the installation and configuration.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/winboat01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/winboat01.jpg&quot; alt=&quot;WinBoat&quot; title=&quot;WinBoat&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once installed and configured, it provides a user interface to navigate and open Windows applications, with pre-configured file sharing access to provide access to your Linux filesystem.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/winboat02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/winboat02.jpg&quot; alt=&quot;WinBoat&quot; title=&quot;WinBoat&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As this is still a virtual machine, accessed via RDP, you can also load the full Windows operating system to install new applications.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/winboat03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/winboat03.jpg&quot; alt=&quot;WinBoat&quot; title=&quot;WinBoat&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Although WinBoat is currently in beta (pre-release), I have been testing on Fedora and have been very impressed. There are still some rough edges and missing features. However, the overall value proposition is excellent, providing a simple and reliable way to run Windows applications on Linux, with minimal effort.&lt;/p&gt;

&lt;p&gt;I hope this project continues to mature and grow, as I see this as one of the final steps required to unlock mainstream adoption of Linux on the desktop.&lt;/p&gt;
</description>
        <pubDate>Sat, 11 Oct 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/10/11/WinBoat/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/10/11/WinBoat/</guid>
      </item>
    
      <item>
        <title>Folding Phones</title>
        <description>&lt;p&gt;Over the past few years, I have been experimenting with folding smartphones. Specifically, the Samsung Galaxy Z Fold and, more recently, the Google Pixel Pro Fold.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/10/02/foldable-future/&quot;&gt;Folding Future&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/11/02/foldable-future-update/&quot;&gt;Folding Future - Update&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When I first started using a folding smartphone, there were many compromises. The durability, size, weight and cost were all significant barriers to mainstream adoption.&lt;/p&gt;

&lt;p&gt;This lack of adoption directly impacted the software ecosystem, which was not well optimised for devices with larger displays, further limiting the value proposition.&lt;/p&gt;

&lt;p&gt;Thankfully, things have progressed, with almost every previous complaint now rectified to an acceptable level.&lt;/p&gt;

&lt;p&gt;For example, the table below provides an overview of the core features found in a modern folding smartphone, highlighting the status (readiness for mainstream adoption, based on my own opinion).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/foldingphones01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/foldingphones01.jpg&quot; alt=&quot;Folding Phones&quot; title=&quot;Folding Phones&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In my opinion, the Google Pixel Pro Fold (versions 9 and 10) underscore the potential of a folding smartphone.&lt;/p&gt;

&lt;p&gt;I have used both devices as my daily driver and can confirm that they combine excellent hardware with a native and well-optimised software experience (supported by “vanilla” Android).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/foldingphones02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/foldingphones02.jpg&quot; alt=&quot;Folding Phones&quot; title=&quot;Folding Phones&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Although not specific to a folding smartphone, the integration of &lt;a href=&quot;https://gemini.google.com/&quot;&gt;Google Gemini&lt;/a&gt; within Android has further enhanced the overall value proposition.&lt;/p&gt;

&lt;p&gt;This is especially true when compared with the Apple iPhone, which feels like it has not received a meaningful upgrade in many years (there comes a point where faster processors and better cameras offer diminishing returns for most people).&lt;/p&gt;

&lt;p&gt;With that said, two areas continue to fall below my expectations.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Camera Quality:&lt;/strong&gt; The cameras included with folding smartphones are commonly lower quality than the non-folding equivalent. For example, the Google Pixel 10 Pro Fold vs. the Google Pixel 10 Pro. These differences are increasingly small, but do still exist, impacted by the depth of the device when unfolded.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cost:&lt;/strong&gt; Starting at £1,749, the Google Pixel Pro Fold highlights the premium price of a folding smartphone. To be competitive, this price must drop much closer to £1,000 (or ideally below). It would also be great to see non-flagship folding smartphones, providing an easier entry point for mainstream users.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thankfully, I think both of these areas are about to improve, driven by the growing likelihood that Apple is preparing to release their first folding smartphone.&lt;/p&gt;

&lt;p&gt;The recent release of the Apple iPhone Air is (in my opinion) a clear signal of intent, as the research and development investment provides a logical pathway from the current design to a folding smartphone.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/foldingphones03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/foldingphones03.jpg&quot; alt=&quot;Folding Phones&quot; title=&quot;Folding Phones&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A new form factor would also reinvigorate the iPhone brand, which has been stagnant for many years, relying mostly on gimmicks (new buttons and marketing) to entice upgrades.&lt;/p&gt;

&lt;p&gt;Recognising the standard Apple iPhone 17 offers superior features at a lower price, I do not believe Apple expect the iPhone Air to be a top seller.&lt;/p&gt;

&lt;p&gt;It does, however, provide a way to test a new ultra-thin design at scale, whilst also recouping some of the research and development cost. This testing will also provide valuable insights when determining what features to prioritise with a folding smartphone.&lt;/p&gt;

&lt;p&gt;As a reference, the photo below compares the Google Pixel 10 Pro Fold alongside the Apple iPhone Air. It is easy to see how you could adapt the current Apple iPhone Air design to include a folding display.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/foldingphones04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/foldingphones04.jpg&quot; alt=&quot;Folding Phones&quot; title=&quot;Folding Phones&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The release of a folding smartphone from Apple would be a major milestone, as Apple is still the most well-recognised and powerful brand within the smartphone market.&lt;/p&gt;

&lt;p&gt;Their presence (for many) would validate the viability of the form factor, whilst also increasing consumer awareness for folding smartphones thanks to their colossal marketing power.&lt;/p&gt;

&lt;p&gt;It would also deliver much-needed competition. For example, although Samsung, Google, OnePlus, and Motorola make folding smartphones, they are all fundamentally Android-based, delivering a very similar experience.&lt;/p&gt;

&lt;p&gt;With Apple, the consumer would be offered something different, forcing every existing player to up their game, specifically in areas where Apple are known to be strong (e.g., Cameras).&lt;/p&gt;

&lt;p&gt;As with all competition, it will also likely unlock more aggressive pricing, with some manufacturers taking additional risks to secure early market share.&lt;/p&gt;

&lt;p&gt;As an advocate for folding smartphones, I am extremely excited to see how this evolves. It will also be interesting to see if the sheer potential for Apple to enter the market triggers a proactive response from any of the existing players, specifically Samsung and Google.&lt;/p&gt;

&lt;p&gt;For the latest information regarding Android, including the current state of folding phones, I would recommend &lt;a href=&quot;https://www.androidauthority.com/&quot;&gt;Android Authority&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 10 Oct 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/10/10/Folding-Phones/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/10/10/Folding-Phones/</guid>
      </item>
    
      <item>
        <title>Structural Prediction</title>
        <description>&lt;p&gt;In my previous article (&lt;a href=&quot;/2025/04/10/rational-drug-design/&quot;&gt;Rational Drug Design&lt;/a&gt;), I shared a session presented at NVIDIA GTC from &lt;a href=&quot;https://www.isomorphiclabs.com/&quot;&gt;Isomorphic Labs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The focus of the session was Rational Drug Design With AlphaFold 3, where the team provided insights as to how they develop general AI models focused on biology.&lt;/p&gt;

&lt;p&gt;As part of our strategic partnership with Google, we have been fortunate enough to work with the exceptional team at &lt;a href=&quot;https://deepmind.google/&quot;&gt;DeepMind&lt;/a&gt;. We actively leverage their specialist AI models (such as &lt;a href=&quot;https://deepmind.google/science/alphafold/&quot;&gt;AlphaFold&lt;/a&gt;) and collaborate on future opportunities.&lt;/p&gt;

&lt;p&gt;Although I expect the DeepMind team to continue to lead the field, delivering “bleeding-edge” capabilities, the proprietary nature of these specialist AI models can be restrictive.&lt;/p&gt;

&lt;p&gt;Therefore, as part of our strategy to support drug development, we leverage proprietary and open AI models to predict compound structures and optimise synthesis to accelerate the discovery process.&lt;/p&gt;

&lt;p&gt;Recently, we partnered with &lt;a href=&quot;https://www.wwt.com/&quot;&gt;WWT&lt;/a&gt; to test a new multi-model Structural Prediction platform, leveraging the &lt;a href=&quot;https://www.nvidia.com/en-gb/ai-data-science/products/nim-microservices/&quot;&gt;NVIDIA Inference Microservices (NIM)&lt;/a&gt; architecture, which is a set of optimised inference microservices that accelerate the deployment of AI models on any NVIDIA-accelerated infrastructure.&lt;/p&gt;

&lt;p&gt;Synthesising large molecules like Monoclonal Antibodies (mAbs) without prior structural knowledge is a costly, time-consuming gamble. Without the confirmed binding affinity, effort can be wasted on non-viable candidates.&lt;/p&gt;

&lt;p&gt;Therefore, predicting compound structures upfront identifies high-potential drug candidates and eliminates non-starters, drastically cutting the synthesis time and expense.&lt;/p&gt;

&lt;p&gt;With this goal in mind, we tested the open source &lt;a href=&quot;https://github.com/jwohlwend/boltz&quot;&gt;Boltz-2&lt;/a&gt; structural biology foundational model, formulated based on complexes not in the training data.&lt;/p&gt;

&lt;p&gt;The results were impressive, with improved scale and time to prediction.&lt;/p&gt;

&lt;p&gt;Prediction throughput increased 260-fold from 3 complexes (default baseline) to 780 complexes in parallel between two separate tools.&lt;/p&gt;

&lt;p&gt;Prediction speed increased 5.5x on average (default baseline) from 11 minutes per complex to 2 minutes per complex.&lt;/p&gt;

&lt;p&gt;Finally, we validated that the accuracy of Boltz-2 is comparable to that of AlphaFold2, while being 52 times faster.&lt;/p&gt;

&lt;p&gt;We are currently working on a case study with WWT, where we plan to share more details of our testing.&lt;/p&gt;

&lt;p&gt;However, the initial findings support our strategy to industrialise our use and scale of computational science, targeting proprietary and open AI models, to accelerate drug discovery.&lt;/p&gt;
</description>
        <pubDate>Mon, 29 Sep 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/09/29/Structural-Prediction/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/09/29/Structural-Prediction/</guid>
      </item>
    
      <item>
        <title>Vibe Coding</title>
        <description>&lt;p&gt;In 2021, I wrote an article regarding the release of “&lt;a href=&quot;/2021/06/30/github-copilot/&quot;&gt;GitHub Cpilot&lt;/a&gt;”, an AI pair programming capability powered by &lt;a href=&quot;https://openai.com/codex/&quot;&gt;OpenAI Codex&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This was my first glimpse of a world where code could be generated based on user intent, either by describing the desired outcome or referencing previous code. It sparked a lively debate across the software engineering community, regarding the value and ethics of such a capability, especially one that could (in theory) replace/reduce the reliance on specialist skills.&lt;/p&gt;

&lt;p&gt;Personally, I was optimistic, as AI-generated code felt like a natural progression for software engineering, accelerating the development process, whilst also providing new ways to verify and test code, without human intervention.&lt;/p&gt;

&lt;p&gt;This journey has led us to the concept and term “vide coding”, which was first introduced in February 2025 by Andrej Karpathy, co-founder of OpenAI and former AI leader at Tesla. Vibe coding refers to a coding approach that relies on large language models, allowing programmers to generate working code by providing natural language descriptions.&lt;/p&gt;

&lt;p&gt;Inevitably, this has led to the emergence of specialist “AI coding” platforms, which I would loosely split into two categories. Those platforms that are designed to support software engineers with a technical background, and those that target software hobbyists who have an idea but limited technical experience.&lt;/p&gt;

&lt;p&gt;A few examples are listed below. To be clear, these platforms can be used to complement each other, for example, Lovable + Cursor, with a source code management system such as &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt;, providing the common ground.&lt;/p&gt;

&lt;h3 id=&quot;software-engineers-ai-coding-assistant&quot;&gt;Software Engineers (AI Coding Assistant)&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://cursor.com/&quot;&gt;Cursor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://windsurf.com/&quot;&gt;Windsurf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://claude.com/product/claude-code&quot;&gt;Claude Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;software-hobbists-vibe-coding&quot;&gt;Software Hobbists (Vibe Coding)&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://v0.app/&quot;&gt;V0 by Vercel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lovable.dev/&quot;&gt;Lovable&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bolt.new/&quot;&gt;Bolt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.figma.com/make/&quot;&gt;Figma Make&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have been investigating a few of the “Software Hobbist” platforms, most notably Lovable, V0, and Figma Make. In some respects, these platforms are the most interesting, as they attempt to produce full-stack applications, targeting individuals with little or no software engineering experience. If successful, these platforms have the potential to broaden the scope of what we consider to be software engineers.&lt;/p&gt;

&lt;p&gt;At work, we have been testing V0 by Vercel and Figma Make, as they most closely align with our architecture standards and technology stack. However, at home, I have been testing Lovable.&lt;/p&gt;

&lt;p&gt;Lovable is considered the most “user-friendly” vibe coding platform for non-technologists. Therefore, I was intrigued to understand how simple Lovable has been able to make the process and how far it could be pushed.&lt;/p&gt;

&lt;p&gt;As a test project, I decided to create a simple application to track my gym activity, covering weights, cardio, etc. In many respects, this is a simple Create, Read, Update, and Delete (CRUD) web application. However, it would likely take a single developer several working days to develop manually (assuming no reference code).&lt;/p&gt;

&lt;p&gt;I started with the following prompt, outlining six requirements. I did not pay much attention to the structure or “completeness” of the requirements, as I wanted to see how Loveable would interpret ambiguity.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I am looking to create a web application to track my gym workouts. The key requirements are listed below:&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;The web application must be mobile responsive.&lt;/li&gt;
    &lt;li&gt;The web application must have an interface to add new exercises, which could be weights, cardio, etc.&lt;/li&gt;
    &lt;li&gt;The web application must be able to track sets and reps.&lt;/li&gt;
    &lt;li&gt;The web application must be able to track the weight of the weights used for relevant exercises.&lt;/li&gt;
    &lt;li&gt;The web application must track the date/time of the workout.&lt;/li&gt;
    &lt;li&gt;The web application must include a simple timer on the homepage, allowing for certain exercises or workouts to be tracked by time. The user should be able to set the length of the time, with a buzzer (sound) at the end.&lt;/li&gt;
  &lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;The initial result (one-shot prompting) was impressive, as after a few minutes of “thinking”, I was presented with a mobile-responsive homepage that includes a workout timer (as defined in my requirements).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/vibecoding01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/vibecoding01.jpg&quot; alt=&quot;Vibe Coding&quot; title=&quot;Vibe Coding&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lovable successfully generated all sub-menus, which provide the ability to create workouts, add exercises, sets, etc. The major functional requirements were incorporated, with a simple user journey that made navigating the application intuitive.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/vibecoding02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/vibecoding02.jpg&quot; alt=&quot;Vibe Coding&quot; title=&quot;Vibe Coding&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The code produced was also easy to navigate and read. I later took the opportunity to update the code directly within the Lovable editor, which worked as designed, with the changes being reflected/maintained throughout the development process.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/vibecoding03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/vibecoding03.jpg&quot; alt=&quot;Vibe Coding&quot; title=&quot;Vibe Coding&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the basic application already working, I then iterated to add some missing features. For example, features to edit/delete workouts and capture the one rep maximum for each relevant exercise. This was all achieved by simply prompting the requirement, which I did incrementally.&lt;/p&gt;

&lt;p&gt;When testing the application, I noticed a few minor visual errors (user interface alignment issues) and a couple of functional bugs. To resolve, I simply prompted Lovable to review and resolve the issues. This worked surprisingly well, with only one example that required me to specifically state how I wanted the issue to be resolved (still described in natural language via a prompt).&lt;/p&gt;

&lt;p&gt;Regarding backing services, I connected Lovable to GitHub for source code management and &lt;a href=&quot;https://supabase.com/&quot;&gt;Superbase&lt;/a&gt;, which is a Postgres development platform that has become popular with Vibe Coding platforms. The setup was simple, with Lovable handling most of the integration steps. Once configured, Lovable could leverage the database as a backing service and would automatically commit updates to GitHub.&lt;/p&gt;

&lt;p&gt;Overall, the entire process took me approximately one hour, including the time to set up and configure Lovable, GitHub, Superbase, etc. At the end of the hour, I had a fully working application, which I was able to publish via the Lovable hosting option. I could have also used a third-party host, such as &lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify&lt;/a&gt;, pushed via GitHub.&lt;/p&gt;

&lt;p&gt;I have been testing with the Lovable “Pro” plan, which was £185.25 for the year, which includes 100 credits per month. A credit tracks usage within the platform, with a variable cost being assigned based on the action complexity.&lt;/p&gt;

&lt;p&gt;My gym tracking application consumed approximately 22.5 credits.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/vibecoding04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/vibecoding04.jpg&quot; alt=&quot;Vibe Coding&quot; title=&quot;Vibe Coding&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lovable also includes a basic security review capability, which aims to highlight potential risks. I am pleased they include this feature. However, I would recommend leveraging a third-party tool, integrated with GitHub, for a more thorough analysis.&lt;/p&gt;

&lt;p&gt;Overall, I have been impressed with Lovable. The user interface is intuitive, and the results are impressive, at least for a simple CRUD web application.&lt;/p&gt;

&lt;p&gt;With that said, my experience and ongoing analysis have highlighted a few advantages and disadvantages of vibe coding.&lt;/p&gt;

&lt;h3 id=&quot;advantages&quot;&gt;Advantages&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Prototyping:&lt;/strong&gt; Vibe coding is great for rapid experimentation and protypting, producing a working asset within hours (vs. days). It is also possible to iterate in real-time, taking direct input from non-technical users. I could see this being very useful when completing discovery with the target user base.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Personal Projects:&lt;/strong&gt; If you are looking to create a simple CRUD web applications for personal use, vibe coding offers a compelling proposition. The speed and simplicity lower the barrier to entry for non-technical users, making application development feasible for a wider audience.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Boilerplate Code:&lt;/strong&gt; Vibe coding can produce respectable boilerplate code, providing a foundation to build from. This could be valuable when starting a new project, helping to accelerate through the initial development phase, allowing the software engineer to focus on the more complex logic. In addition, for software engineers with specific expertise (e.g., backend development), the use of vibe coding could replace the need for additional human resources (e.g., frontend development), allowing software engineers to produce “full-stack” deliverables.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Education:&lt;/strong&gt; If you have previous software engineering experience, vibe coding could be used as a method to learn a new programming language and/or framework. Being able to rapidly generate working code that can be used as a reference could save hours of research, whilst also allowing the software engineer to get “hands on keyboard” more quickly, which accelerates learning and improves engagement (motivation).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;disadvantages&quot;&gt;Disadvantages&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; At this time, I would not trust any vibe coding platform to generate secure/hardended code, specificlly for key funcionaility such as authentication and authorisation. Security-specific functionality should be custom-developed or imported from a trusted source, including peer review before publishing and after all changes.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Backing Services:&lt;/strong&gt; Middleware and/or backing service configuration, including the Superbase integration, prioritises functionaility over security. This can leave the application and data vulnerable. Therefore, I would recommend that all backing services be reviewed before publishing and after all changes.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Complex Logic:&lt;/strong&gt; Vibe coding is capable of generating simple web applications, that support basic CRUD operations. However, more complex logic and/or building from a “brownfield” application (existing codebase) will likely generate inefficiencies and/or errors that could become increasingly difficult to troubleshoot.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Efficiency:&lt;/strong&gt; To embrace vibe coding effectively, you must accept that the code generated may not adhere to your personal style. This is ok, as it is similar to how different software engineers have certain preferences. However, as a general rule, the best code is the simplest. Vibe coding may not always generate the simplest or most efficient code. With personal projects, this may not cause a concern, but if the application is designed to scale, the performance and support overhead of unoptimised code could become a significant burden.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Hidden Risks:&lt;/strong&gt; With vide coding, there is a tendency to “fire and forget”, assuming the generated code is “right”, as long as it is functional. This approach could quickly lead to hidden risks, which will likely grow over time.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Overall, I am pleasantly surprised by the effectiveness of vibe coding. Considering the immaturity of this space, it is impressive that a non-technical user could go from nothing to a published web application in a few hours with little/no previous experience.&lt;/p&gt;

&lt;p&gt;I am confident this is only the beginning. I expect vibe coding to continue to mature rapidly, enabling greater scope and complexity. I also expect the disadvantages to be reduced over time, with more advanced features and automated verification checks to mitigate common issues/risks.&lt;/p&gt;

&lt;p&gt;There is also an interesting opportunity to blend vibe coding with advanced AI coding assistants, like Cursor and Claude Code, etc. In this scenario, I could see engineers using low-barrier platforms such as Lovable as part of the initial discovery, importing the output into an IDE, and using an AI coding assistant to deliver production-ready code.&lt;/p&gt;

&lt;p&gt;Finally, a common question is whether vibe coding will replace the need for software engineers. In my opinion, the answer is simple: no, it will not.&lt;/p&gt;

&lt;p&gt;The value of a software engineer expands beyond the code itself, which is really just an asset produced as part of the process (similar to how an architect may produce a blueprint as an asset).&lt;/p&gt;

&lt;p&gt;The real value is the hundreds of decisions that contribute to the final code, designed to solve a specific problem. This requires curiosity, critical thinking, and strong situational awareness (to understand dependencies, etc.)&lt;/p&gt;

&lt;p&gt;In addition, experts will still be required to review and understand code, especially in large enterprise systems, many of which may operate critical infrastructure, services, etc. Therefore, code review skills, which require foundational expertise, will likely become increasingly important.&lt;/p&gt;

&lt;p&gt;With this in mind, like many revolutions before, I expect the use of AI within software engineering to evolve how individuals and teams work, replacing certain aspects of the process, but not the underlying skillset.&lt;/p&gt;

&lt;p&gt;I will be watching this space closely to see how it evolves!&lt;/p&gt;
</description>
        <pubDate>Mon, 22 Sep 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/09/22/Vibe-Coding/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/09/22/Vibe-Coding/</guid>
      </item>
    
      <item>
        <title>AI Reality Check</title>
        <description>&lt;p&gt;Earlier today, &lt;a href=&quot;https://www.cxotalk.com/&quot;&gt;CXOTalk&lt;/a&gt; released their latest podcast, which included an interview with Paul Daugherty, Chief AI Advisor at TPG and former Group CEO of Technology at Accenture.&lt;/p&gt;

&lt;p&gt;The podcast, titled “&lt;a href=&quot;https://www.cxotalk.com/episode/ai-reality-check-what-works-and-whats-new&quot;&gt;AI Reality Check: What Works and What’s New&lt;/a&gt;”, provides a great overview of how businesses are transforming with Artificial Intelligence (AI), specifically Generative AI and Agentic AI.&lt;/p&gt;

&lt;p&gt;The full episode can be viewed below.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/0rrCJNs9Zdw?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Many of the topics discussed aligned with my own views and experiences. Specifically, outlined below are ten takeaways that I consider critical to increase the probability of success when looking to embed AI as part of a business strategy.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;You do not have an AI strategy; you have a business strategy, which AI helps enable. AI must be an embedded part of the business strategy.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The impact of Generative AI and Agentic AI is real, likely to impact every industry across the value chain. AI will penetrate every layer of business structure and demand wholesale process reinvention.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Large Language Models are only the beginning; other branches of AI will also mature quickly, driving additional value.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Focus on transformative use cases, prioritising outcomes over output. AI investments must contribute to “page-one” scorecard metrics for the business.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Implement responsible AI practices, moving beyond principles to industrialised processes. This includes comprehensive risk ranking and mitigation strategies for potential adverse outcomes.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Businesses must establish verifiable AI practices that support rapid evaluation of new concepts/models, establishing trust, credibility and loyalty.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Sales enablement is a common target for AI. However, the real opportunity is when you broaden the scope to include cross-functional processes and data sources.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Cloud and data are prerequisites, specifically data governance/stewardship. However, do not wait for perfection to get started.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Enterprise architects are key, helping to avoid the pitfalls of legacy capabilities such as Robotic Process Automation (RPA), building a foundation that can securely scale.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Expertise is critical, covering those who build AI solutions and those who must consume them. This must directly influence talent acquisition and ongoing organisational change management (including targeted awareness and education).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;CXOTalk is an excellent podcast; I highly recommend subscribing.&lt;/p&gt;
</description>
        <pubDate>Fri, 19 Sep 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/09/19/AI-Reality-Check/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/09/19/AI-Reality-Check/</guid>
      </item>
    
      <item>
        <title>AMD Ryzen AI Max 300</title>
        <description>&lt;p&gt;I recently started testing two systems equipped with the new AMD Ryzen AI Max+ 395, which, in my opinion, is one of the most interesting x86-64 processors ever released.&lt;/p&gt;

&lt;p&gt;The specification of the AMD Ryzen AI Max+ 395 can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;AMD Ryzen AI Max+ 395 (16 Cores / 32 Threads)&lt;/li&gt;
  &lt;li&gt;3GHz Base / 5.1GHz Boost&lt;/li&gt;
  &lt;li&gt;16MB L2 Cache / 64MB L3 Cache&lt;/li&gt;
  &lt;li&gt;Radeon 8060S Graphics (40 Graphics Cores)&lt;/li&gt;
  &lt;li&gt;2900MHz&lt;/li&gt;
  &lt;li&gt;128GB Unified Memory (LPDDR5x-8000 / 256-bit)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AMD Ryzen AI Max+ 395 is technically an Accelerated Processing Unit (APU), as it combines a Central Processing Unit (CPU) and Graphics Processing Unit (GPU) on one package, with access to unified (shared) memory.&lt;/p&gt;

&lt;p&gt;The CPU is based on the Zen 5 (Strix Halo) architecture, and the GPU is built on the RDNA 3.5 architecture, utilising the TSMC 4nm FinFET process. The total APU includes a configurable TDP (cTDP) ranging from 45W to 120W, making it suitable for both laptops and desktops.&lt;/p&gt;

&lt;p&gt;This is the first time that I have seen a high-performance CPU and GPU embedded on a single package, with access up to 128GB of unified memory, delivering 256GB/s of memory bandwidth.&lt;/p&gt;

&lt;p&gt;This approach resembles the highly successful Apple M series, with the primary difference being that the AMD Ryzen AI Max+ 395 is x86-64, making it natively compatible with existing Windows and Linux operating systems.&lt;/p&gt;

&lt;p&gt;The two systems I have been testing are the &lt;a href=&quot;https://www.hp.com/gb-en/workstations/zbook-ultra.html&quot;&gt;HP ZBook Ultra G1a&lt;/a&gt; and the &lt;a href=&quot;https://frame.work/gb/en/desktop&quot;&gt;Framework Desktop&lt;/a&gt;. The specification for each system can be found below.&lt;/p&gt;

&lt;h4 id=&quot;hp-zbook-ultra-g1a&quot;&gt;HP ZBook Ultra G1a&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;AMD Ryzen AI Max+ 395 3GHz Base / 5.1GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;128GB LPDDR5x-8000 Unified Memory&lt;/li&gt;
  &lt;li&gt;AMD Radeon 8060S Graphics (40 Graphics Cores)&lt;/li&gt;
  &lt;li&gt;2TB M.2 2280 TLC NVM-e SSD&lt;/li&gt;
  &lt;li&gt;MediaTek Wi-Fi 7 MT7925 (Wi-Fi 7 and Bluetooth 5.4)&lt;/li&gt;
  &lt;li&gt;2x Thunderbolt 4, 1x USB-C, 1x USB-A, HDMI 2.1, 3.5mm Headphone&lt;/li&gt;
  &lt;li&gt;14-inch OLED Display (2880x1800 @ 120Hz)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;framework-desktop&quot;&gt;Framework Desktop&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;AMD Ryzen AI Max+ 395 3GHz Base / 5.1GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;128GB LPDDR5x-8000 Unified Memory&lt;/li&gt;
  &lt;li&gt;AMD Radeon 8060S Graphics (40 Graphics Cores)&lt;/li&gt;
  &lt;li&gt;4TB Western Digital SN850X NVM-e SSD&lt;/li&gt;
  &lt;li&gt;2x Thunderbolt 4, 1x USB-C, 1x USB-A, HDMI 2.1, 3.5mm Headphone&lt;/li&gt;
  &lt;li&gt;AMD RZ717 Wi-Fi 7 (Wi-Fi 7 and Bluetooth 5.4)&lt;/li&gt;
  &lt;li&gt;Realtek RTL8126 5Gbit Ethernet&lt;/li&gt;
  &lt;li&gt;1x HDMI 2.1, 2x DisplayPort 2.1, 2x USB-C, 2x USB-A, 1x 3.5mm&lt;/li&gt;
  &lt;li&gt;2x Expansion Card Slots&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The fact that this APU supports a laptop and desktop form factor is impressive. The only difference is the cTDP, with the HP ZBook Ultra G1a drawing a peak of 70W and the Framework Desktop hitting the full 120W.&lt;/p&gt;

&lt;p&gt;This difference in power target highlights the need to balance thermals and battery life for the laptop, constraints that do not exist in a desktop, allowing for the APU to operate at maximum performance.&lt;/p&gt;

&lt;p&gt;As you can see from my specification, the systems are both configured with 128GB unified memory. This memory is shared between the CPU and GPU. Therefore, AMD has equipped high-performance modules, delivering 256GB/s of memory bandwidth. This is similar to the Apple M4 Pro (273GB/s) and is a lot higher than the DDR5 memory commonly paired with Intel and AMD processors.&lt;/p&gt;

&lt;p&gt;With that said, the memory bandwidth falls behind the Apple M4 Max (546GB/s) and dedicated graphics cards, such as the NVIDIA GeForce RTX 5090 (1,792GB/s). With it being shared, there is also some risk of contention when under heavy load.&lt;/p&gt;

&lt;p&gt;To optimise the configuration for specific workloads, it is possible to pre-allocate the amount of memory via the BIOS. For example, when running large local AI models, you would likely want to allocate more unified memory to the GPU (e.g., 96GB), something that would be less relevant for daily usage (where a maximum of 32GB for the GPU would be more than enough).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/amdryzenaimax30001.jpg&quot;&gt;&lt;img src=&quot;/images/posts/amdryzenaimax30001.jpg&quot; alt=&quot;AMD Ryzen AI Max 300&quot; title=&quot;AMD Ryzen AI Max 300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The use of unified memory is certainly a benefit when it comes to performance, whilst also helping with battery life. However, this design decision means the memory is not upgradable, which means any buying decision must consider the total amount required over the duration of the product’s lifecycle (potentially resulting in a higher initial price).&lt;/p&gt;

&lt;h3 id=&quot;operating-system&quot;&gt;Operating System&lt;/h3&gt;

&lt;p&gt;Although both systems support Microsoft Windows, I will be installing and using Linux, specifically &lt;a href=&quot;https://fedoraproject.org/&quot;&gt;Fedora 42&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Using Linux with bleeding-edge hardware can be a risk, as it takes time for the relevant drivers and software optimisations to hit the Kernel.&lt;/p&gt;

&lt;p&gt;Thankfully, the AMD Ryzen AI Max+ 395 works great out of the box with Fedora 42, covering the 6.15.x and 6.16.x Kernels. In my previous article “&lt;a href=&quot;/2025/07/09/Fedora-42-Configuration/&quot;&gt;Fedora 42 Configuration&lt;/a&gt;”, I shared the specific details regarding my software configuration.&lt;/p&gt;

&lt;p&gt;The only hardware issue I have identified during my testing was the integrated webcam in the HP ZBook Ultra G1a. HP does offer a version of Ubuntu 24.04 with an OEM Kernel, which includes webcam support. However, I prefer Fedora and feel confident that webcam support will eventually make its way to the release Kernel. In the interim, I simply use an external USB webcam.&lt;/p&gt;

&lt;p&gt;Regarding the AMD Ryzen AI Max+ 395 itself, compatibility, performance, and reliability are all good. The battery life on the HP ZBook Ultra G1a is acceptable. It will not rival a Mac, and at the time of writing, it likely falls behind Windows running the same hardware. However, I expect this to improve as future optimisations are added to the release Kernel.&lt;/p&gt;

&lt;p&gt;As is common with Linux running on a Laptop, BIOS configuration can make a big difference regarding reliability and power efficiency. For example, I had some initial challenges with suspend, which I initially thought was a Kernel or distribution issue, but turned out to be BIOS-related.&lt;/p&gt;

&lt;p&gt;As for the Framework Desktop, I am pleased to report that everything is working as designed, without the need for any workarounds. As this is a desktop, thermals and power consumption are less of a concern, resulting in a great out-of-the-box experience. Great work from the Framework team!&lt;/p&gt;

&lt;h3 id=&quot;hardware&quot;&gt;Hardware&lt;/h3&gt;

&lt;p&gt;Regarding the hardware itself, both systems are very well built.&lt;/p&gt;

&lt;p&gt;The HP ZBook Ultra G1a is certainly a premium laptop, with a dense and rigid construction, which rivals the best I have seen from Dell, Lenovo, Asus, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/amdryzenaimax30002.jpg&quot;&gt;&lt;img src=&quot;/images/posts/amdryzenaimax30002.jpg&quot; alt=&quot;AMD Ryzen AI Max 300&quot; title=&quot;AMD Ryzen AI Max 300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The touchpad and keyboard are both excellent, with my only minor complaint being the lack of a haptic touchpad. I have also been impressed with the excellent I/O, speakers, microphone, and webcam, all of which are above what I have come to expect from non-Apple laptops.&lt;/p&gt;

&lt;p&gt;The same can be said for the display, which delivers a high resolution (2880x1800) and high refresh rate (120Hz), with beautiful colours thanks to the OLED panel.&lt;/p&gt;

&lt;p&gt;The Framework Desktop is equally impressive, with a very small form factor and some smart design decisions that ensure thermal performance is perfectly maintained even under sustained full load.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/amdryzenaimax30003.jpg&quot;&gt;&lt;img src=&quot;/images/posts/amdryzenaimax30003.jpg&quot; alt=&quot;AMD Ryzen AI Max 300&quot; title=&quot;AMD Ryzen AI Max 300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The FlexATX 400W Power Supply Unit (PSU) is a great addition, as this is an area that is usually cumbersome when working with small form factor systems.  I am also pleased to see the addition of two M.2 SSD slots (one on the front and one on the back of the mainboard), alongside two easy-to-access expansion card slots on the front.&lt;/p&gt;

&lt;p&gt;My only minor frustration is the PCIe x4 slot, which I wish could have been a full PCIe x16 slot (even if bandwidth was reduced). Although it would not be possible to add a dedicated GPU within the default Framework case, the potential to put the Mini-ITX mainboard in another case would have made for an interesting upgrade option down the road.&lt;/p&gt;

&lt;p&gt;For example, Minisforum has announced the MS-S1 Max, which also uses the AMD Ryzen AI Max+ 395 and includes a full PCIe x16 slot, alongside USB4v2 Type-C, delivering 80Gbps throughput.&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;The GeekBench 6 scores (Single-Core / Multi-Core) for the HP ZBook Ultra G1a and Framework Desktop can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;HP ZBook Ultra G1a - Battery - Balanced&lt;/strong&gt; = 2578 / 15825&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;HP ZBook Ultra G1a - Battery - Performance&lt;/strong&gt; = 2703 / 14033&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;HP ZBook Ultra G1a - Powered - Balanced&lt;/strong&gt; = 2590 / 15523&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;HP ZBook Ultra G1a - Powered - Performance&lt;/strong&gt; = 2702 / 14410&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Framework Desktop - Balanced&lt;/strong&gt; = 2810 / 20769&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Framework Desktop - Performance&lt;/strong&gt; = 2840 / 22769&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, the AMD Ryzen AI Max+ 395 is extremely impressive! These numbers rival the best consumer parts I have used, with the Apple M3/4 Max being a notable exception. With that said, achieving Apple M3/M4 Pro performance is welcome progress for x86-64.&lt;/p&gt;

&lt;p&gt;In addition, the Radeon 8060S, with 40 Graphics Cores, achieves NVIDIA GeForce RTX 4060 performance, falling slightly behind the new NVIDIA GeForce RTX 5060. This is an excellent result for an integrated GPU, which avoids the cost, size, power, and thermal implications of using a dedicated GPU. I suspect the Radeon 8060S will be more than enough for most users, even those with specific requirements for local AI, rendering, and gaming.&lt;/p&gt;

&lt;p&gt;Unsurprisingly, the Framework Desktop outperforms the HP ZBook Ultra G1a, supported by the higher cTDP. With that said, HP ZBook Ultra G1a performs very well, highlighting the diminishing returns beyond the 70W cTDP.&lt;/p&gt;

&lt;p&gt;With Fedora 42, running &lt;a href=&quot;https://www.gnome.org/&quot;&gt;GNOME 48&lt;/a&gt;, the difference between “Balanced” and “Performance” modes appears to bias single-core performance when thermally constrained. With this in mind, when using the HP ZBook Ultra G1a, it would appear that “Performance” mode would offer small real-world benefits when targeting single-threaded workloads.&lt;/p&gt;

&lt;p&gt;For more information regarding performance on Linux, I recommend reviewing the excellent articles by Michael Larabel at &lt;a href=&quot;https://www.phoronix.com/&quot;&gt;Phoronix&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.phoronix.com/review/amd-ryzen-ai-max-pro-395&quot;&gt;AMD Ryzen AI Max+ 395 Linux Benchmarks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;ahttps://www.phoronix.com/review/hp-zbook-ultra-g1a&quot;&gt;HP ZBook Ultra G1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.phoronix.com/review/framework-desktop-linux&quot;&gt;Framework Desktop&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my opinion, Michael continues to deliver the best (most comprehensive) Linux performance analysis.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, I am incredibly impressed with the AMD Ryzen AI Max+ 395.&lt;/p&gt;

&lt;p&gt;The performance, reliability, and convenience of having a single package that can deliver excellent results across a wide range of workloads, with support for laptops and desktops, is a major step forward for the x86-64 architecture.&lt;/p&gt;

&lt;p&gt;At the right price point, I can see this APU becoming very popular, especially with AI enthusiasts and gamers, especially those looking to balance size and thermal efficiency.&lt;/p&gt;

&lt;p&gt;I also hope the success of this APU encourages AMD to deliver more of the same, integrated future architecture improvements, such as RDNA 4, etc.&lt;/p&gt;
</description>
        <pubDate>Sat, 30 Aug 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/08/30/AMD-Ryzen-AI-Max-300/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/08/30/AMD-Ryzen-AI-Max-300/</guid>
      </item>
    
      <item>
        <title>3D Printing Evolved</title>
        <description>&lt;p&gt;I am a huge fan of &lt;a href=&quot;https://www.prusa3d.com/&quot;&gt;Prusa&lt;/a&gt;, not just their products, but the company and their values. For example, their leadership and commitment to open source (as outlined in their mission below).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Make enjoyable machines for everyone to use. Open-source is our heart, we strongly believe in the community and in sharing how we do things so others can learn and create. Our goal is for our printers to remain moddable, easily repairable, and produce amazing prints even decades after their initial release. Reprint the plastic parts, flash custom firmware, read through our circuit board designs, or completely modify our printers to meet your specific needs.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;At home and work, &lt;a href=&quot;/2021/11/18/prusa-research/&quot;&gt;I have been using Prusa 3D printers since 2021&lt;/a&gt;, most notably the &lt;a href=&quot;/2021/11/24/prusa-mini-plus/&quot;&gt;Original Prusa MINI+&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Recently, I was in the market for a new model with three key requirements.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Automated Multicolour Printing&lt;/li&gt;
  &lt;li&gt;Larger Printing Area (above 180x180x180)&lt;/li&gt;
  &lt;li&gt;Auto Bed Levelling (ABL)&lt;/li&gt;
  &lt;li&gt;Integrated Camera&lt;/li&gt;
  &lt;li&gt;Wireless Connectivity&lt;/li&gt;
  &lt;li&gt;Mobile Application (iOS and Android)&lt;/li&gt;
  &lt;li&gt;Integrated Enclosure&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This led me to explore the popular &lt;a href=&quot;https://bambulab.com/&quot;&gt;Bambu Lab&lt;/a&gt; product range, specifically the &lt;a href=&quot;https://bambulab.com/en-gb/p1?product=p1s&quot;&gt;Bambu Lab P1S 3D Printer with Automatic Material System (AMS)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Based on my analysis, I believe the Bambu Lab P1S 3D Printer with AMS is the best fit for my requirements, especially with the recent discounts.&lt;/p&gt;

&lt;p&gt;Unfortunately, Prusa and Bambu Lab are very different companies. Bambu Lab has a more controversial position regarding how they design and build their products, with an emphasis on proprietary hardware and software.&lt;/p&gt;

&lt;p&gt;For example, the differences between Prusa and Bamby Lab can be compared to the differences between macOS and Linux, each offering positives and negatives.&lt;/p&gt;

&lt;p&gt;macOS, like Bambu Lab, is proprietary, built with vertical integration (software and hardware tightly coupled). This results in a highly opinionated product (minimal flexibility), with the benefit of being fast, reliable, as well as easy to configure, maintain and use.&lt;/p&gt;

&lt;p&gt;Linux, like Prusa, is open and therefore highly versatile and flexible. This provides maximum power to the user (right to repair/modify/upgrade), but can be more complex to configure, maintain and use.&lt;/p&gt;

&lt;p&gt;I am not stating one is right or wrong or better or worse. The approaches are simply different. As with macOS and Linux, I use both regularly, as each offers unique benefits depending on the use situation and/or use case.&lt;/p&gt;

&lt;p&gt;Philosophically, I prefer the open nature of Prusa. However, 3D printing is an area where I am less likely to “tinker”, therefore I certainly value the “it just works” benefits that come with vertical integration.&lt;/p&gt;

&lt;p&gt;Therefore, I decided to purchase the Bambu Lab P1S 3D Printer with Automatic Material System (AMS).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/mysetup38.jpg&quot;&gt;&lt;img src=&quot;/images/posts/mysetup38.jpg&quot; alt=&quot;3D Printing Evolved&quot; title=&quot;3D Printing Evolved&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Following a few days of testing, I can confirm the Bambu Lab P1S 3D Printer is excellent. Everything feels incredibly polished and refined, with high-quality hardware and intuitive software.&lt;/p&gt;

&lt;p&gt;The Auto Bed Levelling (ABL), integrated camera and wireless connectivity are everything I had hoped they would be. It makes printing a trivial task; simply select the model from the mobile app and tap print.&lt;/p&gt;

&lt;p&gt;At which point, the Bambu Lab P1S 3D Printer does everything else, without any pre-configuration, etc.&lt;/p&gt;

&lt;p&gt;The inclusion of the Automatic Material System (AMS) is also a great feature, allowing for effortless multicolour printing.&lt;/p&gt;

&lt;p&gt;I still love Prusa and am excited to see how their products evolve. At work, I plan to continue to use Prusa, as the versatility, alongside the ability to easily repair, modify, and upgrade, are valuable features. However, for personal use, I cannot fault the elegance of Bambu Lab.&lt;/p&gt;

&lt;p&gt;Where Prusa has always felt like a product for enthusiasts, Bambu Lab feels like a product for the masses.&lt;/p&gt;
</description>
        <pubDate>Thu, 28 Aug 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/08/28/3D-Printing-Evolved/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/08/28/3D-Printing-Evolved/</guid>
      </item>
    
      <item>
        <title>CD Projekt Red Redemption</title>
        <description>&lt;p&gt;In my article “&lt;a href=&quot;/2020/12/24/cyberpunk-2077/&quot;&gt;Cyberpunk 2077&lt;/a&gt;”, I provided my perspective regarding the controversial and disappointing launch of the highly anticipated game from &lt;a href=&quot;https://en.cdprojektred.com/&quot;&gt;CD Projekt Red&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I concluded with the following:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“I feel the launch of Cyberpunk 2077 must become a case study (and warning) for all future game releases. The key learning would be to ensure the marketing and hype do not get ahead of the product itself, which ultimately forced a release that disrespected the CD Projekt Red team, disappointed customers, and resulted in considerable brand damage that may take years to recover.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As a technologist, this release highlighted a major challenge faced by all software releases, not limited to games.&lt;/p&gt;

&lt;p&gt;Specifically, the difficult balance between meeting a deadline and shipping a quality product.&lt;/p&gt;

&lt;p&gt;This challenge is especially true for premium software, such as “Triple-A” games, as there is almost always corporate pressure to recoup the significant cost of development. This pressure is compounded when other external forces are applied, such as marketing campaigns and co-promotions, which are often time-bound.&lt;/p&gt;

&lt;p&gt;There is also the very real issue of shipping a product to meet the market demand, something that John Carmack has discussed when reflecting on the development of Rage.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/znJPn3FSFmM?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;John highlights that waiting for the product to be “perfect” can also be detrimental, as the world continues to evolve, including changes in user expectations.&lt;/p&gt;

&lt;p&gt;This is where I believe the &lt;a href=&quot;/2024/08/22/product-operating-model-principles/&quot;&gt;product-first principles&lt;/a&gt;, outlined as part of the &lt;a href=&quot;/2024/08/20/product-operating-model/&quot;&gt;Product Operating Model&lt;/a&gt; from the &lt;a href=&quot;https://www.svpg.com/&quot;&gt;Silicon Valley Product Group (SVPG)&lt;/a&gt; are very relevant.&lt;/p&gt;

&lt;p&gt;For example, the Product Team principles, which include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Empowered with Problems to Solve:&lt;/strong&gt; Product teams must be given a problem to solve, rather than solutions to build, and, most importantly, are held accountable for the results. They are empowered to make decisions and are not “order-takers”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Outcomes over Output:&lt;/strong&gt; Establish outcome-based goals, leveraging Objectives and Key Results (OKRs), which create focus on the priority, promote curiosity and provide relevant context. Outcomes are the results of actions, not features.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Sense of Ownership:&lt;/strong&gt; Product teams must have the sponsorship and autonomy to come up with the solutions to the problems (Product Discovery), alongside the responsibility to build them (Product Delivery).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Collaboration:&lt;/strong&gt; Promote respectful discourse, assuming good intentions when challenging ideas or decisions. Encourage a diverse perspective, but when a decision is concluded, ensure total commitment.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Relating this to Cyberpunk 2077, I believe CD Projekt Red lost sight of these core principles, allowing the external pressure and hype to overshadow the product itself.&lt;/p&gt;

&lt;p&gt;Thankfully, over the past five years, CD Projekt Red has been on the road to redemption, with a clear focus on the product itself, demonstrating humility and vulnerability, with clear actions that address previous issues.&lt;/p&gt;

&lt;p&gt;Most notably, “Update v2.0” and the Phantom Liberty expansion, which was released in September 2023.&lt;/p&gt;

&lt;p&gt;The decision to persevere against the odds is admirable, as it would have been very easy to step away from controversy, shifting gears to a new project without the negative “baggage”.&lt;/p&gt;

&lt;p&gt;With the recent release of Cyberpunk 2077 on Nintendo Switch 2 and Apple macOS,  I consider the CD Projekt Red redemption arc complete, with a product that fulfils the original vision, delivered at scale across multiple platforms, targeting a wide/diverse audience.&lt;/p&gt;

&lt;p&gt;Kudos and congratulations to the team. I suspect the journey has been very challenging. However, I hope the learnings will allow them to proceed with a new sense of purpose, with hard learned lessons about the importance of ensuring the customer is at the centre of every product decision.&lt;/p&gt;
</description>
        <pubDate>Fri, 15 Aug 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/08/15/CD-Projekt-Red-Redemption/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/08/15/CD-Projekt-Red-Redemption/</guid>
      </item>
    
      <item>
        <title>Agentic AI - Builder</title>
        <description>&lt;p&gt;Following my previous article “&lt;a href=&quot;/2025/07/12/Agentic-AI-in-Action/&quot;&gt;Agentic AI in Action&lt;/a&gt;”, my team recently released a new feature as part of our multi-model, multi-modal Generative AI framework for business.&lt;/p&gt;

&lt;p&gt;We call this feature “Builder”, which allows for self-contained applications to be generated from a single prompt or as part of an Agentic AI workflow.&lt;/p&gt;

&lt;p&gt;These self-contained applications can leverage previously defined framing or ingested context from structured or unstructured data. They are also built following pre-defined standards, using an approved technology stack, ensuring they are supportable, secure, private, and compliant (avoiding technical debt).&lt;/p&gt;

&lt;p&gt;The power of this feature lies in producing a “rich” user experience, featuring interactive elements that can further enhance how teams automate business processes and interact with data.&lt;/p&gt;

&lt;p&gt;For example, the screenshot below is an interactive dashboard, produced from business financial data. Elements can be selected to unlock further insights, providing different views, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/agenticaibuilder01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/agenticaibuilder01.jpg&quot; alt=&quot;Agentic AI - Builder&quot; title=&quot;Agentic AI - Builder&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Previously, a dashboard of this type would have been created in &lt;a href=&quot;https://www.microsoft.com/en-us/power-platform/products/power-bi&quot;&gt;Power BI&lt;/a&gt; or &lt;a href=&quot;https://www.tableau.com/&quot;&gt;Tableau&lt;/a&gt;, likely requiring an individual (or team) with the relevant skills to identify, integrate, build, test, and verify before being made available to the target stakeholder group.&lt;/p&gt;

&lt;p&gt;By comparison, this dashboard could be generated in real-time, by anyone with the relevant access to the information, requiring no specialist skill set. The prompt can even be iterated upon, rapidly adding or modifying the content, appearance, or features.&lt;/p&gt;

&lt;p&gt;Finally, the self-contained application generated by Builder can be securely and privately shared.&lt;/p&gt;

&lt;p&gt;Dashboards are just one very simple example as to how Builder could be used to create value. In testing, we have generated full stack applications, which could be deployed to support specific business use cases.&lt;/p&gt;

&lt;p&gt;At the time of writing, we are limiting the ability to generate some of these more advanced use cases, providing the required time to establish the appropriate governance (avoiding application sprawl).&lt;/p&gt;

&lt;p&gt;However, the potential is extremely exciting, further enhancing the value proposition of Generative AI and Agentic AI capabilities within a business.&lt;/p&gt;
</description>
        <pubDate>Fri, 01 Aug 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/08/01/Agentic-AI-Builder/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/08/01/Agentic-AI-Builder/</guid>
      </item>
    
      <item>
        <title>My Setup (Q3 2025)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - The Apple MacBook Pro was updated to an M5 Max. The Home Lab was updated to include the &lt;a href=&quot;/2025/10/28/NVIDIA-DGX-Spark/&quot;&gt;NVIDIA DGX Spark&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I switch between three systems (one desktop and two laptops), which are primarily used for productivity, collaboration, software development, photo editing, video editing, virtual labs, gaming, and game development.&lt;/p&gt;

&lt;p&gt;My daily driver (home and travelling) is an Apple MacBook Pro 14-inch (MAR-2026), which delivers an excellent balance of performance, battery life and portability. It is also well-positioned to handle tasks that require significant memory and/or memory bandwidth (e.g., local AI Models), alongside the ability to run software natively designed for the Mac, such as &lt;a href=&quot;https://developer.apple.com/xcode/&quot;&gt;Xcode&lt;/a&gt; and &lt;a href=&quot;https://www.apple.com/final-cut-pro/&quot;&gt;Final Cut Pro&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple MacBook Pro 14-inch (MAR-2026)&lt;/li&gt;
  &lt;li&gt;Apple M5 Max (18-core - 6 Super / 12 Performance)&lt;/li&gt;
  &lt;li&gt;40-core GPU&lt;/li&gt;
  &lt;li&gt;16-core Neural Engine&lt;/li&gt;
  &lt;li&gt;128GB Unified Memory (614GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;2TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;Wi-Fi 7 and Bluetooth 6&lt;/li&gt;
  &lt;li&gt;3x Thunderbolt 5, HDMI 2.1, 3.5mm Headphone, SDXC Card Reader&lt;/li&gt;
  &lt;li&gt;14.2-inch Liquid Retina XDR Nano-texture Display (3024x1964 @ 120Hz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My second system is a custom-built desktop PC, running Linux (&lt;a href=&quot;https://bazzite.gg/&quot;&gt;Bazzite&lt;/a&gt;, based on &lt;a href=&quot;https://fedoraproject.org/atomic-desktops/silverblue/&quot;&gt;Fedora Silverblue&lt;/a&gt;). This system is used to run software optimised for NVIDIA, specifically games and their parallel computing platform and programming model, known as CUDA.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X870 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 9950X 4.3GHz Base / 5.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 G2 LBC CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance EXPO DDR5 PC5-48000C30 6000MHz RAM&lt;/li&gt;
  &lt;li&gt;2TB Crucial T705 M.2 PCI-e Gen5 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;2TB Samsung 990 EVO Plus M.2 PCI-e Gen5 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 5090 Founders Edition 32GB GDDR7&lt;/li&gt;
  &lt;li&gt;Corsair HX1200i 1200W ‘80 Plus Platinum’ ATX PSU&lt;/li&gt;
  &lt;li&gt;Fractal Torrent Compact&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AMD Ryzen 9950X and NVIDIA GeForce RTX 5090 are high-performance components, delivering excellent performance across a range of workloads (e.g., multi-threading, &lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;ray-tracing gaming&lt;/a&gt;, machine learning, video editing, etc.).&lt;/p&gt;

&lt;p&gt;Finally, I use an HP ZBook Ultra G1a running Linux (&lt;a href=&quot;https://fedoraproject.org/&quot;&gt;Fedora Workstation&lt;/a&gt;) for Linux-specific workloads (e.g., Linux Containers, Ethical Hacking, etc.)&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;HP ZBook Ultra G1a&lt;/li&gt;
  &lt;li&gt;AMD Ryzen AI Max+ 395 3GHz Base / 5.1GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;128GB LPDDR5x-8000 Unified Memory&lt;/li&gt;
  &lt;li&gt;AMD Radeon 8060S Graphics (40 Graphics Cores)&lt;/li&gt;
  &lt;li&gt;2TB M.2 2280 TLC NVM-e SSD&lt;/li&gt;
  &lt;li&gt;MediaTek Wi-Fi 7 MT7925 (Wi-Fi 7 and Bluetooth 5.4)&lt;/li&gt;
  &lt;li&gt;2x Thunderbolt 4, 1x USB-C, 1x USB-A, HDMI 2.1, 3.5mm Headphone&lt;/li&gt;
  &lt;li&gt;14-inch OLED Display (2880x1800 @ 120Hz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At home, all systems connect to a 57-inch Super Ultra-Wide monitor, specifically the &lt;a href=&quot;https://www.samsung.com/uk/monitors/gaming/odyssey-neo-g9-g95nc-57-inch-240hz-curved-dual-uhd-ls57cg952nuxxu/&quot;&gt;Samsung G95NC Odyssey Neo G9 240Hz Dual UHD Monitor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The full specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Model:&lt;/strong&gt; Samsung G95NC Odyssey Neo G9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Size:&lt;/strong&gt; 57-inch&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Type:&lt;/strong&gt; VA (Quantum Mini LED - 2,392 Zones)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Curvature:&lt;/strong&gt; 1000R&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aspect Ratio:&lt;/strong&gt; 32:9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 7680x2160&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 240Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Variable Refresh Rate:&lt;/strong&gt; AMD FreeSync Premium Pro&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; 1ms (GTG)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;High Dynamic Range:&lt;/strong&gt; HDR10+ Gaming, VESA DisplayHDR 1000&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 420cd/㎡ (Typical), 1000cd/m2 (Peak)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Interface:&lt;/strong&gt; 3x HDMI 2.1 (HDCP 2.2), 1x DisplayPort 2.1 (HDCP 2.2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is minimal, thanks to the exceptional &lt;a href=&quot;/2022/10/17/New-Home-Office/&quot;&gt;Secret Lab Magnus Pro XL&lt;/a&gt; sit-to-stand desk. The monitor is mounted on a &lt;a href=&quot;https://www.benq.eu/en-uk/desk-tech/monitorarm/bsh01.html&quot;&gt;BenQ Ergo Arm BSH01&lt;/a&gt;, which is a heavy-duty monitor arm that can (just about) support the 15.4 kg weight of the Samsung G95NC Odyssey Neo G9.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/mysetup39.jpg&quot;&gt;&lt;img src=&quot;/images/posts/mysetup39.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Regarding peripherals, I primarily use the &lt;a href=&quot;https://nuphy.com/collections/keyboards/products/air75-v2&quot;&gt;NuPhy Air75 V2 (Wisteria Switches)&lt;/a&gt;, &lt;a href=&quot;https://www.pulsar.gg/products/x2-v3-es-mini-gaming-mouse?variant=45926660309246&quot;&gt;Pulsar X2 v3 eS Mini Gaming Mouse&lt;/a&gt; and &lt;a href=&quot;https://www.insta360.com/product/insta360-link2&quot;&gt;Insta360 Link 2&lt;/a&gt;. The keyboard and mouse were selected as they support multiple Bluetooth profiles, making it simple to switch between devices. The mousepad is a &lt;a href=&quot;https://www.pulsar.gg/collections/mouse-pad/products/superglide-glass-mousepad-v2?variant=45768203960574&quot;&gt;Pulsar Superglide Glass Mousepad v2&lt;/a&gt;, which delivers very low friction and accurate tracking.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/mysetup40.jpg&quot;&gt;&lt;img src=&quot;/images/posts/mysetup40.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The photo also highlights my microphone setup, which is a &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeti/&quot;&gt;Blue Yeti&lt;/a&gt; connected to the &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeticaster/&quot;&gt;Blue Yeticaster&lt;/a&gt; that includes the Compass Boom Arm and Radius III Custom Shockmount. The microphone is primarily used for video conferencing, screencasting, webinars, and podcasts.&lt;/p&gt;

&lt;p&gt;Additional peripherals include the &lt;a href=&quot;https://audioengineeu.com/product/audioengine-a1-home-music-system/&quot;&gt;Audioengine A1 Home Music System w/ Bluetooth aptX&lt;/a&gt;, &lt;a href=&quot;https://www.shure.com/en-GB/products/earphones/aonic5&quot;&gt;Shure AONIC 5 Sound Isolating Earphones&lt;/a&gt;, &lt;a href=&quot;https://www.8bitdo.com/ultimate-2-wireless-controller/&quot;&gt;8BitDo Ultimate 2 Wireless Controller&lt;/a&gt;, and two virtual reality headsets, specifically the &lt;a href=&quot;https://www.meta.com/gb/quest/quest-3/&quot;&gt;Meta Quest 3&lt;/a&gt; and &lt;a href=&quot;https://www.apple.com/apple-vision-pro/&quot;&gt;Apple Vision Pro&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As highlighted in the photo below, the desktop PC is mounted to the desk using the &lt;a href=&quot;https://secretlab.co.uk/products/premium-pc-mount&quot;&gt;Secret Lab Premium PC Mount&lt;/a&gt;, with the PC case door exposed, providing easy access to the components.&lt;/p&gt;

&lt;p&gt;Accompanying the desktop PC and monitor is a &lt;a href=&quot;https://bambulab.com/en-gb/p1&quot;&gt;Bambu Lab P1S 3D printer&lt;/a&gt; with &lt;a href=&quot;https://uk.store.bambulab.com/products/ams-multicolor-printing&quot;&gt;Automatic Material System (AMS)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/mysetup38.jpg&quot;&gt;&lt;img src=&quot;/images/posts/mysetup38.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;https://www.fractal-design.com/products/chairs/refine/&quot;&gt;Fractal Design Refine&lt;/a&gt; chair, which balances comfort and personalised ergonomics.&lt;/p&gt;

&lt;h3 id=&quot;home-lab&quot;&gt;Home Lab&lt;/h3&gt;

&lt;p&gt;Alongside my desktops and laptops, I have a &lt;a href=&quot;https://nas.ugreen.com/products/ugreen-nasync-dxp2800-nas-storage&quot;&gt;UGREEN NAsync DXP2800 Network Attached Storage (NAS)&lt;/a&gt;, which acts as a small home server. The server manages local and cloud backups, server-side workloads (Virtual Machines and Docker), as well as media streaming.&lt;/p&gt;

&lt;p&gt;The full specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;UGREEN NAsync DXP2800&lt;/li&gt;
  &lt;li&gt;Intel N100 3.4GHz (4C/4T)&lt;/li&gt;
  &lt;li&gt;8GB DDR5 4800 MT/s&lt;/li&gt;
  &lt;li&gt;1x eMMC 32GB (OS Installation)&lt;/li&gt;
  &lt;li&gt;2x SATA, 2x M.2 SSD (Maximum 76TB)&lt;/li&gt;
  &lt;li&gt;1x SD Card Reader&lt;/li&gt;
  &lt;li&gt;1x USB-C, 1x USB-A (10Gb/s), 2x USB-A (480Mb/s)&lt;/li&gt;
  &lt;li&gt;1x HDMI&lt;/li&gt;
  &lt;li&gt;1x 2.5Gb/s Ethernet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition to the base specification, I installed two 4TB &lt;a href=&quot;https://www.westerndigital.com/products/internal-drives/wd-red-plus-sata-3-5-hdd?sku=WD40EFPX&quot;&gt;Western Digital Red Plus&lt;/a&gt; Hard Disk Drives (5400RPM), a single internal 1TB Solid State Drive, and a 2TB SanDisk Solid State Drive connected externally via USB-C.&lt;/p&gt;

&lt;p&gt;The Hard Disk Drives are configured in RAID 1 (mirroring), with the internal Solid State Drive reserved for applications (e.g., Virtual Machines, Docker, etc.) The external Solid State Drive provides a third level of removable backup.&lt;/p&gt;

&lt;p&gt;Finally, I have an &lt;a href=&quot;https://www.nvidia.com/en-gb/products/workstations/dgx-spark/&quot;&gt;NVIDIA DGX Spark&lt;/a&gt;, which offers a home-friendly option to prototype, fine-tune, and deploy large AI models, using the proprietary NVIDIA AI platform (e.g., &lt;a href=&quot;https://developer.nvidia.com/cuda/toolkit&quot;&gt;NVIDIA CUDA&lt;/a&gt;) and tools (e.g., &lt;a href=&quot;https://www.nvidia.com/en-gb/deep-learning-ai/solutions/data-science/workbench/&quot;&gt;NVIDIA AI Workbench&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 31 Jul 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/07/31/My-Setup-Q3-2025/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/07/31/My-Setup-Q3-2025/</guid>
      </item>
    
      <item>
        <title>Minecraft UGREEN NAS</title>
        <description>&lt;p&gt;I recently upgraded my home storage to a &lt;a href=&quot;/2025/07/15/UGREEN-NAS/&quot;&gt;UGREEN NAsync DXP2800 Network Attached Storage (NAS)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Although not high-performance, the hardware is competent, with an Intel N100 3.4GHz (4C/4T) processor, 8GB DDR5 memory (expandable to 16GB), an SSD for high-throughput I/O and 2.5Gb/s networking.&lt;/p&gt;

&lt;p&gt;One of the benefits of a modern NAS is the ability to run Docker, providing access to a wide variety of software.&lt;/p&gt;

&lt;p&gt;A great example, my son and daughter enjoy the game &lt;a href=&quot;https://www.minecraft.net/&quot;&gt;Minecraft&lt;/a&gt;, which has the option for network play. However, you need access to a Minecraft server to host a game.&lt;/p&gt;

&lt;p&gt;There are plenty of online options for hosting Minecraft servers. However, they commonly require account creation and/or a monthly subscription. Therefore, the ability to create a local server is compelling.&lt;/p&gt;

&lt;p&gt;I use the &lt;a href=&quot;https://github.com/itzg/docker-minecraft-bedrock-server&quot;&gt;itzg dedicated server&lt;/a&gt;, which is available for the Bedrock and Java editions of Minecraft. The links below are for the Bedrock version.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/itzg/docker-minecraft-bedrock-server&quot;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hub.docker.com/r/itzg/minecraft-bedrock-server&quot;&gt;Docker Hub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This dedicated server is made available as a Docker image, which, conveniently, can be deployed to my UGREEN NAS using the following Docker Compose configuration.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;version: &quot;latest&quot;
services:
  Minecraft:
    image: itzg/minecraft-bedrock-server
    environment:
      EULA: &quot;TRUE&quot;
      GAMEMODE: survival
      DIFFICULTY: normal
      VERSION: &quot;latest&quot;
    volumes:
      - ./data:/data
    network_mode: host
    restart: unless-stopped
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
To deploy, simply connect to the NAS via UGOS PRO (online console) and select the “Docker” application. Click “Project &amp;gt; Create”, provide a “Name”, “Storage Path” and copy/paste the Docker Compose configuration.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/minecraftugreennas01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/minecraftugreennas01.jpg&quot; alt=&quot;Minecraft UGREEN NAS&quot; title=&quot;Minecraft UGREEN NAS&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will download, deploy, and run the Docker container. You can then connect to the server from Minecraft (PC Edition) by selecting “Servers” and entering the IP Address of your UGREEN NAS. Although not required, the default ports from Minecraft are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Minecraft Bedrock Edition:&lt;/strong&gt; 19132&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Minecraft Java Edition:&lt;/strong&gt; 25565&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As per the Docker Compose configuration, this will launch a “Survival” game with the difficulty set to “Normal”. Game settings can be pre-configured by adding specific options, using server properties. The full list of options can be found on the &lt;a href=&quot;https://minecraft.wiki/w/Server.properties#Option_keys&quot;&gt;Minecraft Wiki&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;By default, these Minecraft servers will only be available on the Local Area Network (LAN). However, with &lt;a href=&quot;https://www.cloudflare.com/en-gb/learning/dns/glossary/dynamic-dns/&quot;&gt;Dynamic DNS (DDNS)&lt;/a&gt; and port-forwarding, the server can be exposed to the Internet for remote (online) play.&lt;/p&gt;

&lt;p&gt;As stated at the start of the article, the UGREEN NAsync DXP2800 NAS is not the highest-performing. Therefore, do not expect to run large/complex Minecraft servers, target approximately 10 users, with moderate view and simulation distances.&lt;/p&gt;

&lt;p&gt;Finally, you can enable or disable Docker Containers from UGOS PRO without losing game status or configuration. Therefore, I tend to keep them disabled unless required.&lt;/p&gt;
</description>
        <pubDate>Wed, 16 Jul 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/07/16/Minecraft-UGREEN-NAS/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/07/16/Minecraft-UGREEN-NAS/</guid>
      </item>
    
      <item>
        <title>UGREEN NAS</title>
        <description>&lt;p&gt;I recently upgraded my home storage to a &lt;a href=&quot;https://nas.ugreen.com/products/ugreen-nasync-dxp2800-nas-storage&quot;&gt;UGREEN NAsync DXP2800 Network Attached Storage (NAS)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I had previously used a 4-bay &lt;a href=&quot;https://www.synology.com/&quot;&gt;Synology&lt;/a&gt; NAS, but more recently, maintained carbon copies of my data on a &lt;a href=&quot;/2024/11/12/my-setup-q4-2024/&quot;&gt;local Apple Mac Studio with external storage attached&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Although the Mac Studio had served me well, it was overkill for my requirements and lacked the inherent benefits offered by Redundant Array of Independent Disks (RAID). I had also been intrigued by UGREEN, as they had recently entered the NAS market in Europe and the US, with some compelling products.&lt;/p&gt;

&lt;p&gt;The specification of the UGREEN NAsync DXP2800 NAS can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;UGREEN NAsync DXP2800&lt;/li&gt;
  &lt;li&gt;Intel N100 3.4GHz (4C/4T)&lt;/li&gt;
  &lt;li&gt;8GB DDR5 4800 MT/s&lt;/li&gt;
  &lt;li&gt;1x eMMC 32GB (OS Installation)&lt;/li&gt;
  &lt;li&gt;2x SATA, 2x M.2 SSD (Maximum 76TB)&lt;/li&gt;
  &lt;li&gt;1x SD Card Reader&lt;/li&gt;
  &lt;li&gt;1x USB-C, 1x USB-A (10Gb/s), 2x USB-A (480Mb/s)&lt;/li&gt;
  &lt;li&gt;1x HDMI&lt;/li&gt;
  &lt;li&gt;1x 2.5Gb/s Ethernet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition to the base specification, I installed two 4TB &lt;a href=&quot;https://www.westerndigital.com/products/internal-drives/wd-red-plus-sata-3-5-hdd?sku=WD40EFPX&quot;&gt;Western Digital Red Plus&lt;/a&gt; Hard Disk Drives (5400RPM), a single internal 1TB Solid State Drive, and a 2TB SanDisk Solid State Drive connected externally via USB-C.&lt;/p&gt;

&lt;p&gt;The NAS supports JBOD, Basic, RAID 0, and RAID 1 configurations. I selected RAID 1 (mirroring) for my two Hard Disk Drives and configured the internal Solid State Drive for applications (e.g., Virtual Machines, Docker, etc.) It is possible to use the internal Solid State Drive as a cache to speed up read/write performance. However, none of my use cases require this feature. The external Solid State Drive provides a third level of removable backup.&lt;/p&gt;

&lt;p&gt;The hardware specification delivers excellent performance for the price, especially when compared against popular alternatives such as Synology and &lt;a href=&quot;https://www.qnap.com/&quot;&gt;QNAP&lt;/a&gt;. UGREEN are also very consumer-friendly, allowing third-party operating systems to be installed, such as &lt;a href=&quot;https://www.truenas.com/&quot;&gt;TrueNas&lt;/a&gt; and &lt;a href=&quot;https://unraid.net/&quot;&gt;Unraid&lt;/a&gt;, as well as no hardware storage restrictions (e.g., any Hard Disk Drive manufacturer can be used).&lt;/p&gt;

&lt;p&gt;My requirements include local storage redundancy (mirroring), versatile network accessibility, and cloud synchronisation. I also desire the ability to run local virtual machines and &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt; containers. Thankfully, the UGOS Pro operating system provided by UGREEN delivers all of these features; therefore, I have no requirement (at this time) to switch to an alternative.&lt;/p&gt;

&lt;p&gt;The hardware itself is very well built, with a compact, sturdy metal chassis, offering simple (tool-less) access to the drives (HDD and SSD), alongside a convenient hatch on the bottom for memory upgrades (expandable up to 16GB).&lt;/p&gt;

&lt;p&gt;The software is also excellent! It was instantly discovered on my network and (so far), very fast and reliable when accessing via the web admin console or file sharing protocols. The initial setup process was painless, with a wizard that ensures the basic controls are applied, including user management (alongside multi-factor authentication support) and storage configuration.&lt;/p&gt;

&lt;p&gt;The initial RAID 0 setup for my two 4TB Hard Disk Drives took approximately six hours to complete (automated process), at which point the storage volume was available for use.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/ugreennas01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/ugreennas01.jpg&quot; alt=&quot;UGREEN NAS&quot; title=&quot;UGREEN NAS&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The majority of the settings are pre-configured. However, I made some minor tweaks to the security controls (restricting access based on my desired network configuration). The included “App Center” provides direct access to a host of native utilities. I installed Cloud Drives (for OneDrive synchronisation), Docker, Virtual Machine, Downloads, Security (Anti-Virus) and Sync &amp;amp; Backup.&lt;/p&gt;

&lt;p&gt;The Cloud Drives utility was the most important, allowing me to synchronise (real-time) my data with cloud services, such as &lt;a href=&quot;https://www.microsoft.com/microsoft-365/onedrive/&quot;&gt;Microsoft OneDrive&lt;/a&gt; and &lt;a href=&quot;https://drive.google.com/&quot;&gt;Google Drive&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Although UGREEN offer native remote access via UGREENlink, I chose to configure my own option using &lt;a href=&quot;https://tailscale.com/&quot;&gt;Tailscale&lt;/a&gt;. There is no native utility for Tailscale. However, thankfully, it can be installed and configured using Docker.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/ugreennas02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/ugreennas02.jpg&quot; alt=&quot;UGREEN NAS&quot; title=&quot;UGREEN NAS&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An example of my Docker Compose configuration can be found below.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;services:
  tailscale:
    container_name: tailscale
    image: tailscale/tailscale:latest
    restart: unless-stopped
    volumes:
      - ./tun:/dev/net/tun
      - ./lib:/var/lib
    environment:
      - TS_AUTH_KEY=tskey-auth-&amp;lt;KEY&amp;gt;
      - TS_STATE_DIR=/var/lib/tailscale
      - TS_ROUTES=192.168.0.0/24
    network_mode: host
    privileged: true
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The “TS_AUTH_KEY” can be created from the Tailscale web admin console, under “Settings &amp;gt; Keys &amp;gt; Auth keys”.&lt;/p&gt;

&lt;p&gt;Once deployed and enabled, the UGREEN NAS should automatically connect and appear in the Tailscale web admin console. At which point, I would recommend configuring “Disable key expiry” and ensuring your subnet routes are configured as desired, under the “Edit route settings”.&lt;/p&gt;

&lt;p&gt;You can now connect to your UGREEN NAS over Tailscale using the Tailscale IP address.&lt;/p&gt;

&lt;p&gt;Overall, I have been extremely impressed with the UGREEN NAsync DXP2800 NAS. It is cost competitive, well built, performant and reliable, which considering its relative immaturity within the NAS market, is an impressive outcome.&lt;/p&gt;
</description>
        <pubDate>Tue, 15 Jul 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/07/15/UGREEN-NAS/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/07/15/UGREEN-NAS/</guid>
      </item>
    
      <item>
        <title>Agentic AI in Action</title>
        <description>&lt;p&gt;With the launch of ChatGPT, my team began work on a multi-model, multi-modal Generative AI framework for business.&lt;/p&gt;

&lt;p&gt;Over the years, this framework has evolved to include Agentic AI capabilities, enabling AI to take action, supporting a wide variety of business use cases.&lt;/p&gt;

&lt;p&gt;We are very proud of our work, which has been publicly recognised, including endorsements from &lt;a href=&quot;/2025/04/01/google-gemini-case-study/&quot;&gt;Google&lt;/a&gt; and &lt;a href=&quot;/2025/06/06/Microsoft-Security-Case-Study/&quot;&gt;Microsoft&lt;/a&gt;, alongside the &lt;a href=&quot;/2024/05/10/BTOES-Awards/&quot;&gt;Business Transformation &amp;amp; Operational Excellence Summit (BTOES) industry award for enterprise AI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have documented this journey over a series of blog posts.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;Integrated Generative AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/02/Generative-AI-Enhancements/&quot;&gt;Generative AI - Enhancements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/12/15/generative-ai-eoy/&quot;&gt;Generative AI - EoY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/05/10/BTOES-Awards/&quot;&gt;BTOES Awards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/06/15/generative-ai-value/&quot;&gt;Generative AI - Value&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/13/generative-ai-update/&quot;&gt;Generative AI - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/09/24/Google-Gemini-at-Work/&quot;&gt;Google Gemini at Work&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/10/11/Google-Elevate-Every-Experience/&quot;&gt;Google Elevate Every Experience&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/12/16/agentic-ai/&quot;&gt;Agentic AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/01/17/google-ai-business-trends/&quot;&gt;Google AI Business Trends&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/04/01/google-gemini-case-study/&quot;&gt;Google Gemini Case Study&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/06/06/Microsoft-Security-Case-Study/&quot;&gt;Microsoft Security Case Study&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As we close the year, our Generative AI framework has reached another significant milestone (see the dashboard screenshot below).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/agenticaiinaction01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/agenticaiinaction01.jpg&quot; alt=&quot;Agentic AI in Action&quot; title=&quot;Agentic AI in Action&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With over 9,695 unique users and approximately 3,000 daily interactions, the organic adoption continues to grow at an impressive rate. Since launch, we have seen over 86,000 hours (3,584 days) saved, resulting in an estimated ROI of $4.1M.&lt;/p&gt;

&lt;p&gt;Alongside the business numbers, we transact approximately 3 billion tokens per month across ten primary AI models (Google and OpenAI).&lt;/p&gt;

&lt;p&gt;Additional statistics include.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;~1,500 Custom Personas Created&lt;/li&gt;
  &lt;li&gt;~44,000 Documents Translated&lt;/li&gt;
  &lt;li&gt;~250,000 Lines of Code Accepted&lt;/li&gt;
  &lt;li&gt;~5,000 External Research Projects Completed&lt;/li&gt;
  &lt;li&gt;~75,000 Images Created&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to our ephemeral cloud-native architecture, this scale is achieved at a cost of approximately $6,000 per month ($72,000 per year), which includes all users, AI models, integrations and data. By comparison, if we were to use Microsoft 365  Copilot for the same number of users, which has specific restrictions regarding AI models, integrations and data, the cost would be approximately $3.5M per year.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2024/12/16/agentic-ai/&quot;&gt;Since my last article on this topic&lt;/a&gt;, we have introduced a range of new capabilities.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Deep Research&lt;/strong&gt; - An agentic AI feature that can automatically browse websites, think through its findings, and create insightful multi-page reports. The process covers planning, searching, reasoning, and reporting, making it useful for competitive analysis, due diligence, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Specialist AI Agents&lt;/strong&gt; - Dedicated AI agents with the required grounding, context and access to execute specific tasks. The AI agents can be engaged individually or as part of a group, configured within a workflow, allowing for more complex outcomes.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Voice Assistant&lt;/strong&gt; - A real-time voice assistant, enabling conversational AI. Useful for employees without easy access to a laptop, such as road warriors like sales representatives.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Screen Sharing&lt;/strong&gt; - The ability to screen share, allowing the screen and all open software/data to be referenced as context. Useful for IT support, when troubleshooting an issue or when looking to produce specific steps personalised to the individual’s configuration.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Interoperability&lt;/strong&gt; - Model Context Protocol (MCP) support, enabling generative AI models to access and utilise external tools, data, and services in a consistent and reusable way. New integrations include core systems of record, such as ServiceNow, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;User Experience&lt;/strong&gt; - Refined user interface that is optimised for a wide variety of devices, specifically smartphones, installed as a Progressive Web App (PWA) for Apple iOS and Google Android.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my opinion, the most exciting new capability is the release of specialist AI agents, which can execute specific tasks on behalf of a user, including complex outcomes.&lt;/p&gt;

&lt;p&gt;For example, we are working on the following Agentic AI workflow for our sales representatives. The image below outlines the concept.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/agenticaiinaction02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/agenticaiinaction02.jpg&quot; alt=&quot;Agentic AI in Action&quot; title=&quot;Agentic AI in Action&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Outlined below is the workflow that triggers AI agents, specifically the “Web Searcher”, “Web Researcher”, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/agenticaiinaction03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/agenticaiinaction03.jpg&quot; alt=&quot;Agentic AI in Action&quot; title=&quot;Agentic AI in Action&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We believe this AI assistant will support five key aspects of the sales process, solving specific problems.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Unification of customer insights, automatically connecting multiple disparate systems and data sources.&lt;/li&gt;
  &lt;li&gt;Identifying relevant customer insights, covering internal and external references.&lt;/li&gt;
  &lt;li&gt;Creation of customer-specific tactics, based on relevant sales playbooks.&lt;/li&gt;
  &lt;li&gt;Output available via multiple channels, including an audio podcast for consumption on the road.&lt;/li&gt;
  &lt;li&gt;A personal assistant, pre-grounded with customer context, available for real-time data analysis and support.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The outcome should deliver speed, cost reduction and precision, allowing our sales teams to be more effective within the field, whilst also ensuring our customers receive a personalised engagement.&lt;/p&gt;

&lt;p&gt;Similar to this example, we are confident that Agentic AI can be applied across the value chain, supporting a wide variety of use cases. If true, these AI agents will augment the human workforce, positively impact efficiency and effectiveness, whilst directly contributing to margin expansion, specifically profitability.&lt;/p&gt;

&lt;p&gt;Exciting times ahead! I’ll be sure to share more information as we progress our story.&lt;/p&gt;
</description>
        <pubDate>Sat, 12 Jul 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/07/12/Agentic-AI-in-Action/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/07/12/Agentic-AI-in-Action/</guid>
      </item>
    
      <item>
        <title>Fedora 42 Configuration</title>
        <description>&lt;p&gt;With the release of &lt;a href=&quot;https://fedoraproject.org/workstation/download&quot;&gt;Fedora 42&lt;/a&gt; earlier this year, I thought it was time to update my Fedora configuration article.&lt;/p&gt;

&lt;p&gt;The purpose of this article is to outline the steps I take to install and configure Fedora, including third-party software and dependencies.&lt;/p&gt;

&lt;p&gt;A full list of the software I use can be found in the article “&lt;a href=&quot;/2024/01/20/software-list-2024/&quot;&gt;Software List 2024&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;This article was tested on a &lt;a href=&quot;https://frame.work/&quot;&gt;Framework Laptop 13&lt;/a&gt;, which delivers excellent compatibility, performance, and reliability. However, it should work with any x86-64 desktop/laptop that is capable of running Fedora.&lt;/p&gt;

&lt;p&gt;I outlined my experience with the latest Framework Laptop 13 in the article “&lt;a href=&quot;/2025/05/02/Framework-Laptop-Ryzen-AI/&quot;&gt;Framework Laptop Ryzen AI&lt;/a&gt;”. As a reference, a summary of the specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop 13 DIY Edition&lt;/li&gt;
  &lt;li&gt;AMD Ryzen AI 9 HX 370 (12C/24T)&lt;/li&gt;
  &lt;li&gt;128GB Crucial DDR5-5600 RAM&lt;/li&gt;
  &lt;li&gt;4TB Western Digital Black SN850X NVMe (7.3GB/s Read)&lt;/li&gt;
  &lt;li&gt;13.5-inch LCD Display (2880x1920 @ 120Hz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As previously stated, Fedora works great with the Framework Laptop 13. The installation is fast and painless, with all native hardware being detected and operational without any special configuration.&lt;/p&gt;

&lt;h3 id=&quot;fedora-configuration&quot;&gt;Fedora Configuration&lt;/h3&gt;

&lt;p&gt;With Fedora installed and running, I start installing my common applications, leveraging &lt;a href=&quot;https://flathub.org/&quot;&gt;Flathub&lt;/a&gt;. Flathub is a repository for &lt;a href=&quot;/2024/01/31/flatpak-availability/&quot;&gt;Flatpak&lt;/a&gt; applications, which are containerised to simplify installation, management and compatibility.&lt;/p&gt;

&lt;p&gt;The following commands ensure Flatpak is installed and enabled, alongside the individual installation commands for my common software.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

flatpak install flathub com.bitwarden.desktop -y
flatpak install flathub org.onlyoffice.desktopeditors -y
flatpak install flathub md.obsidian.Obsidian -y
flatpak install flathub org.standardnotes.standardnotes -y
flatpak install flathub com.visualstudio.code -y
flatpak install flathub org.gimp.GIMP -y
flatpak install flathub org.kde.krita -y
flatpak install flathub com.github.PintaProject.Pinta -y
flatpak install flathub be.alexandervanhee.gradia -y
flatpak install flathub org.flozz.yoga-image-optimizer -y
flatpak install flathub com.obsproject.Studio -y
flatpak install flathub com.getpostman.Postman -y
flatpak install flathub org.audacityteam.Audacity -y
flatpak install flathub org.videolan.VLC -y
flatpak install flathub fr.handbrake.ghb -y
flatpak install flathub org.openshot.OpenShot -y
flatpak install flathub fr.natron.Natron -y
flatpak install flathub org.cryptomator.Cryptomator -y
flatpak install flathub org.gnome.Boxes -y
flatpak install flathub org.godotengine.Godot -y
flatpak install flathub com.heroicgameslauncher.hgl -y
flatpak install flathub com.discordapp.Discord -y
flatpak install flathub com.bambulab.BambuStudio -y
flatpak install flathub io.missioncenter.MissionCenter -y
flatpak install flathub io.github.ilya_zlobintsev.LACT -y
flatpak install flathub org.gnome.Extensions -y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Unfortunately, not every application is available as a Flatpak. Therefore, traditional installation methods are required.&lt;/p&gt;

&lt;p&gt;Although Firefox is a great web browser, there are times when Google Chrome is required. Thankfully, the official version of Google Chrome can be installed using the commands below.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf config-manager --enable google-chrome

sudo dnf install google-chrome-stable
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;https://zed.dev/&quot;&gt;Zed&lt;/a&gt; is a popular code editor with a focus on high-performance and collaboration with humans and Artificial Intelligence. It can be installed using the command below.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl -f https://zed.dev/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;https://docker.com/&quot;&gt;Docker&lt;/a&gt; is a popular platform used to containerise and run applications, commonly used for software development. Fedora natively includes &lt;a href=&quot;https://podman.io/&quot;&gt;Podman&lt;/a&gt;, which is also an excellent container engine, compatible with Docker images.&lt;/p&gt;

&lt;p&gt;Docker can be installed using the following commands.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf -y install dnf-plugins-core
sudo dnf-3 config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo systemctl enable --now docker
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Ollama is a tool that enables you to run and manage large language models locally. It can be installed using the command below.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl -fsSL https://ollama.com/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;/2022/07/27/kvm-on-fedora/&quot;&gt;QEMU, Libvirt and Virt Manager&lt;/a&gt; are tools that facilitate virtual machine management.&lt;/p&gt;

&lt;p&gt;The tools can be installed using the following commands.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install -y qemu-kvm libvirt virt-install bridge-utils virt-manager

sudo dnf install -y libvirt-devel virt-top libguestfs-tools guestfs-tools

sudo systemctl start libvirtd
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;https://tailscale.com/&quot;&gt;Tailscale&lt;/a&gt; is a zero-config, mesh VPN service that simplifies connecting devices and services securely across different networks.&lt;/p&gt;

&lt;p&gt;Tailscale can be installed using the following commands. Once complete, I also install the “&lt;a href=&quot;https://extensions.gnome.org/extension/6139/tailscale-qs/&quot;&gt;Tailscale QS&lt;/a&gt;” GNOME extension for easy access.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf config-manager addrepo --from-repofile=https://pkgs.tailscale.com/stable/fedora/tailscale.repo
sudo dnf install tailscale

sudo systemctl enable --now tailscaled

sudo tailscale up
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;https://ghostty.org/&quot;&gt;Ghostty&lt;/a&gt; is a fast, feature-rich terminal emulator that uses platform-native UI and GPU acceleration. It can be installed using the commands below.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;dnf copr enable scottames/ghostty
dnf install ghostty
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.insynchq.com/&quot;&gt;InSync&lt;/a&gt; is a cross-platform file synchronisation application, covering &lt;a href=&quot;https://drive.google.com/&quot;&gt;Google Drive&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/microsoft-365/onedrive/online-cloud-storage&quot;&gt;Microsoft OneDrive&lt;/a&gt; and &lt;a href=&quot;https://www.dropbox.com/&quot;&gt;Dropbox&lt;/a&gt;. Download the installer for Fedora from “https://www.insynchq.com/downloads/linux” and install using the commands below (replace the “x” with the specific version downloaded).&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install ./insync-x.x.x.xxxxx-fc42.x86_64.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
To ensure reliable media playback and font compatibility, I installed the following dependencies. These require &lt;a href=&quot;https://rpmfusion.org/&quot;&gt;RPM Fusion&lt;/a&gt;, which is a repository of add-on packages for Fedora that are not bundled as part of the core distribution.&lt;/p&gt;

&lt;p&gt;The following command enables the “free” and “non-free” repositories.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install \   https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install \   https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
With RPM Fusion enabled, the command below installs common multimedia libraries.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install libavcodec-freeworld

sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Microsoft fonts, which improve Microsoft Office compatibility, can be installed using the following commands.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install mscore-fonts-all -y

sudo dnf install curl cabextract xorg-x11-font-utils fontconfig

sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;https://store.steampowered.com/&quot;&gt;Steam&lt;/a&gt;, the popular digital distribution platform, is available as a Flatpak. However, in my experience, it is better to install it via the DNF package manager using the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install steam -y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Although &lt;a href=&quot;https://www.libreoffice.org/&quot;&gt;LibreOffice&lt;/a&gt; comes pre-installed with Fedora, the Flatpak version includes more timely updates (commonly improving performance and compatibility). The following commands replace the pre-installed (DNF) version of LibreOffice with the Flatpak version.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf group remove libreoffice
sudo dnf remove libreoffice*

flatpak install flathub org.libreoffice.LibreOffice -y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Finally, I only use two GNOME extensions, the previously mentioned “Tailscale QS” and “&lt;a href=&quot;https://extensions.gnome.org/extension/7065/tiling-shell/&quot;&gt;Tiling Shell&lt;/a&gt;”, which is a simple tiling manager for GNOME, similar to what is found on Pop_OS!&lt;/p&gt;

&lt;p&gt;That’s it! Fedora is now up and running, with the required software and dependencies installed.&lt;/p&gt;
</description>
        <pubDate>Wed, 09 Jul 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/07/09/Fedora-42-Configuration/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/07/09/Fedora-42-Configuration/</guid>
      </item>
    
      <item>
        <title>Product Operating Model Masterclass</title>
        <description>&lt;p&gt;In previous articles, I have shared my team’s journey towards the Product Operating Model, as defined by the &lt;a href=&quot;https://www.svpg.com/&quot;&gt;Silicon Valley Product Group (SVPG)&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/20/Product-Operating-Model/&quot;&gt;Product Operating Model&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/22/Product-Operating-Model-Principles/&quot;&gt;Product Operating Model Principles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/24/product-operating-model-roles/&quot;&gt;Product Operating Model Roles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/02/10/product-operating-model-transition/&quot;&gt;Product Operating Model Transiiton&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/03/26/practical-product-operating-model/&quot;&gt;Practical Product Operating Model&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a reminder, the Product Operating Model is a conceptual model, not a methodology, process or framework. It is about moving from output to achieving outcomes, following a set of &lt;a href=&quot;/2024/08/22/Product-Operating-Model-Principles/&quot;&gt;product-first principles&lt;/a&gt;. These principles focus on ensuring any product is valuable, viable, usable, and feasible.&lt;/p&gt;

&lt;p&gt;The Silicon Valley Product Group (SVPG) has published three books on the Product Operating Model, which act as a great reference. Specifically, &lt;a href=&quot;https://www.svpg.com/books/inspired-how-to-create-tech-products-customers-love-2nd-edition/&quot;&gt;INSPIRED&lt;/a&gt;, &lt;a href=&quot;https://www.svpg.com/books/empowered-ordinary-people-extraordinary-products/&quot;&gt;EMPOWERED&lt;/a&gt;, and &lt;a href=&quot;https://www.svpg.com/books/transformed-moving-to-the-product-operating-model/&quot;&gt;TRANSFORMED&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Over the past couple of weeks, &lt;a href=&quot;https://www.svpg.com/team/christian-idiodi/&quot;&gt;Christian Idiodi&lt;/a&gt; has been running a masterclass with my team across the US, UK and India. This includes an intense three-day workshop (UK photo below) where every member of the team was immersed in the product-first principles.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/productoperatingmodelmasterclass01.jpg&quot; alt=&quot;Product Operating Model Masterclass&quot; title=&quot;Product Operating Model Masterclass&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Christian hosts an excellent podcast called “&lt;a href=&quot;https://podcasts.apple.com/gb/podcast/product-therapy/id1738373011&quot;&gt;Product Therapy&lt;/a&gt;”, which I highly recommend.&lt;/p&gt;

&lt;p&gt;Outlined below are a few of my favourite statements that highlight key aspects of the product operating model.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The Product Operating Model is a conceptual model, not a methodology, process or framework. Therefore, it must be adapted to suit the specific business context.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The product-first principles are highly applicable to a wide range of businesses, teams and circumstances. They provide a consistent foundation to establish trust through common beliefs and behaviours.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;At its core, the Product Operating Model helps businesses identify and solve their biggest problems through discovery and delivery.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Discovery and delivery are team activities that require input from cross-functional experts, including Product Management, Product Design, and Technologists (Engineers).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Focus is critical, it is not about what you choose to do. It is about what you choose &lt;strong&gt;not&lt;/strong&gt; to do. Product Leaders must be willing to say “no” frequently, even if the ideas are compelling. To avoid demotivation, ideas should not be forgotten and can be reassessed at the appropriate time.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Teams must learn to love the problem. They must become experts in the problem, with deep research to ensure context and credibility.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Teams must be empowered and provided the environment to operate with autonomy. Empowerment is about providing a team with the opportunity to discover “how” a problem should be solved. Autonomy aims to minimise the constraints/dependencies that incur friction.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Teams must own the problem through discovery, delivery and operations, avoiding handoffs.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Product Leaders must provide a product vision (a compelling narrative for the future), alongside the strategic priorities that support a common outcome. They must ensure appropriate context is shared and understood by all teams.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Product Managers must prioritise discovery over delivery. If they are overly involved in delivery, it is a signal that the right team members were not proactively engaged as part of discovery.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Engineers prioritise delivery over discovery but need to be proactively engaged in the discovery process to support ideation and rapid experimentation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Discovery must include rapid iteration, exploring the problem from multiple perspectives. It should include low-cost, low-tech experimentation, delivered with the least amount of effort to help confirm assumptions and verify hypotheses.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Fail fast, fail frequently and always learn. True failure only occurs when you stop trying to solve the problem.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Teams must gain insights from multiple data sources. Accepting just one data source opens the risk of unconscious bias.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Businesses can be opportunity-led or crisis-led, the goal is to become opportunity-led. Always be willing to reinvent to remain relevant.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As Chief Technology Officer (CTO) and Chief Information Security Officer (CISO), I have a bias towards engineering. When I think about engineers who embody the product-first principles, I think of John Carmack.&lt;/p&gt;

&lt;p&gt;John Carmack is a legendary engineer, with a resume that rivals the very best. He is also curious, humble, and relentlessly passionate about solving big problems. He also perfectly demonstrates principles of product discovery, demonstrating mastery of the topic and working through rapid, low-tech prototypes.&lt;/p&gt;

&lt;p&gt;These behaviours are evident throughout his career, most notably his time at Oculus, where he would frequently run experiments using any available parts (low-tech, low-effort).&lt;/p&gt;

&lt;p&gt;I look to these examples for inspiration, hopefully helping me to become a more effective leader.&lt;/p&gt;
</description>
        <pubDate>Fri, 27 Jun 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/06/27/Product-Operating-Model-Masterclass/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/06/27/Product-Operating-Model-Masterclass/</guid>
      </item>
    
      <item>
        <title>Microsoft Security Case Study</title>
        <description>&lt;p&gt;As Chief Information Security Officer (CISO), I was recently interviewed by Microsoft regarding our use of Microsoft Defender, Defender Experts for XDR and Security Copilot.&lt;/p&gt;

&lt;p&gt;Yesterday, a summary of this interview was &lt;a href=&quot;https://www.microsoft.com/en/customers/story/24354-elanco-azure&quot;&gt;published on the Microsoft website as a case study&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.microsoft.com/en/customers/story/24354-elanco-azure&quot;&gt;&lt;img src=&quot;/images/posts/microsoftsecuritycasestudy01.jpg&quot; alt=&quot;Microsoft Security Case Study&quot; title=&quot;Microsoft Security Case Study&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The case study highlights how my team use Microsoft solutions and expertise to enhance our security posture.&lt;/p&gt;

&lt;p&gt;Specifically, how this strategy simplifies our architecture, offering improved reliability and efficiency, that results in optimised detection and response, whilst also reducing costs.&lt;/p&gt;

&lt;p&gt;The case study also references our use of Azure OpenAI, supporting our Generative AI and Agentic AI ambitions, with the potential to further enhance our security posture through advanced correlation and triage.&lt;/p&gt;

&lt;p&gt;Thanks to the Microsoft team for their continued partnership and for taking the time to recognise my team and our work.&lt;/p&gt;
</description>
        <pubDate>Fri, 06 Jun 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/06/06/Microsoft-Security-Case-Study/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/06/06/Microsoft-Security-Case-Study/</guid>
      </item>
    
      <item>
        <title>BenQ Ergo Arm BSH01</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2024/11/12/my-setup-q4-2024/&quot;&gt;As part of my home setup&lt;/a&gt;, I use the incrediable &lt;a href=&quot;https://www.samsung.com/uk/monitors/gaming/odyssey-neo-g9-g95nc-57-inch-240hz-curved-dual-uhd-ls57cg952nuxxu/&quot;&gt;Samsung G95NC Odyssey Neo G9 240Hz Dual UHD Monitor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With a panel size of 57 inches, combined with a resolution of 7680x2160 at 240Hz, this monitor delivers the ultimate experience for productivity and gaming (assuming you have a graphics card powerful enough to drive it).&lt;/p&gt;

&lt;p&gt;Unfortunately, a monitor of this size is also heavy, weighing 15.4 kg. This weight, combined with the 1000R curvature makes the monitor very front-heavy, placing a lot of stress on any monitor arm.&lt;/p&gt;

&lt;p&gt;Historically, I have used the &lt;a href=&quot;https://www.ergotron.com/en-gb/products/product-details/45-647&quot;&gt;Ergotron HX with HD Pivot&lt;/a&gt;. This heavy-duty monitor arm has incredible build quality but was released before the Samsung G95NC. Therefore, even with the HD Pivot installed with maximum tension, the monitor would droop forward.&lt;/p&gt;

&lt;p&gt;As a result, I recently switched to the &lt;a href=&quot;https://www.benq.eu/en-uk/desk-tech/monitorarm/bsh01.html&quot;&gt;BenQ Ergo Arm BSH01&lt;/a&gt;. BenQ states on its website, “It Handles Any Monitor, Any Weight”, up to 20kg.&lt;/p&gt;

&lt;p&gt;I was a little sceptical, as the BenQ Ergo Arm BSH01 does not look or feel as robust as the Ergotron HX.&lt;/p&gt;

&lt;p&gt;Installation was very easy, using the C Clamp on my &lt;a href=&quot;/2022/10/17/New-Home-Office/&quot;&gt;Secret Lab Magnus Pro XL&lt;/a&gt; sit-to-stand desk. I did not use the included reinforcement plate (as my desk is metal), however, it is nice to see this option in the box.&lt;/p&gt;

&lt;p&gt;Once installed, I attached the monitor using the included quick-release VESA mount. This was a two-person job, as it was difficult to lift and align the monitor simultaneously.&lt;/p&gt;

&lt;p&gt;Once installed, I had to increase the tension of the gas spring arm and tilt structure. Interestingly, the gas spring arm did not require full tension, indicating that the monitor arm could (potentially) hold an even heavier monitor.&lt;/p&gt;

&lt;p&gt;However, this was not an issue with the Ergotron HX either. The tilt structure was a different story, which did need maximum tension. Unbeliebaly, it held! This is where the HD Pivot on the Ergotron HX failed.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/benq_ergo_arm_bsh0101.jpg&quot; alt=&quot;BenQ Ergo Arm BSH01&quot; title=&quot;BenQ Ergo Arm BSH01&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The tilt structure on the BenQ Ergo Arm BSH01 does not look or feel that impressive, but it does do the job!&lt;/p&gt;

&lt;p&gt;I now have a monitor that feels robust, with no unwanted sinking, drooping, or sagging. It also provides comfort that the monitor won’t simply drop unexpectedly, potentially damaging the panel and/or desk.&lt;/p&gt;

&lt;p&gt;Thanks to BenQ for supporting the extreme end of the monitor market (very few manufacturers do). It is also reasonably priced for a heavy-duty monitor arm, at £119.&lt;/p&gt;
</description>
        <pubDate>Sun, 25 May 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/05/25/BenQ-Ergo-Arm-BSH01/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/05/25/BenQ-Ergo-Arm-BSH01/</guid>
      </item>
    
      <item>
        <title>Generative AI Usage</title>
        <description>&lt;p&gt;Over the past few years, my team has been on a journey to develop and scale a multi-model, multi-modal Generative AI framework for business, aiming to accelerate productivity and unlock insights from data. This includes Agentic AI capabilities, where AI “agents” can autonomously take action and learn.&lt;/p&gt;

&lt;p&gt;Although the technology is great, it is only valuable when applied to support a specific outcome.&lt;/p&gt;

&lt;p&gt;Even with the mainstream media hype, it is still evident that many individuals struggle to identify how Generative AI might help them personally. Therefore, I thought I would share my common use cases, many of which I believe are applicable to a wider audience.&lt;/p&gt;

&lt;h4 id=&quot;summarisation-comparison-and-analysis&quot;&gt;Summarisation, Comparison and Analysis&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Reference unstructured documents (e.g. Word, Excel, PowerPoint, PDF) to summarise, compare and/or analyse the content. Support the consumption of information, helping to highlight key messages, themes and trends. Examples include white papers, blogs, contracts, policies, earnings, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;writing&quot;&gt;Writing&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Reference existing sources (e.g., documents, communications, interviews) to draft and/or critically appraise written material, incorporating personal style and inflections. This includes sentiment analysis of draft material to help improve/refine the messaging for specific audiences. Examples include communications, blog posts, policies, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;research-and-reasoning&quot;&gt;Research and Reasoning&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Reference private and/or public data sources to prepare a detailed research document regarding a specific topic. This could include a concept (e.g., Quantum Computing), company, product or service. Context can be provided to tighten the scope of the research, identifying strengths, weaknesses, opportunities, threats, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;structured-data-insights&quot;&gt;Structured Data Insights&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Connect to structured data sources, providing a natural language interface to query and analyse data, including the dependencies and/or connections between data sets.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;knowledge-base&quot;&gt;Knowledge Base&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Reference a specific knowledge repository to create an expert system focused on a specific topic. Valuable when interrogating large knowledge articles, manuals, readme documentation, processes, procedures, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;coding-assistant&quot;&gt;Coding Assistant&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;A software development assistant, specialising in a specific programming/scripting language. Supporting code generation, suggestions, reviews, testing, debugging and documentation creation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;ideation-and-problem-solving&quot;&gt;Ideation and Problem Solving&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;A mechanism to support brainstorming, quickly generating hundreds of ideas focused on a specific problem or outcome.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;image-and-video-generation&quot;&gt;Image and Video Generation&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The creation of images and/or videos for use within presentations, blogs, etc. Side note, the header image for this article was AI generated.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this point, I can confidently state the use of Generative AI acts as a “force multiplier”. I am able to deliver more, with less effort. It also reduces pressure by automating low-value, but often time-consuming tasks, whilst also frequently improving the quality of the output as I have more time to apply critical thinking.&lt;/p&gt;

&lt;p&gt;It should be noted, as part of these use cases, that Generative AI does not replace my individual expertise, experience or style. Instead, it augments my thinking, combining the best of human and machine intelligence.&lt;/p&gt;

&lt;p&gt;Although I leverage our custom-built capabilities, with access to advanced AI models, the majority of these use cases can be achieved with consumer capabilities, offered by &lt;a href=&quot;https://openai.com/chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;, &lt;a href=&quot;https://gemini.google.com/&quot;&gt;Google Gemini&lt;/a&gt;, &lt;a href=&quot;https://copilot.microsoft.com/&quot;&gt;Microsoft Copilot&lt;/a&gt;, etc.&lt;/p&gt;
</description>
        <pubDate>Tue, 20 May 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/05/20/Generative-AI-Usage/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/05/20/Generative-AI-Usage/</guid>
      </item>
    
      <item>
        <title>Marks and Spencer Cyberattack</title>
        <description>&lt;p&gt;I recently posted an article about the importance of &lt;a href=&quot;/2025/04/28/Unstructured-Data-Protection/&quot;&gt;data protection, specifically unstructured data&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In addition, I have previously shared my perspective regarding &lt;a href=&quot;/2023/10/06/fido2-and-passkeys/&quot;&gt;FIDO2 and Passkeys&lt;/a&gt;, deployed as a mechanism to remove the reliance on passwords, whilst enabling phishing-resistant authentication.&lt;/p&gt;

&lt;p&gt;Recognising the ever-evolving threat landscape and growth in advanced social engineering tactics, I believe these two areas should be prioritised by all individuals and businesses. They do not guarantee safety but would offer significant protection against the impact of this common threat vector.&lt;/p&gt;

&lt;p&gt;As a recent example, approximately three weeks ago, &lt;a href=&quot;https://www.marksandspencer.com/&quot;&gt;Marks and Spencer (M&amp;amp;S)&lt;/a&gt; was hit by a cyberattack, which disrupted operations at their retail stores, forced them to suspend online sales and disclose the loss of personal data covering their 9.4 million active customers.&lt;/p&gt;

&lt;p&gt;For those that do not know, Marks and Spencer is a major British multinational retailer (founded in 1884), selling clothing, beauty products, home products and food.&lt;/p&gt;

&lt;p&gt;At the time of writing, Marks and Spencer are still unable to accept online orders, costing them an estimated £43m a week in lost sales, alongside a share drop of 12%. This does not take into consideration the brand damage, legal/compliance ramifications and significant unplanned investment to recover and fortify their infrastructure.&lt;/p&gt;

&lt;p&gt;The full details of the attack are yet to be disclosed publically. However, it is understood that the origin of the attack was social engineering, with an adversary contacting the Marks and Spencer IT Service Desk and convincing the support agent to reset a password on an account. With this access, the adversary was able to steal and encrypt data, crippling operations and forcing a ransom demand.&lt;/p&gt;

&lt;p&gt;Marks and Spencer have published a &lt;a href=&quot;https://corporate.marksandspencer.com/cyber-update&quot;&gt;dedicated page&lt;/a&gt; focused on the cybersecurity incident. The &lt;a href=&quot;https://www.bbc.co.uk/news/articles/c62v34zv828o&quot;&gt;BBC also has additional details&lt;/a&gt;, including advice for anyone impacted by the data loss.&lt;/p&gt;

&lt;p&gt;I empathise with the IT and Information Security teams at Marks and Spencer and I hope they are receiving the appropriate support as they work through the details of this high-profile incident.&lt;/p&gt;

&lt;p&gt;Finally, let this be a warning to everyone, especially businesses. We must all continue to proactively engage and invest in cybersecurity, ensuring protections are “right-sized” against the risks, with a focus on continuous improvement, including awareness and education.&lt;/p&gt;
</description>
        <pubDate>Wed, 14 May 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/05/14/Marks-and-Spencer-Cyberattack/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/05/14/Marks-and-Spencer-Cyberattack/</guid>
      </item>
    
      <item>
        <title>Framework Laptop Ryzen AI</title>
        <description>&lt;p&gt;My team has been partnering with &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt; to bring sustainable computing to enterprise businesses, starting with laptops.&lt;/p&gt;

&lt;p&gt;At the time of writing, we have deployed approximately 100 laptops, across the UK, US and Germany. This was part of a multi-phase pilot and business preview.&lt;/p&gt;

&lt;p&gt;We were not only evaluating the hardware and software but also the &lt;a href=&quot;/2023/11/09/Framework-Business-Process/&quot;&gt;processes that support servicing, upgrades, asset management, compliance, security, etc&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The goal of the partnership is to fundamentally change the traditional model for hardware lifecycle management within an enterprise business, delivering greater user flexibility and lower costs, whilst reducing the environmental impact.&lt;/p&gt;

&lt;p&gt;My testimonial is still present on the Framework Business website and we are proud of the collaboration.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://frame.work/gb/en/framework-for-business&quot;&gt;&lt;img src=&quot;/images/posts/frameworkbusinesslaunch01.jpg&quot; alt=&quot;Framework Laptop Ryzen AI&quot; title=&quot;Framework Laptop Ryzen AI&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, although the business preview itself was a success, verifying the business case. We did encounter a higher rate of hardware failures when compared against our baseline (Dell and Lenovo). We were also limited by hardware availability, caused by &lt;a href=&quot;/2024/09/08/chip-wars/&quot;&gt;the turbulence across the silicon industry (e.g., Qualcomm, Intel, AMD)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a result, we decided to temporarily pause the wider deployment to allow time for the hardware to mature and the market to stabilise. A more detailed explanation of our findings can be found in the article “&lt;a href=&quot;/2024/06/04/framework-paused/&quot;&gt;Framework Paused&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;In addition, outlined below are the articles I have written about Framework, covering business and personal experiences.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/06/01/Framework-Performance/&quot;&gt;Framework Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/07/Framework-Laptop-Update/&quot;&gt;Framework Laptop Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/18/Framework-Laptop-Upgrade/&quot;&gt;Framework Laptop Upgrade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/19/3D-Printed-Framework/&quot;&gt;3D Printed Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/29/Framework-for-Business/&quot;&gt;Framework for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/30/Framework-Build/&quot;&gt;Framework Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/12/Framework-Business-Pilot/&quot;&gt;Framework Business Pilot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/09/Framework-Business-Process/&quot;&gt;Framework Business Process&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/01/15/framework-and-windows-to-go/&quot;&gt;Framework and Windows To Go&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/02/01/Framework-and-NixOS/&quot;&gt;Framework and NixOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/02/03/Framework-Laptop-16/&quot;&gt;Framework Laptop 16&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/03/10/Framework-Decision/&quot;&gt;Framework Decisions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/03/25/framework-business-launch/&quot;&gt;Framework Business Launch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/04/16/nirav-patel/&quot;&gt;Nirav Patel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/05/21/framework-gdp-g1/&quot;&gt;Framework GDP G1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/06/04/framework-paused/&quot;&gt;Framework Paused&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A few weeks ago, I received the latest iteration of the Framework Laptop 13, with the AMD Ryzen AI 9 HX 370.&lt;/p&gt;

&lt;p&gt;The full hardware specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop 13 DIY Edition&lt;/li&gt;
  &lt;li&gt;AMD Ryzen AI 9 HX 370 (12C/24T)&lt;/li&gt;
  &lt;li&gt;128GB Crucial DDR5-5600 RAM&lt;/li&gt;
  &lt;li&gt;4TB Western Digital Black SN850X NVMe (7.3GB/s Read)&lt;/li&gt;
  &lt;li&gt;13.5-inch LCD Display (2880x1920 @ 120Hz)&lt;/li&gt;
  &lt;li&gt;2x USB-C, 1x HDMI (3rd Gen) 1x 1TB Framework Storage Expansion Card&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see from the specification, this is a high-performance Framework Laptop 13, with the most performant processor (AMD Ryzen AI 9 HX 370) and 128GB of memory from Crucial. The official Framework specification states up to 96GB of memory. However, I can confirm the 128GB (2x64GB) Crucial DDR5-5600 SO-DIMM kit works without issue.&lt;/p&gt;

&lt;p&gt;The laptop also includes the latest incremental enhancements, including the Fingerprint Reader Kit (2nd Gen), Webcam Module (2nd Gen), and Keyboard (2nd Gen). To be honest, I did not notice any specific improvement with these enhancements, but it is still nice to see a constant flow of updates that are fully backwards compatible.&lt;/p&gt;

&lt;p&gt;The exterior of the laptop remains unchanged (the photo below is my existing Framework Laptop 13), which in some respects is underwhelming, but is obviously an important part of the Framework architecture to support future servicing and upgrades. Thankfully, the laptop still looks great, with a modern, elegant design.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop13amd01.jpg&quot; alt=&quot;Framework Laptop Ryzen AI&quot; title=&quot;Framework Laptop Ryzen AI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Framework has expanded its customisation options via coloured bezels and expansion cards. I was lucky enough to have a translucent bezel from the original batch, which looks great! I would love to see this go further, with a full translucent case. However, I recognise this might not be practical.&lt;/p&gt;

&lt;p&gt;I run Linux Fedora as my primary operating system. I also have &lt;a href=&quot;/2024/01/15/framework-and-windows-to-go/&quot;&gt;Windows 11 installed on a 1TB Framework Storage Expansion Card (1st Gen)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptopryzenai01.jpg&quot; alt=&quot;Framework Laptop Ryzen AI&quot; title=&quot;Framework Laptop Ryzen AI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I am pleased to confirm that the installation of Fedora 42 was perfect, with no errors or missing drivers. Framework has always excelled with Linux support, selecting Linux-compatible hardware and working with the most popular Linux distributions to ensure a great software experience. In my opinion, Framework is the best way to use Linux on a laptop.&lt;/p&gt;

&lt;p&gt;Regarding performance, the AMD Ryzen AI 9 HX 370 performs very well. The Zen 5 architecture provides a healthy single-core performance boost, without negatively impacting the battery life or thermals. In my testing, the AMD Ryzen AI 9 HX 370 was consistently quieter than any previous Framework Laptop 13 I have used (AMD or Intel).&lt;/p&gt;

&lt;p&gt;The Geekbench 6 scores are outlined below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Single-Core Score&lt;/strong&gt; 2,700&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Multi-Core Score:&lt;/strong&gt; 13,587&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As expected, the AMD Ryzen AI 9 HX 370 outperforms the previous generation AMD Ryzen 7 7840U, which scored 2,382 (Single-Core Score) and 12,243 (Multi-Core Score). Approximately a 13% increase for single-core and 10% for multi-core.&lt;/p&gt;

&lt;p&gt;As part of this upgrade, I also switched to the new 13.5-inch LCD Display, which I would describe as good, but not great. The higher resolution (2880x1920) and refresh rate (120Hz) are welcomed upgrades, especially as a Linux user, as everything scales perfectly (I use 150% scaling). However, the panel is not overly bright or colour-accurate, putting it below the competition at this price point.&lt;/p&gt;

&lt;p&gt;The battery life is also average. In my experience, it does not compete against the latest Dell, Lenovo or HP laptops. If you are a hybrid worker, someone who has regular access to power, I would classify the battery life as acceptable. However, if you are a road warrior, with limited access to power, I suspect the battery life will quickly become a point of frustration.&lt;/p&gt;

&lt;p&gt;In conclusion, the AMD Ryzen AI 9 HX 370 is a solid upgrade, especially when combined with the new high-resolution, high refresh-rate display.&lt;/p&gt;

&lt;p&gt;As a Linux user, I continue to believe the Framework Laptop 13 is the “best” overall option on the market, with great hardware and software support.As a Windows user, the story is more complex, as the benefits offered by the Framework Laptop 13 are quickly overshadowed by the limitations (e.g., battery life), especially when compared to cheaper alternatives from Dell, HP and Lenovo.&lt;/p&gt;
</description>
        <pubDate>Fri, 02 May 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/05/02/Framework-Laptop-Ryzen-AI/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/05/02/Framework-Laptop-Ryzen-AI/</guid>
      </item>
    
      <item>
        <title>Unstructured Data Protection</title>
        <description>&lt;p&gt;Data protection has never been more important, and the value of data continues to rise as it is used to train more advanced Artificial Intelligence (AI) models.&lt;/p&gt;

&lt;p&gt;In simplistic terms, data can be categorised as structured or unstructured.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Structured Data&lt;/strong&gt; - Organised and formatted in a predefined way (e.g., discrete data types such as numbers, short text, dates, etc.)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Unstructured Data&lt;/strong&gt; - Lacks a predefined format and is stored in its native form (e.g., documents, images, videos, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Within a business, structured data is commonly persisted within enterprise data stores or systems of record. These are usually tightly governed, with roles, processes and tools to support stewardship, quality, privacy, compliance, security, etc.&lt;/p&gt;

&lt;p&gt;The data within these stores or systems are usually secured at source, meaning tight controls regarding how and where the data is persisted and processed, alongside specific standards for ingestion and consumption.&lt;/p&gt;

&lt;p&gt;Unfortunately, unstructured data is far less predictable. For example, within my business, we store approximately 240 million unstructured files and produces more than 1 million new files every month. We leverage Microsoft Office 365, therefore the majority of these files are Word, PowerPoint, Excel and PDF documents.&lt;/p&gt;

&lt;p&gt;To compound this issue, we also send approximately 60,000 emails daily, which can include business-sensitive information and proliferate the uncontrolled sharing of files through attachments, etc.&lt;/p&gt;

&lt;p&gt;Historically, it was common for these files to be completely uncontrolled, with no integrated protection. As a result, they are at risk of data loss, either through malicious actions or an accident.&lt;/p&gt;

&lt;p&gt;Therefore, we recently implemented a new global data protection programme that has been designed to address these risks. It incorporates a new Information Classification framework and a series of technical controls, which are enforced (mandatory).&lt;/p&gt;

&lt;p&gt;The high-level framework is outlined below.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/unstructureddataprotection01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/unstructureddataprotection01.jpg&quot; alt=&quot;Unstructured Data Protection&quot; title=&quot;Unstructured Data Protection&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal of the Information Classification framework is to ensure all unstructured data is appropriately classified, using a label.&lt;/p&gt;

&lt;p&gt;The three tiers are.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Public&lt;/strong&gt; - Data approved for public release.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Internal&lt;/strong&gt; - Data used within the company and with trusted partners.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Restricted&lt;/strong&gt; - Data that is sensitive and/or confidential.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The simplicity of a three-tier structure helps to balance security with productivity, making it easy for individuals to understand and apply.&lt;/p&gt;

&lt;p&gt;The Information Classification framework is enforced via specific technical controls, facilitated by the Microsoft security ecosystem, specifically Microsoft Purview and Defender.&lt;/p&gt;

&lt;p&gt;For example, technical controls prevent “Restricted” data from being attached and/or sent to unauthorised third parties. Instead, file sharing must occur via a controlled link, and in certain scenarios, will be encrypted at REST, requiring the recipient to authenticate.&lt;/p&gt;

&lt;p&gt;In addition, certain files can only be accessed if they meet specific authorisation criteria, which can include the posture (security/compliance status) of the endpoint.&lt;/p&gt;

&lt;p&gt;By default, all emails are automatically classified (no individual action required). However, the individual can decide to reclassify, if required. All new or previously unclassified files require the individual to classify them before they can be accessed. This is a one-time task, which takes only a couple of seconds to complete.&lt;/p&gt;

&lt;p&gt;Through this process, all newly created emails and files will be classified, with existing files being captured as they are viewed/modified or archived.&lt;/p&gt;

&lt;p&gt;This approach was designed to enable pragmatic scale and minimise business disruption, avoiding the need for individuals to retrospectively label all files and leveraging automation to simplify the process wherever appropriate.&lt;/p&gt;

&lt;p&gt;A key learning from the implementation is the importance of achieving the right balance between security and productivity. If the Information Classification framework is overly complex or the controls create too much friction, the risk of business disruption may outweigh the benefits of improved security.&lt;/p&gt;

&lt;p&gt;As a result, we invested several months running broad pilots (covering a wide range of scenarios), with a strong focus on organisational change management, specifically training and education.&lt;/p&gt;

&lt;p&gt;The outcome dramatically improves the security posture of the business, reducing the risk associated with malicious or accidental loss of unstructured data. It also provides a robust foundation for compliance reporting and future enhancements, with all data being proactively labelled.&lt;/p&gt;
</description>
        <pubDate>Mon, 28 Apr 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/04/28/Unstructured-Data-Protection/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/04/28/Unstructured-Data-Protection/</guid>
      </item>
    
      <item>
        <title>Minisforum BD795i SE</title>
        <description>&lt;p&gt;Over the years, &lt;a href=&quot;/2025/03/27/Hardware-Journey/&quot;&gt;I have built countless computers, many for myself, but also a lot for family and friends&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I started experimenting with computers in 1992 when I was eight years old. &lt;a href=&quot;/2011/12/12/first-pc/&quot;&gt;My first PC&lt;/a&gt; was an Intel i486SX with 4MB of EDO Memory. I have very fond memories of tweaking the hardware and software of this system, especially my first major upgrade, the &lt;a href=&quot;/2024/04/27/3dfx-voodoo-banshee/&quot;&gt;3DFX Voodoo Banshee&lt;/a&gt; graphics cards, which I consider the most important and influential technology purchase of my life.&lt;/p&gt;

&lt;p&gt;My son is now nine years old and the world of technology has shifted dramatically, with smartphones, tablets and high-performance video game consoles. Therefore, the need to “build” a desktop PC is not what it once was. However, like most kids, my son loves gaming (he mostly plays Fortnite, Minecraft and FC 25). Therefore, I consider it a “rite of passage” that we build his first PC together.&lt;/p&gt;

&lt;p&gt;Therefore, leveraging some &lt;a href=&quot;/2025/03/14/AMD-Radeon-RX-9070-XT/&quot;&gt;unused components&lt;/a&gt; and taking advantage of a few timely second-hand bargains, we recently built the following PC.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Minisforum BD795i SE and Cooler Master SickleFlow 120&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 7945HX 2.5 GHz Base / 5.4GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Crucial DDR5 RAM 32GB (2x16GB) 5600MHz SODIMM&lt;/li&gt;
  &lt;li&gt;Samsung 980 Pro NVMe M.2 SSD 1TB (7GB/s Read / 5GB/s Write)&lt;/li&gt;
  &lt;li&gt;Asus Prime AMD Radeon RX 9070 XT OC Edition PCIe 5.0 16GB GDDR6&lt;/li&gt;
  &lt;li&gt;AMD RZ616 Wi-Fi 6E (802.11ax) and Bluetooth 5.2&lt;/li&gt;
  &lt;li&gt;Corsair SF850 850W 80 Plus Platinum PSU&lt;/li&gt;
  &lt;li&gt;Cooler Master MasterBox NR200P&lt;/li&gt;
  &lt;li&gt;Gigabyte M32U 31.5-inch IPS Display (3840x2160 @ 144Hz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The highlight of the build is the Minisforum BD795i SE, which we purchased this part new from Amazon for £383.99.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.minisforum.uk/products/minisforum-bd770&quot;&gt;Minisforum BD795i SE&lt;/a&gt; is a unique Mini-ITX motherboard with an integrated processor and heatsink, advertised as a “Mobile on Desktop”.&lt;/p&gt;

&lt;p&gt;In short, this means the motherboard is coupled with an integrated (non-upgradable) mobile processor, speciifclly the &lt;a href=&quot;https://www.amd.com/en/products/processors/laptop/ryzen/7000-series/amd-ryzen-9-7945hx.html&quot;&gt;AMD Ryzen 9 7945HX&lt;/a&gt;. This may sound like a negative. However, the AMD Ryzen 9 7945HX is a highly capable Zen 4 processor, with 16 cores, 32 threads and a boost clock of 5.4GHz.&lt;/p&gt;

&lt;p&gt;In addition, as this is a mobile part, it is very power and thermal efficient. Therefore, when combined with the large integrated heatsink and 120mm fan, it can run at full performance (no throttling), whilst consuming just 75W.&lt;/p&gt;

&lt;p&gt;In my testing, the AMD Ryzen 9 7945HX performs extremely well, with a Geekbench 6 CPU score of 2,903 Single Core / 16,335 Multi Core. These are impressive numbers, especially when compared against my &lt;a href=&quot;/2025/01/25/pc-build-performance/&quot;&gt;AMD Ryzen 9 9950X&lt;/a&gt; (3,402 Single Core / 21,587 Muti Core), but costs £579.98 for the processor alone (not including the motherboard, heatsink, etc.)&lt;/p&gt;

&lt;p&gt;The image below is my son installing the 120mm fan bracket, which comes with the Minisforum BD795i SE.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/minisforumbd795ise01.jpg&quot; alt=&quot;Minisforum BD795i SE&quot; title=&quot;Minisforum BD795i SE&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The only other unique aspect of the Minisforum BD795i SE is the use of SODIMM memory (mobile memory, not desktop). We ordered 32GB (2x16GB) from &lt;a href=&quot;https://www.amazon.co.uk/b/?node=3581866031&quot;&gt;Amazon Resale&lt;/a&gt; (Used), alongside the Cooler Master MasterBox NR200P case. Purchasing used components can be a little risky. However, the cost savings are difficult to ignore and I am pleased to report both parts were perfect (like new).&lt;/p&gt;

&lt;p&gt;The memory itself is 5600MHz but clocked at 5200MHz with the Minisforum BD795i SE. This is below the “sweet spot” for AMD Ryzen 7000 series. However, the real-world impact (outside of specialist workloads and/or Synthetic benchmarks) is very low.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.coolermaster.com/en-global/products/masterbox-nr200p/&quot;&gt;Cooler Master MasterBox NR200P&lt;/a&gt; is a great Mini-ITX case, very versatile with great build quality and an elegant aesthetic. Build Mini-ITX can be a little fiddly, especially with a large graphics card (not ideal for a first build), but the outcome is well suited for a kid’s PC (small footprint, power efficient, low noise).&lt;/p&gt;

&lt;p&gt;The image below highlights my son installing the motherboard into the case.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/minisforumbd795ise02.jpg&quot; alt=&quot;Minisforum BD795i SE&quot; title=&quot;Minisforum BD795i SE&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2025/03/24/NVIDIA-GeForce-RTX-5090/&quot;&gt;As highlighted in my recent article&lt;/a&gt;, I found myself with a spare &lt;a href=&quot;/2025/03/14/AMD-Radeon-RX-9070-XT/&quot;&gt;AMD Radeon RX 9070 XT&lt;/a&gt; graphics card.&lt;/p&gt;

&lt;p&gt;My son has no idea how lucky he is to have this graphics card, delivering a level of performance far beyond his requirements. However, the cost and effort to sell/replace is likely more than it is worth, meaning he finds himself with a very capable gaming system, able to deliver high resolution and high frame rates in the most demanding games (and certainly enough for Fortnite). I hope this graphics card will serve him well for many years to come.&lt;/p&gt;

&lt;p&gt;The graphics card will be connected to a &lt;a href=&quot;https://www.gigabyte.com/Monitor/M32U&quot;&gt;Gigabyte M32U&lt;/a&gt; 31.5-inch IPS display, which has a native resolution of 3840x2160 at 144Hz, with support for G-Sync and FreeSync. The inclusion of multiple HDMI 2.1 ports is also very useful, making it compatible with modern video game consoles (e.g., PlayStation 5 Pro, etc.)&lt;/p&gt;

&lt;p&gt;The display is several years old, but still an excellent choice for productivity and gaming, thanks to the IPS panel. Due to its age, it can also be found for a lower price on the used market, we purchased it second-hand from eBay.&lt;/p&gt;

&lt;p&gt;Finally, to ensure the AMD Radeon RX 9070 XT has ample power (750W recommended), we selected the &lt;a href=&quot;https://www.corsair.com/uk/en/p/psu/cp-9020256-uk/sf-series-sf850-fully-modular-80-plus-platinum-sfx-power-supply-uk-cp-9020256-uk&quot;&gt;Corsair SF850 850W 80 Plus Platinum PSU&lt;/a&gt;. This is a small form factor PSU that is ATX 3.1 and PCIe 5.1 certified, with a Zero RPM mode for the integrated 92mm fan.&lt;/p&gt;

&lt;p&gt;Fitting the PSU was a little tricky, as the modular cables sit flush against the back of the graphics card. This issue was compounded by the 3x8-pin power requirements for the Asus Prime AMD Radeon RX 9070 XT OC Edition. Thankfully, with some careful manipulation, the cables could be routed under the graphics card without negatively impacting airflow.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/minisforumbd795ise03.jpg&quot; alt=&quot;Minisforum BD795i SE&quot; title=&quot;Minisforum BD795i SE&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, the build process went well. I cannot say my son demonstrated the same level of enthusiasm as me, but it was a fun project to complete together.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/minisforumbd795ise04.jpg&quot; alt=&quot;Minisforum BD795i SE&quot; title=&quot;Minisforum BD795i SE&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The choice of an Mini-ITX build did complicate the process as it does not provide much room for manoeuvrability. However, the outcome was worth the effort, avoiding the need for a full-size ATX system.&lt;/p&gt;

&lt;p&gt;The only other minor pain point is wireless connectivity, which does not come as standard with Minisforum BD795i SE. Thankfully, the motherboard supports standard Wi-Fi modules, such as the AMD RZ616 Wi-Fi 6E, which can be purchased for £18 from &lt;a href=&quot;https://frame.work/gb/en/products/amd-rz616-wi-fi-6e&quot;&gt;Framework&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In conclusion, I hope this PC build project sparks the same curiosity as it did for me as a kid! If not, he can at least enjoy playing Fortnite at a high frame rate!&lt;/p&gt;
</description>
        <pubDate>Sat, 26 Apr 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/04/26/Minisforum-BD795i-SE/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/04/26/Minisforum-BD795i-SE/</guid>
      </item>
    
      <item>
        <title>Removing Ads</title>
        <description>&lt;p&gt;Earlier this month, I noticed that &lt;a href=&quot;https://disqus.com/&quot;&gt;Disqus&lt;/a&gt;, the third-party comment hosting service I use for LifeinTECH, had started posting advertisements.&lt;/p&gt;

&lt;p&gt;As I use an ad-blocker, I had not noticed this change in their service (and missed or ignored any communication they may have sent).&lt;/p&gt;

&lt;p&gt;By default, Disqus ad-free usage now requires a subscription plan, specifically Plus, Pro or Business. However, thankfully, Disqus does offer a free “Plus” subscription plan, targeting small, non-commercial sites.&lt;/p&gt;

&lt;p&gt;LifeinTECH is my personal blog, where I share my thoughts and showcase projects. It is non-profit and is not associated with, or sponsored by any third parties. I have also always attempted to ensure it does not include any online advertisements or web trackers.&lt;/p&gt;

&lt;p&gt;Therefore, I sent the Disqus team an email at “publisher-success@disqus.com” and within 24 hours, the team migrated my site to their free “Plus” subscription plan.&lt;/p&gt;

&lt;p&gt;At this point, all ads can be removed by clicking the “Start Deactivation” button on the “Ads” Settings page.&lt;/p&gt;

&lt;p&gt;Thanks to the Disqus team for offering this option and accepting my request!&lt;/p&gt;
</description>
        <pubDate>Mon, 14 Apr 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/04/14/Removing-Ads/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/04/14/Removing-Ads/</guid>
      </item>
    
      <item>
        <title>Punish Inaction</title>
        <description>&lt;p&gt;I believe Artificial Intelligence (AI) will transform the world. This could be the specific use of AI, for example, &lt;a href=&quot;/2025/04/10/Rational-Drug-Design/&quot;&gt;in the field of life science&lt;/a&gt;, or the general use of AI, helping every individual to maximise their potential.&lt;/p&gt;

&lt;p&gt;As it relates to business, the recent article from &lt;a href=&quot;https://www.jeremyutley.design/about&quot;&gt;Jeremy Utley&lt;/a&gt; (Adjunct Professor at Stanford University) positions the following statement.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Good companies reward success, punish failure, and ignore inaction. Great companies reward success &lt;strong&gt;and&lt;/strong&gt; failure, and punish inaction.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The article itself (linked below) is approximately a 10-minute read and well worth the time, it builds nicely on Jeremy’s previous article “&lt;a href=&quot;https://www.jeremyutley.design/blog/the-most-important-ai-role&quot;&gt;The Most Important AI Role Has Nothing To Do With Code&lt;/a&gt;”.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jeremyutley.design/blog/punish-inaction&quot;&gt;https://www.jeremyutley.design/blog/punish-inaction&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As it stands today, many businesses are “dabbling” in the use of AI, specifically Generative AI and/or Agentic AI. It is often positioned as a recommendation, which means engagement and adoption can be inconsistent and slow.&lt;/p&gt;

&lt;p&gt;As stated in the article, the difference between “recommended” and “required” is subtle, but can be transformative. For example, “encouragement acknowledges the old paradigm while suggesting a new one. Requirement establishes the new paradigm as the baseline.”&lt;/p&gt;

&lt;p&gt;I completely agree with this insight, especially in the context of AI. Therefore, I am personally pushing my business to reward success and failure, and punish inaction, with specific requirements that force action.&lt;/p&gt;

&lt;p&gt;To achieve this outcome, it is critical to have clearly defined, objective measures. Measures help remove ambiguity and enforce accountability, ensuring every individual has a clear expectation.&lt;/p&gt;

&lt;p&gt;The article outlines a three-part framework for implementing accountability:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Individual Usage Demonstration:&lt;/strong&gt; Any employee should be able to show, on the spot, how they are using AI in their regular workflow. They should be able to share their screen and walk everyone through one meaningful use case from which they are routinely deriving value. This does not mean showcasing major breakthroughs, just evidence of integration.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Calendar Evidence:&lt;/strong&gt; Where on an individual’s calendar is experimentation happening? Make AI experimentation a scheduled activity, not something to fit in “when there’s time”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Normalising the Question:&lt;/strong&gt; When engaging with your team, don’t be afraid to ask the seemingly obvious question, “Have you tried AI?” Repeatedly asking is a great way to normalise AI use. It takes repetition to work AI into our workflows and muscle memory. Asking this simple question regularly helps reassure individuals that this is an expectation.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This framework is a great starting point for any business looking to drive engagement and adoption of AI, whilst also being simple enough that it can implemented with very minimal effort.&lt;/p&gt;

&lt;p&gt;If you agree that AI will transform the world, then as a business, the highest risk associated with AI is inaction. Imagine two businesses, one that has fully embraced AI and another that has not. In the first business, every individual has a “force multiplier”, combining the best of human and machine intelligence.&lt;/p&gt;

&lt;p&gt;In my opinion, the approach of “punishing inaction” would create a clear differentiator, potentially unlocking a competitive advantage.&lt;/p&gt;
</description>
        <pubDate>Mon, 14 Apr 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/04/14/Punish-Inaction/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/04/14/Punish-Inaction/</guid>
      </item>
    
      <item>
        <title>Rational Drug Design</title>
        <description>&lt;p&gt;I have worked in healthcare and life sciences for the past eighteen years. Therefore, I have spent a lot of time supporting the drug development process, covering discovery and development, preclinical research, clinical research and approvals.&lt;/p&gt;

&lt;p&gt;As anyone in the industry will know, this process can take between ten to fifteen years, requiring significant investment.&lt;/p&gt;

&lt;p&gt;In my previous article “&lt;a href=&quot;/2024/06/22/life-sciences-ai/&quot;&gt;Life Sciences AI&lt;/a&gt;”, I highlighted a few companies that are doing interesting things with technology, specifically Artificial Intelligence (AI), to support drug discovery and development. I also outlined the process (high level), providing basic insight into the different phases.&lt;/p&gt;

&lt;p&gt;Earlier this month, NVIDIA hosted their annual &lt;a href=&quot;https://www.nvidia.com/gtc/&quot;&gt;GPU Technology Conference (GTC)&lt;/a&gt;. There were many incredible sessions. However, the session “&lt;a href=&quot;https://www.nvidia.com/en-us/on-demand/session/gtc25-s72684/&quot;&gt;Toward Rational Drug Design With AlphaFold 3 and Beyond&lt;/a&gt;” from &lt;a href=&quot;https://www.isomorphiclabs.com/&quot;&gt;Isomorphic Labs&lt;/a&gt; resonated strongly with me.&lt;/p&gt;

&lt;p&gt;As part of the talk, Max Jaderberg (Chief AI Officer) and Sergei Yakneen (Chief Technology Officer) from Isomorphic Labs shared how they develop general models of biology and translate these into real-world impact.&lt;/p&gt;

&lt;p&gt;The talk itself is approximately 35 minutes long, with 10 minutes at the end for questions. If you are interested in healthcare and life sciences, computational science, and/or Artificial Intelligence (AI), it is well worth watching.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/on-demand/session/gtc25-s72684/&quot;&gt;https://www.nvidia.com/en-us/on-demand/session/gtc25-s72684/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am excited to see how these concepts can be applied to deliver the next generation of high-impact drugs to support human and animal health.&lt;/p&gt;
</description>
        <pubDate>Thu, 10 Apr 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/04/10/Rational-Drug-Design/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/04/10/Rational-Drug-Design/</guid>
      </item>
    
      <item>
        <title>Google Gemini Case Study</title>
        <description>&lt;p&gt;Earlier today, &lt;a href=&quot;https://cloud.google.com/customers/elanco&quot;&gt;Google published a case study&lt;/a&gt; documenting our work developing and scaling a Generative AI framework for business.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://cloud.google.com/customers/elanco&quot;&gt;&lt;img src=&quot;/images/posts/googlegeminicasestudy01.jpg&quot; alt=&quot;Google Gemini Case Study&quot; title=&quot;Google Gemini Case Study&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The case study highlights the following value proposition:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Built private, secure generative AI framework with Gemini and Cortex Framework in just a few weeks.&lt;/li&gt;
  &lt;li&gt;Reduced time spent on routine tasks by 70% with homegrown Gemini-enabled tool and Cortex Framework for data grounding.&lt;/li&gt;
  &lt;li&gt;$2.3M saved with AI-generated efficiencies in first year.&lt;/li&gt;
  &lt;li&gt;Real-time data with Google Cloud analytics and AI improves insights for continuous compliance.&lt;/li&gt;
  &lt;li&gt;50K pages translated in six months with Translation Hub for an estimated cost savings of $500K.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The content for the article was produced several months ago, therefore we have continued to see positive adoption and value, achieving 65,623 hours (2,734 days) saved, resulting in an estimated ROI $3,145,104.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/googlegeminicasestudy02.jpg&quot; alt=&quot;Google Gemini Case Study&quot; title=&quot;Google Gemini Case Study&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you want to learn more, I have documented our journey over a series of blog posts.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/generative-ai-for-business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;Integrated Generative AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/02/Generative-AI-Enhancements/&quot;&gt;Generative AI - Enhancements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/12/15/generative-ai-eoy/&quot;&gt;Generative AI - EoY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/06/15/generative-ai-value/&quot;&gt;Generative AI - Value&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/13/generative-ai-update/&quot;&gt;Generative AI - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/12/16/Agentic-AI/&quot;&gt;Agentic AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/02/21/Browser-Use/&quot;&gt;Browser Use&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Congratulations to the team for the public recognition!&lt;/p&gt;
</description>
        <pubDate>Tue, 01 Apr 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/04/01/Google-Gemini-Case-Study/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/04/01/Google-Gemini-Case-Study/</guid>
      </item>
    
      <item>
        <title>Hardware Journey</title>
        <description>&lt;p&gt;I have previously written about &lt;a href=&quot;/2011/12/12/first-pc/&quot;&gt;my first PC&lt;/a&gt; (an Intel i486SX) and a deeper dive in to &lt;a href=&quot;/2024/04/27/3dfx-voodoo-banshee/&quot;&gt;my first 3D accelerated graphics card&lt;/a&gt; (a Voodoo Banshee).&lt;/p&gt;

&lt;p&gt;Over the years, I have built countless computers, many for myself, but also a lot for family and friends. At the time, I would chop and change components without a second thought, but in hindsight, I wish I had retained some of the old components or at minimum, documented the process.&lt;/p&gt;

&lt;p&gt;As a result, this article will attempt to document the core hardware that I used over the years (not including anything I built for someone else).&lt;/p&gt;

&lt;p&gt;There is no real value in this information, beyond plotting my journey through computing hardware.&lt;/p&gt;

&lt;p&gt;I have split the table below into three parts, processors, graphics cards and miscellaneous, with miscellaneous covering any noteworthy, interesting or unique components.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NOTE: The list will not be 100% accurate, this is all being constructed from my memory.&lt;/em&gt;&lt;/p&gt;

&lt;h4 id=&quot;processors&quot;&gt;Processors&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/hardwarejourney01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/hardwarejourney01.jpg&quot; alt=&quot;Hardware Journey&quot; title=&quot;Hardware Journey&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4 id=&quot;graphics-cards&quot;&gt;Graphics Cards&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/hardwarejourney02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/hardwarejourney02.jpg&quot; alt=&quot;Hardware Journey&quot; title=&quot;Hardware Journey&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4 id=&quot;miscellaneous&quot;&gt;Miscellaneous&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/hardwarejourney03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/hardwarejourney03.jpg&quot; alt=&quot;Hardware Journey&quot; title=&quot;Hardware Journey&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The iiyama Vision Master Pro 454 was an exceptional 19-inch CRT monitor, capable of a 1920x1440 maximum resolution. It weighed 24Kg and took up a lot of space, but it was incredible for productivity and gaming. In many respects, when I “upgraded” to my first LCD, it was actually a downgrade regarding performance and image quality.&lt;/p&gt;

&lt;p&gt;The Coolermaster ATC 201 as I still consider it to be one of the most elegant case designs ever created, years ahead of its time.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://en.wikipedia.org/wiki/Sound_Blaster_X-Fi&quot;&gt;Creative Sounds Blaster X-Fi&lt;/a&gt; is a dedicated PCI sound card, which is now rarely part of a PC build. I believe this was the last “premium” sound card I ever purchased.&lt;/p&gt;

&lt;p&gt;The Hercules Prophetview 920 Pro DVI was (I believe) my first LCD display. As previously noted, it was in some respects a downgrade, but the I was sold on the thin and lightweight construction, alongside the striking design.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://noctua.at/nh-d15&quot;&gt;Noctua NH-D15&lt;/a&gt; is a legendary dual tower cooler, which I have used for years. When it comes to air cooling, I continue to believe this is the best all-round cooler, supporting Intel and AMD.&lt;/p&gt;

&lt;p&gt;Finally, the &lt;a href=&quot;https://www.logitech.com/mx/master-series.html&quot;&gt;Logitech MX Master&lt;/a&gt; mouse, covering the original, 2S, 3, and 3S. Although not the highest performing hardware specification, it is an incredible productivity mouse, with great ergonomics and versatile features for Windows, macOS and Linux.&lt;/p&gt;

&lt;p&gt;My plan is to update this table over time, including new components, alongside anything additional I recall.&lt;/p&gt;
</description>
        <pubDate>Thu, 27 Mar 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/03/27/Hardware-Journey/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/03/27/Hardware-Journey/</guid>
      </item>
    
      <item>
        <title>Practical Product Operating Model</title>
        <description>&lt;p&gt;The Product Operating Model, by the &lt;a href=&quot;https://www.svpg.com/&quot;&gt;Silicon Valley Product Group&lt;/a&gt;, is a conceptual model, not a methodology, process or framework. It is about moving from output to achieving outcomes, following a set of product-first principles. These principles focus on ensuring any product is valuable, viable, usable, and feasible.&lt;/p&gt;

&lt;p&gt;I have previously written about the Product Operating Model across five articles, including some details regarding my business transition.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/20/Product-Operating-Model/&quot;&gt;Product Operating Model&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/22/Product-Operating-Model-Principles/&quot;&gt;Product Operating Model Principles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/24/product-operating-model-roles/&quot;&gt;Product Operating Model Roles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/02/10/Product-Operating-Model-Transition/&quot;&gt;Product Operating Model Transition&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/03/05/Linear/&quot;&gt;Linear&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this article, I will share how my business has embedded the Product Operating Model.&lt;/p&gt;

&lt;p&gt;All work, across all business functions, including foundational systems and platforms, are delivered and supported by a Product Team. &lt;/p&gt;

&lt;p&gt;Product Teams are ephemeral scaling up or down based on the business need. All Product Teams are logically grouped under a specific Product Group.&lt;/p&gt;

&lt;p&gt;The diagram is an example of our Product Group/Team topology, with the blue boxes highlighting Product Groups and the white boxes highlighting Product Teams.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/practicalproductoperatingmodel01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/practicalproductoperatingmodel01.jpg&quot; alt=&quot;Practical Product Operating Model&quot; title=&quot;Practical Product Operating Model&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Product Group/Team topology will be different for every business, aligned to the value chain.&lt;/p&gt;

&lt;p&gt;Every Product Team has a defined scope and focused problem statement (mission) that is measurable.&lt;/p&gt;

&lt;p&gt;The primary goal of a Product Team is to discover and deliver a solution to the problem statement.&lt;/p&gt;

&lt;p&gt;By default, a Product Team include a dedicated Product Manager, Product Designer and the associated technical resources. The technical resources are primarily allocated from the Engineering team.&lt;/p&gt;

&lt;p&gt;The Product Team will have direct access to the relevant stakeholders, which could include Business Partners, Users, Customers, IT Leaders, etc.&lt;/p&gt;

&lt;p&gt;A Product Team operates following the principles of DevSecOps. As a result, any solution discovered and/or delivered is supported by the Product Team.&lt;/p&gt;

&lt;p&gt;The flow of work is standardised across all Product Teams, as outlined in the diagram below.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/practicalproductoperatingmodel02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/practicalproductoperatingmodel02.jpg&quot; alt=&quot;Practical Product Operating Model&quot; title=&quot;Practical Product Operating Model&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To enable practical scale, Engineering will operate as a unified pool of technical resources, including internal employees and external contractors.&lt;/p&gt;

&lt;p&gt;Specific technical expertise and experience will be required to support the depth and breadth of the Product Teams. This includes the following disciplines.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Software Engineering&lt;/li&gt;
  &lt;li&gt;Data Engineering&lt;/li&gt;
  &lt;li&gt;Platform Engineering&lt;/li&gt;
  &lt;li&gt;Site Reliability Engineering&lt;/li&gt;
  &lt;li&gt;System Administration&lt;/li&gt;
  &lt;li&gt;Technical Analysts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Regardless of the discipline, all technical resources reporting to the Engineering team are titled “Engineer”, with different levels (e.g., Associate, Senior, Principal) differentiating seniority.&lt;/p&gt;

&lt;p&gt;As highlighted in the diagram below, engineers will be allocated to a Product Team based on the needs of the Product Team, as defined by the Product Manager. &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/practicalproductoperatingmodel03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/practicalproductoperatingmodel03.jpg&quot; alt=&quot;Practical Product Operating Model&quot; title=&quot;Practical Product Operating Model&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Engineers can be durable (persistent), living with the Product Team for the duration of the Product Team lifecycle or dynamically assigned (short-lived) based on a specific time-bound need, providing a “boost” to the team.&lt;/p&gt;

&lt;p&gt;Internal employees and external contractors will be treated equally, following the same allocation process, with the same expectations.&lt;/p&gt;

&lt;p&gt;External partners are leveraged as part of the Engineering team to support scale and to provide access to the required expertise and experience.&lt;/p&gt;

&lt;p&gt;A default external partner (managed service) provides economies of scale and consistency, with boutique partners providing access to specialist expertise and/or experience.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/practicalproductoperatingmodel04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/practicalproductoperatingmodel04.jpg&quot; alt=&quot;Practical Product Operating Model&quot; title=&quot;Practical Product Operating Model&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A primary goal of the Engineering team is to discover and deliver feasible solutions, ensuring they meet expectations across the following areas.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Architecture Alignment (Avoiding Technical Debt)&lt;/li&gt;
  &lt;li&gt;Operational Readiness&lt;/li&gt;
  &lt;li&gt;Availability&lt;/li&gt;
  &lt;li&gt;Integrity&lt;/li&gt;
  &lt;li&gt;Performance&lt;/li&gt;
  &lt;li&gt;Scale&lt;/li&gt;
  &lt;li&gt;Efficiency&lt;/li&gt;
  &lt;li&gt;Security, Quality Assurance, Legal and Privacy&lt;/li&gt;
  &lt;li&gt;Regulatory Compliance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By default, a Product Team must follow the principles of DevSecOps.&lt;/p&gt;

&lt;p&gt;With that said, every system that enters production is classified (Platinum, Gold, Silver, Bronze). Specific systems (e.g., Platinum) may require dedicated support teams and processes to ensure the resolution of issues and incidents are appropriately prioritised.&lt;/p&gt;

&lt;p&gt;As previously stated, the Product Operating Model is a conceptual model, not a methodology, process or framework. Therefore, every business looking to embrace the product-first principles will need to carefully consider how they embed the concepts.&lt;/p&gt;

&lt;p&gt;Our approach aims to ensure standardisation, focus and discipline, which unlocks speed and quality at scale. It also ensures every team has a clear understanding of the problem they are trying to solve and how that is connected to the overall business outcomes.&lt;/p&gt;

&lt;p&gt;This connection between the work of an individual within a Product Team and business outcome drives purpose, which is motivating and promotes clear prioritisation.&lt;/p&gt;
</description>
        <pubDate>Wed, 26 Mar 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/03/26/Practical-Product-Operating-Model/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/03/26/Practical-Product-Operating-Model/</guid>
      </item>
    
      <item>
        <title>NVIDIA GeForce RTX 5090</title>
        <description>&lt;p&gt;Earlier this month, I upgraded my custom-built PC. I documented this process across two articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/01/18/GeForce-RTX-5090-Build/&quot;&gt;GeForce RTX 5090 Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/01/25/PC-Build-Performance/&quot;&gt;PC Build Performanc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The impetus for this change was the &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/graphics-cards/50-series/rtx-5090/&quot;&gt;NVIDIA GeForce RTX 5090&lt;/a&gt; announcement, which felt like a worthy upgrade to my ageing NVIDIA GeForce RTX 3090 (I had skipped the NVIDIA 40 series).&lt;/p&gt;

&lt;p&gt;Unfortunately, NVIDIA’s launch was disappointing, with many issues. Most notably, there was limited supply, an uncontrolled ordering process, and failed MSRP pricing.&lt;/p&gt;

&lt;p&gt;Due to these issues, it was almost impossible to purchase an NVIDIA GeForce RTX 5090 at MSRP, resulting in aggressive scalping that pushed the price above £3500 (£1500 above MSRP).&lt;/p&gt;

&lt;p&gt;In a perfect world, I would select a different graphics card. Unfortunately, there is no comparable alternative to the NVIDIA GeForce RTX 5090. Therefore, I decided to delay my purchase (selecting a &lt;a href=&quot;/2025/03/14/AMD-Radeon-RX-9070-XT/&quot;&gt;AMD Radeon RX 9070 XT&lt;/a&gt;), until the market stabilised and/or the pricing improved.&lt;/p&gt;

&lt;p&gt;My team recently attended the &lt;a href=&quot;https://www.nvidia.com/gtc/&quot;&gt;NVIDIA GPU Technology Conference (GTC)&lt;/a&gt;. I did not expect any NVIDIA GeForce 50 series graphics cards to be on sale. However, to my surprise, a colleague was able to secure me an &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/graphics-cards/50-series/rtx-5090/&quot;&gt;NVIDIA GeForce RTX 5090 Founders Edition&lt;/a&gt; for under MSRP (£1688.15).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nvidiageforcertx509001.jpg&quot; alt=&quot;NVIDIA GeForce RTX 5090&quot; title=&quot;NVIDIA GeForce RTX 5090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although still very expensive for a consumer-grade graphics card, this price is arguably a bargain, £250 below MSRP and upwards of £1750 below current availability pricing.&lt;/p&gt;

&lt;p&gt;The full specification of the NVIDIA GeForce RTX 5090 Founders Edition can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Architecture:&lt;/strong&gt; Blackwell 2.0&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Process:&lt;/strong&gt; TSMC 4N FinFET (5nm)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Clocks:&lt;/strong&gt; 2017MHz (Base) / 2407MHz (Boost)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Shading Units:&lt;/strong&gt; 21,760&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Texture Mapping Units:&lt;/strong&gt; 680&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Render Output Units:&lt;/strong&gt; 176&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Streaming Multiprocessors Count:&lt;/strong&gt; 170&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tensor Cores:&lt;/strong&gt; 680&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Ray Tracing Cores:&lt;/strong&gt; 170&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Memory:&lt;/strong&gt; 32GB GDDR7 (512bit / 1750MHz)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Interface:&lt;/strong&gt; PCI Express 5.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, this graphics card is a monster, likely pushing the TSMC 4N FinFET (5nm) process to its limit. This also explains the 575W power requirement, an increase of 125W from the NVIDIA GeForce RTX 4090. As a result, NVIDIA recommends a 1000W PSU or greater, with a native 12V-2x6 connection.&lt;/p&gt;

&lt;p&gt;In addition to the increase in power, the NVIDIA GeForce RTX 5090 has 21,760 CUDA cores, approximately 33% more than the NVIDIA GeForce RTX 4090 (16,384 CUDA cores).&lt;/p&gt;

&lt;p&gt;The NVIDIA GeForce RTX 5090 also transitions to fifth-generation Tensor and fourth-generation RT cores.&lt;/p&gt;

&lt;p&gt;These enhancements are combined with 32GB of GDDR7 VRAM, with a 512-bit memory interface, delivering an impressive memory bandwidth of 1,792GB/s. That is a significant increase over the NVIDIA GeForce 4090 (1,008GB/s) and the ultra-fast unified memory found on the Apple M4 Max SoC (546GB/s).&lt;/p&gt;

&lt;p&gt;Considering the power requirements, you would assume that the NVIDIA GeForce RTX 5090 would require a large, elaborate cooling solution. Interestingly, the NVIDIA engineers have demonstrated their expertise by delivering a relatively compact, two-slot design, with a split PCB. This design appears to cool the graphics card very effectively, without any drastic compromises regarding the design, size or noise.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nvidiageforcertx509002.jpg&quot; alt=&quot;NVIDIA GeForce RTX 5090&quot; title=&quot;NVIDIA GeForce RTX 5090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my opinion, the NVIDIA GeForce RTX 5090 is the “best” built graphics card I have ever owned, with a premium design, high-quality materials and a reassuring construction.&lt;/p&gt;

&lt;p&gt;Unsprupsingly, this specification delivers exceptional gaming performance, in line with what you would expect from a generational update that leverages the same 5nm process. With that said, it would appear most of this performance benefit is delivered via the additional 125W of power, further indicating the limitations of the TSMC 4N FinFET (5nm).&lt;/p&gt;

&lt;p&gt;I suspect NVIDIA anticipated this limitation, prompting their heavy investment and marketing into software improvements, specifically &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/technologies/dlss/&quot;&gt;Deep Learning Super Sampling (DLSS) 4&lt;/a&gt;, including Multi Frame Generation (MFG).&lt;/p&gt;

&lt;p&gt;DLSS 4 leverages a transformer-based AI model for Super Resolution, which is also backwards compatible with the NVIDIA GeForce RTX 40/30/20 series. I consider DLSS (or equivalent) a “must-have” feature, capable of delivering incredible results.&lt;/p&gt;

&lt;p&gt;MFG, which can generate up to three additional frames per rendered frame, is more controversial. It is also exclusive to the NVIDIA GeForce 50 series. As advertised, the technology delivers impressive FPS increases. However, it does not improve latency and can impact image quality. Therefore, I would only recommend MFG in slower-paced games (not Twitch shooters) where the base FPS is already consistently above 60.&lt;/p&gt;

&lt;p&gt;With my Samsung G95NC Odyssey Neo G9 display at native resolution (7680x2160), in games such as Cyberpunk 2077 and Indiana Jones, I am able to max all settings, including Ray Tracing and Path Tracing (where supported), whilst still achieving an FPS of above 100. With MFG enabled, this number can easily surpass 250.&lt;/p&gt;

&lt;p&gt;Outside of gaming performance, my interest also includes the potential for Artificial Intelligence (AI) acceleration, specifically Generative AI. This is where the CUDA core count and memory capacity/bandwidth provide significant value.&lt;/p&gt;

&lt;p&gt;The NVIDIA GeForce 5090 supports v12.0 &lt;a href=&quot;https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#compute-capabilities&quot;&gt;Compute Capabilities&lt;/a&gt;, with the 32GB VRAM offering enough capacity to run 12B parameter AI models natively and up to 50B parameter AI models with low quantization.&lt;/p&gt;

&lt;p&gt;As a reminder, quantization is a technique that reduces the computational and memory requirements of AI models by representing their weights and activations with lower-precision data types, like 8-bit integers instead of 32-bit floating points, enabling faster and more efficient deployments. Lower bit quantizations represent more aggressive compression, leading to smaller model sizes but potentially higher quality loss.&lt;/p&gt;

&lt;p&gt;Finally, the NVIDIA Encoder (NVENC) and Decoder (NVDEC) capabilities have been upgraded (ninth-generation and sixth-generation), with one additional hardware encoder for each, compared to the NVIDIA GeForce 4090. This is great news for creators and anyone working with video, allowing for more simultaneous workloads with minimal performance loss.&lt;/p&gt;

&lt;p&gt;Outlined below are some high-level test results compared to my NVIDIA GeForce RTX 3090 and AMD Radeon RX 9070 XT.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/nvidiageforcertx509003.jpg&quot;&gt;&lt;img src=&quot;/images/posts/nvidiageforcertx509003.jpg&quot; alt=&quot;NVIDIA GeForce RTX 5090&quot; title=&quot;NVIDIA GeForce RTX 5090&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NOTE: My CPU performance has degraded over time. Therefore, the CPU-centric tests are showing a minor reduction in performance.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Overall, when considering graphics-centric tests, the NVIDIA GeForce RTX 5090 outperforms my GeForce RTX 3090 by approximately 99% and the AMD Radeon RX 9070 XT by 40%.&lt;/p&gt;

&lt;p&gt;The near 100% increase over my NVIDIA GeForce RTX 3090 is certainly welcomed, highlighting the benefit of skipping a generation. These tests are not comprehensive and the performance benefit will vary depending on the workload.&lt;/p&gt;

&lt;p&gt;With that said, these are impressive results, demonstrating the raw horsepower of the NVIDIA GeForce RTX 5090, which is further enhanced when you enable software features, such as DLSS 4 and MFG.&lt;/p&gt;

&lt;p&gt;In conclusion, although extremely expensive and power-hungry, I am impressed with the NVIDIA GeForce RTX 5090. I certainly would not recommend this graphics card to everyone, but if you are seeking the “best” available, the NVIDIA GeForce RTX 5090 is the current undisputed king.&lt;/p&gt;

&lt;p&gt;I am excited to broaden my testing, specifically with complex workloads related to AI.&lt;/p&gt;
</description>
        <pubDate>Mon, 24 Mar 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/03/24/NVIDIA-GeForce-RTX-5090/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/03/24/NVIDIA-GeForce-RTX-5090/</guid>
      </item>
    
      <item>
        <title>Working Rhythm</title>
        <description>&lt;p&gt;I have previously written a few articles focused on my career, covering topics such as my approach to career planning, a day in the life and the importance of purpose.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/09/23/cto/&quot;&gt;CTO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/12/career-planning/&quot;&gt;Career Planning&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/01/cto-vs-ciso/&quot;&gt;CTO vs. CISO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/10/19/day-in-the-life/&quot;&gt;Day in the Life&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/17/purpose-and-fulfilment/&quot;&gt;Purpose and Fulfilment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although some of these articles are fairly old they are still relevant today. For example, the specifics outlined in my “&lt;a href=&quot;/2022/10/19/day-in-the-life/&quot;&gt;Day in the Life&lt;/a&gt;” artcile have evolved. However, the approach remains consistent and continues to serve me well.&lt;/p&gt;

&lt;p&gt;In my combined role as Chief Technology Officer (CTO) and Chief Information Security Officer (CISO), I have 7 direct reports and supervise approximately 115 employees and 176 contractors. These employees and contractors are distributed across three primary locations, specifically the UK, US, and India.&lt;/p&gt;

&lt;p&gt;With over 300 individuals reporting up to me (approximately 46% of all IT), it is important to find a “working rhythm” that promotes discipline and delivery excellence, ensuring regular touch-points that target specific outcomes.&lt;/p&gt;

&lt;p&gt;As a result, I thought I would share the type and cadence of these regular touch-points.&lt;/p&gt;

&lt;p&gt;The diagram below highlights a single month, with an approximate snapshot of the regular meetings.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/workingrhythm01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/workingrhythm01.jpg&quot; alt=&quot;Working Rhythms&quot; title=&quot;Working Rhythms&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each structured meeting has a specific focus and outcome.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Lead Team SCRUM Meetings (30 Minutes - Weekly)&lt;/strong&gt; - Short, time-bound lead team meetings that ensure alignment for the week ahead, focused on immediate priorities and barriers.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Joint Leadership Meetings (60 Minutes - Twice Monthly)&lt;/strong&gt; - Engineering and Information Security leadership meeting, focused on business context, strategic priorities, people development, ensuring individuals are motivated and empowered.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Team Meetings (60 Minutes - Engineering Monthly / Infomation Security Twice Monthly)&lt;/strong&gt; - All team meetings, promoting strong situational awareness, connecting team priorities with business outcomes, and ensuring individuals have a sense of purpose.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;1:1 Meetings (60 Minutes - Twice Monthly)&lt;/strong&gt; - Direct report 1:1 meetings, focused on personal development and career planning.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Enterprise Architecture (60 Minutes - Twice Monthly)&lt;/strong&gt; - Office of the CTO, focused on the IT ecosystem strategy, principles and positioning.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;IT Lead Team (120 Minutes - Twice Monthly)&lt;/strong&gt; - Office of the CIO, focused on strategy, alignment and people engagement.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cadence of the meetings is based on the need and specific audience. For example, engineers value “time at the keyboard”. Therefore, I attempt to limit the time they are forced to spend in meetings.&lt;/p&gt;

&lt;p&gt;Inaddition to this regular cadence, I also run ad-hoc “skip-level” check-ins, where I connect with individuals and groups outside of my direct reports, helping to gain additional, unfiltered feedback and insights.&lt;/p&gt;

&lt;p&gt;Overall, I believe this working rhythm helps to ensure quality, focus and discipline across the team, supported by a regular and consistent pattern of engagement.&lt;/p&gt;
</description>
        <pubDate>Fri, 14 Mar 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/03/14/Working-Rhythm/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/03/14/Working-Rhythm/</guid>
      </item>
    
      <item>
        <title>AMD Radeon RX 9070 XT</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Following a disappointing launch by NVIDIA, I was fortunate enough to be one of the few who procured an &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/graphics-cards/50-series/rtx-5090/&quot;&gt;NVIDIA GeForce RTX 5090&lt;/a&gt; from the &lt;a href=&quot;https://www.nvidia.com/gtc/&quot;&gt;NVIDIA GPU Technology Conference (GTC)&lt;/a&gt; for under MSRP (£1688.15). More details can be found in the post “&lt;a href=&quot;/2025/03/24/NVIDIA-GeForce-RTX-5090/&quot;&gt;NVIDIA GeForce RTX 5090&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;I recently upgraded my main custom-built PC. I documented this process across two articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;2025/01/18/GeForce-RTX-5090-Build/&quot;&gt;GeForce RTX 5090 Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/01/25/PC-Build-Performance/&quot;&gt;PC Build Performance&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The impetus for this change was the &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/graphics-cards/50-series/rtx-5090/&quot;&gt;NVIDIA GeForce RTX 5090&lt;/a&gt;, which felt like a worthy upgrade to my ageing NVIDIA GeForce RTX 3090 (I had skipped the NVIDIA 40 series).&lt;/p&gt;

&lt;p&gt;Unfortunately, the NVIDIA launch was highly disappointing, with a wide range of issues. Specifically:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Misleading marketing, unfairly comparing the NVIDIA GeForce RTX 5070 against the NVIDIA GeForce RTX 4090.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Very limited initial availability, compounded by limited ongoing supply.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Uncontrolled ordering process, resulting in automated “bot” purchases for scalping purposes.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Failed MSRP pricing, with the GeForce RTX 5090 selling for excess of £3500 (£1500 above MSRP).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Reports of the controversial 12V-2x6 connector and/or cables overheating (similar to the NVIDIA GeForce RTX 4090).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A quality assurance failure that resulted in graphics cards shipping with missing ROPs, impacting performance.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Driver issues, resulting in instability and “black screen” issues.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Frustratingly, many of these issues (marketing, supply, ordering and pricing) could have been easily avoided with better proactive planning.&lt;/p&gt;

&lt;p&gt;The hardware and software issues, although disappointing, are not uncommon with new product launches and it is unclear the “true” number of impacted users (Reddit and YouTube commonly overstate the real-world impact). However, with consumer sentiment already low due to the launch issues, this additional bad press compounded the market reaction.&lt;/p&gt;

&lt;p&gt;Personally, I can forgive the mistakes. However, what I struggle to forgive is the lack of communication and respect from NVIDIA. Since the “launch” of the NVIDIA GeForce 50 series, NVIDIA has failed to proactively engage the community, with only the missing ROPs being formally acknowledged.&lt;/p&gt;

&lt;p&gt;In short, humility and vulnerability can count for a lot. If you make a mistake, own it, and look to resolve it as soon as possible.&lt;/p&gt;

&lt;p&gt;It would appear that NVIDIA has become arrogant, and emboldened by its market position, ultimately at the cost of its most loyal customers (the same customers that built the company’s foundation).&lt;/p&gt;

&lt;p&gt;In a perfect world, I would demonstrate my dissatisfaction with NVIDIA by voting with my wallet. Unfortunately, there is no comparable alternative to the NVIDIA GeForce RTX 5090. This lack of direct competition is a major part of the problem, something we have seen over the years with other technology companies, such as Intel, etc.&lt;/p&gt;

&lt;p&gt;Therefore, against my better judgment, I still intend to procure an NVIDIA GeForce RTX 5090. However, I refuse to pay over MSRP. Therefore, I could be in for a long wait.&lt;/p&gt;

&lt;p&gt;With this in mind, I devised a new “short-term” plan, which resulted in me purchasing the newly announced AMD Radeon RX 9070 XT as a replacement for my NVIDIA GeForce RTX 3090.&lt;/p&gt;

&lt;p&gt;This may seem like an odd upgrade, as the performance difference will not be groundbreaking. However, at the current market pricing, I can sell my NVIDIA GeForce RTX 3090 for around the price of the AMD Radeon RX 9070 XT, delivering a good price/performance upgrade.&lt;/p&gt;

&lt;h3 id=&quot;amd-radeon-rx-9070-xt&quot;&gt;AMD Radeon RX 9070 XT&lt;/h3&gt;

&lt;p&gt;I purchased the ASUS Prime Radeon RX 9070 XT OC Edition which has a list price of £635.99, a little above the £569.99 MSRP stated by AMD. Unfortunately, without a reference card from AMD, it is unclear if the AMD MSRP will be honoured.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/amdradeonrx9070xt01.jpg&quot; alt=&quot;AMD Radeon RX 9070 XT&quot; title=&quot;AMD Radeon RX 9070 XT&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The ASUS Prime Radeon RX 9070 XT OC Edition is a dual BIOS, triple fan, 2.5 slot design, with a phase-change thermal pad. It includes a minor out-of-the-box overclock, delivering a boost clock of 3030MHz.&lt;/p&gt;

&lt;p&gt;It fits perfectly in my &lt;a href=&quot;https://www.lifeintech.com/2024/11/12/my-setup-q4-2024/&quot;&gt;Fractal Torrent Compact&lt;/a&gt; case, with a length of 312mm.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/amdradeonrx9070xt02.jpg&quot; alt=&quot;AMD Radeon RX 9070 XT&quot; title=&quot;AMD Radeon RX 9070 XT&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The full specification of the ASUS Prime Radeon RX 9070 XT OC Edition can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Architexture:&lt;/strong&gt; RDNA 4.0&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Process:&lt;/strong&gt; TSMC N4P FunFET (5nm)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Clocks:&lt;/strong&gt; 2480MHz (Game) / 3030MHz (Boost)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Shader Units:&lt;/strong&gt; 4096&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Texture Mapping Units:&lt;/strong&gt; 256&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Render Output Units:&lt;/strong&gt; 128&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Compute Units:&lt;/strong&gt; 64&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tensor Core:&lt;/strong&gt; 128&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;RT Cores:&lt;/strong&gt; 64&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Memory:&lt;/strong&gt; 16GB GDDR6 (256bit)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Interface:&lt;/strong&gt; PCI Express 5.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Considering the price (assuming near MSRP), the AMD Radeon RX 9070 XT delivers an impressive and well-balanced specification. For example, the use of GDDR6 (instead of the newer GDDR7) is likely a good cost-saving measure, without sacrificing much performance for this class of graphics card. However, I do wish they could have included a little more memory (ideally 20GB) to support larger AI workloads.&lt;/p&gt;

&lt;p&gt;In addition, unlike NVIDIA, AMD does not mandate the 12V-2x6 connector, avoiding the potential heat issues and negative press. The ASUS Prime Radeon RX 9070 XT OC Edition comes with three 8-pin connectors, with a 750W PSU recommendation. The three connectors are likely overkill but could offer some benefit when overclocking.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/amdradeonrx9070xt03.jpg&quot; alt=&quot;AMD Radeon RX 9070 XT&quot; title=&quot;AMD Radeon RX 9070 XT&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The ASUS Prime Radeon RX 9070 XT OC Edition includes one HDMI 2.1b and three DisplayPort 2.1a with HDCP 2.3 support. As a result, it should be future-proof for high-resolution, high-refresh-rate monitors.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/amdradeonrx9070xt04.jpg&quot; alt=&quot;AMD Radeon RX 9070 XT&quot; title=&quot;AMD Radeon RX 9070 XT&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The default performance of the AMD Radeon RX 9070 XT is impressive. However, I also configured a minor under-volt/overclock (screenshot below), which worked perfectly in my testing and should be viable for 24x7. This can be done by tweaking just three settings in the AMD Radeon Adrenalin Edition application.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Voltage Offset (mV):&lt;/strong&gt; -80&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;VRAM Max Frequency (MHz):&lt;/strong&gt; 2800&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Power Limit (%):&lt;/strong&gt; 10&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Outlined below are some high-level test results compared to my NVIDIA GeForce RTX 3090.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/amdradeonrx9070xt05.jpg&quot;&gt;&lt;img src=&quot;/images/posts/amdradeonrx9070xt05.jpg&quot; alt=&quot;AMD Radeon RX 9070 XT&quot; title=&quot;AMD Radeon RX 9070 XT&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Overall, the AMD Radeon RX 9070 XT outperforms my GeForce RTX 3090 by 23%. Although my tests are far from comprehensive, I do believe they provide a basic insight into the performance benefits of the AMD Radeon RX 9070 XT.&lt;/p&gt;

&lt;p&gt;I also tested some non-synthetic scenarios, which also delivered impressive results, with a dramatic increase in ray tracing performance compared with RDNA 3.0, etc. When combined with the improvements delivered by FSR 4.0, the AMD Radeon RX 9070 XT is an incredibly well-rounded graphics card.&lt;/p&gt;

&lt;p&gt;In summary, based on my initial testing, if you are in the market for a medium/high-end graphics card, targeting gaming only, I would highly recommend the AMD Radeon RX 9070 XT. It delivers compelling performance across a range of work workloads at a compelling price point.&lt;/p&gt;
</description>
        <pubDate>Fri, 14 Mar 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/03/14/AMD-Radeon-RX-9070-XT/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/03/14/AMD-Radeon-RX-9070-XT/</guid>
      </item>
    
      <item>
        <title>CTO Craft Con</title>
        <description>&lt;p&gt;Over the past two days, I attended &lt;a href=&quot;https://conference.ctocraft.com/london-2025/&quot;&gt;CTO Craft Con: London&lt;/a&gt;, which is a popular gathering for Chief Technology Officers (CTOs) and aspiring tech leaders, with a focus on practical insights and meaningful connections.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ctocraftcon01.jpg&quot; alt=&quot;CTO Craft Con&quot; title=&quot;CTO Craft Con&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The conference started with Erica Stanley (Director of Engineering at Google), exploring how technology leaders can navigate the intersection of rapid technological advancements and global connectedness.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ctocraftcon02.jpg&quot; alt=&quot;CTO Craft Con&quot; title=&quot;CTO Craft Con&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Erica covered key topics, such as how to lead with a focus on ethics, alongside how the role of the CTO can drive business transformation.&lt;/p&gt;

&lt;p&gt;Over the two days, there were a series of keynote presentations (outlined below), alongside networking sessions, conversations (round tables) and showcases.&lt;/p&gt;

&lt;h3 id=&quot;day-one&quot;&gt;Day One&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Mitigating the Hidden Risks of Emerging Tools&lt;/strong&gt; - Glyn Roberts, CTO, &lt;a href=&quot;https://vention.io/&quot;&gt;Vention&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Bootstrapping the CTO Role: The Best First 100 Days in a New Leadership Position&lt;/strong&gt; - Roxana Diaconescu, CTO, &lt;a href=&quot;https://silverrailtech.com/&quot;&gt;SilverRail&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The Role of the CTO in Shaping Company Culture&lt;/strong&gt; - Panel (&lt;a href=&quot;https://www.carwow.co.uk/&quot;&gt;Carwow&lt;/a&gt;, &lt;a href=&quot;https://restless.co.uk/&quot;&gt;Rest Less&lt;/a&gt;, &lt;a href=&quot;https://www.domesticandgeneral.com/&quot;&gt;Domestic &amp;amp; General&lt;/a&gt;, &lt;a href=&quot;https://fundamentalsurgery.com/&quot;&gt;FundamentalVR&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The Future of R&amp;amp;D Productivity: Leveraging a Strategic Framework and GenAI for Lasting Impact&lt;/strong&gt; - Will Lytle, COO, &lt;a href=&quot;https://plandek.com/&quot;&gt;Plandek&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The Connective Tissue of Tech: Why Glue Work Deserves Your Attention&lt;/strong&gt; - Katja Obring, Director, &lt;a href=&quot;https://kato-coaching.com/&quot;&gt;Kato Coaching Ltd&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;day-two&quot;&gt;Day Two&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The CTO Spectrum: Which Archetype Are You?&lt;/strong&gt; - Pat Kua, CTO Coach and Founder, &lt;a href=&quot;https://techlead.academy/&quot;&gt;Tech Lead Academy&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;People, Process, Technology, Business&lt;/strong&gt; - Anna Shipman, CTO, &lt;a href=&quot;https://www.kooth.com/&quot;&gt;Kooth&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Keeping up with AI&lt;/strong&gt; - Jon Topper, Strategic Advisor, &lt;a href=&quot;https://ten10.com/&quot;&gt;Ten10&lt;/a&gt; and Founder of &lt;a href=&quot;https://scalefactory.com/&quot;&gt;The Scale Factory&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;AI Ethics and Practical Applications: Moving Beyond the Hype&lt;/strong&gt; - Panel (&lt;a href=&quot;https://dojo.tech/&quot;&gt;Dojo&lt;/a&gt;, &lt;a href=&quot;https://bumble.com/en/&quot;&gt;Bumble&lt;/a&gt;, &lt;a href=&quot;https://philipps-byrne.com/&quot;&gt;Philipps &amp;amp; Byrne&lt;/a&gt;, &lt;a href=&quot;https://www.yld.io/&quot;&gt;YLD&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Building a Data-Driven Engineering Culture&lt;/strong&gt; - Oge Opara-Nadi, VP Engineering, &lt;a href=&quot;https://www.heysavi.com/&quot;&gt;Hey Savi&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To review the full agenda, please refer to the &lt;a href=&quot;https://conference.ctocraft.com/london-2025/agenda-preview&quot;&gt;CTO Craft Con website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Although there was a lot of great content and discussion, I want to highlight three topics that were most interesting to me.&lt;/p&gt;

&lt;p&gt;Will Lytle highlighted the evolving expectations regarding engineers, moving away from output to outcomes. He outlined four pillars that enable organisations to track and optimise value delivery.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ctocraftcon03.jpg&quot; alt=&quot;CTO Craft Con&quot; title=&quot;CTO Craft Con&quot; /&gt;&lt;/p&gt;

&lt;p&gt;He also shared practical examples of useful measures, including measures to avoid, such as traditional volume-based metrics (e.g., lines of code written, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ctocraftcon04.jpg&quot; alt=&quot;CTO Craft Con&quot; title=&quot;CTO Craft Con&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Katja Obring focused on “glue work”, which is the hidden and commonly under-recognised work that occurs across teams. This work, although not at the top of any priority list, can be business-critical and therefore, must be managed appropriately.&lt;/p&gt;

&lt;p&gt;Katja positioned that “glue work” must be made visible and prioritised alongside other key initiatives and the individuals delivering these essential tasks have the relevant sponsorship to succeed and are openly recognised. For example, ensuring “glue work” is fairly distributed, avoiding extreme delegation to a small group of individuals.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ctocraftcon05.jpg&quot; alt=&quot;CTO Craft Con&quot; title=&quot;CTO Craft Con&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In the video below, Katja presents on this topic.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/M6eiGj-uMOE?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Pat Kua covered the many “archetypes” of a CTO, including engineering-centric, strategic-centric and operational-centric, etc. He challenged the audience to self-appraise, looking to understand personal ambition and perception, alongside what the business may require.&lt;/p&gt;

&lt;p&gt;This is a topic I have personally explored over the years, which I covered in my article “&lt;a href=&quot;/2018/09/23/cto/&quot;&gt;CTO&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;Understanding the archetype of the CTO is important, especially for any aspiring CTO. There is no “good” or “bad” archetype. However, to ensure success, it must align and support the specific business outcomes. For example, if a business is heavily focused on a strategic outcome, selecting an operational-centric CTO could become a point of friction and frustration, reducing the probability of success.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ctocraftcon06.jpg&quot; alt=&quot;CTO Craft Con&quot; title=&quot;CTO Craft Con&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, CTO Craft Con was a great event, with a diverse and inclusive community. If you are a current/future CTO or technology leader, I highly recommend checking it out!&lt;/p&gt;
</description>
        <pubDate>Tue, 11 Mar 2025 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2025/03/11/CTO-Craft-Con/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/03/11/CTO-Craft-Con/</guid>
      </item>
    
      <item>
        <title>Linear</title>
        <description>&lt;p&gt;The Product Operating Model, by the &lt;a href=&quot;https://www.svpg.com/&quot;&gt;Silicon Valley Product Group&lt;/a&gt;, is a conceptual model, not a methodology, process or framework. It is about moving from output to achieving outcomes, following a set of product-first principles. These principles focus on ensuring any product is valuable, viable, usable, and feasible.&lt;/p&gt;

&lt;p&gt;I have previously written about the Product Operating Model across four articles, including some details regarding my business transition.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/20/Product-Operating-Model/&quot;&gt;Product Operating Model&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/22/Product-Operating-Model-Principles/&quot;&gt;Product Operating Model Principles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/24/product-operating-model-roles/&quot;&gt;Product Operating Model Roles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/02/10/Product-Operating-Model-Transition/&quot;&gt;Product Operating Model Transition&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://linear.app/&quot;&gt;Linear&lt;/a&gt; is a purpose-built tool for planning and building products. Therefore, it is a great companion for any business embracing the Product Operating Model, specifically the product-first principles.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linear01.jpg&quot; alt=&quot;Linear&quot; title=&quot;Linear&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Linear is similar to &lt;a href=&quot;https://www.atlassian.com/software/jira&quot;&gt;Atlassian Jira&lt;/a&gt;. However, unlike Jira, which over the years has grown in scope and complexity, Linear is very streamlined and highly opinionated.&lt;/p&gt;

&lt;p&gt;Although this may seem restrictive, forcing standardisation unlocks quality, speed, agility and scale. Tools that offer greater flexibility require incredible discipline to manage at scale, usually resulting in chaos that commonly impacts quality and speed.&lt;/p&gt;

&lt;p&gt;I would recommend reviewing “&lt;a href=&quot;https://linear.app/method&quot;&gt;The Linear Method&lt;/a&gt;”, which outlines their philosophy for building quality products.&lt;/p&gt;

&lt;p&gt;Getting started with Linear is fairly simple and the team have produced some great &lt;a href=&quot;https://linear.app/docs/conceptual-model&quot;&gt;documentation&lt;/a&gt;, which I would highly recommend reviewing. However, I have captured the key concepts below, including some input regarding our setup.&lt;/p&gt;

&lt;h3 id=&quot;workspace&quot;&gt;Workspace&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;A Linear Workspace is a container for all Issues, teams and other concepts relating to an individual business.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;teams&quot;&gt;Teams&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;A Workspace can have one or many Teams, including nested Teams. Teams typically represent groups of people who work together frequently.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;In our instance, a Team is a Product Team. For example, the “Web” Product Team. In a perfect world, we would have root Teams as “Product Groups” and an individual nested Team for each specific “Product Team”. For example, Customer (Product Group) &amp;gt; Web (Product Team). However, the concept of a nested Team is new and has some limitations (you cannot import to a nested Team). Teams can be individually configured or inherit standard settings from a root Team.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;issues&quot;&gt;Issues&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The most basic concept in Linear is the Issue. Most other concepts in Linear are either associated with Issues, or designed to manage Issues.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;An Issue represents a task described in simple language. Each Issue must belong to a single Team, and have a unique identifier, for example, “FARM-123”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Issues are required to have a title and status, which makes the creation of an Issue very fast. To learn more about Issues, I would recommend reviewing the article “&lt;a href=&quot;https://linear.app/method/write-issues-not-user-stories&quot;&gt;Write issues not user stories&lt;/a&gt;”.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;workflows&quot;&gt;Workflows&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;As Issues progress, they move through a Workflow, which is a group of ordered Issue statuses defined per team. This is where integrations with tools such as &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt; become critical, automating the progress based on the development itself, ensuring information is timely and accurate.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;projects&quot;&gt;Projects&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Projects group Issues towards a specific, time-bound deliverable, like launching a new feature. Projects have their own pages that include all Issues related to a Project, as well as details, graphs, etc. Projects can be shared across multiple teams.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;milestones&quot;&gt;Milestones&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Milestones are a concept used to further organise Issues inside an individual Project. For each Project, Milestones represent meaningful stages of completion for that Project, including the associated Issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;cycles&quot;&gt;Cycles&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Cycles are similar to sprints and prioritise a set of Issues during a specific period. Cycles are automated, with a start date and duration, which will be repeated based on the specified cadence. Cycles do not end in a release, meaning Issues not completed during a Cycle roll over to the next Cycle.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;initiatives&quot;&gt;Initiatives&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Initiatives help organise Projects and align them to business essential wins (business priorities). This enables high-level planning across multiple Projects and longer durations, whilst providing a simplified view for leadership to track holistic progress.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To get started with Linear, &lt;a href=&quot;https://linear.app/pricing&quot;&gt;head over to their website and sign up for their “Free” plan&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Wed, 05 Mar 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/03/05/Linear/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/03/05/Linear/</guid>
      </item>
    
      <item>
        <title>Browser Use</title>
        <description>&lt;p&gt;In my article “&lt;a href=&quot;/2025/01/06/RPA-RIP/&quot;&gt;RPA RIP&lt;/a&gt;”, I outlined my concerns regarding the overuse of traditional Robotic Process Automation (RPA). As an alternative, I positioned API-centric automation, combined with Generative AI to create “intelligent agents” (also known as Agentic AI).&lt;/p&gt;

&lt;p&gt;As documented over a series of articles (the latest being “&lt;a href=&quot;/2024/12/16/Agentic-AI/&amp;quot;&quot;&gt;Agentic AI&lt;/a&gt;, my team has developed and scaled a multi-model, multi-modal Generative AI framework for business, which primarily aims to accelerate productivity by streamlining common tasks.&lt;/p&gt;

&lt;p&gt;Last year, &lt;a href=&quot;/2024/12/16/Agentic-AI/&quot;&gt;we launched a new feature known as “Workflows”&lt;/a&gt; which allows a user to declaratively (no code or specialist knowledge required) create chained events using pre-approved components. These events can be triggered in real time, promoting experimentation and continuous improvement through iteration.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/agenticai03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/agenticai03.jpg&quot; alt=&quot;Agentic AI&quot; title=&quot;Agentic AI&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These Workflows focus on API-centric interactions, either as an input or an output. For example, taking an input event from a user or signal to trigger an interaction with a system of record, such as SAP or Workday.&lt;/p&gt;

&lt;p&gt;In recent months, we have enhanced this capability with “Deep Research”, leveraging reasoning models (e.g., &lt;a href=&quot;https://openai.com/index/openai-o3-mini/&quot;&gt;OpenAI o3&lt;/a&gt;) to construct more complicated workflows that are dynamically compiled (not pre-determined scripts).&lt;/p&gt;

&lt;p&gt;We believe these Agentic AI capabilities will trigger the next wave of innovation regarding the use of Generative AI, further increasing the overall return on investment.&lt;/p&gt;

&lt;p&gt;However, not every system, especially in an enterprise business, is API-centric. Interacting and/or automating these legacy systems can be a challenge. This is where traditional RPA has historically proven valuable, as it can simulate user interactions via the user interface itself.&lt;/p&gt;

&lt;p&gt;Unfortunately, this approach is very brittle as it relies upon pre-determined scripts that can not adapt to change.&lt;/p&gt;

&lt;p&gt;Therefore, we have been testing “&lt;a href=&quot;https://browser-use.com/&quot;&gt;Browser Use&lt;/a&gt;”, which is an open-source project, backed by &lt;a href=&quot;https://www.ycombinator.com/&quot;&gt;Y Combinator&lt;/a&gt;, that connects AI Agents to the browser. This opens the door to browser automation (no direct API required), without the need for pre-determined scripts.&lt;/p&gt;

&lt;p&gt;In short, Browser Use accepts input from the user as a standard prompt and then leverages a language model to plan and execute the request in real time.&lt;/p&gt;

&lt;p&gt;The video below is a short demonstration of Browser Use finding and approving a pull request within &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/eRid9irH0sA?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;As part of this demonstration, Browser Use was not given any context regarding how to complete the task or insight into the GitHub website. It executed the user request by navigating the user interface organically, comparable to a human interaction.&lt;/p&gt;

&lt;p&gt;The results of our testing have been surprisingly good, especially considering the relative immaturity of the project. However, it should be noted that the complexity of the task being requested and the specific language model being used can have a significant impact on the success of the process.&lt;/p&gt;

&lt;p&gt;In addition, as the process is not pre-determined, the same input can result in different (inconsistent) results. Therefore, using these capabilities at scale in production would likely require robust grounding and thorough testing.&lt;/p&gt;

&lt;p&gt;With that said, Browser Use does boast high levels of accuracy compared to other options, including “&lt;a href=&quot;https://openai.com/index/introducing-operator/&quot;&gt;Operator&lt;/a&gt;” from OpenAI, which currently costs £200 per month to use.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/browseruse01.jpg&quot; alt=&quot;Browser Uwe&quot; title=&quot;Browser Use&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Browser Use highlight the following features on their website. However, I would recommend reviewing their &lt;a href=&quot;https://docs.browser-use.com/introduction&quot;&gt;documentation&lt;/a&gt; for a more detailed description of the capabilities.&lt;/p&gt;

&lt;h4 id=&quot;vision--html-extraction&quot;&gt;Vision + HTML Extraction&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Combines visual understanding with HTML structure extraction for comprehensive web interaction.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;multi-tab-management&quot;&gt;Multi-tab Management&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Automatically handles multiple browser tabs for complex workflows and parallel processing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;element-tracking&quot;&gt;Element Tracking&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Extracts clicked elements XPaths and repeats exact LLM actions for consistent automation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;custom-actions&quot;&gt;Custom Actions&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Add your own actions like saving files, database operations, notifications, or human input handling.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;self-correcting&quot;&gt;Self-correcting&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Intelligent error handling and automatic recovery for robust automation workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;any-llm-support&quot;&gt;Any LLM Support&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Compatible with all LangChain LLMs including GPT-4, Claude 3, and Llama 2.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As Agentic AI gains momentum, I expect to see a lot of browser automation capabilities appear on the market. However, I believe Browser Use has emerged as an early favourite, achieving 40k stars on &lt;a href=&quot;https://github.com/browser-use/browser-use&quot;&gt;GitHub&lt;/a&gt; in three months. They also have a strong community (open source) and great backing from established investors (Y Combinator).&lt;/p&gt;

&lt;p&gt;Overall, the best form of automation is still programmatically defined, using standard APIs. However, knowing that this is not viable for all scenarios, especially in enterprise businesses, I am excited to see modern alternatives becoming available.&lt;/p&gt;
</description>
        <pubDate>Fri, 21 Feb 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/02/21/Browser-Use/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/02/21/Browser-Use/</guid>
      </item>
    
      <item>
        <title>Microsoft Majorana 1</title>
        <description>&lt;p&gt;In December, I published the article “&lt;a href=&quot;/2024/12/09/Google-Willow/&quot;&gt;Google Willow&lt;/a&gt;”, covering Google’s recent Quantum Computing announcement.&lt;/p&gt;

&lt;p&gt;I started researching Quantum Computing in 2015, supported by an engagement with IBM to understand the potential for life sciences, specifically drug discovery.&lt;/p&gt;

&lt;p&gt;Over the years, I have written a few articles covering Quantum Computing, which provide a good foundation for anyone interested in learning more about the topic.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/12/10/quantum-computing/&quot;&gt;Quantum Computing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/12/18/quantum-advantage/&quot;&gt;Quantum Advantage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/07/19/quantum-problems/&quot;&gt;Quantum Problems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/12/09/Google-Willow/&quot;&gt;Google Willow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Within the mainstream media, Quantum Computing had gone a little quiet.&lt;/p&gt;

&lt;p&gt;Therefore, the Google Willow announcement was a welcome update and a positive sign that progress is still being made. As a reminder, Google Willow demonstrated the ability to reduce errors exponentially as quantum processors scale up using more qubits. This is a key challenge in quantum error correction.&lt;/p&gt;

&lt;p&gt;Earlier today, &lt;a href=&quot;https://news.microsoft.com/source/features/innovation/microsofts-majorana-1-chip-carves-new-path-for-quantum-computing/&quot;&gt;Microsoft announced Majorana 1&lt;/a&gt;, positioned as the first quantum chip powered by a new Topological Core architecture.&lt;/p&gt;

&lt;p&gt;The video below from Microsoft summarises the announcement.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/wSHmygPQukQ?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;A topological qubit is a special kind of qubit, which has historically proven more difficult to create than regular qubits.&lt;/p&gt;

&lt;p&gt;In theory, a topological qubit is more resilient to decoherence than regular qubits, providing a robust foundation. If proven scalable, this improved reliability could deliver a significant advantage over regular qubits.&lt;/p&gt;

&lt;p&gt;With that said, although this is a milestone for topological quantum computing, it is still a long way behind non-topological approaches.&lt;/p&gt;

&lt;p&gt;To help understand the impact of this announcement, I would recommend reading the &lt;a href=&quot;https://scottaaronson.blog/?p=8669&quot;&gt;reaction&lt;/a&gt; from Scott Aaronson (Acclaimed Theoretical Computer Scientist).&lt;/p&gt;

&lt;p&gt;As with Artificial Intelligence, it would appear Google and Microsoft are taking a leadership position in quantum computing. It will be fascinating to see which company (and approach) will rule supreme.&lt;/p&gt;
</description>
        <pubDate>Wed, 19 Feb 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/02/19/Microsoft-Majorana-1/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/02/19/Microsoft-Majorana-1/</guid>
      </item>
    
      <item>
        <title>AHNTIE 2025</title>
        <description>&lt;p&gt;Earlier this week, I attended the &lt;a href=&quot;https://www.animalhealthevent.com/events/animal-health-europe&quot; title=&quot;https://www.animalhealthevent.com/events/animal-health-europe&quot;&gt;Animal Health, Nutrition and Technology Innovation Europe (AHNTIE)&lt;/a&gt; conference in London.&lt;/p&gt;

&lt;p&gt;This multi-day event includes over 800 attendees from across the animal health industry, covering enterprise businesses, service providers, investors, academics, and over 250 startups.&lt;/p&gt;

&lt;p&gt;My company was the headline sponsor, with our CEO Jeff Simmons delivering the keynote as part of a fireside chat.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/ahntie01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/ahntie01.jpg&quot; alt=&quot;AHNTIE 2025&quot; title=&quot;AHNTIE 2025&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a technologist, it was interesting to see the impact of Artificial Intelligence (AI), which was everywhere. Every speaker and conversation referenced AI, with opportunities covering the entire value chain from drug discovery to customer engagement.&lt;/p&gt;

&lt;p&gt;Although exciting, it was evident that the animal health industry is still very immature in this area, with clear gaps in understanding and/or a lack of clarity regarding the specifics of how AI could/should be applied.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/ahntie02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/ahntie02.jpg&quot; alt=&quot;AHNTIE 2025&quot; title=&quot;AHNTIE 2025&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With that said, it is clear the “mainstream media buzz” has captured the imagination of the industry, which certainly presents an opportunity for technologists to build on this momentum.&lt;/p&gt;

&lt;p&gt;Due to the intensity and energy of the event, it is not possible to provide a comprehensive overview. Therefore, I have chosen to summarise a few key messages that resonated strongly with me.&lt;/p&gt;

&lt;h4 id=&quot;key-messages&quot;&gt;Key Messages&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The animal health industry is very robust and resilient. It has the potential for sustained year-on-year growth, with a low risk of a “crash”, as seen by other more volatile industries (e.g., &lt;a href=&quot;https://www.forbes.com/sites/greatspeculations/2025/02/03/deepseeks-ai-shockwave-hits-nvidia-hard-wiping-out-billions/&quot;&gt;DeepSeek and NVIDIA&lt;/a&gt;).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;In 2013, standalone animal health companies served 37% of the industry. In 2025, the market has shifted dramatically, with standalone animal health companies representing 72%.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/ahntie03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/ahntie03.jpg&quot; alt=&quot;AHNTIE 2025&quot; title=&quot;AHNTIE 2025&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;We continue to see the humanisation of pets, where animals started outside, migrating inside, and are now in our beds. Pets are increasingly treated as a member of the family.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Unlike human health, across pets and farms, customer loyalty is very strong, with examples of 50-year-old products continuing to sell.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Pets are living longer, specifically dogs and cats. This is great, but it creates new challenges for old-age care.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The veterinary industry is under increasing pressure and overworked (commonly 3 full-time employees per vet practice). Veterinarians desire new ways of working to meet demand. Excitement that Artificial Intelligence (AI) could increase efficiency and effectiveness, which some Veterinarians consider a higher priority than new drug products.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Success in the animal health industry is driven by science and innovation. Human health breakthroughs remain a good indicator for future animal health innovation. For example, the adoption and impact of Monoclonal Antibodies (mAbs) in human health is approximately 25%, compared to 5% in animal health. This highlights a clear growth opportunity with a proven path to success. With animal health, Monoclonal Antibodies (mAbs) currently represent $1.2B of the $41B core market.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/ahntie04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/ahntie04.jpg&quot; alt=&quot;AHNTIE 2025&quot; title=&quot;AHNTIE 2025&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The use of animal protein continues to be scrutinised. However, animal protein demand continues to grow.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;66% of individuals under 30 care about animal welfare and environmental impact. Therefore, products focused on sustainability remain highly relevant, with climate-neutral farming an essential goal.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Similar to other industries, we are seeing an attack on science and innovation, where facts are distorted and/or ignored by small, but vocal social groups. Animal health is a science-based industry. Therefore, the industry must stay unified to educate, promote science and protect innovation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Those who raise and care for animals are naturally passionate and curious. This passion must be considered when entering the market, with a focus on feeling connected and/or being part of something bigger.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Pet owner spending is increasing, with growth across “feel-good” items, such as toys, treats and technology.  In the US, the younger the pet owner, the more they spend (which is great for the industry).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/ahntie05.jpg&quot;&gt;&lt;img src=&quot;/images/posts/ahntie05.jpg&quot; alt=&quot;AHNTIE 2025&quot; title=&quot;AHNTIE 2025&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Since 2020, the cost of dog ownership in the US has been rising, with vet services +56%, medications +34%, food and treats +46% and grooming/kennels +52%. The cost of cat ownership in the US has not increased at the same rate but is still +17% overall.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Concerningly, the use of vet services is trending down (approximately 1.9% in the US). With the average time between visits being 86 days or 112 days excluding medication collection.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;$100M products within animal health are classified as a “blockbuster”, with 15 blockbusters currently on the market. We are starting to see the first $1B brands (a family of complimentary products).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Science is the ultimate disruptor within animal health, with tremendous opportunities to leverage computational science and Artificial Intelligence (AI) to accelerate the drug discovery process. This trend increases the importance of gaining access to expertise and since 2020 datasets, such as genomics data.&lt;/p&gt;

    &lt;p&gt;&lt;a href=&quot;/images/posts/ahntie06.jpg&quot;&gt;&lt;img src=&quot;/images/posts/ahntie06.jpg&quot; alt=&quot;AHNTIE 2025&quot; title=&quot;AHNTIE 2025&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, it was great to be part of the event and to interact with this passionate community!&lt;/p&gt;

&lt;p&gt;As I look to the future, I believe the &lt;a href=&quot;https://sc.group/&quot;&gt;Stonehaven Cozmix Group&lt;/a&gt; summarised the near-term opportunities well, covering the following areas across pet and farm.&lt;/p&gt;

&lt;h4 id=&quot;pet&quot;&gt;Pet:&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;Monoclonal Antibodies (mAbs)&lt;/li&gt;
  &lt;li&gt;Adeno-associated Virus Gene Therapy (AAV)&lt;/li&gt;
  &lt;li&gt;CAR-T Cell Therapy&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;farm&quot;&gt;Farm:&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;One Health (Epidemics, Antimicrobial Resistance, Antiparasitic Resistance)&lt;/li&gt;
  &lt;li&gt;Sustainability (Microbiome on the Rise)&lt;/li&gt;
  &lt;li&gt;Scarcity of Skilled Labour&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The animal health industry tends to be slower moving, with a focus on micro-innovation vs. revolutions. However, there is a growing appreciation for how technology can be applied across the value chain to deliver compelling outcomes, covering drug discovery, customer engagement and operational effectiveness.&lt;/p&gt;

&lt;p&gt;As a result, it is an exciting time to be a technologist working in the animal health industry.&lt;/p&gt;

&lt;p&gt;I am excited to see the next wave of breakthrough innovation hitting the market, delivering value to those who raise and care for animals around the world.&lt;/p&gt;
</description>
        <pubDate>Sat, 15 Feb 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/02/15/AHNTIE-2025/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/02/15/AHNTIE-2025/</guid>
      </item>
    
      <item>
        <title>Product Operating Model Transition</title>
        <description>&lt;p&gt;In my previous three articles, I outlined the Product Operating Model, as defined by the &lt;a href=&quot;https://www.svpg.com/&quot;&gt;Silicon Valley Product Group (SVPG)&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/20/Product-Operating-Model/&quot;&gt;Product Operating Model&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/22/Product-Operating-Model-Principles/&quot;&gt;Product Operating Model Principles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/24/product-operating-model-roles/&quot;&gt;Product Operating Model Roles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a reminder, the Product Operating Model is a conceptual model, not a methodology, process or framework. It is about moving from output to achieving outcomes, following a set of &lt;a href=&quot;/2024/08/22/Product-Operating-Model-Principles/&quot;&gt;product-first principles&lt;/a&gt;. These principles focus on ensuring any product is valuable, viable, usable, and feasible.&lt;/p&gt;

&lt;p&gt;The Silicon Valley Product Group (SVPG) has published three books on the Product Operating Model. Specificlly, &lt;a href=&quot;https://www.svpg.com/books/inspired-how-to-create-tech-products-customers-love-2nd-edition/&quot;&gt;INSPIRED&lt;/a&gt;, &lt;a href=&quot;https://www.svpg.com/books/empowered-ordinary-people-extraordinary-products/&quot;&gt;EMPOWERED&lt;/a&gt;, and &lt;a href=&quot;https://www.svpg.com/books/transformed-moving-to-the-product-operating-model/&quot;&gt;TRANSFORMED&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;These books are an incredible resource. However, the case studies referenced focus on digital-first / technology-first companies, specifically Netflix, Spotify, etc. These are certainly fascinating examples but do not represent the majority of businesses.&lt;/p&gt;

&lt;p&gt;For example, Spotify is a 19-year-old company born in the Internet era. It predominantly produces digital (software) products and has minimal regulatory oversight.&lt;/p&gt;

&lt;p&gt;I have spent my career working at two life science companies, one that is 150 years old and another that is 70 years old. These companies have a complex value chain, predominately producing drug products (not digital products), and operating within a highly regulated industry with strict compliance controls.&lt;/p&gt;

&lt;p&gt;In addition, the years of heritage and legacy create inertia, incurring human and technical debt that can act as a barrier to change.&lt;/p&gt;

&lt;p&gt;Therefore, the comparisons with Netflix and/or Spotify lack credibility.&lt;/p&gt;

&lt;p&gt;With this in mind, it would be easy to dismiss the Product Operating Model as not relevant for any business that is not “digital native”. However, in my opinion, the product-first principles are highly applicable, helping any business (regardless of industry) to focus on what matters most, the outcome and customer value.&lt;/p&gt;

&lt;p&gt;In 2020, we started our journey towards the Product Operating Model. Therefore, I thought I would share more detail regarding our transition approach.&lt;/p&gt;

&lt;h3 id=&quot;product-operating-model-transition&quot;&gt;Product Operating Model Transition&lt;/h3&gt;

&lt;p&gt;In a perfect world, any transition to a Product Operating Model would be sponsored by the CEO and include active engagement from the Executive Committee.&lt;/p&gt;

&lt;p&gt;Unfortunately, convincing a CEO to transition the business operating model is no easy feat, usually requiring an intervention that forces the change. For example, a change in leadership or a market disruption.&lt;/p&gt;

&lt;p&gt;As a result, our approach was to initiate the change from IT. There is logic starting with IT, acknowledging that almost every industry and business is increasingly reliant on technology and data to differentiate and drive value.&lt;/p&gt;

&lt;p&gt;It should be noted, that this approach is most viable when IT is already established as a trusted partner with a focus on value generation. In some businesses, IT is exclusively positioned as a support function, which would likely act as a barrier when attempting to transition to the Product Operating Model.&lt;/p&gt;

&lt;p&gt;A core aspect of the Product Operating Model is the &lt;a href=&quot;/2024/08/22/Product-Operating-Model-Principles/&quot;&gt;product-first principles&lt;/a&gt;. These twenty principles place an emphasis on value, viability, usability, and feasibility, which are highly relevant to ensure a successful outcome.&lt;/p&gt;

&lt;p&gt;The Product Operating Model and the product-first principles are best positioned when there is a “greenfield” problem to be solved. This means there is no predetermined solution defined and the outcome is within the control of the product team (minimal restrictive dependencies). For example, within my industry, a big “problem” is how to accelerate the drug discovery process.&lt;/p&gt;

&lt;p&gt;In this scenario, a Product Team, consisting of a Product Manager, Product Designer and Technical Lead (backed by engineers) are empowered to solve the problem, starting with Product Discovery, before transitioning to Product Delivery. This team is durable and therefore persists through the duration of the product lifecycle.&lt;/p&gt;

&lt;p&gt;This scenario follows the exact approach as defined by the Product Operating Model. I have also written about the specific roles/responsibilities in the article “&lt;a href=&quot;/2024/08/24/product-operating-model-roles/&quot;&gt;Product Operating Model Roles&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;The challenge is that not every problem is “greenfield”. For example, some problems have predetermined solutions (maybe due to existing investments) or the product team do not have complete control to shape/influence the outcome (maybe due to a regulatory constraint).&lt;/p&gt;

&lt;p&gt;In addition, recognising the wider role of IT, there are many scenarios where the problem has already been solved and therefore, there is no value in discovering a new solution. For example, commodity capabilities (e.g., Hosting, Telephony) and/or highly industrialised processes (e.g., Human Resource Planning).&lt;/p&gt;

&lt;p&gt;These scenarios are classified as “enablement”, where a product team is still assigned, however, the primary mission of the team is to deliver a solution that is scalable, secure, reliable and efficient. As a result, the Product Designer, Technical Lead and Engineers are dynamically assigned (not durable), based on corporate priorities and/or capacity. This helps to manage total headcount and capacity planning.&lt;/p&gt;

&lt;p&gt;The Silicon Valley Product Group (SVPG) refer to this type of team as “maintenance”. However, in my opinion, the word “maintenance” undervalues the teams, as their contributions are critical, commonly providing the foundation for other product teams to build upon. Hence, I prefer the word “enablement”, which more accurately describes the value proposition.&lt;/p&gt;

&lt;p&gt;Regardless of the team outcome, they all follow the product-first principles, promoting consistent solutions. This approach recognises that every team has a problem to solve, customers to understand/delight, and risks and constraints to manage.&lt;/p&gt;

&lt;p&gt;The key is to avoid bifurcation (bi-modal) operation, which can unintentionally relegate the value of certain teams, whilst also creating confusion and friction.&lt;/p&gt;

&lt;p&gt;With this context, IT is organised into product teams, logically grouped under Product Leaders (that focus on people enablement and provide strategic context). Many of these product teams are durable (persistent) and focused on the “big problems”, aligned with the business strategy. The product team topology will be different for every business and it is not fixed, dynamically evolving based on the business priorities.&lt;/p&gt;

&lt;p&gt;It is my belief that this model, adapted from the Product Operating Model, following the product-first principles, provides a versatile foundation that promotes continuous innovation and delivery excellence, helping to ensure that every solution achieves the desired outcome.&lt;/p&gt;
</description>
        <pubDate>Mon, 10 Feb 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/02/10/Product-Operating-Model-Transition/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/02/10/Product-Operating-Model-Transition/</guid>
      </item>
    
      <item>
        <title>PC Build Performance</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Following a disappointing launch by NVIDIA, I was fortunate enough to be one of the few who procured an &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/graphics-cards/50-series/rtx-5090/&quot;&gt;NVIDIA GeForce RTX 5090&lt;/a&gt; from the &lt;a href=&quot;https://www.nvidia.com/gtc/&quot;&gt;NVIDIA GPU Technology Conference (GTC)&lt;/a&gt; for under MSRP (£1688.15). More details can be found in the post “&lt;a href=&quot;/2025/03/24/NVIDIA-GeForce-RTX-5090/&quot;&gt;NVIDIA GeForce RTX 5090&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;Last week, &lt;a href=&quot;/2025/01/18/GeForce-RTX-5090-Build/&quot;&gt;I purchased the components for my custom-built PC upgrade&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This was my first major upgrade since 2021, in preparation for the launch of the &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/graphics-cards/50-series/rtx-5090/&quot;&gt;NVIDIA GeForce RTX 5090&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unfortunately, the NVIDIA GeForce RTX 50 series has had a very disappointing launch, with restrained availability worldwide, resulting in aggressive scalping that has pushed the prices up significantly. For example, the RRP of the NVIDIA GeForce RTX 5090 Founders Edition is £1939 but is currently being sold on eBay for £3,500 and beyond.&lt;/p&gt;

&lt;p&gt;In addition, those who did receive an NVIDIA GeForce RTX 5090 are facing some early adopter challenges, such as driver errors and (more concerningly) issues with the 12VHPWR power connector overheating and melting.&lt;/p&gt;

&lt;p&gt;This entire situation is frustrating and could have been easily avoided. I recognise that the consumer graphics card market represents only a tiny part of the NVIDIA business. However, considering their heritage, I wish they would treat their loyal customers with more respect.&lt;/p&gt;

&lt;p&gt;I refuse to pay over the RRP for a graphics card that is arguably already overpriced for the performance. Therefore, I will continue to use my NVIDIA GeForce RTX 3090 Founders Edition until the market stabilises.&lt;/p&gt;

&lt;p&gt;The specification of my current (soon-to-be old) PC can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X570 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 3950X 3.5GHz Base / 4.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance LPX DDR4 PC4-28800C18 3600MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 980 Pro M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e 3.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 3090 FE 24GB GDDR6x&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Fractal Torrent Compact&lt;/li&gt;
  &lt;li&gt;Samsung G95NC Odyssey Neo G9 57-inch Monitor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I purchased the following new components, retaining my existing graphics card, case, monitor and peripherals.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X870 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 9950X 4.3GHz Base / 5.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 G2 LBC CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance EXPO DDR5 PC5-48000C30 6000MHz RAM&lt;/li&gt;
  &lt;li&gt;2TB Crucial T705 M.2 PCI-e Gen5 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;Corsair HX1200i 1200W ‘80 Plus Platinum’ ATX PSU&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full details of the upgrade, including the rationale for each component, can be found in my previous article “&lt;a href=&quot;/2025/01/18/GeForce-RTX-5090-Build/&quot;&gt;GeForce RTX 5090 Build&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;I have now built the PC and can share some initial performance results. As previously stated, I am still using my old NVIDIA GeForce RTX 3090. Therefore, performance benefits targetting graphics-intensive workloads will be limited.&lt;/p&gt;

&lt;h3 id=&quot;build&quot;&gt;Build&lt;/h3&gt;

&lt;p&gt;The build process itself was very straightforward, with no notable issues. Over the years, I have built countless computers, but this was arguably the simplest ever.&lt;/p&gt;

&lt;p&gt;The only point of “tension” was the application of the thermal compound on the processor. I use &lt;a href=&quot;https://noctua.at/en/products/thermal-grease/nt-h2-3-5g&quot;&gt;Noctua NT-H2&lt;/a&gt;, which has proven to be highly performant and does not require any special preparation (no break-in or burn-in time).&lt;/p&gt;

&lt;p&gt;I follow the Noctua recommended approach for thermal compound application, specifically one larger dot in the centre, with four smaller dots at each edge. Recognising the unorthodox shape of the AMD Ryzen 9950X heat spreader, I also used the Noctua NA-TPG1 thermal paste guard.&lt;/p&gt;

&lt;p&gt;Finally, I tested the system prior to completing my cable tidy process (a mistake I have made in the past).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/pcbuildperformance01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/pcbuildperformance01.jpg&quot; alt=&quot;PC Build Performance&quot; title=&quot;PC Build Performance&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the hardware installed, I reset the BIOS to factory default, downloaded the latest Windows 11 ISO from Microsoft and triggered the setup process.&lt;/p&gt;

&lt;p&gt;Frustratingly, the Windows 11 ISO did not recognise the network devices (Ethernet or WiFi) during the setup. Due to the ridiculous and infuriating requirement for an Internet connection, I had to perform the bypass procedure.&lt;/p&gt;

&lt;p&gt;The bypass procedure is achieved by clicking “Shift + F10” during the Windows 11 setup process (which launches the command prompt) and typing ‘oobe\BypassNRO’. At this point, the setup process will restart, providing an option to skip network connectivity.&lt;/p&gt;

&lt;p&gt;Over the past few years, I have become increasingly disappointed by Windows as an operating system, which has quickly become a vehicle for Microsoft to publish advertisements, attempting to sell their services such as Microsoft 365, Copilot and GamePass.&lt;/p&gt;

&lt;p&gt;I would love to switch to Linux full-time. However, unfortunately, there are still too many blockers that would impact my common workloads (e.g., Microsoft Office Suite, Games with Anti-Cheat, etc.)&lt;/p&gt;

&lt;p&gt;With Windows 11 finally installed and updated, I confirmed system stability, before updating and configuring the BIOS for optimal settings. I enabled the AMD Extended Profiles for Overclocking (AMD EXPO) and AMD Precision Boost. &lt;/p&gt;

&lt;p&gt;I plan to overclock the system using a combination of AMD Precision Boost and AMD Curve Optimiser. However, I prefer to test “default” performance and reliability before configuring more advanced settings.&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;The table below provides the results from a series of tests, highlighting the performance improvements over my old AMD Ryzen 9 3950X PC.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/pcbuildperformance02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/pcbuildperformance02.jpg&quot; alt=&quot;PC Build Performance&quot; title=&quot;PC Build Performance&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As expected, the jump from the AMD Ryzen 9 3950X to the AMD Ryzen 9 9950X is significant, covering single-threaded and multi-threaded workloads.&lt;/p&gt;

&lt;p&gt;The memory and storage results were also impressive, supported by the jump to DDR5 and the ridiculous performance of the Crucial T705 M.2 PCI-e Gen5 NVM-e SSD, delivering 14,500MB/s for sequential reads and 12,700MB/s for sequential writes.&lt;/p&gt;

&lt;p&gt;It should be noted, that these performance results (specifically the storage results) do not necessarily represent “real-world” increases.&lt;/p&gt;

&lt;p&gt;On average, at default settings, the upgrade has delivered a 93% performance increase for CPU/Memory focused tasks and 139% for storage focused tasks, which was above my expectations.&lt;/p&gt;

&lt;p&gt;In a future article, I will share more details regarding my configuration and start to explore AMD Precision Boost and AMD Curve Optimiser to unlock additional performance improvements.&lt;/p&gt;
</description>
        <pubDate>Sat, 25 Jan 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/01/25/PC-Build-Performance/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/01/25/PC-Build-Performance/</guid>
      </item>
    
      <item>
        <title>GeForce RTX 5090 Build</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Following a disappointing launch by NVIDIA, I was fortunate enough to be one of the few who procured an &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/graphics-cards/50-series/rtx-5090/&quot;&gt;NVIDIA GeForce RTX 5090&lt;/a&gt; from the &lt;a href=&quot;https://www.nvidia.com/gtc/&quot;&gt;NVIDIA GPU Technology Conference (GTC)&lt;/a&gt; for under MSRP (£1688.15). More details can be found in the post “&lt;a href=&quot;/2025/03/24/NVIDIA-GeForce-RTX-5090/&quot;&gt;NVIDIA GeForce RTX 5090&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;The last time I completed a major upgrade of my primary PC was in 2021, when &lt;a href=&quot;/2016/04/01/skylake-build/&quot;&gt;I switched to an AMD 3950X&lt;/a&gt; from an &lt;a href=&quot;/2016/04/01/skylake-build/&quot;&gt;Intel Core i7-6700K&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I documented the build process and subsequent upgrades in the following four articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/01/26/ryzen-build/&quot;&gt;Ryzen Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/02/02/ryzen-build-update/&quot;&gt;Ryzen Build - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/02/08/geforce-rtx-3090/&quot;&gt;GeForce RTX 3090&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/10/04/samsung-g95nc/&quot;&gt;Samsung G95NC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full specification of my current (soon-to-be old) PC can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X570 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 3950X 3.5GHz Base / 4.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance LPX DDR4 PC4-28800C18 3600MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 980 Pro M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e 3.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 3090 FE 24GB GDDR6X&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Fractal Torrent Compact&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This PC has served me extremely well over the past four years, delivering great performance across a wide range of workloads.&lt;/p&gt;

&lt;p&gt;The use of high-performance parts also allowed me to skip several generational upgrades, specifically the AMD Ryzen 5000 and 7000 series (Zen 4), as well as the NVIDIA GeForce RTX 40 series.&lt;/p&gt;

&lt;p&gt;However, at CES 2025, NVIDIA announced the highly anticipated &lt;a href=&quot;https://www.nvidia.com/en-us/geforce/graphics-cards/50-series/&quot;&gt;GeForce RTX 50 series&lt;/a&gt; of consumer graphics cards. Specifically, the GeForce RTX 5090, based on the NVIDIA Blackwell architecture.&lt;/p&gt;

&lt;p&gt;Although not yet available the specification of the GeForce RTX 5090 guarantees a significant performance increase over my GeForce RTX 3090. This is thanks to the increase in CUDA cores, high clock speeds, and faster memory, as well as the introduction of new features such as 4th Generation RT cores, 5th Generation Tensor cores and DLSS4.&lt;/p&gt;

&lt;p&gt;The combination of improved specification and new features, was enough to spark my interest, resulting in the decision to upgrade my entire system.&lt;/p&gt;

&lt;p&gt;This article outlines the details of the upgrade, including the rationale behind the decisions.&lt;/p&gt;

&lt;p&gt;Working in IT, I utilise my PC for a wide range of different workloads, including productivity, collaboration, software development, local artificial intelligence, photo editing, video editing, video effects, virtual labs, gaming and game development.&lt;/p&gt;

&lt;p&gt;Similar to my last build, these requirements demand high-performance components and my goal is to design a balanced system that will perform well in all scenarios.&lt;/p&gt;

&lt;p&gt;As a result, I have selected the following hardware. Any hardware not listed (e.g., case) will be reused from my current build.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X870 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 9950X 4.3GHz Base / 5.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 G2 LBC CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance EXPO DDR5 PC5-48000C30 6000MHz RAM&lt;/li&gt;
  &lt;li&gt;2TB Crucial T705 M.2 PCI-e Gen5 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;Corsair HX1200i 1200W ‘80 Plus Platinum’ ATX PSU&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 5090 FE 32GB GDDR7&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;motherboard&quot;&gt;Motherboard&lt;/h3&gt;

&lt;p&gt;My previous MSI MAG X570 Tomahawk WiFi had served me well, delivering reliability and high performance, even when overclocked. I was also impressed by the price/feature ratio, build quality, and BIOS support, which all compare favourably to the competition (e.g., Asus, etc.).&lt;/p&gt;

&lt;p&gt;The latest chipsets from AMD are the X870 and X870E. On paper, these chipsets are a little underwhelming, as they are iterations of the previous B650E and X670 chipsets, with the main difference being the addition of USB 4 (40Gb/s). With that said, iteration is not always bad, hopefully allowing the AMD product team to focus on refinement.&lt;/p&gt;

&lt;p&gt;Unfortunately, since I last purchased a motherboard, the prices have increased significantly, with X870 motherboards ranging from £200 to £600.&lt;/p&gt;

&lt;p&gt;I selected the &lt;a href=&quot;https://www.msi.com/Motherboard/MAG-X870-TOMAHAWK-WIFI&quot;&gt;MSI MAG X870 Tomahawk WiFi&lt;/a&gt;, which I believe delivers the best price/feature ratio.&lt;/p&gt;

&lt;p&gt;The MSI MAG X870 Tomahawk WiFi is an X870 chipset, not an X870E. The X870E is a dual-chip architecture (incorporating two Promontory21 chipsets), which delivers additional PCI-e lanes and USB I/O. However, the dual-chip architecture also adds complexity, heat and cost. Therefore, unless you have a specific purpose for the PCI-e lanes and/or USB I/O, the X870E is likely not worth the additional investment.&lt;/p&gt;

&lt;p&gt;Outlined below are the key features of the MSI MAG X870 Tomahawk WiFi motherboard.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;AMD X870 Chipset&lt;/li&gt;
  &lt;li&gt;14+2+1 Duet Rail Power System (14-phase, 80A Power Stages)&lt;/li&gt;
  &lt;li&gt;AM5 Socket&lt;/li&gt;
  &lt;li&gt;4x DDR5 UDIMM&lt;/li&gt;
  &lt;li&gt;1x PCIe Gen5 x16 (CPU)&lt;/li&gt;
  &lt;li&gt;1x PCIe Gen4 x4 (Chipset)&lt;/li&gt;
  &lt;li&gt;1x PCIe Gen3 x1 (Chipset)&lt;/li&gt;
  &lt;li&gt;2x M.2 Gen5 x4 (CPU)&lt;/li&gt;
  &lt;li&gt;1x M.2 Gen4 x4 (Chipset)&lt;/li&gt;
  &lt;li&gt;1x M.2 Gen4 x2 (Chipset)&lt;/li&gt;
  &lt;li&gt;4x SATA (6Gb/s)&lt;/li&gt;
  &lt;li&gt;2x USB 4 (40Gb/s)&lt;/li&gt;
  &lt;li&gt;1x USB 3.2 (20Gb/s)&lt;/li&gt;
  &lt;li&gt;3x USB 3.2 (10Gb/s)&lt;/li&gt;
  &lt;li&gt;7x USB 3.2 (5Gb/s)&lt;/li&gt;
  &lt;li&gt;8x USB 2.0&lt;/li&gt;
  &lt;li&gt;1x 5Gb/s LAN&lt;/li&gt;
  &lt;li&gt;WiFi 7&lt;/li&gt;
  &lt;li&gt;Bluetooth 5.4&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Needless to say, that is a lot of connectivity, which can be confusing. Therefore, I would recommend reviewing the &lt;a href=&quot;https://www.msi.com/Motherboard/MAG-X870-TOMAHAWK-WIFI/support#manual&quot;&gt;motherboard manual&lt;/a&gt;, specifically details regarding the bifurcation of the PCI-e lanes, which can limit/disable certain features based on the hardware installed (e.g., USB 4).&lt;/p&gt;

&lt;p&gt;To see how the MSI MAG X870 Tomahawk WiFi performs against the competition, I recommend reviewing the &lt;a href=&quot;https://www.techspot.com/review/2907-amd-x870-motherboards/&quot;&gt;TechSpot X870/X870E Motherboard Roundup&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The image below from TechSpot highlights the testing results of the MSI MAG X870 Tomahawk WiFi. As stated in their article, &lt;em&gt;“performance-wise, the Tomahawk excelled, averaging a clock speed of 5,110 MHz for a score of 2,306 points, one of the highest scores in our testing.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/geforcertx5090build01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/geforcertx5090build01.jpg&quot; alt=&quot;GeForce RTX 5090 Build&quot; title=&quot;GeForce RTX 5090 Build&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The image below shows the integrated rear I/O panel of the MSI MAG X870 Tomahawk WiFi. Note, the accessible Clear/Flash CMOS buttons, which can be very useful when tuning or overclocking a system.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/geforcertx5090build02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/geforcertx5090build02.jpg&quot; alt=&quot;GeForce RTX 5090 Build&quot; title=&quot;GeForce RTX 5090 Build&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At £279.98 (&lt;a href=&quot;https://www.scan.co.uk/products/msi-mag-x870-tomahawk-wifi-amd-x870-am5-ddr5-pcie-50-4x-m2-5g-wifi7-usb-40-usb-32-aplusc-a&quot;&gt;Scan&lt;/a&gt;) the MSI MAG X870 Tomahawk WiFi is not the cheapest X870 motherboard but based on my experience with MSI, will deliver a high quality, reliable foundation, with critically reviewed features and performance that rivals more expensive motherboards from Asus, Gigabyte, etc.&lt;/p&gt;

&lt;h3 id=&quot;processor-and-cooler&quot;&gt;Processor and Cooler&lt;/h3&gt;

&lt;p&gt;If I were building a PC specifically for gaming, I would select the new AMD Ryzen 9800X3D, which thanks to the second-generation AMD 3D V-Cache, delivers best-in-class gaming performance.&lt;/p&gt;

&lt;p&gt;With that said, the Ryzen 9800X3D is an eight-core, sixteen-thread processor, with a maximum boost clock of 5.2 GHz. Therefore, although the Ryzen 9800X3D is the gaming champion, it falls behind in productivity or specialist tasks (e.g., development, video editing) compared to processors with a higher core count and/or frequency.&lt;/p&gt;

&lt;p&gt;As a result, I have selected the AMD Ryzen 9 9950X, which is a sixteen-core, thirty-two-thread processor, with a maximum boost clock of 5.7 GHz. Although the AMD Ryzen 9 9950X received mixed critical reviews, this was mostly driven by inflated expectations associated with the Zen 5 architecture, which many had unrealistically hoped would deliver significant (&amp;gt; 30%) performance benefits over Zen 4.&lt;/p&gt;

&lt;p&gt;In my case, the AMD Ryzen 9 9950X delivers a massive performance increase over my current AMD Ryzen 9 3950X, which is based on the Zen 3 architecture. In addition, it successfully balances performance across a wide range of workloads, unlike the AMD Ryzen 9800X3D, which would compromise productivity.&lt;/p&gt;

&lt;p&gt;Arguably, I should wait for the recently announced AMD Ryzen 9950X3D to be released. However, I am not convinced by the benefits of 3D V-Cache for processors with dual Core Chiplet Dies (CCDs), specifically the AMD Ryzen 9900X/9950X.&lt;/p&gt;

&lt;p&gt;These processors only have a 3D V-Cache on one die, which requires the software (usually Microsoft Windows) to accurately schedule tasks to see the desired performance benefits.&lt;/p&gt;

&lt;p&gt;This additional complexity has been proven to cause issues, requiring more “human effort” to maximise performance across workloads. In addition, 3D V-Cache commands a price premium of approximately £200, making it a significant investment for questionable value.&lt;/p&gt;

&lt;p&gt;Finally, following recent discounts, the AMD Ryzen 9 9950X is currently the same price as the AMD Ryzen 9800X3D (approximately £529.99), making it cost-competitive.&lt;/p&gt;

&lt;p&gt;To manage the thermals of the AMD Ryzen 9 9950X, I have selected the Noctua NH-D15 G2 LBC CPU Cooler.&lt;/p&gt;

&lt;p&gt;This will be my third Noctua NH-D15 and I have always been impressed with the build quality and thermal results. The recent release of the NH-D15 G2 in theory delivers even better results, although I suspect the real-world difference will be minimal.&lt;/p&gt;

&lt;p&gt;Either way, outside of custom water cooling (which I have no desire to implement), I continue to put my trust in Noctua.&lt;/p&gt;

&lt;p&gt;I fully expect to be able to leverage AMD Precision Boost Overdrive (PBO) and Curve Optimiser to deliver a modest 24x7 overclock, whilst still maintaining acceptable thermals and noise.&lt;/p&gt;

&lt;h3 id=&quot;memory&quot;&gt;Memory&lt;/h3&gt;

&lt;p&gt;I do not have extreme overclocking expectations. However, I do plan to leverage AMD Extended Profiles for Overclocking (EXPO). To ensure system stability, AMD recommends a maximum of two DIMMs.&lt;/p&gt;

&lt;p&gt;As a result, I have selected 64GB (2x32GB) Corsair Vengeance DD5 PC5-48000C30 RAM, which is EXPO (AMD) configured, operating at 6000MHz with 30-36-36-76 timings.&lt;/p&gt;

&lt;p&gt;This is not the highest frequency memory, but my research indicates that 6000MHz/6400MHz with tight timings (&amp;lt; 32 CAS Latency) is the sweet spot for optimal performance with AMD Ryzen 9000 series processors.&lt;/p&gt;

&lt;p&gt;Higher frequency memory commonly comes with less aggressive timings, which can offset the performance benefits. It also places greater stress on the system, which can impact stability or require a lot of additional tuning.&lt;/p&gt;

&lt;p&gt;64GB offers decent headroom, but I would have preferred 96GB (2x48GB). Specialist workloads such as development, local artificial intelligence, and virtual labs can easily consume 60GB+.&lt;/p&gt;

&lt;p&gt;Unfortunately, 96GB options are currently limited and costly. Thankfully, memory is the easiest component to upgrade. Therefore, I will keep an eye on the market and potentially upgrade in the future.&lt;/p&gt;

&lt;h3 id=&quot;storage&quot;&gt;Storage&lt;/h3&gt;

&lt;p&gt;The MSI MAG X570 Tomahawk WiFi has two M.2 PCI-e Gen5 x4 slots, both of which are connected to the processor. I have decided to occupy one slot with the &lt;a href=&quot;https://uk.crucial.com/ssd/t705/CT2000T705SSD3&quot;&gt;Crucial T705 M.2 PCI-e Gen5 NVM-e SSD&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Crucial T705 is one of the highest-performing consumer-grade drives available today, with the 2TB version capable of reaching up to 14,500MB/s for sequential reads and 12,700MB/s for sequential writes, as well as up to 1,550K random read IOPS and 1,800K random write IOPS.&lt;/p&gt;

&lt;p&gt;It uses the Phison E26 SSD controller (based on the Max14um platform) and Micron 232-Layer TLC NAND flash, similar to what is found on competing products, such as the Corsair MP700 Pro SE. This combination delivers an impressive bus speed of 2,400MT/s, which unlocks the incredible sequential read performance.&lt;/p&gt;

&lt;p&gt;In day-to-day scenarios, the impact of this cutting-edge performance is likely negligible. However, for certain storage-heavy workloads, the additional performance offered by the Crucial T705 will reduce the risk of bottlenecks. The drive is also optimised for Microsoft DirectStorage, making it future-proof for gaming.&lt;/p&gt;

&lt;h3 id=&quot;power-supply-unit-psu&quot;&gt;Power Supply Unit (PSU)&lt;/h3&gt;

&lt;p&gt;I have selected the &lt;a href=&quot;https://www.corsair.com/uk/en/p/psu/cp-9020281-uk/hx1200i-fully-modular-ultra-low-noise-platinum-atx-1200-watt-pc-power-supply-uk-cp-9020281-uk&quot;&gt;Corsair HX1200i 1200W ‘80 Plus Platinum’ ATX PSU&lt;/a&gt;, which is ATX 3.1 and PCI-e 5.1 certified, delivering 1200W via a single rail. It also comes equipped with three EPS12Va connectors and a PCI-e 5.1 12V-2x6 GPU cable.&lt;/p&gt;

&lt;p&gt;The NVIDIA GeForce RTX 5090 specification states a 575W Thermal Design Power (TDP), which is up from my current 350W of the NVIDIA GeForce RTX 3090.&lt;/p&gt;

&lt;p&gt;This extreme power requirement demands a high-performance, high-quality power supply unit to ensure safe/reliable power delivery.&lt;/p&gt;

&lt;p&gt;When calculating my maximum system wattage, I assumed the following worst-case scenario.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Processor Overclocked (25%)&lt;/li&gt;
  &lt;li&gt;Graphics Card Overclocked (10%)&lt;/li&gt;
  &lt;li&gt;2x SSD&lt;/li&gt;
  &lt;li&gt;2x RAM&lt;/li&gt;
  &lt;li&gt;5x Fans&lt;/li&gt;
  &lt;li&gt;USB 3.2 Gen2 Power Transmission&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These assumptions resulted in a maximum system power requirement of approximately 1060W.&lt;/p&gt;

&lt;p&gt;NVIDIA officially recommend a minimum 1000W PSU for the GeForce RTX 5090. However, I would always recommend selecting a PSU with plenty of headroom.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;With my research complete, I have procured the core components and now await the official launch of the NVIDIA GeForce RTX 5090.&lt;/p&gt;

&lt;p&gt;In the interim, I plan to build and tune the system using my current NVIDIA GeForce RTX 3090.&lt;/p&gt;

&lt;p&gt;As with previous builds, I plan to document the process, including my 24x7 settings and performance results.&lt;/p&gt;
</description>
        <pubDate>Sat, 18 Jan 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/01/18/GeForce-RTX-5090-Build/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/01/18/GeForce-RTX-5090-Build/</guid>
      </item>
    
      <item>
        <title>Google AI Business Trends</title>
        <description>&lt;p&gt;Google recently published their AI Business Trends 2025 presentation.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://services.google.com/fh/files/misc/google_cloud_ai_trends.pdf&quot;&gt;Google Cloud AI Business Trends 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The document highlights five key trends.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Multimodal AI&lt;/strong&gt; - The Integration of Diverse Data Sources&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;AI Agents&lt;/strong&gt; - Managing Complex Workflows&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Assistive Search&lt;/strong&gt; - The Next Frontier for Knowledge Work&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;AI Customer Experience&lt;/strong&gt; - Technology is Invisible&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt; - Advanced Techniques to Identify and Combat Threats&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The document targets business leaders and therefore does not provide technical details. However, it does a good job of summarising the key themes, backed by relevant data points and references.&lt;/p&gt;

&lt;p&gt;I would specifically draw your attention to slide 20 (Employee Agents), where Google referenced the great work being done by my team.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/googleaibusinesstrends01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/googleaibusinesstrends01.jpg&quot; alt=&quot;Google AI Business Trends&quot; title=&quot;Google AI Business Trends&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to learn more, I have documented our journey over a series of blog posts.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/generative-ai-for-business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;Integrated Generative AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/02/Generative-AI-Enhancements/&quot;&gt;Generative AI - Enhancements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/12/15/generative-ai-eoy/&quot;&gt;Generative AI - EoY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/06/15/generative-ai-value/&quot;&gt;Generative AI - Value&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/13/generative-ai-update/&quot;&gt;Generative AI - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/12/16/Agentic-AI/&quot;&gt;Agentic AI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Congratulations to the team for the public recognition!&lt;/p&gt;
</description>
        <pubDate>Fri, 17 Jan 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/01/17/Google-AI-Business-Trends/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/01/17/Google-AI-Business-Trends/</guid>
      </item>
    
      <item>
        <title>RPA RIP</title>
        <description>&lt;p&gt;I am a strong advocate for business automation, helping to streamline common tasks to ensure human intelligence can be applied to higher-value opportunities, including areas that require curiosity, intuition, etc.&lt;/p&gt;

&lt;p&gt;However, it is important to note that &lt;strong&gt;not all automation is created equal&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Over the past decade, I have been vocal about my concerns regarding the overuse of traditional Robotic Process Automation (RPA), which frequently conflicts with recommendations from service integrators and consultants.&lt;/p&gt;

&lt;p&gt;My concern is simple, traditional RPA is commonly built on 20+ year-old technology, reliant on screen scraping (simulated user interface) techniques. In many respects, it is similar in concept to &lt;a href=&quot;https://www.selenium.dev/&quot;&gt;Selenium&lt;/a&gt;, the browser-based regression automation suite, first developed in 2004.&lt;/p&gt;

&lt;p&gt;The value of RPA is the ability to replace human interactions (at the user interface level), allowing businesses to reduce or redeploy headcount. This delivers a compelling short-term ROI, which is why it is favoured by service integrators and consultants, as they can demonstrate “quick wins” with no accountability for future ramifications.&lt;/p&gt;

&lt;p&gt;Unfortunately, this approach is very short-sighted, it essentially perpetuates legacy business processes, which can have disastrous medium/long-term ROI implications and impact future innovation.&lt;/p&gt;

&lt;p&gt;This issue is compounded by the fact that traditional RPA is very “brittle” as it is often coupled to the user interface of the application it is automating. Therefore, any change to the application immediately breaks the automation (there is no intelligence).&lt;/p&gt;

&lt;p&gt;To make matters worse, traditional RPA replicates the user and therefore requires user-level authentication, permissions and licensing, which impacts security and operational costs.&lt;/p&gt;

&lt;p&gt;Finally, traditional RPA does not scale effectively. Each automation (bot) commonly requires an individual Windows-based virtual machine (or client), including access to the software that needs to be automated. This can quickly become complex and costly to support, further impacting the medium/long-term ROI.&lt;/p&gt;

&lt;p&gt;Thankfully, there is another option, leveraging modern techniques and architecture to deliver API-centric automation that is loosely coupled, delivering flexibility, security, scale and cost-effectiveness. It also presents the opportunity to re-think the business process itself, which in my opinion, should always be the starting point before any automation is considered.&lt;/p&gt;

&lt;p&gt;The one downside is the requirement to have access to viable API endpoints. In modern software, these are usually natively available. However, legacy software may require an additional intervention, adding complexity to the initial implementation.&lt;/p&gt;

&lt;p&gt;With the introduction of Generative AI, including projects such as &lt;a href=&quot;https://www.langchain.com/&quot;&gt;LangChain&lt;/a&gt;, we started to see evidence that API-centric automation could be combined with Generative AI to create “intelligent agents”.&lt;/p&gt;

&lt;p&gt;These agents, with specific grounding, have the ability to take action and learn, whilst remaining loosely coupled to protect flexibility, as well as maintaining modern security standards.&lt;/p&gt;

&lt;p&gt;In November, the venture capital firm &lt;a href=&quot;https://a16z.com/&quot;&gt;a16z&lt;/a&gt; released the blog post “&lt;a href=&quot;https://a16z.com/rip-to-rpa-the-rise-of-intelligent-automation/&quot;&gt;RIP to RPA: The Rise of Intelligent Automation&lt;/a&gt;”, which provides a great overview of this emerging trend.&lt;/p&gt;

&lt;p&gt;In addition, a16z published a short video discussing the topic.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/O6DtzLGLNWY?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I agreed with their premise and am pleased to see others promoting modern approaches to automation, whilst highlighting the drawbacks associated with traditional RPA.&lt;/p&gt;

&lt;p&gt;This year, I expect “Agents” and “Agentic AI” to enter the mainstream, likely positioned as the next evolution of Generative AI.&lt;/p&gt;

&lt;p&gt;As a result of this market shift, I expect many traditional RPA vendors to “rebrand”, distancing themselves from “RPA” terminology, and replacing it with “Agentic AI”. This approach is “putting lipstick on a pig”. Therefore, I recommend a thorough investigation of the underlying architecture (looking beyond the sales pitch and marketing) before any investment.&lt;/p&gt;

&lt;p&gt;As an alternative, I recommend new engagements start with the leaders/innovators in Generative AI and/or open-source alternatives. For example, &lt;a href=&quot;https://deepmind.google/technologies/project-mariner/&quot; title=&quot;https://deepmind.google/technologies/project-mariner/&quot;&gt;Project Mariner&lt;/a&gt; from Google DeepMind and &lt;a href=&quot;https://openai.com/index/introducing-operator/&quot;&gt;Operator&lt;/a&gt; from OpenAI.&lt;/p&gt;

&lt;p&gt;My team has been experimenting with &lt;a href=&quot;/2024/12/16/Agentic-AI/&quot;&gt;Agentic AI&lt;/a&gt; for many months. We intend to deliver a robust AI automation framework for our business, with dynamic workflows that can support a wide range of common and complex business tasks.&lt;/p&gt;
</description>
        <pubDate>Mon, 06 Jan 2025 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2025/01/06/RPA-RIP/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2025/01/06/RPA-RIP/</guid>
      </item>
    
      <item>
        <title>Agentic AI</title>
        <description>&lt;p&gt;Over the past few years, my team has been on a journey to develop and scale a multi-model, multi-modal Generative AI framework for business, aiming to accelerate productivity and unlock new insights from data.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2024/09/24/Google-Gemini-at-Work/&quot;&gt;The work was recently recognised by Google Cloud CEO Thomas Kurian during the “Gemini at Work” global digital event opening keynote.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have documented the journey over a series of blog posts.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;Integrated Generative AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/02/Generative-AI-Enhancements/&quot;&gt;Generative AI - Enhancements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/12/15/generative-ai-eoy/&quot;&gt;Generative AI - EoY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/05/10/BTOES-Awards/&quot;&gt;BTOES Awards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/06/15/generative-ai-value/&quot;&gt;Generative AI - Value&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/13/generative-ai-update/&quot;&gt;Generative AI - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/09/24/Google-Gemini-at-Work/&quot;&gt;Google Gemini at Work&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/10/11/Google-Elevate-Every-Experience/&quot;&gt;Google Elevate Every Experience&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As we close the year, our Generative AI framework has reached another significant milestone (see the dashboard screenshot below).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/agenticai01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/agenticai01.jpg&quot; alt=&quot;Agentic AI&quot; title=&quot;Agentic AI&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Specifically, we have passed 7,000 unique users. This is important, as my company has approximately 9,000 employees (excluding contractors), some of which do not have access to IT services. At the start of the journey, we predicted that 7,000 was the viable audience for Generative AI, meaning we have reached peak adoption.&lt;/p&gt;

&lt;p&gt;This has delivered an estimated return on investment of $2,419,808, predominately through efficiency gains and cost avoidance. I shared more details regarding specific success stories in the article “&lt;a href=&quot;/2024/06/15/generative-ai-value/&quot;&gt;Generative AI - Value&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;A major part of this success has been our marketplace, which allows any employee to securely create and share a chatbot (known as a custom persona), including specific business context and the ability to ingest data (unstructured and structured) from multiple source systems.&lt;/p&gt;

&lt;p&gt;We now have over 1000 unique chatbots, all built on the same underlying cost-effective architecture. These chatbots support individuals and teams, covering the entire value chain from Research &amp;amp; Development through to Commercial Sales and Marketing.&lt;/p&gt;

&lt;p&gt;As highlighted by the slide below, this private, secure and compliant foundation leads us to our next area of opportunity, specifically &lt;strong&gt;action&lt;/strong&gt; and &lt;strong&gt;learning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/agenticai02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/agenticai02.jpg&quot; alt=&quot;Agentic AI&quot; title=&quot;Agentic AI&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Currently, our Generative AI framework responds to prompts and executes predefined tasks. In the future, we expect it to make decisions, plan and execute actions, and even learn. The industry has coined the term “Agentic AI” to describe this evolution.&lt;/p&gt;

&lt;p&gt;We have already launched our first version of this capability, which we call “Workflows”.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/agenticai03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/agenticai03.jpg&quot; alt=&quot;Agentic AI&quot; title=&quot;Agentic AI&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In short, workflows allow any user to declaratively (no code or specialist knowledge required) create chained events using pre-approved components. These events can be triggered in real-time, promoting experimentation and continuous improvement through iteration.&lt;/p&gt;

&lt;p&gt;For example, a workflow could accept input from an external system or data source via an API. This input could be ingested and processed by multiple AI models, including self-verification and/or summarisation of the output. The workflow could then dynamically trigger a downstream action based on the input, including an API call to an external system or data source.&lt;/p&gt;

&lt;p&gt;In our early testing, we have been able to create some very interesting workflows, pulling data from systems such as SAP, and analysing the data using a reasoning model, such as OpenAI o1 and Google Gemini 2.0, producing a structured output that includes text and images.&lt;/p&gt;

&lt;p&gt;We believe this capability will trigger the next wave of innovation regarding the use of Generative AI, further increasing the overall return on investment. It also presents a far more modern, decoupled and less brittle approach to process automation, where the workflows are programmatically defined (reusable) and can dynamically adapt based on an ever-evolving landscape.&lt;/p&gt;

&lt;p&gt;We are not alone in this thinking, with Google demonstrating similar capabilities within their &lt;a href=&quot;https://aistudio.google.com/&quot;&gt;AI Studio&lt;/a&gt; and as part of &lt;a href=&quot;https://deepmind.google/technologies/project-mariner/&quot;&gt;Project Mariner&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Mon, 16 Dec 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/12/16/Agentic-AI/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/12/16/Agentic-AI/</guid>
      </item>
    
      <item>
        <title>Bowers and Wilkins Px8</title>
        <description>&lt;p&gt;The Bowers &amp;amp; Wilkins Px8 are premium active noise cancelling (ANC) over-ear headphones.&lt;/p&gt;

&lt;p&gt;I have used Bowers &amp;amp; Wilkins products over the past decade, including multiple headphones and the excellent &lt;a href=&quot;https://www.bowerswilkins.com/en-us/category/home-theatre/mini-theatre/&quot;&gt;Mini Theater&lt;/a&gt;, connected to a Sony STR-DN1050 AV Receiver.&lt;/p&gt;

&lt;p&gt;The UK-based Bowers &amp;amp; Wilkins brand has always resonated with me, specifically their rich heritage of high-performance bespoke sound hardware and their elegant design language that expresses their unique, premium style.&lt;/p&gt;

&lt;p&gt;Most importantly, the sound produced by their products has always exceeded my expectations, offering clarity and punch that is faithful to the source material. In my experience, this balance is with consumer-centric sound products, often failing to deliver clarity or exaggerating specific ranges, such as bass.&lt;/p&gt;

&lt;p&gt;I have been interested in the Bowers &amp;amp; Wilkins Px8 headphones for some time. However, with a recommended retail price of £599, I was unwilling to pull the trigger. Thankfully, during key sales periods, they can be found for around £399 and I managed to procure them for £290.19 (51.55% discount) during a recent sale on &lt;a href=&quot;https://www.amazon.de/-/en/Headphones-Cancelling-Bluetooth-Resolution-Microphone-black/dp/B0B33PXPJT&quot;&gt;Amazon.de&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/bowersandwilkins01.jpg&quot; alt=&quot;Bowers and Wilkins Px8&quot; title=&quot;Bowers and Wilkins Px8&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At this price point, the Bowers &amp;amp; Wilkins Px8 offer great value, especially when compared against the competition.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Bang &amp;amp; Olufsen Beoplay H95 (RRP £879)&lt;/li&gt;
  &lt;li&gt;Apple AirPods Max (RRP £499)&lt;/li&gt;
  &lt;li&gt;Bose QuietComfort Ultra Headphones (RRP £449.95)&lt;/li&gt;
  &lt;li&gt;Sony WH-1000XM5 (RRP £379)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Bowers &amp;amp; Wilkins Px8 headphones exude quality. The premium materials, including cast aluminium arms, diamond-cut detailing and Nappa leather trim, look and feel amazing. The fit is also exceptional, delivering a reassuring and comfortable clamping force that (for me) feels more secure than the Apple AirPods Max (they are also approximately 64.8g lighter).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/bowersandwilkins02.jpg&quot; alt=&quot;Bowers and Wilkins Px8&quot; title=&quot;Bowers and Wilkins Px8&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Highlighting the attention to detail, Bowers &amp;amp; Wilkins even angle the drivers, so that they are parallel to your ears to help with timing and precision in the sound (a nice touch).&lt;/p&gt;

&lt;p&gt;Regarding the drivers, Bowers &amp;amp; Wilkins include new carbon cone 40mm drive units, which are lighter and claim to be more rigid, reducing distortion and improving transparency. This is supported by high-resolution 24-bit digital signal processing (DSP).&lt;/p&gt;

&lt;p&gt;In summary, I would highlight the following positives:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Exceptional Sound&lt;/li&gt;
  &lt;li&gt;Premium Design and Materials&lt;/li&gt;
  &lt;li&gt;Refined Build Quality&lt;/li&gt;
  &lt;li&gt;Physical Buttons (Easy to Use)&lt;/li&gt;
  &lt;li&gt;Excellent Battery Life (30 Hours)&lt;/li&gt;
  &lt;li&gt;High-Quality Codec Support (aptX Adaptive, aptX and aptX HD)&lt;/li&gt;
  &lt;li&gt;Versatile Connectivity (Bluetooth 5.2, USB-C and 3.5mm Headphone Jack)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Without question, the main positive is the incredible sound performance, which is the best I have experienced with active noise cancelling (ANC) over-ear headphones. This is also the consensus from many audio critics, for example, &lt;a href=&quot;https://www.whathifi.com/reviews/bowers-and-wilkins-px8&quot;&gt;What H-Fi&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The active noise cancelling and transparency modes are both excellent, but arguably not quite as good as the Apple AirPods Max or Sony WH-1000XM5. However, if your use case is mostly home or office (not travelling), the Bowers &amp;amp; Wilkins Px8 will certainly deliver.&lt;/p&gt;

&lt;p&gt;One critique, the Bowers &amp;amp; Wilkins Px8 headphones can not be used passively, meaning they need to be “on” for them to receive sound. This is not uncommon for active noise cancelling headphones and on the surface is a minor concern.&lt;/p&gt;

&lt;p&gt;However, this negative is compounded by the fact that the internal battery cannot be replaced easily. As with any battery, it will degrade over time. When this happens the headphones may become unusable. In a perfect world, Bowers &amp;amp; Wilkins would make the battery user replaceable, or at minimum, offer a simple low-cost replacement service. At this time, neither option is viable.&lt;/p&gt;

&lt;p&gt;This critique would not stop me from recommending the Bowers &amp;amp; Wilkins Px8 headphones. However, it would give me pause at the recommended retail price of £599, knowing they will have a predetermined usable life span.&lt;/p&gt;
</description>
        <pubDate>Sun, 15 Dec 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/12/15/Bowers-and-Wilkins-Px8/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/12/15/Bowers-and-Wilkins-Px8/</guid>
      </item>
    
      <item>
        <title>Model Context Protocol</title>
        <description>&lt;p&gt;Last month, &lt;a href=&quot;https://www.anthropic.com/&quot;&gt;Anthorpic&lt;/a&gt; introduced a new open-source standard for connecting AI assistants, known as Model Context Protocol (MCP).&lt;/p&gt;

&lt;p&gt;The the blog post “&lt;a href=&quot;https://www.anthropic.com/news/model-context-protocol&quot;&gt;Introducing the Model Context Protocol&lt;/a&gt;”, Anthorpic state:&lt;/p&gt;

&lt;p&gt;*“Even the most sophisticated models are constrained by their isolation from data—trapped behind information silos and legacy systems. Every new data source requires its own custom implementation, making truly connected systems difficult to scale.&lt;/p&gt;

&lt;p&gt;MCP addresses this challenge. It provides a universal, open standard for connecting AI systems with data sources, replacing fragmented integrations with a single protocol. The result is a simpler, more reliable way to give AI systems access to the data they need.”*&lt;/p&gt;

&lt;p&gt;At the highest level, MCP enables developers to build two-way connections between tools, services and data sources. The protocol consists of two parts, MCP servers and MCP clients.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;MCP Server&lt;/strong&gt; - The provider, which exposes specific functionality, like access to tools, services or data. The server knows how to receive a request and translate it to ensure compatibility with downstream systems.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;MCP Client&lt;/strong&gt; - The consumer, which runs on the application side,  makes requests for tools, services or data. The client handles sending requests, receiving results, and passing them to the AI.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The MCP protocol manages this end-to-end process, ensuring everything is standardised and synchronised. It defines how the client and server communicate, what the messages look like, how actions are described, and how results are returned.&lt;/p&gt;

&lt;p&gt;On the surface, this approach sounds like an Application Programming Interface (API), as an API and MCP both define how systems interact. However, an API is a general-purpose interface for various applications, whilst MCP is specifically designed to standardise how AI models, specifically Large Language Models (LLMs), interact with external tools, services and data.&lt;/p&gt;

&lt;p&gt;Therefore, MCP does not replace the need for APIs. With this in mind, I expect we will see developers “wrapping” existing APIs for MCP.&lt;/p&gt;

&lt;p&gt;Assuming widespread adoption, this could be a big step forward in how AI agents operate, unlocking the potential of Agentic AI.&lt;/p&gt;
</description>
        <pubDate>Wed, 11 Dec 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/12/11/Model-Context-Protocol/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/12/11/Model-Context-Protocol/</guid>
      </item>
    
      <item>
        <title>Google Willow</title>
        <description>&lt;p&gt;I first started researching Quantum Computing in 2015, supported by an engagement with IBM to understand the potential for life sciences, specifically drug discovery.&lt;/p&gt;

&lt;p&gt;Over the years, I have written a few articles summarising my key learnings.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/12/10/quantum-computing/&quot;&gt;Quantum Computing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/12/18/quantum-advantage/&quot;&gt;Quantum Advantage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/07/19/quantum-problems/&quot;&gt;Quantum Problems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, in Classical Computing, a basic unit of information is called a bit, which is a binary digit that can have only one of two states, commonly represented as either a 0 or 1.&lt;/p&gt;

&lt;p&gt;Quantum Computers use Qubits, which can also be set to two states, however, a Qubit can be in both states simultaneously, known as a superposition.&lt;/p&gt;

&lt;p&gt;As a result, with 3 qubits of data, a Quantum Computer can store all eight possible combinations of 0 and 1 simultaneously. Therefore, a 3 Qubit-based Quantum Computer can complete calculations eight times faster than a 3-bit Classical Computer.&lt;/p&gt;

&lt;p&gt;Another key property is entanglement, which describes the close connection between multiple Qubits, allowing a Qubit to instantly react to the change of another Qubit, regardless of their relative proximity. As a result, by reading the state of one Qubit, the state of its partners can be deduced without any additional checks.&lt;/p&gt;

&lt;p&gt;These special properties help Quantum Computers solve complex problems much faster than Classical Computers.&lt;/p&gt;

&lt;p&gt;Unfortunately, Quantum Computing is prone to errors, because qubits are sensitive to external disturbances, impacting the ability to scale reliably.&lt;/p&gt;

&lt;p&gt;Earlier today, &lt;a href=&quot;https://blog.google/technology/research/google-willow-quantum-chip/&quot;&gt;Google announced Willow&lt;/a&gt;, their latest quantum chip.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/W7ppd_RY-UE?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Willow boasts two important breakthroughs:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Willow can reduce errors exponentially as quantum processors scale up using more qubits. This targets the key challenge in quantum error correction.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Willow performed a standard benchmark computation in under five minutes that would take one of today’s most powerful supercomputers 10 septillion years.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These breakthroughs are an important step towards making Quantum Computing a viable alternative to Classical Computing for specific tasks.&lt;/p&gt;

&lt;p&gt;To help understand the impact of this announcement, I would recommend reading the &lt;a href=&quot;https://scottaaronson.blog/?p=8525&quot;&gt;reaction&lt;/a&gt; from Scott Aaronson (Acclaimed Theoretical Computer Scientist).&lt;/p&gt;

&lt;p&gt;I only understand the basic concepts of Quantum computing, but continue to find the subject fascinating and am pleased the community continues to invest and engage!&lt;/p&gt;
</description>
        <pubDate>Mon, 09 Dec 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/12/09/Google-Willow/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/12/09/Google-Willow/</guid>
      </item>
    
      <item>
        <title>Even Realities</title>
        <description>&lt;p&gt;In September, I posted an article regarding the &lt;a href=&quot;/2024/09/01/Ray-Ban-Meta/&quot;&gt;Ray-Ban Meta&lt;/a&gt; smart glasses.&lt;/p&gt;

&lt;p&gt;I described them as a turning point for head-mounted devices, thanks to their “less is more” approach, delivering useful technology that is socially acceptable to wear for daily usage.&lt;/p&gt;

&lt;p&gt;In the article, I referenced the &lt;a href=&quot;https://www.evenrealities.com/g1&quot;&gt;Even Realities G1&lt;/a&gt; smart glasses that like the Ray-Ban Meta were designed as glasses first, smart glasses second.&lt;/p&gt;

&lt;p&gt;The Even Realities website states:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Glasses you’d love, even if they were just glasses”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I have now had access to the Even Realities G1 smart glasses for a few months and therefore this article will share my initial thoughts and findings.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/evenrealities01.jpg&quot; alt=&quot;Even Realities G1&quot; title=&quot;Even Realities G1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Even Realities G1 smart glasses are very well built, with a premium look and feel. This includes robust materials (magnesium alloy, titanium alloy and silicone) and an innovative screwless hinge. They are available in a few different styles and colour options, with single-vision or prescription lenses that offer ultraviolet and blue light protection. They can also be converted into sunglasses, via a simple “clip” accessory.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/evenrealities02.jpg&quot; alt=&quot;Even Realities G1&quot; title=&quot;Even Realities G1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have access to the Even Realities G1 “A” smart glasses. The technical specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Micro-LED Display (640x200, 20Hz, 1000nits)&lt;/li&gt;
  &lt;li&gt;2x Microphones&lt;/li&gt;
  &lt;li&gt;2x TouchBars&lt;/li&gt;
  &lt;li&gt;2x Antennae (Bluetooth 5.2)&lt;/li&gt;
  &lt;li&gt;Integrated Battery (60 mAh / 0.616 Wh)&lt;/li&gt;
  &lt;li&gt;Case Battery (2000 mAh / 7.4 Wh)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most interesting part of the specification is the Holistic Adaptive Optical System, known as HAOS.&lt;/p&gt;

&lt;p&gt;HAOS incorporates Micro-LED optical engines that transmit content onto a pair of waveguide lenses, which then project information approximately two meters ahead of you.&lt;/p&gt;

&lt;p&gt;Information is transmitted via “Dual Sync” connectivity, which includes a pair of antennae located in each hinge (behind the ear), communicating via Bluetooth 5.2. Impressively, each hinge also includes a TouchBar, allowing for physical input.&lt;/p&gt;

&lt;p&gt;It should be noted that, unlike the Ray-Ban Meta, the Even Realities G1 smart glasses do not include a speaker. All information is delivered via the 640x200 display as green text.&lt;/p&gt;

&lt;p&gt;At release, the Even Realities G1 smart glasses include the following features, configured via the companion iOS/Android app.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Quick Note&lt;/li&gt;
  &lt;li&gt;Translate&lt;/li&gt;
  &lt;li&gt;Navigation&lt;/li&gt;
  &lt;li&gt;Teleprompt&lt;/li&gt;
  &lt;li&gt;Notification&lt;/li&gt;
  &lt;li&gt;Dashboard&lt;/li&gt;
  &lt;li&gt;Artificial Intelligence (AI) Assistant&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These are all software features, which I would expect/hope will continue to evolve and improve.&lt;/p&gt;

&lt;p&gt;The build quality of the Even Realities G1 smart glasses is excellent, this includes the accessories and packaging, which are all thoughtfully designed, including specific decisions that promote sustainability.&lt;/p&gt;

&lt;p&gt;I do not wear prescription glasses, therefore my experience is limited. However, the frames feel robust and I believe it would be very difficult for anyone to identify them as smart glasses.&lt;/p&gt;

&lt;p&gt;The only noticeable design consideration is the bludge at the end of each hinge, which when worn sits behind each ear. Thankfully, the size and placement are discreet and could easily be considered a functional design choice to improve stability when worn.&lt;/p&gt;

&lt;p&gt;Considering this is a v1.0 product, I have been incredibly impressed by the quality of the technology integration. This includes the iOS app, which is easy to navigate, fast and reliable.&lt;/p&gt;

&lt;p&gt;Whilst wearing the smart glasses, the primary interface is a floating display, which can be activated at any time by looking up (this gesture can be adjusted in the app).&lt;/p&gt;

&lt;p&gt;The default interface is the dashboard, which continues “at a glance” information, projected approximately two meters ahead of you. The interface remains visible for a pre-determined amount of time, depending on the specific feature being used.&lt;/p&gt;

&lt;p&gt;The information does not obstruct your view (98% passthrough) and the position of the interface can be adjusted in the app. I would compare it to using a car heads-up display.&lt;/p&gt;

&lt;p&gt;The TouchBars allow for simple inputs via single, double or triple taps, as well as a long press. Each input will trigger a different outcome, which is not immediately obvious, but fairly simple to understand once learnt. Full details of the TouchBar controls can be found within the &lt;a href=&quot;https://support.evenrealities.com/hc/articles/9859246563471-User-guide&quot;&gt;Even Realities G1 User Guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The real magic occurs when a specific feature is triggered, for example, the ability to take a quick note, which includes integrated Generative AI summarisation.&lt;/p&gt;

&lt;p&gt;I have been most impressed by the Teleprompt and Translate features, which work surprisingly well.&lt;/p&gt;

&lt;p&gt;For example, with content loaded through the iOS/Android app, the Teleprompter will use the microphones to follow your spoken words, automatically progressing the teleprompt that is displayed ahead of you.&lt;/p&gt;

&lt;p&gt;As someone who does a lot of live presentations and webinars, I could see how this feature could be valuable.&lt;/p&gt;

&lt;p&gt;The same can be said for the translation feature, which listens for inputs and provides real-time subtitles via the display. This is very cool and a true glimpse into the potential of head-mounted devices.&lt;/p&gt;

&lt;p&gt;An area that I expect to improve over time is the Artificial Intelligence (AI) Assistant. It would not be 2024, without an integrated AI feature. I have not found this to be as practical as a voice assistant (that speaks to you), but could be valuable for quick questions/answers.&lt;/p&gt;

&lt;p&gt;In conclusion, I am incredibly impressed with the Even Realities G1 smart glasses, especially as this is a v1.0 product from a new company.&lt;/p&gt;

&lt;p&gt;The design and build quality are impressive and the features they have enabled work as advertised, which is fairly surprising as many v1.0 products over-promise and under-deliver.&lt;/p&gt;

&lt;p&gt;The Even Realiaities team should be commended for their attention to detail and I hope they continue to iterate/improve over time, unlocking the full potential of the smart glasses via new software features.&lt;/p&gt;

&lt;p&gt;Reflecting on my Ray-Ban Meta usage, I would love to see the features of these two products combine, delivering audio, video, and display technology in a package that can be worn as a replacement for “regular” glasses.&lt;/p&gt;

&lt;p&gt;This could be an incredible combination, that feels feasible, without impacting the design.&lt;/p&gt;
</description>
        <pubDate>Sun, 08 Dec 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/12/08/Even-Realities/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/12/08/Even-Realities/</guid>
      </item>
    
      <item>
        <title>My Setup (Q4 2024)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Hardware specification updated to include my new &lt;a href=&quot;/2025/01/18/GeForce-RTX-5090-Build/&quot;&gt;custom-built desktop PC&lt;/a&gt; and Framework Laptop 13 AMD AI 300 Series.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;p&gt;I switch between three devices (one desktop and two laptops), which are primarily used for productivity, collaboration, software development, photo editing, video editing, virtual labs, gaming and game development.&lt;/p&gt;

&lt;p&gt;My daily driver (home and travelling) is an Apple MacBook Pro 14-inch (NOV-2024). This laptop is also used to run Apple-specific software, such as &lt;a href=&quot;https://developer.apple.com/xcode/&quot;&gt;Xcode&lt;/a&gt; and &lt;a href=&quot;https://www.apple.com/final-cut-pro/&quot;&gt;Final Cut Pro&lt;/a&gt;, as well as software that requires significant memory and/or memory bandwidth (e.g., local Large Language Models).&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple MacBook Pro 14-inch (NOV-2024)&lt;/li&gt;
  &lt;li&gt;Apple M3 Max (16-core - 12 Performance / 4 Efficiency)&lt;/li&gt;
  &lt;li&gt;40-core GPU&lt;/li&gt;
  &lt;li&gt;16-core Neural Engine&lt;/li&gt;
  &lt;li&gt;128GB Unified Memory (546GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;2TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;3x Thunderbolt 5, HDMI 2.1, 3.5mm Headphone, SDXC Card Reader&lt;/li&gt;
  &lt;li&gt;14.2-inch Liquid Retina XDR Nano-texture Display (3024x1964 @ 120Hz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition, I have a custom-built desktop PC. This is used to run software optimised for Windows, specifically games.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X870 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 9950X 4.3GHz Base / 5.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 G2 LBC CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance EXPO DDR5 PC5-48000C30 6000MHz RAM&lt;/li&gt;
  &lt;li&gt;2TB Crucial T705 M.2 PCI-e Gen5 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 5090 Founders Edition 32GB GDDR7&lt;/li&gt;
  &lt;li&gt;Corsair HX1200i 1200W ‘80 Plus Platinum’ ATX PSU&lt;/li&gt;
  &lt;li&gt;Fractal Torrent Compact&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AMD Ryzen 9950X and NVIDIA GeForce RTX 5090 are high-performance components, delivering excellent performance across a range of workloads (e.g., multi-threading, &lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;ray-tracing gaming&lt;/a&gt;, machine learning, video editing, etc.).&lt;/p&gt;

&lt;p&gt;Finally, I use an Framework Laptop 13 running Fedora for Linux-specific workloads (e.g., Linux Containers, Ethical Hacking, etc.)&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop 13 DIY Edition&lt;/li&gt;
  &lt;li&gt;AMD Ryzen AI 9 HX 370 (12C/24T)&lt;/li&gt;
  &lt;li&gt;128GB Crucial DDR5-5600 RAM&lt;/li&gt;
  &lt;li&gt;4TB Western Digital Black SN850X NVMe (7.3GB/s Read)&lt;/li&gt;
  &lt;li&gt;13.5-inch LCD Display (2880x1920 @ 120Hz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At home, the Apple MacBook Pro and desktop PC connect to a 57-inch Super Ultra-Wide monitor, specifically the &lt;a href=&quot;https://www.samsung.com/uk/monitors/gaming/odyssey-neo-g9-g95nc-57-inch-240hz-curved-dual-uhd-ls57cg952nuxxu/&quot;&gt;Samsung G95NC Odyssey Neo G9 240Hz Dual UHD Monitor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The full specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Model:&lt;/strong&gt; Samsung G95NC Odyssey Neo G9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Size:&lt;/strong&gt; 57-inch&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Type:&lt;/strong&gt; VA (Quantum Mini LED - 2,392 Zones)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Curvature:&lt;/strong&gt; 1000R&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aspect Ratio:&lt;/strong&gt; 32:9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 7680x2160&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 240Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Variable Refresh Rate:&lt;/strong&gt; AMD FreeSync Premium Pro&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; 1ms (GTG)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;High Dynamic Range:&lt;/strong&gt; HDR10+ Gaming, VESA DisplayHDR 1000&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 420cd/㎡ (Typical), 1000cd/m2 (Peak)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Interface:&lt;/strong&gt; 3x HDMI 2.1 (HDCP 2.2), 1x DisplayPort 2.1 (HDCP 2.2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is minimal, thanks to the exceptional &lt;a href=&quot;/2022/10/17/New-Home-Office/&quot;&gt;Secret Lab Magnus Pro XL&lt;/a&gt; sit-to-stand desk. The monitor is mounted on a &lt;a href=&quot;https://www.benq.eu/en-uk/desk-tech/monitorarm/bsh01.html&quot;&gt;BenQ Ergo Arm BSH01&lt;/a&gt;, which is a heavy-duty monitor arm that can (just about) support the 15.4 kg weight of the Samsung G95NC Odyssey Neo G9.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/mysetup35.jpg&quot;&gt;&lt;img src=&quot;/images/posts/mysetup35.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, for peripherals, I primarily use the &lt;a href=&quot;https://nuphy.com/collections/keyboards/products/air75-v2&quot;&gt;NuPhy Air75 V2 (Wisteria Switches)&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/products/mice/mx-master-3s.910-006559.html&quot;&gt;Logitech MX Master 3S&lt;/a&gt; and &lt;a href=&quot;https://www.insta360.com/product/insta360-link2&quot;&gt;Insta360 Link 2&lt;/a&gt;. The keyboard and mouse were selected as they support multiple Bluetooth profiles, making it simple to switch between devices. The mousepad is a &lt;a href=&quot;https://www.pulsar.gg/collections/mouse-pad/products/superglide-glass-mousepad-v2?variant=45768203960574&quot;&gt;Pulsar Superglide Glass Mousepad v2&lt;/a&gt;, which delivers very low friction and accurate tracking.&lt;/p&gt;

&lt;p&gt;The photo also highlights my microphone setup, which is a &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeti/&quot;&gt;Blue Yeti&lt;/a&gt; connected to the &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeticaster/&quot;&gt;Blue Yeticaster&lt;/a&gt; that includes the Compass Boom Arm and Radius III Custom Shockmount. The microphone is primarily used for video conferencing, screencasting, webinars and podcasts.&lt;/p&gt;

&lt;p&gt;Additional peripherals include speakers (&lt;a href=&quot;https://audioengineusa.com/shop/wirelessspeakers/a1-wireless-speaker-system/&quot;&gt;AudioEngine A1&lt;/a&gt;), headphones (&lt;a href=&quot;https://www.shure.com/en-GB/products/earphones/aonic5&quot;&gt;Shure AONIC 5 Sound Isolating Earphones&lt;/a&gt;), controller (&lt;a href=&quot;https://www.8bitdo.com/ultimate-bluetooth-controller/&quot;&gt;8BitDo Ultimate Controller&lt;/a&gt;), steering wheel (&lt;a href=&quot;http://gaming.logitech.com/en-gb/product/g29-driving-force&quot;&gt;Logitech G29&lt;/a&gt;), virtual reality headset (&lt;a href=&quot;https://www.meta.com/gb/quest/quest-3/&quot;&gt;Meta Quest 3&lt;/a&gt; and &lt;a href=&quot;https://www.apple.com/apple-vision-pro/&quot;&gt;Apple Vision Pro&lt;/a&gt;) and printer (&lt;a href=&quot;https://www.epson.co.uk/en_GB/products/printers/inkjet/consumer/ecotank-et-2810/p/30169&quot;&gt;Epson EcoTank ET-2810&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;As highlighted in the photo below, my desktop PC is mounted to the desk using the &lt;a href=&quot;https://secretlab.co.uk/products/premium-pc-mount&quot;&gt;Secret Lab Premium PC Mount&lt;/a&gt;, with the PC case door exposed providing easy access to the components.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/mysetup34.jpg&quot;&gt;&lt;img src=&quot;/images/posts/mysetup34.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Accompanying the desktop PC and monitor is an &lt;a href=&quot;/2021/11/18/Prusa-Research/&quot;&gt;Original Prusa MINI+&lt;/a&gt;, which is an open-source 3D printer.&lt;/p&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;https://www.fractal-design.com/products/chairs/refine/&quot;&gt;Fractal Design Refine&lt;/a&gt; chair, which balances comfort and personalised ergonomics.&lt;/p&gt;

&lt;h3 id=&quot;home-server&quot;&gt;Home Server&lt;/h3&gt;

&lt;p&gt;Alongside my desktops and laptops, I have a small home server, which is connected to my Samsung S95B OLED TV (65-inch). The server manages local and cloud backups, server-side workloads, media streaming, and collaboration (video conferencing).&lt;/p&gt;

&lt;p&gt;I selected an Apple Mac Mac Studio (MAR-2022) for the server, thanks to its excellent power efficiency (115W), high-performance I/O and small form factor. The Mac Studio also offers flexible video conferencing capabilities, including Apple FaceTime, Zoom, Microsoft Teams, Google Meet, Cisco WebEx, WhatsApp Video, etc.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple Mac Studio (MAR-2022)&lt;/li&gt;
  &lt;li&gt;Apple M3 Max (10-core - 8 Performance / 2 Efficiency)&lt;/li&gt;
  &lt;li&gt;32-core GPU&lt;/li&gt;
  &lt;li&gt;16-core Neural Engine&lt;/li&gt;
  &lt;li&gt;64GB Unified Memory (400GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;1TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;2TB SanDisk Extreme Portable SSD (USB 3.2 Gen2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 3TB of local SSD storage is split across multiple drives for resilience, with automated backups being completed by &lt;a href=&quot;https://bombich.com/&quot;&gt;Carbon Copy Cloner&lt;/a&gt; and Cloud Storage via &lt;a href=&quot;https://www.microsoft.com/microsoft-365/onedrive/online-cloud-storage&quot;&gt;Microsoft OneDrive&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The only peripheral connected directly to the Mac Studio is a &lt;a href=&quot;https://www.logitech.com/products/webcams/brio-4k-hdr-webcam.960-001106.html&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt; webcam, which delivers phenomenal video quality (4K/30fps - HDR), a wide viewing angle (90-degree dFoV) and a surprisingly good stereo, dual omnidirectional integrated microphone.&lt;/p&gt;

&lt;p&gt;To support my minimal (hidden-wire) entertainment setup, all of my AV equipment (&lt;a href=&quot;https://www.sony.co.uk/electronics/support/audio-components-receivers-amplifiers/str-dn1050/specifications&quot;&gt;Sony STR-DN1050 AV Receiver&lt;/a&gt;, &lt;a href=&quot;https://www.playstation.com/ps5/ps5-pro/&quot;&gt;Sony PlayStation 5 Pro&lt;/a&gt;, &lt;a href=&quot;https://support.myharmony.com/hub&quot;&gt;Logitech Harmony Hub&lt;/a&gt;) is located in a cupboard under the stairs, with the required cables fed through the wall to the TV. This can be a little inconvenient when looking to insert/change physical media, but thankfully the cupboard offers plenty of space and ventilation.&lt;/p&gt;
</description>
        <pubDate>Tue, 12 Nov 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/11/12/My-Setup-Q4-2024/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/11/12/My-Setup-Q4-2024/</guid>
      </item>
    
      <item>
        <title>Work Setup</title>
        <description>&lt;p&gt;In the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” I outlined the systems I use at home, covering both personal and work use cases.&lt;/p&gt;

&lt;p&gt;At work, I build upon my home setup, with the addition of two devices (one laptop and a desktop), specifically a Microsoft Surface Laptop 7 and a Framework Desktop.&lt;/p&gt;

&lt;p&gt;The intent is to provide maximum flexibility for a wide range of workloads. For example, access to the three primary desktop operating systems (macOS, Windows, and Linux), as well as diverse bare metal hardware architectures (x86-64 and ARM).&lt;/p&gt;

&lt;p&gt;The specification of the Microsoft Surface Laptop 7 can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Microsoft Surface Laptop 7&lt;/li&gt;
  &lt;li&gt;Qualcomm Snapdragon X Elite (X1E-80-100 - 12C)&lt;/li&gt;
  &lt;li&gt;32GB LPDDR5x (8448 MT/s)&lt;/li&gt;
  &lt;li&gt;1TB M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;Wi-Fi 7 and Bluetooth 5.4&lt;/li&gt;
  &lt;li&gt;13.8-inch LCD Touchscreen (2304x1536 @ 120Hz)&lt;/li&gt;
  &lt;li&gt;2x USB-C (USB 4), 1x USB-A (USB 3.1), 1x 3.5mm Headphone, 1x Surface Connect&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This device, alongside my Apple MacBook Pro and HP ZBook Ultra G1a, was selected for its balance of performance, portability, and battery life. It also has an excellent high resolution, high refresh rate display, and a quality camera and microphone setup.&lt;/p&gt;

&lt;p&gt;These capabilities are valuable, as I spend a lot of time jumping between different locations and working on virtual conference calls. This combination of hardware allows me to continue with almost any workload or testing regardless of my location, maximising my efficiency and effectiveness.&lt;/p&gt;

&lt;p&gt;The Framework Desktop runs Fedora for Linux-specific workloads, including Linux Containers, Artificial Intelligence (AI), Ethical Hacking, etc. It also has a high-performance Accelerated Processing Unit (APU), with 128GB of unified memory, which is useful when running local AI models. The specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Desktop&lt;/li&gt;
  &lt;li&gt;AMD Ryzen AI Max+ 395 3GHz Base / 5.1GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;128GB LPDDR5x-8000 Unified Memory&lt;/li&gt;
  &lt;li&gt;AMD Radeon 8060S Graphics (40 Graphics Cores)&lt;/li&gt;
  &lt;li&gt;4TB Western Digital SN850X NVM-e SSD&lt;/li&gt;
  &lt;li&gt;2x Thunderbolt 4, 1x USB-C, 1x USB-A, HDMI 2.1, 3.5mm Headphone&lt;/li&gt;
  &lt;li&gt;AMD RZ717 Wi-Fi 7 (Wi-Fi 7 and Bluetooth 5.4)&lt;/li&gt;
  &lt;li&gt;Realtek RTL8126 5Gbit Ethernet&lt;/li&gt;
  &lt;li&gt;1x HDMI 2.1, 2x DisplayPort 2.1, 2x USB-C, 2x USB-A, 1x 3.5mm&lt;/li&gt;
  &lt;li&gt;2x Expansion Card Slots&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When I am at my desk, all devices connect to a Samsung  Odyssey OLED 49-inch Gaming Monitor (LS49DG912SUXXU), which has a 5120x1440 resolution at a maximum of 144Hz.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/worksetup03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/worksetup03.jpg&quot; alt=&quot;Work Setup&quot; title=&quot;Work Setup&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, for peripherals, I primarily use the &lt;a href=&quot;https://www.logitech.com/en-gb/shop/p/mx-mechanical&quot;&gt;Loitech MX Mechanical&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/products/mice/mx-master-3s.910-006559.html&quot;&gt;Logitech MX Master 3S&lt;/a&gt;, and &lt;a href=&quot;https://opalcamera.com/opal-c1&quot;&gt;Opal C1&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I use two headsets, depending on the situation, the &lt;a href=&quot;https://www.bowerswilkins.com/en-gb/product/over-ear-headphones/px8/FP42951P.html&quot;&gt;Bowers &amp;amp; Wilkins PX8&lt;/a&gt; and &lt;a href=&quot;https://shokz.com/pages/opencomm2uc-2025-upgrade&quot;&gt;Shokz OPENCOMM 2 UC&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am very fortunate to work in a very modern, open-plan office, which promotes collaboration.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/worksetup02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/worksetup02.jpg&quot; alt=&quot;Work Setup&quot; title=&quot;Work Setup&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alongside being a great space, we have access to large meeting rooms, a cafe, a gym, and even a dedicated innovation room, which includes a range of hardware and software to promote curiosity.&lt;/p&gt;
</description>
        <pubDate>Fri, 08 Nov 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/11/08/Work-Setup/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/11/08/Work-Setup/</guid>
      </item>
    
      <item>
        <title>DeskPad</title>
        <description>&lt;p&gt;At home, I use a super ultrawide monitor, specifically the 57-inch &lt;a href=&quot;/2023/10/04/samsung-g95nc/&quot;&gt;Samsung G95NC&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/samsungg95nc01.jpg&quot; alt=&quot;DeskPad&quot; title=&quot;DeskPad&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my opinion, the 32:9 aspect ratio delivers the best overall experience when interacting with a desktop operating system. The scale of the working area streamlines most productivity tasks, by avoiding the need to constantly switch windows, whilst allowing for the “focus window” to remain centred.&lt;/p&gt;

&lt;p&gt;Unfortunately, there are a few considerations when working with a monitor of this size, most notably, when you need to share your full desktop via a screen-sharing application, such as &lt;a href=&quot;https://www.microsoft.com/microsoft-teams/&quot;&gt;Microsoft Teams&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;In this scenario, unless the recipients of the screen share are fortunate enough to have a super ultrawide monitor, the content can become unusable.&lt;/p&gt;

&lt;p&gt;Thankfully, Bastian Andelefski has resolved this issue for macOS users, via his simple (and genius) tool, known as &lt;a href=&quot;https://github.com/Stengo/DeskPad&quot;&gt;DeskPad&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once installed, DeskPad creates a virtual second display, which behaves like any other physically connected display. Therefore, you can adjust the settings (e.g., resolution) via system preferences and all application windows adjust accordingly.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/deskpad01.jpg&quot; alt=&quot;DeskPad&quot; title=&quot;DeskPad&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As a result, you can simply select this virtual display when sharing your full desktop via a screen-sharing application.&lt;/p&gt;
</description>
        <pubDate>Sat, 12 Oct 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/10/12/DeskPad/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/10/12/DeskPad/</guid>
      </item>
    
      <item>
        <title>Google Elevate Every Experience</title>
        <description>&lt;p&gt;Last week, I joined the Google Cloud team as a panellist as part of a webinar titled “&lt;a href=&quot;https://cloudonair.withgoogle.com/events/ai-solutions-for-marketing-support-and-beyond&quot;&gt;Elevate Every Experience: AI solutions for marketing, support, and beyond&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;It was a fun discussion, with engagement from &lt;a href=&quot;https://www.bestbuy.com/&quot;&gt;Best Buy&lt;/a&gt; and &lt;a href=&quot;https://www.gendigital.com/&quot;&gt;Gen Digital&lt;/a&gt;. We discussed many common themes, including the opportunities and risks associated with Generative AI, as well as our approaches and experience scaling solutions.&lt;/p&gt;

&lt;p&gt;The webinar is now available on demand.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/hPMrhdV_sw8?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Thanks to the Google team for the opportunity to share our insights.&lt;/p&gt;
</description>
        <pubDate>Fri, 11 Oct 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/10/11/Google-Elevate-Every-Experience/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/10/11/Google-Elevate-Every-Experience/</guid>
      </item>
    
      <item>
        <title>Intel Lunar Lake</title>
        <description>&lt;p&gt;In my recent article “&lt;a href=&quot;/2024/09/08/Chip-Wars/&quot;&gt;Chip Wars&lt;/a&gt;”, I shared my perspective regarding the recent turbulence across the PC silicon market.&lt;/p&gt;

&lt;p&gt;With the release of Intel Lunar Lake, formally known as Intel Core Ultra (Series 2), we now have the full picture, covering Qualcomm, Intel and AMD.&lt;/p&gt;

&lt;p&gt;Specifically, I have had access to a &lt;a href=&quot;/2024/06/24/surface-laptop-7/&quot;&gt;Microsoft Surface Laptop 7 (Qualcomm)&lt;/a&gt;, Asus Zenbook S 14 (Intel), and Asus Zenbook S 16 (AMD). Although these laptops are not like-for-like, they do offer insights into how each of the new architectures perform.&lt;/p&gt;

&lt;p&gt;All laptops were equipped with 32GB RAM and a 1TB SSD. The specifications of each system-on-a-chip can be found below.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.qualcomm.com/products/mobile/snapdragon/laptops-and-tablets/snapdragon-x-elite&quot;&gt;Qualcomm Snapdragon X Elite - X1E-80-100&lt;/a&gt; (12C/12T, 4.2GHz Max, 45 TOPS)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intel.com/content/www/us/en/products/sku/240957/intel-core-ultra-7-processor-258v-12m-cache-up-to-4-80-ghz/specifications.html&quot;&gt;Intel Core Ultra 7 258V&lt;/a&gt; (8C/8T, 4.8GHz Max, 47 TOPS)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amd.com/en/products/processors/laptop/ryzen/300-series/amd-ryzen-ai-9-hx-370.html&quot;&gt;AMD Ryzen AI 9 HX 370&lt;/a&gt; (12C/24T, 5.1GHz Max, 50 TOPS)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On paper, the AMD Ryzen AI 9 HX 370 is the most powerful system-on-a-chip, with the most cores, threads, boost clock frequency and the highest rated Neural Processing Unit (NPU).&lt;/p&gt;

&lt;p&gt;It is evident from the design that Intel has prioritised power efficiency with Lunar Lake, reducing the number of cores and removing hyper-threading. The Intel Core Ultra 7 258V has a total of eight cores, but only four are focused on performance.&lt;/p&gt;

&lt;p&gt;Outlined below are the results from my testing, covering common and specialist workloads. Knowing that power can have a direct impact on performance, I also tested each laptop whilst on battery.&lt;/p&gt;

&lt;p&gt;The first series of tests were completed when connected to mains power.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/intellunarlaketesting01.jpg&quot; alt=&quot;Intel Lunar Lake Testing&quot; title=&quot;Intel Lunar Lake Testing&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The second series of tests were completed when battery-powered.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/intellunarlaketesting02.jpg&quot; alt=&quot;Intel Lunar Lake Testing&quot; title=&quot;Intel Lunar Lake Testing&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As an immediate observation, the tests highlight a weakness of the Qualcomm Snapdragon X Elite regarding software compatibility due to the immaturity of Windows on ARM (something that I hope will improve over time). This can be seen with the results for PCMARK 10 (not compatible) and Tomb Raider (x86-64 translation).&lt;/p&gt;

&lt;p&gt;Overall, I am excited to see that Qualcomm, Intel and AMD have all produced compelling products, each delivering significant improvements over the previous generation, with ~20% better performance, ~40% better battery life and dramatically lower thermal characteristics (reduced cooling requirements and fan noise).&lt;/p&gt;

&lt;p&gt;In addition, they all meet the minimum requirement for “&lt;a href=&quot;/2024/06/21/microsoft-copilot+-pc/&quot;&gt;Copilot+ PC&lt;/a&gt;”, including a Neural Processing Unit (NPU) with a minimum of 40 TOPS. Currently, the real-world value of “Copilot+ PC” is minimal. However, I expect to see increased utilisation over the coming months/years. For example, there are rumours that Microsoft plans to offload Microsoft Teams features to the NPU, which should have a positive impact on performance and battery life.&lt;/p&gt;

&lt;p&gt;Based on the results, it is evident that Qualcomm delivers exceptional processor performance (single and multi-threaded) when operating on mains power and battery. This is especially impressive, acknowledging the class-leading ~15 hours of battery life.&lt;/p&gt;

&lt;p&gt;Therefore, if you are an individual who spends a lot of time working remotely on a laptop (no mains power or monitor connected), with a focus on productivity and collaboration tasks (e.g., Microsoft Office 365), Qualcomm offers a compelling value proposition. However, if you require specialist software or hardware, you may encounter compatibility issues. This creates a risk that should be carefully considered before any purchase (personal or business).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2024/09/08/Chip-Wars/&quot;&gt;As highlighted in my previous article&lt;/a&gt;, x86-64 is still the best option for most people, delivering solid performance and battery life, with guaranteed software and hardware compatibility. Although Intel has taken a serious step forward with Lunar Lake, specifically regarding battery life and graphics performance, I still believe that AMD delivers the best overall value proposition.&lt;/p&gt;

&lt;p&gt;Although AMD falls short on battery life (~10 hours), it excels in all other areas. Therefore, if you are a hybrid user, switching between docked (home/office) and remote working, with a requirement for broad software compatibility, I would recommend AMD.&lt;/p&gt;

&lt;p&gt;The one challenge for AMD will be availability and manufacturer support. Historically, Intel has dominated in this area, with a limited number of AMD laptops. I suspect this is why Intel has chosen to target Qualcomm as the primary competitor with Lunar Lake, assuming that they can continue to outsell AMD (regardless of the laptop performance) based on availability, alongside the sheer number and variety of Intel laptops.&lt;/p&gt;
</description>
        <pubDate>Tue, 08 Oct 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/10/08/Intel-Lunar-Lake/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/10/08/Intel-Lunar-Lake/</guid>
      </item>
    
      <item>
        <title>Google Gemini at Work</title>
        <description>&lt;p&gt;Over the past year, I have been documenting my team’s journey in developing and scaling a multi-model, multi-modal Generative AI framework for business, which has been used to power a wide range of use cases, primarily accessed via a natural language chatbot.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;Integrated Generative AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/02/Generative-AI-Enhancements/&quot;&gt;Generative AI - Enhancements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/12/15/generative-ai-eoy/&quot;&gt;Generative AI - EoY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/05/10/BTOES-Awards/&quot;&gt;BTOES Awards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/06/15/Generative-AI-Value/&quot;&gt;Generative AI Value&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/13/Generative-AI-Update/&quot;&gt;Generative AI Update&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Earlier this week, Google Cloud CEO Thomas Kurian shared a few words about this initiative during the “&lt;a href=&quot;https://cloudonair.withgoogle.com/events/gemini-at-work-24&quot;&gt;Gemini at Work&lt;/a&gt;” global digital event opening keynote.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/googlegeminiatwork01.jpg&quot; alt=&quot;Google Gemini at Work&quot; title=&quot;Google Gemini at Work&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The keynote is available for on-demand viewing, with a brief spotlight on my team at around 27 mins. He references some key use cases, specifically pharmacovigilance, customer orders, and clinical insights, acknowledging the return on investment, which has now achieved an estimated $1.9M.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/cfeBv2-94pc?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.youtube.com/@googlecloud&quot;&gt;Google Cloud&lt;/a&gt; YouTube channel (where the video is posted) has approximately 226,000 subscribers.&lt;/p&gt;

&lt;p&gt;Finally, Thomas wrote an accompanying blog post, “&lt;a href=&quot;https://blog.google/products/google-cloud/gemini-at-work-ai-agents/&quot;&gt;Customers are putting Gemini to work&lt;/a&gt;”, in which he provided some additional detail regarding our work.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Elanco, a world leader in animal health, has implemented a gen AI framework, powered by Vertex AI and Gemini, to support critical business processes, such as Pharmacovigilance, Customer Orders, and Clinical Insights. This has resulted in an estimated ROI of $1.9 million since launching last year.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;These references are great recognition for the team and hopefully help highlight the exceptional work across key domains, such as Science, Technology, Engineering and Maths.&lt;/p&gt;
</description>
        <pubDate>Tue, 24 Sep 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/09/24/Google-Gemini-at-Work/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/09/24/Google-Gemini-at-Work/</guid>
      </item>
    
      <item>
        <title>Google AI Webinar</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - &lt;a href=&quot;/2024/10/11/Google-Elevate-Every-Experience&quot;&gt;The webinar is now available for on demand viewing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On the 3rd of October at 18:00 UK, I will join the Google Cloud team as a panellist as part of a webinar titled “&lt;a href=&quot;https://cloudonair.withgoogle.com/events/ai-solutions-for-marketing-support-and-beyond&quot;&gt;Elevate Every Experience: AI solutions for marketing, support, and beyond&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://cloudonair.withgoogle.com/events/ai-solutions-for-marketing-support-and-beyond&quot;&gt;&lt;img src=&quot;/images/posts/googlecustomerexperiencewebinar01.jpg&quot; alt=&quot;Google Customer Experience Webinar&quot; title=&quot;Google Customer Experience Webinar&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The webinar will cover the use of Generative AI within business, including:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Create personalised campaigns, generate compelling content, and drive conversions with AI-powered tools.&lt;/li&gt;
  &lt;li&gt;Enhance productivity, improve self-service options, and deliver faster, more effective support.&lt;/li&gt;
  &lt;li&gt;Automate routine tasks, gain valuable insights from data and streamline workflows across your organisation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The event can be watched &lt;a href=&quot;https://cloudonair.withgoogle.com/events/ai-solutions-for-marketing-support-and-beyond&quot;&gt;live&lt;/a&gt; and will be made available for on-demand viewing.&lt;/p&gt;
</description>
        <pubDate>Fri, 20 Sep 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/09/20/Google-AI-Webinar/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/09/20/Google-AI-Webinar/</guid>
      </item>
    
      <item>
        <title>Animal Health Innovation</title>
        <description>&lt;p&gt;My company is a global leader in animal health dedicated to innovating and delivering products and services to prevent and treat disease in farm animals and pets.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2023/11/25/what-i-do/&quot;&gt;As the global Chief Technology Office (CTO) and Chief Information Security Officer (CISO)&lt;/a&gt;, I keep a close eye on the wider industry, especially companies and/or community projects that are pushing the boundaries to unlock new value. This includes companies generating interesting data that could be used to identify or accelerate the discovery of new products.&lt;/p&gt;

&lt;p&gt;Outlined below are some of the interesting companies/projects I am monitoring focused on animal health.&lt;/p&gt;

&lt;h3 id=&quot;companion-animal-pet&quot;&gt;Companion Animal (Pet)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://butternutbox.com/&quot;&gt;Butternut Box&lt;/a&gt;&lt;/strong&gt; - D2C Pet Wellness&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://mirna-diagnostics.com/en&quot;&gt;MI:RNA Diagnostics&lt;/a&gt;&lt;/strong&gt; - Veterinary Diagnostics&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://embarkvet.com/&quot;&gt;Embark&lt;/a&gt;&lt;/strong&gt; - Dog DNA Testing&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.animalbiome.com/&quot;&gt;AnimalBiome&lt;/a&gt;&lt;/strong&gt; - Dog and Cat Gut Health for Digestive Disorders&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://petpace.com/&quot;&gt;Petpace&lt;/a&gt;&lt;/strong&gt; - Pet Monitoring&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.greatpetcare.com/&quot;&gt;Great Pet Care&lt;/a&gt;&lt;/strong&gt; - Pet Management with Electronic Health Records&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.dvmsolutions.com/&quot;&gt;DVM Solutions&lt;/a&gt;&lt;/strong&gt; - Zero-touch Vital Signs Remote Monitor&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.algenex.com/&quot;&gt;ALGENEX&lt;/a&gt;&lt;/strong&gt; - Biotech Protein Production&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://joincompanion.com/&quot;&gt;Companion&lt;/a&gt;&lt;/strong&gt;- Autonomous Dog Engagement via Computer Vision&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://animab.com/&quot;&gt;Animab&lt;/a&gt;&lt;/strong&gt; - Oral Monoclonal Antibodies&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://activedognow.com/exubrion-therapeutics/&quot;&gt;Exubrion Therapeutics&lt;/a&gt;&lt;/strong&gt; - Chronic Pain in Companion Animals&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.gallant.com/&quot;&gt;Gallant Therapeutics&lt;/a&gt;&lt;/strong&gt; - Allogeneic Cell Therapies for Chronic Conditions&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.imprimedicine.com/&quot;&gt;ImpriMed&lt;/a&gt;&lt;/strong&gt; - Personalised Drug Response Prediction Service for Cancer&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.mbftherapeutics.com/&quot;&gt;MBF Therapeutics&lt;/a&gt;&lt;/strong&gt; - DNA Vaccine Platform&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://laika.aitemsolutions.com/&quot;&gt;LAIKA&lt;/a&gt;&lt;/strong&gt; - AI for Veterinary Diagnostic Support&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.fitbark.com/&quot;&gt;FitBark&lt;/a&gt;&lt;/strong&gt; - Pet GPS and Health Tracker&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://dogagingproject.org/&quot;&gt;Dog Aging Project&lt;/a&gt;&lt;/strong&gt; - Canine Health Study&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.bennotx.com/&quot;&gt;Benno Therapeutics&lt;/a&gt;&lt;/strong&gt; - Cancer Treatment&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://tractive.com/&quot;&gt;Tractive&lt;/a&gt;&lt;/strong&gt; - GPS and Health Tracker&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;farm-animal&quot;&gt;Farm Animal&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://inovo.nl/&quot;&gt;In Ovo&lt;/a&gt;&lt;/strong&gt; - Poultry Animal Welfare&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.biotangents.co.uk/&quot;&gt;Biotangents&lt;/a&gt;&lt;/strong&gt; - Livestock Infectious Diseases&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.aviasenze.ai/&quot;&gt;Aviasenze&lt;/a&gt;&lt;/strong&gt; - Poultry Sensor Technologies&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.itlscotland.co.uk/&quot;&gt;Innovent&lt;/a&gt;&lt;/strong&gt; - Pig and Cattle Sensor Technologies&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://swinetechnologies.com/&quot;&gt;SwineTech&lt;/a&gt;&lt;/strong&gt; - Pig Sensor Technologies&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://biomedit.com/&quot;&gt;Biomedit&lt;/a&gt;&lt;/strong&gt; - Microbiome Innovation for Animal Health&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.qscoutlab.com/&quot;&gt;Advanced Animal Diagnostics&lt;/a&gt;&lt;/strong&gt; - Diagnostics to for Farm Animal Diseases&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.performancelivestockanalytics.com/&quot;&gt;Performance Livestock Analytics&lt;/a&gt;&lt;/strong&gt; - Livestock Management Solutions&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.digi.com/resources/customer-stories/cainthus-dairy-farm-ai-monitoring-technology&quot;&gt;Cainthus&lt;/a&gt;&lt;/strong&gt; - Dairy Farm Technologies&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.onecup.ai/&quot;&gt;OnCup AI&lt;/a&gt;&lt;/strong&gt; - Livestock Management via Computer Vision&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.serket-tech.com/&quot;&gt;Serket&lt;/a&gt;&lt;/strong&gt; - Livestock Health Management&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.breedr.co/en/&quot;&gt;Breedr&lt;/a&gt;&lt;/strong&gt; - Livestock Supply-chain&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://arbiom.com/&quot;&gt;Arbiom&lt;/a&gt;&lt;/strong&gt; - Protein Source for Feed Manufacturers&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.baseimmune.co.uk/&quot;&gt;Baseimmune&lt;/a&gt;&lt;/strong&gt; - Universal Vaccines&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.chordatainsight.com/&quot;&gt;Chordata Limited&lt;/a&gt;&lt;/strong&gt; - Livestock Integrated Health Microchip&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://codygenetics.com/&quot;&gt;Cody Genetics&lt;/a&gt;&lt;/strong&gt; - Genetic Editing Tools&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://pondus.xyz/&quot;&gt;Pondus&lt;/a&gt;&lt;/strong&gt; - Poultry Monitoring and Measurement&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://verovaccines.com/&quot;&gt;VEROVACCINES&lt;/a&gt;&lt;/strong&gt; - Poultry, Swine and Cattle Yeast-based Technology Vaccines&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://sellmylivestock.com/&quot;&gt;SellMyLivestock&lt;/a&gt;&lt;/strong&gt; - Livestock Marketplace&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next year, I will attend the &lt;a href=&quot;https://animalhealthevent.com/events/animal-health-europe&quot;&gt;Animal Health, Nutrition, and Technology Innovation Europe&lt;/a&gt; event in London, hosted by &lt;a href=&quot;https://www.kisacoresearch.com/&quot;&gt;Kisaco Research&lt;/a&gt;. This event provides an invaluable networking opportunity for the animal health industry, alongside specific channels for start-ups to showcase their ideas, products and services.&lt;/p&gt;

&lt;p&gt;I am certainly looking forward to engaging with the community!&lt;/p&gt;
</description>
        <pubDate>Wed, 11 Sep 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/09/11/Animal-Health-Innovation/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/09/11/Animal-Health-Innovation/</guid>
      </item>
    
      <item>
        <title>Chip Wars</title>
        <description>&lt;p&gt;Following years of stagnation, the CPU market has finally been revived.&lt;/p&gt;

&lt;p&gt;It started with the launch of &lt;a href=&quot;/2020/11/18/apple-m1/&quot;&gt;Apple Silicon for Mac&lt;/a&gt; in 2020, highlighting the potential of ARM for general-purpose computing. The performance, power management and thermal efficiency delivered by the Apple M1 System on a Chip (SoC) destroyed the competition, highlighting what was possible if ARM was taken seriously outside the mobile market.&lt;/p&gt;

&lt;p&gt;Earlier this year, Qualcomm attempted the same manoeuvre targeting the PC laptop market (Windows and Linux), delivering the ARM-based &lt;a href=&quot;/2024/06/21/Microsoft-Copilot+-PC/&quot;&gt;Snapdragon X Elite/Plus SoC&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Although not quite as impactful as Apple Silicon, &lt;a href=&quot;/2024/06/24/Surface-Laptop-7/&quot;&gt;Qualcomm achieved their goal&lt;/a&gt;, demonstrating that it can disrupt the established duopoly of Intel/AMD.&lt;/p&gt;

&lt;p&gt;Unsurprisingly, the success of this release, alongside strong, visible support from Microsoft and the hardware manufacturers, has forced Intel and AMD to rethink their strategies and increase their rate of innovation.&lt;/p&gt;

&lt;p&gt;This led to the launch of &lt;a href=&quot;/2024/08/19/AMD-Ryzen-AI-370-HX/&quot;&gt;AMD Strix Point&lt;/a&gt; in July and &lt;a href=&quot;https://www.intel.com/content/www/us/en/newsroom/news/intels-lunar-lake-processors-arriving-q3-2024.html&quot;&gt;Intel Lunar Lake, announced last week&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2024/08/19/AMD-Ryzen-AI-370-HX/&quot;&gt;I have tested AMD Strix Point&lt;/a&gt; and can confirm that AMD has successfully delivered performance, power management and thermal efficiency that rivals Qualcomm. Looking at the details shared by Intel, I expect them to achieve similar results with Lunar Lake (something I plan to verify personally).&lt;/p&gt;

&lt;p&gt;Therefore, we now have three viable players delivering silicon for the PC laptop market, attempting to “one up” each other to solidify their position as the market leaders.&lt;/p&gt;

&lt;p&gt;This level of aggressive competition is fun to watch, but more importantly great for consumers and businesses, helping to deliver notable innovation alongside competitive pricing.&lt;/p&gt;

&lt;p&gt;With that said, the current market turbulence has also created confusion. Therefore, this article shares my perspective on the things to consider when purchasing a new PC laptop, covering x86-64 vs. ARM and Intel vs. AMD.&lt;/p&gt;

&lt;h4 id=&quot;x86-64-intel-and-amd&quot;&gt;x86-64 (Intel and AMD)&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;100% compatible with existing software.&lt;/li&gt;
  &lt;li&gt;100% compatible with existing hardware, including printers, capture cards, eGPU docks, etc.&lt;/li&gt;
  &lt;li&gt;Support for discrete graphics cards from NVIDIA, AMD and Intel.&lt;/li&gt;
  &lt;li&gt;Excellent gaming compatibility and performance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;arm-qualcomm&quot;&gt;ARM (Qualcomm)&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;Compatible with mainstream software, covering web browsing, productivity, collaboration, etc.&lt;/li&gt;
  &lt;li&gt;Excellent thermal efficiency, resulting in low temperatures and fan noise.&lt;/li&gt;
  &lt;li&gt;Excellent idle efficiency, providing long standby times.&lt;/li&gt;
  &lt;li&gt;Excellent webcam quality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my opinion, the primary differentiator between x86-64 and ARM is software compatibility and support for discrete graphics cards.&lt;/p&gt;

&lt;p&gt;Therefore, if you are a gamer or require specialist applications for your workloads (e.g., graphics, video), I recommend x86-64 (Intel and AMD).&lt;/p&gt;

&lt;p&gt;If your workloads are primarily focused on web browsing, productivity and collaboration, leveraging mainstream applications (e.g., Office 365), I recommend exploring ARM (Qualcomm). This is especially true if you are a frequent traveller, recognising the thermal efficiency and long standby times offered by the ARM architecture.&lt;/p&gt;

&lt;p&gt;Although I am pleased to see ARM finally become relevant for the PC laptop market, it is fair to state that x86-64 is still the best option for most people, helping to avoid any confusion regarding software/hardware compatibility.&lt;/p&gt;

&lt;p&gt;Hopefully, over the next year, this distinction will become less relevant, with native ARM software and hardware drivers being made available alongside x86-64. In addition, the operating system (Windows or Linux) should be smart enough to automatically select the correct (native) architecture, without any user intervention (something that is not consistently managed today).&lt;/p&gt;

&lt;p&gt;Assuming the intent is to purchase an x86-64 PC laptop, the decision is between Intel and AMD. Knowing that Intel Lunar Lake is not yet available, it is difficult to speak with confidence regarding the best option.&lt;/p&gt;

&lt;p&gt;However, I would certainly not recommend purchasing an Intel-based PC laptop that pre-dates Lunar Lake, recognising that Intel is in the process of making a significant architecture transition.&lt;/p&gt;

&lt;p&gt;I can speak with confidence that AMD Strix Point PC laptops, based on the Zen 5 architecture, are excellent. &lt;a href=&quot;/2024/08/19/AMD-Ryzen-AI-370-HX/&quot;&gt;In my testing, AMD Strix Point delivers solid performance, power management and thermal efficiency&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;AMD is commonly considered the underdog and does not have the same market presence as Intel. However, I would argue they are ahead regarding the quality and consistency of their architecture (e.g., Zen series). Unfortunately, AMD has been known to have issues regarding firmware and driver support, which can undermine their architecture advantage, especially within businesses, that require a solid firmware foundation for management, security, compliance, etc.&lt;/p&gt;

&lt;p&gt;This is where Intel and their historical dominance of the PC laptop market has a clear advantage, supported by its tight working relationship with Microsoft and the hardware manufacturers. With that said, there is evidence that these critical relationships are not as robust as they once were, opening the door to greater competition from AMD and Qualcomm.&lt;/p&gt;

&lt;p&gt;Therefore, as it stands today, I would happily recommend AMD Strix Point for general consumers, which will also have great Linux support as the relevant drivers get mainstreamed into the kernel. When Intel Lunar Lake becomes available, I expect it to rival AMD Strix Point but is unlikely to offer significant advantages. However, the wider support from hardware manufacturers will likely make Lunar Lake the preference for businesses.&lt;/p&gt;
</description>
        <pubDate>Sun, 08 Sep 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/09/08/Chip-Wars/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/09/08/Chip-Wars/</guid>
      </item>
    
      <item>
        <title>Ray-Ban Meta</title>
        <description>&lt;p&gt;I have always been interested in wearable technology, specifically head-mounted devices.&lt;/p&gt;

&lt;p&gt;Over the years, I have tested a wide variety of solutions, covering professional hardware such as &lt;a href=&quot;https://www.realwear.com/&quot;&gt;RealWare&lt;/a&gt;, as well as consumer products, like Google Glass and &lt;a href=&quot;/2024/02/03/apple-vision-pro-impressions/&quot;&gt;Apple Vision Pro&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In my opinion, these devices have the potential to change the way we interact with technology via a concept known as ubiquitous/pervasive computing, which is where technology is an integrated part of common objects and is made to appear seamlessly anytime and anywhere.&lt;/p&gt;

&lt;p&gt;If implemented effectively, this concept can make technology more personal, delivering value only when it is required, without becoming a distraction (a common issue with smartphones). For example, imagine walking up to a sign in a foreign language and having it automatically translated.&lt;/p&gt;

&lt;p&gt;Unfortunately, every attempt to deliver a viable head-mounted device has failed in one key area, social acceptance.&lt;/p&gt;

&lt;p&gt;For example, the term “glasshole” is used to describe anyone brave enough to wear Google Glass in public. Ironically, Google Glass was arguably the least offensive head-mounted device, when compared to products such as the Apple Vision Pro, etc.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applevisionpro09.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Recently, I have been testing the &lt;a href=&quot;https://www.ray-ban.com/uk/ray-ban-meta-smart-glasses&quot;&gt;Ray-Ban Meta&lt;/a&gt; smart glasses, specifically the Wayfarer model. What makes this head-mounted device interesting is that it looks and feels just like an ordinary pair of sunglasses.&lt;/p&gt;

&lt;p&gt;In fact, I recently wore them to a family day out and not a single person noticed anything different, unique or special.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ray-banmeta01.jpg&quot; alt=&quot;Ray-Ban Meta&quot; title=&quot;Ray-Ban Meta&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The embedded technology is fairly simple, specifically:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Camera (12MP)&lt;/li&gt;
  &lt;li&gt;Microphone&lt;/li&gt;
  &lt;li&gt;Speakers&lt;/li&gt;
  &lt;li&gt;Touchpad&lt;/li&gt;
  &lt;li&gt;Capture Button&lt;/li&gt;
  &lt;li&gt;Bluetooth and Wi-Fi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Ray-Ban Meta smart glasses link to the Meta View app (&lt;a href=&quot;https://apps.apple.com/us/app/meta-view/id1558240027&quot;&gt;iOS&lt;/a&gt; and &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.facebook.stella&amp;amp;hl=en_GB&quot;&gt;Android&lt;/a&gt;), providing access to review photos/videos, whilst also triggering the the voice assistant.&lt;/p&gt;

&lt;p&gt;Currently, the voice assistant is fairly limited (reading notifications, messages, etc.) However, this is an area where I expect to see continuous innovation, as Meta looks to integrate more Generative AI capabilities, leveraging the &lt;a href=&quot;https://llama.meta.com/&quot;&gt;Meta Llama 3.1&lt;/a&gt; language model.&lt;/p&gt;

&lt;p&gt;At this point, I would expect the Ray-Ban Meta smart glasses to provide access to rich conversational content, similar to what we see from &lt;a href=&quot;https://chatgpt.com/&quot;&gt;ChatGPT&lt;/a&gt; and &lt;a href=&quot;https://gemini.google.com/&quot;&gt;Google Gemini&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As you would expect from a Meta product, the cameras include tight integration with Meta social services such as Facebook, Instagram, WhatsApp, Facebook Messenger, etc.&lt;/p&gt;

&lt;p&gt;I don’t use any social networks, therefore I had feared the camera would be rendered useless. Thankfully, it can be used independently and privately, including offline (no Internet connection required).&lt;/p&gt;

&lt;p&gt;The short video below shows my daughter and I going down a slide together. It was fun to be able to capture this moment, whilst also remaining completely present to enjoy the ride (not having to hold a smartphone, etc.)&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/vTAtLVoI9Bc?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The battery life of the Ray-Ban Meta smart glasses is rated at 4 hours from a single charge and up to 36 hours when combined with the included charging case. In my experience, I have been able to use the sunglasses on day trips without any issues, admittedly this was with limited/occasional usage of the smart features (notifications, messages, camera, etc.)&lt;/p&gt;

&lt;p&gt;Recognising that the sunglasses are built by Ray-Ban, they are also very comfortable and excellent at protecting your eyes from the sun. They are even available with prescription lenses, meaning they deliver value, even when the technology is disabled or off. This is not the case with most wearable technology, which becomes useless when not active.&lt;/p&gt;

&lt;p&gt;Finally, I think it is worth mentioning the newly announced &lt;a href=&quot;https://www.evenrealities.com/g1&quot;&gt;Even Realities G1&lt;/a&gt; smart glasses, which similar to the Ray-Ban Meta smart glasses, were designed as glasses first, smart glasses second.&lt;/p&gt;

&lt;p&gt;Instead of delivering value via microphone and speakers, they include a system called HAOS (Holistic Adaptive Optical System). In short, Micro-LED optical engines transmit content onto a pair of waveguide lenses, which then project information approximately two meters ahead of you. This can include notifications, messages, navigation, and even real-time translations (e.g., subtitles).&lt;/p&gt;

&lt;p&gt;I am excited to test the Even Realities G1 smart glasses but can see a world where these complimentary audio/video/display capabilities are combined. This could be an incredible combination, that feels feasible, without impacting the design.&lt;/p&gt;

&lt;p&gt;In my opinion, this is a turning point for head-mounted devices, which has been achieved by acknowledging that “less is more”. For example, in most scenarios, users do not need the “ultra high tech” capabilities of an Apple Vision Pro. Instead, specific capabilities that directly target and enrich real-world scenarios are more valuable, whilst also making them viable for daily use and critically, and socially acceptable.&lt;/p&gt;

</description>
        <pubDate>Sun, 01 Sep 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/09/01/Ray-Ban-Meta/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/09/01/Ray-Ban-Meta/</guid>
      </item>
    
      <item>
        <title>Product Operating Model Roles</title>
        <description>&lt;p&gt;In my previous two articles, I outlined the the Product Operating Model including details regarding the twenty product-first principles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/20/Product-Operating-Model/&quot;&gt;Product Operating Model&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/08/22/Product-Operating-Model-Principles/&quot;&gt;Product Operating Model Principles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a reminder, the Product Operating Model is a conceptual model, it is not a methodology, process or framework. It is about moving from output to achieving outcomes, following a set of product-first principles.&lt;/p&gt;

&lt;p&gt;To enable The Product Operating Model, there are three roles that are critical when attempting to create a product that is valuable, viable, usable and feasible. These roles are commonly described as the product triad or product trio.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/productoperatingmodel02.jpg&quot; alt=&quot;The Product Operating Model&quot; title=&quot;The Product Operating Model&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Outlined below are the key competencies and accountability for each role.&lt;/p&gt;

&lt;h4 id=&quot;product-manager&quot;&gt;Product Manager&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The product manager must have deep knowledge of the customer and the associated business processes. This includes strong situational awareness of opportunities, constraints, dependencies, etc. The product manager is accountable for ensuring any product is both &lt;strong&gt;valuable&lt;/strong&gt; and &lt;strong&gt;viable&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;product-designer&quot;&gt;Product Designer&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The product designer (where required) participates in all phases of a product, from discovery to delivery to iteration. They focus on service design, user experience, prototyping, testing, and interactions. The product designer is accountable for ensuring the product is &lt;strong&gt;usable&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;technical-lead&quot;&gt;Technical Lead&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The technical lead must have deep technical knowledge, including an understanding of principles, standards and positioning. The technical lead is accountable for ensuring the product is &lt;strong&gt;feasible&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These three roles are individual contributors, meaning they have no direct reports. As a result, there is one additional role (Product Leader) that supports the product triad/trio, focused on the people.&lt;/p&gt;

&lt;h4 id=&quot;product-leader&quot;&gt;Product Leader&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The product leader must have deep experience in staffing and developing individuals, requiring a holistic strategic context. The product leader is accountable for people management, team topology and communicating strategy, creating &lt;strong&gt;empowered&lt;/strong&gt; individuals and teams.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It should be noted, that these roles are more than titles. The individuals associated with these roles must have the relevant experience and expertise to succeed. For example, taking a previous role, like a project manager, and renaming them to a product manager is likely to fail.&lt;/p&gt;
</description>
        <pubDate>Sat, 24 Aug 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/08/24/Product-Operating-Model-Roles/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/08/24/Product-Operating-Model-Roles/</guid>
      </item>
    
      <item>
        <title>Product Operating Model Principles</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2024/08/20/Product-Operating-Model/&quot;&gt;In my last article, I outlined the Product Operating Model&lt;/a&gt; from the &lt;a href=&quot;https://www.svpg.com/&quot;&gt;Silicon Valley Product Group (SVPG)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a reminder, the Product Operating Model is a conceptual model, it is not a methodology, process or framework. It is about moving from output to achieving outcomes, following a set of product-first principles.&lt;/p&gt;

&lt;p&gt;In this article, I will share more details regarding the twenty product-first principles.&lt;/p&gt;

&lt;h4 id=&quot;product-team-principles&quot;&gt;Product Team Principles&lt;/h4&gt;

&lt;p&gt;As stated by Marty Cagan, &lt;em&gt;“The most fundamental of all product concepts is the notion of an empowered, cross-functional product team.”&lt;/em&gt;.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Empowered with Problems to Solve&lt;/strong&gt;: Product teams must be given a problem to solve, rather than solutions to build, and, most importantly, are held accountable for the results. They are empowered to make decisions and are not “order-takers”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Outcomes over Output&lt;/strong&gt;: Establish outcome-based goals, leveraging Objectives and Key Results (OKRs), which create focus on the priority, promote curiosity and provide relevant context. Outcomes are the results of actions, not features.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Sense of Ownership&lt;/strong&gt;: Product teams must have the sponsorship and autonomy to come up with the solutions to the problems (Product Discovery), alongside the responsibility to build them (Product Delivery).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Collaboration&lt;/strong&gt;: Promote respectful discourse, assuming good intentions when challenging ideas or decisions. Encourage a diverse perspective, but when a decision is concluded, ensure total commitment.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;product-strategy-principles&quot;&gt;Product Strategy Principles&lt;/h4&gt;

&lt;p&gt;As stated by Marty Cagan, &lt;em&gt;“The product vision is the future you are trying to create and, most importantly, how this vision will improve the lives of your customers.”&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Focus&lt;/strong&gt;: Ensure product teams have the foundations to focus, avoiding distractions that do not support the defined outcome. Be comfortable saying “no”, to promote discipline.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Powered by Insights&lt;/strong&gt;: Leverage data, feedback and signals to inform strategy, ensuring strong situation awareness. Strategy is discovered, not pre-defined, requiring iteration and continuous improvement.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Transparency&lt;/strong&gt;: Always start with why, ensuring the relevant context is communicated effectively to key stakeholders, building trust and credibility when making decisions.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Placing Bets&lt;/strong&gt;: Acknowledge that there may be more than one solution to a given problem, consider multiple product teams with a rapid feedback loop to inform strategy and fail fast where needed.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;product-discovery-principles&quot;&gt;Product Discovery Principles&lt;/h4&gt;

&lt;p&gt;Innovation occurs within Product Discovery and is a critical dimension on the road towards a valuable outcome. It is also the dimension that is commonly neglected in the race to start delivering.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Minimise Waste&lt;/strong&gt;: Accept that failure can be a successful outcome of discovery, acknowledging that the majority (&amp;gt;75%) of ideas will not perform as desired. Attempt to solve every problem with the minimum amount of wasted time and effort.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Assess Product Risks&lt;/strong&gt;: Every product team should have a common understanding of the risks, covering value, viability, usability, and feasibility.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Embrace Rapid Experimentation&lt;/strong&gt;: Promote curiosity and empower experimentation with the product team, whilst ensuring the outcome is well-defined and remains relevant. Remove bureaucracy to avoid unnecessary friction, allowing teams to fail fast.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Test Ideas Responsibly&lt;/strong&gt;: Experiments must be handled in a way that protects the company and its customers, covering concepts such as security, privacy, ethics, compliance, etc.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;product-delivery-principles&quot;&gt;Product Delivery Principles&lt;/h4&gt;

&lt;p&gt;To promote empowerment and innovation, a single, cross-functional product team must be responsible for both discovery and delivery (not separate teams), ensuring continuity.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Small, Frequent, Uncoupled Releases&lt;/strong&gt;: Leveraging an agile methodology, delivery should consist of short iterative sprints, with each sprint prioritising the important areas to deliver a viable product, always targeting the defined outcome.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Instrumentation&lt;/strong&gt;: Establish the required technical foundations to observe how the product is used, providing valuable feedback to support continuous improvement.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Monitoring&lt;/strong&gt;: Embed real-time monitoring at multiple levels to understand the product’s health, prompting short feedback loops that enable the team to proactively identify and rapidly respond to any concerns.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Deployment Infrastructure&lt;/strong&gt;: Automate as much of the delivery lifecycle as possible, leveraging a standardised CI/CD pipeline to reduce human errors and increase team productivity.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;product-culture-principles&quot;&gt;Product Culture Principles&lt;/h4&gt;

&lt;p&gt;Excessive control is a primary risk factor preventing companies from innovating, growing and excelling, eroding trust and personal value.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Principles over Process&lt;/strong&gt;: Process is great when both the problem and solution are known. However, the process can impact agility, making teams less responsive to new opportunities and threats, as well as more risk-adverse. These are all barriers to creating great products.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Trust over Control&lt;/strong&gt;: As promoted by Simon Sinek, product teams can only be empowered when they are trusted, which requires psychological safety, supporting a “speak up” culture without any fear of humiliation or retribution.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Innovation over Predictability&lt;/strong&gt;: 100% predictability = 0% innovation. Predictability is important only if it delivers the value the company depends on, targeting areas that are highly industrialised or commodity.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Learning over Failure&lt;/strong&gt;: Failure only occurs when teams neglect the opportunity to learn or fail to apply the learnings to support future initiatives.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Additional detail regarding each product-first principle is outlined in the book &lt;a href=&quot;https://www.svpg.com/books/transformed-moving-to-the-product-operating-model/&quot;&gt;TRANSFORMED&lt;/a&gt;, by Marty Cagan. I would also recommend &lt;a href=&quot;https://www.productcompass.pm/&quot;&gt;The Product Compass&lt;/a&gt;, which is an incredible resource for Product Managers.&lt;/p&gt;

&lt;p&gt;In the next article, I plan to share my thoughts regarding the key roles and responsibilities required to enable an empowered product team.&lt;/p&gt;
</description>
        <pubDate>Thu, 22 Aug 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/08/22/Product-Operating-Model-Principles/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/08/22/Product-Operating-Model-Principles/</guid>
      </item>
    
      <item>
        <title>Product Operating Model</title>
        <description>&lt;p&gt;In 2020, we started our journey of implementing a product-led operating model, to increase our effectiveness and unlock new opportunities associated with digital/data business models.&lt;/p&gt;

&lt;p&gt;The journey has not been straight forward and although we have made great progress, we continue to learn and evolve.&lt;/p&gt;

&lt;p&gt;Earlier this year, Marty Cagan published his latest book called &lt;a href=&quot;https://www.svpg.com/books/transformed-moving-to-the-product-operating-model/&quot;&gt;TRANSFORMED&lt;/a&gt;, which builds on the foundation for a Product Operating Model outlined in the first two books &lt;a href=&quot;https://www.svpg.com/books/inspired-how-to-create-tech-products-customers-love-2nd-edition/&quot;&gt;INSPIRED&lt;/a&gt; and &lt;a href=&quot;https://www.svpg.com/books/empowered-ordinary-people-extraordinary-products/&quot;&gt;EMPOWERED&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We have been leveraging this material, alongside direct engagement with Marty Cagan as our reference as we continue to mature.&lt;/p&gt;

&lt;p&gt;Marty recently presented to our team, helping to grow our understanding further.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/productoperatingmodel01.jpg&quot; alt=&quot;The Product Operating Model&quot; title=&quot;The Product Operating Model&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With this in mind, this article will outline the basics of the Product Operating Model, in the spirit of sharing our learnings with others who may be attempting a similar transformation.&lt;/p&gt;

&lt;p&gt;The Product Operating Model from the &lt;a href=&quot;https://www.svpg.com/&quot;&gt;Silicon Valley Product Group (SVPG)&lt;/a&gt; is a conceptual model, it is not a methodology, process or framework.&lt;/p&gt;

&lt;p&gt;It is about moving from output to achieving outcomes, following a set of product-first principles.&lt;/p&gt;

&lt;p&gt;Although individual company culture and outcomes can be very different, the product-first principles can be commonly applied or adapted.&lt;/p&gt;

&lt;p&gt;The historical focus on output is a consistent root cause as to why companies fail to deliver value.&lt;/p&gt;

&lt;p&gt;The Product Operating Model focuses on three dimensions:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Product Strategy&lt;/strong&gt;: How do you decide what to work on? What is most important?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Product Discovery&lt;/strong&gt;: How do you solve the problem? How do you discover a solution?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Product Delivery&lt;/strong&gt;: How do you build, test and scale the solution? How do you prove the outcome?&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Innovation occurs within Product Discovery and is a critical dimension on the road towards a valuable outcome. It is also the dimension that is commonly neglected in the race to start delivering.&lt;/p&gt;

&lt;p&gt;There are twenty principles that support the three dimensions, including team and culture. They focus on ensuring any product is &lt;strong&gt;valuable&lt;/strong&gt;, &lt;strong&gt;viable&lt;/strong&gt;, &lt;strong&gt;usable&lt;/strong&gt;, and &lt;strong&gt;feasible&lt;/strong&gt;.&lt;/p&gt;

&lt;h4 id=&quot;product-team-principles&quot;&gt;Product Team Principles&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;Empowered with Problems to Solve&lt;/li&gt;
  &lt;li&gt;Outcomes over Output&lt;/li&gt;
  &lt;li&gt;Sense of Ownership&lt;/li&gt;
  &lt;li&gt;Collaboration&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;product-strategy-principles&quot;&gt;Product Strategy Principles&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;Focus&lt;/li&gt;
  &lt;li&gt;Powered by Insights&lt;/li&gt;
  &lt;li&gt;Transparency&lt;/li&gt;
  &lt;li&gt;Placing Bets&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;product-discovery-principles&quot;&gt;Product Discovery Principles&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;Minimise Waste&lt;/li&gt;
  &lt;li&gt;Assess Product Risks&lt;/li&gt;
  &lt;li&gt;Embrace Rapid Experimentation&lt;/li&gt;
  &lt;li&gt;Test Ideas Responsibly&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;product-delivery-principles&quot;&gt;Product Delivery Principles&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;Small, Frequent, Uncoupled Releases&lt;/li&gt;
  &lt;li&gt;Instrumentation&lt;/li&gt;
  &lt;li&gt;Monitoring&lt;/li&gt;
  &lt;li&gt;Deployment Infrastructure&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;product-culture-principles&quot;&gt;Product Culture Principles&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;Principles over Process&lt;/li&gt;
  &lt;li&gt;Trust over Control&lt;/li&gt;
  &lt;li&gt;Innovation over Predictability&lt;/li&gt;
  &lt;li&gt;Learning over Failure&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Details of each principle are outlined in the book &lt;a href=&quot;https://www.svpg.com/books/transformed-moving-to-the-product-operating-model/&quot;&gt;TRANSFORMED&lt;/a&gt;, by Marty Cagan.&lt;/p&gt;

&lt;p&gt;In a future article, I plan to provide greater detail into the specific principles, including my own observations implementing at scale within a life sciences company with a seventy-year heritage that is not digital-first.&lt;/p&gt;
</description>
        <pubDate>Tue, 20 Aug 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/08/20/Product-Operating-Model/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/08/20/Product-Operating-Model/</guid>
      </item>
    
      <item>
        <title>AMD Ryzen AI 370 HX</title>
        <description>&lt;p&gt;This is a very interesting time for Windows-based laptops, with ARM-based architecture becoming viable, new processors from Qualcomm (Snapdragon), AMD (Strix Point) and eventually Intel (Lunar Lake), alongside new hardware/software capabilities focused on Artificial Intelligence (AI).&lt;/p&gt;

&lt;p&gt;Over the past few months, I have been testing the new Qualcomm Snapdragon X Elite, which is ARM-based, not x86-64. Specifically, I have access to the &lt;a href=&quot;/2024/06/24/Surface-Laptop-7/&quot;&gt;Microsoft Surface Laptop 7&lt;/a&gt; and &lt;a href=&quot;/2024/07/23/Surface-Pro-11/&quot;&gt;Surface Pro 11&lt;/a&gt;. Overall, I have been very impressed by the results, with both devices delivering excellent performance, battery life and thermal efficiency in a compact design (equivalent to the Apple MacBook Air, etc.)&lt;/p&gt;

&lt;p&gt;As a direct response, AMD recently released the AMD Ryzen AI 300 series of processes (codename Strix Point), which are the first to be based on their next-generation Zen 5 architecture. In theory, these new processors will deliver for x86-64 laptops all of the benefits offered by the ARM-based Qualcomm Snapdragon X Elite.&lt;/p&gt;

&lt;p&gt;I have been testing the AMD Ryzen AI 9 HX 370 (horrible name), which is the flagship mobile processor, targeting a configurable TDP (cTDP) of 15-54W.&lt;/p&gt;

&lt;p&gt;The AMD Ryzen AI 9 HX 370 is built on the TSMC 4nm FinFET technology and includes 4x Zen 5 and 8x Zen 5c cores, providing a total of 12 physical cores and 24 threads. The processor can deliver a single-core boost speed of up to 5.1GHz for the Zen 5 cores and up to 3.3GHz for the Zen 5c cores.&lt;/p&gt;

&lt;p&gt;This is the first time AMD has produced a “big.LITTLE” design, with the inclusion of Zen 5c cores, which should help deliver better battery life and thermal efficiency across common workloads (e.g., productivity, collaboration, etc.)&lt;/p&gt;

&lt;p&gt;In addition, the AMD Ryzen AI 9 HX 370 includes the new AMD Radeon 890M graphics, built on the RDNA 3.5 architecture, with 16 cores and a frequency of 2.9GHz.&lt;/p&gt;

&lt;p&gt;Finally, the Neural Processing Unit (NPU) has been improved, delivering 50 TOPS for local AI workloads. This is above the &lt;a href=&quot;/2024/06/21/Microsoft-Copilot+-PC/&quot;&gt;Microsoft Copilot+ PC&lt;/a&gt; requirement of 40 TOPS, but AMD devices are not yet Copilot+ PC branded.&lt;/p&gt;

&lt;p&gt;Overall, this specification is very impressive and certainly (on paper) rivals anything offered by Qualcomm or Intel. Full details regarding the specification of the AMD Ryzen AI 9 HX 370, including connectivity options, can be found on the &lt;a href=&quot;https://www.amd.com/en/products/processors/laptop/ryzen/300-series/amd-ryzen-ai-9-hx-370.html&quot;&gt;AMD website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have been testing the AMD Ryzen AI 9 HX 370 with the &lt;a href=&quot;https://www.asus.com/uk/laptops/for-creators/proart/proart-p16-h7606/&quot;&gt;Asus ProArt P16&lt;/a&gt;. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus ProArt P16 (H7606)&lt;/li&gt;
  &lt;li&gt;AMD Ryzen AI 9 HX 370 (12C/24T)&lt;/li&gt;
  &lt;li&gt;64GB LPDDR5x (7500 MT/s) Memory&lt;/li&gt;
  &lt;li&gt;2TB NVMe M.2 SSD&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 4070 8GB GDDR6 (105W)&lt;/li&gt;
  &lt;li&gt;16-inch WQUXGA OLED Touch Display (3840x2400 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;Wi-Fi 7, Bluetooth 5.4&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Asus ProArt P16 is a high-performance laptop designed for creative workloads (hence the ProArt branding). However, it is surprisingly compact considering the specification (including a discrete GPU) and the 16-inch OLED display.&lt;/p&gt;

&lt;p&gt;It also includes a massive array of connectivity, including USB 4 Type-C, USB 3.2 Gen 2 Type-A, HDMI 2.1, SD-Express 7.0, etc. This makes the Asus ProArt P16 highly versatile, removing the need for any dongles or hubs.&lt;/p&gt;

&lt;p&gt;The focus of this article is the AMD Ryzen AI 9 HX 370. However, I will state the built quality of the Asus ProArt P16 is excellent, supported by premium materials and a dense, rigid chassis. The keyboard and large trackpad are both very good (unfortunately, the trackpad is not haptic).&lt;/p&gt;

&lt;p&gt;My only critique regarding the hardware is the 60Hz refresh rate, which is acceptable, but for a laptop of this quality, it would have been nice to see a higher refresh rate (e.g., 120Hz).&lt;/p&gt;

&lt;p&gt;If you are interested in the Asus ProArt P16, I would recommend watching the review from &lt;a href=&quot;https://www.youtube.com/@andresvidoza&quot;&gt;Andres Vidoza&lt;/a&gt;.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/K4_9G7m_44g?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Outlined below are the performance numbers for the AMD Ryzen AI 9 HX 370, running on Windows 11 24H2 (26100.1457) and the “standard” power profile.&lt;/p&gt;

&lt;p&gt;The numbers are compared against the Microsoft Surface Laptop 7 and Microsoft Surface Pro 11, running the Qualcomm Snapdragon X Elite (X1E-80-100) and the Apple MacBook Air 15-inch, running the Apple M3.&lt;/p&gt;

&lt;p&gt;The first series of benchmark results were running on mains power.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/amdryzenai370hx01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/amdryzenai370hx01.jpg&quot; alt=&quot;AMD Ryzen AI 370 HX&quot; title=&quot;AMD Ryzen AI 370 HX&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second series of benchmark results were running on battery.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/amdryzenai370hx02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/amdryzenai370hx02.jpg&quot; alt=&quot;AMD Ryzen AI 370 HX&quot; title=&quot;AMD Ryzen AI 370 HX&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the single-core and multi-core performance numbers in &lt;a href=&quot;https://www.geekbench.com/&quot;&gt;Geekbench 6&lt;/a&gt; are good. They are comparable to the Qualcomm Snapdragon X Elite but fall slightly below the market-leading Apple M3 for single-core performance.&lt;/p&gt;

&lt;p&gt;The performance when running on the battery was also competitive against the Qualcomm Snapdragon X Elite. This is a positive sign, as in my experience, older AMD and Intel (x86-64) processors include a significant performance impact when not connected to mains power.&lt;/p&gt;

&lt;p&gt;Amazingly, the Apple MacBook Air continues to demonstrate its dominance regarding power efficiency, delivering nearly 100% of the performance regardless of the power source (which is remarkable).&lt;/p&gt;

&lt;p&gt;Graphics performance is where the AMD Ryzen AI 9 HX 370 demonstrates its strength, with the integrated AMD Radeon 890M graphics delivering double the performance of the Qualcomm Snapdragon X Elite and easily outperforming the Apple M3.&lt;/p&gt;

&lt;p&gt;The integrated AMD Radeon 890M graphics power their way through productivity and collaboration workflows without any hiccups, and can even play modern games (1080p) at respectable quality settings and frames per second. This is an exciting prospect for future ultra-portable and handheld gaming devices (like the &lt;a href=&quot;/2022/06/10/steam-deck/&quot;&gt;Steam Deck&lt;/a&gt;) that could be based on the AMD Ryzen AI 300 series of processors.&lt;/p&gt;

&lt;p&gt;In addition to the excellent integrated graphics performance, the AMD Radeon 890M can also output high resolution, and a high refresh rate via HDMI 2.1, including my &lt;a href=&quot;/2023/10/04/samsung-g95nc/&quot;&gt;Samsung G95NC Odyssey Neo G9&lt;/a&gt;. This was not possible with the Qualcomm Snapdragon X or Apple M3 (the Apple M3 Pro and M3 Max are both capable of 7680x2160 at 120Hz).&lt;/p&gt;

&lt;p&gt;Regarding thermal efficiency, the Asus ProArt P16 includes a standard heatsink/fan setup. This is notable, as comparable Intel-based laptops from Asus are usually equipped with a more robust vapour chamber. Even with the heatsink/fan setup, the AMD Ryzen AI 9 HX 370 runs reasonably cool (on average at 76C), with minimal fan noise during common workloads (e.g., productivity and collaboration). The fans are audible during more demanding tasks, such as gaming, however, this is to be expected and (in my opinion) acceptable.&lt;/p&gt;

&lt;p&gt;Finally, although I have not tested it objectively (I simply use the laptop) the battery life of the AMD Ryzen AI 9 HX 370 has been very good, rivalling the Qualcomm Snapdragon X Elite. This is a major step forward for x86-64 laptops.&lt;/p&gt;

&lt;p&gt;With that said, my initial testing highlights that the Qualcomm Snapdragon X Elite is more efficient when on standby (&amp;lt; 5% battery drain overnight). By comparison, x86-64 laptops are notoriously bad at maintaining battery life when not in use (in your bag or overnight). This can be a huge pain when travelling and therefore still an important consideration for anyone who values long standby times.&lt;/p&gt;

&lt;p&gt;The AMD Ryzen AI 9 HX 370 does appear to deliver better standby efficiency than previous generations but still drains at a higher rate than I would want.&lt;/p&gt;

&lt;p&gt;In conclusion, I believe AMD has successfully produced a mobile processor that delivers excellent performance, specifically graphics performance, alongside strong battery life and thermal efficiency (low fan noise).&lt;/p&gt;

&lt;p&gt;In my testing, the AMD Ryzen AI 9 HX 370 rivals the Qualcomm Snapdragon X Elite, which was the target, falling slightly below the Apple M3 as an overall package.&lt;/p&gt;

&lt;p&gt;This is an excellent result, which combined with the border compatibility for x86-64 software in the Windows ecosystem and the option to include discrete graphics, such as the NVIDIA GeForce RTX 4070, makes the AMD Ryzen AI series the best overall processor for most people.&lt;/p&gt;

&lt;p&gt;At this time, I have not fully tested the business compatibility (e.g., firmware stability, secure enclave). However, assuming everything works as advertised, the AMD Ryzen AI series feels like the best balance for performance, efficiency and software compatibility.&lt;/p&gt;

&lt;p&gt;Over the coming weeks, I plan to continue my testing, including targeting Linux, where I believe the AMD Ryzen AI series could shine!&lt;/p&gt;
</description>
        <pubDate>Mon, 19 Aug 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/08/19/AMD-Ryzen-AI-370-HX/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/08/19/AMD-Ryzen-AI-370-HX/</guid>
      </item>
    
      <item>
        <title>Generative AI - Update</title>
        <description>&lt;p&gt;Over the past year, my team developed and scaled a multi-model, multi-modal Generative AI framework for business, which has been used to power a wide range of use cases, primarily accessed via a natural language chatbot.&lt;/p&gt;

&lt;p&gt;I have documented this journey via a series of articles (links below).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;Integrated Generative AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/02/Generative-AI-Enhancements/&quot;&gt;Generative AI - Enhancements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/12/15/generative-ai-eoy/&quot;&gt;Generative AI - EoY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/05/10/BTOES-Awards/&quot;&gt;BTOES Awards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/06/15/Generative-AI-Value/&quot;&gt;Generative AI Value&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/2024/06/15/Generative-AI-Value/&quot;&gt;In my last article&lt;/a&gt;, I shared six diverse business use cases and their outcomes, which contribute towards the wider return on investment, primarily focused on productivity acceleration and data insights.&lt;/p&gt;

&lt;p&gt;Earlier today, the team launched the next major revision of the Generative AI framework, including a wide range of new features, as well as a new user experience for the natural language interface.&lt;/p&gt;

&lt;p&gt;Outlined below is a summary summary of the new features.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;A refined and simplified user experience that includes user personalisation, smart recommendations (tooltips), and light/dark modes.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The ability to start and maintain multiple conversation threads, each targeting a specific persona, model and context.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;New multimodal models that can now handle up to 2,000 pages of text or 100 minutes of video content. Text and video content can be linked or uploaded directly.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;New interactive user interface elements, including code blocks, tables and text, which can be easily exported, automatically selecting the appropriate file format (e.g., CSV for tables, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Access to the latest and greatest foundational models from OpenAI and Google with no restrictions. This includes the Imagen v3 for advanced image generation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;New APIs for developers, allowing the Generative AI framework to be programmatically integrated with any system.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;New native integrations, covering systems of record, such as SAP and Microsoft SharePoint.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;New getting started information, providing education material, frequently asked questions and examples for common use cases.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The image below highlights the new user experience (dark mode), including the customisable chat pane, tooltips and improved discoverability of custom personas.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaiupdate01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaiupdate01.jpg&quot; alt=&quot;Generative AI&quot; title=&quot;Generative AI&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our custom persona capability (similar to OpenAI GPTs) also received a major upgrade.&lt;/p&gt;

&lt;p&gt;Custom personas allow any user to create and publish their own Generative AI chatbot (no technical skillset required), leveraging the underlying framework. These custom personas can be published to individuals, teams or the entire company, secured (where needed) by modern authentication/authorisation (FIDO2 compliant).&lt;/p&gt;

&lt;p&gt;A custom person can target any available model (e.g., OpenAI, Google) and include specific grounding and context, including large datasets from structured or unstructured data sources.&lt;/p&gt;

&lt;p&gt;In the latest release, custom persona creation has been dramatically simplified via a step-by-step wizard that can be previewed in real time.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaiupdate02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaiupdate02.jpg&quot; alt=&quot;Generative AI&quot; title=&quot;Generative AI&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This new approach helps ensure every custom persona is configured correctly with optimal inputs to improve the quality and consistency of the output. It also includes native integrations to securely and privately ingest large datasets from systems of record, such as Microsoft SharePoint.&lt;/p&gt;

&lt;p&gt;Finally, where appropriate, the custom personas can be posted to the marketplace, promoting discoverability, collaboration and reuse, which further increases the return on investment.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaiupdate03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaiupdate03.jpg&quot; alt=&quot;Generative AI&quot; title=&quot;Generative AI&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the time of writing, 773 active custom persons, covering everything from business-specific expert systems to general productivity accelerators for common tasks such as knowledge sharing, summarisation, translations, etc.&lt;/p&gt;

&lt;p&gt;Overall, our Generative AI framework continues to gain momentum, with more than 6,700 unique users (95% of the target audience) and approximately 1,900 logins per day. Conservatively, since launch (one year ago), this has saved approximately 35,564 hours (1,482 days) and delivered an estimated return on investment of $1.7MM through productivity acceleration and cost avoidance.&lt;/p&gt;

&lt;p&gt;The image below highlights the dynamic dashboard, showing the growth over the past year.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaiupdate04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaiupdate04.jpg&quot; alt=&quot;Generative AI&quot; title=&quot;Generative AI&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Although we have seen incredible viral growth over the past year, we continue to believe this is just the beginning and therefore, we are excited to see what comes next!&lt;/p&gt;
</description>
        <pubDate>Tue, 13 Aug 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/08/13/Generative-AI-Update/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/08/13/Generative-AI-Update/</guid>
      </item>
    
      <item>
        <title>Stevie Awards 2024</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2024/08/01/Globee-Awards-2024/&quot;&gt;Following the success of the recent Globee Awards 2024&lt;/a&gt;, I am pleased to share that the team also won a Bronze Stevie Award in the category of “Best Business Technology Pivot” at the &lt;a href=&quot;https://stevieawards.com/&quot;&gt;22nd Annual American Business Awards&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stevieawards202401.jpg&quot; alt=&quot;Stevie Awards 2024&quot; title=&quot;Stevie Awards 2024&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The award recognised our new omnichannel digital engagement strategy, grounded in data and artificial intelligence (AI), which successfully increased customer touch points by 30%, reducing the average time to first purchase by 28%.&lt;/p&gt;

&lt;p&gt;The Stevie Awards honour and generate public recognition of the achievements and positive contributions of businesses and working professionals worldwide.&lt;/p&gt;

&lt;p&gt;The winners were determined by the average scores of more than 300 professionals worldwide in the three-month judging process.&lt;/p&gt;

&lt;p&gt;Congratulations to the team and &lt;a href=&quot;https://stevieawards.com/aba/technology-awards&quot;&gt;all of the award winners&lt;/a&gt;!&lt;/p&gt;
</description>
        <pubDate>Thu, 08 Aug 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/08/08/Stevie-Awards-2024/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/08/08/Stevie-Awards-2024/</guid>
      </item>
    
      <item>
        <title>Globee Awards 2024</title>
        <description>&lt;p&gt;Earlier today, my team were recognised at the &lt;a href=&quot;https://globeeawards.com/technology/&quot;&gt;19th Annual 2024 Globee Awards for Technology&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;The team won two awards, a “Gold” in the category of “Achievement in Digital Transformation” and a “Silver” in the category of “Achievement in Enhancing Business Operations”.&lt;/p&gt;

&lt;p&gt;The “Digital Transformation” award recognised the work associated with Digital Vet Engagement, specifically a new omnichannel strategy, grounded in data and artificial intelligence (AI), that increased customer touch points by 30% and reduced the time for first purchase during a product launch by 28%.&lt;/p&gt;

&lt;p&gt;The “Enhancing Business Operations” award highlighted the impact of our private, secure and compliant Generative AI chatbot, which accelerates productivity by streamlining common business tasks. Since its launch, the chatbot has received approximately 1900 daily logins and has delivered an estimated return on investment of $1.7MM through cost avoidance.&lt;/p&gt;

&lt;p&gt;The term “Globee” is a combination of the words “global” and “business”. The Globee Awards were formed to honour organisations of all types and sizes from around the world for their achievements in various business and technology-related categories. The awards were created to provide a platform for recognising and promoting excellence in industries and sectors that are shaping the future of business.&lt;/p&gt;

&lt;p&gt;The judging process is rigorous and comprehensive to ensure fairness and integrity in evaluating entries. After the submission deadline, a panel of experienced judges from diverse industries and backgrounds is carefully selected. These judges possess expertise and knowledge in their respective fields, ensuring a thorough assessment of the entries.&lt;/p&gt;

&lt;p&gt;Congratulations to the team and &lt;a href=&quot;https://globeeawards.com/technology/winners/&quot;&gt;all of the award winners&lt;/a&gt;!&lt;/p&gt;
</description>
        <pubDate>Thu, 01 Aug 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/08/01/Globee-Awards-2024/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/08/01/Globee-Awards-2024/</guid>
      </item>
    
      <item>
        <title>Surface Pro 11</title>
        <description>&lt;p&gt;Last month, &lt;a href=&quot;/2024/06/24/Surface-Laptop-7/&quot;&gt;I posted my initial impressions of the Microsoft Surface Laptop 7&lt;/a&gt;, running the new Qualcomm Snapdragon X Elite processor.&lt;/p&gt;

&lt;p&gt;This week, I have been testing the Microsoft Surface Pro 11, which is a 2-in-1 (hybrid) device, part of the Copilot+ PC range.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/microsoftsurfacepro1101.jpg&quot;&gt;&lt;img src=&quot;/images/posts/microsoftsurfacepro1101.jpg&quot; alt=&quot;Microsoft Surface Pro 11&quot; title=&quot;Microsoft Surface Pro 11&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, I will share some initial impressions and comparisons with the Surface Laptop 7.&lt;/p&gt;

&lt;p&gt;The specification of the Surface Pro 11 can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Microsoft Surface Pro 11&lt;/li&gt;
  &lt;li&gt;Qualcomm Snapdragon X Elite (X1E-80-100 - 12C)&lt;/li&gt;
  &lt;li&gt;32GB LPDDR5x (8448 MT/s)&lt;/li&gt;
  &lt;li&gt;1TB M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;Wi-Fi 7 and Bluetooth 5.4&lt;/li&gt;
  &lt;li&gt;13-inch OLED Touchscreen (2880x1920 @ 120Hz)&lt;/li&gt;
  &lt;li&gt;2x USB-C (USB 4), 1x Surface Connect&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/2024/06/24/Surface-Laptop-7/&quot;&gt;This specification is comparable to the Surface Laptop 7 I used for testing in my previous article&lt;/a&gt;. Therefore, I would expect similar performance and power-efficiency characteristics.&lt;/p&gt;

&lt;p&gt;The hardware and build quality of the Surface Pro 11 is excellent, consistent with the Surface Laptop 7.&lt;/p&gt;

&lt;p&gt;The two primary hardware differences are the chassis and display.&lt;/p&gt;

&lt;p&gt;The Surface Pro 11, being a a 2-in-1 (hybrid) device, can be used as a standalone tablet or a laptop replacement, by connecting a keyboard via the proprietary port. As a result, the chassis is smaller and thinner than the Surface Laptop 7 (just 9.3 mm thick).&lt;/p&gt;

&lt;p&gt;The Surface Pro 11 is comparable to the Apple iPad Pro, but arguably more versatile, as the device runs a full desktop operating system (Windows on ARM) vs. a mobile-orientated operating system (iPadOS).&lt;/p&gt;

&lt;p&gt;I have been using the new Microsoft Flex keyboard, which connects directly via the proprietary port or Bluetooth and includes a stylus, which can be neatly and securely stowed in the keyboard when not in use (far superior to the Apple magnetic option).&lt;/p&gt;

&lt;p&gt;The keyboard itself is good and includes a haptic trackpad, which is relatively small but delivers a precise, consistent experience. My only (minor) critique is the flex that occurs when typing at speed, something that Apple recently resolved with the Magic Keyboard for iPad Pro, via the use of aluminium.&lt;/p&gt;

&lt;p&gt;The display is a different story. Being OLED, I had high expectations and had assumed it would deliver a notable improvement over the LCD panel used by the Surface Laptop 7.&lt;/p&gt;

&lt;p&gt;The colours and black levels are impressive (to be expected with OLED). Unfortunately, these benefits are undermined by what I assume to be a visible digitiser (touch display layer), which impacts the image quality, making everything appear “grainy”. It is especially noticeable on white/grey backgrounds.&lt;/p&gt;

&lt;p&gt;Initially, I thought I had a defective device. However, Reddit posts confirm this is by design.&lt;/p&gt;

&lt;p&gt;I suspect this characteristic will impact users differently. Some will simply learn to ignore it, whilst others will find it to be a constant distraction. Unfortunately, I do find it distracting and therefore find it difficult to recommend the Surface Pro 11.&lt;/p&gt;

&lt;p&gt;I have not tested the non-OLED version of the Surface Pro 11, therefore cannot confirm if it also suffers from the same image quality issue.&lt;/p&gt;

&lt;p&gt;Regarding performance, The Surface Pro 11 generally competes with the Surface Laptop 7 (both with the Qualcomm Snapdragon X Elite, 32GB RAM, 1TB Storage).&lt;/p&gt;

&lt;p&gt;However, as highlighted by the numbers below, I noticed an anomaly when running the Surface Pro 11 on the “Recommended” preset, whilst connected to Power.&lt;/p&gt;

&lt;p&gt;Instead of delivering the full performance, the Surface Pro 11 throttles to the equivalent performance on battery. The Surface Laptop 7 does not exhibit this same characteristic, always delivering full performance (regardless of the preset) whilst on power.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/microsoftsurfacepro1102.jpg&quot;&gt;&lt;img src=&quot;/images/posts/microsoftsurfacepro1102.jpg&quot; alt=&quot;Microsoft Surface Pro 11&quot; title=&quot;Microsoft Surface Pro 11&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is unclear to me if this is a bug or a design decision. For example, the thinner chassis of the Surface Pro 11 may not be as thermally efficient. Therefore, the Microsoft team may be purposely limiting the performance to manage temperatures.&lt;/p&gt;

&lt;p&gt;With that said, manually switching to the “Best Performance” preset resolves the “issue”. Delivering the expected performance when compared against the Surface Laptop 7.&lt;/p&gt;

&lt;p&gt;Overall, the Surface Pro 11 is an excellent device, likely the best Surface Pro ever. However, the display quality issue on the OLED version is in my opinion, a major disappointment. It is so significant, that I highly recommend trying the device before you buy to ensure you are comfortable with the trade-off.&lt;/p&gt;
</description>
        <pubDate>Tue, 23 Jul 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/07/23/Surface-Pro-11/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/07/23/Surface-Pro-11/</guid>
      </item>
    
      <item>
        <title>CrowdStrike IT Incident</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - &lt;a href=&quot;https://techcommunity.microsoft.com/t5/intune-customer-success/new-recovery-tool-to-help-with-crowdstrike-issue-impacting/ba-p/4196959&quot;&gt;Microsoft has released an official recovery tool&lt;/a&gt; to support impacted businesses and users.&lt;/p&gt;

&lt;p&gt;Over the past 48 hours, we’ve witnessed one of the largest global IT incidents in recent history, caused by a software bug from the security company &lt;a href=&quot;https://www.crowdstrike.com/&quot;&gt;CrowdStrike&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Microsoft has predicted that 8.5 million Windows systems have been impacted, disrupting commerce, travel, healthcare, manufacturing, advertisement and many more industries.&lt;/p&gt;

&lt;p&gt;Specifically, on the 19th of July, as part of ongoing operations, CrowdStrike released a sensor configuration update to Windows systems.&lt;/p&gt;

&lt;p&gt;Sensor configuration updates are an ongoing part of the protection mechanisms of the CrowdStrike Falcon platform.&lt;/p&gt;

&lt;p&gt;The configuration update triggered a logic error (likely a null pointer exception) resulting in a system crash and blue screen of death (BSOD) on impacted systems, which persists on reboot.&lt;/p&gt;

&lt;p&gt;Thankfully, my company was not directly impacted. Therefore, I thought I would explain why.&lt;/p&gt;

&lt;p&gt;As part of our enterprise architecture principles, we prioritise vertical integration for endpoint security. &lt;/p&gt;

&lt;p&gt;This means, wherever possible, we leverage the native capabilities of the underlying platform (e.g., Windows, Linux, macOS, etc.)&lt;/p&gt;

&lt;p&gt;This strategy has three primary benefits:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;An improved user experience, avoiding the need for multiple third-party software packages that consume resources, impacting performance and reliability.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Simplified, lower-cost support, removing the need for IT to procure, manage and lifecycle multiple independent security software packages.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Improved security posture, acknowledging that third-party software focused on security commonly requires kernel-level operating system access. Ironically, this makes security software a prime target for cyber-attacks and a continuous software assurance risk.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It is this strategy that protected us from the recent global IT incident.&lt;/p&gt;

&lt;p&gt;It would be easy to blame Microsoft for the state of Windows security and they should take partial accountability. However, due to a series of flawed regulatory and legal controls, society must also take responsibility, as it is these controls that have “forced” the use of third-party security software, arguably making the underlying operating system less secure/reliable.&lt;/p&gt;

&lt;p&gt;Steven Sinofsky (ex-president of the Windows division at Microsoft) shared the following tweet (which I agree with).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/crowdstrikeitincident01.jpg&quot; alt=&quot;CrowdStrike IT Incident&quot; title=&quot;CrowdStrike IT Incident&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With that said, our strategy is not perfect and like all things, has its trade-offs. Therefore, we must continue to make smart decisions to ensure these trade-offs are understood and/or mitigated via other technologies and/or techniques.&lt;/p&gt;

&lt;p&gt;I empathise with the global IT community, who will likely be in the spotlight for days/weeks as they work diligently to recover from this incident.&lt;/p&gt;

&lt;p&gt;Finally, this incident is a warning for the IT industry (and the world), highlighting the fragility of the interconnected ecosystem, specifically as it relates to common foundations, such as Microsoft Windows, etc.&lt;/p&gt;

&lt;p&gt;If you are impacted by this incident, I recommend reviewing the official CrowdStrike documentation for details regarding the recovery procedure.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.crowdstrike.com/falcon-content-update-remediation-and-guidance-hub/&quot;&gt;CrowdStrike Remediation Gudiance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.crowdstrike.com/blog/falcon-update-for-windows-hosts-technical-details/&quot;&gt;CrowdStrike Technical Details&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a reminder, cybercriminals will likely attempt to use this incident as a channel of attack. Therefore, only reference and/or engage with official (verified) documentation from CrowdStrike or a trusted partner.&lt;/p&gt;
</description>
        <pubDate>Sat, 20 Jul 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/07/20/CrowdStrike-IT-Incident/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/07/20/CrowdStrike-IT-Incident/</guid>
      </item>
    
      <item>
        <title>Collecting Dust</title>
        <description>&lt;p&gt;It has been approximately five months since the launch of the Apple Vision Pro.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2024/02/03/apple-vision-pro-impressions/&quot;&gt;In the conclusion of my initial impressions&lt;/a&gt;, I stated &lt;em&gt;“The Apple Vision Pro is the most impressive VR/AR headset I have ever used! It is also the most expensive and uncomfortable, whilst currently offering very little real-world value.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.apple.com/apple-vision-pro/&quot;&gt;Apple marketing&lt;/a&gt; states that the Apple Vision Pro delivers the following value proposition:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Productivity - A workspace with infinite space&lt;/li&gt;
  &lt;li&gt;Entertainment - The ultimate cinema&lt;/li&gt;
  &lt;li&gt;Photos and Videos - Be in the moment&lt;/li&gt;
  &lt;li&gt;Connection - Share quality time&lt;/li&gt;
  &lt;li&gt;Apps - Do what you love&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In reality, even after five months of ownership, I do not believe the Apple Vision Pro has come close to meeting these expectations, meaning it has quickly become an expensive dust collector.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applevisionpro11.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In this article, I will attempt to explain my rationale for this position.&lt;/p&gt;

&lt;h4 id=&quot;productivity&quot;&gt;Productivity&lt;/h4&gt;

&lt;p&gt;In theory, the Apple Vision Pro has the potential to be a great productivity enabler, delivering exceptional passthrough video for augmented reality and (when needed) full 360-degree virtual environments that can be customised for any situation.&lt;/p&gt;

&lt;p&gt;Unfortunately, the software is currently a limiting factor. The native apps are not yet well positioned for content creation and the Mac Virtual Display capability (macOS screen sharing), which you would assume would be well positioned to leverage the potential of an  “infinite workspace”, is actually very finite. For example, even basic options such as the ability to set multiple displays or to select a portrait orientation are not available, making it far less versatile than the &lt;a href=&quot;https://www.vrdesktop.net/&quot;&gt;Virtual Desktop&lt;/a&gt; app, available for the Meta Quest.&lt;/p&gt;

&lt;p&gt;Although the Mac Virtual Display capability is expected to improve with &lt;a href=&quot;https://www.apple.com/visionos/visionos-2-preview/&quot;&gt;visonOS 2.0&lt;/a&gt;, the ongoing restrictions regarding display size (the equivalent of two 4K displays), format (orientation) and connectivity make it less practical than a traditional monitor, specifically a multi-monitor setup or a super ultra-wide.&lt;/p&gt;

&lt;p&gt;As a comparison, at home, &lt;a href=&quot;/2023/10/04/samsung-g95nc/&quot;&gt;I use a Samsung 57-inch G95NC Odyssey Neo G9&lt;/a&gt; super ultra-wide monitor, which has a resolution of 7680x2160 at 240Hz and can be connected to multiple devices (Mac, PC, Video Game Consoles, etc.) At approximately half the price of the Apple Vision Pro, I would argue this monitor delivers better real-world value, with enough savings to purchase a new Apple Mac or PC.&lt;/p&gt;

&lt;p&gt;The Apple Vision Pro does have the advantage of being virtual (no physical space requirement), but this benefit is dramatically reduced by the fact that you have to wear a cumbersome and often uncomfortable headset, which for long productivity sessions (anything more than a couple of hours) is far from ideal.&lt;/p&gt;

&lt;p&gt;The (unflattering) photo below shows my face after approximately 30 minutes of using the Apple Vision Pro with the Solo Knitted Band.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/collectingdust01.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, there are visible pressure marks on my forehead, nose and cheeks. I find the nose pressure the most uncomfortable. The comfort is improved when using the Dual Loop Band, but not completely resolved.&lt;/p&gt;

&lt;h4 id=&quot;entertainment&quot;&gt;Entertainment&lt;/h4&gt;

&lt;p&gt;The Apple Vision Pro is an impressive entertainment device. For example, the Apple TV cinema environment is incredibly immersive, especially when watching content designed for 3D.&lt;/p&gt;

&lt;p&gt;However, when I watch a movie at the cinema or a TV series at home, it is usually with family or friends. In my opinion, part of the experience is enjoying the entertainment with others, reacting to their reactions, whilst also having the opportunity to discuss afterwards. With the Apple Vision Pro, unless you happen to have multiple headsets, the experience is very isolating.&lt;/p&gt;

&lt;p&gt;Even when I do occasionally watch a movie alone, the effort associated with wearing the headset for multiple hours, whilst plugged into a power source (due to the battery limitations) is a major barrier. Realistically, I can not see many people accepting this trade-off unless they are highly motivated to experience very specific content made for the Apple Vision Pro.&lt;/p&gt;

&lt;p&gt;In conclusion, similar to other VR/AR headsets I have used, such as the Meta Quest series, I have found short experiences (less than 30 minutes) to be the sweet spot for the Apple Vision Pro. Anything longer quickly becomes a burden.&lt;/p&gt;

&lt;h4 id=&quot;photos-and-videos&quot;&gt;Photos and Videos&lt;/h4&gt;

&lt;p&gt;Apple has been eager to highlight the potential of spatial photos and videos as part of their marketing material. I can confirm, the demo content provided by Apple is very impressive. The spatial video in particular can feel very immersive, best described as “peering into a dream”. The illusion is not perfect, but good enough to trick the mind, triggering an emotional response.&lt;/p&gt;

&lt;p&gt;Unfortunately, I have been less impressed with the content I have captured, either directly from the Apple Vision Pro or via an Apple iPhone 15 Pro. My content has a tendency to feel “flat”, failing to deliver the same level of immersion as the demo content.&lt;/p&gt;

&lt;p&gt;It is very possible that my camera skills are the limiting factor. However, I would have to assume that most people are not professional photographers and/or videographers. Therefore, I fear my experience may be closer to reality. It is also possible that the demo content was captured with more advanced hardware/software.&lt;/p&gt;

&lt;p&gt;Although I can see scenarios where having spatial photos and videos would be interesting (family milestones, events, etc.) The fact that they can only be viewed whilst wearing the headset makes them very limiting and the inconsistent quality I have experienced makes me question if having a higher-resolution 2D version would offer greater long-term flexibility. I do expect this story to evolve/improve over time, with new capabilities to translate 2D photos/videos into spatial photos/videos via artificial intelligence.&lt;/p&gt;

&lt;h4 id=&quot;connection&quot;&gt;Connection&lt;/h4&gt;

&lt;p&gt;Apple offers several options to interact with others whilst wearing the headset, both directly (physically face-to-face) and via virtual channels (FaceTime, etc.)&lt;/p&gt;

&lt;p&gt;The first is “EyeSight”, which is the controversial feature that attempts to show a virtual representation of the wearer’s eyes on the outward-facing lenticular display. The intent is for the wearer to be able to naturally interact with people in close proximity, without the need to remove the headset. Although I commend Apple for its creative thinking and technical innovation, the practical usage of this feature is poor. I have yet to find a scenario where anyone interacting with me in the physical world whilst wearing the headset is not distracted, completely breaking any face-to-face connection.&lt;/p&gt;

&lt;p&gt;The virtual experience has a similar issue. Apple has developed a way for the wearer to create a virtual “Persona”. The technology itself is incredible and the Persona can be used across multiple apps, including FaceTime, Teams, Zoom, etc. However, with the best will in the world, the Persona is not a perfect representation, resulting in an “uncanny valley” effect. Although the Persona attempts to replicate expressions, it simply lacks the fidelity to deliver the complexity and nuance of human emotion.&lt;/p&gt;

&lt;p&gt;Therefore, similar to EyeSight, interacting with people in virtual meetings using my Persona, quickly becomes a distraction. I have had comments like “It is like I am looking at your ghost” and when interacting with family members, their feedback suggests that they would prefer a standard video feed, where they can see my actual face. In summary, the Persona does not enhance the connection and for that reason, I not yet had the confidence to use the Apple Vision Pro during any serious meeting (specifically where the participants are not wearing Apple Vision Pro).&lt;/p&gt;

&lt;p&gt;In fairness to Apple, I do believe the Apple Vision Pro has the potential to enhance the connection between people, especially virtually. However, I fear the technology is not yet advanced enough to deliver an experience that most would consider acceptable for frequent use.&lt;/p&gt;

&lt;h3 id=&quot;apps&quot;&gt;Apps&lt;/h3&gt;

&lt;p&gt;At this time, the apps available for the Apple Vision Pro are mostly limited to technology demos. These are usually short “experiences” that can deliver an instant “wow” factor but offer very little real-world use.&lt;/p&gt;

&lt;p&gt;It is great to see native support for mainstream apps, such as Microsoft Word, PowerPoint, Excel, etc. However, these apps are limited versions of their desktop/mobile counterparts, making them great for viewing content, but less useful when attempting to create/modify. As a result, similar to the common complaint about Apple iPadOS, the software restrictions of Apple Vision Pro are limiting the total value proposition.&lt;/p&gt;

&lt;p&gt;Recognising the high price-point and limited availability of the Apple Vision Pro, it is not a surprise that the developer adoption has been slow. However, I continue to be a little confused as to why Apple has not delivered more compelling first-party apps. I feel there is an opportunity to lead by example, helping to inspire the developer community and giving early adopters a reason to use the headset on a more regular basis.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, I appreciate my comments after five months are not overly positive and I continue to stand by my initial observation that the Apple Vision Pro is the most impressive VR/AR headset I have ever used! However, it is also the most expensive and uncomfortable, whilst currently offering very little real-world value.&lt;/p&gt;

&lt;p&gt;With that said, I am still incredibly optimistic and excited by the future of VR/AR and spatial computing. However, I fear we are many years away from it becoming a viable mainstream capability that can replace existing usage patterns, achieved today with smartphones, tablets, laptops, etc.&lt;/p&gt;

&lt;p&gt;As a result, after the initial excitement of testing the Apple Vision Pro, the incentive to use it on a regular basis has quickly faded. I did attempt to work within the Apple Vision Pro for a full day, but the previously highlighted barriers were simply too great for the experience to be practical and it is honestly difficult to highlight any use case that was “enhanced” by wearing the headset.&lt;/p&gt;

&lt;p&gt;Therefore, I continue to believe, that if you are interested in VR/AR today, I recommend exploring the options from Meta (specifically the Meta Quest 3), which is more comfortable, has a broader software library and is a fraction of the cost at just £479.99 vs. £3,499.&lt;/p&gt;

&lt;p&gt;Finally, earlier this week, I was asked to join Apple for a private meeting at their Battersea Power Station office to discuss the launch of the Apple Vision Pro in the UK, specifically regarding opportunities within business.&lt;/p&gt;

&lt;p&gt;I predict that most people who were invited for a private briefing had very little previous hands-on experience with the Apple Vision Pro. Therefore, I suspect my experience and feedback were very different to the standard. As previously stated, the first impression when using the Apple Vision Pro is incredible, delivering a real “wow” factor. However, it is only when used over time (a couple of hours) that you start to identify the issues. Therefore, I suspect most feedback was positive vs. the higher level of constructive critique that I provided based on my usage over five months.&lt;/p&gt;

&lt;p&gt;I do not expect my feedback to have any meaningful impact, but I do hope that Apple continues to listen/learn from their passionate community regarding how to iterate/improve on the Apple Vision Pro, even if it requires them to pivot on previous decisions.&lt;/p&gt;

&lt;p&gt;Specifically, I would recommend the following.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Remove the front-facing display.&lt;/li&gt;
  &lt;li&gt;Replace heavy premium materials with lighter materials, reducing the overall weight.&lt;/li&gt;
  &lt;li&gt;Consider function over form (design), recognising that a device you wear on your face must be comfortable.&lt;/li&gt;
  &lt;li&gt;Reduce the cost significantly (target £999), making hardware cutbacks where needed (e.g., front-facing display, premium materials, etc.)&lt;/li&gt;
  &lt;li&gt;Simplify the initial setup and offer multiple user accounts (not just guest accounts).&lt;/li&gt;
  &lt;li&gt;Deliver compelling first-party apps that lead by example, highlighting the potential of the hardware.&lt;/li&gt;
  &lt;li&gt;Incentivise the developer community to build interesting apps that offer real-world value (not technology demos), supported by better access to developer-specific hardware.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I am interested to see how Apple will proceed!&lt;/p&gt;
</description>
        <pubDate>Wed, 03 Jul 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/07/03/Collecting-Dust/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/07/03/Collecting-Dust/</guid>
      </item>
    
      <item>
        <title>Surface Laptop 7</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - In the article, I highlight a Microsoft Defender compliance issue. It would appear this issue is caused by the Windows Home to Pro upgrade process. The command “DISM /online /Add-Capability /CapabilityName:Microsoft.Windows.Sense.Client ~~~~” executed as an administrator, followed by a restart, should resolve the issue (may take up to 30 minutes to apply).&lt;/p&gt;

&lt;p&gt;Last week, &lt;a href=&quot;https://www.lifeintech.com/2024/06/21/Microsoft-Copilot+-PC/&quot;&gt;I published an article covering the recent Microsoft special event, where they announced Copilot+ PC&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This is a follow-up article, providing an overview of my initial impressions using a Copilot+ PC, specifically the &lt;a href=&quot;https://www.microsoft.com/surface/devices/surface-laptop-7th-edition&quot;&gt;Microsoft Surface Laptop 7&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/microsoftsurfacelaptop701.jpg&quot;&gt;&lt;img src=&quot;/images/posts/microsoftsurfacelaptop701.jpg&quot; alt=&quot;Microsoft Surface Laptop 7&quot; title=&quot;Microsoft Surface Laptop 7&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Although Microsoft is eager to market the Artificial Intelligence (AI) capabilities of a Copilot+ PC, the most interesting thing about this laptop is that it uses the &lt;a href=&quot;https://www.qualcomm.com/products/mobile/snapdragon/pcs-and-tablets/snapdragon-x-elite&quot;&gt;Qualcomm Snapdragon X Elite processor&lt;/a&gt;, which is ARM-based (not x86-64).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.lifeintech.com/2024/06/21/Microsoft-Copilot+-PC/&quot;&gt;As highlighted in my previous article&lt;/a&gt;, Microsoft has previously attempted to make Windows on ARM viable for consumers. Up to now, every attempt has failed, with poor native ARM performance and inconsistent compatibility with traditional x86-64 software.&lt;/p&gt;

&lt;p&gt;With that said, Microsoft are very bullish about the newly announced Qualcomm Snapdragon X Plus and Elite processors, combined with a new x86-64 emulation layer, known as Prism. Therefore, I am excited to see if this laptop can separate itself from past failures and deliver a compelling alternative to the popular ARM-based Apple MacBook Air/Pro series.&lt;/p&gt;

&lt;p&gt;The specification of my Surface Laptop 7 can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Microsoft Surface Laptop 7&lt;/li&gt;
  &lt;li&gt;Qualcomm Snapdragon X Elite (X1E-80-100 - 12C)&lt;/li&gt;
  &lt;li&gt;32GB LPDDR5x (8448 MT/s)&lt;/li&gt;
  &lt;li&gt;1TB M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;Wi-Fi 7 and Bluetooth 5.4&lt;/li&gt;
  &lt;li&gt;15-inch LCD Touchscreen (2496x1664 @ 120Hz)&lt;/li&gt;
  &lt;li&gt;2x USB-C (USB 4), 1x USB-A (USB 3.1), 1x MicroSDXC, 1x 3.5mm Headphone, 1x Surface Connect&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full specification of the Qualcomm Snapdragon X Elite (X1E-80-100) can be found on the &lt;a href=&quot;https://www.qualcomm.com/products/mobile/snapdragon/pcs-and-tablets/snapdragon-x-elite&quot;&gt;Qualcomm website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a reminder, the primary value proposition of an ARM-based laptop is the following.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;All day (&amp;gt; 12 hours) battery life for common tasks.&lt;/li&gt;
  &lt;li&gt;Sustained high performance, even on battery.&lt;/li&gt;
  &lt;li&gt;Quiet operation, even under load.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This value must be achieved whilst delivering competitive performance across native ARM and traditional x86-64 software.&lt;/p&gt;

&lt;h3 id=&quot;hardware&quot;&gt;Hardware&lt;/h3&gt;

&lt;p&gt;The Surface Laptop 7 is a beautiful laptop, with exceptional build quality. In my opinion, it is the closest alternative to an Apple MacBook, with a minimal design that looks and feels premium.&lt;/p&gt;

&lt;p&gt;With this in mind, I will likely use the Apple MacBook as the benchmark throughout this article, as it is clear from Microsoft marketing that they are positioning the Surface Laptop 7 as a direct competitor to Apple’s best-selling laptop (Apple MacBook Air).&lt;/p&gt;

&lt;p&gt;The keyboard and trackpad are excellent, delivering a comfortable and familiar experience. The trackpad is not as large as a MacBook, but is haptic, meaning that it can be “clicked” at the top and bottom. It is also multi-touch, but in my experience, it is not as accurate as a MacBook, resulting in occasional unintended swipes, etc. This may be a software limitation, which could improve over time.&lt;/p&gt;

&lt;p&gt;The display is also very good, delivering a high resolution (2496x1664) and a 120Hz variable refresh rate, which is an improvement over the MacBook Air (up to 60Hz refresh rate). My only minor complaint is the reflectiveness of the gorilla glass, which can make using the laptop in locations with bright lights a little challenging.&lt;/p&gt;

&lt;p&gt;The port selection is also good, with 2x USB-C (USB 4) and 1x USB-A (USB 3.1), alongside MicroSDXC, 3.5mm Headphone and Surface Connect ports. Although the Surface Connect port does offer value (Surface Dock and MagSafe), I would have preferred a HDMI 2.1 port to avoid the need for a dongle when connecting to external displays, etc.&lt;/p&gt;

&lt;p&gt;One frustration, the Qualcomm Snapdragon X Plus and Elite processors only support DisplayPort 1.4 (not DisplayPort 2.1). Therefore, the Surface Laptop 7 can not drive my Samsung G95NC Odyssey Neo G9 monitor at its native resolution of 7680x2160. This is a hardware limitation, which likely won’t be improved until the next major revision.&lt;/p&gt;

&lt;p&gt;Finally, it is worth mentioning repairability, as although the Surface Laptop 7 is not a &lt;a href=&quot;/tag/framework_laptop/&quot;&gt;Framework Laptop&lt;/a&gt;, Microsoft has been taking notes. As highlighted by the iFixit video below, Microsoft has simplified the disassembly process and ensured that all repairable components (e.g., storage, battery) are easily accessible and even labelled with a QR code, providing repair guides, etc.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Eg7KXJQ0p00?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;This has resulted in a very favourable &lt;a href=&quot;https://www.ifixit.com/Device/Microsoft_Surface_Laptop_7&quot;&gt;iFixit&lt;/a&gt; score of 8/10, highlighting once again that Apple could do better if they prioritised repairability and sustainability.&lt;/p&gt;

&lt;h3 id=&quot;emulation&quot;&gt;Emulation&lt;/h3&gt;

&lt;p&gt;With Windows 11 on ARM 24H2, Microsoft has introduced a new x86-64 emulation engine, known as Prism. Like Rosetta 2 on macOS, the goal is to deliver “acceptable” performance for any non-native (not ARM-based) application.&lt;/p&gt;

&lt;p&gt;Unlike Rosetta 2, which is a translation layer, Prism still relies on emulation. Therefore, although Microsoft is touting up to a 3x performance increase, emulation is not as performant as translation.&lt;/p&gt;

&lt;p&gt;However, when targetting common workflows (web, productivity, collaboration), the emulation does not need to deliver “native” performance. For example, even a 30% performance reduction could be acceptable, assuming the end-user experience is not negatively impacted.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/microsoftsurfacelaptop702.jpg&quot; alt=&quot;Microsoft Surface Laptop 7&quot; title=&quot;Microsoft Surface Laptop 7&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Rosetta 2 on macOS also takes advantage of the vertical integration of hardware and software that is unique to Apple. For example, the Apple M1/2/3 includes specific hardware features that accelerate x86-64 applications.&lt;/p&gt;

&lt;p&gt;Starting with compatibility, I am pleased to report that the majority of my &lt;a href=&quot;/2024/01/20/software-list-2024/&quot;&gt;common applications&lt;/a&gt; worked as designed (as highlighted in the table below).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/microsoftsurfacelaptop703.jpg&quot;&gt;&lt;img src=&quot;/images/posts/microsoftsurfacelaptop703.jpg&quot; alt=&quot;Microsoft Surface Laptop 7&quot; title=&quot;Microsoft Surface Laptop 7&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The only applications that failed to install were &lt;a href=&quot;https://www.vmware.com/products/desktop-hypervisor.html&quot;&gt;VMware Workstation&lt;/a&gt; (not a surprise due to the hardware virtualisation requirements) and the &lt;a href=&quot;https://arc.net/&quot;&gt;Arc&lt;/a&gt; browser, which is expected to have a native ARM version before the end of the year.&lt;/p&gt;

&lt;p&gt;Even large, complex, graphics-heavy applications such as &lt;a href=&quot;https://www.unrealengine.com/unreal-engine-5&quot;&gt;Unreal Engine 5&lt;/a&gt; worked and I was able to run the “&lt;a href=&quot;https://dev.epicgames.com/documentation/unreal-engine/third-person-template-in-unreal-engine&quot;&gt;Third Person Project&lt;/a&gt;” at usable frame rates for testing (I am not suggesting the Surface Laptop 7 would be the best laptop for Unreal Engine).&lt;/p&gt;

&lt;p&gt;Although I have been impressed with my emulation testing, it is difficult to provide a holistic conclusion, as every user will have a slightly different workflow, requiring a different combination of software. For example, if your workflow requires specialist applications (e.g., graphics, video), I suspect x86-64 will continue to deliver the “best” overall experience (at least for now).&lt;/p&gt;

&lt;p&gt;With that said, I was impressed by the number of native ARM applications, which all worked well in my testing, delivering the expected performance based on the hardware specification of the Surface Laptop 7. Specifically, it was great to see common development tools, such as &lt;a href=&quot;https://visualstudio.microsoft.com/&quot;&gt;Visual Studio&lt;/a&gt;, &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Visual Studio Code&lt;/a&gt;, &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt; and &lt;a href=&quot;https://podman.io/&quot;&gt;Podman&lt;/a&gt; all running natively.&lt;/p&gt;

&lt;p&gt;Finally, it is worth noting that although many core applications are already ARM native, I noticed that some dependencies (extensions/plugins/agents) used by the core applications are still x86-64. For example, some applications (including Microsoft applications) use a separate agent to manage updates, etc. I do not expect this to cause a major issue, as these dependencies are usually only triggered for specific time-bound tasks and are commonly not performance-limited.&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;The table below outlines my high-level performance results for the Surface Laptop 7.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/microsoftsurfacelaptop704.jpg&quot;&gt;&lt;img src=&quot;/images/posts/microsoftsurfacelaptop704.jpg&quot; alt=&quot;Microsoft Surface Laptop 7&quot; title=&quot;Microsoft Surface Laptop 7&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In summary, performance was excellent, often exceeding my expectations, and easily comparable to the x86-64 Intel and AMD alternatives.&lt;/p&gt;

&lt;p&gt;Most notably, performance on battery, which is a significant pain point for x86-64 laptops, as they usually require a significant performance drop to achieve acceptable battery life. Thanks to the efficiency of the ARM architecture, the battery performance is consistently excellent and could be the most compelling reason to purchase a Windows on ARM laptop.&lt;/p&gt;

&lt;p&gt;Interestingly, I believe this performance could improve over time. For example, I suspect Windows is still (at the core) designed for x86-64 processors that require careful power management to effectively balance performance vs. battery life.&lt;/p&gt;

&lt;p&gt;The Surface Laptop 7 includes three “power states”, specifically “Recommended”, “Better Performance” and “Best Performance”. You can see from my testing that when on battery, there is a difference between “Recommended” and “Best Performance”, I assume to further extend the battery life. However, the performance is not consistent in all workloads. Therefore, I suspect Microsoft could continue to “tune” the profiles to further improve the balance. Ideally, these profiles would also automatically trigger based on the workload.&lt;/p&gt;

&lt;p&gt;I did not test many games, as the Surface Laptop 7 is not a gaming system. However, I did install Steam and loaded Tomb Raider, which benchmarked well on power and battery, delivering 40+ FPS on “High” settings. Although Tomb Raider is an old (2013) game, the result is still impressive, as Steam and Tomb Raider are not native ARM applications. I did attempt to use the &lt;a href=&quot;https://www.gpd.hk/gpdg1graphics&quot;&gt;GPD G1 eGPU Docking Station&lt;/a&gt;, but unsurprisingly, it was not compatible with Windows on ARM (no native AMD drivers).&lt;/p&gt;

&lt;p&gt;Regarding noise, although the Surface Laptop 7 does include active cooling (fans), they are rarely switched on, making the laptop silent for most workloads. This is a major departure from x86-64 laptops (specifically Intel), which frequently sound like a jet engine. With that said, when running stress tests that target multiple parts of the processor (CPU + GPU or CPU + NPU), the fans did engage. At their maximum, the fans do become quite loud (64dB next to the chassis), but this is so rare that I do not consider it an issue.&lt;/p&gt;

&lt;p&gt;In summary, the general use of Windows on ARM is very “snappy”, with all applications responding quickly (no obvious stuttering or lag). Although I have no empirical evidence, meaning it could be a case of “the emperor’s new clothes”, Windows on ARM “feels” faster than Windows on x86-64.&lt;/p&gt;

&lt;p&gt;Compared to the Apple MacBook Air, my testing highlights that the Apple M3 processor is still the performance and power efficiency king. As a comparison, the Apple MacBook Air M3 achieved Geekbench 6 CPU scores of 3127/12008 and a GPU score of 30541, which is an increase of approximately 10% for the single-core CPU and 40% for the GPU.&lt;/p&gt;

&lt;p&gt;This result reinforces the dominance of Apple Silicon, especially acknowledging the MacBook Air with Apple M3 has no active cooling (no fans) and has already been superseded by the Apple M4, which delivers even greater performance.&lt;/p&gt;

&lt;p&gt;It should be noted, that the multi-core performance of the Qualcomm Snapdragon X Elite does outperform the Apple MacBook Air with Apple M3 by approximately 19%, thanks to the additional four cores.&lt;/p&gt;

&lt;p&gt;With that said, Qualcomm did not need to beat the Apple M3/M4, as this is fundamentally a different platform (Windows vs. macOS). The direct competition for Qualcomm is Intel and AMD, where I am confident they are succeeding. The fact that Qualcomm also delivers a comparable value proposition to the MacBook Air (battery life, performance on battery, silent operation) is a remarkable outcome!&lt;/p&gt;

&lt;h3 id=&quot;battery-life&quot;&gt;Battery Life&lt;/h3&gt;

&lt;p&gt;I have not completed any formal battery life testing. However, I have been using the Surface Laptop 7 across a wide range of workloads, switching from power to battery throughout the day.&lt;/p&gt;

&lt;p&gt;In my experience, the battery life meets expectations, delivering comfortable “all-day” usage across common productivity and collaboration workloads. The one exception is Microsoft Teams, which can seemingly kill any battery (Windows or macOS) at an alarming rapid pace. Without directly comparing the numbers, the daily usage of the Surface Laptop 7 feels slightly less than what I get with an Apple MacBook, but significantly better than the comparable x86-64 laptops I have tested.&lt;/p&gt;

&lt;p&gt;In addition, the standby time of the Surface Laptop 7 is impressive for a Windows-based laptop, dropping by approximately 1% to 3% overnight. In my experience, with x86-64 laptops, this number can be 10% or more.&lt;/p&gt;

&lt;h3 id=&quot;enterprise-compatibility&quot;&gt;Enterprise Compatibility&lt;/h3&gt;

&lt;p&gt;The Surface Laptop 7 was shipped with Windows 11 Home, with no option to pre-install Windows 11 Pro (why, Microsoft). When speaking with Microsoft, they confirmed that the Surface Laptop 7 will be made available to businesses (with Windows 11 Pro) in September.&lt;/p&gt;

&lt;p&gt;Thankfully, I was able to upgrade the Surface Laptop 7 using a valid Windows 11 Pro product key. At this point, I could enable business features, as well as onboard the laptop via Microsoft Intune (which automatically transitions the license to Windows 11 Enterprise).&lt;/p&gt;

&lt;p&gt;Everything worked as designed, with Microsoft Autopilot, Intune and Defender all running as expected. In addition, I was impressed to see that other enterprise software, such as client VPN, also worked without issue.&lt;/p&gt;

&lt;p&gt;The only minor anomaly was a Microsoft Defender compliance issue with Microsoft Intune. However, I suspect this is a short-term problem that will be resolved once the Surface Laptop 7 is officially released for businesses.&lt;/p&gt;

&lt;p&gt;Recognising the torrid history of Windows on ARM, it would be bold to transition any business at this time. However, assuming support continues to grow, I could see ARM-based Windows laptops becoming very popular with hybrid workers who spend the majority of their time using web-based and Microsoft 365 (Word, PowerPoint, Excel, Outlook, Teams) applications.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I can confidently state, that the Surface Laptop 7 is the best “all-round” Windows laptop I have ever used, delivering excellent performance and battery life, whilst rivalling Apple when it comes to design and build quality.&lt;/p&gt;

&lt;p&gt;The fact that the Surface Laptop 7 outperforms x86-64 counterparts, whilst delivering better battery life and improved thermals is an impressive feat that I believe is a compelling value proposition for anyone considering a Windows laptop.&lt;/p&gt;

&lt;p&gt;In addition, it would appear the raw horsepower of the Qualcomm Snapdragon X Elite combined with improved software support (native and emulation) has finally made Windows on ARM not only viable but maybe the preferred platform. It will be very interesting to see how Microsoft positions/manages the x86-64 and ARM versions of Windows moving forward.&lt;/p&gt;

&lt;p&gt;With that said, I do not believe Windows on ARM specifically the Qualcomm Snapdragon X Elite is right for everyone (yet). If you are a gamer and/or require specialist applications for your workloads (e.g., graphics, video), I would recommend you stick with x86-64, with a dedicated GPU from NVIDIA/AMD.&lt;/p&gt;

&lt;p&gt;Finally, you will note that I did not mention Artificial Intelligence (AI) in this article. At the time of writing, the AI capabilities of Windows and the “benefit” of the Neural Processing Unit (NPU) are essentially non-existent. The flagship feature, Recall, was ironically recalled. The other AI features are not much more than gimmicks that can be easily outperformed by third-party solutions (applications and web services).&lt;/p&gt;

&lt;p&gt;In conclusion, I think we have hit a critical milestone for Windows on ARM and ARM-based laptops. Finally, after many years of trying (and failing), Microsoft has delivered on the promise and has a system capable of competing against the Apple MacBook.&lt;/p&gt;
</description>
        <pubDate>Mon, 24 Jun 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/06/24/Surface-Laptop-7/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/06/24/Surface-Laptop-7/</guid>
      </item>
    
      <item>
        <title>Life Sciences AI</title>
        <description>&lt;p&gt;I have worked in healthcare and life sciences for the past eighteen years, thirteen years in human health and the past five years in animal health.&lt;/p&gt;

&lt;p&gt;Regardless of human or animal, the drug development process is very similar, covering discovery and development, preclinical research, clinical research and approvals. The end-to-end process can take between ten to fifteen years, commonly requiring a significant investment in resources and money.&lt;/p&gt;

&lt;p&gt;Therefore, it is fair to state that drug development is considered a very high-risk venture, but if successful, it can deliver world-changing results.&lt;/p&gt;

&lt;p&gt;The first phase of this process is arguably the most challenging, where researchers must identify (discover) a specific molecule (e.g., DNA sequence, RNA molecule, protein, metabolite), that plays a role in a disease state and therefore, could be targeted by a drug to produce a therapeutic effect.&lt;/p&gt;

&lt;p&gt;Once discovered, researchers search for a compound or compounds that interact with the target molecule and that have the potential to become drug candidates.&lt;/p&gt;

&lt;p&gt;A variety of compounds are usually identified, triggering a series of experiments to understand their performance and viability. Typically, this assessment includes factors such as absorption, administration, side effects, and potential interactions. With the completion of these experiments, the most promising compounds are isolated and the preclinical research can begin.&lt;/p&gt;

&lt;p&gt;Even from this description, it is clear that the drug discovery and development process is extremely uncertain, and can fail at any point. Therefore, scientists and technologists are continuously looking for new capabilities and/or techniques to improve the chances of success or at minimum, to reduce the time, effort and cost.&lt;/p&gt;

&lt;p&gt;Therefore, I thought I would highlight a few companies that are doing interesting things with technology, specifically Artificial Intelligence (AI), to support drug discovery and development.&lt;/p&gt;

&lt;h4 id=&quot;insilico-medicine&quot;&gt;Insilico Medicine&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://insilico.com/&quot;&gt;Insilico Medicine&lt;/a&gt; uses AI for target identification, drug discovery, and biomarker development. Their end-to-end AI platform integrates various AI models to accelerate drug discovery and development.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;recursion&quot;&gt;Recursion&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.recursion.com/&quot;&gt;Recursion&lt;/a&gt; uses AI to analyze cellular imaging data, uncovering new biological insights and drug candidates. Their approach integrates high-throughput experiments with machine learning.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;benevolent&quot;&gt;Benevolent&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.benevolent.com/&quot;&gt;BenevolentAI&lt;/a&gt; integrates AI to explore the vast chemical space and identify promising drug candidates. Their platform combines biomedical data with machine learning to discover and develop new treatments.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;310-ai&quot;&gt;310 AI&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://310.ai/&quot;&gt;310.ai&lt;/a&gt; is building an AI operating system for life sciences, search protein databases, visualise, and run models all in one user-friendly interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;exscientia&quot;&gt;Exscientia&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.exscientia.com/&quot;&gt;Exscientia&lt;/a&gt; focuses on AI-driven drug discovery and design. Their AI platform accelerates the creation of new drug candidates, optimising properties such as potency and selectivity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;schrödinger&quot;&gt;Schrödinger&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.schrodinger.com/&quot;&gt;Schrödinger&lt;/a&gt; combines physics-based computational methods with machine learning to design and optimise new drugs. Their platform is used for both small molecule and biologics drug discovery.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;atomwise&quot;&gt;Atomwise&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.atomwise.com/&quot;&gt;Atomwise&lt;/a&gt; employs deep learning for structure-based drug design. Their AI technology, AtomNet, is designed to predict the bioactivity of small molecules for drug discovery applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;cyclica&quot;&gt;Cyclica&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyclicarx.com/&quot;&gt;Cyclica&lt;/a&gt; includes an AI platform, Ligand Express, which predicts polypharmacology and off-target effects of drug candidates, aiding in the design of safer and more effective drugs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;verge-genomics&quot;&gt;Verge Genomics&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vergegenomics.com/&quot;&gt;Verge Genomics&lt;/a&gt; uses AI to map out disease-relevant gene networks and discover drug targets. Their AI platform helps identify novel treatments for neurodegenerative diseases.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;relay-therapeutics-zebiai&quot;&gt;Relay Therapeutics (ZebiAI)&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://relaytx.com/&quot;&gt;Relay Therapeutics&lt;/a&gt; uses AI to predict the effects of small molecule drugs on biological targets, helping to identify potential drug candidates faster and more accurately.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;insitro&quot;&gt;Insitro&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.insitro.com/&quot;&gt;Insitro&lt;/a&gt; applies machine learning to biological data to discover and develop new drugs. Their approach combines data generation at scale with cutting-edge machine learning techniques.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is no guarantee that these companies will succeed and it is likely many will be acquired as they attempt to sustain their high burn rate through experimentation.&lt;/p&gt;

&lt;p&gt;However, I believe it is the convergence of traditional and computational science that will deliver the next wave of innovation within healthcare and life sciences.&lt;/p&gt;
</description>
        <pubDate>Sat, 22 Jun 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/06/22/Life-Sciences-AI/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/06/22/Life-Sciences-AI/</guid>
      </item>
    
      <item>
        <title>Microsoft Copilot+ PC</title>
        <description>&lt;p&gt;On the 20th of May, just before their annual &lt;a href=&quot;https://build.microsoft.com/&quot;&gt;Build&lt;/a&gt; conference, &lt;a href=&quot;https://blogs.microsoft.com/blog/2024/05/20/introducing-copilot-pcs/&quot;&gt;Microsoft held a special event to formally announce a new generation of Artificial Intelligence (AI) systems, known as Copilot+ PC&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The short promotion video below provides an overview of the announcement.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/5JmkWJNng2I?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The special event revealed the following:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;New branding and minimum specification for Copilot+ PC.&lt;/li&gt;
  &lt;li&gt;Windows on ARM with Prism emulation for x86-64 workloads.&lt;/li&gt;
  &lt;li&gt;Windows Copilot features, specifically Recall and integrations for Paint, Photos, etc.&lt;/li&gt;
  &lt;li&gt;Qualcomm Snapdragon X Plus and Elite with Copilot+ PC laptops from Microsoft, Dell, Lenovo, Samsung, HP, Asus, and Acer.&lt;/li&gt;
  &lt;li&gt;New Copilot+ PC options coming from Intel and AMD later this year.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;An eligible Copilot+ PC must meet the following minimum specification.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Neural Processing Unit (NPU) with 40 Trillion Operations per Second (TOPS)&lt;/li&gt;
  &lt;li&gt;8 Logical Processors&lt;/li&gt;
  &lt;li&gt;16GB Memory&lt;/li&gt;
  &lt;li&gt;256GB SSD Storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most notable requirement is the Neural Processing Unit (NPU), which must be capable of 40 Trillion Operations per Second (TOPS). Currently, only the recently announced Qualcomm Snapdragon X Plus and Elite processors meet this requirement, delivering 45 TOPS. Notably, the Qualcomm Snapdragon X Plus and Elite are ARM-based, not x86-64.&lt;/p&gt;

&lt;p&gt;Intel and AMD have announced that they will have Copilot+ PC options later this year, with the release of their next-generation architectures (e.g., Intel Lunar Lake and AMD Zen 5).&lt;/p&gt;

&lt;p&gt;The requirement for a dedicated NPU is interesting, as it excludes other capable hardware, such as a Graphics Processing Unit (GPU). For example, a mid-range NVIDIA GeForce 4050 Laptop GPU can deliver up to 194 TOPS, which is significantly above the 40 TOPS requirement. However, as it is not a dedicated NPU, it does not meet the requirement, meaning it will not gain access to Copilot+ PC features.&lt;/p&gt;

&lt;p&gt;It is fair to state, that a dedicated GPU would not be as power-efficient as an NPU, but power efficiency is not always a requirement, specifically for workstation-class laptops or desktops, which are predominately mains-powered.&lt;/p&gt;

&lt;p&gt;Therefore, the dedicated NPU requirement does feel like a barrier positioned by Microsoft marketing to clearly differentiate and force new hardware purchases and/or upgrades (which is a bit frustrating). Microsoft leveraged a similar tactic as part of the Windows 11 release, requiring specific processors and TPM 2.0.&lt;/p&gt;

&lt;p&gt;The memory and storage requirements make more sense, as the use of local AI capabilities, such as large language models (LLMs), can be resource-heavy. For example, Microsoft has stated they plan to ship 40+ large language models with Windows (stored and running locally) and the newly announced Recall feature requires a minimum of 50GB storage.&lt;/p&gt;

&lt;h3 id=&quot;windows-ai&quot;&gt;Windows AI&lt;/h3&gt;

&lt;p&gt;At the event, a lot of emphasis was placed on the Windows AI features included with Copilot+ PC, targeting Windows 11 24H2 (previously rumoured to be Windows 12). Unfortunately, since the announcement, there has been a strong consumer response to the headline feature, known as &lt;a href=&quot;https://support.microsoft.com/en-gb/windows/retrace-your-steps-with-recall-aa03f8a0-a78b-4b3e-b0a1-2eb8ac48701c&quot;&gt;Recall&lt;/a&gt;, highlighting privacy and security concerns.&lt;/p&gt;

&lt;p&gt;Recall is an explorable timeline, which works by capturing a screenshot automatically every five seconds. These screenshots are then made available to a local large language model, which can be used to query (recall) anything the user previously worked on via natural language. For example, &lt;em&gt;“Show me the slide I was working on which included a picture of a red dragon”&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The feature itself is quite interesting, as the human mind commonly places greater emphasis on visual cues vs. file systems when attempting to retrace memories.&lt;/p&gt;

&lt;p&gt;Unfortunately, and you would assume, fairly obviously, that any feature that takes a screenshot every five seconds would pose a legitimate privacy and security concern. For example, post-announcement, the cybersecurity community demonstrated examples of malware that could target and copy Recall data, making it a convenient target for cybercriminals.&lt;/p&gt;

&lt;p&gt;As a result, after several rounds of deliberation, Microsoft has formally delayed Recall. Therefore, it will not be available at launch with the first round of Copilot+ PC laptops, providing time for them to verify and improve the privacy/security controls.&lt;/p&gt;

&lt;h3 id=&quot;windows-on-arm&quot;&gt;Windows on ARM&lt;/h3&gt;

&lt;p&gt;Although the Windows AI features took centre stage, I was personally more interested in the switch from x86-64 to ARM, with the new Qualcomm Snapdragon X Plus and Elite processors.&lt;/p&gt;

&lt;p&gt;Microsoft has attempted (many times) to make Windows on ARM viable for consumers. Up to now, every attempt has resulted in failure, with poor native ARM performance and inconsistent compatibility with traditional x86-64 software. Therefore, unsurprisingly, PC manufacturers and the developer community have largely ignored Windows on ARM.&lt;/p&gt;

&lt;p&gt;This has been a point of frustration for Windows users, as the x86-64 market with Intel and AMD has been stagnant for many years, with uninspired incremental hardware revisions. &lt;a href=&quot;https://www.lifeintech.com/2020/11/18/apple-m1/&quot;&gt;It also placed the PC market at a disadvantage against Apple and their Apple Silicon laptops/desktops, which successfully switched to ARM in 2020&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To be clear, there is nothing inherently wrong with the x86-64 architecture. However, the ARM architecture has proven very capable in three key areas.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;All day (&amp;gt; 20 hours) battery life for common tasks.&lt;/li&gt;
  &lt;li&gt;Sustained high performance, even on battery.&lt;/li&gt;
  &lt;li&gt;Quiet operation, even under load.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These three areas are well suited to the ARM architecture, which is why it dominates the smartphone and tablet market. The Apple MacBook Air/Pro line of laptops has also proven the viability for larger computing devices, assuming the performance and software compatibility exists.&lt;/p&gt;

&lt;p&gt;In short, the PC market has failed to deliver a compelling Apple MacBook Air competitor with x86-64. Even when they have come close from a form-factor perspective, the performance on the battery (when not powered) is dramatically reduced, as x86-64 processors must throttle aggressively to maintain reasonable battery life.&lt;/p&gt;

&lt;p&gt;Thankfully, there is growing optimism that the newly announced Qualcomm Snapdragon X Plus and Elite processors, combined with the new Prism emulation layer will change this story, delivering the required combination of performance and compatibility to make Windows on ARM viable at scale.&lt;/p&gt;

&lt;p&gt;Initial signs are positive, with encouraging commitment from PC manufacturers (Dell, Lenovo, Samsung, HP, Asus, Acer) and the developer community (Google, Adobe, etc.)&lt;/p&gt;

&lt;h3 id=&quot;microsoft-surface-laptop-7&quot;&gt;Microsoft Surface Laptop 7&lt;/h3&gt;

&lt;p&gt;Earlier today, I received a Microsoft Surface Laptop 7 for testing, which is a Copilot+ PC laptop, running Windows on ARM via a Qualcomm Snapdragon X Elite processor.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/microsoftsurfacelaptop701.jpg&quot;&gt;&lt;img src=&quot;/images/posts/microsoftsurfacelaptop701.jpg&quot; alt=&quot;Microsoft Surface Laptop 7&quot; title=&quot;Microsoft Surface Laptop 7&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A summary of specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Microsoft Surface Laptop 7&lt;/li&gt;
  &lt;li&gt;Qualcomm Snapdragon X Elite (X1E-80-100 - 12C)&lt;/li&gt;
  &lt;li&gt;32GB LPDDR5x (8448 MT/s)&lt;/li&gt;
  &lt;li&gt;1TB M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;Wi-Fi 7 and Bluetooth 5.4&lt;/li&gt;
  &lt;li&gt;15-inch LCD Touchscreen (2496x1664 @ 120Hz)&lt;/li&gt;
  &lt;li&gt;2x USB-C (USB 4), 1x USB-A (USB 3.1), 1x MicroSDXC, 1x 3.5mm Headphone, 1x Surface Connect&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full specification of the Qualcomm Snapdragon X Elite (X1E-80-100) can be found on the &lt;a href=&quot;https://www.qualcomm.com/products/mobile/snapdragon/pcs-and-tablets/snapdragon-x-elite&quot;&gt;Qualcomm website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Over the next week, I will be testing the Microsoft Surface Laptop 7. Therefore, stay tuned for a follow-up article with the results. I am excited to see if ARM is the future of Windows!&lt;/p&gt;
</description>
        <pubDate>Fri, 21 Jun 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/06/21/Microsoft-Copilot+-PC/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/06/21/Microsoft-Copilot+-PC/</guid>
      </item>
    
      <item>
        <title>Threat Intelligence Podcast</title>
        <description>&lt;p&gt;In March, I was a guest on the &lt;a href=&quot;https://www.team-cymru.com/podcast&quot;&gt;Future of Threat Intelligence&lt;/a&gt; podcast, hosted by &lt;a href=&quot;https://www.linkedin.com/in/davidmonnier/&quot;&gt;David Monnier&lt;/a&gt; (CIO - &lt;a href=&quot;https://www.team-cymru.com/&quot;&gt;Team Cymru&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/threatintelligencepodcast01.jpg&quot; alt=&quot;Future of Threat Intelligence&quot; title=&quot;Future of Threat Intelligence&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The episode has now been published, links below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.team-cymru.com/podcast&quot;&gt;Team Cymru Podcast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://open.spotify.com/episode/30DMda5NP7TCFaRFeBb4zM?nd=1&amp;amp;dlsi=b389ea12acb642a6&quot;&gt;Spotify Podcast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/elancos-matthew-bull-on-navigating-cybersecurity-challenges/id1631947902?i=1000659620061&quot;&gt;Apple Podcasts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkLnBvZGJlYW4uY29tL2Z1dHVyZW9mY3liZXJyaXNrL2ZlZWQueG1s/episode/ZnV0dXJlb2ZjeWJlcnJpc2sucG9kYmVhbi5jb20vNTA1YWFjMWYtNzQ0OC0zZWExLWI1ZDUtYzQxMDM5OTk1OTk3?sa=X&amp;amp;ved=0CAUQkfYCahcKEwiwr4yI-euGAxUAAAAAHQAAAAAQAQ&quot;&gt;Google Podcasts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Future of Threat Intelligence podcast is dedicated to helping security experts and leading practitioners succeed in cybersecurity and risk management.&lt;/p&gt;

&lt;p&gt;In the episode, we discuss the unique challenges and opportunities of the life sciences industry and experience from our recent corporate separation. We emphasise the importance of practical application and hands-on experience in cybersecurity.&lt;/p&gt;

&lt;p&gt;We also talk about the necessity for proactive measures to tackle evolving threats. This includes the emergence of passwordless (FIDO2), Generative AI and modern automation techniques.&lt;/p&gt;

&lt;p&gt;It was a great discussion, thanks Team Cymru!&lt;/p&gt;
</description>
        <pubDate>Thu, 20 Jun 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/06/20/Threat-Intelligence-Podcast/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/06/20/Threat-Intelligence-Podcast/</guid>
      </item>
    
      <item>
        <title>Generative AI Value</title>
        <description>&lt;p&gt;Over the past year, my team developed and scaled a multi-model, multi-modal Generative AI framework for business, which has been used to power a wide range of use cases, primarily accessed via a natural language chatbot.&lt;/p&gt;

&lt;p&gt;I have documented this journey via a series of articles (links below), including our recent external recognition at the &lt;a href=&quot;/2024/05/10/BTOES-Awards/&quot;&gt;BTOES Awards&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;Integrated Generative AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/02/Generative-AI-Enhancements/&quot;&gt;Generative AI - Enhancements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/12/15/generative-ai-eoy/&quot;&gt;Generative AI - EoY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/05/10/BTOES-Awards/&quot;&gt;BTOES Awards&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/2023/12/15/generative-ai-eoy/&quot;&gt;Since my last update in December&lt;/a&gt;, we have continued to see viral growth and sustained adoption. The screenshot below highlights our real-time dashboard.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaivalue01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaivalue01.jpg&quot; alt=&quot;Generative AI Value&quot; title=&quot;Generative AI Value&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since launch, 6,144 unique users have accessed the service, which is 88% of the target audience. We see approximately 1,600 interactions per day, which is an approximate increase of 60% since December.&lt;/p&gt;

&lt;p&gt;Our custom persona capability, which I outlined in my &lt;a href=&quot;/2023/12/15/generative-ai-eoy/&quot;&gt;last article&lt;/a&gt; has been used to create 683 business-specific Generative AI chatbots, which can be shared via our internal marketplace.&lt;/p&gt;

&lt;p&gt;As a result, we predict 27,317 minutes have been saved, resulting in an estimated return on investment of $1,308,616, driving through productivity acceleration and cost avoidance.&lt;/p&gt;

&lt;p&gt;In addition, the Generative AI framework has been used to streamline and/or evolve specific business processes. Outlined below are six examples of business opportunities and their outcomes. All examples deliver a unique return on investment, above and beyond the value associated with productivity acceleration and cost avoidance.&lt;/p&gt;

&lt;h4 id=&quot;asksap---customer-orders&quot;&gt;AskSAP - Customer Orders&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Business Opportunity:&lt;/strong&gt; Replacing a time-consuming manual process regarding customer order queries, which was triggered by sales representatives ~17,000 in 2023, costing an estimated $250,000.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Outcome:&lt;/strong&gt; Real-time access to customer order information from SAP, including advanced queries to unlock customer insights.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;asksap---purchase-orders&quot;&gt;AskSAP - Purchase Orders&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Business Opportunity:&lt;/strong&gt; Dramatic reduction in user effort and complexity accessing Purchase Order and Invoice information, increasing efficiency and improving compliance.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Outcome:&lt;/strong&gt; Real-time access to Purchase Orders, Invoices and by extension, vendor expectations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;warehouse-management&quot;&gt;Warehouse Management&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Business Opportunity:&lt;/strong&gt; Warehouse engagement via email commonly lacks the required context to map specific requests to SKUs, resulting in order delays and/or errors, impacting customer satisfaction and inventory management.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Outcome:&lt;/strong&gt; Corporate B2B customer ordering via a controlled chatbot, replacing the legacy email process.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;manufacturing-quality-advisor&quot;&gt;Manufacturing Quality Advisor&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Business Opportunity:&lt;/strong&gt; Manufacturing sites must continuously maintain compliance, with any issues, potentially resulting in production stoppages, infraction letters, etc. The complexity of the site operations, documented across many policies and processes can contribute to errors, impacting both productivity and profitability. An estimated $1,300,000 is associated directly with execution errors.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Outcome:&lt;/strong&gt; Leverage language capabilities to automatically sort, summarise, compare and re-structure 2800 documents.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;pharmacovigilance&quot;&gt;Pharmacovigilance&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Business Opportunity:&lt;/strong&gt; A contact centre agent must accurately gather all necessary information, extracting key information to ensure the appropriate and timely next steps. Approximately 9000 cases a month (82% new).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Outcome:&lt;/strong&gt; Automated extraction and summarisation of key information, structured consistently to ensure accuracy, whilst reducing the burden on the agent by simplifying the input process and case management.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;document-translations&quot;&gt;Document Translations&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Business Opportunity:&lt;/strong&gt; Over $500,000 is spent on language translations per year, leveraging external agencies. In many cases, content is not translated due to time/budget constraints, which impacts adoption.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Outcome:&lt;/strong&gt; Automated document translation with domain-specific context and expertise, covering 135 languages, translating up to 40 languages simultaneously.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These examples are just a small sample, with new opportunities being identified and implemented every week!&lt;/p&gt;
</description>
        <pubDate>Sat, 15 Jun 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/06/15/Generative-AI-Value/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/06/15/Generative-AI-Value/</guid>
      </item>
    
      <item>
        <title>Project Starline</title>
        <description>&lt;p&gt;Earlier today, I tested &lt;a href=&quot;https://blog.google/technology/research/project-starline/&quot;&gt;Google Project Starline&lt;/a&gt;, which aims to deliver an immersive telepresence experience, where the participants are life-sized and displayed in three dimensions, without the need to wear glasses or a headset.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/obuyCkotJ_s?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;As described by Google, Project Starline is like looking through a magic window, where you can see another person, with volume and depth. You can talk naturally, gesture and make eye contact. The effect is the feeling of a person sitting directly in front of you.&lt;/p&gt;

&lt;p&gt;Project Starline combines computer vision, machine learning, spatial audio, a light field display and real-time data compression.&lt;/p&gt;

&lt;p&gt;The latest version of Project Starline (which has been through multiple iterations) is delivered as a compact series of cameras, attached to what appears to be a regular display.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/projectstarline01.jpg&quot; alt=&quot;Project Starline&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In use, the combination of spatial audio and the light field display successfully tricks the mind into believing the individual is present within the room, delivering an impressively realistic effect.&lt;/p&gt;

&lt;p&gt;Unfortunately, I was not able to record my test session, but even if I had, the “magic” would not translate to video. This is due to the use of eye-tracking technology, which is what maintains the visual illusion. Therefore, Project Skyline can only be experienced in person.&lt;/p&gt;

&lt;p&gt;The best overview/description I have seen is the &lt;a href=&quot;https://www.youtube.com/@mkbhd&quot;&gt;Marques Brownlee (MKBHD)&lt;/a&gt; video from last year.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/J1oEWiUsKgU?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I completed a similar series of tests as Marques (e.g., passing the apple). My reaction was similar to his, initially, a feeling of disbelief, followed by a desire to see how far the technology could be pushed before the illusion was broken. In the end, I settled into a natural conversation with the other person, which was the most realistic I have ever experienced via virtual conferencing.&lt;/p&gt;

&lt;p&gt;The specifics of the technology were left a little vague. For example, I would love to know exactly how the light field display works. Without any insider knowledge, &lt;a href=&quot;https://lookingglassfactory.com/&quot;&gt;Looking Glass&lt;/a&gt; appears to be the closest comparison.&lt;/p&gt;

&lt;p&gt;Information gleaned from other interviews (e.g., &lt;a href=&quot;https://www.wired.com/story/google-project-starline/&quot;&gt;Wired&lt;/a&gt;) states that the depth sensors are capable of capturing approximately 180 degrees. Therefore, if you move outside of this window, the volume and depth effects are lost.&lt;/p&gt;

&lt;p&gt;The data compression technology leverages a modified version of &lt;a href=&quot;https://webrtc.org/&quot;&gt;WebRTC&lt;/a&gt;, which is rumoured to reduce the size of the raw data by a factor of 100. This is what enables Project Starline to operate over a traditional network (although it would appear all the test sessions are connected within the same building).&lt;/p&gt;

&lt;p&gt;At this time, Project Starline remains a “Technology Project” and has specific restrictions. For example, it only supports one-to-one discussions. However, Google shared that they plan to commercialise the product in 2025, working with partners such as &lt;a href=&quot;https://www.hp.com/&quot;&gt;HP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The real-world applicability of Project Starline is yet to be proven. However, I can certainly see it being popular with business executives.&lt;/p&gt;

&lt;p&gt;Looking beyond 2025, I am interested in understanding how quickly this technology could be delivered to a wider audience, as it certainly feels like a positive step forward from traditional virtual conferencing technologies.&lt;/p&gt;
</description>
        <pubDate>Tue, 11 Jun 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/06/11/Project-Starline/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/06/11/Project-Starline/</guid>
      </item>
    
      <item>
        <title>Framework Paused</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2024/05/21/framework-gdp-g1/&quot;&gt;As highlighted in my last article&lt;/a&gt;, I have been partnering with &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt; to bring sustainable computing to enterprise businesses, starting with laptops.&lt;/p&gt;

&lt;p&gt;I have documented this journey, including my own experience working with Framework, across a series of articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/06/01/Framework-Performance/&quot;&gt;Framework Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/07/Framework-Laptop-Update/&quot;&gt;Framework Laptop Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/18/Framework-Laptop-Upgrade/&quot;&gt;Framework Laptop Upgrade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/19/3D-Printed-Framework/&quot;&gt;3D Printed Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/29/Framework-for-Business/&quot;&gt;Framework for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/30/Framework-Build/&quot;&gt;Framework Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/12/Framework-Business-Pilot/&quot;&gt;Framework Business Pilot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/09/Framework-Business-Process/&quot;&gt;Framework Business Process&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/01/15/framework-and-windows-to-go/&quot;&gt;Framework and Windows To Go&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/02/01/Framework-and-NixOS/&quot;&gt;Framework and NixOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/02/03/Framework-Laptop-16/&quot;&gt;Framework Laptop 16&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/03/10/Framework-Decision/&quot;&gt;Framework Decisions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/03/25/framework-business-launch/&quot;&gt;Framework Business Launch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/04/16/nirav-patel/&quot;&gt;Nirav Patel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/05/21/framework-gdp-g1/&quot;&gt;Framework GDP G1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With over fifteen years of experience working with traditional laptop manufacturers (e.g., Dell, Lenovo, HP), I have long felt the life cycle management and servicing business models were fundamentally flawed, with carefully engineered processes that favour manufacturers, requiring consumers and companies to buy new devices on a regular cadence (commonly three to five years).&lt;/p&gt;

&lt;p&gt;Therefore, my team and I set ourselves an ambitious goal to redefine these legacy business models, delivering an alternative approach that prioritises environmental sustainability and the right to repair. In our case, we predict the potential for an estimated 33% reduction in e-waste, alongside a positive return on investment for the business, saving an estimated millions over a ten-year lifecycle.&lt;/p&gt;

&lt;p&gt;In the article “&lt;a href=&quot;/2023/11/09/Framework-Business-Process/&quot;&gt;Framework Business Process&lt;/a&gt;”, I outlined our approach, including principles, processes and technical details.&lt;/p&gt;

&lt;p&gt;Earlier this year, we launched a business preview, deploying approximately 100 laptops, across the UK, US and Germany. The majority are Framework Laptop 13 (a mix of Intel and AMD), alongside a few Framework Laptop 16.&lt;/p&gt;

&lt;p&gt;The business preview itself was a success, verifying the viability of the concept. However, due to specific reliability and support findings, the value was not achieved, resulting in the decision to temporarily pause any additional scale.&lt;/p&gt;

&lt;p&gt;In the spirit of transparency, outlined below are the top findings identified as part of the business preview.&lt;/p&gt;

&lt;h4 id=&quot;reliability&quot;&gt;Reliability&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Boot Device Not Found:&lt;/strong&gt; ~75% failure rate with the Framework Laptop 13 AMD Ryzen 7040 Series, where the boot device becomes unreadable, requiring a full reinstallation of Windows 11.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Trackpad:&lt;/strong&gt; ~10% failure rate with the Framework Laptop 13 (AMD and Intel), where the trackpad remains functional but no longer “clicks” as designed.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Device Management Compliance:&lt;/strong&gt; ~100% failure rate with the Framework Laptop 13 AMD Ryzen 7040 Series, where the Pluton TPM fails attestation within Microsoft Intune.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Dead on Arrival:&lt;/strong&gt; 5% failure rate with the Framework Laptop 13 Intel Series, where the displays arrived (out of the box) cracked.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The failure rates were certainly higher than anticipated and above what we have seen with equivalent Dell/Lenovo laptops.&lt;/p&gt;

&lt;p&gt;We also noticed the impact of “wear and tear” was high, resulting in an increased failure rate for mechanical parts (e.g., trackpad).&lt;/p&gt;

&lt;p&gt;In all cases, the laptop could be recovered (software reset or hardware replacement). However, these activities take time and effort, impacting the return on investment.&lt;/p&gt;

&lt;p&gt;At this stage, it is unclear if these finders are isolated to our business preview or evidence that business users are “harder” on their devices, increasing the rate of failure with the modular nature of a Framework laptop.&lt;/p&gt;

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

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Technical Support:&lt;/strong&gt; Support tickets directed by our business account manager at Framework took many weeks/months to resolve. This included the coordination of replacement parts and the bugs identified in the software stack (specifically the AMD firmware).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Shipping Quality:&lt;/strong&gt; The delivery of replacement parts was frequently delayed or damaged in transit. Specifically, multiple failed attempts to deliver to our offices in Germany due to failed hand-offs between carriers and import restrictions.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Invoicing:&lt;/strong&gt; At the time of writing, Framework does not have established relationships with Value-Added Resellers (VARs), which are commonly used by enterprise businesses to enable global scale. As a result, direct purchasing was required, with issues associated with the timeliness of invoices, impacting internal financial processes.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The highlighted support findings were not unexpected based on the relative immaturity of the company and business processes. It should also be noted, that the Framework team were actively engaged and demonstrated a genuine desire to support and improve. This included regular meetings with Nirav (Founder and CEO of Framework). Therefore, I expect some of these issues to be resolved organically over time, as the company matures.&lt;/p&gt;

&lt;p&gt;Finally, in addition to the reliability and support findings, we have also been monitoring the market closely, specifically, the turbulence being generated by Microsoft regarding “AI PC” capabilities and the anticipated launch of ARM-based processors from Qualcomm. I believe these market dynamics could trigger a wave of innovation from Intel/AMD, making any buying decision in 2024 difficult.&lt;/p&gt;

&lt;p&gt;These external factors, contributed to our decision to pause, providing time to reflect, learn and improve with Framework, whilst also allowing the market to stabilise.&lt;/p&gt;
</description>
        <pubDate>Tue, 04 Jun 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/06/04/Framework-Paused/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/06/04/Framework-Paused/</guid>
      </item>
    
      <item>
        <title>Framework GDP G1</title>
        <description>&lt;p&gt;In late 2022, I initiated a partnership with &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt; to bring sustainable computing to enterprise businesses, starting with laptops.&lt;/p&gt;

&lt;p&gt;I have documented this journey, including my own experience working with Framework, across the following articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/06/01/Framework-Performance/&quot;&gt;Framework Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/07/Framework-Laptop-Update/&quot;&gt;Framework Laptop Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/18/Framework-Laptop-Upgrade/&quot;&gt;Framework Laptop Upgrade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/19/3D-Printed-Framework/&quot;&gt;3D Printed Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/29/Framework-for-Business/&quot;&gt;Framework for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/30/Framework-Build/&quot;&gt;Framework Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/12/Framework-Business-Pilot/&quot;&gt;Framework Business Pilot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/09/Framework-Business-Process/&quot;&gt;Framework Business Process&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/02/01/Framework-and-NixOS/&quot;&gt;Framework and NixOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/02/03/Framework-Laptop-16/&quot;&gt;Framework Laptop 16&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/03/10/Framework-Decision/&quot;&gt;Framework Decisions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/03/25/framework-business-launch/&quot;&gt;Framework Business Launch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/04/16/nirav-patel/&quot;&gt;Nirav Patel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the article “&lt;a href=&quot;/2023/11/09/Framework-Business-Process/&quot;&gt;Framework Business Process&lt;/a&gt;”, I outlined our approach, including principles, processes, technical details, etc.&lt;/p&gt;

&lt;p&gt;The majority of our testing was with the Framework Laptop 13, which covers 100+ users in production across the UK, Germany, and the US.&lt;/p&gt;

&lt;p&gt;Although the Framework Laptop 13 is a great laptop that delivers a good balance of portability and performance, it does not include an option for discrete graphics (e.g., NVIDIA or AMD). This is viable on the Framework Laptop 16. However, as per my article “Framework Decision”, the compromise regarding size, weight and build quality is significant.&lt;/p&gt;

&lt;p&gt;Therefore, we have positioned the use of an eGPU for the limited number of users that require additional graphics horsepower, either to run specialist applications and/or to grant access to computing platforms such as NVIDIA CUDA.&lt;/p&gt;

&lt;p&gt;This approach does limit the overall performance of the discrete graphics card, commonly achieving between 70% to 80% of the total performance. However, it is highly versatile, as the eGPU can be easily shared across teams and customisable/upgradable without restriction.&lt;/p&gt;

&lt;p&gt;As part of our testing, we purchased the &lt;a href=&quot;https://www.gpd.hk/gpdg1graphics&quot;&gt;GDP G1 eGPU Docking Station&lt;/a&gt;, which is not the cheapest (£686.95) or most powerful eGPU on the market, but is compact and includes additional ports.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkgdpg101.jpg&quot; alt=&quot;GDP G1 eGPU Docking Station&quot; title=&quot;GDP G1 eGPU Docking Station&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;AMD Radeon RX 7600M XT (8GB GDDR6)&lt;/li&gt;
  &lt;li&gt;1x Oculink（SFF-8612), 1x USB 4&lt;/li&gt;
  &lt;li&gt;3x USB 3.2, 1x HDMI 2.1, 2x DP 1.4a, 1x SD Reader 4.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AMD Radeon RX 7600M XT is built on the 6nm RDNA3 architecture, with 4096 stream processors, 32MB infinity cache and 13.3B transistors.&lt;/p&gt;

&lt;p&gt;When connected via USB 4, it delivers 63Gb/s, alongside 65W power to the laptop, including fast charging via PD protocol.&lt;/p&gt;

&lt;p&gt;Recognising the target audience, the testing was completed using Linux, specifically Ubuntu, which is our corporate standard.&lt;/p&gt;

&lt;p&gt;The first screenshot below highlights the default Framework Laptop 13 &lt;a href=&quot;https://www.geekbench.com/&quot;&gt;Geekbench 6&lt;/a&gt; score, using the Vulkan API. This includes the AMD Radeon 780M, with 12 graphics cores running at 2.7GHz.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkgdpg102.jpg&quot; alt=&quot;GDP G1 eGPU Docking Station&quot; title=&quot;GDP G1 eGPU Docking Station&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When connected via USB 4, the GDP G1 eGPU Docking Station is made immediately available for use (screenshot below). Thanks to the excellent support for AMD drivers within Linux, no additional software or configuration is required (plug and play).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkgdpg103.jpg&quot; alt=&quot;GDP G1 eGPU Docking Station&quot; title=&quot;GDP G1 eGPU Docking Station&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The GDP G1 eGPU Docking Station includes two Total Graphics Power (TGP) modes, toggled via a button on the front of the unit. The first is the quiet mode, delivering 60W TGP, and the second is the normal mode, delivering 100W TGP. The screenshot below highlights the Geekbench 6 score, using quiet mode (60W TGP).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkgdpg104.jpg&quot; alt=&quot;GDP G1 eGPU Docking Station&quot; title=&quot;GDP G1 eGPU Docking Station&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The screenshot below is the GDP G1 eGPU Docking Station running in normal mode (100W), highlighting the maximum obtainable performance.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkgdpg105.jpg&quot; alt=&quot;GDP G1 eGPU Docking Station&quot; title=&quot;GDP G1 eGPU Docking Station&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The performance improvement from the integrated AMD Radeon 780M to the discrete AMD Radeon RX 7600M XT is approximately 66%, when running in normal mode (100W). Although this mode is in theory louder due to the higher TGP, the actual fan noise is perfectly acceptable (no louder than most gaming laptops).&lt;/p&gt;

&lt;p&gt;Overall, the eGPU option worked very well, delivering a highly versatile method of increasing graphics performance, whilst maintaining the modular/sustainable philosophy promoted by Framework.&lt;/p&gt;

&lt;p&gt;The only minor issue identified during the testing was a bug during boot when full disk encryption was enabled for Ubuntu. The system would simply hang until the eGPU was switched off or physically disconnected. At this point, the system booted as expected.&lt;/p&gt;
</description>
        <pubDate>Tue, 21 May 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/05/21/Framework-GDP-G1/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/05/21/Framework-GDP-G1/</guid>
      </item>
    
      <item>
        <title>Next CIO Awards UK</title>
        <description>&lt;p&gt;Thanks to CIO.com for the recognition, being named a &lt;a href=&quot;https://www.idgevents.com/event/7f584594-8a16-48f8-a912-afae142a0d8d/summary&quot;&gt;Next CIO Awards UK 2024&lt;/a&gt; winner, which aims to “recognising the rising stars of the UK IT sector”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nextcioawardsuk01.jpg&quot; alt=&quot;Next CIO Awards UK&quot; title=&quot;Next CIO Awards UK&quot; /&gt;&lt;/p&gt;

&lt;p&gt;CIO.com is a well-established publication, that attracts the highest concentration of enterprise business technology executives, offering unparalleled peer insights and expertise on business strategy, innovation, and leadership.&lt;/p&gt;

&lt;p&gt;Next CIO highlights digital, data and technology leaders, joining an exclusive community that supports inclusion, career development and progress. It is also an opportunity for current/existing CIOs and business leaders to reward their colleagues and peers for what they have achieved.&lt;/p&gt;

&lt;p&gt;The 2024 judging panel included representation from: &lt;a href=&quot;https://microsoft.com/&quot;&gt;Microsoft&lt;/a&gt;, &lt;a href=&quot;https://www.london.ac.uk/&quot;&gt;University of London&lt;/a&gt;, &lt;a href=&quot;https://www.stantec.com/&quot;&gt;Stantec&lt;/a&gt;, &lt;a href=&quot;https://unitedliving.co.uk/&quot;&gt;United Living&lt;/a&gt;, &lt;a href=&quot;https://www.datapharm.com/&quot;&gt;Datapharm&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;I am proud to represent my amazing team, as we partner to provide those who raise and care for animals with products/services that empower them to solve some of the world’s most pressing issues. Congratulations to all the winners!&lt;/p&gt;
</description>
        <pubDate>Thu, 16 May 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/05/16/Next-CIO-Awards-UK/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/05/16/Next-CIO-Awards-UK/</guid>
      </item>
    
      <item>
        <title>Common PIN Codes</title>
        <description>&lt;p&gt;Earlier this week, the following chart was published/shared via &lt;a href=&quot;https://www.reddit.com/r/dataisbeautiful/comments/1cn7l7r/oc_most_common_4_digit_pin_numbers_from_an/&quot;&gt;Reddit&lt;/a&gt;, highlighting the most common four-digit PIN codes. The source of the analysis was a blog post from &lt;a href=&quot;http://www.datagenetics.com/blog/september32012/index.html&quot;&gt;DataGenetics&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/commonpincodes01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/commonpincodes01.jpg&quot; alt=&quot;Common PIN Codes&quot; title=&quot;Common PIN Codes&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The analysis leverages 3.4 million PIN codes, collated from released/exposed/discovered credential tables and public security breaches.&lt;/p&gt;

&lt;p&gt;The data highlights that the top twenty PIN codes constitute 27% of all PIN codes, with common themes being two pairs and birth years.&lt;/p&gt;

&lt;p&gt;The reason this information is valuable is that PIN codes are becoming more relevant as consumers and businesses look to embrace Windows Hello for passwordless authentication.&lt;/p&gt;

&lt;p&gt;Windows Hello is a significant step forward for authentication, as it is FIDO2 compliant, which is phishing-resistant. By default, Windows Hello leverages biometrics (facial recognition or fingerprint), but is also backed by a PIN code (minimum four digits).&lt;/p&gt;

&lt;p&gt;On the surface, the use of a PIN code feels less secure than a complex password. However, the key difference is the FIDO2 compliance and the fact the PIN code is only associated with one device (desktop, laptop, smartphone, etc.) Therefore, to use the PIN code, you must have physical access to the device itself (in theory, it cannot be compromised remotely).&lt;/p&gt;

&lt;p&gt;In addition, when using Windows Hello, the PIN code is stored in the Trusted Platform Module (TPM), which includes anti-hammering protection, which aims to prevent the PIN code from being brute forced.&lt;/p&gt;

&lt;p&gt;By default, the TPM (v2.0) is configured by Windows to lock after 32 authorisation failures and to forget one authorisation failure every 10 minutes. This configuration can be customised, which should be considered based on the risk profile of the business/user/data. Additional information can be found in the &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/security/hardware-security/tpm/tpm-fundamentals&quot;&gt;TPM Fundamentals&lt;/a&gt; article published by Microsoft.&lt;/p&gt;

&lt;p&gt;Assuming a four-digit PIN code is used, with the default TPM anti-hammering protection, attempting all 9999 possible PIN combinations would take approximately two years.&lt;/p&gt;

&lt;p&gt;With that said, I would still recommend leveraging the insights from this data analysis to select a “strong” PIN code (minimum six digits), targeting a unique number sequence.&lt;/p&gt;
</description>
        <pubDate>Wed, 15 May 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/05/15/Common-PIN-Codes/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/05/15/Common-PIN-Codes/</guid>
      </item>
    
      <item>
        <title>BTOES Awards</title>
        <description>&lt;p&gt;This week, my team attended &lt;a href=&quot;https://btoesawards.com/&quot;&gt;The Business Transformation &amp;amp; Operational Excellence Summit (BTOES) industry awards&lt;/a&gt; in Orlando, where we were selected as a finalist in the category of “Best achievement in deployment of AI in the enterprise”.&lt;/p&gt;

&lt;p&gt;The team were recognised for their work on ElancoGPT, a multi-model, multi-modal Generative AI framework, designed to accelerate productivity by streamlining common business tasks.&lt;/p&gt;

&lt;p&gt;ElancoGPT is private to Elanco, with specific business features and controls to ensure security, privacy, legal, and compliance. It leverages Retrieval-Augmented Generation (RAG) to ingest Elanco data, enhancing the accuracy and reliability of output.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/btosawards01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/btosawards01.jpg&quot; alt=&quot;BTOES Awards&quot; title=&quot;BTOES Awards&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have documented the design and development of ElancoGPT via a series of blog posts.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;Integrated Generative AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/02/Generative-AI-Enhancements/&quot;&gt;Generative AI - Enhancements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/12/15/generative-ai-eoy/&quot;&gt;Generative AI - EoY&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since launch, ElancoGPT has seen dramatic organic adoption, covering ~63% of the FTE workforce, generating an estimated ROI of $1,063,344 through productivity acceleration.&lt;/p&gt;

&lt;p&gt;A summary of the 2024 finalists and winners can be found on the &lt;a href=&quot;https://insights.btoes.com/2024-btoes-awards-finalists-pillar-page&quot;&gt;BTOS website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Early next month, I plan to provide an update on our progress, highlighting our latest features, roadmap and learnings.&lt;/p&gt;
</description>
        <pubDate>Fri, 10 May 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/05/10/BTOES-Awards/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/05/10/BTOES-Awards/</guid>
      </item>
    
      <item>
        <title>3DFX Voodoo Banshee</title>
        <description>&lt;p&gt;My passion for computing formally started in 1992 (I was 8), &lt;a href=&quot;/2011/12/12/first-pc/&quot;&gt;when my parents purchased our first PC&lt;/a&gt; and my dad and I successfully upgraded the processor from an Intel i486SX to an Intel i486 OverDrive.&lt;/p&gt;

&lt;p&gt;This moment began a lifelong love of computer hardware and ultimately, all things technology (e.g., hardware, software, data, networking, gadgets, etc.)&lt;/p&gt;

&lt;p&gt;However, it was in 1998 (I was 14), when my parents bought me my first 3D accelerated graphics card, that things really changed.&lt;/p&gt;

&lt;p&gt;Therefore, to this day, 25 years later, I still consider the &lt;a href=&quot;https://www.techpowerup.com/gpu-specs/voodoo-banshee-pci-16-mb.c3562&quot;&gt;3DFX Voodoo Banshee PCI 16MB&lt;/a&gt; the most important and influential technology purchase of my life.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/3dfxvoodoobanshee01.jpg&quot; alt=&quot;3DFX Voodoo Banshee&quot; title=&quot;3DFX Voodoo Banshee&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This upgrade opened my eyes to an entirely new world of 3D accelerated games, including Quake (1996), specifically GLQuake (1997), Half Life (1998), Unreal (1998), etc.&lt;/p&gt;

&lt;p&gt;Up until this point, I had relied upon software rendering within games, which inherently restricted the resolution, frame rate and graphics techniques, such as transparency, shadows, etc.&lt;/p&gt;

&lt;p&gt;I vividly remember loading Half Life and watching the opening sequence in full 3D accelerated glory and being blown away. I spent the next decade building, modifying, and tweaking computers, looking for any opportunity to push the hardware and software to its limits.&lt;/p&gt;

&lt;p&gt;The 3DFX Voodoo Banshee was an interesting graphics card, as it was a single-card, single-chip solution, combining 2D and 3D acceleration. This was the first time 3DFX had released a single-chip solution, following the commercial failure of the 3DFX Voodoo Rush, which was a single-card solution but accelerated 2D and 3D graphics via different chips.&lt;/p&gt;

&lt;p&gt;By comparison, the original 3DFX Voodoo was a dedicated 3D accelerator card, which required an additional video controller for 2D acceleration. The implementation required a pass-through VGA cable daisy-chained, which increased the complexity and cost for the consumer.&lt;/p&gt;

&lt;p&gt;Therefore, combining 2D and 3D acceleration onto a single card and a single chip was the future.&lt;/p&gt;

&lt;p&gt;Interestingly, you would assume, based on the history of the 3DFX, that the 3D acceleration of the 3DFX Voodoo Banshee would be the highlight. However, it was the 2D acceleration that made the product special. For example, all Windows GDI functions were implemented in hardware, with a 128Bit 2D core matching VESA 3.0 specifications, making the 3DFX Voodoo Banshee one of the fastest 2D accelerators on the market and an excellent choice for DOS gaming.&lt;/p&gt;

&lt;p&gt;Ironically, the 3D acceleration was a little more controversial, as although it supported Microsoft DirectX 6.0 and OpenGL 1.1, the 3DFX Voodoo Banshee was equipped with a single texture unit, unlike the 3DFX Voodoo 2, which had two texture units. As a result, the 3DFX Voodoo Banshee was slower when processing multi-textured environments. Therefore, anyone looking for the “best” 3D acceleration from a 3DFX graphics card would be better served by the 3DFX Voodoo 2.&lt;/p&gt;

&lt;p&gt;From memory, my dad and I selected the 3DFX Voodoo Banshee as it was a cost-effective, single-card 2D/3D accelerator, which was compatible with PCI (vs. AGP).&lt;/p&gt;

&lt;p&gt;In summary, even with industry defining products such as the Apple iPhone, I will always look back with memories of admiration and excitement regarding the 3DFX Voodoo Banshee.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; At the time, I did not recognise the importance of this card to me personally. Therefore, as is often the case, it was lost to time. However, I recently purchased one on eBay and framed it in my office.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/3dfxvoodoobanshee02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/3dfxvoodoobanshee02.jpg&quot; alt=&quot;3DFX Voodoo Banshee&quot; title=&quot;3DFX Voodoo Banshee&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is common for people who start their own business to frame their first note earned. This is my version of that tradition, the graphics card that started my LifeinTECH.&lt;/p&gt;
</description>
        <pubDate>Sat, 27 Apr 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/04/27/3DFX-Voodoo-Banshee/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/04/27/3DFX-Voodoo-Banshee/</guid>
      </item>
    
      <item>
        <title>Ubuntu Cheat Sheet</title>
        <description>&lt;p&gt;Earlier today, Canonical released Ubuntu Desktop 24.04 LTS Noble Numbat. I recommend reviewing their &lt;a href=&quot;https://ubuntu.com/blog/ubuntu-desktop-24-04-noble-numbat-deep-dive&quot;&gt;recent blog post&lt;/a&gt; for a summary of the new features, etc.&lt;/p&gt;

&lt;p&gt;NixOS and Fedora are my preferred Linux distributions. However, at work, I still use Ubuntu Desktop thanks to the stronger support for Microsoft Endpoint Management (Intune) and Protection (Defender).&lt;/p&gt;

&lt;p&gt;Therefore, I thought I would share my initial setup steps (which can be automated) for Ubuntu Desktop.&lt;/p&gt;

&lt;h3 id=&quot;ubuntu-desktop-configuration&quot;&gt;Ubuntu Desktop Configuration&lt;/h3&gt;

&lt;p&gt;Ubuntu Desktop 24.04 LTS Noble Numbat can be downloaded from the &lt;a href=&quot;https://ubuntu.com/download/desktop&quot;&gt;Canonical website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I create a bootable USB using &lt;a href=&quot;https://etcher.balena.io/&quot;&gt;balenaEtcher&lt;/a&gt;, which supports Windows, macOS and Linux.&lt;/p&gt;

&lt;p&gt;As part of the initial Ubuntu Desktop installation, I configure the following:&lt;/p&gt;

&lt;h4 id=&quot;secure-configuration&quot;&gt;Secure Configuration:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Full Disk Encryption: LVM and Encryption&lt;/li&gt;
  &lt;li&gt;Encryption Passphrase: Minimum 12 Characters&lt;/li&gt;
  &lt;li&gt;Login Password: Minimum 12 Characters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also install the following corporate endpoint management and protection software.&lt;/p&gt;

&lt;h4 id=&quot;security-software&quot;&gt;Security Software:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/mem/intune/user-help/microsoft-intune-app-linux&quot;&gt;Microsoft Intune for Linux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/defender-endpoint/microsoft-defender-endpoint-linux&quot;&gt;Microsoft Defender for Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;ubuntu-pro-configuration&quot;&gt;Ubuntu Pro Configuration&lt;/h3&gt;

&lt;p&gt;The following commands enable &lt;a href=&quot;https://ubuntu.com/pro&quot;&gt;Ubuntu Pro&lt;/a&gt;, which is a low-cost (free for personal use) subscription service that aims to provide stability, security, and compliance for Ubuntu installations.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo pro attach ...  
pro --version  
pro security-status  
pro security-status --esm-apps
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
NOTE: The attach command requires your unique token, which can be found on the &lt;a href=&quot;https://ubuntu.com/pro/dashboard&quot;&gt;Ubuntu Pro Dashboard&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Ubuntu Pro includes the following useful features.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Expanded Security Maintenance (ESM):&lt;/strong&gt; ESM provides 10 years of vulnerability management for critical, high and selected medium CVEs for all software packages shipped with Ubuntu.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Live Kernel Updates:&lt;/strong&gt; Minimise downtime and unplanned reboots with patches for critical and high-severity kernel vulnerabilities.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Compliance and Hardening:&lt;/strong&gt; Certified automation tools for hardening and compliance profiles. Specifically, I target “cis_level1_workstation”.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;ubuntu-package-manager&quot;&gt;Ubuntu Package Manager&lt;/h3&gt;

&lt;p&gt;The following commands are useful when interacting with the Ubuntu Advanced Packaging Tool (APT).&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt update  
sudo apt upgrade  
sudo apt install ...  
sudo apt remove ...  
sudo apt purge ...  
sudo apt download ...  
sudo add-apt-repository -L  
sudo add-apt-repository ...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
I would always recommend running ‘sudo apt update’ and ‘sudo apt upgrade’ following a new installation to ensure the operating system and software packages are up to date.&lt;/p&gt;

&lt;h3 id=&quot;recommended-snaps-applications&quot;&gt;Recommended Snaps (Applications)&lt;/h3&gt;

&lt;p&gt;Although I prefer Flatpak, Canonical continues to favour snaps. Therefore, outlined below are the applications I install via snap, all of which are verified.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo snap install libreoffice  
sudo snap install slack  
sudo snap install code --classic  
sudo snap install firefox  
sudo snap install standard-notes  
sudo snap install bitwarden  
sudo snap install gimp  
sudo snap install krita  
sudo snap install audacity  
sudo snap install vlc  
sudo snap install natron  
sudo snap install obs-studio  
sudo snap install gnome-boxes  
sudo snap install postman  
sudo snap install godot-4  
sudo snap install steam
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
I use Obsidian for note-taking, which can also be installed via a snap. However, it must be &lt;a href=&quot;https://obsidian.md/download&quot;&gt;downloaded manually from the Obsidian website&lt;/a&gt; and installed using the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;snap install obsidian_1.5.12_amd64.snap --dangerous --classic
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The “dangerous” flag sounds scary, but is OK when the snap is downloaded from a trusted source. In short, it acknowledges that Canonical has not reviewed this snap.&lt;/p&gt;

&lt;p&gt;Finally, the following commands are useful when interacting with snaps.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;snap refresh --list
snap info ...
sudo snap refresh
sudo snap refresh ...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The ‘sudo snap refresh’ command will update all installed snaps.&lt;/p&gt;

&lt;h3 id=&quot;recommended-apt-packages-applications&quot;&gt;Recommended APT Packages (Applications)&lt;/h3&gt;

&lt;p&gt;The following applications are not available, viable and/or verified as a snap. As a result, I install them using the Ubuntu Advanced Packaging Tool (APT).&lt;/p&gt;

&lt;p&gt;The following command installs the common Microsoft fonts.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt install ttf-mscorefonts-installer
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The following command installs and starts &lt;a href=&quot;https://docs.docker.com/engine/install/&quot;&gt;Docker&lt;/a&gt; and &lt;a href=&quot;https://docs.docker.com/compose/&quot;&gt;Docker Compose&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get install ca-certificates curl  
sudo install -m 0755 -d /etc/apt/keyrings  
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc  
sudo chmod a+r /etc/apt/keyrings/docker.asc  
echo \  
	  &quot;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \  
	  $(. /etc/os-release &amp;amp;&amp;amp; echo &quot;$VERSION_CODENAME&quot;) stable&quot; | \  
	  sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null  
sudo apt-get update  
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin  
sudo service docker start
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
At work, we use &lt;a href=&quot;https://www.microsoft.com/en/microsoft-365&quot;&gt;Microsoft 365&lt;/a&gt; for productivity, collaboration and security. As Microsoft do not have native applications for Linux, I would recommend installing &lt;a href=&quot;https://www.microsoft.com/edge&quot;&gt;Microsoft Edge&lt;/a&gt; for improved compatibility with their web services. To install, you must first &lt;a href=&quot;https://www.microsoft.com/edge/business/download&quot;&gt;download Microsoft Edge from the Microsoft website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It can then be installed using the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt install ./microsoft-edge-stable_124.0.2478.51-1_amd64.deb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.openshot.org/&quot;&gt;Openshot&lt;/a&gt;, which is a popular open-source video editing application, can be installed via the following commands.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo add-apt-repository ppa:openshot.developers/ppa  
sudo apt update  
sudo apt install openshot-qt python3-openshot
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Quickemu, is a great virtualisation application that automates the download, installation and configuration of virtual machines (Windows, macOS, Linux, etc.) The following commands install Quickemu.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-add-repository ppa:flexiondotorg/quickemu
sudo apt update
sudo apt install quickemu
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Finally, &lt;a href=&quot;https://ollama.com/&quot;&gt;Ollama&lt;/a&gt; is an application for running local Large Language Models (LLMs), including popular open-source options such as &lt;a href=&quot;https://llama.meta.com/llama3/&quot;&gt;Meta Llama 3&lt;/a&gt;, etc. The following command installs Ollama.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl -fsSL https://ollama.com/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
That’s it! Ubuntu Desktop is now ready for work. There are other applications that I install, but I consider these personal/optional, which I tend to install as needed and not as part of my initial setup.&lt;/p&gt;
</description>
        <pubDate>Thu, 25 Apr 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/04/25/Ubuntu-Cheat-Sheet/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/04/25/Ubuntu-Cheat-Sheet/</guid>
      </item>
    
      <item>
        <title>TechPoint MIRA Awards 2024</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Unfortunately, the team did not win the main prize. However, it was great to engage the community, celebrating the thought leadership and innovation. Congratulations to all the winners.&lt;/p&gt;

&lt;p&gt;For the third consecutive year, &lt;a href=&quot;https://techpoint.org/techpoint-announces-25th-annual-mira-awards-nominees/&quot;&gt;my team has been nominated and selected as a winner for a TechPoint MIRA award&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In 2024, the team were highlighted in the category of “Digital Transformation”, which recognises teams from any industry that have demonstrated outstanding vision and innovation for driving digital adoption and leveraging technology to revolutionise and elevate their operations and/or overall industry standards.&lt;/p&gt;

&lt;p&gt;Our submission outlined our new omnichannel digital engagement strategy, which successfully increased customer touch points by 30%, reducing the average time to first purchase by 28%. In a pilot with 10,000 customers, we also observed a 4% increase in sales.&lt;/p&gt;

&lt;p&gt;The short video below highlights the TechPoint MIRA Awards 2023 gala, which is the annual event where the final winners are announced.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/jmV2gxPQv-g?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The winners of &lt;a href=&quot;https://techpoint.org/2023-mira-awards&quot;&gt;2024 TechPoint MIRA Awards&lt;/a&gt; will be announced later this week on Friday, 26 April 2024. Wish us luck!&lt;/p&gt;
</description>
        <pubDate>Wed, 24 Apr 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/04/24/TechPoint-MIRA-Awards-2024/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/04/24/TechPoint-MIRA-Awards-2024/</guid>
      </item>
    
      <item>
        <title>SXSW 2024</title>
        <description>&lt;p&gt;As highlighted in previous articles, at my company, we prioritise our “&lt;a href=&quot;https://www.myelanco.co.uk/about/healthy-purpose&quot;&gt;Healthy Purpose&lt;/a&gt;”, which is the platform through which we engage with our employees, communities and industry leaders across more than 90 countries, to provide global, sustainable solutions that make an impact.&lt;/p&gt;

&lt;p&gt;As CTO/CISO, I look to ensure IT is acting as a thought leader, exploring new ways to minimise our environmental footprint, and prioritising partnerships that unlock innovation to advance our sustainability efforts. Our most recent initiative involves a unique praetorship with the company &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt; to bring sustainable computing to enterprise businesses, starting with laptops.&lt;/p&gt;

&lt;p&gt;In parallel my CEO and mentor, &lt;a href=&quot;https://www.linkedin.com/in/jeffsimmons2050/&quot;&gt;Jeff Simmons&lt;/a&gt;, recently presented alongside a panel of experts (&lt;a href=&quot;https://www.linkedin.com/in/frank-mitloehner-937bb120/&quot;&gt;Frank Mitloehner&lt;/a&gt; - &lt;a href=&quot;https://clear.ucdavis.edu/&quot;&gt;CLEAR Center&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/kendra-tolley/&quot;&gt;Kendra Tolley&lt;/a&gt; - &lt;a href=&quot;https://www.athian.ai/&quot;&gt;Athian&lt;/a&gt;) at South by Southwest (SXSW) 2024, focused on sustainable farming.&lt;/p&gt;

&lt;p&gt;Dairy and livestock production have long been named “climate culprits.” However, we believe that meat and dairy need to be part of the climate solution. The SXSW presentation provides insights into how reducing methane emissions in livestock can lead to environmental sustainability improvements while feeding a growing world population high-quality protein.&lt;/p&gt;

&lt;p&gt;Jeff and the panel unpack how technologies and innovations are revolutionising agriculture putting climate-neutral cattle farming within reach this decade.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/RfYTguEP8SY?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The session is over one hour, but well worth the time. I believe the panel did a nice job of presenting the data, providing the required context to better understand this complex topic, whilst outlining a science-based, pragmatic path forward.&lt;/p&gt;
</description>
        <pubDate>Fri, 19 Apr 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/04/19/SXSW-2024/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/04/19/SXSW-2024/</guid>
      </item>
    
      <item>
        <title>Nirav Patel</title>
        <description>&lt;p&gt;As highlighted in my previous articles, my team has been partnering with &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt; to bring sustainable computing to enterprise businesses, starting with laptops.&lt;/p&gt;

&lt;p&gt;Earlier this month, &lt;a href=&quot;/2023/11/09/Framework-Business-Process/&quot;&gt;following an insightful pilot&lt;/a&gt;, we &lt;a href=&quot;/2024/03/25/Framework-Business-Launch/&quot;&gt;launched our business preview in Europe&lt;/a&gt;. Initial feedback has been very positive and I plan to share more details soon.&lt;/p&gt;

&lt;p&gt;Complimenting this initiative, Nirav Patel (Founder and CEO of Framework) recently completed an interview with &lt;a href=&quot;https://www.jasoncarman.com/&quot;&gt;Jason Carman, who has an excellent YouTube series called S3 focused on startups&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Therefore, if you watch one video this week, I would recommend the interview with Nirav. He speaks to his approach to innovation, following his experience building FaceTime at Apple and becoming the first employee at Oculus, before the Meta (Facebook) acquisition.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Ca3T5qHXZF4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;A few snippets (not quotes) that resonate strongly with me.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Follow your passion and stay curious, seek to understand the “why” by getting hands-on”.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Never try to replicate another company or product. Chart your own course, start lean, iterate quickly and continuously learn”.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Use your own products early. Even when they are flaky”.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Target markets where your ideas force competitors to challenge their traditional business models”.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Establish partnerships based on an aligned sense of purpose and values”.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The interview is full of fascinating insights, many of which are behaviours/approaches that I personally foster and openly promote.&lt;/p&gt;

&lt;p&gt;Over the past year, my team has built a great relationship with Nirav and I can confirm he is one of the hardest-working individuals I have ever met. Therefore, I have a lot of respect for his insights.&lt;/p&gt;

&lt;p&gt;Over the coming months, I intend to share more details regarding our partnership and scale (we expect to deploy ~1600 Framework laptops in 2024), alongside some official collaborations with the Framework team. Exciting times ahead!&lt;/p&gt;
</description>
        <pubDate>Tue, 16 Apr 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/04/16/Nirav-Patel/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/04/16/Nirav-Patel/</guid>
      </item>
    
      <item>
        <title>Future of Threat Intelligence</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;  - &lt;a href=&quot;/2024/06/20/Threat-Intelligence-Podcast/&quot;&gt;The episode is now live&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Earlier today, I joined &lt;a href=&quot;https://www.linkedin.com/in/davidmonnier/&quot;&gt;David Monnier&lt;/a&gt; (CIO - &lt;a href=&quot;https://www.team-cymru.com/&quot;&gt;Team Cymru&lt;/a&gt;) as a guest on the &lt;a href=&quot;https://www.team-cymru.com/podcast&quot;&gt;Future of Threat Intelligence&lt;/a&gt; podcast, also available on &lt;a href=&quot;https://podcasts.apple.com/us/podcast/future-of-cyber-risk/id1631947902&quot;&gt;Apple Podcasts&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Future of Threat Intelligence podcast is dedicated to helping security experts and leading practitioners succeed in cybersecurity and risk management. Each episode highlights actionable takeaways to help the audience get ahead of the curve and prepare for the trends and technologies shaping the future.&lt;/p&gt;

&lt;p&gt;It was a great discussion, covering a wide range of topics, specifically my background/career, threat intelligence, cyber risk strategy, emerging technologies, talent development, and recommendations.&lt;/p&gt;

&lt;p&gt;The podcast should be published in the next couple of months.&lt;/p&gt;
</description>
        <pubDate>Thu, 28 Mar 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/03/28/Future-of-Threat-Intelligence/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/03/28/Future-of-Threat-Intelligence/</guid>
      </item>
    
      <item>
        <title>Framework Business Launch</title>
        <description>&lt;p&gt;In late 2022, I initiated a pioneering partnership with &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt;, to bring sustainable computing to enterprise businesses, starting with laptops.&lt;/p&gt;

&lt;p&gt;With over fifteen years of experience working with traditional laptop manufacturers, I have long felt the business models supporting life cycle management and servicing were fundamentally broken, favouring the manufacturer that forces consumers and companies to buy new devices regularly.&lt;/p&gt;

&lt;p&gt;In 2024, as Chief Technology Officer (CTO) at my company, we are taking a stand against this practice, which we believe will reduce our e-waste by ~33%, whilst also delivering a positive return on investment for the business, saving an estimated $18M over a ten-year lifecycle.&lt;/p&gt;

&lt;p&gt;I have documented this journey, covering my personal and business experience, over a series of articles. Specifically, the articles “&lt;a href=&quot;/2023/09/12/Framework-Business-Pilot/&quot;&gt;Framework for Business Pilot&lt;/a&gt;” and “&lt;a href=&quot;/2023/11/09/Framework-Business-Process/&quot;&gt;Framework Business Process&lt;/a&gt;”.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/06/01/Framework-Performance/&quot;&gt;Framework Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/07/Framework-Laptop-Update/&quot;&gt;Framework Laptop Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/18/Framework-Laptop-Upgrade/&quot;&gt;Framework Laptop Upgrade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/19/3D-Printed-Framework/&quot;&gt;3D Printed Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/29/Framework-for-Business/&quot;&gt;Framework for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/30/Framework-Build/&quot;&gt;Framework Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/12/Framework-Business-Pilot/&quot;&gt;Framework Business Pilot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/09/Framework-Business-Process/&quot;&gt;Framework Business Process&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/02/01/Framework-and-NixOS/&quot;&gt;Framework and NixOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/02/03/Framework-Laptop-16/&quot;&gt;Framework Laptop 16&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2024/03/10/Framework-Decision/&quot;&gt;Framework Decisions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Last week, Framework formally acknowledged our progress with the official launch of “&lt;a href=&quot;https://frame.work/gb/en/framework-for-business&quot;&gt;Framework for Business&lt;/a&gt;”, which now has a prominent position on their home page.&lt;/p&gt;

&lt;p&gt;Although still very early, the Framework for Business webpage provides useful context, alongside key information for businesses looking to explore sustainable computing. I am also excited to see our endorsement and support clearly positioned.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworkbusinesslaunch01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworkbusinesslaunch01.jpg&quot; alt=&quot;Framework for Business&quot; title=&quot;Framework for Business&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Over the coming months, I intend to share more details regarding our partnership and scale (we expect to deploy ~1600 laptops in 2024), alongside some official collaborations with the Framework team. Exciting times ahead!&lt;/p&gt;
</description>
        <pubDate>Mon, 25 Mar 2024 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2024/03/25/Framework-Business-Launch/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/03/25/Framework-Business-Launch/</guid>
      </item>
    
      <item>
        <title>Framework Decision</title>
        <description>&lt;p&gt;Since January, &lt;a href=&quot;/2024/02/03/Framework-Laptop-16/&quot;&gt;I have been testing the Framework Laptop 16&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2024/02/03/Framework-Laptop-16/&quot;&gt;As highlighted in my initial thoughts article&lt;/a&gt;, my overall impression has been positive and I continue to commend the Framework team on their design/manufacturing expertise and dedication to sustainability.&lt;/p&gt;

&lt;p&gt;With that said, the Framework Laptop 16 is not perfect, with a few areas that I believe need improvement. Thankfully, the serviceable/upgradable nature of Framework products allows for improvements post-release, something that the Framework team demonstrated very effectively with the Framework Laptop 13.&lt;/p&gt;

&lt;p&gt;For example, I would like to see an option for a full-width keyboard and trackpad input cover, alongside a higher-quality webcam, microphone and speakers.&lt;/p&gt;

&lt;p&gt;Therefore, I fully expect the Framework Laptop 16 to be a “better” product one year from now, which is rare with modern electronics, as manufacturers frequently fail to offer comprehensive post-release support.&lt;/p&gt;

&lt;p&gt;Unfortunately, even with this future potential, I have decided to switch back to the Framework Laptop 13.&lt;/p&gt;

&lt;p&gt;The primary reason is the size and weight of the laptop, which is especially noticeable when the Graphics Module is installed. As a comparison, the photo below highlights the Framework Laptop 16 under an Apple MacBook Pro 16-inch.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworklaptop1607.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworklaptop1607.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Without the Graphics Module, the laptop becomes more manageable. However, you lose the benefits of a dedicated GPU, which in my testing is the primary performance differentiator between the Framework Laptop 13 and Framework Laptop 16. The photo below highlights the difference in size between the two laptops.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworkdecision01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworkdecision01.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The specification of my Framework Laptop 13 is outlined below, which offers exceptional performance and &lt;a href=&quot;/2024/02/01/Framework-and-NixOS/&quot;&gt;compatibility running Linux (NixOS)&lt;/a&gt;, comparable to the Framework Laptop 16 across productivity, collaboration and web development tasks.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop 13 DIY Edition&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 7 7840U (8C/16T)&lt;/li&gt;
  &lt;li&gt;64GB DDR5-5600 RAM&lt;/li&gt;
  &lt;li&gt;4TB Western Digital Black SN850X NVMe (7.3GB/s Read)&lt;/li&gt;
  &lt;li&gt;13.5-inch IPS LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB-C, 1x HDMI, 1x 1TB Expansion Card (1GB/s Read)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The only “disappointment” with this switch is the loss of the higher quality display, specifically the 165Hz refresh rate, which I would love to see as an option for the Framework Laptop 13.&lt;/p&gt;
</description>
        <pubDate>Sun, 10 Mar 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/03/10/Framework-Decision/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/03/10/Framework-Decision/</guid>
      </item>
    
      <item>
        <title>Jensen Huang</title>
        <description>&lt;p&gt;In 2018, I completed my executive education at Stanford University. During my time on campus, I was fortunate to connect and engage with an incredible community, including my course peers and the world-class faculty.&lt;/p&gt;

&lt;p&gt;Earlier today, the Stanford team released an interview (56 mins) with Jensen Huang, Founder and CEO of &lt;a href=&quot;https://www.nvidia.com/&quot;&gt;NVIDIA&lt;/a&gt;. With the current mainstream media hype regarding the use of Artificial Intelligence (AI), it is fascinating to hear NVIDIA’s journey, as well as Jensen’s insights into strategy and leadership.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/lXLBTBBil2U?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;NVIDIA has seen incredible success, driven by its tenacious attitude towards continuous innovation (identifying and solving big problems).&lt;/p&gt;

&lt;p&gt;Outlined below are a few of my notes taken from the interview.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Beliefs:&lt;/strong&gt; Establish, embed and maintain core beliefs, targeting a purpose that is meaningful with a clear/unique impact statement. Within that purpose, identify interesting problems that have the potential to become interesting markets. Solving these problems will unlock value and business growth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Early Indicators of Future Success:&lt;/strong&gt; Key Performance Indicators (KPIs) are difficult to define and understand, and commonly confused with actual results (e.g., Gross Margin is a result, not a KPI). Instead, businesses should identify Early Indicators of Future Success (EIoFS), which help provide finite milestones on an infinite journey, providing early evidence that the problem statement is solvable, leading towards a market opportunity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Principles:&lt;/strong&gt; When looking to solve a problem, always go back to first principles (foundational understanding), accepting that the previously understood preconceptions may no longer be valid, superseded by new understanding and/or new technology.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Leadership:&lt;/strong&gt; The role of a leader is to serve their team, and create the conditions by which others can do their best work. Trust is critical, respecting that each individual can accept and process complex information (good or bad). When successful, individuals will choose to work, without the need for exaggerated incentives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Culture:&lt;/strong&gt; In a traditional business, knowledge is power, which promotes a culture of secrecy. True power should be derived from an individual’s ability to reason complicated topics and empower others, leading them to greatness. Promote curiosity, collaboration and constructive reasoning. No task is beneath anyone, regardless of title and/or level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Organisational Structure:&lt;/strong&gt; Everyone within a business should look to maximise their personal value contribution, acknowledging that regardless of the title and/or level, everyone has a key role to play. Ignore other organisational structures, and focus on “Core Beliefs” and “First Principles” to define a structure that supports the unique business circumstance (NVIDIA is a very flat organisation and Jenson has fifty direct reports).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Innovation:&lt;/strong&gt; Worry less about the past, always look towards the future and work backwards. Leverage “Early Indicators of Future Success” to measure progress and establish the required confidence to remain committed.&lt;/p&gt;

&lt;p&gt;In conclusion, Jenson expressed the importance of having a clear purpose, with the goal of making a unique contribution.&lt;/p&gt;

&lt;p&gt;This sentiment resonates strongly with me, an area that I have reflected upon over the years and recently written about in the article “&lt;a href=&quot;/2023/09/17/purpose-and-fulfilment/&quot;&gt;Purpose and Fulfilment&lt;/a&gt;”.&lt;/p&gt;

</description>
        <pubDate>Fri, 01 Mar 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/03/01/Jensen-Huang/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/03/01/Jensen-Huang/</guid>
      </item>
    
      <item>
        <title>ITPro Interview</title>
        <description>&lt;p&gt;In 2021, &lt;a href=&quot;https://www.lifeintech.com/2021/09/29/boomi/&quot;&gt;I collaborated with Boomi&lt;/a&gt; via a series of public engagements to discuss our business data integration story.&lt;/p&gt;

&lt;p&gt;A summary of the published content can be found linked below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://boomi.com/customer/elanco/&quot;&gt;Customer Story&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://resources.boomi.com/resources/resources-library/elanco-balances-continuity-with-modernization-to-create-a-new-and-improved-it-ecosystem-with-boomi&quot;&gt;Case Study&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://resources.boomi.com/resources/resources-library/customer-testimonial-%7C-elanco&quot;&gt;Video Infographic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Earlier this week, &lt;a href=&quot;https://www.itpro.com/&quot;&gt;ITPro&lt;/a&gt; published a short interview follow-up.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.itpro.com/business/digital-transformation/how-elanco-used-newfound-independence-to-completely-rebuild-its-tech-stack&quot;&gt;How Elanco used newfound independence to rebuild its tech from the ground up&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is always fun to engage the community to share learnings, etc.&lt;/p&gt;
</description>
        <pubDate>Thu, 29 Feb 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/02/29/ITPro-Interview/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/02/29/ITPro-Interview/</guid>
      </item>
    
      <item>
        <title>Framework Laptop 16</title>
        <description>&lt;p&gt;This week, the highly anticipated &lt;a href=&quot;https://frame.work/products/laptop16-diy-amd-7040&quot;&gt;Framework Laptop 16&lt;/a&gt; started shipping to “batch one” customers.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2023/06/29/framework-for-business/&quot;&gt;Thanks to our unique enterprise business partnership with Framework&lt;/a&gt;, Nirav and the team were kind enough to offer me early access. Therefore, over the past couple of weeks, I have been secretly testing a pre-release (near-final engineering sample) of the Framework Laptop 16.&lt;/p&gt;

&lt;p&gt;I am not a reviewer, therefore if you are interested in a deep dive regarding the Framework Laptop 16, I recommend you watch the “&lt;a href=&quot;https://www.youtube.com/@tested&quot;&gt;Adam Savage’s Tested&lt;/a&gt;” overview video.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/drxOpMsr6sM?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;With that said, knowing the limited availability of the product, I thought I would share my initial thoughts, hopefully helping others considering a purchase.&lt;/p&gt;

&lt;p&gt;I have split my thoughts under the headings “Positives” and “Constructive”. These thoughts have also been shared with Nirav directly.&lt;/p&gt;

&lt;h3 id=&quot;positives&quot;&gt;Positives&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Environmental Impact:&lt;/strong&gt; Promoting the mission of the company, the Framework Laptop 16 proudly prioritises sustainability and the right to repair. Similar to the Framework Laptop 13, the care and attention demonstrated in the product design and manufacturing continue to impress, with thoughtful features that promote longevity through incremental upgrades and servicing. This is all achieved with minimal compromise regarding the performance, aesthetics and cost.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworklaptop1601.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworklaptop1601.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expansion Cards:&lt;/strong&gt; The increase from four expansion card slots on the Framework Laptop 13 to six on the Framework Laptop 16, offers unparalleled flexibility. With enterprise business usage in mind, it is common for  I/O ports to suffer from “wear and tear”. Therefore, the option to easily replace them at a low cost is an added benefit. In addition, the new expansion card locking mechanism on the Framework Laptop 16 is more robust and user-friendly than the Framework Laptop 13.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworklaptop1602.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworklaptop1602.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programmable Input Modules:&lt;/strong&gt; The new programmable input module architecture has a lot of potential, building upon the established &lt;a href=&quot;https://github.com/FrameworkComputer/qmk_firmware&quot;&gt;QMK&lt;/a&gt; firmware. Due to the pre-release nature of the product, the current real-world value is limited but could become an interesting differentiator for the Framework Laptop 16, assuming it is embraced by the community.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworklaptop1603.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworklaptop1603.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input Module Connections:&lt;/strong&gt; The input cover modularity is incredible, specifically the intuitive use of magnets and pogo pins. As a result, anyone can quickly and easily swap an input module or reconfigure the input layout with minimal effort, even while the laptop is in use.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworklaptop1604.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworklaptop1604.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expansion Bay:&lt;/strong&gt; The expansion bay is both brilliant and a little frustrating. Previous modular graphics solutions (used by &lt;a href=&quot;https://www.dell.com/&quot;&gt;Dell&lt;/a&gt;/&lt;a href=&quot;https://www.dell.com/gaming/alienware&quot;&gt;Alienware&lt;/a&gt;) were always limited by the fact that the cooling solution was not part of the module itself, significantly limiting future upgrade options. Framework has designed a system that incorporates the graphics hardware (e.g., GPU/Memory) and the required active cooling system. This is brilliant, as it allows future graphics modules to “right-size” their cooling solution. As a negative, it means that the Framework Laptop 16 is not usable without a module installed. Therefore, if you plan/hope to “hot-swap” graphics whilst travelling, you will need purchase/carry an &lt;a href=&quot;https://frame.work/products/16-expansion-bay-shell&quot;&gt;Expansion Bay Shell&lt;/a&gt;, making the total package a little cumbersome.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworklaptop1605.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworklaptop1605.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Native Linux Support:&lt;/strong&gt; Framework continues to offer excellent support across Windows and Linux. Native Linux support is not always guaranteed by hardware manufacturers, resulting in conflicts and/or complex workarounds to enable network, audio and graphics. I can confirm the Framework Laptop 16 has excellent “out of the box” Linux compatibility.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworklaptop1606.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworklaptop1606.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PD 3.1 GaN Charger:&lt;/strong&gt; Workstations and gaming laptops commonly have high power consumption requirements, resulting in proprietary connectors and large/heavy power adapters. The use of USB-C, as well as support for PD 3.1 and GaN are welcome additions to the Framework Laptop 16, delivering a compact 180W power adapter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance:&lt;/strong&gt; As my Framework Laptop 16 is pre-release (using a pre-release BIOS and drivers), I did not scrutinise the performance and/or thermal characteristics. With that said, I did complete a series of tests covering the CPU, GPU, Memory and Storage, which I can confirm all performed within the expected parameters. As the product matures, I expect these numbers to continue to improve.&lt;/p&gt;

&lt;h3 id=&quot;constructive&quot;&gt;Constructive&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Size/Weight:&lt;/strong&gt; Although the dimensions of the Framework Laptop 16 have been known for some time. The “real-world” experience of using the laptop, especially with the Graphics Module installed, emphasises the depth and weight. The larger dimensions are not uncommon with “gaming/workstation” laptops, but in recent years, the “premium” laptops do appear to be getting more compact and lighter. The photo below highlights the Framework Laptop 16 under an Apple MacBook Pro 16-inch (M2 Max). I do not see the size/weight as a “dealbreaker”, but certainly requires some adjustment (be prepared to get a larger carry case, especially when using the Graphics Module).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworklaptop1607.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworklaptop1607.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keyboard Flex/Deflection:&lt;/strong&gt; In use, my Framework Laptop 16 did exhibit some flex across the breadth of the keyboard, most noticeable at the edges closest to the input modules. Upon inspection, the mid-plate, which is used to mount the keyboard, is not particularly rigid (photo below). This presents a potential area of improvement, with the introduction of a more sturdy mid-plate.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworklaptop1608.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworklaptop1608.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input Modules Wobble:&lt;/strong&gt; When using the spacers (either side of the keyboard), there is a noticeable wobble (several millimetres of lateral movement). This does not impact the use of the laptop or the security of the input modules, but it does reduce the perceived “quality” of the build. I suspect this might be an engineering tolerance, that can be improved over time. In addition, knowing that many users will likely default to the central keyboard/trackpad configuration, I feel a full-width keyboard and trackpad input cover could be well received (removing any risk of wobble and improving the laptop aesthetics).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworklaptop1609.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworklaptop1609.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expansion Bay Interposer:&lt;/strong&gt; The custom expansion bay interposer is impressive engineering, unlocking the potential of PCIe, delivered in a package that can be easily removed with minimal risk of damage. With that said, transporting the interposer when not in use can be a delicate process (as each module requires a different interposer). I have found myself either screwing the interposer back into the unused Graphics Module or holding it until I find a safe location for storage. It would be great to have a small storage box for the interposer or a 3D printable model that could be used by the community.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworklaptop1610.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworklaptop1610.jpg&quot; alt=&quot;Framework Laptop 16&quot; title=&quot;Framework Laptop 16&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Webcam, Microphone and Speaker Quality:&lt;/strong&gt; I would describe the webcam, microphone and speaker quality as “good enough”, but not great. This is likely less important to gamers, who I suspect will use external peripherals. However, within the business environment, it is not uncommon for people to join meetings from “single-person” rooms, leveraging their integrated capabilities. Where possible, it would be great to see “premium” options made available on the marketplace. From a corporate standpoint, with the shift to FIDO2, I would also like to see an option for a Windows Hello compatible webcam. However, I appreciate this would be a Windows-specific component.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, I have been impressed with the Framework Laptop 16 and commend the Framework team on their design/manufacturing expertise and dedication to sustainability.&lt;/p&gt;

&lt;p&gt;Interestingly, my areas of critique are all viable for post-release continuous improvement. For example, &lt;a href=&quot;/2022/05/05/framework-laptop/&quot;&gt;when the Framework Laptop 13 first launched, I highlighted several points of frustration&lt;/a&gt; (e.g., glossy display, screen wobble, speaker volume, etc.) Over the coming months, Framework released new components that resolved each of these points, which not only demonstrates their customer-centric approach but also the unique value of a product designed with serviceability in mind.&lt;/p&gt;

&lt;p&gt;As a result, I fully expect to see post-release improvements delivered for the Framework Laptop 16, which could be installed easily at minimal cost. I am not aware of any other laptop currently available on the market with this value proposition.&lt;/p&gt;

&lt;p&gt;The only “fixed” restriction is the size/weight, acknowledging that the Framework Laptop 16 is large, especially when compared to an Apple MacBook Pro, Dell XPS or equivalent.&lt;/p&gt;

&lt;p&gt;Congratulations again to the Framework team for the successful launch of the Framework Laptop 16! We received our first production batch for business use this week, which I am excited to get into the hands of users.&lt;/p&gt;

&lt;p&gt;Thanks to Nirav, Chris and the entire Framework team for your continued partnership, helping us lead the charge to shift enterprise businesses towards sustainable computing.&lt;/p&gt;
</description>
        <pubDate>Sat, 03 Feb 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/02/03/Framework-Laptop-16/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/02/03/Framework-Laptop-16/</guid>
      </item>
    
      <item>
        <title>Apple Vision Pro Impressions</title>
        <description>&lt;p&gt;In June 2023, &lt;a href=&quot;/2023/06/05/apple-vision-pro/&quot;&gt;I wrote an article reacting to the Apple Vision Pro announcement&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Although the &lt;a href=&quot;https://www.apple.com/apple-vision-pro/&quot;&gt;Apple Vision Pro&lt;/a&gt; is not yet available in the UK, I am fortunate to have early access. This article will share my initial impressions.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/applevisionpro05.jpg&quot;&gt;&lt;img src=&quot;/images/posts/applevisionpro05.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are looking for an in-depth review, Nilay Patel from &lt;a href=&quot;https://www.theverge.com/24054862/apple-vision-pro-review-vr-ar-headset-features-price&quot;&gt;The Verge&lt;/a&gt; has posted an excellent video.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/hdwaWxY11jQ?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;When first announced, Tim Cook (Apple CEO) described the Apple Vision Pro as &lt;em&gt;“the first computer you look through, not at”&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I surmised that this statement accurately represented the ambition, but not the current reality. Having now used the Apple Vision Pro across a range of use cases, I can confirm my original assessment was accurate.&lt;/p&gt;

&lt;p&gt;Outlined below are my thoughts…&lt;/p&gt;

&lt;h3 id=&quot;product-positioning&quot;&gt;Product Positioning&lt;/h3&gt;

&lt;p&gt;Over the past decade, &lt;a href=&quot;/tag/virtual_reality/&quot;&gt;I have used/owned a wide range of VR/AR headsets&lt;/a&gt;, including the latest headsets from Meta (&lt;a href=&quot;/2022/10/25/meta-quest-pro/&quot;&gt;Quest Pro&lt;/a&gt; and Quest 3) and &lt;a href=&quot;/2020/07/20/holo-lens-2/&quot;&gt;HoloLens 2&lt;/a&gt; from Microsoft.&lt;/p&gt;

&lt;p&gt;Since the announcement, Apple has been eager to differentiate the Apple Vision Pro from other VR/AR headsets by calling it “Spatial Computing”. They have even banned developers from using the terms Virtual Reality and Augmented Reality within their application descriptions.&lt;/p&gt;

&lt;p&gt;However, let us be clear, the Apple Vision Pro is 100% a VR/AR headset, which directly competes against other VR/AR headsets, most notably the Meta Quest range, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/applevisionpro06.jpg&quot;&gt;&lt;img src=&quot;/images/posts/applevisionpro06.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Arguably, the Apple Vision Pro includes just two unique differentiators, specifically the front-facing lenticular display and the Solo Knit Band.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/applevisionpro07.jpg&quot;&gt;&lt;img src=&quot;/images/posts/applevisionpro07.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Excluding these features, when compared to the Meta Quest 3, the Apple Vision Pro offers a very familiar design and feature set.&lt;/p&gt;

&lt;p&gt;With that said, I can confirm the Apple Vision Pro is the best, highest-quality VR/AR headset I have ever used. For example, the Sony Micro‑OLED displays are exceptional, with an astonishing 3,386 PPI (34 PPD). The pass-through cameras are also best-in-class (although not perfect), achieving an estimated 12ms response time.&lt;/p&gt;

&lt;p&gt;However, this impressive specification is ultimately an evolutionary step, not revolutionary, as the form factor and usage of the headset are consistent with other VR/AR headsets.&lt;/p&gt;

&lt;p&gt;It is also impossible to ignore the price, which starts at £3499 (256GB), which is 7x more than the Meta Quest 3 (128GB). Therefore, it is safe to assume that a Meta Quest 4 (or Meta Quest Pro 2) could close the specification gap, whilst continuing to be significantly cheaper.&lt;/p&gt;

&lt;h3 id=&quot;hardware&quot;&gt;Hardware&lt;/h3&gt;

&lt;p&gt;The hardware is beautiful, with exceptional build quality. The use of metal and glass makes the product look and feel premium, especially when compared to other VR/AR headsets on the market, which tend to favour plastic.&lt;/p&gt;

&lt;p&gt;Unfortunately, although these premium materials look great, they hinder the use of the product itself. The Apple Vision Pro is undeniably heavy and frustratingly front-loaded, placing a lot of weight on the bridge of the nose and cheeks, which can quickly become uncomfortable during prolonged usage (&amp;gt; 30 minutes).&lt;/p&gt;

&lt;p&gt;This issue is compounded by the Solo Knit Band, which looks great in promotional videos/photos (straight out of &lt;a href=&quot;https://www.imdb.com/title/tt1677720/&quot;&gt;Ready Player One&lt;/a&gt;), but is less practical in use as it does not effectively distribute the weight of the headset. Apple were aware of this issue, as they include a less glamorous (but more practical) Dual Loop Band.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/applevisionpro08.jpg&quot;&gt;&lt;img src=&quot;/images/posts/applevisionpro08.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition, the front-facing lenticular display, combined with a software feature known as “EyeSight”, is an interesting concept, but offers very little real-world value. In theory, EyeSight reveals your eyes while wearing Apple Vision Pro, letting others know when you are using apps or fully immersed. Unfortunately, the display is difficult to see (especially in direct light) and the computer-generated eyes, although impressive engineering, are a little disconcerting.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/applevisionpro09.jpg&quot;&gt;&lt;img src=&quot;/images/posts/applevisionpro09.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Acknowledging these failings, it is ironic that the front-facing lenticular display and Solo Knit Band are what differentiates the Apple Vision Pro from other VR/AR headsets. I would not be surprised if they are both heavily revised (or even removed) in future generations.&lt;/p&gt;

&lt;h3 id=&quot;software&quot;&gt;Software&lt;/h3&gt;

&lt;p&gt;Unsurprisingly, at launch, the Apple Vision Pro software ecosystem is sparse, limited to a series of “tech demos” that fail to offer a compelling reason to use the headset for any meaningful length of time. The current range of apps are also very isolating, with no features that promote social engagement and/or collaboration.&lt;/p&gt;

&lt;p&gt;A notable exception is &lt;a href=&quot;https://techcommunity.microsoft.com/t5/microsoft-365-blog/announcing-microsoft-365-apps-available-on-apple-vision-pro/ba-p/4042505&quot;&gt;Microsoft Office&lt;/a&gt;, which offers Apple Vision Pro optimised versions of Word, Excel, PowerPoint, Outlook, Teams, OneNote, and Loop. These apps work surprisingly well and I commend Microsoft for committing to the launch date.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/applevisionpro10.jpg&quot;&gt;&lt;img src=&quot;/images/posts/applevisionpro10.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thankfully, the limited software ecosystem is likely an early adopter problem, which I am sure will improve quickly. I am however a little surprised Apple did not prioritise/promote a “killer app”, something that could showcase the capabilities of the Apple Vision Pro. The best example is probably media playback via Apple TV, which is very immersive, but not enough to differentiate from other VR/AR headsets.&lt;/p&gt;

&lt;p&gt;Unlike other VR/AR headsets, the Apple Vision Pro does not include any physical controllers. Therefore, all interactions are via eye and hand tracking.&lt;/p&gt;

&lt;p&gt;The initial setup process is more cumbersome than I would like, but once complete, everything works as advertised. For example, my eight-year-old son was able to navigate the user interface with minimal instruction.&lt;/p&gt;

&lt;p&gt;Unfortunately, it is not perfect. Having never previously used my eyes as a direct human interface, I had not appreciated how frequently I interact with technology without directly looking at it. For example, thanks to muscle memory, I can tap, swipe and gesture on my iPhone/iPad, whilst my eyes focus elsewhere.&lt;/p&gt;

&lt;p&gt;With Apple Vision Pro, this type of human interface does not work, as you must directly look at the user interface element when triggering an input.&lt;/p&gt;

&lt;p&gt;As a result, although eye tracking does (at times) feel like “magic”, it can also be frustrating when attempting to complete more complex tasks. For example, when attempting to be productive whilst wearing the headset, I found I had to connect a physical keyboard/trackpad or interface with my Mac.&lt;/p&gt;

&lt;p&gt;Overall, &lt;a href=&quot;https://developer.apple.com/visionos/&quot;&gt;visionOS&lt;/a&gt; and the software ecosystem remind me of &lt;a href=&quot;https://www.apple.com/uk/watchos/watchos-10/&quot;&gt;watchOS&lt;/a&gt; v1.0, which had plenty of promise but took several years to refine the experience.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;The Apple Vision Pro is the most impressive VR/AR headset I have ever used! It is also the most expensive and uncomfortable, whilst currently offering very little real-world value.&lt;/p&gt;

&lt;p&gt;As a result, in February 2024, it is impossible to recommend the Apple Vision Pro. If you are in the market for a VR/AR headset, I would point you towards the Meta Quest 3, which is a fraction of the cost and has a comprehensive software ecosystem.&lt;/p&gt;

&lt;p&gt;However, that does not mean the Apple Vision Pro is a failure. I continue to see the promise, which I believe has been best represented in the recent &lt;a href=&quot;https://www.youtube.com/@casey&quot;&gt;Casey Neistat&lt;/a&gt; video.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/UvkgmyfMPks?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;There is a world where “Spatial Computing” becomes viable, delivering unique, differentiated experiences that augment traditional computing concepts.&lt;/p&gt;

&lt;p&gt;Unfortunately, I believe we are at least four generations (8+ years) from that reality, where the physical limitations of the headset have been mitigated and the software experience has been refined and expanded.&lt;/p&gt;

&lt;p&gt;The path from today towards that future is exciting but also expensive and fraught with missteps. Therefore, it will be interesting to watch Apple lead from the front vs. joining at a later date, once the market has a solid foundation.&lt;/p&gt;
</description>
        <pubDate>Sat, 03 Feb 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/02/03/Apple-Vision-Pro-Impressions/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/02/03/Apple-Vision-Pro-Impressions/</guid>
      </item>
    
      <item>
        <title>Framework and NixOS</title>
        <description>&lt;p&gt;In the article “&lt;a href=&quot;/2024/01/29/Linux-Endgame-NixOS/&quot;&gt;Linux Endgame - NixOS&lt;/a&gt;”, I outlined my rationale and initial impressions testing &lt;a href=&quot;https://nixos.org/&quot;&gt;NixOS&lt;/a&gt; on my &lt;a href=&quot;/2023/09/15/my-setup-q3-2023/&quot;&gt;Framework Laptop 13 (AMD Ryzen)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As highlighted in the post, NixOS is a free and open-source, immutable Linux distribution based on the purely functional Nix package manager. NixOS is composed using modules and packages defined in the &lt;a href=&quot;https://github.com/NixOS/nixpkgs&quot;&gt;nixpkgs&lt;/a&gt; project.&lt;/p&gt;

&lt;p&gt;As a long-time &lt;a href=&quot;/tag/fedora/&quot;&gt;Fedora&lt;/a&gt; user, the switch to NixOS has been a little jarring. In many respects, I have had to “unlearn” many common Linux workflows, such as package management, upgrades, etc.&lt;/p&gt;

&lt;p&gt;I would also argue that the documentation supporting NixOS is not yet equivalent to that offered by the Fedora and/or Arch communities. Therefore, overcoming inevitable challenges can require more effort and research.&lt;/p&gt;

&lt;p&gt;In part, the lack of documentation is why I decided to write this article, which aims to outline my process of installing NixOS on a Framework Laptop 13, including &lt;a href=&quot;/2024/01/20/Software-List-2024/&quot;&gt;my common software&lt;/a&gt;. At this time, I have not included more advance NixOS features such as Flakes and Home Manager. However, I do intent to write about these in the future.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop13amd01.jpg&quot; alt=&quot;Framework Laptop 13&quot; title=&quot;Framework Laptop 13&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The full specification of my Framework Laptop 13 can be found below. The steps outlined in this post should work for any AMD-based Framework Laptop (including the Framework Laptop 16).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop 13 DIY Edition&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 7 7840U (8C/16T)&lt;/li&gt;
  &lt;li&gt;64GB DDR5-5600 RAM&lt;/li&gt;
  &lt;li&gt;4TB Western Digital Black SN850X NVMe (7.3GB/s Read)&lt;/li&gt;
  &lt;li&gt;13.5-inch LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB4 (USB-C), 1x USB 3.2 G2 (USB-A), 1x HDMI 2.0b&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before installation, it is important to disable Secure Boot from the Framework BIOS, otherwise the NixOS installation media will not be detected. This is achieved by tapping the “F2” key at boot (not the “F12” key), which will prompt the option “Administer Secure Boot”.&lt;/p&gt;

&lt;p&gt;With Secure Boot disabled, the first step is to &lt;a href=&quot;https://nixos.org/download&quot;&gt;download and install NixOS&lt;/a&gt;. Thankfully, this task is very similar to other Linux distributions, facilitated by a “live CD”, which can be used to &lt;a href=&quot;https://nixos.org/manual/nixos/stable/index.html#sec-booting-from-usb&quot;&gt;create a bootable USB drive&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The “live CD” runs the GNOME desktop environment and includes a full GUI installation wizard, whilst also allowing you to test NixOS before the actual installation (which can help identify any potential hardware conflicts, etc.) It should be noted, that any supported desktop environment (not just GNOME) can be selected during the installation process.&lt;/p&gt;

&lt;p&gt;By default, I recommend full disk encryption on all modern systems. Unfortunately, unlike &lt;a href=&quot;https://fedoraproject.org/&quot;&gt;Fedora&lt;/a&gt; and &lt;a href=&quot;https://pop.system76.com/&quot;&gt;Pop_OS!&lt;/a&gt;, the NixOS GUI installer does not include a “one-click” encryption option. As a result, full disk encryption must be configured manually.&lt;/p&gt;

&lt;p&gt;I have outlined the nine-step process to enable full disk encryption in the article “&lt;a href=&quot;/2024/01/30/NixOS-Full-Disk-Encryption/&quot;&gt;NixOS Full Disk Encryption&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;With NixOS successfully installed and following a reboot, you will be greeted by a very clean/minimal operating system, with a limited number of packages (applications) installed. By default, you do not get common applications such as &lt;a href=&quot;https://www.libreoffice.org/&quot;&gt;LibreOffice&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;The unique proposition offered by NixOS is that the entire operating system, including the kernel, applications, system packages, and configuration is declared in a configuration file, using the &lt;a href=&quot;https://nixos.org/manual/nix/stable/language/index.html&quot;&gt;Nix language&lt;/a&gt;. The primary configuration file can be found at the following location and will be used to customise the setup per your requirements.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/etc/nixos/configuration.nix
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
At this stage, it is worth becoming familiar with the following terminal commands. Although fairly self-explanatory, I will describe the use of these commands throughout this post.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo nano /etc/nixos/configuration.nix

sudo nixos-rebuild switch

sudo nixos-rebuild boot --upgrade

sudo nixos-rebuild switch --rollback

sudo nix-collect-garbage -d

sudo nix-collect-garbage --delete-older-than 30d

flatpak update -y\
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Edit the “configuration.nix” file using nano &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo nano /etc/nixos/configuration.nix&lt;/code&gt; and add the following configuration lines to install and enable key services, specifically Fingerprint Reader, &lt;a href=&quot;https://flatpak.org/setup/NixOS&quot;&gt;Flatpak&lt;/a&gt;, &lt;a href=&quot;https://nixos.wiki/wiki/Docker&quot;&gt;Docker&lt;/a&gt;, &lt;a href=&quot;https://nixos.wiki/wiki/Virt-manager&quot;&gt;virt-manager&lt;/a&gt;, and &lt;a href=&quot;https://nixos.wiki/wiki/OneDrive&quot;&gt;OneDrive&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a reference, &lt;a href=&quot;https://github.com/mswbull/NixOS/blob/main/configuration.nix&quot;&gt;I have made my “configuration.nix” file available on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;services.fprintd.enable = true;  

services.flatpak.enable = true;  

virtualisation.docker.enable = true;  

virtualisation.libvirtd.enable = true;  
programs.virt-manager.enable = true;  

services.onedrive.enable = true;  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;	
The following configuration installs and enables custom fonts, including the common Microsoft fonts (useful when viewing/editing Microsoft Office documents). Any new fonts can be added to this section.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;fonts.packages = with pkgs; [  
  corefonts  
  vistafonts  
  noto-fonts  
  noto-fonts-cjk  
  noto-fonts-emoji  
  liberation_ttf  
  fira-code  
  fira-code-symbols  
  mplus-outline-fonts.githubRelease  
  dina-font  
  proggyfonts  
];

fonts.fontDir.enable = true;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The following configuration installs and enables packages from &lt;a href=&quot;https://search.nixos.org/packages&quot;&gt;NixOS Packages&lt;/a&gt;. Where possible, I prioritise &lt;a href=&quot;https://flatpak.org/&quot;&gt;Flatpak&lt;/a&gt; applications, installed via &lt;a href=&quot;https://flathub.org/&quot;&gt;Flathub&lt;/a&gt;. Therefore, I only use the Nix Package Manager when an application is not available and/or viable (e.g., feature-complete, reliable or performant) as a Flatpak.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;environment.systemPackages = with pkgs; [  
  wget  
  git  
  google-chrome  
  vscode  
  ollama  
];
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Flatpak applications do not need to be declared within the “configuration.nix” file, as they are not part of the base image.&lt;/p&gt;

&lt;p&gt;As a result, Flatpak applications are installed and maintained from the command line and/or GNOME Software store, similar to other GNOME-based Linux distributions. Once installed, Flatpak application icons may not appear until after a reboot. They will also need to be manually updated using the ‘flatpak update -y' command.&lt;/p&gt;

&lt;p&gt;A full list of the Flatpak applications I use can be found in the article “&lt;a href=&quot;/2024/01/31/Flatpak-Availability/&quot;&gt;Flatpak Availability&lt;/a&gt;”. However, for reference, the commands to install my most common applications for NixOS can be found below.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;flatpak install flathub org.libreoffice.LibreOffice  
flatpak install flathub com.github.IsmaelMartinez.teams_for_linux  
flatpak install flathub com.slack.Slack  
flatpak install flathub org.mozilla.firefox  
flatpak install flathub md.obsidian.Obsidian  
flatpak install flathub org.standardnotes.standardnotes   
flatpak install flathub org.gimp.GIMP  
flatpak install flathub org.kde.krita  
flatpak install flathub org.audacityteam.Audacity  
flatpak install flathub org.videolan.VLC  
flatpak install flathub fr.handbrake.ghb  
flatpak install flathub org.openshot.OpenShot  
flatpak install flathub fr.natron.Natron  
flatpak install flathub com.obsproject.Studio  
flatpak install flathub org.gnome.Boxes  
flatpak install flathub org.filezillaproject.Filezilla  
flatpak install flathub com.getpostman.Postman  
flatpak install flathub com.heroicgameslauncher.hgl  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
With the “configuration.nix” file updated, exit and save the file by pressing ‘^ + X’ (if using Nano) and run the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo nixos-rebuild switch&lt;/code&gt;. This will verify the “configuration.nix” and build/switch to the new configuration. If an issue is identified within the “configuration.nix” file, an error message will be displayed.&lt;/p&gt;

&lt;p&gt;Finally, with the newly defined configuration operational, run the following terminal commands to finish the setup of specific services/packages. Specifically, they enable the Flathub repository, allow the custom fonts to be accessed by Flatpak applications and set up OneDrive with your Personal or Business account.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

ln -s /run/current-system/sw/share/X11/fonts ~/.local/share/fonts  
flatpak --user override --filesystem=$HOME/.local/share/fonts  
flatpak --user override --filesystem=$HOME/.icons

onedrive  
systemctl --user enable onedrive@onedrive.service  
systemctl --user start onedrive@onedrive.service  
systemctl --user status onedrive@onedrive.service
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
That’s it! As a final step, it is worth running the command ‘sudo nixos-rebuild boot –upgrade’, which will install any system updates and reboot. It should also “tidy” any loose ends as part of the step, specifically the enablement of Flatpak application icons, etc.&lt;/p&gt;

&lt;p&gt;The final point for reference is the unique rollback option provided by NixOS. Thanks to the immutable nature of the operating system, every time a new configuration is switched to running (using the command ‘sudo nixos-rebuild switch’), the previous configuration is saved.&lt;/p&gt;

&lt;p&gt;When rebooting, every previous configuration state is made available. Therefore, if you ever encounter an issue, the process to roll back is as simple as selecting a previous working configuration.&lt;/p&gt;

&lt;p&gt;This is incredibly powerful, but can also lead to a lot of old configurations being stored. Therefore, the terminal command ‘sudo nix-collect-garbage -d’ will delete all unused configurations. You can also specify certain criteria, for example, ‘– delete-older-than 30d’, which will delete anything older than 30 days.&lt;/p&gt;

&lt;p&gt;In theory, NixOS should be fully operational on the Framework Laptop 13, with all hardware (e.g., Fingerprint Reader, Webcam), services and applications enabled!&lt;/p&gt;
</description>
        <pubDate>Thu, 01 Feb 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/02/01/Framework-and-NixOS/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/02/01/Framework-and-NixOS/</guid>
      </item>
    
      <item>
        <title>Flatpak Availability</title>
        <description>&lt;p&gt;Earlier this month, &lt;a href=&quot;/2024/01/20/Software-List-2024/&quot;&gt;I shared an update regarding my common software list&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The list includes multiple operating systems, including Linux. I am a long-time &lt;a href=&quot;/tag/fedora/&quot;&gt;Fedora&lt;/a&gt; user, but am currently exploring the world of &lt;a href=&quot;/tag/nixos/&quot;&gt;NixOS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Regardless of the specific Linux distribution, &lt;a href=&quot;/2019/09/22/flatpak-and-snappy/&quot;&gt;I have always been an advocate for application containerisation, specifically Flatpak&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The list below outlines which applications from my software list are currently available as a Flatpak from &lt;a href=&quot;https://flathub.org/&quot;&gt;Flathub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/flatpakavailability01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/flatpakavailability01.jpg&quot; alt=&quot;Flatpak Availability&quot; title=&quot;Flatpak Availability&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A verified Flatpak means that it was published and is maintained by the original developer or a third party approved by the developer (making it official).&lt;/p&gt;

&lt;p&gt;Any Flatpak that is not verified does not make it “bad”, but means a third party (unaffiliated with the original developer) has published and is maintaining the application as a Flatpak.&lt;/p&gt;

&lt;p&gt;Flathub does review newly published Flatpak applications (providing some assurance), but I would also ensure any non-verified Flatpak has a healthy change log (recent updates) and usage (statistics).&lt;/p&gt;

&lt;p&gt;To help with the installation of these applications, I have added the relevant commands below.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;flatpak install flathub org.libreoffice.LibreOffice  
flatpak install flathub com.github.IsmaelMartinez.teams_for_linux  
flatpak install flathub com.slack.Slack  
flatpak install flathub com.visualstudio.code  
flatpak install flathub com.google.Chrome  
flatpak install flathub org.mozilla.firefox  
flatpak install flathub md.obsidian.Obsidian  
flatpak install flathub org.standardnotes.standardnotes  
flatpak install flathub com.bitwarden.desktop  
flatpak install flathub org.gimp.GIMP  
flatpak install flathub org.kde.krita  
flatpak install flathub org.audacityteam.Audacity  
flatpak install flathub org.videolan.VLC  
flatpak install flathub fr.handbrake.ghb  
flatpak install flathub org.openshot.OpenShot  
flatpak install flathub fr.natron.Natron  
flatpak install flathub com.obsproject.Studio  
flatpak install flathub org.gnome.Boxes  
flatpak install flathub org.filezillaproject.Filezilla  
flatpak install flathub com.getpostman.Postman  
flatpak install flathub org.godotengine.Godot  
flatpak install flathub com.heroicgameslauncher.hgl  
flatpak install flathub com.usebottles.bottles  
flatpak install flathub com.github.tchx84.Flatseal
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Any application that is not available as a Flatpak must be installed via another package manager (e.g., DNF, Nix Package Manager, etc.)&lt;/p&gt;
</description>
        <pubDate>Wed, 31 Jan 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/01/31/Flatpak-Availability/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/01/31/Flatpak-Availability/</guid>
      </item>
    
      <item>
        <title>NixOS Full Disk Encryption</title>
        <description>&lt;p&gt;Yesterday, &lt;a href=&quot;/2024/01/29/Linux-Endgame-NixOS/&quot;&gt;I shared a short article regarding NixOS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Over the next couple of weeks, I plan to share my experience using the operating system, specifically with my &lt;a href=&quot;/2023/09/15/my-setup-q3-2023/&quot;&gt;Framework Laptop 13 (AMD Ryzen)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unlike &lt;a href=&quot;https://fedoraproject.org/&quot;&gt;Fedora&lt;/a&gt; and &lt;a href=&quot;https://pop.system76.com/&quot;&gt;Pop_OS!&lt;/a&gt;, the NixOS GUI installer does not include a default option for full disk encryption. Therefore, &lt;a href=&quot;/2021/08/24/manjaro-manjaro-full-disk-encryption/&quot;&gt;similar to the process I outlined for Manjaro&lt;/a&gt;, the encrypted partitions must be manually created.&lt;/p&gt;

&lt;p&gt;Thankfully, this is a relatively easy process, as outlined below.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://nixos.org/download&quot;&gt;Download the NixOS Graphical ISO image&lt;/a&gt;, specifically the GNOME 64-bit Intel/AMD. NOTE: This does not force the use of GNOME. Any supported desktop environment can be selected as part of the installation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://nixos.org/manual/nixos/stable/index.html#sec-booting-from-usb&quot;&gt;Create a bootable USB&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Ensure Secure Boot is disabled on the target system and boot from the USB.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Connect NixOS to the Internet (Wired or Wireless). Restart the NixOS installer application if the Internet connection is not automatically detected.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Proceed through the installation wizard, until partitioning.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Select “Manual Partitioning” and click “Next”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Delete any existing partitions from the target drive. NOTE: All previous data will be lost.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Click “Create Partition Table” and select “GUID Partition Table (GPT)”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Click “Create” to create a new partition using the following configuration. Repeat this step until all three partitions have been created.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Partition One: Boot&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Size: 512 MiB&lt;/li&gt;
  &lt;li&gt;Partition Type: GPT&lt;/li&gt;
  &lt;li&gt;File System: fat32&lt;/li&gt;
  &lt;li&gt;Encrypt: Not Checked&lt;/li&gt;
  &lt;li&gt;Mount Point: /boot&lt;/li&gt;
  &lt;li&gt;Flags: boot&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Partition Two: Swap&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Size: 8192 MiB (Minimum)&lt;/li&gt;
  &lt;li&gt;Partition Type: GPT&lt;/li&gt;
  &lt;li&gt;File System: linuxswap&lt;/li&gt;
  &lt;li&gt;Encrypt: Checked (Enter Username/Password)&lt;/li&gt;
  &lt;li&gt;Mount Point: &lt;Leave Blank=&quot;&quot;&gt;&lt;/Leave&gt;&lt;/li&gt;
  &lt;li&gt;Flags: swap&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Partition Three: Root&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Size: Remaining Drive Space&lt;/li&gt;
  &lt;li&gt;Partition Type: GPT&lt;/li&gt;
  &lt;li&gt;File System: btrfs&lt;/li&gt;
  &lt;li&gt;Encrypt: Checked (Enter Username/Password)&lt;/li&gt;
  &lt;li&gt;Mount Point: /&lt;/li&gt;
  &lt;li&gt;Flags: &lt;Leave Blank=&quot;&quot;&gt;&lt;/Leave&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it! Click “Next” and complete the installation process. You may receive a warning regarding the non-encrypted boot partition, this can be ignored.&lt;/p&gt;

&lt;p&gt;At boot, the system will prompt for the encryption password, before launching NixOS (where you will be prompted for your operating system password).&lt;/p&gt;
</description>
        <pubDate>Tue, 30 Jan 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/01/30/NixOS-Full-Disk-Encryption/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/01/30/NixOS-Full-Disk-Encryption/</guid>
      </item>
    
      <item>
        <title>Linux Endgame - NixOS</title>
        <description>&lt;p&gt;I began my Linux journey in 2001 with &lt;a href=&quot;https://distrowatch.com/?newsid=00044&quot;&gt;Mandrake Linux 8.1&lt;/a&gt;. Over the past 23 years, I have “distro hopped” a fair amount, covering distributions based on Red Hat, Debian and Arch.&lt;/p&gt;

&lt;p&gt;With my background in enterprise business, I always found myself returning to &lt;a href=&quot;https://fedoraproject.org/&quot;&gt;Fedora&lt;/a&gt; as my daily driver, mainly driven by my familiarity with the Red Hat Enterprise Linux (and the DNF package manager), as well as the fact that I am a long-time &lt;a href=&quot;https://www.gnome.org/&quot;&gt;GNOME&lt;/a&gt; user (starting with GNOME 1.4.1).&lt;/p&gt;

&lt;p&gt;In 2021, &lt;a href=&quot;/2021/11/19/immutable-os/&quot;&gt;I flirted with Fedora Silverblue&lt;/a&gt;, which is an immutable operating system from Red Hat (IBM).&lt;/p&gt;

&lt;p&gt;The purpose of an immutable operating is to ensure the host is protected from accidental or malicious modifications, improving security, stability and performance by guaranteeing the integrity of the core system.&lt;/p&gt;

&lt;p&gt;I am very supportive of this approach and am not surprised to see it become a “standard” with &lt;a href=&quot;https://eclecticlight.co/2021/10/29/how-macos-is-more-reliable-and-doesnt-need-reinstalling/&quot;&gt;modern operating systems&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unfortunately, I could never make Fedora Silverblue operate well with my workflow. For example, Fedora Silverblue is essentially one big system image, which expects all applications to be installed in a container via &lt;a href=&quot;/2019/09/22/flatpak-and-snappy/&quot;&gt;Flatpak&lt;/a&gt;. This is a great architecture, except for when an application/service is not available (or viable) as a Flatpak. For example, Node.js, Docker, Virt-manager, etc.&lt;/p&gt;

&lt;p&gt;In this scenario, you have two primary options. Use &lt;a href=&quot;https://docs.fedoraproject.org/en-US/fedora/latest/system-administrators-guide/package-management/rpm-ostree/&quot;&gt;rpm-ostree&lt;/a&gt; to add a new layer to the base image with the required packages or create a mutable environment running on Fedora Silverblue. I found rpm-ostree overly complicated to manage and the process of creating “walled gardens” for specific applications/services has an impact on security and usability.&lt;/p&gt;

&lt;p&gt;Over the past 18 months, the &lt;a href=&quot;https://linuxunplugged.com/&quot;&gt;LINUX Unplugged&lt;/a&gt; community has become increasingly passionate about &lt;a href=&quot;https://nixos.org/&quot;&gt;NixOS&lt;/a&gt;, it even won their Linux distribution of the year at the &lt;a href=&quot;https://linuxunplugged.com/542&quot;&gt;2023 Tuxies&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have listened intently, but only recently had the available time to test NixOS. I also caution anyone within the Linux community about “jumping on the bandwagon” too early, as it takes time for a Linux distribution to prove itself as a viable long-term option.&lt;/p&gt;

&lt;p&gt;NixOS is a free and open-source, immutable Linux distribution based on the purely functional Nix package manager. NixOS is composed using modules and packages defined in the &lt;a href=&quot;https://github.com/NixOS/nixpkgs&quot;&gt;nixpkgs&lt;/a&gt; project.&lt;/p&gt;

&lt;p&gt;Similar to Fedora Silverblue, the NixOS base image is immutable and read-only. However, the individual user can decide what is included within that immutable image by following a declarative configuration model. For example, the entire operating system, including the kernel, applications, system packages, and configuration is declared in a configuration file (typically located in /etc/nixos), using the &lt;a href=&quot;https://nixos.org/manual/nix/stable/language/index.html&quot;&gt;Nix language&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The advantage of this approach is that it creates a reproducible system configuration, which can be maintained and versioned as code. This configuration improves visibility, consistency and integrity of the running configuration, whilst also providing a recovery and migration path that is guaranteed and very easy to trigger.&lt;/p&gt;

&lt;p&gt;Similar to Fedora Silverblue, NixOS still promotes the use of Flatpak, providing a clear separation between the base image and applications. However, with 80,000+ packages available as part of the Nix package manager, NixOS is incredibly flexible and versatile.&lt;/p&gt;

&lt;p&gt;I have been testing NixOS on my &lt;a href=&quot;/2023/09/15/my-setup-q3-2023/&quot;&gt;Framework Laptop 13 (AMD Ryzen)&lt;/a&gt; and have been incredibly impressed. I have created a fully-encrypted, lightweight/minimal Linux distribution (running GNOME) that feels just like Fedora, but with the added benefit of being immutable, whilst still incorporating every application/service required for my workflow.&lt;/p&gt;

&lt;p&gt;In addition, the configuration I have established is maintained as code within GitHub, therefore I can easily modify and experiment, knowing that this configuration can be deployed to any number of systems.&lt;/p&gt;

&lt;p&gt;Over the coming weeks, I plan to share some of my initial findings, including my current configuration. Stay tuned!&lt;/p&gt;
</description>
        <pubDate>Mon, 29 Jan 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/01/29/Linux-Endgame-NixOS/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/01/29/Linux-Endgame-NixOS/</guid>
      </item>
    
      <item>
        <title>Software List 2024</title>
        <description>&lt;p&gt;In 2020, &lt;a href=&quot;/2020/11/20/software-list-2020/&quot;&gt;I shared a list of my most commonly used software&lt;/a&gt;, across macOS, Windows, Linux, and iPadOS.&lt;/p&gt;

&lt;p&gt;Although I have updated the list a couple of times over the past few years, I thought it was time to complete a full refresh.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/softwarelist202401.jpg&quot;&gt;&lt;img src=&quot;/images/posts/softwarelist202401.jpg&quot; alt=&quot;Software List 2024&quot; title=&quot;Software List 2024&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As highlighted, I still use all the major desktop operating systems regularly (specifically macOS, Windows 11 and Fedora). As a result, where possible, I target free and open-source software (FOSS) that is available cross-platform. This allows me to have a consistent experience when switching between operating systems.&lt;/p&gt;

&lt;p&gt;Unfortunately, there is not always a viable FOSS option or a specific platform may have native software that offers unique value. For example, &lt;a href=&quot;https://developer.apple.com/xcode/&quot;&gt;Xcode&lt;/a&gt;, which is only available on macOS.&lt;/p&gt;

&lt;p&gt;I feel very comfortable recommending all the software on this list as I have used the majority for many years.&lt;/p&gt;
</description>
        <pubDate>Sat, 20 Jan 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/01/20/Software-List-2024/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/01/20/Software-List-2024/</guid>
      </item>
    
      <item>
        <title>Framework and Windows To Go</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://www.lifeintech.com/2023/09/15/my-setup-q3-2023/&quot;&gt;I am the proud owner of a Framework Laptop&lt;/a&gt;, running Linux (&lt;a href=&quot;https://fedoraproject.org/&quot;&gt;Fedora&lt;/a&gt;). I have written a range of articles about Framework (listed below), covering my personal use and newly established enterprise business partnership.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/06/01/Framework-Performance/&quot;&gt;Framework Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/07/Framework-Laptop-Update/&quot;&gt;Framework Laptop Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/18/Framework-Laptop-Upgrade/&quot;&gt;Framework Laptop Upgrade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/19/3D-Printed-Framework/&quot;&gt;3D Printed Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/29/Framework-for-Business/&quot;&gt;Framework for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/30/Framework-Build/&quot;&gt;Framework Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/12/Framework-Business-Pilot/&quot;&gt;Framework Business Pilot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/09/Framework-Business-Process/&quot;&gt;Framework Business Process&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Framework and Linux offer an incredible combination of open hardware and software that works exceptionally well together.&lt;/p&gt;

&lt;p&gt;However, occasionally I still need access to Windows, usually to run a specific software or to test a configuration. &lt;a href=&quot;https://www.lifeintech.com/2022/07/27/kvm-on-fedora/&quot;&gt;Virtualisation&lt;/a&gt; and/or a translation layer such as &lt;a href=&quot;https://www.winehq.org/&quot;&gt;Wine&lt;/a&gt; are viable options, but each includes specific limitations that can be cumbersome/frustrating to manage.&lt;/p&gt;

&lt;p&gt;Another option would be to dual-boot Linux and Windows. However, the two operating systems partitioned to run on a single storage device can cause problems, especially during operating system upgrades, etc. As a system that I rely upon, having to deal with boot conflicts and/or data integrity issues is something I aim to avoid.&lt;/p&gt;

&lt;p&gt;Thankfully, I have found an alternative that works incredibly well, a combination of &lt;a href=&quot;https://learn.microsoft.com/windows/deployment/planning/windows-to-go-overview&quot;&gt;Windows To Go&lt;/a&gt; and the official &lt;a href=&quot;https://frame.work/gb/en/products/storage-expansion-card?v=FRACCFBZ0A&quot;&gt;Framework Storage Expansion Card&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windowstogo01.jpg&quot; alt=&quot;Framework and Windows To Go&quot; title=&quot;Framework and Windows To Go&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Windows To Go is a forgotten feature of Windows 10/11 that allows Windows to be installed and used from a USB-connected external drive (removing the need for internal storage). 
The Framework Storage Expansion Card, specifically the 1TB capacity, is the perfect companion, as it includes a custom controller that delivers 1GB/s read and write speeds.&lt;/p&gt;

&lt;p&gt;This is not as fast as a modern-day NVMe SSD but offers more than enough performance to run Windows, including I/O-intensive applications.&lt;/p&gt;

&lt;p&gt;For example, the benchmark results below are from my Framework Laptop 13 running Windows To Go (Windows 11) from a 1TB Framework Storage Expansion Card.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windowstogo02.jpg&quot; alt=&quot;Framework and Windows To Go&quot; title=&quot;Framework and Windows To Go&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Not only is Windows performant, but it is also surprisingly reliable. As an extreme example, it is possible to physically remove the Framework Storage Expansion Card whilst Windows is running. The active session of Windows will “stall”. However, upon reinsertion of the Framework Storage Expansion Card, the Windows session immediately resumed (I was amazed this worked).&lt;/p&gt;

&lt;p&gt;The installation of Windows To Go on the Framework Storage Expansion Card is very simple. However, you will need a Windows PC for the setup.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Download &lt;a href=&quot;https://rufus.ie/&quot;&gt;Rufus&lt;/a&gt; for Windows and the latest &lt;a href=&quot;https://www.microsoft.com/software-download/windows11&quot;&gt;Windows 11 ISO&lt;/a&gt; from Microsoft.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Insert the Framework Storage Expansion Card into the Windows PC and launch Rufus.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Select the Framework Storage Expansion Card as the “Device” and the Windows 11 ISO as the “Boot Selection”. If the Framework Storage Expansion Card does not appear in the device list, select “Show Advanced Driver Properties” and check “List USB Hard Drives”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Under “Image Option”, select “Windows To Go”. All other options can be left default.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Framework Storage Expansion Card can now be safely removed and inserted into the Framework Laptop.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There is no need to modify the Framework Laptop bootloader configuration or any BIOS settings, simply hold F12 at POST and select the Framework Storage Expansion Card.&lt;/p&gt;

&lt;p&gt;The great thing about this approach is that Linux and Windows never compete for resources or risk any configuration conflicts. If you ever want to purge Windows, simply remove the Framework Storage Expansion Card.&lt;/p&gt;

&lt;p&gt;In addition, the Framework Storage Expansion Card can be swapped into other Framework Laptops (or any device with a USB 3.3 Gen 2 interface). Windows will need to re-configure upon launch, but everything should work as designed.&lt;/p&gt;

&lt;p&gt;Regarding limitations, there are very few. Microsoft has published a comprehensive &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/deployment/planning/windows-to-go-frequently-asked-questions&quot;&gt;Windows To Go FAQ&lt;/a&gt;. The main consideration is BitLocker encryption, which can be enabled, but does not leverage secure boot or the TPM. This limitation is worth acknowledging, but the default software encryption is likely strong enough for the majority of users.&lt;/p&gt;

&lt;p&gt;All other Windows features work as designed, including Windows Update (allowing you to run the latest Windows builds, etc.)&lt;/p&gt;

&lt;p&gt;Overall, I have found Windows To Go installed on the Framework Storage Expansion Card to be a great experience. Highlighting the versatility of the Framework Laptop and its modular architecture.&lt;/p&gt;
</description>
        <pubDate>Mon, 15 Jan 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/01/15/Framework-and-Windows-To-Go/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/01/15/Framework-and-Windows-To-Go/</guid>
      </item>
    
      <item>
        <title>balenaEtcher Recovery</title>
        <description>&lt;p&gt;As someone who tests a lot of different devices (desktops, laptops, single-board computers) and operating systems (Windows, macOS, Linux), I create a lot of bootable USB drives.&lt;/p&gt;

&lt;p&gt;Although I believe &lt;a href=&quot;https://rufus.ie/&quot;&gt;Rufus for Windows&lt;/a&gt; is a superior tool for creating bootable images, I commonly use &lt;a href=&quot;https://etcher.balena.io/&quot;&gt;balenaEtcher&lt;/a&gt; as it supports Windows, macOS and Linux.&lt;/p&gt;

&lt;p&gt;The tool itself works great and can be used for a wide range of purposes. For example, creating bootable Linux USB drives and/or flashing operating systems to be used with single-board computers (e.g., &lt;a href=&quot;https://www.raspberrypi.org/&quot;&gt;Raspberry Pi&lt;/a&gt; , etc.)&lt;/p&gt;

&lt;p&gt;However, the resulting bootable USB is often unreadable when looking to reformat for other purposes.&lt;/p&gt;

&lt;p&gt;Thankfully, when this scenario occurs, it is easily resolved using the following commands.&lt;/p&gt;

&lt;h3 id=&quot;windows&quot;&gt;Windows&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;Open a CMD prompt and run the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;diskpart.exe&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Run the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;list disk&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Run the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;select disk x&lt;/code&gt;, where “x” is the disk ID shown in the previously generated list.&lt;/li&gt;
  &lt;li&gt;Run the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;clean&lt;/code&gt;, which will erase the file system.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;macos&quot;&gt;macOS&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;Open Terminal and run the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;diskutil list&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Run the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;diskutil eraseDisk FAT32 UNTITLED MBRFormat /dev/diskX&lt;/code&gt;, where “diskX” is the target USB drive.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;linux&quot;&gt;Linux&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;Open Terminal and run the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo dd if=/dev/zero of=/dev/xyz bs=512 count=1 conv=notrunc&lt;/code&gt;, where “abc” is the target USB drive device path.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Upon completion of these steps, the USB drive should respond as normal, accessible to any operating system for reformatting.&lt;/p&gt;
</description>
        <pubDate>Fri, 12 Jan 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/01/12/balenaEtcher-Recovery/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/01/12/balenaEtcher-Recovery/</guid>
      </item>
    
      <item>
        <title>Arc for Business</title>
        <description>&lt;p&gt;In March 2023, &lt;a href=&quot;/2023/03/23/arc-browser/&quot;&gt;I wrote a short article regarding my usage of Arc&lt;/a&gt;, a Chromium-based browser from &lt;a href=&quot;https://thebrowser.company/&quot;&gt;The Browser Company&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Nearly one year later, I continue to use Arc as my primary browser on macOS, displacing Google Chrome. In addition, I have been working with The Browser Company to bring Arc to business, with early access to the &lt;a href=&quot;https://resources.arc.net/hc/en-us/articles/19400082392215-Arc-for-Windows&quot;&gt;Windows beta&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am pleased to report that Arc continues to deliver on its promise, taking the best parts of Google Chrome, whilst restructuring the user experience to better suit modern web workflows.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2023/03/23/arc-browser/&quot;&gt;As highlighted in my previous article&lt;/a&gt;, my greatest concern for the future of Arc is the pressure to generate money for investors. This can lead to shareholder-centric features that offer minimal end-user value, whilst also impacting the core experience.&lt;/p&gt;

&lt;p&gt;In my opinion, this is exactly what happened with Microsoft Edge, which had the potential to be a great Chromium-based browser, but has been compromised by the “internal politics” at Microsoft, which prioritised adjacent agendas (e.g., advertisement revenue, co-promotions, referrals, etc.)&lt;/p&gt;

&lt;p&gt;In October, I feared my concerns had been realised when The Browser Company released &lt;a href=&quot;https://arc.net/max&quot;&gt;Arc Max&lt;/a&gt;, which is a collection of integrated Generative AI features. I completely appreciate the “hype” associated with &lt;a href=&quot;/tag/generative_ai/&quot;&gt;Generative AI&lt;/a&gt;, resulting in widespread FOMO. However, in my opinion, prioritising “non-essential” features based on hype alone is a slippery slope, that can quickly become a distraction, leading to “bloatware” that increases the complexity of the codebase, ultimately impacting performance, reliability and security.&lt;/p&gt;

&lt;p&gt;Thankfully, Arc Max was implemented fairly well, remaining optional (off by default), with a non-intrusive user interface and no immediate requirement to subscribe and/or pay for use. I have chosen to be optimistic, hoping that this implementation approach is evidence that The Browser Company understand the importance of protecting their core value proposition (user experience).&lt;/p&gt;

&lt;p&gt;As a comparison, Arc for Windows (which is still in beta) is not at feature parity with the macOS version, highlighting the potential of a browser that is streamlined, lightweight and focused.&lt;/p&gt;

&lt;p&gt;In my opinion, The Browser Company should take inspiration from Arc for Windows and not aim for feature parity with the macOS version. Instead, I would like to see the two versions “meet in the middle”, looking for opportunities to remove/consolidate features from Arc for macOS.&lt;/p&gt;

&lt;p&gt;Unfortunately, I fear the pressure to generate money for investors will continue to build. At this time, it would appear The Browser Company are hoping that scale can help overcome this challenge, which commonly unlocks new monetisation opportunities (search deals, referrals, etc.) However, as proven by &lt;a href=&quot;https://www.mozilla.org/&quot;&gt;Mozilla&lt;/a&gt; and &lt;a href=&quot;https://www.mozilla.org/firefox/&quot;&gt;Firefox&lt;/a&gt;, I do not believe scale alone is the answer to sustained success, as it can be easily lost. For example, in 2010, Firefox had an estimated 32% market share, only to see that reduce to 3% in 2024.&lt;/p&gt;

&lt;p&gt;Therefore, I would like to see The Browser Company supplement Arc development with a sustainable business model, whilst protecting against the pressure to develop/implement features that are shareholder-centric (self-serving, not customer-serving).&lt;/p&gt;

&lt;p&gt;This is where I believe an enterprise business opportunity has potential. For example, the majority of Fortune 500 enterprise businesses have a heavy reliance on Software-as-a-Service (e.g., Office 365, ServiceNow, Workday, Salesforce.com), which are commonly accessed via the browser. Arguably, the browser is the most important enterprise business application, maybe more important than the underlying operating system.&lt;/p&gt;

&lt;p&gt;Therefore, if specific features can be developed that target security, compliance, and centralised management, I feel there is the potential for Arc to become the “default” browser for enterprise businesses, reducing the reliance on Google and Microsoft.&lt;/p&gt;

&lt;p&gt;These features would not be “core” to Arc, but instead offered as modules and/or optional add-ons. Therefore they would not impact the consumer experience and/or the integrity of the foundational codebase. They could also be developed by a dedicated business development team, delivering a clear separation of concerns.&lt;/p&gt;

&lt;p&gt;Specific enterprise business features could include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Centralised Management (Configuration Toggles, Sidebar/Spaces Customisation, Extensions Management, etc.)&lt;/li&gt;
  &lt;li&gt;Specific Security Controls (Trusted Sites, Force HTTPS, etc.)&lt;/li&gt;
  &lt;li&gt;Azure AD Integration with FIDO2 Compatibility (SSO Management, etc.)&lt;/li&gt;
  &lt;li&gt;Block Lists (Sites, Downloads, etc.)&lt;/li&gt;
  &lt;li&gt;Ability to Disable Arc Features (Easels, Notes, Boosts, Max, etc.)&lt;/li&gt;
  &lt;li&gt;Max Integration with a Private LLM (Azure OpenAI, Google Vertex AI, etc.)&lt;/li&gt;
  &lt;li&gt;Private Boost Store (Library of Enterprise Approved Boosts)&lt;/li&gt;
  &lt;li&gt;Custom Branding (Business Logo, Colours, Icons, etc.)&lt;/li&gt;
  &lt;li&gt;Cross Platform Support (Windows, macOS, Linux, iOS, iPadOS, Android, etc.)&lt;/li&gt;
  &lt;li&gt;Encrypted Sessions (Tunnelling) and Integration with SASE Solutions&lt;/li&gt;
  &lt;li&gt;Data Loss Prevention (DLP) Controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These features would be compelling to most enterprise businesses, as they would improve security and compliance, whilst also enhancing the user experience and prompting agnostic endpoints (decoupling from the underlying operating system).&lt;/p&gt;

&lt;p&gt;It is also a viable monetisation strategy, as we know enterprise businesses are accepting of pay-per-user subscriptions (assuming the right price point). With millions of users as the target audience, The Browser Company would only need to secure a small number of strategic partnerships to provide a robust, reoccurring revenue stream that should please investors.&lt;/p&gt;

&lt;p&gt;This would allow the core development team to stay focused on customer-centric features that further enhance/enrich the product, hopefully resulting in greater scale, etc.&lt;/p&gt;

&lt;p&gt;It should be noted that browsers with a focus on enterprise businesses do already exist (e.g., &lt;a href=&quot;https://talon-sec.com/&quot;&gt;Talon&lt;/a&gt;). However, they are usually generic copies of Google Chrome, that fail to offer any additional user benefits. This is a major barrier, as enterprise business users are still users and ultimately desire products that enhance their productivity, etc. This is where Arc is different, as it has a unique and compelling value proposition regarding user experience.&lt;/p&gt;
</description>
        <pubDate>Wed, 10 Jan 2024 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2024/01/10/Arc-for-Business/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2024/01/10/Arc-for-Business/</guid>
      </item>
    
      <item>
        <title>Generative AI - EoY</title>
        <description>&lt;p&gt;Earlier this year, my team released a Generative AI chatbot for business, focused on productivity acceleration by streamlining common tasks. I documented the design and development process through a series of blog posts (links below).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;Integrated Generative AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/02/Generative-AI-Enhancements/&quot;&gt;Generative AI - Enhancements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As we close the year, I thought I would take a moment to reflect on our progress.&lt;/p&gt;

&lt;p&gt;As a reminder, the Generative AI chatbot for business was designed and built by two engineers (working part-time) and released to our business (7000 viable users) in June 2023.&lt;/p&gt;

&lt;p&gt;The high-level diagram below highlights the architecture, which is multi-cloud (Microsoft Azure and Google Cloud Platform) by design. It includes a responsive front-end and custom middleware, with each service being loosely coupled and ephemeral, maximising flexibility and cost efficiency.&lt;/p&gt;

&lt;p&gt;The entire application is managed as Terraform, meaning it is cloud-agnostic and can be deployed “as-code”. The only exception is the language models, which are cloud-specific (e.g., Azure OpenAI Service, Google Vertex AI, etc.)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaieoy01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaieoy01.jpg&quot; alt=&quot;Generative AI - End of Year&quot; title=&quot;Generative AI - End of Year&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Regarding features, the list below outlines the current state.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Azure AD Authentication (SSO/FIDO2/MFA Compatible)&lt;/li&gt;
  &lt;li&gt;User Authorisation&lt;/li&gt;
  &lt;li&gt;Secure/Hardended Codebase and Environments (Azure and GCP)&lt;/li&gt;
  &lt;li&gt;Logging and Application Monitoring&lt;/li&gt;
  &lt;li&gt;Cost Monitoring&lt;/li&gt;
  &lt;li&gt;Responsive User Interface and Middleware API&lt;/li&gt;
  &lt;li&gt;Ephemeral Services&lt;/li&gt;
  &lt;li&gt;Infrastructure-as-Code (Hashicorp Terraform)&lt;/li&gt;
  &lt;li&gt;Multiple Models (GPT-3.5, GPT-4, GPT-4 32k, GPT-4-Turbo, PaLM2, Imagen 2)&lt;/li&gt;
  &lt;li&gt;Maximum 128K Token Limit&lt;/li&gt;
  &lt;li&gt;Multimodal (Text and Images)&lt;/li&gt;
  &lt;li&gt;User Context Caching&lt;/li&gt;
  &lt;li&gt;Obfuscated User Usage Data&lt;/li&gt;
  &lt;li&gt;Plain Text Import/Export&lt;/li&gt;
  &lt;li&gt;File Upload&lt;/li&gt;
  &lt;li&gt;Custom Personas&lt;/li&gt;
  &lt;li&gt;Custom Persona Creation Wizard&lt;/li&gt;
  &lt;li&gt;Custom Persona Marketplace&lt;/li&gt;
  &lt;li&gt;Context Ingestion (Business Data)&lt;/li&gt;
  &lt;li&gt;Dashboard (Usage, Return on Investment)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: PaLM2 is in the process of being migrated to the &lt;a href=&quot;https://blog.google/technology/ai/google-gemini-ai/&quot;&gt;recently announced&lt;/a&gt; &lt;a href=&quot;https://deepmind.google/technologies/gemini/&quot;&gt;Google Gemini Pro and Ultra&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Highlights include the controls that ensure security, privacy, and compliance, alongside the custom persona capability, which allows anyone to create their own Generative AI chatbot, primed for a specific use case, with pre-defined context. This feature is similar to what OpenAI recently announced, called &lt;a href=&quot;https://openai.com/blog/introducing-gpts&quot;&gt;GPTs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In addition, the decoupled architecture allows us to add/replace/modify large language models very easily. For example, GPT-4-Turbo was made available to all users the week of release. This flexibility extends to the custom persona capability, meaning that any new large language model can be instantly used with a custom persona without any engineering intervention.&lt;/p&gt;

&lt;p&gt;The screenshot below highlights the basic user interface, which is fully responsive, offering quick links to standard and custom personas, as well as model selection. Certain personas will default to a specific model, attempting to ensure the best user experience.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaieoy02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaieoy02.jpg&quot; alt=&quot;Generative AI - End of Year&quot; title=&quot;Generative AI - End of Year&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As evident, the user interface is inspired by ChatGPT, helping to reduce any requirement for training, etc.&lt;/p&gt;

&lt;p&gt;Earlier this month, we enhanced our custom persona capability, which allows anyone to create their own Generative AI chatbot. We have seen strong adoption of this feature, with over 500 custom personas created, covering a wide range of use cases. The screenshot below highlights the creation wizard.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaieoy03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaieoy03.jpg&quot; alt=&quot;Generative AI - End of Year&quot; title=&quot;Generative AI - End of Year&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To ensure custom personas are discoverable and accessible, we have also implemented a marketplace (screenshot below). The creator can decide to publish their custom persona to the company, whilst also having the option to edit.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaieoy04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaieoy04.jpg&quot; alt=&quot;Generative AI - End of Year&quot; title=&quot;Generative AI - End of Year&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As an example, I have created a custom persona that ingests our Information Security architecture documentation. Therefore, I can simply upload any public security alert (e.g., notification, bulletin, briefing) to get a quick assessment of the risk, specific to our business. Considering I receive thousands of security updates across multiple channels, this custom persona is a great time saver.&lt;/p&gt;

&lt;p&gt;Finally, the screenshot below is the dashboard on 15 December 2023.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaieoy05.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaieoy05.jpg&quot; alt=&quot;Generative AI - End of Year&quot; title=&quot;Generative AI - End of Year&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since June, we have seen 3,877 unique users access the service (55% of the viable audience), with approximately 800 to 1000 logins per day. That includes 538 custom personas active and broad usage of GPT-3.5, GPT-4, GPT-4-Turbo and Imagen 2. It will be interesting to see the Gemini Pro and/or Ultra growth in 2024.&lt;/p&gt;

&lt;p&gt;Based on our conservative estimates, this usage has driven over 10,000 hours of time-saving, which is the equivalent of $499,144 of savings through productivity enhancements and cost avoidance.&lt;/p&gt;

&lt;p&gt;Considering this adoption has been organic (no formal organisational change management) and the service only costs approximately $120 per month to operate (all users), I am very impressed with the return on investment.&lt;/p&gt;

&lt;p&gt;Overall, I am very pleased with the progress we have made in 2023. I am pleased we chose to “lean in” to Generative AI and I am excited to see what additional value we can drive in 2024!&lt;/p&gt;
</description>
        <pubDate>Fri, 15 Dec 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/12/15/Generative-AI-EoY/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/12/15/Generative-AI-EoY/</guid>
      </item>
    
      <item>
        <title>XREAL Air 2 Pro</title>
        <description>&lt;p&gt;Over the years, I have experimented with different head-mounted displays, usually focused on &lt;a href=&quot;/tag/virtual_reality/&quot;&gt;Virtual Reality (VR)&lt;/a&gt; and/or &lt;a href=&quot;/tag/augmented_reality/&quot;&gt;Augmented Reality (AR)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Recently, I have been testing the &lt;a href=&quot;https://www.xreal.com/air2/&quot;&gt;XREAL Air 2 Pro&lt;/a&gt; wearable display, which delivers a large, high-resolution virtual display (like having a portable monitor). Unlike other VR/AR headsets, it does not include any integrated computing capabilities, therefore the XREAL Air 2 Pro must be connected (USB-C) to another device (e.g., Laptop, Smartphone, Games Console, etc.)&lt;/p&gt;

&lt;p&gt;Without the need to integrate computing capabilities, the XREAL Air 2 Pro is a smaller device, that attempts to mimic the look and feel of standard sunglasses.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/xrealair2pro01.jpg&quot; alt=&quot;XREAL Air 2 Pro&quot; title=&quot;XREAL Air 2 Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In reality, I would argue they are “oversized” sunglasses, certainly more discrete than a &lt;a href=&quot;/2022/10/25/meta-quest-pro/&quot;&gt;Meta Quest Pro&lt;/a&gt;, &lt;a href=&quot;/2020/07/20/holo-lens-2/&quot;&gt;Microsoft HoloLens&lt;/a&gt;, or &lt;a href=&quot;/2023/06/05/apple-vision-pro/&quot;&gt;Apple Vision Pro&lt;/a&gt;, but still not something I would want to wear casually.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/xrealair2pro02.jpg&quot; alt=&quot;XREAL Air 2 Pro&quot; title=&quot;XREAL Air 2 Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The specifications of the XREAL Air 2 Pro can be found below. The &lt;a href=&quot;https://uk.shop.xreal.com/products/xreal-air-2-pro&quot;&gt;list price in the UK is £449&lt;/a&gt;. &lt;a href=&quot;https://uk.shop.xreal.com/products/xreal-air-2&quot;&gt;XREAL also offer the XREAL Air 2 at a list price of £399 in the UK&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Display:&lt;/strong&gt; Sony 0.55 Micro-OLED Panel&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Field of View:&lt;/strong&gt; 46-degree&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Virtual Screen Size:&lt;/strong&gt; 330-inch&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 120Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 500 Nits&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Audio Output:&lt;/strong&gt; Second Generation Speakers&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Audio Input:&lt;/strong&gt; Two Microphones&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Input:&lt;/strong&gt; USB-C&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Weight:&lt;/strong&gt; 75g (50:50 Weight Distribution)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The primary difference between the XREAL Air 2 and XREAL Air 2 Pro, is that the “Pro” supports three electrochromic dimming levels (0%/35%/100%), helping to deliver the best possible experience across different lighting conditions (indoors or outdoors). With that said, I am not sure this feature is worth the additional £50.&lt;/p&gt;

&lt;p&gt;The XREAL Air 2 Pro supports four display modes. However, only “Air Casting” is supported natively, with all other modes requiring the &lt;a href=&quot;https://www.xreal.com/beam/&quot;&gt;XREAL Beam&lt;/a&gt; accessory. Air Casting is limited to a 130-inch vertical screen size.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Air Casting:&lt;/strong&gt; Highest refresh rate (120Hz), display instantly follows your head movements.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Anchor:&lt;/strong&gt; Reduced refresh rate (72Hz), display is fixed.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Follow:&lt;/strong&gt; Reduced refresh rate (72Hz), display smoothly follows your head movements.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sideview:&lt;/strong&gt; Reduced refresh rate (72Hz), small display (20-inch) off-centre.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The XREAL Beam accessory is sold separately (£119). It unlocks the additional display modes (Anchor, Follow and Sideview) and includes an integrated battery (rated for 3.5 hours of use), as well as 32GB of storage, which can be used to install and run specific Android apps (e.g., Netflix, etc.) At the time of writing the number of officially supported Android apps, is very limited.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/xrealair2pro03.jpg&quot; alt=&quot;XREAL Air 2 Pro&quot; title=&quot;XREAL Air 2 Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The XREAL Beam is also required if you want to use the XREAL Air 2 Pro with a games console (Sony PlayStation 5, Microsoft Xbox Series X/S, Nintendo Switch, etc.) Therefore, depending on your use case, the XREAL Beam may be a necessity.&lt;/p&gt;

&lt;p&gt;Today, I have a monitor at the office and home. In either scenario, one monitor is always under-utilised (unused on the days I am at the other location). It is possible to mitigate this “waste” with shared workspaces, but this requires a level of coordination that is not always viable. With an XREAL Air 2 Pro the monitor becomes “portable”, easily transported between locations (achieving 100% utilisation).&lt;/p&gt;

&lt;p&gt;If we assume a list price of £250 for a single 27-inch 4K monitor (e.g., &lt;a href=&quot;https://www.dell.com/en-uk/shop/dell-27-4k-uhd-monitor-s2721qsa/apd/210-bfwd/monitors-monitor-accessories&quot;&gt;Dell S2721QS&lt;/a&gt;), that would £500 for two (assuming only one at each location). Therefore, the XREAL Air 2 Pro at a list price of £449 would deliver a positive return on investment.&lt;/p&gt;

&lt;p&gt;When connected directly to my MacBook Pro or iPhone 15 Pro via USB-C, the Sony 0.55 Micro-OLED panel is beautiful, with great colours and image quality (sharp text, etc.) This is especially apparent when viewing video or gaming.&lt;/p&gt;

&lt;p&gt;Unfortunately, when attempting productivity tasks, such as web browsing, word processing, and coding, the experience is more challenging. Although the glasses are adjustable, including the angle of the arms and different-sized nose pads, I found it very difficult to find the perfect position. When not positioned correctly, the edges of the display (top/bottom and corners) become obstructed (outside the field of view) or blurry.&lt;/p&gt;

&lt;p&gt;This is less of an issue when viewing video or gaming, as these areas are rarely the focal point. However, when focused on productivity tasks, many operating system and/or application controls are positioned at the edge.&lt;/p&gt;

&lt;p&gt;Therefore, although it is not unusable for productivity, I have found it to be a frustrating experience, impacting my willingness to persevere for prolonged periods.&lt;/p&gt;

&lt;p&gt;I had hoped the XREAL Beam accessory might help, as it provides more fine-grain adjustment, as well as the ability to simulate multiple monitors (which is cool). However, when using the Bean, the refresh rate is immediately halved (60Hz) and the image quality appears reduced (colour accuracy, etc.) This is disappointing, as the previously mentioned benefits are sacrificed for the increased flexibility.&lt;/p&gt;

&lt;p&gt;In addition, the field of view (46-degree) remains fixed. Therefore, when adjusting the size and/or position of the display, the output is more prone to clipping (where the display moves outside of the viewable field of view.&lt;/p&gt;

&lt;p&gt;In short, although the XREAL Beam has potential, I feel the negatives introduced are currently a deal breaker. Maybe these frustrations can be improved over time through software updates.&lt;/p&gt;

&lt;p&gt;In conclusion, I do not consider the XREAL Air 2 Pro as a viable display for productivity use, leaving just video playback and gaming. This makes the list price of £449 less desirable and not something I can recommend. As for the XREAL Beam, at this time, I do not believe it is worth the additional £119.&lt;/p&gt;

&lt;p&gt;Although my experience has been disappointing, I still believe the “concept” of a wearable display is interesting and worth continued exploration. Therefore, I hope XREAL and others continue to invest and innovate.&lt;/p&gt;

&lt;p&gt;For example, I can imagine a world (likely many years from now) where VR/AR headsets and wearable displays such as the XREAL Air 2 Pro converge. In this scenario, the headset would target the form factor or the XREAL Air 2 Pro and/or &lt;a href=&quot;https://www.meta.com/smart-glasses/&quot;&gt;Meta Smart Glasses&lt;/a&gt;, with more robust VR/AR capabilities. I can only assume this is what Apple is targeting with the soon-to-be-released &lt;a href=&quot;/2023/06/05/apple-vision-pro/&quot;&gt;Apple Vision Pro&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 01 Dec 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/12/01/XREAL-Air-2-Pro/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/12/01/XREAL-Air-2-Pro/</guid>
      </item>
    
      <item>
        <title>What I Do</title>
        <description>&lt;p&gt;Over the years, I have published a few articles outlining my job and approach to my career.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/09/23/cto/&quot;&gt;CTO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/12/career-planning/&quot;&gt;Career Planning&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/01/cto-vs-ciso/&quot;&gt;CTO vs. CISO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/10/19/day-in-the-life/&quot;&gt;Day in the Life&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/17/purpose-and-fulfilment/&quot;&gt;Purpose and Fulfilment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, through my engagement with early career professionals, I still receive questions regarding my background and responsibilities as Chief Technology Officer (CTO) and Chief Information Security Officer (CISO). These questions often extend to the role of IT and the responsibilities of my team&lt;/p&gt;

&lt;p&gt;Therefore, I thought I would share a high-level summary of my background, whilst also including a few examples of key initiatives that I hope provide additional context regarding the role, responsibilities and impact of IT within an enterprise business.&lt;/p&gt;

&lt;p&gt;In addition, my &lt;a href=&quot;https://www.linkedin.com/in/mswbull/&quot;&gt;LinkedIn&lt;/a&gt; profile includes more detail, including links to other public publications, etc.&lt;/p&gt;

&lt;h3 id=&quot;background&quot;&gt;Background&lt;/h3&gt;

&lt;p&gt;I was born on the Isle of Wight (UK), where I completed my primary education, including a two-year engagement with Cisco Systems as part of their IT and cybersecurity education program. This is where I was first introduced to business-centric technology concepts.&lt;/p&gt;

&lt;p&gt;I graduated from Bournemouth University (UK) in 2007, with a 1st Class BSc (Hons) in Business Information Technology. In 2018, I completed my executive education at Stanford University Graduate School of Business (US).&lt;/p&gt;

&lt;p&gt;Since 2018, I have been the global Chief Technology Officer (CTO) at Elanco, expanding my role in 2022 to be the combined global Chief Technology Officer (CTO) and Chief Information Security Officer (CISO), reporting directly to the Chief Information Officer (CIO).&lt;/p&gt;

&lt;p&gt;In 2023, I was externally recognised as the “Silver Globee” winner at the Globee Awards in the category “Chief Technology Officer of the Year - IT Services”, as well as named a CIO 100 Awards UK 2023 winner, which aims to “recognise the best and brightest technology leaders in the UK”.&lt;/p&gt;

&lt;p&gt;I started my career at Eli Lilly, where I joined as a graduate in 2007, following a successful student placement year at Bournemouth University in 2005/2006. I worked at Eli Lilly for twelve years, where I held numerous engineering and architecture roles across Infrastructure, R&amp;amp;D, Commercial and Global Services.&lt;/p&gt;

&lt;p&gt;I closed my tenure at Eli Lilly as the Lead IT Architect for Global IT, which covered Emerging Technologies, Cloud, Hosting, Workplace, Networking, Messaging, Collaborations, Service Management, Data, Financial Services, and Data Centres.&lt;/p&gt;

&lt;h3 id=&quot;elanco&quot;&gt;Elanco&lt;/h3&gt;

&lt;p&gt;Founded in 1954, Elanco is a global leader in animal health, providing those who raise and care for animals with products and services that empower them to address global challenges. Elanco has a strong focus on innovation, both in scientific research and daily operations.&lt;/p&gt;

&lt;p&gt;Elanco supports two primary markets, specifically:&lt;/p&gt;

&lt;p&gt;Pet, covering Pet Owners and veterinarians, promoting the unique and loving bond pet parents share with their companions, and delivering products, services, and insights to ensure every pet can live a long, healthy life.&lt;/p&gt;

&lt;p&gt;Farm, covering Beef, Dairy, Poultry, Swine, and Aquaculture, where raising healthy animals limits the potential for disease spread, supports farmers’ livelihoods and provides nutrient-rich meat, milk, fish, and eggs to nourish and support human health.&lt;/p&gt;

&lt;p&gt;In summary, Elanco believes healthy animals are key to solving some of the world’s most pressing issues, like food security and nutrition, mental health and social isolation, and environmental sustainability. It all starts with healthier animals!&lt;/p&gt;

&lt;p&gt;Elanco IT enables a secure, reliable, and efficient IT ecosystem for approximately 14,000 users (employees/contractors) worldwide, covering approximately 65 physical locations and 18 24x7x365 GxP-compliant manufacturing facilities.&lt;/p&gt;

&lt;p&gt;In addition, Elanco IT delivers value through innovative digital products, services, and insights for our customers across 200 brands and 90 countries.&lt;/p&gt;

&lt;h3 id=&quot;role-and-responsibilities&quot;&gt;Role and Responsibilities:&lt;/h3&gt;

&lt;p&gt;Elanco IT is positioned as a market differentiator, delivering value through the creation of innovative digital products, services and insights that help to transform the well-being of animals, people, and our planet.&lt;/p&gt;

&lt;p&gt;The role of the Chief Technology Officer (CTO) aims to bridge the gap between business and technology, supporting business development and being accountable for the overarching technology strategy, including investments, architecture, engineering, and external engagement.&lt;/p&gt;

&lt;p&gt;Responsibilities include Enterprise Architecture, which is comprised of Business Process, Solution, Data, and Domain architects, covering all Business Functions (e.g., R&amp;amp;D, Manufacturing, Commercial, Global Services, etc.)&lt;/p&gt;

&lt;p&gt;The architecture community maintains a framework of authority and accountability that defines and controls the outcomes of information technology, ensuring that prioritised initiatives have the required sponsorship to succeed.&lt;/p&gt;

&lt;p&gt;Alongside the architecture community, I provide leadership across engineering, which covers the design and delivery of IT infrastructure, Industrial Control Systems (Operational Technology), and digital products (internal/external).&lt;/p&gt;

&lt;p&gt;In addition, I lead the enterprise governance for the use and development of Artificial Intelligence (AI), reporting directly to the Governance Committee, as part of the Board of Directors.&lt;/p&gt;

&lt;p&gt;As Chief Information Security Officer (CISO), I lead Information Security and am accountable for cybersecurity governance, risk and compliance, architecture, and operations, covering detection and response, data protection, vulnerability management, and digital forensic analysis.&lt;/p&gt;

&lt;p&gt;In partnership with Privacy, Legal, Audit and Compliance, I am accountable for company-wide cybersecurity awareness and education, including regular engagement with Executive Leadership, the Board of Directors, and investors.&lt;/p&gt;

&lt;p&gt;Finally, the combined role includes a focus on innovation and external engagement, helping to identify and realise strategic investments that position Elanco as a leader in the animal health market.&lt;/p&gt;

&lt;h3 id=&quot;elanco-ipo-and-bayer-animal-health-acquisition&quot;&gt;Elanco IPO and Bayer Animal Health Acquisition:&lt;/h3&gt;

&lt;p&gt;In August 2018, Eli Lilly announced that its subsidiary, Elanco Animal Health, had filed a registration statement with the US Securities and Exchange Commission (SEC) for an initial public offering (IPO) of common stock.&lt;/p&gt;

&lt;p&gt;As part of the IPO process, I transitioned from my role as Eli Lilly Global IT Lead Architect to Elanco Chief Technology Officer (CTO), accountable for the design and delivery of the IT Vision and Strategy.&lt;/p&gt;

&lt;p&gt;Before the divesture, Elanco was completely reliant on IT services from Eli Lilly, covering Identity, Networking, Hosting, Human Resource Management, Enterprise Resource Planning, Productivity, Collaboration, Data, etc.&lt;/p&gt;

&lt;p&gt;The divestiture presented Elanco with the unique opportunity to rebuild IT from the ground up, including a new architecture, technologies, processes, and talent.&lt;/p&gt;

&lt;p&gt;This unprecedented situation, where the weight of legacy and technical debt was lifted, enabled a “quantum leap” forward through the creation of a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;Simultaneously, in August 2020, Elanco demonstrated its ambition as a standalone company by closing the acquisition of Bayer Animal Health. The transaction, valued at $6.89 billion, positions Elanco as the second-largest independent animal health company globally, unlocking a diverse and comprehensive product portfolio as well as unparalleled service and support.&lt;/p&gt;

&lt;p&gt;Considering the scope, time, and budget pressures associated with these large-scale, complex initiatives, alongside the challenges associated with the macroeconomic environment, including the COVID-19 global pandemic, Elanco IT achieved what many external consultants and research analysts described as “impossible”.&lt;/p&gt;

&lt;p&gt;Throughout this process, I led the design and recruitment of a world-class IT team, that successfully built an entirely new IT ecosystem, including all foundational capabilities, achieved in approximately 18 months. Delivery highlights include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Recruitment and onboarding of approximately 270 IT employees across the US, UK, Poland, and India.&lt;/li&gt;
  &lt;li&gt;Creation and delivery of the IT organisational structure, methodology, processes, etc.&lt;/li&gt;
  &lt;li&gt;Migrated approximately 14,000 users (Identity, Productivity, Collaboration) during a global pandemic, including a Microsoft Office 365 to Office 365 tenant migration.&lt;/li&gt;
  &lt;li&gt;Deployed approximately 14,000 devices across 65 countries, following an autonomous (home) deployment methodology.&lt;/li&gt;
  &lt;li&gt;Migrated approximately 65 physical sites, including 24x7 manufacturing facilities and R&amp;amp;D labs.&lt;/li&gt;
  &lt;li&gt;Migrated/modernised approximately 1101 applications/services, supporting key business processes.&lt;/li&gt;
  &lt;li&gt;Enabled SD-WAN globally, exclusively over Internet circuits, significantly reducing network costs.&lt;/li&gt;
  &lt;li&gt;Achieved 95% cloud adoption, covering SaaS, FaaS, PaaS and IaaS.&lt;/li&gt;
  &lt;li&gt;Enabled a new Enterprise Data Foundation, enabling data-driven decision-making and driving data-powered products.&lt;/li&gt;
  &lt;li&gt;Standardised, and migrated to a new Enterprise Resource Planning (ERP) and Human Resource Management (HRM) environment across approximately 45 countries.&lt;/li&gt;
  &lt;li&gt;Enabled a new approach to Service Integration and Management (SIAM), delivering support efficiencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The modern IT Ecosystem established through this journey primed Elanco as a digitally native business, ready to seize the opportunity as a newly independent company.&lt;/p&gt;

&lt;h3 id=&quot;business-innovation&quot;&gt;Business Innovation:&lt;/h3&gt;

&lt;p&gt;Powered and supported by Elanco IT, Elanco has begun to deliver new innovative products and services to the market across pet and farm.&lt;/p&gt;

&lt;p&gt;Elanco has a robust and exciting innovation pipeline, which aims to launch multiple blockbuster products between now and 2026.&lt;/p&gt;

&lt;p&gt;Two recent innovation examples include:&lt;/p&gt;

&lt;h4 id=&quot;pet-canine-parvovirus-monoclonal-antibody&quot;&gt;Pet: Canine Parvovirus Monoclonal Antibody&lt;/h4&gt;

&lt;p&gt;Canine Parvovirus Monoclonal Antibody is the first and only USDA-conditionally approved monoclonal antibody (mAb) treatment that targets canine parvovirus (CPV).&lt;/p&gt;

&lt;p&gt;While canine parvovirus (CPV) vaccinations are highly effective and widely available, canine parvovirus (CPV) is still a real and ever-present threat to all dogs, with unvaccinated and young puppies the most at risk.&lt;/p&gt;

&lt;p&gt;On average, 900 dogs are diagnosed with canine parvovirus (CPV) each day, with an estimated 92% fatality rate if not treated with timely and aggressive supportive care.&lt;/p&gt;

&lt;p&gt;Alongside the ground-breaking Canine Parvovirus Monoclonal Antibody treatment, Elanco launched “The Defenders Fund”, with a bold commitment to save one million puppies from canine parvovirus (CPV) by 2030.&lt;/p&gt;

&lt;h4 id=&quot;farm-livestock-sustainability&quot;&gt;Farm: Livestock Sustainability&lt;/h4&gt;

&lt;p&gt;The world has until 2030 to reduce climate warming or face irreversible harm.&lt;/p&gt;

&lt;p&gt;60% of people are getting the wrong nutrition, according to the World Health Organisation (WHO) and Action Against Hunger.&lt;/p&gt;

&lt;p&gt;We’re seeing 50% more demand for protein in the next decade than the last.&lt;/p&gt;

&lt;p&gt;Livestock sit at the intersection, animals can help be part of the solution to solving some of the most pressing challenges while giving consumers the protein they want.&lt;/p&gt;

&lt;p&gt;Elanco has launched multiple first-of-its-kind products and services that reduce cattle emissions, targeting a reduction of up to 40-50%.&lt;/p&gt;

&lt;p&gt;The initial focus is methane. Through enteric fermentation, cows generate methane that is released. Methane lasts approximately ten years in the atmosphere, but it is 25x more potent than carbon dioxide at trapping heat – so smaller reductions create a greater impact on temperature.&lt;/p&gt;

&lt;p&gt;If the world can reduce methane emissions by just 20-30%, we can make a real impact and reduce climate warming, making climate-neutral farms a possibility this decade.&lt;/p&gt;

&lt;p&gt;Alongside the new products and services, Elanco helped create a digital business startup called Athian, which is creating a marketplace within the food system to inset carbon credits and create economic value for farmers and reputational value for protein products by keeping the carbon value within the food system.&lt;/p&gt;

&lt;p&gt;The goal is to help ensure Elanco customers can realise the value of their efforts at the farm level.&lt;/p&gt;

&lt;h3 id=&quot;it-innovation&quot;&gt;IT Innovation:&lt;/h3&gt;

&lt;p&gt;Alongside the discovery, development, and delivery of life science products to support pets and farms, Elanco IT also incubates, powers, and supports digital/data initiatives, enabling improved productivity for employees and customers.&lt;/p&gt;

&lt;p&gt;Two recent digital/data innovation examples include:&lt;/p&gt;

&lt;h4 id=&quot;generative-ai-for-business&quot;&gt;Generative AI for Business&lt;/h4&gt;

&lt;p&gt;In early 2023, following the market hype associated with Generative AI, Matthew Bull positioned Elanco as a leader by launching ElancoGPT, a Generative AI chatbot, designed to accelerate productivity by streamlining common business tasks.&lt;/p&gt;

&lt;p&gt;ElancoGPT can be compared to ChatGPT, capable of understanding and generating human-like responses.&lt;/p&gt;

&lt;p&gt;Uniquely, ElancoGPT is private to Elanco, with specific business features and controls to ensure security, privacy, legal, and compliance.&lt;/p&gt;

&lt;p&gt;For example, Identity Access Management (FIDO2 Compliant), Individual Session Management, Custom Personas, Business Data/Context Ingestion, Logging/Monitoring, etc.&lt;/p&gt;

&lt;p&gt;Thanks to the established Modern IT Ecosystem and talented engineers, ElancoGPT was developed internally in two weeks, leveraging a decoupled architecture that includes a custom user interface and middleware API. It can connect to multiple large language models, specifically the GPT Family, Google PaLM2/Gemini, Imagen 2, etc.&lt;/p&gt;

&lt;p&gt;In addition, to enable autonomy and scale, a feature, like OpenAI GPTs, enables business users to securely create their own Generative AI chatbots (known as a custom persona), primed for a specific use case, with configurable context.&lt;/p&gt;

&lt;p&gt;Finally, business data/context is ingested through an embedding engine (Retrieval-Augmented Generation), including the ability to scale for multiple use cases, whilst remaining compliant with our security, privacy, and legal policies.&lt;/p&gt;

&lt;p&gt;Following an early adopter phase, ElancoGPT was made available globally to all viable users (approximately 7,000), targeting a wide range of common business tasks. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Answers (Information, Knowledge Articles, Guides, etc.)&lt;/li&gt;
  &lt;li&gt;Ideation (Brainstorming, Storyboarding, etc.)&lt;/li&gt;
  &lt;li&gt;Content Creation (Documents, Policies, Processes, Communications, etc.)&lt;/li&gt;
  &lt;li&gt;Content Review (Literature, Journals, Papers, Press Releases, etc.)&lt;/li&gt;
  &lt;li&gt;Summarisation (Executive Summaries, Key Messages/Findings, Reports, etc.)&lt;/li&gt;
  &lt;li&gt;Research Analysis (Qualitative, Observations, Deductive Reasoning, Survey, etc.)&lt;/li&gt;
  &lt;li&gt;Software/Data Engineering (100+ Programming/Scripting Languages)&lt;/li&gt;
  &lt;li&gt;Translations (85+ Languages)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since its launch, ElancoGPT has been used by 5,470 unique users (78% of the viable audience), with approximately 1200 logins per day. That includes 623 active custom personas.&lt;/p&gt;

&lt;p&gt;Based on conservative estimates, this usage has driven over 19,000 hours of timesaving, which is the equivalent of $946,424 of savings through productivity enhancements and cost avoidance.&lt;/p&gt;

&lt;p&gt;This adoption has been organic (no formal organisational change management) and the service only costs approximately $300 per month to operate (all users), delivering a compelling return on investment.&lt;/p&gt;

&lt;h4 id=&quot;sustainable-computing&quot;&gt;Sustainable Computing&lt;/h4&gt;

&lt;p&gt;The world produces more than 50 million tons of e-waste per year. On average, that is 6kg per person, per year.&lt;/p&gt;

&lt;p&gt;This e-waste has a direct impact on the well-being of animals, people, and the planet, contributing towards global issues such as climate change.&lt;/p&gt;

&lt;p&gt;Supporting the Elanco Healthy Purpose, Elanco IT is continuously exploring new ways to minimise our environmental impact, prioritising partnerships that improve sustainability.&lt;/p&gt;

&lt;p&gt;In June 2023, Matthew Bull established a partnership with Framework, launching a pilot that aimed to unlock sustainable computing for enterprise businesses.&lt;/p&gt;

&lt;p&gt;The desired outcome is to fundamentally change the model for end-user computing, delivering greater user flexibility and lower costs, whilst reducing the environmental impact.&lt;/p&gt;

&lt;p&gt;This model can replace the legacy approach to lifecycle management, whilst also delivering a “near zero waste” process that encourages reuse and longevity.&lt;/p&gt;

&lt;p&gt;In partnership with Framework, the pilot, delivered across the UK and US focused on the processes, capabilities, and architecture across the following areas:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Enrolment (Microsoft Autopilot, Intune Compatibility)&lt;/li&gt;
  &lt;li&gt;Supportability (Repair, Maintenance)&lt;/li&gt;
  &lt;li&gt;Lifecycle Management (Upgrades, Recycling)&lt;/li&gt;
  &lt;li&gt;Global Distribution (Value Added Reseller Support)&lt;/li&gt;
  &lt;li&gt;Security (Hardware, Software Controls)&lt;/li&gt;
  &lt;li&gt;User Experience (Performance, Usability, Durability)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Results from the pilot have been favourable, highlighting a compelling return on investment, with a potential ten-year total cost of ownership saving of $18M and Co2 equivalent savings of up to 34,000kg.&lt;/p&gt;

&lt;p&gt;In November 2023, the pilot was approved for phase one scale, targeting the UK and Europe in 2024.&lt;/p&gt;

&lt;h3 id=&quot;people-leadership&quot;&gt;People Leadership:&lt;/h3&gt;

&lt;p&gt;Elanco strives to foster the inclusion of all employees, customers, and stakeholders around the world, and celebrate the diversity of its individuals. Elanco unequivocally condemns hate-based violence, which targets people because of their differences, be it disability, race, religion, sexual orientation, or gender identity.&lt;/p&gt;

&lt;p&gt;Currently, Elanco IT has approximately 270 full-time employees and 170 contractors. There are also approximately 890 outsourced roles from managed service providers (e.g., Service Desk, Site Support, Application Management, Network Management, etc.)&lt;/p&gt;

&lt;p&gt;Approximately 100 of the employees are focused on engineering, architecture and/or cybersecurity, which either directly or indirectly report to me as Chief Technology Officer (CTO) and Chief Information Security Officer (CISO).&lt;/p&gt;

&lt;p&gt;I provide leadership, coaching and mentoring across this community, encouraging curiosity, and helping to support individuals’ development/career progression.&lt;/p&gt;

&lt;p&gt;I am also a sponsor of the Student Internship Programme, with specific engagement across the UK, US, and India. The goal is to identify STEM talent early, offering individuals an opportunity to learn/develop as part of an industrial placement (lasting up to one year). This programme has proven highly successful, including direct engagement from Bournemouth University, resulting in approximately 45% of all UK IT employees being recruited via this channel, with excellent talent retention.&lt;/p&gt;

&lt;p&gt;Finally, I sponsor and mentor the global Elanco Women in Leadership programme and proactively engage the external community, for example, a partnership with the UK Charity &lt;a href=&quot;https://www.wonderseekers.charity/&quot;&gt;Wonderseekers&lt;/a&gt; through the Elanco Global Day of Purpose, whose mission is to create a fairer world where all children can treasure science and are ready and able to improve lives and protect and heal our planet.&lt;/p&gt;
</description>
        <pubDate>Sat, 25 Nov 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/11/25/What-I-Do/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/11/25/What-I-Do/</guid>
      </item>
    
      <item>
        <title>OpenAI Chaos</title>
        <description>&lt;p&gt;In what will likely become “the” technology story of 2023, the past 132 hours at &lt;a href=&quot;https://openai.com/&quot;&gt;OpenAI&lt;/a&gt; have been chaotic, to say the least.&lt;/p&gt;

&lt;p&gt;Reddit user “&lt;a href=&quot;https://www.reddit.com/user/saffronfan/&quot;&gt;Saffronfan&lt;/a&gt;” has done a nice job &lt;a href=&quot;https://www.reddit.com/r/ChatGPT/comments/181do64/heres_the_complete_recap_of_chaos_at_openai_over/&quot;&gt;documenting the events&lt;/a&gt;, which I have summarised below for prosperity.&lt;/p&gt;

&lt;p&gt;As a reminder, &lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI became the centre of the technology world in NOV-2022, with the launch of ChatGPT&lt;/a&gt;, resulting in an estimated $80 billion valuation.&lt;/p&gt;

&lt;p&gt;OpenAI has a complex governance model, where a non-profit board controls a for-profit business. Therefore, OpenAI employees have equity in the for-profit, but the CEO and the directors do not. Investors in the for-profit (e.g., Microsoft) have restrictions on their return and no control rights, which remain with the nonprofit board.&lt;/p&gt;

&lt;h3 id=&quot;timeline-of-events&quot;&gt;Timeline of Events&lt;/h3&gt;

&lt;h4 id=&quot;friday-17-nov-2023&quot;&gt;Friday (17-NOV-2023)&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;CEO Sam Altman Dismissed:&lt;/strong&gt; Sam Altman was unexpectedly removed as CEO, surprising the technology and business communities. The reason for his dismissal was unclear, causing dismay and anger among investors. (&lt;a href=&quot;https://x.com/OpenAI/status/1725611900262588813?s=20&quot;&gt;Tweet that started it all&lt;/a&gt;).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Co-Founder and President Quits:&lt;/strong&gt; Following Altman’s departure, CTO Mira Murati was appointed interim CEO, while co-founder Greg Brockman &lt;a href=&quot;https://x.com/gdb/status/1725667410387378559?s=20&quot;&gt;quit&lt;/a&gt;. Ilya Sutskever the co-founder and chief scientist is perceived to be at the head of this coup.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Support for Altman:&lt;/strong&gt; Following Altman’s ousting, there was significant support for him from prominent technology figures, investors, and OpenAI staff, with efforts to reinstate him led by Microsoft. He &lt;a href=&quot;https://x.com/gdb/status/1725667410387378559?s=20&quot;&gt;tweeted&lt;/a&gt; he loved his time at OpenAI upon being fired.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Brockman’s Timeline:&lt;/strong&gt; Brockman went to &lt;a href=&quot;(https://x.com/gdb/status/1725736242137182594?s=46&amp;amp;t=eJBK0MAQ5gIiH9vHmzmFEg)&quot;&gt;Twitter&lt;/a&gt; to provide his “official” timeline of events.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;saturday-18-nov-2023&quot;&gt;Saturday (18-NOV-2023)&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Board to Reinstate Altman:&lt;/strong&gt; On Saturday (18-NOV-2023), reports claim the board was in discussion to reinstate Altman as CEO.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Board Pressure:&lt;/strong&gt; Investors and OpenAI employees threatened the board ordering them to resign and reinstate Altman as CEO or they would lose funding and employees respectfully.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Resistance to Reinstating Altman:&lt;/strong&gt; Despite investor pressure, OpenAI’s board seemed to resist reversing their decision. They had until 17:00 on Saturday (18-NOV-2023) to re-appoint Altman and Brockman but they were silent until Sunday.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;OpenAI Love:&lt;/strong&gt; Brockman &lt;a href=&quot;https://x.com/gdb/status/1725667410387378559?s=20&quot;&gt;tweeted&lt;/a&gt; that he loved his time at OpenAI. He received immense support from OpenAI employees. Additional OpenAI employees were fired with little/no notice.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;sunday-19-nov-2023&quot;&gt;Sunday (19-NOV-2023)&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Internal Conflict at OpenAI:&lt;/strong&gt; The crisis was attributed to differing personalities and ambitions within OpenAI’s leadership, particularly between Altman and Sutskever, a key figure in AI research.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Altman Trolls:&lt;/strong&gt; Sam went to &lt;a href=&quot;https://x.com/sama/status/1726345564059832609?s=20&quot;&gt;Twitter&lt;/a&gt;, stating “First and last time I ever wear one of these”, with a photo of him holding an OpenAI guest badge.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;New CEO:&lt;/strong&gt; OpenAI did not reinstate Altman as CEO, instead hiring Emmett Shear former CEO of Twitch.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Microsoft’s Involvement:&lt;/strong&gt; Microsoft’s CEO Satya Nadella announced that Altman and Brockman would join Microsoft to lead a new advanced AI research team. And that all OpenAI employees would have a spot in the new division.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;monday-20-nov-2023&quot;&gt;Monday (20-NOV-2023)&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Sutskever Speaks:&lt;/strong&gt; Sutskever &lt;a href=&quot;https://x.com/ilyasut/status/1726590052392956028?s=20&quot;&gt;tweeted&lt;/a&gt; “I deeply regret my participation in the board’s actions. I never intended to harm OpenAI. I love everything we’ve built together and I will do everything I can to reunite the company.”&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Microsoft Stock:&lt;/strong&gt; On the news of Altman and Brockman joining Microsoft, their stock is up almost 2.5% Monday (20-NOV-2023) morning.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Shear (OpenAI CEO) Speaks:&lt;/strong&gt; Shear went to &lt;a href=&quot;https://x.com/eshear/status/1726526112019382275?s=20&quot;&gt;Twitter&lt;/a&gt; and shared his thoughts on the whole situation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Employees Exodus:&lt;/strong&gt; 700 of the 778 employees at OpenAI drafted and signed a letter telling the board to resign or they will quit.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Altman Might Return:&lt;/strong&gt; According to &lt;a href=&quot;https://www.theverge.com/2023/11/20/23969586/sam-altman-plotting-return-open-ai-microsoft&quot;&gt;The Verge&lt;/a&gt;, Sutskever flipped to support Altman, but two more board members must change their minds for Altman and Brockman to return.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;tuesday-21-nov-2023&quot;&gt;Tuesday (21-NOV-2023)&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;738 Employees Threatened to Quit:&lt;/strong&gt; 738 out of the 778 employees at OpenAI signed the letter stating they plan to quit. However, there is speculation of coercion.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Shear to Resign:&lt;/strong&gt; Less than 48 hours into his CEO position Shear announces that he will quit if the board does not provide substantial evidence as to why Altman was fired.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;wednesday-22-nov-2023&quot;&gt;Wednesday (22-NOV-2023)&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Altman Back:&lt;/strong&gt; At 01:03 AM Wednesday(22-NOV-2023), OpenAI &lt;a href=&quot;https://x.com/OpenAI/status/1727206187077370115?s=20&quot;&gt;Tweeted&lt;/a&gt; that Altman was returning. They also announced the new board Bret Taylor (Chair), Larry Summers, and Adam D’Angelo.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Altman Tweet:&lt;/strong&gt; Altman quickly took to &lt;a href=&quot;https://x.com/sama/status/1727207458324848883?s=20&quot;&gt;Twitter&lt;/a&gt; and posted his thoughts on the whole situation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Nadella Tweet:&lt;/strong&gt; Nadella may have been the biggest winner from these events, with Microsoft asserting their influence over OpenAI. He shared his closing thoughts on &lt;a href=&quot;https://x.com/satyanadella/status/1727207661547233721?s=20&quot;&gt;Twitter&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Shear Tweet:&lt;/strong&gt; Shear exist as CEO and &lt;a href=&quot;https://x.com/eshear/status/1727210329560756598?s=20&quot;&gt;tweeted&lt;/a&gt; “72 very intense hours of work”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Sutskever Tweets:&lt;/strong&gt; Sutskever &lt;a href=&quot;https://x.com/ilyasut/status/1727434066411286557?s=46&amp;amp;t=eJBK0MAQ5gIiH9vHmzmFEg&quot;&gt;tweeted&lt;/a&gt; “There exists no sentence in any language that conveys how happy I am”.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Following 132 hours of chaos, OpenAI has arguably gone full circle, with Altman back as CEO. However, the ramifications of these events will live on, with a newly established board and additional details emerging regarding the investment/influence of Microsoft.&lt;/p&gt;

&lt;p&gt;The exact reason for the initial dismissal of Altman is still unclear, with rumours of concerns regarding his commercial agenda and/or safety. There is even speculation of an innovation “breakthrough” that members of the board felt needed to be stopped, or at minimum, slowed.&lt;/p&gt;

&lt;p&gt;Personally, I am not surprised by this outcome. The complex nature of the OpenAI governance was always destined to create conflict, with the two opposing forces (profit vs. non-profit) becoming increasingly difficult to maintain, especially with large multi-billion dollar investors (e.g., Microsoft). Compounding this issue was the small, immature board governing OpenAI, a group of individuals who are experts in their field, but lack the required expertise/experience to navigate business complexities. The words, “Engineering is easy. People are hard” has never been so true.&lt;/p&gt;

&lt;p&gt;With that said, I had not expected the implosion of OpenAI to occur in such a dramatic fashion, especially so publically, with the majority playing out on Twitter.&lt;/p&gt;

&lt;p&gt;I expect these events will be studied for years to come and I certainly look forward to watching the inevitable Netflix documentary!&lt;/p&gt;
</description>
        <pubDate>Wed, 22 Nov 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/11/22/OpenAI-Chaos/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/11/22/OpenAI-Chaos/</guid>
      </item>
    
      <item>
        <title>Windows 365 Frontline</title>
        <description>&lt;p&gt;In 2022, &lt;a href=&quot;/2022/07/30/windows-365/&quot;&gt;I published an article regarding Windows 365&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In its simplest form, Windows 365 is a Cloud PC (AKA Virtual Desktop Infrastructure) service. However, it has some unique advantages for enterprise businesses, specifically the unified user experience as part of Office 365 and full integration with &lt;a href=&quot;https://www.microsoft.com/security/business/microsoft-intune&quot;&gt;Microsoft Intune&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At work, we have successfully deployed Windows 365 at scale, which has proven to be highly effective, outperforming equivalent services from VMware and Citrix.&lt;/p&gt;

&lt;p&gt;Unfortunately, the initial licensing model offered by Microsoft was not optimised for shift workers (e.g., service desk agents, support teams, etc.) Therefore, we were forced to retain legacy capabilities for these use cases.&lt;/p&gt;

&lt;p&gt;Thankfully, Microsoft recently improved this situation with &lt;a href=&quot;https://www.microsoft.com/en-us/windows-365/frontline&quot;&gt;Windows 365 Frontline&lt;/a&gt;, which makes it easy and affordable to extend the power of Windows 365 to shift workers, allowing them to securely access their personalised Windows experience on any device without the hassle of sharing physical PCs.&lt;/p&gt;

&lt;p&gt;Key advantages include:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Increase efficiency for frontline workers by providing personalised Windows 365 Cloud PCs that retain their apps, data, and settings whenever they sign in on any device, from any location.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Cloud PCs enable Bring Your Own PC (BYOPC) and remote work scenarios, so your frontline workers are not limited by the constraints of sharing physical, on-premises PCs.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;To start a shift, employees sign in to Windows 365 from the web or the Windows 365 client. When they sign out, a personalised Cloud PC automatically becomes available for the next employee.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We have been partnering closely with Microsoft on this rollout and my colleague &lt;a href=&quot;https://www.linkedin.com/in/mike-henry-07248a1/&quot;&gt;Mike Henry&lt;/a&gt; (Executive Director, TechOps) was recently featured by Microsoft as a &lt;a href=&quot;https://www.microsoft.com/en-us/windows-365/frontline&quot;&gt;customer reference&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows-365/frontline&quot;&gt;&lt;img src=&quot;/images/posts/windows365frontline01.jpg&quot; alt=&quot;Windows 365 Frontline&quot; title=&quot;Windows 365 Frontline&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In summary, we continue to be impressed with Windows 365, with Frontline providing improved flexibility, productivity and cost-efficiency for shift workers.&lt;/p&gt;
</description>
        <pubDate>Mon, 13 Nov 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/11/13/Windows-365-Frontline/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/11/13/Windows-365-Frontline/</guid>
      </item>
    
      <item>
        <title>ollama</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;Since the release of ChatGPT&lt;/a&gt;, the world has become captivated by &lt;a href=&quot;/tag/generative_ai/&quot;&gt;Generative AI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At work, my team has been developing a Generative AI chatbot for business. I have documented the development process through a series of blog posts (links below).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;Integrated Generative AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/11/02/Generative-AI-Enhancements/&quot;&gt;Generative AI - Enhancements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, when working individually and/or testing, it can be useful to have an option to run a large language model, locally (offline, no Internet connection required).&lt;/p&gt;

&lt;p&gt;I have been testing two options, &lt;a href=&quot;https://lmstudio.ai/&quot;&gt;LM Studio&lt;/a&gt; and &lt;a href=&quot;https://ollama.ai/&quot;&gt;ollama&lt;/a&gt;. Although LM Studio offers a robust user interface and direct access to models from &lt;a href=&quot;https://huggingface.co/&quot;&gt;Hugging Face&lt;/a&gt;, I have settled on ollama (for now).&lt;/p&gt;

&lt;p&gt;ollama is a very lightweight application (Mac and Linux, Windows coming soon) for running and managing large language models via the command line (e.g., Terminal). It is fast and very easy to use, supporting a wide range of popular models, &lt;a href=&quot;https://ollama.ai/library&quot;&gt;discoverable via the ollama website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When using a Mac, I recommend &lt;a href=&quot;https://www.lifeintech.com/2020/11/18/apple-m1/&quot;&gt;Apple Silicon&lt;/a&gt; (M1/M2/M3), with the following memory configuration.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;3b models generally require at least 8GB of RAM&lt;/li&gt;
  &lt;li&gt;7b models generally require at least 16GB of RAM&lt;/li&gt;
  &lt;li&gt;13b models generally require at least 32GB of RAM&lt;/li&gt;
  &lt;li&gt;70b models generally require at least 64GB of RAM&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/2023/09/15/my-setup-q3-2023/&quot;&gt;I am fortunate enough to have a MacBook Pro with an M3 Max (16C CPU / 40C GPU) and 128GB of memory&lt;/a&gt;. However, I generally use 7b and 13b models, which deliver good performance and an “acceptable” resource impact (leaving enough memory for other tasks).&lt;/p&gt;

&lt;p&gt;With a model installed locally, it is stored at the following location (macOS):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~/.ollama/models/blobs/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The models can be quite large. For exmaple, the 13b llama2 model requires 7.4GB of storage.&lt;/p&gt;

&lt;p&gt;ollama has a wide range of models available. However, I recommend the following three.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://ollama.ai/library/llama2&quot;&gt;llama2&lt;/a&gt;&lt;/strong&gt;: An open source model released by &lt;a href=&quot;https://ai.meta.com/llama/&quot;&gt;Meta&lt;/a&gt;. Trained on 2 trillion tokens.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://ollama.ai/library/codellama&quot;&gt;codellama&lt;/a&gt;&lt;/strong&gt;: A model for generating and discussing code.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://ollama.ai/library/starcoder&quot;&gt;starcoder&lt;/a&gt;&lt;/strong&gt;: A code generation model trained on 80+ programming languages.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To get started with ollama, simply &lt;a href=&quot;https://ollama.ai/&quot;&gt;download&lt;/a&gt; and install the application. You can then interact with the application and/or models using the following commands and options.&lt;/p&gt;

&lt;h3 id=&quot;commands&quot;&gt;Commands&lt;/h3&gt;

&lt;p&gt;The following commands can be used to interact with ollama.&lt;/p&gt;

&lt;p&gt;To start ollama, run the command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ollama serve
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
To run a model, run the command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ollama run &amp;lt;model&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
To pass a prompt as an argument, run the following command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ollama run &amp;lt;model&amp;gt; &quot;&amp;lt;prompt&amp;gt;&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To list all locally installed models, including their details, run the following command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ollama list
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
To remove a local model, run the following command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ollama rm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

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

&lt;h3 id=&quot;options&quot;&gt;Options&lt;/h3&gt;

&lt;p&gt;The following options can be used when running a model.&lt;/p&gt;

&lt;p&gt;To set session variables, run the option:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/set
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
To show model information, run the option:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/show
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
To exit/stop the model, run the option:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/bye
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

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

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;If you are interested in Generative AI, I would highly recommend ollama for testing, development and learning.&lt;/p&gt;

&lt;p&gt;Be sure to keep a close eye on the &lt;a href=&quot;https://ollama.ai/blog&quot;&gt;ollama blog&lt;/a&gt; for updates and tutorials, as well as their &lt;a href=&quot;https://www.reddit.com/r/ollama/&quot;&gt;Reddit community&lt;/a&gt;. I would also recommend reviewing the README documentation from &lt;a href=&quot;https://github.com/jmorganca&quot;&gt;Jeffrey Morgan&lt;/a&gt; on the &lt;a href=&quot;https://github.com/jmorganca/ollama&quot;&gt;ollama GitHub repository&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 10 Nov 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/11/10/ollama/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/11/10/ollama/</guid>
      </item>
    
      <item>
        <title>Framework Business Process</title>
        <description>&lt;p&gt;Earlier this year, we launched a pilot focused on sustainable computing, partnered with &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt;. The framing, context and goals of this initiative are outlined in the following two articles:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/29/Framework-for-Business/&quot;&gt;Framework for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/12/Framework-Business-Pilot/&quot;&gt;Framework Business Pilot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article will aim to provide an update on the pilot, including details regarding our findings (e.g., principles, processes, asset management, technology, etc.)&lt;/p&gt;

&lt;p&gt;As a reminder, the scope of our pilot covers &lt;a href=&quot;https://frame.work/gb/en/products/laptop-diy-13-gen-amd&quot;&gt;Framework Laptop 13&lt;/a&gt; and &lt;a href=&quot;https://frame.work/gb/en/products/laptop16-diy-amd-7040&quot;&gt;Framework Laptop 16&lt;/a&gt;, targeting a range of business personas. In the context of the Framework Laptop 13, we have selected the AMD Ryzen series. &lt;a href=&quot;https://www.lifeintech.com/2023/10/21/Framework-13-AMD/&quot;&gt;In our testing&lt;/a&gt;, this product delivers better performance and battery life, alongside additional benefits such as an integrated NPU (not overly useful today, but something to consider as on-device AI becomes more prevalent).&lt;/p&gt;

&lt;h3 id=&quot;objective&quot;&gt;Objective&lt;/h3&gt;

&lt;p&gt;Today, enterprise business laptops (e.g., Dell, Lenovo, Apple) have an “appliance-like” design and manufacturing process. Therefore, if a laptop is “broken”, the entire laptop must be replaced.&lt;/p&gt;

&lt;p&gt;The laptop itself is rarely broken beyond repair, usually, it is a single component that has failed. The most common issues are related to the display, keyboard, trackpad or battery.&lt;/p&gt;

&lt;p&gt;The same logic can be applied to upgrades and life cycle management, recognising that current business processes require the entire laptop to be replaced every three to four years.&lt;/p&gt;

&lt;p&gt;We believe that sustainable computing can fundamentally change the traditional model for end-user devices (specificlly laptops), delivering greater user flexibility and lower costs, whilst reducing our environmental impact.&lt;/p&gt;

&lt;h3 id=&quot;principles&quot;&gt;Principles&lt;/h3&gt;

&lt;p&gt;To be successful at scale within an enterprise business, the provisioning and servicing processes of any device must be simple. For example, although technically possible, asking a business user to manually service their device would be considered unacceptable (imagine a business executive opening their Framework laptop to replace a faulty trackpad).&lt;/p&gt;

&lt;p&gt;As a result, we anchored on five key principles.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;The end-user experience must be frictionless, with all servicing requirements managed transparently as a back-office process. Therefore, no end user will need to service (build, repair or upgrade) a laptop, outside of user-swappable components.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The laptop is a collection of components. Asset management occurs at the component level.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;No impact on provisioning, endpoint management or security processes, policies and standards. New laptops will be shipped pre-built, and enrolled via Windows Autopilot.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;User-swappable components will be shipped. Servicing will occur at specific hub locations (not via a third-party provider).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The concept of life cycle management is removed, extending the usable life of laptops. Laptop maintenance and upgrades occur ad-hoc at a component level.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Although these principles place a heavier emphasis on IT, evidence suggests any resource/cost impact can be mitigated with the appropriate forethought.&lt;/p&gt;

&lt;h3 id=&quot;processes&quot;&gt;Processes&lt;/h3&gt;

&lt;p&gt;Testing confirms that our current provisioning and de-provisioning processes can remain unchanged (standardised for all laptops). This is made possible thanks to our use of PC-as-a-Service, which incorporates technologies such as Windows Autopilot and Microsoft Intune.&lt;/p&gt;

&lt;p&gt;For example, a new pre-built laptop will be shipped by Framework directly to the user (or via a value added reseller) and automatically enrolled using Windows Autopilot. Therefore, the user simply authenticates over the Internet to synchronise their configuration, applications, data, etc.&lt;/p&gt;

&lt;p&gt;However, the servicing and/or upgrade process includes new steps that target a “zero waste” outcome, whilst protecting the user experience (time to resolve). The flow below highlights the proposed process.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworkbusinessprocess01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworkbusinessprocess01.jpg&quot; alt=&quot;Framework Business Process&quot; title=&quot;Framework Business Process&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This process acknowledges the availability of “user-swappable components” (unique to Framework), which cover any component that can be installed without a screwdriver (specific components listed below). These components will be shipped to the user upon request.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworkbusinessprocess02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworkbusinessprocess02.jpg&quot; alt=&quot;Framework Business Process&quot; title=&quot;Framework Business Process&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Advanced servicing would happen at a hub location, either by shipping the laptop or locally if the user is within a 30-mile radius. If remote, users will be shipped a new (refurbished) laptop to avoid any downtime, with their existing laptop being repaired or dissasembled for use as spare parts (zero waste).&lt;/p&gt;

&lt;h3 id=&quot;asset-management&quot;&gt;Asset Management&lt;/h3&gt;

&lt;p&gt;Unlike current laptops, asset management with a Framework will occur at the component level, with each compeonent being associated with a “parent” that represents the laptop itself. In the event of a servicing requirement, the individual component(s) will be replaced, transferring the component’s unique identifier. The diagram below highlights this process, which is facilitated by Framework via their hardware serialisation capabilities.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworkbusinessprocess03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworkbusinessprocess03.jpg&quot; alt=&quot;Framework Business Process&quot; title=&quot;Framework Business Process&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Only electrical components (e.g., Memory, SSD) will be uniquely tracked via a serial number, with mechanical components (e.g., top cover, hinges) being tracked for stock quantity.&lt;/p&gt;

&lt;p&gt;New laptops will be provisioned pre-built (not DIY), with any unused components being maintained at the nearest hub location as stock.&lt;/p&gt;

&lt;h3 id=&quot;technical-testing&quot;&gt;Technical Testing&lt;/h3&gt;

&lt;p&gt;The Framework target specification includes two laptops, covering “Business Standard” and “Business Performance”.&lt;/p&gt;

&lt;h4 id=&quot;business-standard&quot;&gt;Business Standard&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Framework Laptop 13&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 5 7640HS 4.9GHz (6C/12T)&lt;/li&gt;
  &lt;li&gt;16GB DDR5-5600 (2x8GB) Memory&lt;/li&gt;
  &lt;li&gt;Western Digital Black SN770 NVMe 2280 500GB (~5,15GB/s Read)&lt;/li&gt;
  &lt;li&gt;AMD Radeon 760M (8C)&lt;/li&gt;
  &lt;li&gt;AMD Ryzen AI Engine (10 TOPS)&lt;/li&gt;
  &lt;li&gt;Keyboard&lt;/li&gt;
  &lt;li&gt;Bezel (Black)&lt;/li&gt;
  &lt;li&gt;13.5-inch 3:2 Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;1080p 60fps Camera&lt;/li&gt;
  &lt;li&gt;Wi-Fi 6E and Bluetooth 5.2&lt;/li&gt;
  &lt;li&gt;Fingerprint Reader (FIDO2 Compatible)&lt;/li&gt;
  &lt;li&gt;Microsoft Pluton Security Processor (TPM 2.0 Compatible)&lt;/li&gt;
  &lt;li&gt;60W Power Adapter (USB-C)&lt;/li&gt;
  &lt;li&gt;2x USB-C, 1x USB-A, 1x HDMI&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;business-performance&quot;&gt;Business Performance&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Framework Laptop 16&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 7 7840HS 5.1GHz (8C/16T)&lt;/li&gt;
  &lt;li&gt;32GB DDR5-5600 (2x16GB) Memory&lt;/li&gt;
  &lt;li&gt;Western Digital Black SN850X NVMe 2280 1TB (7.2GB/s Read)&lt;/li&gt;
  &lt;li&gt;AMD Radeon 780M (12C)&lt;/li&gt;
  &lt;li&gt;AMD Ryzen AI Engine (10 TOPS)&lt;/li&gt;
  &lt;li&gt;Optional: Expansion Module AMD Radeon RX 7700S 8GB GDDR6&lt;/li&gt;
  &lt;li&gt;Keyboard&lt;/li&gt;
  &lt;li&gt;Input Spacers (Black)&lt;/li&gt;
  &lt;li&gt;Bezel (Black)&lt;/li&gt;
  &lt;li&gt;16-inch 16:10 Display (2560x1600 @ 165Hz VRR/FreeSync)&lt;/li&gt;
  &lt;li&gt;1080p 60fps Camera&lt;/li&gt;
  &lt;li&gt;Wi-Fi 6E and Bluetooth 5.2&lt;/li&gt;
  &lt;li&gt;Fingerprint Reader (FIDO2 Compatible)&lt;/li&gt;
  &lt;li&gt;Microsoft Pluton Security Processor (TPM 2.0 Compatible)&lt;/li&gt;
  &lt;li&gt;180W Power Adapter (USB-C)&lt;/li&gt;
  &lt;li&gt;3x USB-C, 1x USB-A, 1x HDMI, 1x Audio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The table below outlines the components that have been individually tested (serviced/replaced), verifying software integrity, provisioning (Windows Autopilot), endpoint management (Microsoft Intune) and security.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/frameworkbusinessprocess04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/frameworkbusinessprocess04.jpg&quot; alt=&quot;Framework Business Process&quot; title=&quot;Framework Business Process&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Non-electrical components (e.g., top cover, hinges) were also tested. However, these have no impact on software integrity, provisioning, endpoint management or security.&lt;/p&gt;

&lt;p&gt;The average time to service a component is approximately 20 minutes, requiring no specialist expertise.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, we believe we have proven the concept of sustainable computing within an enterprise business as viable.&lt;/p&gt;

&lt;p&gt;Our estimates highlight significant savings when compared to traditional laptops (e.g., Dell, Lenovo), especially when considering the total cost of ownership over ten years. The same logic can be applied to sustainability, where we expect to be able to extend the usable life by a minimum of 33%, resulting in substantial CO2 equivalent savings.&lt;/p&gt;

&lt;p&gt;As a result, we have begun discussions with Nirav and the team at Framework to scale in 2024.&lt;/p&gt;

&lt;p&gt;However, it is important to acknowledge that Framework is still in its infancy as a business, with its primary focus continuing to be the consumer market. Therefore, Framework are not ready for global scale, with limitations regarding availability and distribution. To mitigate any risk to our business, scale will occur alongside traditional life cycle management events, incrementally shifting to the new model (with a robust backup in the event of issues).&lt;/p&gt;

&lt;p&gt;Viable personas/geographies will be targeted and prioritized. The goal is to have ~1500 Framework laptops deployed by the end of 2024, and up to ~4000 laptops by the end of 2025.&lt;/p&gt;

&lt;p&gt;Exciting times ahead! Thanks again to the team at Framework, specifically Nirav, Chris, and Marissa.&lt;/p&gt;
</description>
        <pubDate>Thu, 09 Nov 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/11/09/Framework-Business-Process/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/11/09/Framework-Business-Process/</guid>
      </item>
    
      <item>
        <title>Generative AI - Enhancements</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - I have published a new article providing an &lt;a href=&quot;2023/12/15/Generative-AI-EoY/&quot;&gt;end of year update&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In May, &lt;a href=&quot;2023/05/10/Generative-AI-for-Business/&quot;&gt;I published an article that outlined the development and implementation of a Generative AI chatbot for business&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Since that date, my team has been iterating on this service, adding features such as custom personas, multiple models, and context injection from business data.&lt;/p&gt;

&lt;p&gt;This journey has been documented in the following articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;Integrated Generative AI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am pleased to report, that we continue to see excellent viral growth across the business.&lt;/p&gt;

&lt;p&gt;For example, as of November 2023, we have seen 3688 unique users access the service, with between 600 to 800 logins per day. This has resulted in a total estimated return on investment of $432,288 through productivity acceleration. As previously highlighted, the target audience for the service is approximately 7,000 business users. Therefore, we have achieved approximately 53% adoption, with no formal organisational change management.&lt;/p&gt;

&lt;p&gt;The screenshot below highlights the latest real-time dashboard, which is made available to all users and is used to measure our key performance indicators.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaienhancements01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaienhancements01.jpg&quot; alt=&quot;Generative AI - Enhancements&quot; title=&quot;Generative AI - Enhancements&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2023/09/23/Integrated-Generative-AI/&quot;&gt;As stated in the previous article&lt;/a&gt;, we have also been experimenting with integrated Generative AI services, such as &lt;a href=&quot;https://blogs.microsoft.com/blog/2023/03/16/introducing-microsoft-365-copilot-your-copilot-for-work/&quot;&gt;Microsoft 365 Copilot&lt;/a&gt;. Although we continue to see tremendous potential, these services remain cost prohibative. For example, Microsoft 365 Copilot costs $30 per user, per month. Our custom-developed Generative AI chatbot for business costs approximately $120 per month, for all users. Therefore, the difference is significant, dramatically impacting the total return on investment.&lt;/p&gt;

&lt;p&gt;Therefore, our current plan is to only leverage an integrated Generative AI service (e.g., Microsoft 365 Copilot) for specific user personas, where the value is clear and can be achieved. As a result, our Generative AI chatbot for business will continue to be the default for all users.&lt;/p&gt;

&lt;p&gt;With this in mind, we continue to sponsor and invest in our internal engineering team, working to release the next series of enhancements.&lt;/p&gt;

&lt;h4 id=&quot;custom-personas-20&quot;&gt;Custom Personas 2.0&lt;/h4&gt;

&lt;p&gt;The concept of custom personas has been available since the launch of our Generative AI chatbot for business.&lt;/p&gt;

&lt;p&gt;However, we have enhanced this capability, allowing users to create more advanced custom Generative AI chatbots, with specific user permissions, custom prompts and data ingestion.&lt;/p&gt;

&lt;p&gt;The screenshot below highlights the new customer persona creation page, which is fast and simple to use (no coding skills or specialist experience required).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaienhancements02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaienhancements02.jpg&quot; alt=&quot;Generative AI - Enhancements&quot; title=&quot;Generative AI - Enhancements&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A custom persona allows any user to “build” their own Generative AI chatbot for a specific scenario, supporting an individual or team use case.&lt;/p&gt;

&lt;p&gt;At the time of writing, we have 514 custom personas created, available to the business.&lt;/p&gt;

&lt;p&gt;In a future release, we plan to make these custom personas easier to discover and access via a searchable storefront (with visibility and access controlled by user permissions).&lt;/p&gt;

&lt;p&gt;This update brings our custom persona feature in line with the recently announced &lt;a href=&quot;https://openai.com/blog/introducing-gpts&quot;&gt;GPTs capability from OpenAI&lt;/a&gt;. It was also gratifying to see OpenAI release a feature that we have been using for many months, reinforcing our internal prioritisation.&lt;/p&gt;

&lt;h4 id=&quot;image-generation&quot;&gt;Image Generation&lt;/h4&gt;

&lt;p&gt;Our Generative AI chatbot for business has always supported multiple models, specifically GPT-3.5, GPT-4, GPT-4-32K, and PaLM-2. However, for the first time, we have enabled multimodal capabilities, starting with image generation.&lt;/p&gt;

&lt;p&gt;Leveraging GPT-4 and &lt;a href=&quot;https://imagen.research.google/&quot;&gt;Google Imagen&lt;/a&gt;, users are guided through a series of steps (using natural language) to produce a new image. The screenshot below highlights this capability in action.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaienhancements03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaienhancements03.jpg&quot; alt=&quot;Generative AI - Enhancements&quot; title=&quot;Generative AI - Enhancements&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GPT-4 is used to help guide the user, ultimately producing a better prompt that is passed to Google Imagen. At this point, three  images are generated, based on the user requirements (including resolution, etc.)&lt;/p&gt;

&lt;p&gt;Although this feature offers some immediate value for specific personas (marketing, corporate communications, etc.) The exciting part is the potential for the GPT-4 guided steps to be replicated for use against other APIs to trigger specific actions.&lt;/p&gt;

&lt;p&gt;For example, imagine a scenario where a Generative AI chatbot for business can collect user information regarding a specific task, creating the required input to trigger an action with a third-party system (e.g., ServiceNow, Workday, SAP, Salesforce.com).&lt;/p&gt;

&lt;h4 id=&quot;context-ingestion-from-business-data&quot;&gt;Context Ingestion from Business Data&lt;/h4&gt;

&lt;p&gt;Finally, our context ingestion capability, using a &lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;tested and tuned embedding engine&lt;/a&gt; has been industrialised, including the ability to scale for multiple use cases, whilst remaining compliant with our security, privacy and legal policies.&lt;/p&gt;

&lt;p&gt;The screenshot below highlights our Generative AI chatbot for business responding to a business-specific question.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaienhancements04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaienhancements04.jpg&quot; alt=&quot;Generative AI - Enhancements&quot; title=&quot;Generative AI - Enhancements&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is worth noting the embedded links (enhancing usability) and the ability for the user to verify the information via a citation.&lt;/p&gt;

&lt;p&gt;We continue to believe context ingestion from business data presents the greatest opportunity for value, accelerating productivity by streamlining common tasks, whilst unlocking insights from previously obscured data.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, we remain excited by the business opportunities associated with Generative AI. We are also encouraged to see these opportunities rapidly translated into value, which is not always the case with “hyped” technologies (we are still waiting for Blockchain to have an impact outside of Cryptocurrency).&lt;/p&gt;

&lt;p&gt;At this stage, we plan to continue to iterate on our Generative AI chatbot for business, whilst keeping a close eye on the rapidly evolving market covering commercial and open source players.&lt;/p&gt;
</description>
        <pubDate>Thu, 02 Nov 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/11/02/Generative-AI-Enhancements/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/11/02/Generative-AI-Enhancements/</guid>
      </item>
    
      <item>
        <title>Framework Laptop 13 - AMD</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2023/09/12/Framework-Business-Pilot/&quot;&gt;As highlighted in my previous article&lt;/a&gt;, we recently launched a pilot focused on sustainable computing within an enterprise business, partnered with &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am personally passionate about sustainability, which triggered the formal partnership based on my role as Chief Technology Officer (CTO) and Chief Information Security Officer (CISO).&lt;/p&gt;

&lt;p&gt;The articles linked below, highlight my journey with Framework.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/06/01/Framework-Performance/&quot;&gt;Framework Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/07/Framework-Laptop-Update/&quot;&gt;Framework Laptop Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/18/Framework-Laptop-Upgrade/&quot;&gt;Framework Laptop Upgrade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/19/3D-Printed-Framework/&quot;&gt;3D Printed Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/29/Framework-for-Business/&quot;&gt;Framework for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/30/Framework-Build/&quot;&gt;Framework Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/09/12/Framework-Business-Pilot/&quot;&gt;Framework Business Pilot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As it stands, &lt;a href=&quot;/2023/09/12/Framework-Business-Pilot/&quot;&gt;we have approximately 40 laptops (UK and US), covering Intel and AMD configurations&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With the AMD Ryzen series embargo now lifted, I thought I would share a few thoughts regarding our use of the Framework Laptop 13 AMD Ryzen series. This is not intended to be a full review. For that, I would recommend watching the excellent &lt;a href=&quot;https://www.youtube.com/@ElevatedSystems&quot;&gt;Elevated Systems&lt;/a&gt; video.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/fo_8geZ9EuI?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The specification of my Framework Laptop 13 can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop 13 DIY Edition&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 7 7840U (8C/16T)&lt;/li&gt;
  &lt;li&gt;64GB DDR5-5600 RAM&lt;/li&gt;
  &lt;li&gt;4TB Western Digital Black SN850X NVMe (7.3GB/s Read)&lt;/li&gt;
  &lt;li&gt;13.5-inch LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB4 (USB-C), 1x USB 3.2 G2 (USB-A), 1x HDMI 2.0b&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the “high-end” configuration, representing the best available performance.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop13amd01.jpg&quot; alt=&quot;Framework Laptop 13 - AMD&quot; title=&quot;Framework Laptop 13 - AMD&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I am a Linux user (specifically &lt;a href=&quot;/tag/fedora/&quot;&gt;Red Hat Fedora&lt;/a&gt;). However, our business standard is Microsoft Windows 11.&lt;/p&gt;

&lt;p&gt;Therefore, I will split my thoughts into three parts, general (applies to both Linux and Windows) and then some specific observations for each operating system.&lt;/p&gt;

&lt;h3 id=&quot;general&quot;&gt;General&lt;/h3&gt;

&lt;p&gt;I have used every version of the Framework Laptop 13, specifically the Intel 11th Generation, Intel 12th Generation, Intel 13th Generation and AMD Ryzen series.&lt;/p&gt;

&lt;p&gt;Although the form factor and build quality have remained consistent, I can state without question that the performance and power consumption (e.g., battery life) have improved with each upgrade. Therefore, comparing the Intel 11th Generation (2022) with the AMD Ryzen series (2023) is “night and day”, with the AMD Ryzen series delivering more than double the performance when running any application that is multi-thread dependent and/or graphics intensive.&lt;/p&gt;

&lt;p&gt;However, it is the heat, noise and battery life where the AMD Ryzen series shines, delivering upwards of four hours of improved battery life over the equivalent Intel configuration. In my opinion, this is the first Framework Laptop 13 with “all day” battery life, removing the need to consistently carry a power supply.&lt;/p&gt;

&lt;p&gt;The AMD Ryzen series can still get hot and loud, just like the Intel configurations. However, this appears to be far less common when executing daily tasks, such as productivity, collaboration, web browsing, media consumption, etc. Instead, the AMD Ryzen series only becomes noticeably hot and loud when under sustained load, which is far more acceptable.&lt;/p&gt;

&lt;p&gt;A few additional observations that I have not seen as commonly discussed in the public reviews.&lt;/p&gt;

&lt;p&gt;The Framework Laptop 13 AMD Ryzen series leverages DDR5 memory (unlike the Intel series, which still uses DDR4). The first boot after building the Framework Laptop 13 AMD Ryzen series was painfully slow, to the point where I questioned if there was an issue. I later discovered, that this was likely due to the &lt;a href=&quot;https://www.crucial.com/support/articles-faq-memory/ddr5-memory-training&quot;&gt;memory “training” requirement&lt;/a&gt; of DDR5, which can seemingly take up to 15 minutes (depending on the amount of memory installed). Therefore, prepare to be patient with the first boot and do not immediately assume there is a hardware issue.&lt;/p&gt;

&lt;p&gt;Another unique aspect of the AMD Ryzen series is the expansion card configuration. Unlike the Intel series, only certain ports support specific expansion cards, with the wrong configuration potentially impacting usability and/or power consumption. The diagram below outlines the &lt;a href=&quot;https://knowledgebase.frame.work/en_us/expansion-card-functionality-on-framework-laptop-13-amd-ryzen-7040-series-SkrVx7gAh&quot;&gt;Framework certified port configuraiotn&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop13amd02.jpg&quot; alt=&quot;Framework Laptop 13 - AMD&quot; title=&quot;Framework Laptop 13 - AMD&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, although I am confident the AMD Ryzen hardware is a positive step forward compared to Intel 13th Generation, it would appear the software is less mature, resulting in some reliability issues.&lt;/p&gt;

&lt;p&gt;For example, inconsistent behaviour when connecting monitors and using external peripherals via USB and/or Bluetooth. Nothing is fundamentally broken. However, it can sometimes take several attempts for everything to work as designed.&lt;/p&gt;

&lt;p&gt;Although I cannot be sure, I suspect these issues are software (firmware/driver) related, something that I have reported to Framework for investigation.&lt;/p&gt;

&lt;h3 id=&quot;linux-red-hat-fedora&quot;&gt;Linux (Red Hat Fedora)&lt;/h3&gt;

&lt;p&gt;At the time of writing, Fedora 39 is not generally available. Therefore, my testing was with a near-final beta using the &lt;a href=&quot;https://knowledgebase.frame.work/framework-laptop-bios-and-driver-releases-amd-ryzen-7040-series-r1rXGVL16&quot;&gt;3.03 BIOS for AMD Ryzen&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Fedora 39 beta was installed without error, including native drivers for all components. The only issue I had related to the fingerprint reader, which required me to manually install a driver package, as outlined in the &lt;a href=&quot;https://knowledgebase.frame.work/en_us/updating-fingerprint-reader-firmware-on-linux-for-13th-gen-and-amd-ryzen-7040-series-laptops-HJrvxv_za&quot;&gt;Framework Fingerprint Reader guide&lt;/a&gt; on the help center.&lt;/p&gt;

&lt;p&gt;The benchmarks below are not perfect (due to the software differences). However, it does highlight the strengths of the AMD Ryzen 7 7840U vs. the equivalent Intel i7-1370P.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop13amd03.jpg&quot; alt=&quot;Framework Laptop 13 - AMD&quot; title=&quot;Framework Laptop 13 - AMD&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As the results show, the AMD Ryzen easily outperforms Intel in all CPU, GPU and memory tests. Interestingly, the Intel does deliver better I/O performance. However, my testing could not confirm if this is due to the underlying architecture or differences in the SSD configuration (AMD = 4TB WD Black SN850X NVMe / Intel = 1TB WD Black SN850X NVMe).&lt;/p&gt;

&lt;h3 id=&quot;windows-11&quot;&gt;Windows 11&lt;/h3&gt;

&lt;p&gt;The testing with Windows 11 has also been positive. It should be noted that the AMD Ryzen 7040 series is built for Windows 11. Therefore, may not install/run correctly with any prior version of Windows (including Windows 10).&lt;/p&gt;

&lt;p&gt;Outside of the general observations (listed above), the performance on Windows appears to match the results shown for Linux.&lt;/p&gt;

&lt;p&gt;The only Windows-specific issue identified relates to the Trusted Platform Module (TPM) and &lt;a href=&quot;https://www.microsoft.com/en-gb/security/business/microsoft-intune&quot;&gt;Microsoft Intune&lt;/a&gt;, which is only a problem for businesses using Microsoft endpoint management.&lt;/p&gt;

&lt;p&gt;In short, Microsoft Intune does not think the laptop has Secure Boot and Encryption enabled, even though Windows 11 confirms that they are. It is our belief this has to do with the TPM failing attestation, which Microsoft Intune requires to ensure the TPM is valid and certified. It could also be a BIOS maturity issue, specifically related to the use of &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/security/hardware-security/pluton/microsoft-pluton-security-processor&quot;&gt;Microsoft Pluton&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This very specific issue should not impact consumer usage and can be mitigated in a business environment through a custom Microsoft Intune policy. This issue has also been reported to Framework for investigation.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, the AMD Ryzen series is without question the best version of the Framework Laptop 13. It is highly perfomant (Windows and Linux) with excellent battery life. The software does not appear to be as mature. However, I would expect this to improve quickly over the coming weeks/months.&lt;/p&gt;

&lt;p&gt;As a result, if you are in the market for a Framework Laptop 13 and do not have a specific reason to select an Intel configuration, I would recommend the AMD Ryzen series.&lt;/p&gt;
</description>
        <pubDate>Sat, 21 Oct 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/10/21/Framework-13-AMD/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/10/21/Framework-13-AMD/</guid>
      </item>
    
      <item>
        <title>Ultron NUKI</title>
        <description>&lt;p&gt;I recently invested in a smart lock, specifically the &lt;a href=&quot;https://www.ultion-lock.co.uk/ultion-nuki/&quot;&gt;Ultion NUKI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I had previously explored the &lt;a href=&quot;https://yalehome.co.uk/smart-locks/conexis-l2/&quot;&gt;Yale Conexis&lt;/a&gt; but was discouraged by the customer reviews, many of which expressed frustration with the setup process and software reliability.&lt;/p&gt;

&lt;p&gt;I was also nervous about switching to a smart lock that completely removed the option for a traditional key. For example, with the Yale Conexis, if the integrated battery runs flat, you must use a 9v battery pack connected via an external port to gain entry. This feels like a cumbersome workaround and does not protect against potential software issues, which could also deny entry.&lt;/p&gt;

&lt;p&gt;As a result, I was excited to learn about the Ultion NUKI, which on paper met all of my smart lock requirements.&lt;/p&gt;

&lt;p&gt;The Ultion NUKI combines the excellent &lt;a href=&quot;https://www.ultion-lock.co.uk/get-locks/product/&quot;&gt;3-star PLUS Ultion lock&lt;/a&gt;, with technology from &lt;a href=&quot;https://nuki.io/en/&quot;&gt;NUKI&lt;/a&gt; that is interoperable with Amazon Alexa, Apple HomeKit, Google Home, Ring Doorbell, AirBnB and their own NUKI app.&lt;/p&gt;

&lt;p&gt;In addition, the Nuki smart functionality is only accessible from the interior, allowing you to reuse your existing external door handle.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ultionnuki01.jpg&quot; alt=&quot;Ultion NUKI&quot; title=&quot;Ultion NUKI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This approach has two key advantages, it simplifies the setup process (just three screws) and retains the look of your front door, without advertising to the world that you have a smart lock (which could become a target).&lt;/p&gt;

&lt;p&gt;In my experience, the installation process should take no longer than 15 minutes and the app setup process was very intuitive. By default, the NUKI app connects via Bluetooth (Wi-Fi is available when using the &lt;a href=&quot;https://nuki.io/en/bridge/&quot;&gt;NUKI bridge&lt;/a&gt;), allowing for one-click opening, alongside a range of scheduling and guest access features.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ultionnuki02.jpg&quot; alt=&quot;Ultion NUKI&quot; title=&quot;Ultion NUKI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In the first few weeks, the app/lock has not failed me once, with the only minor inconvenience being the noise it makes when locking/unlocking (sounds like a drill as it rotates the locking mechanism). It is however reassuring to know that if the lock were to fail, I could simply switch back to a traditional key.&lt;/p&gt;

&lt;p&gt;In my opinion, the only real consideration is the limitation of using the Ultion NUKI with a Multi Point Lock (MPL), which is a common lock type in the UK.&lt;/p&gt;

&lt;p&gt;A Multi Point Lock extends the height of the door, with multiple locking points along the edge. The extra locking points strengthen the security by removing the single point of failure (single deadbolt), delivering a tighter end-to-end seal.&lt;/p&gt;

&lt;p&gt;The challenge with a Multi Point Lock is that the locking mechanism must be triggered (usually by lifting the handle) before locking. This presents an issue for most smart locks (not just the Ultion NUKI), which have no way of triggering the locking mechanism.&lt;/p&gt;

&lt;p&gt;This limitation does not impact unlocking, but anytime the door needs to be locked (via the smart lock or traditional key), the handle must first be raised. Therefore, it is not possible to lock the door remotely, unless someone is available to lift the handle.&lt;/p&gt;

&lt;p&gt;My primary use case for getting a smart lock was to avoid having to take my keys everywhere (as my car is also keyless). Therefore, this locking limitation has not caused any real-world impact.&lt;/p&gt;

&lt;p&gt;In conclusion, I would highly recommend the Ultion NUKI. I believe it offers the best of both worlds (traditional and smart), whilst offering a simple setup process and reliable smart features.&lt;/p&gt;
</description>
        <pubDate>Tue, 10 Oct 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/10/10/Ultron-NUKI/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/10/10/Ultron-NUKI/</guid>
      </item>
    
      <item>
        <title>FIDO2 and Passkeys</title>
        <description>&lt;p&gt;Over the past couple of months, there has been a notable increase in advanced phishing attacks, leveraging QR codes to bypass email protections and a technique known as “Adversary-in-the-Middle”.&lt;/p&gt;

&lt;p&gt;Adversary-in-the-Middle is very difficult for the user to recognise and circumvents standard cybersecurity protections, including Multi-Factor Authentication (MFA).&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;The attack is commonly initiated via phishing, specifically an email with an external link (or an embedded QR code that redirects to an external link).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The link opens a phishing website that acts as a ”reverse proxy”, which forwards a legitimate login website to the user. For example, the Microsoft login webpage.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The phishing website (reverse proxy) is hosted on a domain controlled by the adversary, allowing them to closely mimic the URL, as well as present a valid certificate to the user. &lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The adversary transparently sits between the legitimate login website and the user, allowing them to access all unencrypted data flowing through the proxy. This includes the username and password, as well as the associated session cookie (enabling persistent access).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;At the point in which the user approves the Multi-Factor Authentication (MFA) request, the attacker has successfully compromised the account, with the ability to persist access via the stolen session cookie.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Unfortunately, all traditional forms of Multi-Factor Authentication (MFA), including Phone Calls, SMS, Authenticator Apps, and Number Matching are susceptible.&lt;/p&gt;

&lt;p&gt;Some controls can reduce the risk of compromise, for example, enforcing compliant devices, etc. However, these controls also reduce flexibility, potentially impacting productivity.&lt;/p&gt;

&lt;p&gt;If you are an enterprise business leveraging Microsoft device management and/or cybersecurity capabilities, I would highly recommend reviewing &lt;a href=&quot;[https://jeffreyappel.nl/aitm-mfa-phishing-attacks-in-combination-with-new-microsoft-protections-2023-edt/&quot;&gt;the excellent article from Jeffery Appel&lt;/a&gt;, that outlines available Microsoft protections in 2023.&lt;/p&gt;

&lt;p&gt;Even with these protections enabled, the goal of every business (small or large) should be to adopt new standards, such as FIDO2 and passkeys.&lt;/p&gt;

&lt;h3 id=&quot;fido2&quot;&gt;FIDO2&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://fidoalliance.org/fido2/&quot;&gt;FIDO2 (Fast Identity Online 2)&lt;/a&gt; is, confusingly, the third iteration of the &lt;a href=&quot;https://fidoalliance.org/&quot;&gt;FIDO standard&lt;/a&gt;, building upon FIDO U2F and FIDO UAF. It is best known as “the passwordless standard”, emphasizing security, convenience, privacy, and scalability.&lt;/p&gt;

&lt;p&gt;In the context of phishing and specifically Adversary-in-the-Middle, FIDO2 employs new techniques that are (at least today) considered to be breach resistant.&lt;/p&gt;

&lt;p&gt;FIDO2 leverages standard public key cryptography keys and challenges to verify the legitimacy of the request, providing stronger authentication. Specifically, FIDO2 includes three steps:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;During the registration process, the user client device creates a new key pair. It retains the private key and registers the public key with the target service.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Authentication is completed by the client device proving possession of the private key by signing a challenge.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The client’s private key can be used only after they are unlocked locally on the device by the user. The local unlock is accomplished via a convenient and secure action such as biometrics, etc.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;FIDO2 has also been designed to protect user privacy. The protocol does not provide information that can be used to collaborate and/or track users across. In addition, any biometric information, if used, remains on the user’s device.&lt;/p&gt;

&lt;h3 id=&quot;passkeys&quot;&gt;Passkeys&lt;/h3&gt;

&lt;p&gt;Based on FIDO standards, &lt;a href=&quot;https://fidoalliance.org/passkeys/&quot;&gt;passkeys&lt;/a&gt; are a replacement for passwords that provide faster, easier, and more secure authentication.&lt;/p&gt;

&lt;p&gt;In short, passkeys are a replacement for passwords. A password is something that can be remembered and typed, and a passkey is a secret stored on a user’s device, unlocked with biometrics.&lt;/p&gt;

&lt;p&gt;Advantages of using a passkey include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Intuitive:&lt;/strong&gt;  Creating and using a passkey is as simple as consenting to save and use them. No password is required.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Always Unique:&lt;/strong&gt;  By design, a passkey is unique per service (can not be reused).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Breach Resistant:&lt;/strong&gt; A passkey is only stored on a user’s devices. &lt;a href=&quot;https://passkeys.dev/docs/reference/terms/#relying-party-rp&quot;&gt;Relying Party (RP)&lt;/a&gt; servers store public keys. Even servers that assist in the syncing of passkeys can never access or use the private keys.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Phishing Resistant:&lt;/strong&gt; Passkeys can only ever be used to authenticate with the appropriate service, avoiding the need for human verification.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;As previously stated, I highly recommend all businesses establish a roadmap to adopt FIDO2 and passkeys. If you are a Microsoft Entra ID customer, &lt;a href=&quot;https://techcommunity.microsoft.com/t5/microsoft-entra-azure-ad-blog/what-s-new-in-microsoft-entra/ba-p/3796395&quot;&gt;the team recently announced support for device-bound passkeys stored on computers and mobile devices coming in January 2024&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As an individual, &lt;a href=&quot;https://bitwarden.com/passwordless-passkeys/&quot;&gt;Bitwarden are expected to release their passwordless compatibility this month (October 2023)&lt;/a&gt;. This will allow users to store and use passkeys alongside traditional passwords in Bitwarden Password Manager.&lt;/p&gt;

&lt;p&gt;In the interim, if you are Bitwarden user, I recommend enabling and using &lt;a href=&quot;https://bitwarden.com/help/setup-two-step-login-fido/&quot;&gt;FIDO2 WebAuthn&lt;/a&gt;, which will at least protect your vault from Adversary-in-the-Middle attacks.&lt;/p&gt;
</description>
        <pubDate>Fri, 06 Oct 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/10/06/FIDO2-and-Passkeys/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/10/06/FIDO2-and-Passkeys/</guid>
      </item>
    
      <item>
        <title>Day of Purpose</title>
        <description>&lt;p&gt;Today, my UK IT team (around 35 people) completed a “&lt;a href=&quot;https://www.elanco.com/en-us/sustainability/global-day-of-purpose&quot;&gt;Day of Purpose&lt;/a&gt;” with the children’s charity, &lt;a href=&quot;https://www.wonderseekers.charity/&quot;&gt;Wonderseekers&lt;/a&gt;, who run &lt;a href=&quot;https://www.winchestersciencecentre.org/&quot;&gt;Winchester Science Centre&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Day of Purpose is an annual volunteer day that encourages all employees globally to partner with local charities to make a positive impact.&lt;/p&gt;

&lt;p&gt;Wonderseekers are on a mission to use science engagement and interactive science experiences to empower children to improve lives and protect and heal the planet. This mission is tightly aligned with our own, specifically our “&lt;a href=&quot;https://www.myelanco.co.uk/about/healthy-purpose&quot;&gt;Healthy Purpose&lt;/a&gt;” and the focus on Science, Technology, Engineering and Maths (STEM).&lt;/p&gt;

&lt;p&gt;Winchester Science Centre is also local to the Elanco UK office. Therefore, we hope this partnership can help to inspire the next generation of diverse talent.&lt;/p&gt;

&lt;p&gt;As part of the day, we completed a range of activities, including site housekeeping (gardening, jet washing, cleaning), a workshop with their IT team, advising on their architecture and repairing/modernising a space exhibit.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dayofpurpose202301.jpg&quot; alt=&quot;Day of Purpose&quot; title=&quot;Day of Purpose&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I am a huge advocate for the work completed by Wonderseekers and the &lt;a href=&quot;/2022/07/20/winchester-science-centre/&quot;&gt;Winchester Science Centre&lt;/a&gt; Thanks to the entire team for the partnership!&lt;/p&gt;
</description>
        <pubDate>Thu, 05 Oct 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/10/05/Day-of-Purpose/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/10/05/Day-of-Purpose/</guid>
      </item>
    
      <item>
        <title>Samsung G95NC</title>
        <description>&lt;p&gt;Since August 2020, &lt;a href=&quot;/2020/08/24/super-ultrawide/&quot;&gt;I have been using a 49-inch super ultrawide monitor&lt;/a&gt;, specifically the Samsung C49RG90.&lt;/p&gt;

&lt;p&gt;Having switched from dual 27-inch 4K monitors to a super ultrawide, I am confident I will never go back to multiple monitors.&lt;/p&gt;

&lt;p&gt;In my opinion, the 32:9 aspect ratio of a super ultrawide delivers the best overall experience when interacting with a desktop operating system (Windows, macOS, Linux). The scale of the working area streamlines most productivity tasks, by avoiding the need to constantly switch windows, whilst allowing for the “focus window” to remain centred.&lt;/p&gt;

&lt;p&gt;With this in mind, I recently upgraded to the &lt;a href=&quot;https://www.samsung.com/uk/monitors/gaming/odyssey-neo-g9-g95nc-57-inch-240hz-curved-dual-uhd-ls57cg952nuxxu/&quot;&gt;Samsung G95NC Odyssey Neo G9 240Hz Dual UHD Monitor&lt;/a&gt;, which is a colossal 57-inch super ultrawide monitor.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/samsungg95nc01.jpg&quot; alt=&quot;Samsung G95NC Odyssey Neo G9&quot; title=&quot;Samsung G95NC Odyssey Neo G9&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The full specifications of the Samsung G95NC Odyssey Neo G9 can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Model:&lt;/strong&gt; Samsung G95NC Odyssey Neo G9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Size:&lt;/strong&gt; 57-inch&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Type:&lt;/strong&gt; VA (Quantum Mini LED - 2,392 Zones)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Curvature:&lt;/strong&gt; 1000R&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aspect Ratio:&lt;/strong&gt; 32:9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 7680x2160&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 240Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Variable Refresh Rate:&lt;/strong&gt; AMD FreeSync Premium Pro&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; 1ms (GTG)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;High Dynamic Range:&lt;/strong&gt; HDR10+ Gaming, VESA DisplayHDR 1000&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 420cd/㎡ (Typical), 1000cd/m2 (Peak)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Interface:&lt;/strong&gt; 3x HDMI 2.1 (HDCP 2.2), 1x DisplayPort 2.1 (HDCP 2.2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have been researching this monitor for several months as it offers a rare combination of features that I have long desired. Specifically, a 32:9 aspect ratio, high resolution, high refresh rate, variable refresh rate, Mini LED, 1000R curve and “forward-looking” interfaces (HDMI 2.1 and DisplayPort 2.1).&lt;/p&gt;

&lt;p&gt;No other monitor on the market today can boast this specification. The best alternative would be the &lt;a href=&quot;https://www.samsung.com/uk/monitors/gaming/odyssey-oled-g9-g95sc-49-inch-240hz-curved-dual-qhd-ls49cg954suxxu/&quot;&gt;Samsung G95SC Odyssey OLED G9&lt;/a&gt;, which on paper has the “benefit” of OLED technology, but is 8-inches smaller, lacks DisplayPort 2.1 and includes the obscure Micro HDMI interface. Although OLED is a superior panel type, I would argue it is less suitable for productivity tasks, where there is a high risk of burn-in.&lt;/p&gt;

&lt;p&gt;I had planned to wait until 2024 to purchase the Samsung G95NC Odyssey Neo G9. However, an unfortunate accident accelerated my timeline. While making some changes to my PC, the back panel of the case fell against the display. Thankfully, it didn’t crack, but it did leave a frustrating scrape.&lt;/p&gt;

&lt;p&gt;This incident, combined with a £300 (13.6%) discount from “&lt;a href=&quot;https://allyourappliances.co.uk/&quot;&gt;All Your Appliances&lt;/a&gt;”, pushed me over the edge!&lt;/p&gt;

&lt;h3 id=&quot;the-samsung-g95nc&quot;&gt;The Samsung G95NC&lt;/h3&gt;

&lt;p&gt;There is no denying it, the Samsung G95NC Odyssey Neo G9 is massive! At 1327.5mm wide and weighing 15.4kg (without the stand), it requires some serious desk space.&lt;/p&gt;

&lt;p&gt;Thankfully, I own the exceptional &lt;a href=&quot;/2022/10/17/New-Home-Office/&quot;&gt;Secret Lab Magnus Pro XL&lt;/a&gt; sit-to-stand desk, which is 1770mm wide and can hold up to 120kg.&lt;/p&gt;

&lt;p&gt;I have mounted the monitor on the &lt;a href=&quot;https://www.ergotron.com/en-gb/products/product-details/45-647&quot;&gt;Ergotron HX with HD Pivot&lt;/a&gt;, which is a heavy-duty monitor arm that can in theory hold a monitor that weighs 19.1kg. I can confirm that the monitor arm does hold the Samsung G95NC Odyssey Neo G9. However, it is right on the limit, requiring the full tension to be applied to the “HD Pivot”.&lt;/p&gt;

&lt;p&gt;Thankfully, with the monitor mounted, it feels very sturdy (no wobble) and removes the need to use the included stand (which is very large), delivering a minimal aesthetic and freeing up desk space.&lt;/p&gt;

&lt;p&gt;The monitor is connected to two devices, specifically my custom-built PC, which includes an AMD Ryzen 3950X and NVIDIA GeForce RTX 3090FE, as well as my 16-inch Apple MacBook Pro M2 Max. The full specification of each device can be found in the article “&lt;a href=&quot;/2023/09/15/My-Setup-Q3-2023/&quot;&gt;My Setup (Q3 2023)&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;Both devices are connected via HDMI 2.1, using the included cable and a “&lt;a href=&quot;https://www.amazon.co.uk/dp/B0B9M7SNWQ&quot;&gt;3m Stouchi HDMI 2.1 Certified Cable&lt;/a&gt;” purchased from Amazon UK. They output the native resolution (7680x2160) with HDR enabled at 120Hz. At the time of writing, neither device can output the full 240Hz at native resolution, although this may become viable for the NVIDIA GeForce RTX 3090FE via a future driver update.&lt;/p&gt;

&lt;p&gt;The MacBook Pro scaling is set to “More Space (7680x2160)”, although HDR and the 120Hz refresh rate are available at all scaling levels.&lt;/p&gt;

&lt;p&gt;It is a little disappointing that 240Hz is not usable. However, in 2023, the value of running a refresh rate above 120Hz at this resolution is questionable. Therefore, simply knowing it is supported as a future option is good enough for now.&lt;/p&gt;

&lt;p&gt;One important note, any device that is not HDMI 2.1 or DisplayPort 2.1 compatible will likely fail to output at these settings. This includes any Apple M1 device, covering the Pro, Max and Ultra variants.&lt;/p&gt;

&lt;p&gt;Regarding the quality of the display, it is marvellous. The jump from 109 PPI with my old 49-inch Samsung C49RG90 to 140 PPI with the Samsung G95SC Odyssey OLED G9 is immediately noticeable, especially in text-heavy applications, such as the Terminal, &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Visual Studio Code&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;The same can be said for the colours, which certainly feel like a step up from the Samsung C49RG90, likely thanks to the Quantum Mini LED panel. With that said, even with 2,392 dimming zones, it is still possible to see some blooming when displaying light content on a dark background (it is no match for OLED). Thankfully, as I use the monitor for productivity, this criticism is minor and not something I consider a “real-world” issue.&lt;/p&gt;

&lt;p&gt;Another point of interest is the heat generated by the monitor, which is certainly above what I experienced with the Samsung C49RG90. Interestingly, as the monitor heats up (first 20 minutes of use), it causes an unusual side effect, specifically a small popping sound as the rear plastic expands. As I use the monitor for 5+ hours per day (usually with headphones on), this is a minor concern, but not something I have experienced before.&lt;/p&gt;

&lt;p&gt;There is no evidence to suggest the heat will cause any long-term issues, but it is something to consider if you plan to use the monitor in a small room (which will heat up quickly). On a positive note, it will likely help in winter, avoiding the need for additional heating.&lt;/p&gt;

&lt;p&gt;Finally, I am not a heavy gamer, but I did launch the new Cyberpunk 2077 v2.x update and can confirm it looks and runs great with “variable refresh rate” enabled.&lt;/p&gt;

&lt;p&gt;Pushing 7680x2160 pixels is a very big ask for any system, even with modern deep learning and upscaling techniques enabled. Therefore, I lowered the resolution to 5120x1440 (equal to my old Samsung C49RG90), which is less pixels per frame than native 4K. Combined with techniques such as NVIDIA DLSS, the game looked and ran perfectly well at high/ultra settings with Ray Tracing.&lt;/p&gt;

&lt;p&gt;In conclusion, I am very impressed with the Samsung G95SC Odyssey OLED G9. In my opinion, it is the best monitor on the market, assuming you have the need and are fortunate enough to have the funds and space to support a super ultrawide.&lt;/p&gt;
</description>
        <pubDate>Wed, 04 Oct 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/10/04/Samsung-G95NC/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/10/04/Samsung-G95NC/</guid>
      </item>
    
      <item>
        <title>Analogue Pocket</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://www.analogue.co/&quot;&gt;Analogue&lt;/a&gt; is an interesting company. They design and sell custom FPGA game systems, specifically the &lt;a href=&quot;https://www.analogue.co/pocket&quot;&gt;Pocket&lt;/a&gt;, &lt;a href=&quot;https://www.analogue.co/super-nt&quot;&gt;Super Nt&lt;/a&gt;, &lt;a href=&quot;https://www.analogue.co/mega-sg&quot;&gt;Mega Sg&lt;/a&gt; and the &lt;a href=&quot;https://www.analogue.co/duo&quot;&gt;Duo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;FPGA is a type of chip called an integrated circuit, which uses programmable logic blocks that can be altered as needed. This allows for the chip to be programmed to recreate the hardware circuitry of classic game consoles.&lt;/p&gt;

&lt;p&gt;The advantage of an FPGA is that it can run the original game from hardware, instead of software emulation, delivering a perfect (or near-perfect) representation. When combined with the correct input, an FPGA can also load from the original game media (cartridge or disc), controlled via the original input hardware (controller, joystick, etc.)&lt;/p&gt;

&lt;p&gt;As a result, anyone interested in legally maintaining their retro gaming collection will likely target an FPGA console, knowing that the original hardware is likely obsolete and therefore no longer available for purchase.&lt;/p&gt;

&lt;p&gt;Anyone interested in FPGA has likely explored the Analogue range of game systems or built their own using the popular MiSTer open-source project.&lt;/p&gt;

&lt;p&gt;I like the mission of Analogue (retro games preservation), but I am not always a supporter of their sales practices. For example, Analogue game systems are often “limited run”, which can drive up costs, promoting scalpers. Unfortunately, the evidence suggests that the supply from Analogue is artificially constrained and not a real-world limitation. Therefore, it would appear Analogue use their low availability as a sales tactic to charge more for their products, which I consider a dirty tactic that is ultimately anti-consumer (hurting their customers).&lt;/p&gt;

&lt;p&gt;With that said, I commend their design/manufacturing teams, as they make high-quality, beautiful products.&lt;/p&gt;

&lt;p&gt;As a child, I played a lot of games, therefore I enjoy the nostalgia of playing and &lt;a href=&quot;/ninjacaves.html&quot;&gt;developing&lt;/a&gt; games from this era (e.g., Platformers, Top Down Shooters, RPGs, etc.)&lt;/p&gt;

&lt;p&gt;I own the Analogue Pocket (RRP $219), which is a portable (handheld) game system that takes inspiration from the original Nintendo Gameboy. Out of the box, the Analogue Pocket is compatible with the 2,780+ Game Boy, Game Boy Colour &amp;amp; Game Boy Advance games, played from the original cartridges. This can be extended further with cartridge adapters for the Sega Game Gear, Neo Geo Pocket Colour, Atari Lynx, TurboGrafx-16 and SuperGrafx.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/analoguepocket01.jpg&quot; alt=&quot;Analogue Pocket&quot; title=&quot;Analogue Pocket&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Analogue Pocket includes a 3.5-inch that outputs a 1600x1440 resolution (615 PPI). That is 10x the resolution of an original Game Boy, meaning that any content played on the Analogue Pocket looks incredible.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/analoguepocket02.jpg&quot; alt=&quot;Analogue Pocket&quot; title=&quot;Analogue Pocket&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Analogue Pocket also includes a range of inputs, including a MIDI USB-A, MIDI IN, Analog Sync Cable, and Pocket Link Cable. These ports are all compatible with all original Gameboy, Game Boy Colour and Game Boy Advanced, helping to ensure full game feature compatibility, such as multiplayer, etc.&lt;/p&gt;

&lt;p&gt;In addition, the Analogue Dock (sold separately - RRP $99.99) allows the Analogue Pocket to output to a modern TV, with USB, Bluetooth and 2.4g controller support. I use the &lt;a href=&quot;https://www.8bitdo.com/pro2/&quot;&gt;8BitDo Pro 2&lt;/a&gt;, which works great for retro and modern games.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/analoguepocket03.jpg&quot; alt=&quot;Analogue Pocket&quot; title=&quot;Analogue Pocket&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alongside the hardware is a range of software tricks, including original display modes, including display characteristics like backlight LCD effects, pixel grid patterns and LCD sub-pixel patterns. Combined with modern features, such as sleep, wake and save states, the Analogue Pocket makes playing retro games more convenient, without impacting the integrity of the original game.&lt;/p&gt;

&lt;p&gt;Regarding games, the list of incredible titles is vast. For example, the &lt;a href=&quot;https://www.denofgeek.com/games/best-game-boy-advance-games/&quot;&gt;Game Boy Advance, which includes critically acclaimed games&lt;/a&gt;, including many high-quality ports from the Nintendo SNES. For example.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Super Mario Advance 3: Yoshi’s Island&lt;/li&gt;
  &lt;li&gt;Mario Kart Super Circuit&lt;/li&gt;
  &lt;li&gt;Legend of Zelda: A Link to the Past with Four Swords&lt;/li&gt;
  &lt;li&gt;Final Fantasy VI Advance&lt;/li&gt;
  &lt;li&gt;Metroid: Zero Mission&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you are interested in retro gaming or simply own a retro gaming library that you are hoping to preserve, I highly recommend an FPGA game system. Assuming you can find a good price, I believe the Analogue Pocket is the perfect companion for any passionate retro gamer!&lt;/p&gt;
</description>
        <pubDate>Sat, 30 Sep 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/09/30/Analogue-Pocket/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/09/30/Analogue-Pocket/</guid>
      </item>
    
      <item>
        <title>Integrated Generative AI</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;Following the launch of ChatGPT in November 2022&lt;/a&gt;, Generative AI has captured the imagination of many around the world, including the mainstream media.&lt;/p&gt;

&lt;p&gt;This “hype” has energised the technology industry, with almost every technology company releasing press materials that attempt to highlight their relevance, expertise and leadership in this new era of innovation led by Generative AI.&lt;/p&gt;

&lt;p&gt;For example, &lt;a href=&quot;https://www.salesforce.com/news/press-releases/2023/03/07/einstein-generative-ai/&quot;&gt;Salesforce.com&lt;/a&gt;, &lt;a href=&quot;https://www.servicenow.com/uk/now-platform/generative-ai.html&quot;&gt;ServiceNow&lt;/a&gt;, &lt;a href=&quot;https://blog.workday.com/en-us/2023/how-workday-leading-enterprise-generative-ai-revolution.html&quot;&gt;Workday&lt;/a&gt;, &lt;a href=&quot;https://www.sap.com/uk/products/artificial-intelligence/generative-ai.html&quot;&gt;SAP&lt;/a&gt;, &lt;a href=&quot;https://www.veeva.com/eu/media/veeva-adds-generative-ai-tool-for-pharma-reps-as-it-rolls-out-new-software-platform/&quot;&gt;Veeva&lt;/a&gt;, &lt;a href=&quot;https://monday.com/p/press-release/monday-com-unveils-plans-to-incorporate-transformative-ai-capabilities-in-2023/&quot;&gt;Monday.com&lt;/a&gt;, and many others.&lt;/p&gt;

&lt;p&gt;Suspiciously, before November 2022, not one of these companies even mentioned Generative AI as a feature or area of interest/investment.&lt;/p&gt;

&lt;p&gt;In the context of enterprise business, there are two notable exceptions, specifically &lt;a href=&quot;https://www.microsoft.com/&quot;&gt;Microsoft&lt;/a&gt; and &lt;a href=&quot;https://about.google/&quot;&gt;Google&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Microsoft, thanks to its deep partnership with &lt;a href=&quot;https://openai.com/&quot;&gt;OpenAI&lt;/a&gt;, has launched &lt;a href=&quot;https://www.bing.com/?/ai=&quot;&gt;Bing AI&lt;/a&gt; and a series of Copilot products, with the flagship being &lt;a href=&quot;https://blogs.microsoft.com/blog/2023/03/16/introducing-microsoft-365-copilot-your-copilot-for-work/&quot;&gt;Microsoft 365 Copilot&lt;/a&gt;, which integrates with Word, PowerPoint, Excel, Outlook, Teams, etc.&lt;/p&gt;

&lt;p&gt;Google has its in-house developed Generative AI models, accessed via &lt;a href=&quot;https://bard.google.com/chat&quot;&gt;Bard&lt;/a&gt; and &lt;a href=&quot;https://workspace.google.com/blog/product-announcements/duet-ai&quot;&gt;Duet AI&lt;/a&gt;, which is the equivalent to Microsoft 365 Copilot, integrated with &lt;a href=&quot;https://workspace.google.com/&quot;&gt;Google Workspace&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Microsoft 365 Copilot and Google Duet AI are both premium add-ons (not included as part of existing licensing), conincidently, both with a list price of $30 per user, per month.&lt;/p&gt;

&lt;p&gt;It is unclear how much these services cost to operate, but at this price point, integrated Generative AI features are a serious investment for any enterprise business. For example, enabling Microsoft 365 Copilot or Google Duet AI across an enterprise business with 15,000 users would cost an additional $450,000 per month ($5.4M per year).&lt;/p&gt;

&lt;p&gt;If we assume other technology companies (e.g., Salesforce.com, ServiceNow, Workday, SAP) also plan to monetize their Generative AI features, the combined cost could be astronomical, destroying any return on investment, ultimately making it unaffordable for even the richest companies on earth.&lt;/p&gt;

&lt;p&gt;As an alternative, in May, my team launched a custom-developed Generative AI Chatbot for business, designed to accelerate productivity by streamlining common tasks.&lt;/p&gt;

&lt;p&gt;I have documented the development process in the following articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;Generative AI - Context&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Our custom-developed Generative AI Chatbot can be compared to ChatGPT, capable of understanding and generating human-like responses to text-based inputs, with specific business features and controls to ensure security, privacy, legal, and compliance.&lt;/p&gt;

&lt;p&gt;It should be noted that it is not embedded or tightly integrated into a specific suite of applications or services (like Microsoft 365 Copilot and Google Duet AI).&lt;/p&gt;

&lt;p&gt;In my opinion, this is both an advantage and disadvantage, as the decoupled architecture allows for multiple models (e.g., GPT-3.5, GPT-4, PaLM2, Llama 2) to be used, with data being easily ingested from multiple sources (no proprietary integrations and/or specific vendor lock-in).&lt;/p&gt;

&lt;p&gt;However, some of the advanced features such as automated actions within applications or services (e.g., Word, PowerPoint, Excel) will be more difficult (maybe impossible) to achieve.&lt;/p&gt;

&lt;p&gt;As of September, our Generative AI Chatbot for business has scaled to ~3000 unique users, with the architecture costing a total of $120 per month to operate. If we assume a linear cost increase, which would be the worst-case scenario, 15,000 users would cost just $600 per month ($7,200 per year).&lt;/p&gt;

&lt;p&gt;That is just $0.04 per user, per month, resulting in a total yearly saving of $5,392,800 when compared to the list price of an integrated Generative AI service such as Microsoft 365 Copilot or Google Duet AI.&lt;/p&gt;

&lt;p&gt;At this early stage, it is impossible to know if an integrated Generative AI service offers enough unique value over a custom-developed Generative AI Chatbot, to cover the additional $5M per year price point. What is clear, having multiple integrated Generative AI services is not feasible (at least today, at the current market pricing).&lt;/p&gt;

&lt;p&gt;Therefore, we have chosen to proceed with a strategy that selects one integrated Generative AI service targeting specific users (those where the value is clear), supported by a low-cost, but highly flexible custom-developed Generative AI Chatbot for everyone else.&lt;/p&gt;

&lt;p&gt;The document below highlights this positioning, including the differences between an integrated Generative AI service and a custom-developed Generative AI Chatbot.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaipositioning01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaipositioning01.jpg&quot; alt=&quot;Generative AI Positioning&quot; title=&quot;Generative AI Positioning&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As noted in the document, our selection for an integrated Generative AI service is Microsoft 365 Copilot, as we are a large Microsoft partner, consuming their core productivity, collaboration, data and information security capabilities.&lt;/p&gt;

&lt;p&gt;As previously stated, Microsoft is also a leader in this space with the ability to influence the market dynamics, opening the door to third-party integrations, etc. For example, an ability to access data across the &lt;a href=&quot;https://learn.microsoft.com/graph/overview&quot;&gt;Microsoft Graph&lt;/a&gt; or via &lt;a href=&quot;https://www.microsoft.com/en-us/microsoft-365/blog/2023/05/23/empowering-every-developer-with-plugins-for-microsoft-365-copilot/&quot;&gt;plugins&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We believe this strategy offers the best of both worlds, securely embracing and enabling Generative AI across the business to unlock new insights and productivity acceleration, whilst managing cost, ensuring the implementation is righ-sized as we scale.&lt;/p&gt;
</description>
        <pubDate>Sat, 23 Sep 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/09/23/Integrated-Generative-AI/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/09/23/Integrated-Generative-AI/</guid>
      </item>
    
      <item>
        <title>CIO 100 Awards UK</title>
        <description>&lt;p&gt;Yesterday, I attended the &lt;a href=&quot;https://www.idgevents.com/event/aa06f018-f65b-4e50-8c57-289b6b81ff6b/summary&quot;&gt;CIO 100 Awards UK 2023&lt;/a&gt;, which aims to &lt;em&gt;“recognise the best and brightest technology leaders in the UK”&lt;/em&gt;.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/shKbfLgCbes?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;a href=&quot;https://www.cio.com/&quot;&gt;CIO.com&lt;/a&gt; is a well-established publication, that attracts the highest concentration of enterprise business technology executives, offering unparalleled peer insights and expertise on business strategy, innovation, and leadership.&lt;/p&gt;

&lt;p&gt;The award ceremony took place at the &lt;a href=&quot;https://www.leonardo-hotels.com/london/leonardo-royal-hotel-london-st-pauls&quot;&gt;Leonardo Royal Hotel London St Paul’s&lt;/a&gt;, with &lt;a href=&quot;https://en.wikipedia.org/wiki/Gaby_Roslin&quot;&gt;Gaby Roslin&lt;/a&gt; as the host and corporate sponsorship from &lt;a href=&quot;https://www.cisco.com/&quot;&gt;Cisco&lt;/a&gt;, &lt;a href=&quot;https://www.slack.com/&quot;&gt;Slack&lt;/a&gt;, &lt;a href=&quot;https://www.redhat.com/&quot;&gt;Red Hat&lt;/a&gt;, and others.&lt;/p&gt;

&lt;p&gt;With 100 technology leaders in attendance, it was great to connect with peers, sharing success stories and learnings.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/cio100awardsuk01.jpg&quot; alt=&quot;CIO 100 Awards UK 2023&quot; title=&quot;CIO 100 Awards UK 2023&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I was honoured to be nominated and to receive an award, &lt;a href=&quot;/tag/lifeinwork/&quot;&gt;representing my amazing team and our incredible accomplishments over the past year&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/cio100awardsuk02.jpg&quot; alt=&quot;CIO 100 Awards UK 2023&quot; title=&quot;CIO 100 Awards UK 2023&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.idgevents.com/event/aa06f018-f65b-4e50-8c57-289b6b81ff6b/websitePage:1b232532-b9c8-4dbd-9bb6-703b9e0ce9c7&quot;&gt;Congratulations to all the winners&lt;/a&gt;. Thanks for a fun evening, the nomination and the award!&lt;/p&gt;
</description>
        <pubDate>Fri, 22 Sep 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/09/22/CIO-100-Awards-UK/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/09/22/CIO-100-Awards-UK/</guid>
      </item>
    
      <item>
        <title>Purpose and Fulfilment</title>
        <description>&lt;p&gt;I have maintained a personal blog (&lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt;) for approximately fifteen years.&lt;/p&gt;

&lt;p&gt;Although publicly accessible, LifeinTECH is really for me. I find writing strengthens my memory and understanding, whilst serving as a location for personal reflection, allowing me to structure my thoughts.&lt;/p&gt;

&lt;p&gt;This is evident when reviewing the 360+ blog posts, with the themes tracking my career from engineer to &lt;a href=&quot;/2022/05/01/cto-vs-ciso/&quot;&gt;Chief Technology Office (CTO) and Chief Information Security Officer (CISO)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;During this time I have written a few articles that specifically cover my career journey, as well as my rhythms and routines.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/12/career-planning/&quot;&gt;Career Planning&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/01/cto-vs-ciso/&quot;&gt;CTO vs. CISO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/10/19/day-in-the-life/&quot;&gt;Day in the Life&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Recently, I have been reflecting on motivation. Looking to better understand what motivates me and how to ensure that I have the appropriate balance to support longevity.&lt;/p&gt;

&lt;p&gt;When speaking with others, it is not uncommon for people to describe “happiness” as their desired outcome. I understand the sentiment of this statement, but believe it is misguided.&lt;/p&gt;

&lt;p&gt;Personally, I seek satisfaction, which in my opinion is deeper than happiness, it is about &lt;strong&gt;purpose and fulfilment&lt;/strong&gt;. For example, eating an ice cream can make me happy. However, achieving a hard-fought goal unlocks satisfaction.&lt;/p&gt;

&lt;p&gt;Therefore, fully satisfying my potential, both personal and work, is ultimately how I measure my self-worth.&lt;/p&gt;

&lt;p&gt;This leads me to a short list of motivators (the things that give me energy) and demotivators (things that take my energy), with the goal of better understanding and managing my emotional intelligence, hopefully setting myself up for success in daily life.&lt;/p&gt;

&lt;h4 id=&quot;motivators&quot;&gt;Motivators:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Opportunities:&lt;/strong&gt; Complex, high-impact situations, where I have accountability and autonomy to influence.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Action:&lt;/strong&gt; Situations where meaningful progress can be incrementally measured.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Learning:&lt;/strong&gt; Continuous self-improvement, covering academic, non-academic (emotional, creative, and metacognitive) and physical.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Coaching:&lt;/strong&gt; Supporting the growth of others, both personal and career.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;demotivators&quot;&gt;Demotivators:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Inefficiency:&lt;/strong&gt; Bureaucratic thinking that delays action without an objective reason.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Negativity:&lt;/strong&gt; Incessant complaining without action or when related to an uncontrollable/trivial situation.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Commitment:&lt;/strong&gt; Failing to meet achievable deadlines and/or expectations.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Illogical:&lt;/strong&gt; Decisions that defy logic or reasoning, contradicting empirical evidence without supporting context.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, I aim to prioritise the areas/traits that motivate me, whilst leading by example through my actions and behaviours.&lt;/p&gt;

&lt;p&gt;It is not possible to completely avoid the demotivators. However, if I find myself in a situation where I or others are exhibiting these traits, I attempt to influence/shape the situation to a different outcome. With two small children, I have plenty of opportunities to practice these techniques.&lt;/p&gt;

&lt;p&gt;In conclusion, if I were to summarise what motivates me, I would I would state:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“I do not seek happiness; I seek purpose and fulfilment. Accomplished through hard-fought goals by setting high standards, practising temperance, and embracing discomfort.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This philosophy certainly takes inspiration from Stoic virtues and the state/concept of eudaimonia. I recognise this type of self-reflection can be perceived as pretentious and I caution against “over-thinking”, which can (in my experience) lead to some of the demotivating traits.&lt;/p&gt;

&lt;p&gt;However, some metacognitive analysis can be valuable, helping to understand the reasons behind certain thoughts/emotions, hopefully leading to pragmatic steps that enable continuous improvement.&lt;/p&gt;
</description>
        <pubDate>Sun, 17 Sep 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/09/17/Purpose-and-Fulfilment/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/09/17/Purpose-and-Fulfilment/</guid>
      </item>
    
      <item>
        <title>My Setup (Q3 2023)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Hardware specification updated to include the &lt;a href=&quot;/2023/10/04/Samsung-G95NC/&quot;&gt;Samsung G95NC&lt;/a&gt;, Apple MacBook Pro M3 Max, Asus Zenbook S 16 and Fractal Design Refine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;p&gt;I switch between three devices (one desktop and two laptops), which are primarily used for productivity, collaboration, software development, photo editing, video editing, virtual labs, gaming and game development.&lt;/p&gt;

&lt;p&gt;My daily driver is a custom-built desktop PC. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X570 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 3950X 3.5GHz Base / 4.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance LPX DDR4 PC4-28800C18 3600MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 980 Pro M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e 3.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 3090 FE 24GB GDDR6X&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Fractal Torrent Compact&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;AMD Ryzen 3950X&lt;/a&gt;, &lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;Samsung 980 Pro&lt;/a&gt; and &lt;a href=&quot;/2021/02/08/GeForce-RTX-3090/&quot;&gt;Nvidia GeForce RTX 3090&lt;/a&gt; are several years old, but still considered premium components, delivering high-performance across a range of workloads (e.g., multi-threading, &lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;ray-tracing gaming&lt;/a&gt;, machine learning, video editing, etc.)&lt;/p&gt;

&lt;p&gt;When remote or travelling, my daily driver is an Apple MacBook Pro 16-inch (OCT-2023). This laptop is also used to run Apple-specific software, such as &lt;a href=&quot;https://developer.apple.com/xcode/&quot;&gt;Xcode&lt;/a&gt; and &lt;a href=&quot;https://www.apple.com/final-cut-pro/&quot;&gt;Final Cut Pro&lt;/a&gt;, as well as software that requires significant memory (local Large Language Models).&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple MacBook Pro 16-inch (OCT-2023)&lt;/li&gt;
  &lt;li&gt;Apple M3 Max (16-core - 12 Performance / 4 Efficiency)&lt;/li&gt;
  &lt;li&gt;40-core GPU&lt;/li&gt;
  &lt;li&gt;16-core Neural Engine&lt;/li&gt;
  &lt;li&gt;128GB Unified Memory (400GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;1TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;3x Thunderbolt 4, HDMI 2.1, 3.5mm Headphone, SDXC Card Reader, MagSafe 3&lt;/li&gt;
  &lt;li&gt;16.2-inch Liquid Retina XDR Display (3456x2234 @ 120Hz, 1600nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, I use an Asus Zenbook S 16 running Ubuntu for Linux-specific workloads (e.g., Linux Containers, Ethical Hacking, etc.)&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus Zenbook S 16&lt;/li&gt;
  &lt;li&gt;AMD Ryzen AI 9 HX 370 Processor (12C/24T, 5.1GHz Max)&lt;/li&gt;
  &lt;li&gt;32GB LPDDR5X RAM&lt;/li&gt;
  &lt;li&gt;1TB NVMe M.2 SSD&lt;/li&gt;
  &lt;li&gt;16-inch WQXGA+ OLED Touch Display (2880x1800 @ 120Hz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At home, the desktop PC and Apple Mac Studio connect to a 57-inch Super Ultra-Wide monitor, specifically the &lt;a href=&quot;https://www.samsung.com/uk/monitors/gaming/odyssey-neo-g9-g95nc-57-inch-240hz-curved-dual-uhd-ls57cg952nuxxu/&quot;&gt;Samsung G95NC Odyssey Neo G9 240Hz Dual UHD Monitor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The full specification of this massive monitor can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Model:&lt;/strong&gt; Samsung G95NC Odyssey Neo G9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Size:&lt;/strong&gt; 57-inch&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Type:&lt;/strong&gt; VA (Quantum Mini LED - 2,392 Zones)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Curvature:&lt;/strong&gt; 1000R&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aspect Ratio:&lt;/strong&gt; 32:9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 7680x2160&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 240Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Variable Refresh Rate:&lt;/strong&gt; AMD FreeSync Premium Pro&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; 1ms (GTG)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;High Dynamic Range:&lt;/strong&gt; HDR10+ Gaming, VESA DisplayHDR 1000&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 420cd/㎡ (Typical), 1000cd/m2 (Peak)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Interface:&lt;/strong&gt; 3x HDMI 2.1 (HDCP 2.2), 1x DisplayPort 2.1 (HDCP 2.2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is kept fairly minimal, thanks to the exceptional &lt;a href=&quot;/2022/10/17/New-Home-Office/&quot;&gt;Secret Lab Magnus Pro XL&lt;/a&gt; sit-to-stand desk. The monitor is mounted on an &lt;a href=&quot;https://www.ergotron.com/en-gb/products/product-details/45-647&quot;&gt;Ergotron HX with HD Pivot&lt;/a&gt;, which is a heavy duty monitor arm that can (just about) support the 15.4 kg weight of the Samsung G95NC Odyssey Neo G9.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup32.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, for peripherals, I primarily use the &lt;a href=&quot;https://www.logitech.com/en-gb/products/keyboards/mx-mechanical.920-010779.html&quot;&gt;Logitech MX Mechanical Mini&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/products/mice/mx-master-3s.910-006559.html&quot;&gt;Logitech MX Master 3S&lt;/a&gt; and &lt;a href=&quot;https://www.insta360.com/product/insta360-link&quot;&gt;Insta360 Link&lt;/a&gt;. The keyboard and mouse were selected as they include “easy switch”, which makes it simple to toggle between multiple devices.&lt;/p&gt;

&lt;p&gt;The photo also highlights my microphone setup, which is a &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeti/&quot;&gt;Blue Yeti&lt;/a&gt; connected to the &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeticaster/&quot;&gt;Blue Yeticaster&lt;/a&gt; that includes the Compass Boom Arm and Radius III Custom Shockmount. The microphone is primarily used for video conferencing, screencasting, webinars and podcasts.&lt;/p&gt;

&lt;p&gt;Additional peripherals include speakers (&lt;a href=&quot;https://audioengineusa.com/shop/wirelessspeakers/a1-wireless-speaker-system/&quot;&gt;AudioEngine A1&lt;/a&gt;), headphones (&lt;a href=&quot;https://www.razer.com/gb-en/gaming-headsets/Razer-BlackShark-V2/RZ04-03230100-R3M1&quot;&gt;Razer BlackShark V2&lt;/a&gt; and &lt;a href=&quot;https://www.apple.com/airpods-max/&quot;&gt;Apple AirPods Max&lt;/a&gt;), controller (&lt;a href=&quot;https://www.gulikit.com/productinfo/1130420.html&quot;&gt;GuliKit KK3 MAX Controller&lt;/a&gt;), steering wheel (&lt;a href=&quot;http://gaming.logitech.com/en-gb/product/g29-driving-force&quot;&gt;Logitech G29&lt;/a&gt;), virtual reality headset (&lt;a href=&quot;https://www.apple.com/apple-vision-pro/&quot;&gt;Apple Vision Pro&lt;/a&gt; and &lt;a href=&quot;https://www.meta.com/gb/quest/quest-3/&quot;&gt;Meta Quest 3&lt;/a&gt;) and printer (&lt;a href=&quot;https://www.epson.co.uk/en_GB/products/printers/inkjet/consumer/ecotank-et-2810/p/30169&quot;&gt;Epson EcoTank ET-2810&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup33.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As highlighted in the photo below, my desktop PC is mounted to the desk using the &lt;a href=&quot;https://secretlab.co.uk/products/premium-pc-mount&quot;&gt;Secret Lab Premium PC Mount&lt;/a&gt;, with the PC case door exposed providing easy access to the components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup34.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Accompanying the desktop PC and monitor is an &lt;a href=&quot;/2021/11/18/Prusa-Research/&quot;&gt;Original Prusa MINI+&lt;/a&gt;, which is an open-source 3D printer.&lt;/p&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;https://www.fractal-design.com/products/chairs/refine/&quot;&gt;Fractal Design Refine&lt;/a&gt; chair, which balances comfort and personalised ergonomics.&lt;/p&gt;

&lt;h3 id=&quot;home-server&quot;&gt;Home Server&lt;/h3&gt;

&lt;p&gt;Alongside my desktops and laptops, I have a small home server, which is connected to my Samsung S95B OLED TV (65-inch). The server manages local and cloud backups, server-side workloads, media streaming, and collaboration (video conferencing).&lt;/p&gt;

&lt;p&gt;I selected an Apple Mac mini (NOV-2018) for the server, thanks to its excellent power efficiency (150W), high-performance I/O and small form factor. The Mac mini also offers flexible video conferencing capabilities covering Apple FaceTime, Zoom, Microsoft Teams, Google Meet, Cisco WebEx, WhatsApp Video, etc.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple Mac mini (NOV-2018)&lt;/li&gt;
  &lt;li&gt;Intel Core i5-8500B 3.0GHz Base / 4.1GHz Boost (6C/6T)&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance Series 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;256GB PCI-e SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;2x 500GB Samsung Portable T5 SSD (USB 3.1 Gen2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 1256GB of local SSD storage is split across multiple drives for resilience, with automated backups being completed by &lt;a href=&quot;https://bombich.com/&quot;&gt;Carbon Copy Cloner&lt;/a&gt; and Cloud Storage via &lt;a href=&quot;https://www.microsoft.com/microsoft-365/onedrive/online-cloud-storage&quot;&gt;Microsoft OneDrive&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The only peripheral connected directly to the Mac mini is a &lt;a href=&quot;https://www.logitech.com/products/webcams/brio-4k-hdr-webcam.960-001106.html&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt; webcam, which delivers phenomenal video quality (4K/30fps - HDR), a wide viewing angle (90-degree dFoV) and a surprisingly good stereo, dual omnidirectional integrated microphone.&lt;/p&gt;

&lt;p&gt;To support my minimal (hidden-wire) entertainment setup, all of my AV equipment (&lt;a href=&quot;https://www.sony.co.uk/electronics/support/audio-components-receivers-amplifiers/str-dn1050/specifications&quot;&gt;Sony STR-DN1050 AV Receiver&lt;/a&gt;, &lt;a href=&quot;https://www.playstation.com/ps5/&quot;&gt;Sony PlayStation 5&lt;/a&gt;, &lt;a href=&quot;https://support.myharmony.com/hub&quot;&gt;Logitech Harmony Hub&lt;/a&gt;) is located in a cupboard under the stairs, with the required cables fed through the wall to the TV. This can be a little inconvenient when looking to insert/change physical media, but thankfully the cupboard offers plenty of space and ventilation.&lt;/p&gt;
</description>
        <pubDate>Fri, 15 Sep 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/09/15/My-Setup-Q3-2023/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/09/15/My-Setup-Q3-2023/</guid>
      </item>
    
      <item>
        <title>Framework Business Pilot</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2023/06/29/Framework-for-Business/&quot;&gt;As highlighted in my previous article&lt;/a&gt;, we recently launched a pilot focused on sustainable computing, partnered with &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At my company, we prioritise our “&lt;a href=&quot;https://www.myelanco.co.uk/about/healthy-purpose&quot;&gt;Healthy Purpose&lt;/a&gt;”, which is the platform through which we engage with our employees, communities and industry leaders across more than 90 countries, to provide global, sustainable solutions to make an impact.&lt;/p&gt;

&lt;p&gt;With over 20,000 end-user devices (e.g., laptops, desktops, smartphones, tablets) deployed globally, there is a real opportunity to reduce e-waste, whilst also driving cost savings by re-thinking the processes used to support hardware lifecycle management, upgrades and repairs.&lt;/p&gt;

&lt;p&gt;The pilot includes 40 laptops (UK and US), initially prioritising our engineering and scientist communities. The specifications of the laptops being tested can be found below, which is comparable to our current standard provided by &lt;a href=&quot;https://www.dell.com/&quot;&gt;Dell&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://frame.work/gb/en/products/laptop-diy-13-gen-intel&quot;&gt;Framework Laptop 13&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Intel i5-1340P 4.6GHz Boost (12C/16T)&lt;/li&gt;
  &lt;li&gt;16GB DDR4-3200 RAM&lt;/li&gt;
  &lt;li&gt;Western Digital Black SN770 NVMe M.2 500GB (4GB/s Read) SSD&lt;/li&gt;
  &lt;li&gt;13.5-inch 3:2 LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB-C, 1x USB-A, 1x HDMI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://frame.work/gb/en/products/laptop-diy-13-gen-amd&quot;&gt;Framework Laptop 13&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;AMD Ryzen 5 7640U 4.9GHz Boost (6C/12T)&lt;/li&gt;
  &lt;li&gt;16GB DDR5-5600 RAM&lt;/li&gt;
  &lt;li&gt;Western Digital Black SN770 NVMe M.2 500GB (7.3GB/s Read) SSD&lt;/li&gt;
  &lt;li&gt;13.5-inch 3:2 LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB-C, 1x USB-A, 1x HDMI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://frame.work/gb/en/products/laptop16-diy-amd-7040&quot;&gt;Framework Laptop 16&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;AMD Ryzen 9 7940HS 5.2GHz Boost (8C/16T)&lt;/li&gt;
  &lt;li&gt;32GB DDR5-5600 RAM&lt;/li&gt;
  &lt;li&gt;Western Digital Black SN850X NVMe M.2 1TB (7.3GB/s Read) SSD&lt;/li&gt;
  &lt;li&gt;AMD Radeon RX 7700S 8GB GDDR6&lt;/li&gt;
  &lt;li&gt;16-inch 16:10 LCD Display (2560x1600 @ 165Hz - VRR and FreeSync)&lt;/li&gt;
  &lt;li&gt;3x USB-C, 1x USB-A, 1x HDMI, 1x Audio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although we will be collecting user feedback regarding the suitability of each Framework laptop, the primary goal is to validate our hypothesis regarding sustainability and cost efficiencies.&lt;/p&gt;

&lt;p&gt;Specifically, we estimate that 8,000 Dell laptops would produce 23,200kg (23.2 Tons) of e-waste. We believe this impact could be reduced to 15,465kg (15.47 Tons) of e-waste when using Framework, which is a decrease of 33% per hardware lifecycle. This would be achieved by extending the life of the laptops by reusing components vs. a full laptop replacement.&lt;/p&gt;

&lt;p&gt;The same logic should apply to the return on investment, with 8,000 Dell laptops costing approximately $10,000,000. With Framework, through component servicing and upgrades, we believe the 10-year total cost of ownership could be significantly lower, recognising that this time horizon would ordinarily include multiple hardware lifecycle events.&lt;/p&gt;

&lt;p&gt;In addition, we see an average of 500 laptop failures per year, resulting in an additional $650,000 investment. The majority of these failures are serviceable components (e.g., keyboards, displays, batteries). Therefore, Framework could reduce our annual repair cost by up to 86%.&lt;/p&gt;

&lt;p&gt;With this context, the pilot covers the following areas, looking to ensure Framework (and sustainable computing concepts) are viable for an enterprise business, specifically the processes, capabilities and architecture.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Enrolment (Microsoft Autopilot, Intune)&lt;/li&gt;
  &lt;li&gt;Supportability (Repair, Maintenance)&lt;/li&gt;
  &lt;li&gt;Lifecycle Management (Upgrades, Recycling)&lt;/li&gt;
  &lt;li&gt;Global Distribution (Value Added Reseller Support)&lt;/li&gt;
  &lt;li&gt;Security (Hardware, Software Controls)&lt;/li&gt;
  &lt;li&gt;User Experience (Performance, Usability, Durability)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The processes are a critical area, as today our support and lifecycle management processes are designed to replace the entire laptop, which is very simple (low overhead), but inefficient from a sustainability standpoint. With Framework, we hope to extend the life of the laptop by reusing components. Therefore, the processes will need to be evolved, whilst avoiding user impact and/or incurring additional cost/complexity (which would erode the return on investment).&lt;/p&gt;

&lt;p&gt;Alongside the processes, we must also consider the impact on our architecture. Our laptop user base is 95% Microsoft Windows (Microsoft Windows 10/11), leveraging &lt;a href=&quot;https://learn.microsoft.com/autopilot/windows-autopilot&quot;&gt;Microsoft Autopilot&lt;/a&gt; for enrollment. Therefore, a critical aspect of our testing is to understand the impact of hardware changes, recognising that Microsoft Autopilot is reliant on a hardware hash (uniquely generated from the specific hardware).&lt;/p&gt;

&lt;p&gt;The first phase of the pilot will likely run through to December, at which point we will decide the next step. However, we have already started discussions regarding the potential for scale.&lt;/p&gt;

&lt;p&gt;Overall, I remain incredibly excited by the work we are doing with Framework and am eager to see how the pilot evolves.&lt;/p&gt;

&lt;p&gt;A huge thanks to &lt;a href=&quot;https://www.linkedin.com/in/nrpframework/&quot;&gt;Nirav Patel&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/chris-lombardozzi/&quot;&gt;Chris Lombardozzi&lt;/a&gt; and &lt;a href=&quot;https://frame.work/about&quot;&gt;the team&lt;/a&gt; at Framework for the continued partnership!&lt;/p&gt;
</description>
        <pubDate>Tue, 12 Sep 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/09/12/Framework-Business-Pilot/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/09/12/Framework-Business-Pilot/</guid>
      </item>
    
      <item>
        <title>Generative AI - Context</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - I have published two new articles, covering our latest &lt;a href=&quot;2023/11/02/Generative-AI-Enhancements/&quot;&gt;enhacements&lt;/a&gt; and an &lt;a href=&quot;2023/12/15/Generative-AI-EoY/&quot;&gt;end of year summary&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In May, my team launched a Generative AI Chatbot for business, designed to accelerate productivity by streamlining common tasks.&lt;/p&gt;

&lt;p&gt;I have documented the development process in the following articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;Generative AI - Embeddings&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;In the last article&lt;/a&gt;, I outlined our plan and architecture to ingest business data through a technique known as “embeddings”, which groups similar information using floating point numbers.&lt;/p&gt;

&lt;p&gt;The goal was to unlock additional value by enabling the Generative AI Chatbot to respond to prompts with specific business context.&lt;/p&gt;

&lt;p&gt;For example, Enterprise businesses have massive datasets (structured and unstructured) that can be a challenge to discover and/or consume, impacting speed to value. We hope that by exposing this data via natural language (Generative AI Chatbot) we can mitigate these pain points, whilst also unlocking additional insights from previously obscured data.&lt;/p&gt;

&lt;p&gt;Over the past month, we have been testing this concept across a series of end-user pilots, continuously evaluating and tuning the architecture and data. The desired result is to consistently deliver accurate responses, referenced from business data, avoiding hallucinations.&lt;/p&gt;

&lt;p&gt;The screenshot below highlights the business context architecture in action.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaicontext01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaicontext01.jpg&quot; alt=&quot;Generative AI - Context&quot; title=&quot;Generative AI - Context&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this example, we have ingested our Information Security policy directives and standards (20+ documents and 100+ pages).&lt;/p&gt;

&lt;p&gt;The Generative AI Chatbot is prompted with a specific question “What is our password policy?”.&lt;/p&gt;

&lt;p&gt;The answer provided is pulled directly from an unstructured document, including the source information to allow for user verification (if required).&lt;/p&gt;

&lt;p&gt;The right column shown in the screenshot is for testing purposes only, providing additional detail regarding the specific data chunks and embeddings being referenced. This supports the troubleshooting process, allowing users to better understand why a specific response is being provided.&lt;/p&gt;

&lt;p&gt;Overall, testing has been very successful. The architecture tuning process has been surprisingly straightforward, focused on ensuring that the ingested data has been chunked and grouped appropriately, covering issues that can occur from overlapping context windows, etc.&lt;/p&gt;

&lt;p&gt;We also “industrialised” the architecture ready for scale, including additional features to enforce/maintain information protection, etc. For example, you do not want restricted/sensitive data to be surfaced via the Generative AI Chatbot by accident.&lt;/p&gt;

&lt;p&gt;The bigger challenge has been the data itself, specifically when working with unstructured data (e.g., knowledge articles, policies, procedures, processes)&lt;/p&gt;

&lt;p&gt;We have discovered that many of our documents are technically correct, but lack the appropriate context, making them difficult to consume (by a human or a machine). We have also identified a few instances where documents contain incorrect (out of date) information and/or conflict with information found in another document.&lt;/p&gt;

&lt;p&gt;When working with thousands of documents, written over many years by different authors, these data issues are to be expected.&lt;/p&gt;

&lt;p&gt;When reviewed in isolation by a human, the impact of an individual issue is likely very small. However, when combined, without any ability to apply additional context, the response from a Generative AI Chatbot can be misleading (inaccurate, confusing, conflicting).&lt;/p&gt;

&lt;p&gt;As a result, the majority of our time has been spent working with the data owners, supported by some new guidelines and templates to ensure the data is optimised for consumption.&lt;/p&gt;

&lt;p&gt;Regardless of our future with Generative AI, this process has been useful in identifying and improving our source data.&lt;/p&gt;

&lt;p&gt;As we conclude the pilots, we plan to proceed with a limited production launch, targeting a specific business area. This approach will allow us to continue to learn as we scale, balancing the effort/risk/reward.&lt;/p&gt;

&lt;p&gt;In addition to the business context, we have also continued to evolve the core production capabilities. The screenshot below highlights the latest web interface, incorporating a wide range of user experience improvements.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaicontext02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaicontext02.jpg&quot; alt=&quot;Generative AI - Context&quot; title=&quot;Generative AI - Context&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have also added some specific new features. For example:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Upload Files:&lt;/strong&gt; Directly upload unstructured documents to be used as part of a specific prompt. This removes the need to copy/paste bodies of text.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Model Switcher:&lt;/strong&gt; Our architecture is decoupled, allowing for multiple models to be used. At this time we have enabled OpenAI GPT-3.5 (via Azure OpenAI) and Google PaLM2 in production, with OpenAI GPT-4 and Meta Llama 2 in non-production. The user can switch models instantly using the model switcher, whilst maintaining all context and features.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Personas:&lt;/strong&gt; New pre-primed personas to support specific business tasks. These personas will also be used to surface business context, including individual user access controls, meaning personas can be restricted and secured for specific user groups.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Dashboard:&lt;/strong&gt; Usage dashboard highlighting the holistic statistics and estimated return on investment.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As highlighted by our dashboard (screenshot below), adoption continues to grow, outpacing our expectations.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaicontext03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaicontext03.jpg&quot; alt=&quot;Generative AI - Context&quot; title=&quot;Generative AI - Context&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since May, we have seen 2,654 unique users leverage the Generative AI Chatbot, which is approximately 38% of the target audience. On average, this includes 600+ daily interactions.&lt;/p&gt;

&lt;p&gt;Considering this growth has been organic (no formal organisational change management intervention), combined with the minimal investment to build/run(approximately $120pm total), we are very pleased with the progress and therefore excited to see what comes next!&lt;/p&gt;
</description>
        <pubDate>Wed, 30 Aug 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/08/30/Generative-AI-Context/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/08/30/Generative-AI-Context/</guid>
      </item>
    
      <item>
        <title>Generative AI - Embeddings</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - I have published three new articles, covering &lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;our progress regarding the enablement of context injection (embeddings) at scale&lt;/a&gt;, an overview of our latest &lt;a href=&quot;2023/11/02/Generative-AI-Enhancements/&quot;&gt;enhacements&lt;/a&gt; and an &lt;a href=&quot;2023/12/15/Generative-AI-EoY/&quot;&gt;end of year summary&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Over the past couple of months, my team has been developing a Generative AI Chatbot for business, designed to accelerate productivity by streamlining common tasks.&lt;/p&gt;

&lt;p&gt;The following articles document the development process, including the approach, features and architecture.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;OpenAI ChatGPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;AI - Rise of the Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;Generative AI for Business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;Generative AI for Business - Update&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In mid-June, following an early adopter phase, we released the Generative AI Chatbot to all employees and contractors. We did not formally communicate the release, instead relying upon a one-hour virtual “Tech Talk” that was attended by 480 participants.&lt;/p&gt;

&lt;p&gt;In the first few weeks, we have seen impressive adoption, with 1134 unique users, resulting in 9022 logins.&lt;/p&gt;

&lt;p&gt;As evidence of the engagement, our “Custom Persona” feature has been used to create 1108 specific Generative AI Chatbots, primed with business context to better support specific individual/team outcomes (e.g., R&amp;amp;D, Manufacturing, Commercial, Communications, Legal, Engineering, etc.)&lt;/p&gt;

&lt;p&gt;It should be noted, our architecture is multi-tenant, meaning we have a single instance of the service, serving all users/teams, including all custom personas.&lt;/p&gt;

&lt;p&gt;The total viable audience is 14,000 users (number of corporate identities). However, when considering the applicable roles, the target audience reduces to approximately 7,000 users.&lt;/p&gt;

&lt;p&gt;Therefore, we have seen organic growth to 16.2% adoption, achieved with no formal organisational change management.&lt;/p&gt;

&lt;p&gt;To understand the business value, let’s assume each login saved the user a minimum of 10 minutes. That is a total of 1504 hours (63 days) of productivity returned to the business. At an assumed hourly wage of $48, the productivity return equates to $72,192.&lt;/p&gt;

&lt;p&gt;The production service (e.g., web app, middleware, model, data) costs just $105.74 per month to operate, delivering an impressive return on investment.&lt;/p&gt;

&lt;p&gt;This early success has energised the team to unlock the next phase of value, achieved via context injection at scale.&lt;/p&gt;

&lt;h3 id=&quot;context-injection-at-scale-embeddings&quot;&gt;Context Injection at Scale (Embeddings)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;In my previous article&lt;/a&gt;, I outlined our strategy to use traditional data tagging, search and prompt stuffing to add business context.&lt;/p&gt;

&lt;p&gt;Unfortunately, this strategy has proven less effective than we had originally hoped, with inconsistent responses that (so far) have failed to meet our quality assurance expectations. For example, unrelated and/or irrelevant information is confidently presented to the user (hallucination).&lt;/p&gt;

&lt;p&gt;As a result, we are exploring a more complex architecture, leveraging a technique known as “embeddings”, which groups similar information using floating point numbers. The embeddings can then be used to search for relevant information, injecting the response into the prompt.&lt;/p&gt;

&lt;p&gt;The “marchitecture” diagram below highlights the “embeddings” design we have implemented.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaiembeddings01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaiembeddings01.jpg&quot; alt=&quot;Generative AI - Embeddings&quot; title=&quot;Generative AI - Embeddings&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As highlighted by the diagram, we have implemented a four-phase architecture to inject context, specifically:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Load:&lt;/strong&gt; Ingest structured and/or unstructured data from source systems.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Transform:&lt;/strong&gt; Data quality is important. Therefore, depending on the data type, it must be deduplicated, simplified and/or chunked. For example, splitting large multi-page documents into individual pages. We are also experimenting with converting documents to &lt;a href=&quot;https://en.wikipedia.org/wiki/Markdown&quot;&gt;Markdown&lt;/a&gt; or &lt;a href=&quot;https://mdxjs.com/&quot;&gt;MDX&lt;/a&gt;, which can help with formatting, identifying links, code snippets, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Embed:&lt;/strong&gt; Embeddings help ensure relevant information is injected into the prompt. Embeddings take text (from the transform phase), converting it to a vector (list) of floating point numbers. The distance between two vectors calculates their relatedness, essentially grouping similar (relevant) information.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Store:&lt;/strong&gt; The embeddings are stored in a vector database (for example, &lt;a href=&quot;https://github.com/pgvector/pgvector&quot;&gt;pgvector&lt;/a&gt;). This database is searched by taking an input prompt, creating an embedding, and completing a similarity search to find relevant information.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We are currently testing this strategy in non-production against a range of data types, targeting our internal knowledge articles, policies, etc. Although the architecture is higher complexity, our initial results have been positive, delivering more consistent responses and better accuracy.&lt;/p&gt;

&lt;p&gt;I will post another update once our testing has concluded.&lt;/p&gt;
</description>
        <pubDate>Tue, 04 Jul 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/07/04/Generative-AI-Embeddings/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/07/04/Generative-AI-Embeddings/</guid>
      </item>
    
      <item>
        <title>Framework Build</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2023/06/29/Framework-for-Business/&quot;&gt;In my last article&lt;/a&gt;, I shared a few details regarding a partnership with &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt;, exploring how sustainable computing could be scaled within an enterprise business.&lt;/p&gt;

&lt;p&gt;To support this initiative, we launched a production pilot, with the first batch of Framework laptops arriving earlier this week.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkforbusiness02.jpg&quot; alt=&quot;Framework for Business&quot; title=&quot;Framework for Business&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In the spirit of demonstrating how quickly and easily a Framework Laptop can be built, repaired or upgraded, I asked my eight-year-old son to complete the process. The specification of the device he built can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop DIY Edition&lt;/li&gt;
  &lt;li&gt;Intel i7-1370P 5,2GHz (14C/20T)&lt;/li&gt;
  &lt;li&gt;64GB Crucial DDR4 PC4-25600C22 3200MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Western Digital Black SN850X NVMe (7.3GB/s Read)&lt;/li&gt;
  &lt;li&gt;Intel Iris Xe Graphics&lt;/li&gt;
  &lt;li&gt;13.5-inch LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB4 (USB-C), 1x USB 3.2 G2 (USB-A), 1x HDMI 2.0b&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/2022/05/05/framework-laptop/&quot;&gt;I first built a Framework Laptop in May 2022&lt;/a&gt;, specifically a “DIY Edition” Intel 11th Generation.&lt;/p&gt;

&lt;p&gt;Over one year later, I am pleased to see Framework has continued to refine the process, with improvements regarding how the laptop and components are packaged. For example, the “DIY Edition” now comes with the Input Cover Kit and Bezel separately boxed, allowing immediate access to the bottom cover, which includes the mainboard and battery pre-installed.&lt;/p&gt;

&lt;p&gt;The photos below highlight the build process, starting with the memory (Crucial DDR4 RAM), using the “&lt;a href=&quot;https://guides.frame.work/Guide/Memory+Replacement+Guide/94&quot;&gt;Memory Replacement Guide&lt;/a&gt;”. It is worth noting that each component includes a QR Code, linking directly to the specific guide (a very nice touch).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkbuild01.jpg&quot; alt=&quot;Framework Build&quot; title=&quot;Framework Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, the storage (Western Digital Black SN850X NVMe SSD), using the “&lt;a href=&quot;https://guides.frame.work/Guide/Storage+Replacement+Guide/95&quot;&gt;Storage Replacement Guide&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkbuild02.jpg&quot; alt=&quot;Framework Build&quot; title=&quot;Framework Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, the input cover (which includes the keyboard and trackpad), as well as the bottom fasteners. The steps are outlined in the “&lt;a href=&quot;https://guides.frame.work/Guide/Input+Cover+Replacement+Guide/93&quot;&gt;Input Cover Replacement Guide&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkbuild03.jpg&quot; alt=&quot;Framework Build&quot; title=&quot;Framework Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The entire process took my son around 20 minutes, with minimal support from myself. I did however take the opportunity to provide a short lesson on computer hardware, but he was more interested in getting hands-on (I don’t blame him).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkbuild04.jpg&quot; alt=&quot;Framework Build&quot; title=&quot;Framework Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The fact that an eight-year-old can complete the process with minimal guidance is evidence of the customer-centric approach adopted by Framework!&lt;/p&gt;
</description>
        <pubDate>Fri, 30 Jun 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/06/30/Framework-Build/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/06/30/Framework-Build/</guid>
      </item>
    
      <item>
        <title>Framework for Business</title>
        <description>&lt;p&gt;The world produces more than 50 million tons of e-waste per year. On average, that is 6kg per person, per year. This e-waste has a direct impact on the well-being of animals, people and the planet, contributing towards global issues such as climate change.&lt;/p&gt;

&lt;p&gt;If we hope to improve this situation, everyone must take accountability, proactively contributing towards a better, more sustainable future. This includes enterprise businesses, which due to their scale and centralised governance, are well-positioned to lead from the front!&lt;/p&gt;

&lt;p&gt;For example, my company (a relatively small enterprise) owns/manages approximately 20,000 end-user devices, covering laptops, desktops, smartphones, tablets, etc.&lt;/p&gt;

&lt;p&gt;Over the past decade, thanks to companies such as Apple, end-user devices have been trending towards “appliance-like” design and manufacturing, reducing or removing any ability to repair and/or upgrade.&lt;/p&gt;

&lt;p&gt;Therefore, anytime a device is “broken”, the entire device must be replaced. Hopefully, the broken device is recycled appropriately, but the waste (and cost to the business) is still significant.&lt;/p&gt;

&lt;p&gt;Ironically, the device itself is rarely broken beyond repair, usually it is a single component that has failed. In the context of a laptop, the most common issues are related to the display, keyboard, trackpad or battery. Each of these components, with the right design, manufacturing and support processes, could be easily replaced.&lt;/p&gt;

&lt;p&gt;The same logic could be applied to upgrades, with most enterprise businesses having a life cycle management process that occurs on a three to five year cadence. Does every user need a new laptop every three to five years? I suspect the majority of devices are still perfectly viable, assuming “worn” components (e.g., keyboard, trackpad or battery) could be replaced, combined with some software housekeeping (factory reset, etc.)&lt;/p&gt;

&lt;p&gt;Hopefully, the environmental benefits alone are enough to incentivise change. However, I believe there is also a compelling business case. Assume the average cost for each device is $1,300. That is a total of $26M for 20,000 devices, which could easily grow to $50M+ over a decade. Therefore, even if compared against device leasing options, which can flatten the spending curve, the ability to repair and/or upgrade devices could drive dramatic cost savings, improving the return on investment.&lt;/p&gt;

&lt;p&gt;At my company, we prioritise our “&lt;a href=&quot;https://www.myelanco.co.uk/about/healthy-purpose&quot;&gt;Healthy Purpose&lt;/a&gt;”, which is the platform through which we engage with our employees, communities and industry leaders across more than 90 countries, to provide global, sustainable solutions that make an impact.&lt;/p&gt;

&lt;p&gt;As &lt;a href=&quot;/2022/05/01/cto-vs-ciso/&quot;&gt;CTO/CISO&lt;/a&gt;, I look to ensure IT is acting as a thought leader, exploring new ways to minimise our environmental footprint, and prioritising partnerships that unlock innovation to advance our sustainability efforts.&lt;/p&gt;

&lt;p&gt;Over the past year, I have been personally following the work being led by &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt;, a company producing laptops that respect the consumer’s right to repair and upgrade.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/framework-laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/framework-and-fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/06/01/framework-performance/&quot;&gt;Framework Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/07/framework-laptop-update/&quot;&gt;Framework Laptop - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/18/framework-laptop-upgrade/&quot;&gt;Framework Laptop - Upgrade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/19/3d-printed-framework/&quot;&gt;3D Printed Framework&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Late last year, we started working with Framework to formally establish the required capabilities and processes to support enterprise businesses, covering topics such as global distribution, scale, enrolment, supportability, security, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/posts/frameworkcomputer_at-elanco-we-continue-to-explore-new-ways-activity-7085031901832372224-zofe&quot;&gt;&lt;img src=&quot;/images/posts/frameworkforbusiness01.jpg&quot; alt=&quot;Framework for Business&quot; title=&quot;Framework for Business&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Specifically, enterprise businesses have unique requirements regarding how devices are managed. For example, we leverage &lt;a href=&quot;https://learn.microsoft.com/mem/autopilot/windows-autopilot&quot;&gt;Windows AutoPilot&lt;/a&gt;, which offers many advantages when deploying, managing, and retiring Windows devices at scale. However, Windows AutoPilot is dependent on a device &lt;a href=&quot;https://oofhours.com/2022/06/03/breaking-down-the-windows-autopilot-hardware-hash/&quot;&gt;hardware hash&lt;/a&gt;, which can add complexity when replacing individual components (e.g., repairs and upgrades)&lt;/p&gt;

&lt;p&gt;As a result, we have initiated a production pilot (real users, real work), with the first batch of laptops landing in the office yesterday!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkforbusiness02.jpg&quot; alt=&quot;Framework for Business&quot; title=&quot;Framework for Business&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We have initially targeted a specific user persona that we know will require minimal support (e.g., analysts, engineers, etc.) This will allow us to design/test our processes, before wider adoption. As a bit of fun, we also got our early adopters to build their laptops, using the “&lt;a href=&quot;https://frame.work/gb/en/products/laptop-diy-13-gen-intel&quot;&gt;DIY Edition&lt;/a&gt;” and excellent &lt;a href=&quot;https://guides.frame.work/c/Framework_Laptop&quot;&gt;guides&lt;/a&gt; provided by Framework.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkforbusiness03.jpg&quot; alt=&quot;Framework for Business&quot; title=&quot;Framework for Business&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I am incredibly excited by the work we are doing with Framework! I see a tremendous opportunity to contribute towards a better, more sustainable future.&lt;/p&gt;

&lt;p&gt;A huge thanks to &lt;a href=&quot;https://www.linkedin.com/in/nrpframework/&quot;&gt;Nirav Patel&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/chris-lombardozzi/&quot;&gt;Chris Lombardozzi&lt;/a&gt; and &lt;a href=&quot;https://frame.work/about&quot;&gt;the team&lt;/a&gt; at Framework for the continued partnership!&lt;/p&gt;
</description>
        <pubDate>Thu, 29 Jun 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/06/29/Framework-for-Business/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/06/29/Framework-for-Business/</guid>
      </item>
    
      <item>
        <title>Meta Eye Tracking</title>
        <description>&lt;p&gt;Last week, &lt;a href=&quot;/2023/06/05/Apple-Vision-Pro/&quot;&gt;I shared my initial thoughts on the Apple Vision Pro announcement&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I highlighted the use of eye and hand tracking as a revolutionary human interface for Virtual Reality / Augmented Reality, delivering a fast and intuitive way of navigating the operating system and applications.&lt;/p&gt;

&lt;p&gt;This led me to think about the &lt;a href=&quot;/2022/10/25/meta-quest-pro/&quot;&gt;Meta Quest Pro&lt;/a&gt;, which also includes the required hardware for eye and hand tracking.&lt;/p&gt;

&lt;p&gt;Hand tracking is available as part of the Meta operating system and is enabled in some applications. However, up to now, I have only seen the eye tracking capabilities used for foveated rendering (not navigation) to help manage the performance impact of demanding games.&lt;/p&gt;

&lt;p&gt;This feels like a huge miss from Meta, but also a huge opportunity!&lt;/p&gt;

&lt;p&gt;It is also a little surprising that Meta has not chosen to showcase eye tracking more prominently across their first-party software, recognising it is referenced as a unique feature within their &lt;a href=&quot;https://www.meta.com/en-gb/help/quest/articles/getting-started/getting-started-with-quest-pro/eye-tracking/&quot;&gt;documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“If you choose to turn on eye tracking, your headset will analyse images of your eyes to produce a set of numbers that represent estimates of where you’re looking in VR.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Thankfully, I was not alone in this thinking.&lt;/p&gt;

&lt;p&gt;Earlier today, “&lt;a href=&quot;https://www.youtube.com/@ThrillSeekerVR&quot;&gt;ThrillSeeker&lt;/a&gt;” released a proof of concept application, replicating the Apple visionOS user interface using the Meta Quest Pro, with eye and hand tracking enabled. In addition, he released a video (embedded below) highlighting the development process, accomplished in just two days using &lt;a href=&quot;https://unity.com/&quot;&gt;Unity&lt;/a&gt;.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/rjyUuLR8zoo?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;ThrillSeeker was not the first to build an eye tracking application for the Meta Quest Pro, with examples (&lt;a href=&quot;https://youtu.be/ZoySn7QlMfQ&quot;&gt;Dilmer Valecillios&lt;/a&gt;, &lt;a href=&quot;https://github.com/fabio914/EyeTrackingKeyboard&quot;&gt;Fabio914&lt;/a&gt;) dating back six months. However, he is the first to replicate the user experience presented by Apple at &lt;a href=&quot;https://developer.apple.com/wwdc23/&quot;&gt;WWDC 2023&lt;/a&gt;, providing a direct comparison.&lt;/p&gt;

&lt;p&gt;The application (&lt;a href=&quot;https://sidequestvr.com/app/18183/thrills-eyetracked-playground&quot;&gt;Thrills Eyetracked Playground&lt;/a&gt;) can be downloaded and installed via &lt;a href=&quot;https://sidequestvr.com/&quot;&gt;SideQuest&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This proof of concept, alongside the many I expect to see in the coming weeks/months, validates my suspicion that the combination of eye and hand tracking could be primed to become the default human interface for Virtual Reality / Augmented Reality.&lt;/p&gt;

&lt;p&gt;Similar to what they achieved with multi-touch on the iPhone, I credit Apple for taking an existing concept and leveraging their vertical integration (hardware + software) to deliver an experience that pushes the market forward.&lt;/p&gt;

&lt;p&gt;I hope Meta takes inspiration from Apple and their community, enabling first-party support for eye and hand tracking across the operating system and their first-party applications.&lt;/p&gt;

&lt;p&gt;If nothing else, considering the Meta Quest Pro is $999 ($2501 cheaper than the Apple Vision Pro) and has immediate availability, it could offer a nice public relations boost to shift some of the media/consumer attention away from Apple.&lt;/p&gt;

&lt;p&gt;Finally, it begs the question regarding the upcoming &lt;a href=&quot;https://about.fb.com/news/2023/06/meta-quest-3-coming-this-fall/&quot;&gt;Meta Quest 3&lt;/a&gt;, which is a lower-cost ($499) headset that unfortunately does not include the required hardware for eye tracking. In hindsight, this omission may have been a mistake but opens the door to a potential Meta Quest 3+, potentially released in time for the holiday season (and still before the Apple Vision Pro).&lt;/p&gt;

&lt;p&gt;I would certainly be open to spending an additional $100 for eye and hand tracking, assuming tight software integration.&lt;/p&gt;
</description>
        <pubDate>Fri, 16 Jun 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/06/16/Meta-Eye-Tracking/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/06/16/Meta-Eye-Tracking/</guid>
      </item>
    
      <item>
        <title>Generative AI for Business - Update</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - I have published four additional articles documenting our &lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;strategy to enable context injection (embeddings) at scale&lt;/a&gt;, &lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;a progress update regarding our findings&lt;/a&gt; an overview of our latest &lt;a href=&quot;2023/11/02/Generative-AI-Enhancements/&quot;&gt;enhacements&lt;/a&gt; and an &lt;a href=&quot;2023/12/15/Generative-AI-EoY/&quot;&gt;end of year summary&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Last month, &lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;my team launched a Generative AI Chatbot for business use&lt;/a&gt;, designed to accelerate productivity by streamlining common tasks.&lt;/p&gt;

&lt;p&gt;It can be compared to &lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;ChatGPT&lt;/a&gt;, leveraging two large language models (specifically &lt;a href=&quot;https://platform.openai.com/docs/models&quot;&gt;OpenAI GPT-3.5&lt;/a&gt; and &lt;a href=&quot;https://ai.google/discover/palm2&quot;&gt;Google PaLM2&lt;/a&gt;), making it capable of understanding and generating human-like responses to text-based inputs.&lt;/p&gt;

&lt;p&gt;The key difference from ChatGPT (and equivalent services) is that our Generative AI Chatbot is private, with specific business features and controls to ensure security, privacy, legal, and compliance.&lt;/p&gt;

&lt;p&gt;Initially, we launched the Generative AI Chatbot to 100 early adopters, targetting a wide range of common business tasks. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Answers (Information, Knowledge Articles, Guides, etc.)&lt;/li&gt;
  &lt;li&gt;Ideation (Brainstorming, Storyboarding, etc.)&lt;/li&gt;
  &lt;li&gt;Content Creation (Documents, Policies, Processes, Communications, etc.)&lt;/li&gt;
  &lt;li&gt;Content Review (Literature, Journals, Papers, Press Releases, etc.)&lt;/li&gt;
  &lt;li&gt;Summarisation (Executive Summaries, Key Messages/Findings, Reports, etc.)&lt;/li&gt;
  &lt;li&gt;Research Analysis (Qualitative, Observations, Deductive Reasoning, Survey, etc.)&lt;/li&gt;
  &lt;li&gt;Software/Data Engineering (100+ Programming/Scripting Languages)&lt;/li&gt;
  &lt;li&gt;Translations (85+ Languages)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am pleased to report the early adopter phase was a huge success, which saw viral growth above the original 100-user scope. One user commented &lt;em&gt;“this Generative AI Chatbot has given me 50% more productivity in my day”&lt;/em&gt;, which directly speaks to the value we had hoped to unlock.&lt;/p&gt;

&lt;p&gt;The early adopter phase also provided valuable feedback, resulting in six additional releases during the first month, delivering user experience enhancements and response tuning. We also monitored the usage patterns, further informing our policies and processes regarding the use of Generative AI services.&lt;/p&gt;

&lt;p&gt;As a result, following discussions with the relevant internal stakeholders, we agreed to open the service to all employees (approximately 14,000).&lt;/p&gt;

&lt;p&gt;This included a new user interface (screenshot below), with a focus on custom personas.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaiforbusiness04.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaiforbusiness04.jpg&quot; alt=&quot;Generative AI for Business&quot; title=&quot;Generative AI for Business&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The custom personas incorporate &lt;a href=&quot;/2023/05/22/Prompt-Engineering/&quot;&gt;prompt engineering&lt;/a&gt; techniques that were tuned during the early adopter phase. Each persona targets a specific outcome, including rules that define the task, format and tone, resulting in a more accurate and appropriate response.&lt;/p&gt;

&lt;p&gt;We also enhanced the ability for users to create their custom personas, providing the rules and any context as input, resulting in a unique URL that can be used and/or shared with colleagues. This feature has been used to prime the Generative AI Chatbot with business-specific context, as well as a “quick and dirty” way to test the model against specific data sets (e.g., Knowledge Articles, Processes, Journals, etc.)&lt;/p&gt;

&lt;p&gt;For example, the screenshot below highlights the “Software Engineer” persona being used to support common development tasks, which places a focus on producing readable code snippets, incorporating any relevant business context.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaiforbusiness05.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaiforbusiness05.jpg&quot; alt=&quot;Generative AI for Business&quot; title=&quot;Generative AI for Business&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the first business day, 450+ unique users accessed the Generative AI Chatbot, with thousands of prompts being submitted. Thanks to our decoupled architecture (outlined in the &lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;previous article&lt;/a&gt;) we did not see any scale issues, with the total (all users) cost remaining very low (&amp;lt; $50 per month).&lt;/p&gt;

&lt;p&gt;It should be noted, by default, we prohibit the use of public Generative AI services (&lt;a href=&quot;/2022/09/23/github-success-story/&quot;&gt;we are testing GitHub Copilot&lt;/a&gt;), which likely influenced the strong adoption.&lt;/p&gt;

&lt;p&gt;Our next goal is to unlock business data/context, ingested from multiple data sources. This is a complex problem as data integrity becomes paramount, ensuring the responses accurately reflect the business data/context. As a result, although we have an approach working, we have not yet released this capability to production.&lt;/p&gt;

&lt;p&gt;The screenshot below highlights our target state, where the Generative AI Chatbot can interpret business data. For example, in the screenshot, a knowledge article is used as the reference, resulting in a natural language interaction that triggers downstream automation.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaiforbusiness06.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaiforbusiness06.jpg&quot; alt=&quot;Generative AI for Business&quot; title=&quot;Generative AI for Business&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Like many enterprise businesses, we have massive datasets (structured and unstructured) that can be a challenge to discover and/or consume, impacting speed to value. We hope that by exposing this data via natural language will improve these pain points, whilst also unlocking additional insights to a broader (non-technical) audience.&lt;/p&gt;

&lt;p&gt;In conclusion, many technologies are hyped as “the next big thing”. However, I believe that the current hyper-innovation we are seeing with Generative AI, backed by this massive market investment and momentum, has a real chance of being a global disruptor.&lt;/p&gt;

&lt;p&gt;Through my peer connections, I believe we are one of the first enterprise businesses to release a Generative AI Chatbot to all users, including business-specific features and security controls.&lt;/p&gt;

&lt;p&gt;As to what the future holds, I am unclear. What is clear, businesses that invest wisely and move with agility will have a tremendous competitive advantage.&lt;/p&gt;
</description>
        <pubDate>Tue, 13 Jun 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/06/13/Generative-AI-for-Business-Update/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/06/13/Generative-AI-for-Business-Update/</guid>
      </item>
    
      <item>
        <title>Apple Vision Pro</title>
        <description>&lt;p&gt;Earlier today, at &lt;a href=&quot;https://developer.apple.com/wwdc23/&quot;&gt;WWDC 2023&lt;/a&gt;, &lt;a href=&quot;https://www.apple.com/uk/newsroom/2023/06/introducing-apple-vision-pro/&quot;&gt;Apple announced their eagerly anticipated Virtual Reality (VR) / Augmented Reality (AR) headset, known as the Apple Vision Pro&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Tim Cook (Apple CEO) described the product as &lt;em&gt;“the first computer you look through, not at”&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I believe this statement accurately represents the ambition, but not the short-term reality. For example, the Apple Vision Pro headset is opaque, with your eyes one inch from the two micro-OLED displays.&lt;/p&gt;

&lt;p&gt;The fact that Tim Cook describes the Apple Vision Pro as a computer, specifically a spatial computer, is also interesting.&lt;/p&gt;

&lt;p&gt;This subtle shift in terminology is classic Apple marketing, signalling that although the Apple Vision Pro may look and operate like a traditional VR/AR headset, any direct comparison should be avoided. Apple would have you believe this is something different, something new and more compelling.&lt;/p&gt;

&lt;p&gt;I was not at WWDC, therefore I have &lt;strong&gt;not&lt;/strong&gt; been hands-on with the Apple Vision Pro. However, the last time Apple entered a new market with hardware was the iPhone, back in 2007 (I consider the iPad and Apple Watch to be an extension of the same theme).&lt;/p&gt;

&lt;p&gt;Therefore, as a technologist, I could not resist sharing my initial thoughts on this historic announcement.&lt;/p&gt;

&lt;h3 id=&quot;hardware&quot;&gt;Hardware&lt;/h3&gt;

&lt;p&gt;Although Apple was quick to differentiate the Apple Vision Pro from existing VR/AR headsets, the form factor is remarkably familiar. For example, the photo below is my son using the Meta Quest Pro and Microsoft HoloLens 2.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/metaquestpro06.jpg&quot; alt=&quot;Meta Quest Pro and Microsoft HoloLens 2&quot; title=&quot;Meta Quest Pro and Microsoft HoloLens 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Like the Apple Vision Pro, the Meta Quest Pro and Microsoft HoloLens 2 are devices you wear on your head (strapped to your face), with your eyes inches from a pair of displays, supported by an array of sensors and cameras.&lt;/p&gt;

&lt;p&gt;Before the announcement, I had hoped Apple had found a way to innovate on the form factor, delivering a more streamlined headset that would improve comfort, whilst making it more acceptable/viable to wear across a range of scenarios.&lt;/p&gt;

&lt;p&gt;Unfortunately, the “ski goggles” design of the Apple Vision Pro is overly familiar, a continuation of the theme established by the Oculus Rift DK1, released in 2013.&lt;/p&gt;

&lt;p&gt;With that said, even from the photos and videos, I am confident the Apple Vision Pro will be the “best” headset on the market. The design, premium materials and subtle queues pulled from other Apple products (e.g., the Digital Crown) all look very refined.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applevisionpro01.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The specification is also a clear generational leap, with two Micro-OLED displays, providing an estimated resolution of 3800x3000 (3400 PPI) per eye and a refresh rate of up to 96Hz. Combined with the M2/R1 architecture, twelve cameras, five sensors and six microphones, the Apple Vision Pro should easily outperform the competition.&lt;/p&gt;

&lt;p&gt;There is even an outward-facing lenticular OLED display, designed to indicate to others (not wearing the headset) if the wearer is available to chat or immersed in a virtual experience. This is achieved through a slightly disconcerting virtual representation of the individual’s eyes, which Apple calls “EyeSight”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applevisionpro02.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although I applaud the creative thinking, I am not sure this feature is enough to make wearing the Apple Vision Pro socially acceptable. I simply can not imagine interacting with family/friends or co-workers in the real world whilst wearing a bulky headset that obscures half my face.&lt;/p&gt;

&lt;p&gt;Finally, Apple was careful not to draw too much attention to the connected battery pack, which is rated for two hours of use. Unlike other VR/AR headsets, the battery back is connected via a cable, which can be kept in a pocket or connected via a belt loop.&lt;/p&gt;

&lt;p&gt;The advantage of this approach is that it removes weight from your head. However, I suspect the cable and the need to carry an extra component will quickly become a point of frustration.&lt;/p&gt;

&lt;p&gt;The two hours of battery life is also potentially limiting, although it does appear the battery pack includes a USB-C port for additional power.&lt;/p&gt;

&lt;p&gt;At this point, with the impressive hardware specification in mind, it is worth mentioning the price. Unsurprisingly, these cutting-edge components and high-quality materials do not come cheap.&lt;/p&gt;

&lt;p&gt;The Apple Vision Pro will start at $3,500, which will likely translate to £4,000. To put this into perspective, you could purchase a 13-inch M2 MacBook Air ($1099), iPhone 14 ($799), iPad 256GB ($599), Watch Series 8 45mm ($749), and AirPods Pro ($249) for under the price of the Apple Vision Pro.&lt;/p&gt;

&lt;p&gt;It is also significantly more expensive than the competing VR/AR headsets. For example, Meta Quest 2 ($299), Meta Quest 3 ($499), Meta Quest Pro ($999), etc.&lt;/p&gt;

&lt;p&gt;The pricing is more in line with enterprise business VR/AR headsets, such as the Microsoft HoloLens 2 (also $3,500). However, this does not appear to be the market being targeted by Apple.&lt;/p&gt;

&lt;p&gt;Considering this is an unproven, first-generation product, with a limited third-party ecosystem, the price is ambitious, even for the most “die-hard” Apple fan.&lt;/p&gt;

&lt;h3 id=&quot;software&quot;&gt;Software&lt;/h3&gt;

&lt;p&gt;Apple showcased a new operating system known as visionOS (internal codename xrOS). The best equivalent would be iPadOS, with familiar design elements, presented in three dimensions.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applevisionpro03.jpg&quot; alt=&quot;Apple Vision Pro&quot; title=&quot;Apple Vision Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The demos of visionOS remind me of the operating system used by the Meta Quest. With infinitely resizable windows, capable of presenting traditional 2D graphics, alongside immersive 3D graphics.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applevisionpro04.jpg&quot; alt=&quot;Meta Quest Operating System&quot; title=&quot;Meta Quest Operating System&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I am sure Apple have some “tricks” not yet revealed, but I was a little surprised not to see a “killer app” that showcased the power of visionOS. Instead, we were treated to a range of demos that were either pre-rendered (representative) or “floating” versions of the apps we use on iPadOS, offering no obvious unique value.&lt;/p&gt;

&lt;p&gt;Thankfully, I am confident that Apple will deliver higher quality assurance than the competition. One of my biggest frustrations with the Meta Quest software is how buggy it can be, with frequent pauses, errors and long loading times. This extends into their first-party apps, which should showcase the platform, but commonly act as a point of ridicule (e.g., &lt;a href=&quot;https://www.meta.com/gb/horizon-worlds/&quot;&gt;Meta Horizon Worlds&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;h3 id=&quot;human-interface&quot;&gt;Human Interface&lt;/h3&gt;

&lt;p&gt;At this point, I would argue that the hardware and software are an evolution, not a revolution. For example, I think you can draw a fairly clear line from the Oculus Rift DK1 (2013) to the Apple Vision Pro (2023).&lt;/p&gt;

&lt;p&gt;In fact, many of the concepts enabling the Apple Vision Pro remind me of my first experience with virtual reality, dating back to the early-90s, with the &lt;a href=&quot;https://virtuality.com/&quot;&gt;Virtuality 1000CS&lt;/a&gt;. This is not necessarily a bad thing, Apple is rarely first to market, but they do usually deliver a quantum leap forward (a revolution).&lt;/p&gt;

&lt;p&gt;There was one part of the WWDC keynote that caught my eye (no pun intended).&lt;/p&gt;

&lt;p&gt;The majority of VR/AR headsets on the market today include physical controllers for the human interface, whilst also (in certain scenarios) supporting hand tracking. The Apple Vision Pro does not include any physical controllers, instead, it relies exclusively on eye tracking, hand tracking and voice.&lt;/p&gt;

&lt;p&gt;On the surface, this feels like a negative. However, based on the initial feedback from individuals at WWDC, it would appear the combination of eye and hand tracking could be a game changer.&lt;/p&gt;

&lt;p&gt;As demonstrated in the keynote, you navigate the user interface by simply looking, and touching your index finger and thumb to select. This has the potential to be very intuitive and fast, with some initial feedback from users describing it as “telepathy”.&lt;/p&gt;

&lt;p&gt;In addition, the cameras that detect your hands have a very wide field of view, removing the need to hold your arms up for prolonged periods, which can quickly become fatiguing.&lt;/p&gt;

&lt;p&gt;I can not wait to try this feature! It could be a real breakthrough for the human interface.&lt;/p&gt;

&lt;h3 id=&quot;value-proposition&quot;&gt;Value Proposition&lt;/h3&gt;

&lt;p&gt;Apple presented a range of scenarios highlighting how they believe people will use the Apple Vision Pro, including productivity, collaboration, social, media consumption, gaming, etc.&lt;/p&gt;

&lt;p&gt;In short, the keynote indicated that the Apple Vision Pro could replace your computer and home media setup, which is an ambitious statement.&lt;/p&gt;

&lt;p&gt;This value proposition is not new, simply an extension of the themes previously presented over the past decade by Oculus, Meta, Microsoft, Google, Magic Leap, etc.&lt;/p&gt;

&lt;p&gt;Worryingly for Apple, these scenarios, although interesting as a demonstration, have (up to now) failed to capture the imagination of real-world users. For example, VR/AR headsets have not seen mainstream adoption, instead being relegated to niche use cases and/or technology enthusiasts (like me).&lt;/p&gt;

&lt;p&gt;At this point, it is unclear if the Apple Vision Pro (including its heavy cost of entry) offers enough unique value to sway consumer opinion.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I have personally owned many VR/AR headsets, including Google Glass, &lt;a href=&quot;/2016/01/30/virtual-reality/&quot;&gt;Oculus Rift&lt;/a&gt;, &lt;a href=&quot;/2020/03/30/oculus-quest/&quot;&gt;Meta Quest 1/2&lt;/a&gt;, &lt;a href=&quot;/2022/10/25/meta-quest-pro/&quot;&gt;Meta Quest Pro&lt;/a&gt;, &lt;a href=&quot;/2020/07/20/holo-lens-2/&quot;&gt;Microsoft HoloLens 2&lt;/a&gt;, etc. I love the technology and have had some amazing experiences, but these have always been limited to short, specific use cases that emphasise the unique value of VR/AR.&lt;/p&gt;

&lt;p&gt;For example, &lt;a href=&quot;/2020/03/30/oculus-quest/&quot;&gt;I have previously written about my experience playing Half-Life: Alyx&lt;/a&gt;, which remains one of the only “Triple A” games designed specifically for virtual reality.&lt;/p&gt;

&lt;p&gt;In my opinion, this game is a masterpiece, putting forward a compelling reason why virtual reality can offer something truly innovative that goes above and beyond traditional gaming.&lt;/p&gt;

&lt;p&gt;With that said, I rarely play Half-Life: Alyx for more than 45 minutes at a time. The experience is amazing, making the effort of wearing a cumbersome headset worthwhile, but only for a short period.&lt;/p&gt;

&lt;p&gt;There is no question in my mind, the Apple Vision Pro will be a spectacular “product”, with incredible hardware and software.&lt;/p&gt;

&lt;p&gt;Unfortunately, I do not believe this guarantees success, underpinned by one simple question…&lt;/p&gt;

&lt;p&gt;Does anyone want a large headset strapped to their face?&lt;/p&gt;

&lt;p&gt;In my experience, the current hardware limitations make VR/AR viable for short periods, targeting unique use cases. However, I am less convinced general consumers will accept these limitations when positioned as a device that you are expected to wear all day for personal and/or work purposes.&lt;/p&gt;

&lt;p&gt;This is especially true when attempting to replace scenarios where VR/AR offer no obvious value over traditional options. For example, does anyone want to go through the effort of strapping a headset to their face for simple tasks such as browsing photos, watching videos, etc? Does anyone want to interact with computer-generated avatars via FaceTime vs. seeing the actual person?&lt;/p&gt;

&lt;p&gt;Finally, it was interesting to me that I have yet to see a member of the Apple team wearing the headset. I respect it is very difficult to deliver a compelling VR/AR demonstration on stage. However, part of me believes Apple marketing was eager to avoid the “meme-worthy” ridicule frequently fired at the Meta team for wearing a headset in public and/or interacting in virtual reality.&lt;/p&gt;

&lt;p&gt;This feels like a contradiction, considering Apple is advocating for the fact that wearing the headset in public will be socially acceptable.&lt;/p&gt;

&lt;p&gt;In conclusion, I can see a world where the concepts behind spatial computing are the future. However, I fear the current hardware limitations associated with the headset are a significant barrier to mainstream adoption.&lt;/p&gt;

&lt;p&gt;Potentially better positioning would have been for the Apple Vision Pro to be released for developers only, providing a foundation to build the spatial computing ecosystem and a more compelling value proposition, ahead of general consumer adoption.&lt;/p&gt;

&lt;p&gt;I suspect the positioning, timing and price of this first-generation Apple Vision Pro were controversial topics within Apple, potentially more so than any previous Apple product.&lt;/p&gt;

&lt;p&gt;Since 2018, Apple has filed approximately 12,300 patents in the US and spent $97B on research and development. Apple stated that they filed over 5000 patents for the Apple Vision Pro. Therefore, although far from a reliable statistic, Apple may have already spent $40B on this product.&lt;/p&gt;

&lt;p&gt;That is a lot of money (even for Apple), which will come with a lot of pressure from leadership, shareholders, etc.&lt;/p&gt;

&lt;p&gt;I can not help but question if this pressure to deliver a return on investment negatively influenced the product that was announced earlier today.&lt;/p&gt;

&lt;p&gt;Either way, I respect Apple for being bold and can not wait to see how general consumers react to the product upon release in Q1 2024.&lt;/p&gt;
</description>
        <pubDate>Mon, 05 Jun 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/06/05/Apple-Vision-Pro/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/06/05/Apple-Vision-Pro/</guid>
      </item>
    
      <item>
        <title>Globee Awards 2023</title>
        <description>&lt;p&gt;I am pleased to share that I was recently named a “Silver Globee” winner at the &lt;a href=&quot;https://globeeawards.com/information-technology/winners/&quot;&gt;18th Annual 2023 Globee Awards for Information Technology&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I was nominated (without my knowledge) in the category of “Chief Technology Officer of the Year - IT Services”.&lt;/p&gt;

&lt;p&gt;The term “Globee” is a combination of the words “global” and “business”. The Globee Awards were formed to honour organisations of all types and sizes from around the world for their achievements in various business and technology-related categories. The awards were created to provide a platform for recognizing and promoting excellence in industries and sectors that are shaping the future of business.&lt;/p&gt;

&lt;p&gt;The judging process involved the active participation of over 600 judges from diverse corners of the globe, representing a broad spectrum of industry experts. The Information Technology World Awards welcomes participation from organizations in the Information Technology and Cyber Security sectors, as well as their end-users worldwide.&lt;/p&gt;

&lt;p&gt;In addition, my colleague &lt;a href=&quot;https://www.linkedin.com/in/chris-keeley-b923484/&quot;&gt;Chris Keeley&lt;/a&gt; was a “Gold Globee Winner” in the category of “Chief Information Officer of the Year - Pharmaceutical”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/globeeaward2023.jpg&quot; alt=&quot;Globee Award 2023&quot; title=&quot;Globee Award 2023&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thanks for the nomination and award! &lt;a href=&quot;/tag/lifeinwork/&quot;&gt;I simply represent my team, that have delivered exceptional work over the past few years&lt;/a&gt;!&lt;/p&gt;
</description>
        <pubDate>Thu, 25 May 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/05/25/Globee-Awards-2023/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/05/25/Globee-Awards-2023/</guid>
      </item>
    
      <item>
        <title>Prompt Engineering</title>
        <description>&lt;p&gt;Last week, &lt;a href=&quot;/2023/05/10/Generative-AI-for-Business/&quot;&gt;I shared our progress in developing a business-specific Generative AI Chatbot&lt;/a&gt;, designed to accelerate productivity by streamlining common tasks.&lt;/p&gt;

&lt;p&gt;The Generative AI Chatbot includes specific business features and controls to ensure security, privacy, legal, and compliance. Specifically, we have enabled a feature that allows the user to declaratively customise the initial prompt through a technique known as prompt engineering, resulting in a custom URL that pre-loads the desired prompt.&lt;/p&gt;

&lt;p&gt;Prompt engineering is a technique that involves designing and optimising prompts to improve the performance of a large language model. Prompts are short pieces of text that are used to guide the model’s output, specifying the task to perform, as well as the desired output format, and any other relevant information/constraints.&lt;/p&gt;

&lt;p&gt;Our default prompt stipulates that the Generative AI Chatbot is a business assistant and should attempt to respond professionally, using all available data sources. The prompt engineering feature allows for a new custom prompt to be defined (replacing the default), resulting in a new URL that can be used for more specific, tightly defined tasks.&lt;/p&gt;

&lt;p&gt;The custom prompt can be used to target a specific persona. For example, Service Desk (Help Desk), Corporate Communications, Investor Relations, Marketing, Paralegal, Software/Data Engineering, etc. This approach helps improve the accuracy of the responses, whilst ensuring they are consistent with the expectations of the specific persona.&lt;/p&gt;

&lt;p&gt;As Generative AI gains popularity, prompt engineering has become a more common topic of discussion. Some believe the skills associated with prompt engineering will become a dedicated role. As a general rule, I disagree, instead, I believe the techniques associated with prompt engineering will need to be common across all roles, helping each individual maximise the value of Generative AI capabilities.&lt;/p&gt;

&lt;p&gt;Arguably, this is similar to the competency of browsing the web. Individuals who are very good at searching and extracting information from the web are often considered smart when in reality they have simply honed a skill that unlocks efficiency and effectiveness.&lt;/p&gt;

&lt;p&gt;Therefore, I thought I would share a few good reference materials that I use to support my prompt engineering requirements.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://platform.openai.com/docs/guides/gpt-best-practices&quot;&gt;OpenAI - GPT Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api&quot;&gt;OpenAI - Best Practices for Prompt Engineering with OpenAI API&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/cognitive-services/openai/concepts/advanced-prompt-engineering?pivots=programming-language-chat-completions&quot;&gt;Microsoft - Prompt Engineering Techniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://prmpts.ai/blog/what-is-prompt-engineering&quot;&gt;Prmpts.ai - What is Prompt Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/dair-ai/Prompt-Engineering-Guide&quot;&gt;DAIR.AI - Prompt Engineering Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition to these reference materials, outlined below are some high-level principles to consider when prompt engineering.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Clear Instructions:&lt;/strong&gt; Provide relevant details, context and constraints, limiting the possible outcomes.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Reference Text:&lt;/strong&gt; Provide reference text as a basis for the response.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Personas:&lt;/strong&gt; Ask the model to adopt a specific persona/role, which will shape the tone and style of the responses.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Breakdown Tasks:&lt;/strong&gt; Keep things simple by stepping through requirements instead of providing them all at once.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Iterate:&lt;/strong&gt; The quality of the prompt will directly impact the quality of the response. If the first response is not as desired, try again with a different structure or context.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is also possible to ask the model to provide its chain of reasoning, which is useful when troubleshooting why a response may not be meeting your expectations.&lt;/p&gt;

&lt;p&gt;These principles, alongside the best practices outlined in the reference materials, can be used in isolation or combined. In theory, they should help reduce artificial hallucination (AKA confabulation or delusion), which is the term used to describe a confident response that is not justified by the training data.&lt;/p&gt;
</description>
        <pubDate>Mon, 22 May 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/05/22/Prompt-Engineering/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/05/22/Prompt-Engineering/</guid>
      </item>
    
      <item>
        <title>Generative AI for Business</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - I have published five additional articles documenting the &lt;a href=&quot;/2023/06/13/Generative-AI-for-Business-Update/&quot;&gt;go-live of our Generative AI Chatbot for Business&lt;/a&gt;, &lt;a href=&quot;/2023/07/04/Generative-AI-Embeddings/&quot;&gt;our strategy to enable context injection (embeddings) at scale&lt;/a&gt;, &lt;a href=&quot;/2023/08/30/Generative-AI-Context/&quot;&gt;a progress update regarding our findings&lt;/a&gt; an overview of our latest &lt;a href=&quot;2023/11/02/Generative-AI-Enhancements/&quot;&gt;enhacements&lt;/a&gt; and an &lt;a href=&quot;2023/12/15/Generative-AI-EoY/&quot;&gt;end of year summary&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://openai.com/blog/chatgpt&quot;&gt;Since the launch of ChatGPT in November 2022&lt;/a&gt;, Artificial Intelligence (AI) has officially hit the mainstream, &lt;a href=&quot;/2023/04/22/ai-rise-of-the-machines/&quot;&gt;unlocking new opportunities and risks&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/generativeaiforbusiness01.jpg&quot; alt=&quot;Generative AI for Business&quot; title=&quot;Generative AI for Business&quot; /&gt;&lt;/p&gt;

&lt;p&gt;ChatGPT achieved 100 million active users in just two months. This unprecedented growth convinced Microsoft to reprioritise its business strategy, resulting in a rumoured $10B investment in OpenAI and the announcement of portfolio-wide AI capabilities (e.g., 30+ Copilot products in development).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2023/02/08/OpenAI-ChatGPT/&quot;&gt;Since February 2023, there has been an onslaught of AI announcements&lt;/a&gt;, with every technology company on earth desperately attempting to convince their customer base that they are “leaders in AI”. Specifically, Generative AI, which is a branch of AI that involves the development of models capable of producing novel and realistic content based on patterns and examples learned from training data.&lt;/p&gt;

&lt;p&gt;As a CTO, I have been inundated with messages and meeting requests to discuss Generative AI, with imminent announcements expected from &lt;a href=&quot;https://www.salesforce.com/&quot;&gt;Salesforce.com&lt;/a&gt;, &lt;a href=&quot;https://www.servicenow.com/&quot;&gt;ServiceNow&lt;/a&gt;, &lt;a href=&quot;https://www.workday.com/&quot;&gt;Workday&lt;/a&gt;, &lt;a href=&quot;https://www.sap.com/&quot;&gt;SAP&lt;/a&gt;, and many others.&lt;/p&gt;

&lt;p&gt;As a recent example, Google mentioned “AI” 143 times during the two-hour keynote presentation at &lt;a href=&quot;https://www.youtube.com/live/cNfINi5CNbY&quot;&gt;Google I/O&lt;/a&gt;, which is approximately 1.15 times per minute. This should not be a surprise, as Google are arguably the company with the most to lose if Generative AI were to disrupt traditional web usage (specifically web advertisement).&lt;/p&gt;

&lt;p&gt;In reality, many of these announcements are companies attempting to capitalise on the AI hype cycle (fear of missing out) and therefore should be treated with caution. For example, if a company is positioning their capabilities as “Private Preview” it is reasonable to assume they are in early development vs. “leaders” in this space.&lt;/p&gt;

&lt;p&gt;With that said, as highlighted in my &lt;a href=&quot;/2023/02/08/OpenAI-ChatGPT/&quot;&gt;previous article&lt;/a&gt;, I do see tremendous personal and business potential regarding the use of Generative AI.&lt;/p&gt;

&lt;p&gt;As a result, I have a small development team experimenting with these capabilities for business use, prioritising &lt;a href=&quot;https://www.microsoft.com/&quot;&gt;Microsoft&lt;/a&gt; (backed by &lt;a href=&quot;https://openai.com/&quot;&gt;OpenAI&lt;/a&gt;), &lt;a href=&quot;https://www.google.com/&quot;&gt;Google&lt;/a&gt; and the open-source community.&lt;/p&gt;

&lt;p&gt;In my opinion, Microsoft and Google are the most credible technology companies offering business-specific capabilities for Generative AI (&lt;a href=&quot;https://ai.facebook.com/blog/large-language-model-llama-meta-ai/&quot;&gt;Meta is also doing some interesting work&lt;/a&gt;). The primary differentiator is the availability of tools, example projects, and architecture materials to support development, including the relevant enterprise business controls (e.g., security, privacy, compliance, etc.)&lt;/p&gt;

&lt;p&gt;However, it is arguably the open-source community that is demonstrating the highest rate of innovation with interesting projects such as &lt;a href=&quot;https://crfm.stanford.edu/2023/03/13/alpaca.html&quot;&gt;Stanford Alpaca&lt;/a&gt;, &lt;a href=&quot;https://bair.berkeley.edu/blog/2023/04/03/koala/&quot;&gt;Koala&lt;/a&gt;, &lt;a href=&quot;https://www.eleuther.ai/artifacts/gpt-j&quot;&gt;GPT-J&lt;/a&gt;, &lt;a href=&quot;https://huggingface.co/&quot;&gt;Hugging Face&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;The goal of the development team is to build and learn, helping to mature our understanding and shape our thinking regarding the use of Generative AI.&lt;/p&gt;

&lt;p&gt;As a result, we have built a business-specific Generative AI Chatbot that is the equivalent of ChatGPT, providing the same ability to answer queries, create and/or review content, generate reports and summaries, accelerate research activities, translations, and much more.&lt;/p&gt;

&lt;p&gt;At this time, we have been using two large language models, GPT-3.5 (specifically &lt;a href=&quot;https://platform.openai.com/docs/models&quot;&gt;gpt-3.5-turbo&lt;/a&gt;) and &lt;a href=&quot;https://ai.google/discover/palm2&quot;&gt;PaLM2&lt;/a&gt; (which powers &lt;a href=&quot;https://bard.google.com/&quot;&gt;Google Bard&lt;/a&gt;), integrated into a business-centric web application where all prompts and responses are private (no interaction with a public interface).&lt;/p&gt;

&lt;p&gt;The screenshot below highlights the user interface used to interact with the Generative AI Chatbot. As you can see, it is fairly intuitive and familiar to anyone that has used ChatGPT (or an equivalent Generative AI service).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaiforbusiness02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaiforbusiness02.jpg&quot; alt=&quot;Generative AI for Business&quot; title=&quot;Generative AI for Business&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Regarding features, we have integrated our company security standards, specifically modern authentication (SSO/MFA), alongside individual session management, allowing users to retain context across multiple sessions. These features ensure all prompts, responses, data and use cases are private, adhering to our company’s privacy, legal and compliance policies.&lt;/p&gt;

&lt;p&gt;We have also developed a specific capability to declaratively customise the initial prompt (prompt engineering), resulting in a new URL using the same underlying application architecture.&lt;/p&gt;

&lt;p&gt;Prompt engineering is a technique that involves designing and optimising prompts to improve the performance of a large language model. Prompts are short pieces of text that are used to guide the model’s output, specifying the task to perform, as well as the desired output format, and any other relevant information/constraints.&lt;/p&gt;

&lt;p&gt;Our default prompt stipulates that the Generative AI Chatbot is a business assistant and should attempt to respond professionally, using all available data sources. The prompt engineering feature allows for a new custom prompt to be defined (replacing the default), resulting in a new URL that can be used for more specific, tightly defined tasks.&lt;/p&gt;

&lt;p&gt;The custom prompt can be used to target a specific persona. For example, Service Desk (Help Desk), Corporate Communications, Investor Relations, Marketing, Paralegal, Software/Data Engineering, etc. This approach helps improve the accuracy of the responses, whilst ensuring they are consistent with the expectations of the specific persona.&lt;/p&gt;

&lt;p&gt;Finally, and maybe most excitingly from a business perspective, we have unlocked business data. This allows the Generative AI Chatbot to respond with business context, covering policies, processes, knowledge articles, journals, papers, etc.&lt;/p&gt;

&lt;p&gt;The ability to ingest business data was a little more complex and required the use of some additional cloud components, specifically search (&lt;a href=&quot;https://cloud.google.com/blog/products/ai-machine-learning/enterprise-search-on-gen-app-builder&quot;&gt;Google Enterprise Search&lt;/a&gt; or &lt;a href=&quot;https://azure.microsoft.com/en-us/products/search&quot;&gt;Azure Cognitive Search&lt;/a&gt;) to facilitate the indexing and retrieval of information from internal data repositories.&lt;/p&gt;

&lt;p&gt;With the business data indexed, custom middleware extracts the keywords from the user prompt and matches the output (best effort) with the indexed data. The corresponding sentence (or sentences) from the indexed data are provided as part of the response using natural language, including a link (citation) to the relevant data sources.&lt;/p&gt;

&lt;p&gt;Behind the scenes, this approach uses a technique known as “prompt stuffing”, where the matched sentences from the indexed data are added (stuffed) into the prompt for the large language model to use as context when responding. This is a fairly brittle approach (something I expect to improve over time), with limitations regarding the token count.&lt;/p&gt;

&lt;p&gt;The accuracy of the response can vary depending on the quality of the user prompt and the precision of the matched data. However, we have found the accuracy can be improved when combined with the previously mentioned prompt customisation feature. For example, by stating the Generative AI Chatbot is a support agent and should only respond using a specific internal data repository (e.g., knowledge articles), instead of all known data sources.&lt;/p&gt;

&lt;p&gt;The “marchitecture” diagram below highlights the design we have implemented.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/generativeaiforbusiness03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/generativeaiforbusiness03.jpg&quot; alt=&quot;Generative AI for Business&quot; title=&quot;Generative AI for Business&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The diagram shows a hybrid architecture with the front-end and middleware running on Google Cloud Platform (GCP), connected to Azure OpenAI Service and Google PaLM2 for the large language model. Google Enterprise Search is used to index the the data. It is certainly possible to build this architecture end-to-end on Microsoft Azure or Google Cloud Platform (GCP). However, we purposely decided to target a loosely coupled architecture to provide maximum flexibility as we test and learn. For example, we have multiple large language models available, specifically GPT-3.5 and PaLM2, with the plan to add GPT-4 soon.&lt;/p&gt;

&lt;p&gt;At this time, we have opened our Generative AI Chatbot to 100 early adopters, with the plan to expand to 500 in June. This includes a wide range of personas, covering Manufacturing, Research &amp;amp; Development, Commercial, Corporate Communications, Finance, Legal, IT, etc.&lt;/p&gt;

&lt;p&gt;The initial feedback has been very positive, with use cases covering:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Answers (Information, Knowledge Articles, Guides, etc.)&lt;/li&gt;
  &lt;li&gt;Ideation (Brainstorming, Storyboarding, etc.)&lt;/li&gt;
  &lt;li&gt;Content Creation (Documents, Policies, Processes, Communications, etc.)&lt;/li&gt;
  &lt;li&gt;Content Review (Literature, Journals, Papers, Press Releases, etc.)&lt;/li&gt;
  &lt;li&gt;Summarisation (Executive Summaries, Key Messages/Findings, Reports, etc.)&lt;/li&gt;
  &lt;li&gt;Research Analysis (Qualitative, Observations, Deductive Reasoning, Survey, etc.)&lt;/li&gt;
  &lt;li&gt;Software/Data Engineering (100+ Programming/Scripting Languages)&lt;/li&gt;
  &lt;li&gt;Translations (85+ Languages)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Our Generative AI Chatbot is positioned as a productivity accelerator, not a replacement for human intelligence. Therefore, the individual providing the input and receiving the response is accountable for the accuracy (verification).&lt;/p&gt;

&lt;p&gt;Do we expect our Generative AI Chatbot to scale further? Maybe… The market is evolving quickly and we will adapt accordingly. For example, we fully expect to see this architecture pattern “bundled” as a service offering from specific vendors. However, it creates questions about cost (assuming everyone will charge a premium for Generative AI capabilities) and the user experience (multiple discrete Generative AI Chatbots).&lt;/p&gt;

&lt;p&gt;Ultimately, this project is an experiment (learning experience) for IT and the business, whilst also an opportunity to drive immediate value through enhanced productivity and cost savings.&lt;/p&gt;

&lt;p&gt;Finally, it is worth mentioning that our Generative AI Chatbot was built by two developers (&lt;a href=&quot;https://www.linkedin.com/in/calum-bell-886654114/&quot;&gt;Calum Bell&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/charlie-hamerston-budgen-083277191/&quot;&gt;Charlie Hamerston-Budgen&lt;/a&gt;), over ten business days (not dedicated to this project), with sponsorship/consultancy from myself and our friends at Microsoft/Google.&lt;/p&gt;
</description>
        <pubDate>Wed, 10 May 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/05/10/Generative-AI-for-Business/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/05/10/Generative-AI-for-Business/</guid>
      </item>
    
      <item>
        <title>Stevie Awards 2023</title>
        <description>&lt;p&gt;Earlier today, my team was named the winner of a Gold Stevie Award at &lt;a href=&quot;https://stevieawards.com/aba/technology-awards&quot;&gt;the 21st Annual American Business Awards&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The team won “Technology Department of the Year”, which is a phenomenal achievement, &lt;a href=&quot;/tag/lifeinwork/&quot;&gt;recognising an incredible few years&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Stevie Awards honour and generate public recognition of the achievements and positive contributions of businesses and working professionals worldwide. The video below provides additional context.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/FxcFH0V9Ft4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;More than 3,700 nominations from organizations of all sizes and in virtually every industry were submitted for consideration. The winners were determined by the average scores of more than 240 professionals worldwide in the three-month judging process.&lt;/p&gt;

&lt;p&gt;A few comments from the judges.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Splits and mergers are never easy and sometimes organizations can get overwhelmed by the complexity and get into a downward productivity spiral. The fact that this department not only came up with a very comprehensive plan but also executed it, is a sign of a very well-functioning team. The team should be very proud of what they have accomplished.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“The team’s efforts to rebuild the IT infrastructure and integrate the people, processes, and systems from both companies into a single unified platform are impressive.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Congratulations to the team and all winners!&lt;/p&gt;
</description>
        <pubDate>Fri, 05 May 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/05/05/Stevie-Awards-2023/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/05/05/Stevie-Awards-2023/</guid>
      </item>
    
      <item>
        <title>Wardley Mapping - Update</title>
        <description>&lt;p&gt;As highlighted in my previous articles (&lt;a href=&quot;/2015/08/01/wardley-maps/&quot;&gt;Wadley Maps&lt;/a&gt; and &lt;a href=&quot;/2017/04/01/mapping/&quot;&gt;Mapping&lt;/a&gt;), I am a long-time advocate of &lt;a href=&quot;https://learnwardleymapping.com/&quot;&gt;Wardley Mapping&lt;/a&gt;, which is a methodology to build a strategic map for your business.&lt;/p&gt;

&lt;p&gt;In my experience, the process of mapping is one of the most powerful, tangible ways to develop a strategy that includes situational awareness and can be easily understood/communicated.&lt;/p&gt;

&lt;p&gt;I first met Simon in 2013 as part of a Silicon Valley tour with the &lt;a href=&quot;https://dxc.com/us/en/insights/perspectives/dxc-leading-edge&quot;&gt;Leading Edge Forum (LEF)&lt;/a&gt;. This led to a specific engagement with my business, where we used the methodology to define our strategy.&lt;/p&gt;

&lt;p&gt;Over the years, I have used concepts from Wardley Mapping to support my strategic thinking and again recently to help position emerging technologies/trends regarding &lt;a href=&quot;/generative_ai/&quot;&gt;Generative AI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Recently, Simon partnered with “&lt;a href=&quot;https://www.youtube.com/@AWSPublicSector&quot;&gt;Amazon Web Services (AWS) Public Sector&lt;/a&gt;” to produce a series of short videos (each less than ten minutes) that outline the methodology.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://youtu.be/KkePAhnkHeg&quot;&gt;Part 1: How and why to map your business&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://youtu.be/xsDT7L-tARs&quot;&gt;Part 2: How to spot patterns&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://youtu.be/58iLrw6-4x4&quot;&gt;Part 3: How to anticipate change&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://youtu.be/gPDVA6uVAlU&quot;&gt;Part 4: How to use doctrine and gameplay&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you can spare ten minutes, I would certainly recommend watching the first part (the introduction) to see if it resonates with you.&lt;/p&gt;
</description>
        <pubDate>Mon, 01 May 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/05/01/Wardley-Mapping-Update/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/05/01/Wardley-Mapping-Update/</guid>
      </item>
    
      <item>
        <title>AI - Rise of the Machines</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2023/02/08/openai-chatgpt/&quot;&gt;In November 2022, the OpenAI research laboratory released ChatGPT&lt;/a&gt;, a Generative AI Chatbot that can comprehend and generate human-like text, capable of producing novel and realistic content.&lt;/p&gt;

&lt;p&gt;This release moved artificial intelligence into the mainstream, capturing the imagination of many around the world.&lt;/p&gt;

&lt;p&gt;The “hype” associated with Generative AI has triggered the usual polarising series of public commentary, with some groups positioning artificial intelligence as the world’s saviour, whilst others see it as an existential threat.&lt;/p&gt;

&lt;p&gt;To better understand the realities, it is important to remember that artificial intelligence is not new.&lt;/p&gt;

&lt;p&gt;The origins of artificial intelligence date back to the early 1900s, with the first discussions regarding the viability of creating artificial humans. Today, artificial intelligence is an embedded part of daily life, used by billions of individuals every day to support a wide range of tasks (selecting music, getting directions, etc.)&lt;/p&gt;

&lt;p&gt;However, up to now, artificial intelligence has been a silent companion, usually embedded as a backing service, not immediately obvious to the individual using it. Individuals working with artificial intelligence directly were usually experts within a given domain, with specific expertise and experience.&lt;/p&gt;

&lt;p&gt;Generative AI services like ChatGPT changed this equation, allowing anyone to directly interact with artificial intelligence using natural language (no specific expertise or experience required). This paradigm shift dramatically broadens the viable audience, whilst also making the use of artificial intelligence self-evident.&lt;/p&gt;

&lt;p&gt;In short, artificial intelligence has been on a 120+ year journey, with the most recent chapter covering the &lt;a href=&quot;https://blog.research.google/2017/08/transformer-novel-neural-network.html&quot;&gt;transformer deep learning architecture first proposed in 2017&lt;/a&gt;, leading to the inevitable release of ChatGPT in 2022.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Is this an important milestone for artificial intelligence? yes!&lt;/li&gt;
  &lt;li&gt;Are the machines rising, as seen in movies such as &lt;a href=&quot;https://www.imdb.com/title/tt0088247/&quot;&gt;The Terminator&lt;/a&gt;? No.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am not stating that there is no risk associated with artificial intelligence. As with any technology, it can (and will) be used for good and bad.&lt;/p&gt;

&lt;p&gt;However, as it stands today, I believe the opportunities associated with artificial intelligence far outweigh the risks. This is especially true for enterprise businesses, who are under continuous pressure to optimise their value chain, whilst innovating to unlock new customer experiences and business models.&lt;/p&gt;

&lt;p&gt;Therefore, I have identified four opportunities and four risks that I believe are most relevant (today) for enterprise businesses considering the use of artificial intelligence.&lt;/p&gt;

&lt;h3 id=&quot;opportunities&quot;&gt;Opportunities&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Data Insights:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Artificial intelligence can analyse large datasets quickly, consistently and cost-effectively, identifying patterns, trends, and correlations that would be impossible for a human to recognise. These insights promote data-driven decisions, whilst predicting outcomes that inform business strategies across the value chain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Productivity Acceleration:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Artificial intelligence enables the automation of repetitive and common tasks, reducing the risk of human errors, whilst empowering every individual to maximize their potential. This leads to increased efficiency, effectiveness, engagement (moral) and cost savings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;New Customer Experiences:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Artificial intelligence can power always-available, personalised customer experiences, maximising go-to-market strategies, whilst improving engagement, response times and overall satisfaction.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;New Digital/Data Business Models:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Artificial intelligence can act as the catalyst and facilitate the creation of new digital/data business models, potentially unlocking new monetisation opportunities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;risks&quot;&gt;Risks&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Competition:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Artificial intelligence has the potential to disrupt traditional business models, powering new customer experiences and unlocking transformative digital/data business models. Businesses that fail to adapt risk becoming obsolete.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Information Protection:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Artificial intelligence is reliant on data, potentially including data that is categorised as sensitive. Data used or produced by artificial intelligence must be appropriately collected, stored, processed, managed and controlled.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Information Accuracy:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Artificial intelligence may misrepresent information with insights/content that appear convincing but may be incomplete, inaccurate, or inappropriate. This can be due to poor-quality training data and/or bias/manipulation. All insights/content must be verified by an accountable party.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Appropriate Use:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The use of artificial intelligence can have ethical, legal, and societal implications, covering consent, fairness, compliance, intellectual property, and the potential for unintended consequences. The use of artificial intelligence must be a conscious decision, focused on the intended outcome and engaged stakeholders.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I am extremely excited about the future of artificial intelligence. In the context of enterprise business, I believe artificial intelligence is primed to trigger the next wave of digital innovation, unlocking opportunities to disrupt and transform industries.&lt;/p&gt;

&lt;p&gt;Therefore, although businesses must consider the risks associated with information protection, accuracy and appropriate use, I believe the biggest risk is not embracing the technology. Businesses that fail to do so, risk becoming obsolete.&lt;/p&gt;
</description>
        <pubDate>Sat, 22 Apr 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/04/22/AI-Rise-of-the-Machines/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/04/22/AI-Rise-of-the-Machines/</guid>
      </item>
    
      <item>
        <title>Cybersecurity Tabletop Exercise</title>
        <description>&lt;p&gt;A Cybersecurity Tabletop Exercise simulates a hypothetical cybersecurity incident, used for planning purposes.&lt;/p&gt;

&lt;p&gt;It is an opportunity to practice and learn, helping to ensure that processes, roles and responsibilities are clearly defined and understood.&lt;/p&gt;

&lt;p&gt;Cybersecurity threats are more prevalent than ever before, impacting all industries. Adversaries are no longer “stereotypical hackers”, they are highly organised teams, operating as a business.&lt;/p&gt;

&lt;p&gt;Therefore, if you are accountable for information security at your business, it makes sense to ensure your teams are thoroughly prepared. For example, you do not want the first time you execute your incident response plan to be during a high-pressure, real-world event.&lt;/p&gt;

&lt;p&gt;This is the value of the Cybersecurity Tabletop Exercise, raising awareness, learning, identifying gaps, making mistakes and building confidence in a “safe” environment.&lt;/p&gt;

&lt;p&gt;A Cybersecurity Tabletop Exercise can cover technical, business and/or executive processes. As a Chief Information Security Officer (CISO), I recommend regular technical and business exercises, combined with occasional executive engagement, which would likely include CxO-level roles and (if appropriate) the Board of Directors.&lt;/p&gt;

&lt;p&gt;When constructing a Cybersecurity Tabletop Exercise scenario, I recommend referencing &lt;a href=&quot;https://attack.mitre.org/&quot;&gt;MITRE ATT&amp;amp;CK&lt;/a&gt;, which is a globally-accessible knowledge base of adversary tactics and techniques based on real-world observations.&lt;/p&gt;

&lt;p&gt;This knowledge base provides a comprehensive matrix for enterprise businesses, perfect for the development of threat models.&lt;/p&gt;

&lt;p&gt;Outlined below is an example scenario, covering the confirmed loss of sensitive (non-public) data, including an extortion attempt. It includes four injects, which are milestones in the story that purposely escalate the scenario. At each injection, the team should simulate the defined processes, documenting all decisions and actions, including the rationale.&lt;/p&gt;

&lt;p&gt;It can be useful to have a third-party observer, someone with knowledge of cybersecurity incident management, who can assess the effectiveness and provide feedback.&lt;/p&gt;

&lt;p&gt;It is important to remember that the scenario itself is designed to represent a worst-case scenario, therefore it should be accepted (not challenged). This is not always easy for technical thought leaders, who have a natural tendency to challenge the plausibility of the scenario itself. Remember, the value exercise is to ensure that the processes, roles and responsibilities are clearly defined and understood.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NOTE: Every business is different, therefore the scenario should be tailored based on your specific business context, emphasising any areas that you may wish to practice.&lt;/em&gt;&lt;/p&gt;

&lt;h4 id=&quot;inject-1-third-party-notification&quot;&gt;Inject 1: Third-Party Notification&lt;/h4&gt;

&lt;p&gt;Your business is notified of probable attack activity by a trusted third-party managed service provider. A user account credential has been found compromised - one belonging to a contractor associated with your business systems.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The third-party managed service provider investigation findings suggest the user compromise occurred 77 days ago.&lt;/li&gt;
  &lt;li&gt;High-confidence findings identify social engineering as the intrusion vector - resulting in malware installation on a workstation (endpoint) managed by the third-party managed service provider.&lt;/li&gt;
  &lt;li&gt;Out-of-date virus signature files delayed detection, allowing an adversary to conduct further reconnaissance and exploit activity from the endpoint.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;inject-2-investigation&quot;&gt;Inject 2: Investigation&lt;/h4&gt;

&lt;p&gt;Your business identifies the compromised user has accessed your business systems within the window of compromise.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Initial analysis highlights the user accessed your business systems daily.&lt;/li&gt;
  &lt;li&gt;No unusual account activity identified via your business detect and respond tooling (e.g., no foreign time zones, geographies, impossible travel, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;inject-3-findings&quot;&gt;Inject 3: Findings&lt;/h4&gt;

&lt;p&gt;Your business operations identify the suspect user account accessed the following production systems/data assets within the window of compromise:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NOTE: Select example systems with appropriate non-public sensitive data (e.g., employee data, customer data, financial data, etc.)&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;No specific evidence of data exfiltration (copied/transferred). However, with a large compromise window (77 days) data could have been screen-captured and/or transcribed.&lt;/li&gt;
  &lt;li&gt;Your business operations confirm (within reasonable doubt) that the compromise has been contained.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;inject-4-data-leak-and-extortion-attempt&quot;&gt;Inject 4: Data Leak and Extortion Attempt&lt;/h4&gt;

&lt;p&gt;Your business receives an anonymous phone call from an adversary acknowledging accountability for the compromise, with evidence being published publicly on the dark web. The adversary requests xxx Bitcoin (select a value that has a material impact on your business) be transferred to a crypto wallet within 72 hours, or the full dataset will be published publicly.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The business operations confirm the published evidence is representative of the non-public sensitive data.&lt;/li&gt;
  &lt;li&gt;The lost dataset cannot be remote/retrospectively recovered and/or obfuscated (masked).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;final-decisions&quot;&gt;Final Decisions&lt;/h4&gt;

&lt;p&gt;At this stage, the scenario concludes with a focus on key decisions. This specific example works well, as it includes a long dwell time (77 days) and ambiguity regarding how much data has been exposed as part of the compromise. This uncertainty forces a risk-based decision to be made.&lt;/p&gt;

&lt;p&gt;I recommend the following areas are discussed:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;How does the business measure the reputation impact and downstream ramifications of the compromise (e.g., customer confidence, sales, stock price, etc.)?&lt;/li&gt;
  &lt;li&gt;Does the business engage an external cybersecurity/ransomware/extorsion firm?&lt;/li&gt;
  &lt;li&gt;Does the business pay the ransom? If so, how?&lt;/li&gt;
  &lt;li&gt;Does the business engage law enforcement?&lt;/li&gt;
  &lt;li&gt;Does the business directly communicate with employees/customers?&lt;/li&gt;
  &lt;li&gt;Does the business trigger a formal cybersecurity breach disclosure (e.g., SEC, etc.)?&lt;/li&gt;
  &lt;li&gt;Does the business trigger a privacy breach disclosure? If so, which Countries?&lt;/li&gt;
  &lt;li&gt;How does the business monitor the situation post decisions (e.g., customers, shareholders, credit score, etc.)?&lt;/li&gt;
  &lt;li&gt;What is the broader communication and crisis management strategy?&lt;/li&gt;
  &lt;li&gt;What further engagement (if any) should occur with the third-party managed service provider (the origin of the compromise)?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To help understand if a Cybersecurity Tabletop Exercise could be useful for your business. Ask yourself how prepared your business would be to answer these questions.&lt;/p&gt;

&lt;p&gt;If there is uncertainty regarding the process or decision authority, I would recommend proceeding.&lt;/p&gt;
</description>
        <pubDate>Wed, 12 Apr 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/04/12/Cybersecurity-Tabletop-Exercise/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/04/12/Cybersecurity-Tabletop-Exercise/</guid>
      </item>
    
      <item>
        <title>BizClik Media Interview</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2023/01/20/External-Engagement-JAN-2023/&quot;&gt;Earlier this year&lt;/a&gt;, in partnership with &lt;a href=&quot;https://www.winwire.com/&quot;&gt;WinWire Technologies&lt;/a&gt;, I completed an interview with &lt;a href=&quot;https://www.bizclikmedia.com/&quot;&gt;BizClik Media&lt;/a&gt;, which is a digital community that provides industry-specific expert insights into the fast-paced world of technology, cybersecurity, targeting executive leaders.&lt;/p&gt;

&lt;p&gt;The interview focused on scaling public cloud applications and cybersecurity, specifically enabling animal care through cloud technology and modern application architecture.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://issuu.com/gigabitmagazine/docs/technology_magazine_april_2023&quot;&gt;&lt;img src=&quot;/images/posts/bizclikmediainterview01.jpg&quot; alt=&quot;BizClik Media Interview&quot; title=&quot;BizClik Media Interview&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It has been published in three magazines, specifically:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://issuu.com/gigabitmagazine/docs/technology_magazine_april_2023&quot;&gt;Technology Magazine (APR-2023)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://issuu.com/cybermagazine/docs/cyber-magazine-may2023&quot;&gt;Cyber Magazine (MAY-2023)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://issuu.com/healthcareglobal/docs/healthcare-magazine-may2023&quot;&gt;Healthcare Digital Magazine (MAY-2023)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition, the BizClik Media team created a short promotion video highlighting a few snippets from the interview.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/2tG7HMXFWeA?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Finally, the interview is also available as a &lt;a href=&quot;https://cybermagazine.com/brochure/elanco-securely-scaling-animal-care-through-cloud&quot;&gt;Digital Report&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://cybermagazine.com/brochure/elanco-securely-scaling-animal-care-through-cloud&quot;&gt;&lt;img src=&quot;/images/posts/bizclikmediainterview02.jpg&quot; alt=&quot;BizClik Media Interview&quot; title=&quot;BizClik Media Interview&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks to WinWire Technologies and BizClik Media for the opportunity to connect and share my perspective.&lt;/p&gt;
</description>
        <pubDate>Wed, 05 Apr 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/04/05/BizClik-Media-Interview/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/04/05/BizClik-Media-Interview/</guid>
      </item>
    
      <item>
        <title>Arc Browser</title>
        <description>&lt;p&gt;Do we need another desktop web browser? If you had asked me at the start of the year, I would have said no… With &lt;a href=&quot;https://www.google.com/chrome/&quot;&gt;Chrome&lt;/a&gt;, &lt;a href=&quot;https://www.mozilla.org/firefox/&quot;&gt;Firefox&lt;/a&gt;, &lt;a href=&quot;https://www.apple.com/safari/&quot;&gt;Safari&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/edge&quot;&gt;Edge&lt;/a&gt;, &lt;a href=&quot;https://www.opera.com/&quot;&gt;Opera&lt;/a&gt;, &lt;a href=&quot;https://brave.com/&quot;&gt;Brave&lt;/a&gt;, &lt;a href=&quot;https://librewolf.net/&quot;&gt;LibreWolf&lt;/a&gt; and hundreds of Chromium-based variants, I would have argued there is something already available for everyone and every requirement.&lt;/p&gt;

&lt;p&gt;Therefore, I was highly sceptical when I received an invitation to try &lt;a href=&quot;https://arc.net/&quot;&gt;Arc&lt;/a&gt;, a Chromium-based desktop web browser from a start-up known as “&lt;a href=&quot;https://thebrowser.company/&quot;&gt;The Browser Company of New York&lt;/a&gt;” (AKA The Browser Company).&lt;/p&gt;

&lt;p&gt;Although I have jumped between browsers over the years, I have always found myself (for better or worse) returning to Google Chrome. However, it has now been several weeks and I have not intentionally opened Google Chrome once on my Mac. Arc has become my primary browser and, as a result, my most used macOS desktop application.&lt;/p&gt;

&lt;p&gt;In my opinion, Arc has succeeded where so many others have failed. For example, when Microsoft announced the Chromium-based version of Edge, I felt there was an opportunity to build a streamlined desktop web browser, with an aggressive focus on user experience. Instead, just like Google, they delivered a vehicle to deliver ads and attempt to up-sell Microsoft services, without offering any tangible user experience improvements over Google Chrome.&lt;/p&gt;

&lt;p&gt;At its core, Arc is a Chromium-based web browser. That means it is secure, performant (or performant enough) and highly compatible (responds just like Google Chrome). It also has perfect interoperability with all existing &lt;a href=&quot;https://chrome.google.com/webstore/category/extensions&quot;&gt;Chrome extensions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The decision to build on a Chromium-base was a wise choice, helping to ensure Arc did not start life at an immediate disadvantage. In short, all of your favourite websites, web apps and extensions (e.g., developer tools, password managers, spelling/grammar checkers) will work exactly as designed.&lt;/p&gt;

&lt;p&gt;So why is Ark better than Google Chrome? In my opinion, the primary differentiator is user experience.&lt;/p&gt;

&lt;p&gt;Ark moves the traditional tab bar from the top of the browser window to a sidebar. This sounds like a trivial change, but in a world of widescreen displays, it better utilises the screen real estate, whilst also opening the door to a new workflow paradigm.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/arcbrowser01.jpg&quot; alt=&quot;Arc Browser&quot; title=&quot;Arc Browser&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The sidebar is split into “spaces”, which are personally customisable groups. For example, I have “Personal”, “Work” and “Development” spaces. Spaces can be accessed by swiping horizontally within the sidebar or by clicking the relevant icon (bottom of the sidebar). Spaces can also be isolated (if required), meaning, if you have a personal and work account for the same website or web app, you can log into both simultaneously (no tedious account switching required).&lt;/p&gt;

&lt;p&gt;Within each space, traditional tabs are split into three types, “favourites”, “pinned” and “today”.&lt;/p&gt;

&lt;p&gt;Favourites appear at the top of the sidebar and persist across spaces. They are great for websites or web apps that you frequently use regardless of your current workflow. For example, I have favourited YouTube, YouTube Music and Reddit. What is even better, Arc includes an excellent media control centre and picture-in-picture mode, meaning I can watch a YouTube video, whilst still navigating other spaces, websites and web apps.&lt;/p&gt;

&lt;p&gt;Below favourites are pinned tabs, which can be individual websites, web apps or grouped into folders. Anything that is pinned is persistent for the space and will always be available, with a quick way to return to the default location. Certain pinned websites (e.g., Google Mail, Google Calendar, Microsoft Outlook) also include special features, such as notifications and quick views. For example, within my “Work” space, I pin business websites such as Outlook Email, Outlook Calendar, Monday.com, Workday, ChatGPT, etc.&lt;/p&gt;

&lt;p&gt;Finally, “today” tabs are any tabs you opened that day. They can be easily pinned (if required). However, will automatically be moved to “Archived Tabs” at the end of each day. This archive is always available and can be searched or filtered, so nothing is ever lost.&lt;/p&gt;

&lt;p&gt;These relatively simple changes have revolutionised my web browsing workflow. Instead of having a long, horizontal row of illegible, co-mingled tabs, covering personal, work and development. I now have structured spaces, which can be switched instantly and always retain the relevant context.&lt;/p&gt;

&lt;p&gt;Arc comes pre-configured with robust security and privacy controls (including the ad-blocker &lt;a href=&quot;https://chrome.google.com/webstore/detail/ublock-origin/&quot;&gt;uBlock Origin&lt;/a&gt;), as well as a few unique features such as Split View, Easels, Notes, and Screen Capture, which further facilitate multitasking and collaboration. To be honest, I have not taken advantage of these capabilities (yet), but as far as I can tell, they are very well-integrated and are not overly obtrusive.&lt;/p&gt;

&lt;p&gt;In summary, Arc is the first browser since Firefox was first released in 2004 that has turned my head and retained my attention. It takes all the best parts of Google Chrome and restructures the user experience to better suit modern web workflows. It is not rocket science and I am honestly a little confused about how others (I am looking at you Microsoft) did not see and/or seize this opportunity. However, I am grateful for this outcome, as I would personally prefer to see an operating system-independent browser become successful.&lt;/p&gt;

&lt;p&gt;Additional information regarding The Browser Company and Arc can be found linked below. I recommend their YouTube channel, which offers great insight into the team, values, priorities and progress.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/@TheBrowserCompany&quot;&gt;The Browser Company - YouTube Channel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/ArcBrowser/&quot;&gt;Arc Browser on Reddit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My one concern would be how well The Browser Company can scale Arc, whilst retaining what makes it great. The team will undeniably be under pressure to monetise the application, which is a necessary, but dangerous path, frequently leading to shareholder-centric features vs. user-centric features.&lt;/p&gt;

&lt;p&gt;It is also worth reiterating that what makes Arc great could be fairly easily copied by one of the other big players (Google, Microsoft, Mozilla), potentially killing Arc before it has a chance to gain meaningful market share.&lt;/p&gt;

&lt;p&gt;Finally, Arc is currently only available for Apple macOS, with Microsoft Windows and Linux versions promised. There is also talk of a companion mobile app for Apple iOS, which will be interesting considering the inherent browser limitations of that platform.&lt;/p&gt;

&lt;p&gt;If you spend a lot of time using a web browser for disparate workflows (personal, work) I highly recommend you check out Arc. It is currently in beta (invite only).&lt;/p&gt;
</description>
        <pubDate>Thu, 23 Mar 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/03/23/Arc-Browser/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/03/23/Arc-Browser/</guid>
      </item>
    
      <item>
        <title>TechPoint MIRA Awards 2023</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Always to bridesmaid, never the bride! Unfortunately, we did not win the main prize. However, we appreciate the external recognition and the opportunity to engage the community. Congratulations to all the winners.&lt;/p&gt;

&lt;p&gt;In 2022, &lt;a href=&quot;/2022/03/14/techpoint-mira-awards/&quot;&gt;my team were nominated and selected as a winner for two TechPoint MIRA awards&lt;/a&gt;, specifically “Large Enterprise of the Year” and “Service Partner of the Year”.&lt;/p&gt;

&lt;p&gt;The TechPoint Mira Awards are the largest, best-known technology awards for companies operating in the state of Indiana. More than 2,000 nominees have been selected since 1999, with a total of 292 winners.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/x7Vrg9xze_E?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;This year, &lt;a href=&quot;https://techpoint.org/enter#2023awards&quot;&gt;I am pleased to report the team were nominated and selected as a winner for “Tech Team of the Year”&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This category aims to recognise teams within companies or service providers that have achieved a significant milestone in product development, design, discovery, engineering, company advancement or other through demonstrated problem-solving and/or innovation with measured outcomes.&lt;/p&gt;

&lt;p&gt;The winners of &lt;a href=&quot;https://techpoint.org/2023-mira-awards&quot;&gt;2023 TechPoint MIRA Awards&lt;/a&gt; will be announced on Saturday, 22nd April 2023. Wish us luck!&lt;/p&gt;
</description>
        <pubDate>Sat, 18 Mar 2023 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2023/03/18/TechPoint-MIRA-Awards-2023/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/03/18/TechPoint-MIRA-Awards-2023/</guid>
      </item>
    
      <item>
        <title>Godot 4</title>
        <description>&lt;p&gt;In 2021, I developed a game (&lt;a href=&quot;/ninjacaves&quot;&gt;Ninja Caves&lt;/a&gt;) using the cross-platform game engine &lt;a href=&quot;https://gamemaker.io/&quot;&gt;GameMaker Studio 2&lt;/a&gt; (now simply known as GameMaker), written in GML, targetting PC with controller support.&lt;/p&gt;

&lt;p&gt;The project started as a thirty-day coding challenge, intending to create a simple platformer game (inspired by my childhood favourite &lt;a href=&quot;https://3drealms.com/catalog/crystal-caves_7/&quot;&gt;Crystal Caves&lt;/a&gt;) that my son (six years old) could play.&lt;/p&gt;

&lt;p&gt;I documented my progress across three blog posts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/03/18/30-days-of-code/&quot;&gt;30 Days of Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/05/30-days-of-code-update/&quot;&gt;30 Days of Code - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/28/30-days-of-code-mvp/&quot;&gt;30 Days of Code - MVP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The challenge went well, providing a fun incentive to get “hands-on keyboard” for a personal project, something that I could share with my son.&lt;/p&gt;

&lt;p&gt;As a result, I continued the project beyond the original thirty days, eventually releasing the game for &lt;a href=&quot;/downloads/ninjacaves/win/NinjaCaves.zip&quot;&gt;Windows&lt;/a&gt;, &lt;a href=&quot;/downloads/ninjacaves/macos/NinjaCaves.zip&quot;&gt;macOS&lt;/a&gt;, and &lt;a href=&quot;https://apps.apple.com/us/app/ninja-caves/id1574836125&quot;&gt;iPadOS&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/05/30/ninja-caves/&quot;&gt;Ninja Caves&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/06/13/ninja-caves-update-one/&quot;&gt;Ninja Caves - Update One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/07/06/ninja-caves-release/&quot;&gt;Ninja Caves - Release&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/08/05/ninja-caves-update-two/&quot;&gt;Ninja Caves - Update Two&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Earlier today, &lt;a href=&quot;https://godotengine.org/article/godot-4-0-sets-sail/&quot;&gt;the Godot team released the highly anticipated Godot 4&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://godotengine.org/&quot;&gt;Godot&lt;/a&gt; is a free and open source 2D and 3D game engine released under the MIT license, which has been growing in popularity over the past few years. Godot offers a lightweight, cross-platform (Windows, MacOS, Linux, BSD), fully integrated game development environment, comparable to the Unreal Engine, Unity and Game Maker Studio 2.&lt;/p&gt;

&lt;p&gt;Godot supports a variety of programming languages, including the integrated language GDScript, C++ and C#. GDScript is most interesting to me, as it is a high-level, dynamically typed programming language which is syntactically similar to &lt;a href=&quot;/2016/07/07/python-cheat-sheet/&quot;&gt;Python&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Godot 4 is a major release, covering a wide range of new features. The video below from &lt;a href=&quot;https://www.youtube.com/@Gdquest&quot;&gt;GDQuest&lt;/a&gt; provides a great overview.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/chXAjMQrcZk?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I have personally been waiting for this release as a reason to dive into Godot. Therefore, I have decided to port Ninja Caves from GameMaker (GML) to Godot 4 (GDScript). The hope is to use this as a mechanism to learn Godot, building on a familiar foundation.&lt;/p&gt;

&lt;p&gt;This is very much a side project (hobby). As a result, progress will likely be very slow. However, I do plan to post occasional updates regarding my learnings, with the hope that I can eventually make the Godot version of Ninja Caves available for download.&lt;/p&gt;
</description>
        <pubDate>Wed, 01 Mar 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/03/01/Godot-4/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/03/01/Godot-4/</guid>
      </item>
    
      <item>
        <title>WinWire - Speed to Value</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://www.winwire.com/&quot;&gt;WinWire Technologies&lt;/a&gt; is a digital engineering company that supports enterprises across multiple industries. WinWire has expertise across a range of digital technologies and delivers large enterprise solutions leveraging cloud, artificial intelligence, machine learning, mixed/augmented reality, Internet of Things (IoT), mobility, security, and UI/UX.&lt;/p&gt;

&lt;p&gt;In January, the WinWire team interviewed my colleague &lt;a href=&quot;https://www.linkedin.com/in/sam-miller-664979/&quot;&gt;Sam Miller&lt;/a&gt; and I, highlighting some of our recent accomplishments. The synopsis and video can be found below.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“When Elanco began its transformation journey, starting with the announcement to separate from its parent company, complete an IPO and acquire Bayer Animal Health, they had the unique opportunity to rebuild their IT ecosystem from the ground up.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;WinWire, a Microsoft Solutions Partner and Data-driven Digital Engineering Company helped build a technology roadmap as part of Elanco’s digital transformation initiative.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Check out what Matt Bull, CTO/ CISO, and Sam Miller, Sr. Director IT – DataOps at Elanco, have to say about how WinWire has been helping the company realize significant time and cost savings.”&lt;/em&gt;&lt;/p&gt;

&lt;iframe src=&quot;https://player.vimeo.com/video/792191190?h=74c720907a&amp;amp;title=0&amp;amp;byline=0&amp;amp;portrait=0&quot; width=&quot;640&quot; height=&quot;360&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;a href=&quot;https://vimeo.com/792191190&quot;&gt;Matt Bull and Sam Miller - Elanco Animal Health&lt;/a&gt; from &lt;a href=&quot;https://vimeo.com/winwire&quot;&gt;WinWire Technologies&lt;/a&gt; on &lt;a href=&quot;https://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Alongside the interview, WinWire have published two written case studies.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.winwire.com/common-application-development/&quot;&gt;Cloud Native Development Enables Faster App Development&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.winwire.com/health-tracking-system/&quot;&gt;Modernizing Health Tracking System (HTSi)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In April, a second interview with &lt;a href=&quot;https://cybermagazine.com/&quot;&gt;Cyber Magazine&lt;/a&gt; will be published, providing additional context from a cybersecurity standpoint.&lt;/p&gt;
</description>
        <pubDate>Tue, 28 Feb 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/02/28/WinWire-Speed-to-Value/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/02/28/WinWire-Speed-to-Value/</guid>
      </item>
    
      <item>
        <title>OpenAI ChatGPT</title>
        <description>&lt;p&gt;I am extremely excited about the future of artificial intelligence (AI). In the context of business, I believe AI is primed to trigger the next wave of digital innovation, unlocking opportunities to disrupt and transform industries.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://openai.com/blog/chatgpt/&quot;&gt;In November 2022, the OpenAI research laboratory released ChatGPT&lt;/a&gt;, an AI chatbot, built on the GPT (Generative Pre-trained Transformer) family of large language models, moving artificial intelligence into the mainstream, capturing the imagination of many around the world.&lt;/p&gt;

&lt;p&gt;ChatGPT can be applied to a wide range of use cases, specifically, answering questions, creating and/or reviewing content, generating reports and summaries, accelerating research activities, translations, and much more.&lt;/p&gt;

&lt;p&gt;I believe ChatGPT (and equivalent services) have the potential to make Augmented Automation a commodity within the business, sitting alongside (and supporting) traditional IT Automation and Business Automation. The diagram below highlights one example of how I see AI chatbots (backed by a large language model) being positioned to enable new value.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/automationpositioning01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/automationpositioning01.jpg&quot; alt=&quot;Automation Positioning&quot; title=&quot;Automation Positioning&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Earlier today, Microsoft revealed their plan (backed by their &lt;a href=&quot;https://blogs.microsoft.com/blog/2023/01/23/microsoftandopenaiextendpartnership/&quot;&gt;significant OpenAI investments&lt;/a&gt;) to further integrate OpenAI capabilities across their core services, covering search, productivity, collaboration, software development, etc.&lt;/p&gt;

&lt;p&gt;I highly recommend watching the interview below with Satya Nadella (Microsoft CEO). He speaks openly about Microsoft’s strategy, customer opportunities, legal/privacy concerns and market positioning.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/QinFy0RFDr8?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;It is interesting to see Microsoft take a leadership position regarding these capabilities, especially recognising the risk of a public relations backlash, considering the immaturity of the privacy, legal and compliance regulations covering AI.&lt;/p&gt;

&lt;p&gt;With that said, I commend Microsoft for being aggressive and expect their ambition to further accelerate the rate of innovation. For example, this is a clear opportunity for Microsoft to claim market share from Google across search and advertisement. This is big business, striking at the core of the Google product portfolio. Therefore, I fully expect Google to respond, likely accelerating the public accessibility of their in-house &lt;a href=&quot;https://blog.google/technology/ai/lamda/&quot;&gt;LaMDA&lt;/a&gt; conversation technology.&lt;/p&gt;

&lt;p&gt;This could lead to a direct (and very public) battle between Microsoft and Google, ultimately shaping the future of computing.&lt;/p&gt;

&lt;p&gt;As an individual and business leader, this fierce competition is exciting and should result in positive outcomes. Specifically, rapid innovation, competitive pricing, and additional incentives to adopt.&lt;/p&gt;

&lt;p&gt;Although Microsoft has led with Bing, as a &lt;a href=&quot;https://www.microsoft.com/microsoft-365&quot;&gt;Microsoft 365&lt;/a&gt; customer, I am most interested in their plan to integrate these capabilities across their core productivity and collaboration suite (e.g., Office 365 and Teams). This would be similar to what they have started with &lt;a href=&quot;/2021/06/30/github-copilot/&quot;&gt;GitHub Copilot&lt;/a&gt;, launched back in 2021.&lt;/p&gt;

&lt;p&gt;Assuming the capabilities are not locked behind unreasonable licensing, this could be a powerful way of getting millions of users “hands-on” in a very short period. The question for Microsoft is, how do they scale and remain profitable? I assume this would be achieved through careful product/service placement to drive new advertising revenue.&lt;/p&gt;

&lt;p&gt;The response from Google, I assume would be similar (e.g., &lt;a href=&quot;https://workspace.google.com/&quot;&gt;Google Workspace&lt;/a&gt;), with a heavier emphasis placed on Google Search integration, capitalising on their dominant 83% market share.&lt;/p&gt;

&lt;p&gt;If you are interested in technology, data or AI, I highly recommend you get hands-on! &lt;a href=&quot;https://chat.openai.com/&quot;&gt;OpenAI ChatGPT&lt;/a&gt; and &lt;a href=&quot;https://www.bing.com/new&quot;&gt;Microsoft Bing AI&lt;/a&gt; are available now, with Google’s offering expected in the coming weeks/months.&lt;/p&gt;

&lt;p&gt;A word of caution, these technologies are still immature, therefore they may misrepresent information, with responses that appear convincing but are incomplete, inaccurate, or inappropriate. I would also avoid submitting any sensitive information (personal or business) to a public AI service.&lt;/p&gt;

&lt;p&gt;In the context of business, I would wait for capabilities such as &lt;a href=&quot;https://azure.microsoft.com/products/cognitive-services/openai-service&quot;&gt;Microsoft Azure OpenAI Service&lt;/a&gt; to mature, which will include the relevant security, privacy, legal and compliance controls.&lt;/p&gt;

&lt;p&gt;Exciting times are ahead! I will be watching closely.&lt;/p&gt;
</description>
        <pubDate>Wed, 08 Feb 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/02/08/OpenAI-ChatGPT/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/02/08/OpenAI-ChatGPT/</guid>
      </item>
    
      <item>
        <title>External Engagement (JAN 2023)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Both interviews are now live. &lt;a href=&quot;/2023/02/28/WinWire-Speed-to-Value/&quot;&gt;WinWire Technologies&lt;/a&gt; and &lt;a href=&quot;/2023/04/05/BizClik-Media-Interview/&quot;&gt;BizClik Media&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Earlier this month, I completed two interviews, which are both set to be published in Q1 2023.&lt;/p&gt;

&lt;p&gt;Each interview builds upon previous external engagement activities (listed below), highlighting specific business outcomes.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/09/23/GitHub-Success-Story/&quot;&gt;GitHub Success Story&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/07/14/corporate-separation-update/&quot;&gt;Corporate Separation - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/06/21/journey-to-hybrid-multi-cloud/&quot;&gt;Journey to Hybrid Multi-Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/04/05/data-to-power-decisions/&quot;&gt;Power to Make Decisions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/03/14/techpoint-mira-awards/&quot;&gt;TechPoint MIRA Awards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/01/01/cto-confessions-podcast/&quot;&gt;CTO Confessions Podcast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/11/25/Kontent-Horizons/&quot;&gt;Kontent Horizons&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/11/16/evolve-21-update/&quot;&gt;EVOLVE21 - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/10/08/devops-enterprise-forum/&quot;&gt;DevOps @ Enterprise Forum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/09/29/boomi/&quot;&gt;Boomi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lifeintech.com/2021/10/01/deloitte-experience-analytics/&quot;&gt;Deloitte Experience Analytics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/06/10/journey-to-the-cloud/&quot;&gt;Journey to the Cloud&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first interview was a customer case study with &lt;a href=&quot;https://www.winwire.com/&quot;&gt;WinWire Technologies&lt;/a&gt;, focused on Hybrid Multi-Cloud, Application Modernisation and Data Insights.&lt;/p&gt;

&lt;p&gt;WinWire is a digital engineering company that supports enterprises across multiple industries. WinWire has expertise across a range of digital technologies and delivers large enterprise solutions leveraging cloud, artificial intelligence, machine learning, mixed/augmented reality, Internet of Things (IoT), mobility, security, and UI/UX.&lt;/p&gt;

&lt;p&gt;The interview will be published as a short video, where &lt;a href=&quot;https://www.linkedin.com/in/sam-miller-664979/&quot;&gt;Sam Miller&lt;/a&gt; and I provide context regarding our successful partnership with WinWire.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/externalengagement01.jpg&quot; alt=&quot;External Engagement&quot; title=&quot;External Engagement&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The second interview was with &lt;a href=&quot;https://www.bizclikmedia.com/&quot;&gt;BizClik Media&lt;/a&gt;, which is a digital community that provides industry-specific expert insights into the fast-paced world of technology, cybersecurity, targeting executive leaders.&lt;/p&gt;

&lt;p&gt;The interview focused on scaling public cloud applications and cybersecurity, specifically enabling animal care through cloud technology and modern application architecture. It will be published in their &lt;a href=&quot;https://technologymagazine.com/&quot;&gt;Technology&lt;/a&gt;, &lt;a href=&quot;https://cybermagazine.com/&quot;&gt;Cybersecurity&lt;/a&gt; and &lt;a href=&quot;https://healthcare-digital.com/&quot;&gt;Healthcare Digital&lt;/a&gt; magazines.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/externalengagement02.jpg&quot; alt=&quot;External Engagement&quot; title=&quot;External Engagement&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I always enjoy engaging with the community and am excited to have these opportunities so early in 2023! I will post an update when the interviews are published.&lt;/p&gt;
</description>
        <pubDate>Fri, 20 Jan 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/01/20/External-Engagement-JAN-2023/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/01/20/External-Engagement-JAN-2023/</guid>
      </item>
    
      <item>
        <title>Meta Quest Casting</title>
        <description>&lt;p&gt;I have a Samsung TV (&lt;a href=&quot;https://www.samsung.com/uk/tvs/oled-tv/s95b-65-inch-oled-4k-smart-tv-qe65s95batxxu/&quot;&gt;S95B QD-OLD&lt;/a&gt;), which includes &lt;a href=&quot;https://www.samsung.com/uk/support/tv-audio-video/what-is-screen-mirroring-and-how-do-i-use-it-with-my-samsung-tv-and-samsung-mobile-device/&quot;&gt;the ability to wirelessly cast&lt;/a&gt; from Apple iOS (&lt;a href=&quot;https://www.apple.com/airplay/&quot;&gt;Apple AirPlay&lt;/a&gt;), Google Android (&lt;a href=&quot;https://www.samsung.com/smartthings/&quot;&gt;Samsung SmartThings&lt;/a&gt;) and popular apps such as Netflix and YouTube.&lt;/p&gt;

&lt;p&gt;Unfortunately, it does not have native support for &lt;a href=&quot;https://support.google.com/chromecast/answer/6006232&quot;&gt;Google Chromecast&lt;/a&gt;, instead requiring a &lt;a href=&quot;https://store.google.com/product/chromecast_google_tv&quot;&gt;third-party dongle&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This rarely causes an issue. However, the &lt;a href=&quot;/2020/03/30/oculus-quest/&quot;&gt;Meta Quest 1/2&lt;/a&gt; and &lt;a href=&quot;/2022/10/25/Meta-Quest-Pro/&quot;&gt;Meta Quest Pro&lt;/a&gt;, can only wirelessly cast to the native &lt;a href=&quot;https://apps.apple.com/us/app/meta-quest/id1366478176&quot;&gt;Meta Quest App&lt;/a&gt; or Google Chromecast.&lt;/p&gt;

&lt;p&gt;Therefore, officially, a third-party dongle would be required to cast to a Samsung TV, allowing others in the room to view the virtual reality session.&lt;/p&gt;

&lt;p&gt;Thankfully, if you have an Apple iPhone or iPad, there is a software workaround.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Download and install the &lt;a href=&quot;https://apps.apple.com/us/app/meta-quest/id1366478176&quot;&gt;Meta Quest App&lt;/a&gt; from the Apple App Store.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Ensure you are signed in on the Virtual Reality Headset and Meta Quest App, with both connected to Wi-Fi.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Select the option to cast from the Virtual Reality Headset to the Meta Quest App.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Select the option to “Screen Mirror” (Apple AirPlay) from the iPad/iPhone, targeting the Samsung TV.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With the iPhone/iPad in landscape orientation, you should now see the virtual reality session appear on the Samsung TV. Quality and latency are not perfect but do improve over time, assuming you have a fast/stable Wi-Fi connection.&lt;/p&gt;

&lt;p&gt;The photo below shows my son playing Beat Saber over Christmas.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/metaquestcasting01.jpg&quot; alt=&quot;Meta Quest Casting&quot; title=&quot;Meta Quest Casting&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can see my iPhone in front of the TV, being used as a casting proxy.&lt;/p&gt;
</description>
        <pubDate>Sun, 08 Jan 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/01/08/Meta-Quest-Casting/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/01/08/Meta-Quest-Casting/</guid>
      </item>
    
      <item>
        <title>Obsidian</title>
        <description>&lt;p&gt;Over the years, I have experimented with many applications for note-taking, including &lt;a href=&quot;/2011/01/22/notational-velocity/&quot;&gt;Notational Velocity&lt;/a&gt;, &lt;a href=&quot;https://evernote.com/&quot;&gt;Evernote&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/microsoft-365/onenote/digital-note-taking-app&quot;&gt;Microsoft OneNote&lt;/a&gt;, &lt;a href=&quot;https://simplenote.com/&quot;&gt;Simplenote&lt;/a&gt;, &lt;a href=&quot;https://www.notion.so/&quot;&gt;Notion&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;My approach to note-taking is very simple. I use &lt;a href=&quot;https://daringfireball.net/projects/markdown/&quot;&gt;markdown&lt;/a&gt; for everything, which is a lightweight markup language for creating formatted text.&lt;/p&gt;

&lt;p&gt;Markdown does not require any special software, making it very accessible, simple to learn, highly portable and human-readable without any translation.&lt;/p&gt;

&lt;p&gt;As a result, any plain text editor (e.g., &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Microsoft Visual Studio Code&lt;/a&gt;) can be used to create, modify or view documents written in markdown.&lt;/p&gt;

&lt;p&gt;With this in mind, you could question why even use a dedicated note-taking application. In short, specific features that facilitate searching and sorting of notes, which dramatically improve productivity when dealing with hundreds/thousands of disparate files.&lt;/p&gt;

&lt;p&gt;Over the past couple of years, I have been using Simplenote. However, I recently wanted to explore an option with a more versatile security model, specifically local (client-side) file encryption.&lt;/p&gt;

&lt;p&gt;Outlined below are my primary requirements:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Platform Independent (Windows, macOS, Linux, iOS, Android)&lt;/li&gt;
  &lt;li&gt;Markdown Support&lt;/li&gt;
  &lt;li&gt;Cloud Synchronisation Compatible&lt;/li&gt;
  &lt;li&gt;Local File Encryption Compatible&lt;/li&gt;
  &lt;li&gt;Tagging Support&lt;/li&gt;
  &lt;li&gt;Simplified Import/Export&lt;/li&gt;
  &lt;li&gt;Extensible&lt;/li&gt;
  &lt;li&gt;Free, Open Source and/or Code Available&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Last year, I stumbled upon &lt;a href=&quot;https://obsidian.md/&quot;&gt;Obsidian&lt;/a&gt;, which was first released in 2020, reaching &lt;a href=&quot;https://forum.obsidian.md/t/obsidian-release-v1-0-0/44873&quot;&gt;v1.0.0 in October 2022&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;obsidian&quot;&gt;Obsidian&lt;/h3&gt;

&lt;p&gt;Obsidian is a powerful and extensible knowledge base that works on top of a local folder of plain text files.&lt;/p&gt;

&lt;p&gt;At its core, Obsidian is a markdown editor and viewer.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/obsidian01.jpg&quot; alt=&quot;Obsidian&quot; title=&quot;Obsidian&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Obsidian stores all notes in a vault. A vault is essentially a collection of markdown files (notes) with some associated metadata files to maintain the user-specific Obsidian configuration.&lt;/p&gt;

&lt;p&gt;All files (including the metadata files) are completely portable and can be viewed, modified, copied, and deleted outside of Obsidian. Therefore, there is no need to rely upon proprietary import/export capabilities, as all files can be accessed directly from the filesystem.&lt;/p&gt;

&lt;p&gt;Another advantage of this approach is that the vault can be stored anywhere, including your favourite cloud synchronisation service (e.g., &lt;a href=&quot;https://www.microsoft.com/microsoft-365/onedrive/online-cloud-storage&quot;&gt;Microsoft OneDrive&lt;/a&gt;, &lt;a href=&quot;https://www.google.com/drive/&quot;&gt;Google Drive&lt;/a&gt;, &lt;a href=&quot;https://www.dropbox.com/&quot;&gt;Dropbox&lt;/a&gt;, &lt;a href=&quot;https://nextcloud.com/files/&quot;&gt;Nextcloud Files&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;p&gt;This approach means that Obsidian notes can inherit the security and record retention model associated with these services (versioning, encryption, multi-factor authentication) and/or can be locally secured (local encryption) before cloud synchronisation.&lt;/p&gt;

&lt;p&gt;Obsidian also includes features to facilitate searching and sorting. Specifically, a knowledge graph, providing a unique view into the notes, highlighting connections as well as allowing for custom groups, filters, and display options.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/obsidian02.jpg&quot; alt=&quot;Obsidian&quot; title=&quot;Obsidian&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The knowledge graph is enhanced through tags, backlinks and outgoing links, which apply additional context to each note, further broadening the view and highlighting connections.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/obsidian03.jpg&quot; alt=&quot;Obsidian&quot; title=&quot;Obsidian&quot; /&gt;&lt;/p&gt;

&lt;p&gt;These core features can be extended through a massive array of &lt;a href=&quot;https://obsidian.md/plugins&quot;&gt;plugins&lt;/a&gt;, supported by a &lt;a href=&quot;https://forum.obsidian.md/&quot;&gt;thriving community&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Overall, I have been very impressed with Obsidian and was able to transfer my existing markdown notes with almost no effort. I love the knowledge graph and am excited to explore the plugin options (whilst hopefully maintaining my desired simplicity).&lt;/p&gt;

&lt;p&gt;Obsidian is available for Windows, macOS and Linux for free. However, unfortunately, the software is not open source. Thankfully, you can examine the source code (some parts are minified/obfuscated/packed) from the developer console, which is a positive step compared to other closed/proprietary applications.&lt;/p&gt;
</description>
        <pubDate>Fri, 06 Jan 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/01/06/Obsidian/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/01/06/Obsidian/</guid>
      </item>
    
      <item>
        <title>Password Strength</title>
        <description>&lt;p&gt;With the recent &lt;a href=&quot;https://blog.lastpass.com/2022/12/notice-of-recent-security-incident/&quot;&gt;LastPass cybersecurity breach&lt;/a&gt;, it might be time to reassess your password hygiene.&lt;/p&gt;

&lt;p&gt;The table below from &lt;a href=&quot;https://www.hivesystems.io/&quot;&gt;Hive Systems&lt;/a&gt; (linked from &lt;a href=&quot;https://www.reddit.com/r/dataisbeautiful/comments/t52qxa/oc_i_updated_our_famous_password_table_for_2022/&quot;&gt;Reddit&lt;/a&gt;) estimates the time it would take to brute-force a password in 2022. It should be noted, the time will reduce as computational power increases and/or new techniques are developed.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/passwordstrength01.jpg&quot; alt=&quot;Password Strength&quot; title=&quot;Password Strength&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In short, the minimum acceptable “standard” for a password in 2022 is &lt;strong&gt;16 characters, including numbers, upper and lowercase letters, and symbols&lt;/strong&gt;. In theory, assuming the password has not been stolen, it would take up to 92 billion years to brute-force.&lt;/p&gt;

&lt;p&gt;The table assumes the lowest common denominator for password hashing, specifically MD5. Security-conscious services likely use a stronger hashing algorithm, such as PBKDF2. However, knowing that MD5 is still prevalent, it is good to understand the worst-case scenario. More details regarding the analysis can be found at &lt;a href=&quot;https://www.hivesystems.io/password-table&quot;&gt;Hive Systems&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Whilst password strength is important, usability is also critical. Therefore, even with the LastPass cybersecurity breach, I still recommend the use of a password manager. Specificlly, &lt;a href=&quot;https://1password.com/&quot;&gt;1Password&lt;/a&gt; or &lt;a href=&quot;https://bitwarden.com/&quot;&gt;Bitwarden&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A password manager enables you to create a unique username/password for every online account that meets or exceeds the previously outlined password guidance (16+ characters, etc.)&lt;/p&gt;

&lt;p&gt;As a result, only the username and password of the secure vault used by the password manager are known to the user (master credentials), which are used to unlock (decrypt) the secure vault.&lt;/p&gt;

&lt;p&gt;Secure vaults can be hosted privately or via a third party (cloud-hosted). In theory, a third-party hosted secure vault is more vulnerable, as it relies upon the host (e.g. 1Password, Bitwarden) to maintain appropriate security policies, standards, controls, processes, etc.&lt;/p&gt;

&lt;p&gt;With that said, a privately hosted secure vault requires more effort to set up and maintain, ultimately making it less convenient/viable for most people.&lt;/p&gt;

&lt;p&gt;Therefore, I recommend hosting with a trusted third party (1Password or Bitwarden), whilst ensuring your master credentials (used to encrypt your secure vault) are unique and thoroughly protected.&lt;/p&gt;

&lt;p&gt;For example, I recommend the following criteria for your master credentials:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Unique username connected to a personally owned/managed email domain (not @gmail.com)&lt;/li&gt;
  &lt;li&gt;Unique password&lt;/li&gt;
  &lt;li&gt;16 characters minimum password length&lt;/li&gt;
  &lt;li&gt;Password to include numbers, upper and lowercase letters, and symbols&lt;/li&gt;
  &lt;li&gt;Multi-Factor Authentication (MFA) enabled, ideally a physical key or an authenticator app&lt;/li&gt;
  &lt;li&gt;Secure vault only accessed via trusted (personally owned/managed) devices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The use of a physical key (e.g. &lt;a href=&quot;https://www.yubico.com/&quot;&gt;Yubikey&lt;/a&gt;) for Multi-Factor Authentication (MFA) is certainly preferred, but not always feasible. Therefore, I would recommend an authenticator app (e.g. &lt;a href=&quot;https://authy.com/&quot;&gt;Authy&lt;/a&gt;), which removes the risk of SIM-jacking attacks and/or common email exploits.&lt;/p&gt;

&lt;p&gt;Finally, it is worth checking the type of encryption used by the password manager. If PBKDF2 is used, confirm the default iteration count, which helps protect the master credentials from being brute forced. Bitwarden recommend a minimum of 600,000 iterations (I personally use 1,000,000 iterations).&lt;/p&gt;

&lt;p&gt;Will these recommendations ensure your secure vault remains secure? No, nothing can ever be guaranteed. However, for most people, I feel the approach outlined in this article achieves an appropriate balance between security and usability.&lt;/p&gt;
</description>
        <pubDate>Sun, 01 Jan 2023 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2023/01/01/Password-Strength/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2023/01/01/Password-Strength/</guid>
      </item>
    
      <item>
        <title>Microsoft Account Alias</title>
        <description>&lt;p&gt;I registered for my primary email address in 2006 (16 years ago). Since that date, it has been used as the username for countless online accounts.&lt;/p&gt;

&lt;p&gt;With hindsight, I would have used a custom domain (something that I own/manage) or created a unique username for each online account using a password manager, such as &lt;a href=&quot;https://bitwarden.com/&quot;&gt;Bitwarden&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;However, in 2006 (I was at University), cybersecurity and online privacy were not high on my priority list.&lt;/p&gt;

&lt;p&gt;Therefore, my email address is widely known, having been shared publically thousands of times, either via legitimate channels (with consent) or through one of the many cybersecurity breaches that have occurred during this time horizon.&lt;/p&gt;

&lt;p&gt;For example, the website &lt;a href=&quot;https://haveibeenpwned.com/&quot;&gt;Have I Been Pwned&lt;/a&gt; can check to see if your email address has been leaked as part of a known data breach.&lt;/p&gt;

&lt;p&gt;Thankfully, modern identity capabilities, such as Multi-Factor Authentication (MFA) and Conditional Access help to mitigate any immediate security concern.&lt;/p&gt;

&lt;p&gt;With that said, these identity capabilities will not stop a cyber adversary attempting to gain access to your online accounts via a &lt;a href=&quot;https://en.wikipedia.org/wiki/Brute-force_attack&quot;&gt;Brute-force Attack&lt;/a&gt;, &lt;a href=&quot;https://duo.com/blog/mfa-fatigue-what-is-it-how-to-respond&quot;&gt;MFA Fatigue&lt;/a&gt; and/or &lt;a href=&quot;https://en.wikipedia.org/wiki/Social_engineering_(security)&quot;&gt;Social Engineering&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A recent example is my Microsoft Account. Looking at my “Sign-in Activity”, I can see my account is under continuous attack.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/microsoftaccountalias01.jpg&quot; alt=&quot;Microsoft Account Alias&quot; title=&quot;Microsoft Account Alias&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thousands of sign-in attempts from unknown source IP addresses, usually via the web, but also using synchronisation options offered by Microsoft (Exchange ActiveSync, etc.)&lt;/p&gt;

&lt;p&gt;Although the location field highlights attempts from around the world, the actual origin of the attack will likely never be known, as a cyber adversary will use a range of techniques to obfuscate their true location.&lt;/p&gt;

&lt;p&gt;To check your Microsoft Account sign-in activity, navigate to:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;My Microsoft Account &amp;gt; Security &amp;gt; Sign-in Activity
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
As previously stated, good security hygiene and the use of modern identity capabilities will help to ensure the account remains secure. However, this level of continuous attack is a little unsettling.&lt;/p&gt;

&lt;p&gt;Therefore, if you find yourself in this position, I recommend considering a change of username (AKA Microsoft Account Alias). Unlike Apple and others, Microsoft makes this process fairly painless and it should immediately remove the risk associated with the original username.&lt;/p&gt;

&lt;p&gt;Sign in to your Microsoft account and navigate to:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;My Microsoft Account &amp;gt; Your Info &amp;gt; Edit Account Information &amp;gt; Account Alias
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Here you can add a new account alias (email address). Where possible, I recommend using a secure and privacy-centric email service (like &lt;a href=&quot;https://proton.me/mail&quot;&gt;Proton Mail&lt;/a&gt;), configured with Multi-Factor Authentication (MFA) and a custom domain.&lt;/p&gt;

&lt;p&gt;Once configured (and verified), you can set the new account alias as the primary and (if desired), remove the old account alias. The addition of an account alias may take 24 hours to propagate across all Microsoft services.&lt;/p&gt;

&lt;p&gt;Finally, select “Change Sign-in Preferences” and ensure only your new primary account alias is enabled as a sign-in option.&lt;/p&gt;

&lt;p&gt;Your account should now be secure, successfully removing the risk associated with the original username. As an additional step, I would also recommend signing out of all existing sessions. To do this, navigate to:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;My Microsoft Account &amp;gt; Security &amp;gt; Advanced Security Options
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
At this point, you should be able to select “Sign Me Out”. This process may take 24 hours to complete across all active sessions.&lt;/p&gt;
</description>
        <pubDate>Fri, 23 Dec 2022 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2022/12/23/Microsoft-Account-Alias/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/12/23/Microsoft-Account-Alias/</guid>
      </item>
    
      <item>
        <title>Unreal Engine</title>
        <description>&lt;p&gt;Since January, I’ve been following the work of &lt;a href=&quot;https://www.youtube.com/@reubs/&quot;&gt;Reuben Ward (reubs)&lt;/a&gt; via his YouTube channel, specifically his series focused on the remake of the game “&lt;a href=&quot;https://en.wikipedia.org/wiki/The_Simpsons:_Hit_%26_Run&quot;&gt;The Simpsons: Hit and Run&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;The game, “The Simpsons: Hit and Run” was developed by &lt;a href=&quot;https://en.wikipedia.org/wiki/Radical_Entertainment&quot;&gt;Radical Entertainment&lt;/a&gt; (now owned by &lt;a href=&quot;https://www.activisionblizzard.com/&quot;&gt;Activision Blizzard&lt;/a&gt;), released in September 2003 for the Sony PlayStation 2, Microsoft Xbox and Nintendo GameCube. At launch, the game received mostly positive reviews but subsequently established itself as a fan favourite.&lt;/p&gt;

&lt;p&gt;The remake project began as a “hackathon-style” challenge, where reubs attempted to remake the game in one week using &lt;a href=&quot;https://www.unrealengine.com/en-US/unreal-engine-5&quot;&gt;Unreal Engine 5&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.nme.com/en_au/news/gaming-news/the-simpsons-hit-run-has-been-remade-in-just-one-week-3021890&quot;&gt;The video documenting the process (embedded below) went viral (7.8 million views to date)&lt;/a&gt;, which prompted the questions… What if you had more than one week? How much of the game could be remade by a single developer?&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/2PBIFunhha4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;As of December, reubs has released nine videos, demonstrating unbelievable progress. At this stage, the game is largely playable and includes many “quality of life” improvements, covering performance, graphics, gameplay, artificial intelligence, etc.&lt;/p&gt;

&lt;p&gt;If you are interested in game development (or retro gaming), I highly recommend watching this series of videos (playlist linked below). Not only does reubs do an excellent job of documenting his process, which is great for learning new tips/tricks. He also delivers the content with light-hearted commentary, making it a joy to watch.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PL3gCaTLUSAUuk6mTBjNc1dwjBf4NiFcEf&quot;&gt;Remaking The Simpsons: Hit and Run in Unreal Engine 5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not only do the videos highlight the power of the Unreal Engine. They also demonstrate how far game development has evolved over the past twenty years.&lt;/p&gt;

&lt;p&gt;I find these types of personal projects inspiring and motivating. &lt;a href=&quot;/tag/gaming/&quot;&gt;Helping fuel my passion for game development&lt;/a&gt;. I have always avoided Unreal Engine in favour of other (simpler) engines, such as &lt;a href=&quot;https://godotengine.org/&quot;&gt;Godot&lt;/a&gt; and &lt;a href=&quot;https://gamemaker.io/&quot;&gt;GameMaker&lt;/a&gt;. However, these videos do open my eyes to what is possible with Unreal Engine as a single developer.&lt;/p&gt;

&lt;p&gt;I look forward to seeing how the project evolves and would love to see some formal acknowledgement/backing from Activision Blizzard.&lt;/p&gt;

&lt;p&gt;Finally, I recommend you subscribe to reubs &lt;a href=&quot;https://www.youtube.com/@reubs/&quot;&gt;YouTube channel&lt;/a&gt;, as well as support him via his &lt;a href=&quot;https://www.patreon.com/reubenward&quot;&gt;Patreon&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 18 Dec 2022 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2022/12/18/Unreal-Engine/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/12/18/Unreal-Engine/</guid>
      </item>
    
      <item>
        <title>Implementing Zero Trust</title>
        <description>&lt;p&gt;Zero Trust was first referenced in 1994. However, it was not until 2001 that the modern definition of Zero Trust started to emerge. In 2023, Zero Trust is a common “buzz term” across cybersecurity, frequently referenced by vendors, researchers, analysts, etc.&lt;/p&gt;

&lt;p&gt;I am an advocate of Zero Trust, superseding the now inadequate moat/castle strategy. Over the years, I have written a few articles about Zero Trust, as well as partnered with Microsoft to promote the core principles and concepts.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/10/31/zero-trust/&quot;&gt;Zero Trust&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/04/05/microsoft-zero-trust/&quot;&gt;Microsoft Zero Trust&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The terminology “Zero Trust” can be confusing. Therefore, when asked, I usually respond with the following definition.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Zero Trust is a strategy for IT security, which assumes that internal and external threats always exist and that all networks are inherently hostile.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The traditional concept of a perimeter is disregarded, shifting the emphasis to Identity Access Management (IAM), where all connections accessing business assets must first be authenticated and authorised.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In this scenario, IT services are individually secured and monitored at source, following the Principle of Least Privilege (PoLP).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Therefore, a holistic security posture can be maintained regardless of the user or IT service location, with appropriate threat identification and blast radius controls.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The challenge with this definition (and Zero trust in general) is how it can be tangibly applied within a business, specifically an enterprise business.&lt;/p&gt;

&lt;p&gt;Therefore, this article will aim to provide more context to Zero Trust, highlighting how I position and apply the core principles and concepts.&lt;/p&gt;

&lt;p&gt;The diagram below is a high-level architecture overview, outlining the layers that contribute to the security model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE: This high-level architecture overview will not apply to every business. It is my perspective, which can be used as a guide (starting point).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/zerotrust04.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/images/posts/zerotrust04.jpg&quot; alt=&quot;Zero Trust&quot; title=&quot;Zero Trust&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From left to right, the diagram starts with the user (e.g., employee, contractor, customer) and proceeds through layers of security to access the desired runtime system (application), supported by a range of back office services (hosting, backup, asset inventory, etc.)&lt;/p&gt;

&lt;p&gt;Vertically, the diagram highlights the need for holistic Governance, Risk and Compliance (GRC), as well as unified Security Operations, ideally fed via a standardised information/event management architecture.&lt;/p&gt;

&lt;p&gt;The bullets below provide a short description for each layer, which in a perfect world would be enabled through programmatically defined automation.&lt;/p&gt;

&lt;p&gt;This approach to automation allows policy directives and standards to be enforced proactively and consistently as controls, managed via code that can be easily verified to ensure compliance.&lt;/p&gt;

&lt;p&gt;The bullets below describe each layer.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Edge Management:&lt;/strong&gt; In the context of client-side (non-web) applications/data, specific capabilities to discover, manage and protect the user endpoint or the specific user endpoint applications and data. For example, Endpoint Management and/or Mobile Application Management (MAM).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;API Management:&lt;/strong&gt; In the context of modern web-first applications/data, specific capabilities to document, discover, access, manage, orchestrate, scale and secure API endpoints.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Security in Transit:&lt;/strong&gt; Encryption in transit for modern web-first applications/data, alongside secure remote access capabilities to interact with services that are not web-first or Internet-facing. For example, Secure Access Service Edge (SASE).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Modern Authentication:&lt;/strong&gt; Specific capabilities to prove an assertion, such as the identity of a user or computer system, including Identity  Governance Lifecycle, Multi-Factor Authentication and Public Key Infrastructure.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Authorisation:&lt;/strong&gt; Specific capabilities to manage access rights/privileges to services, with an emphasis on Least Privileged Access (specifically Privileged Access), supported by dynamic Conditional Access.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Network Security:&lt;/strong&gt; Network-based capabilities with application-layer (Layer 7) inspection and management, supporting DNS/DHCP, as well as macro and micro-segmentation of secure zones. Segmentation is especially valuable for environments that must meet specific availability and/or compliance requirements.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Hardened Source Code:&lt;/strong&gt; A case base tracked in version control, deployed via a standard pipeline that includes controls to proactively enforce quality, privacy, and security. For example, code, dependency, secret analysis, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Runtime System:&lt;/strong&gt; Real-time monitoring of the runtime environment to verify the running code and dependencies are up to date and operating as designed (no configuration drift, malicious code, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Backing Services:&lt;/strong&gt; Connected resources, accessed via a URL or other locator/credentials stored in a separate vault. Backing services could include data stores, caches, messaging services, etc. Supporting capabilities cover data catalogue, labelling, monitoring, loss prevention, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Security at Rest:&lt;/strong&gt; Encryption at rest, alongside physical security controls.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Hardened Hosting:&lt;/strong&gt; Capabilities to monitor and protect the hosting environments (Cloud, Data Centre, Edge), ensuring the foundations are hardened following the pre-defined documented standards.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Immutable Data Backup:&lt;/strong&gt; Data protection capabilities to support backup and recovery, including an immutable filesystem to protect against ransomware attacks.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Asset Inventory:&lt;/strong&gt; A dynamically maintained list of all IT assets (endpoints, appliances, services, applications, data), including the relevant metadata to manage responsibility assignment and dependency mapping, highlighting critical assets to enable risks-based decisions.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With the layers defined, a capability map can be defined (as highlighted in the diagram below). As previously stated, the required capabilities will depend on the specific business and risk posture.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/zerotrust05.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/images/posts/zerotrust05.jpg&quot; alt=&quot;Zero Trust&quot; title=&quot;Zero Trust&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s it! Hopefully, this information has provided more context regarding Zero Trust, specifically how it can be tangibly applied within a business. As an additional reference, I would recommend reviewing the &lt;a href=&quot;https://github.com/ukncsc/zero-trust-architecture&quot;&gt;The National Cyber Security Centre (NCSC) Zero Trust Architecture&lt;/a&gt;, which outlines eight key principles.&lt;/p&gt;
</description>
        <pubDate>Sat, 12 Nov 2022 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2022/11/12/Implementing-Zero-Trust/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/11/12/Implementing-Zero-Trust/</guid>
      </item>
    
      <item>
        <title>My Setup (Q4 2022)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Hardware specification updated to reflect a new Apple MacBook Pro 16-inch (JAN-2023) and Framework Laptop 13 DIY Edition 13th Generation Intel Core.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;p&gt;I switch between four devices (two desktops and two notebooks), which are primarily used for productivity, collaboration, software development, photo editing, video editing, virtual labs, gaming and game development.&lt;/p&gt;

&lt;p&gt;My daily driver is a custom-built desktop PC. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X570 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 3950X 3.5GHz Base / 4.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance LPX DDR4 PC4-28800C18 3600MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 980 Pro M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e 3.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 3090 FE 24GB GDDR6X&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;AMD Ryzen 3950X&lt;/a&gt;, &lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;Samsung 980 Pro&lt;/a&gt; and &lt;a href=&quot;/2021/02/08/GeForce-RTX-3090/&quot;&gt;Nvidia GeForce RTX 3090&lt;/a&gt; are several years old, but still considered premium components, delivering high-performance across a range of workloads (e.g., multi-threading, &lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;ray-tracing gaming&lt;/a&gt;, machine learning, video editing, etc.)&lt;/p&gt;

&lt;p&gt;I also have an Apple Mac Studio (MAR-2022), which has two user profiles, one for me and the other for my wife. She is Head of Marketing at &lt;a href=&quot;/2022/07/20/Winchester-Science-Centre/&quot;&gt;Winchester Science Centre&lt;/a&gt;, therefore is a frequent user of &lt;a href=&quot;https://affinity.serif.com/photo/&quot;&gt;Serif Affinity Photo&lt;/a&gt;, &lt;a href=&quot;https://www.apple.com/final-cut-pro/&quot;&gt;Apple Final Cut Pro&lt;/a&gt;, etc.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple Mac Studio (MAR-2022)&lt;/li&gt;
  &lt;li&gt;Apple M1 Max (10-core - 8 Performance / 2 Efficiency)&lt;/li&gt;
  &lt;li&gt;32-core GPU (10.4 Teraflops)&lt;/li&gt;
  &lt;li&gt;16-core Neural Engine&lt;/li&gt;
  &lt;li&gt;64GB Unified Memory (400GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;1TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;4x Thunderbolt 4 (40Gb/s), 2x USB-C (10Gb/s), 2x USB-A (5Gb/s), 10Gb Ethernet, HDMI, 3.5mm Headphone, SDXC Card Reader&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When remote or travelling, my daily driver is an Apple MacBook Pro 16-inch (JAN-2023). The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple MacBook Pro 16-inch (JAN-2023)&lt;/li&gt;
  &lt;li&gt;Apple M2 Max (12-core - 8 Performance / 4 Efficiency)&lt;/li&gt;
  &lt;li&gt;38-core GPU (13.6 Teraflops)&lt;/li&gt;
  &lt;li&gt;16-core Neural Engine&lt;/li&gt;
  &lt;li&gt;96GB Unified Memory (400GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;2TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;3x Thunderbolt 4, HDMI 2.1, 3.5mm Headphone, SDXC Card Reader, MagSafe 3&lt;/li&gt;
  &lt;li&gt;16.2-inch Liquid Retina XDR Display (3456x2234 @ 120Hz, 1600nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt; running (&lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora&lt;/a&gt;) for Linux-specific workloads (e.g., Docker, Ethical Hacking, etc.) I am a believer in the “right to repair”, therefore eager to support companies promoting this cause.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop DIY Edition&lt;/li&gt;
  &lt;li&gt;Intel i7-1370P 5,2GHz (14C/20T)&lt;/li&gt;
  &lt;li&gt;64GB Crucial DDR4 PC4-25600C22 3200MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Western Digital Black SN850X NVMe (7.3GB/s Read)&lt;/li&gt;
  &lt;li&gt;Intel Iris Xe Graphics&lt;/li&gt;
  &lt;li&gt;13.5-inch IPS LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB4 (USB-C), 1x USB 3.2 G2 (USB-A), 1x HDMI 2.0b&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At home, the desktop PC and Apple Mac Studio connect to a &lt;a href=&quot;/2020/08/24/super-ultrawide/&quot;&gt;49-inch Super Ultra-Wide monitor, specifically the Samsung C49RG90&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The full specification of the monitor can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Model:&lt;/strong&gt; Samsung C49RG90&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Size:&lt;/strong&gt; 49-inch&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Type:&lt;/strong&gt; VA&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Curvature:&lt;/strong&gt; 1800R&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aspect Ratio:&lt;/strong&gt; 32:9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 5120x1440&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 120Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Variable Refresh Rate:&lt;/strong&gt; AMD FreeSync 2 (48-120Hz Range)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; 4ms (GTG)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Colour Accuracy:&lt;/strong&gt; 125% sRGB, 92% Adobe RGB, 95% DCI-P3&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;High Dynamic Range:&lt;/strong&gt; HDR1000&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 600cd/m2 (Typical), 1000cd/m2 (Peak)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is kept fairly minimal, thanks to the exceptional &lt;a href=&quot;/2022/10/17/New-Home-Office/&quot;&gt;Secret Lab Magnus Pro XL&lt;/a&gt; sit-to-stand desk.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newhomeoffice06.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, for peripherals, I primarily use the &lt;a href=&quot;https://www.logitech.com/en-gb/products/keyboards/mx-mechanical.920-010779.html&quot;&gt;Logitech MX Mechanical Mini&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/products/mice/mx-master-3s.910-006559.html&quot;&gt;Logitech MX Master 3S&lt;/a&gt; and &lt;a href=&quot;https://www.insta360.com/product/insta360-link&quot;&gt;Insta360 Link&lt;/a&gt;. The keyboard and mouse were selected as they include “easy switch”, which makes it simple to toggle between multiple devices.&lt;/p&gt;

&lt;p&gt;The photo also highlights my microphone setup, which is a &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeti/&quot;&gt;Blue Yeti&lt;/a&gt; connected to the &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeticaster/&quot;&gt;Blue Yeticaster&lt;/a&gt; that includes the Compass Boom Arm and Radius III Custom Shockmount. The microphone is primarily used for video conferencing, screencasting, webinars and podcasts.&lt;/p&gt;

&lt;p&gt;The photo below provides a closer look at the Samsung C49RG90 monitor.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newhomeoffice07.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Additional peripherals include speakers (&lt;a href=&quot;https://audioengineusa.com/shop/wirelessspeakers/a1-wireless-speaker-system/&quot;&gt;AudioEngine A1&lt;/a&gt;), headphones (&lt;a href=&quot;https://www.razer.com/gb-en/gaming-headsets/Razer-BlackShark-V2/RZ04-03230100-R3M1&quot;&gt;Razer BlackShark V2&lt;/a&gt; and &lt;a href=&quot;https://www.whathifi.com/bo/beoplay-h8/review&quot;&gt;Bang &amp;amp; Olufsen BeoPlay H8&lt;/a&gt;), controller (&lt;a href=&quot;https://www.xbox.com/accessories/controllers/elite-wireless-controller-series-2&quot;&gt;Microsoft Xbox Elite Series 2&lt;/a&gt;), flight controller (&lt;a href=&quot;https://www.flightsim.com/vbfs/content.php?16051-Review-Saitek-X-55-Rhino-HOTAS-System&quot;&gt;Saitek X-55&lt;/a&gt;), steering wheel (&lt;a href=&quot;http://gaming.logitech.com/en-gb/product/g29-driving-force&quot;&gt;Logitech G29&lt;/a&gt;) and virtual reality headset (&lt;a href=&quot;https://www.meta.com/quest/quest-pro/&quot;&gt;Meta Quest Pro&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;As highlighted in the photo below, my desktop PC and Apple Mac Studio sit under the desk, with the PC case door exposed providing easy access to the components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup28.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Accompanying the desktop PC and monitor is an &lt;a href=&quot;/2021/11/18/Prusa-Research/&quot;&gt;Original Prusa MINI+&lt;/a&gt;, which is an open-source 3D printer.&lt;/p&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;https://www.hermanmiller.com/en_gb/products/seating/office-chairs/mirra-2-chairs/&quot;&gt;Herman Miller Mirra 2&lt;/a&gt; chair, which balances comfort and personalised ergonomics.&lt;/p&gt;

&lt;h3 id=&quot;home-server&quot;&gt;Home Server&lt;/h3&gt;

&lt;p&gt;Alongside my desktops and notebooks, I have a small home server, which is connected to my Samsung S95B OLED TV (65-inch). The server manages local and cloud backups, media streaming, and collaboration (video conferencing).&lt;/p&gt;

&lt;p&gt;I selected an Apple Mac mini (NOV-2018) for the server, thanks to its excellent power efficiency (150W max), high-performance I/O (4x Thunderbolt 3, 2x USB-A 3.0) and small form factor. The Mac mini also offers versatile video conferencing capabilities covering Apple FaceTime, Zoom, Microsoft Teams, Google Meet, Cisco WebEx, WhatsApp Video, etc.&lt;/p&gt;

&lt;p&gt;The full specification of the Mac mini can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple Mac mini (NOV-2018)&lt;/li&gt;
  &lt;li&gt;Intel Core i5-8500B 3.0GHz Base / 4.1GHz Boost (6C/6T)&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance Series 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;256GB PCI-e SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;2x 500GB Samsung Portable T5 SSD (USB 3.1 Gen2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 1256GB of local SSD storage is split across multiple drives for resilience, with automated backups being completed by &lt;a href=&quot;https://bombich.com/&quot;&gt;Carbon Copy Cloner&lt;/a&gt; and Cloud Storage via &lt;a href=&quot;https://www.microsoft.com/microsoft-365/onedrive/online-cloud-storage&quot;&gt;Microsoft OneDrive&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The only peripheral connected directly to the Mac mini is a &lt;a href=&quot;https://www.logitech.com/products/webcams/brio-4k-hdr-webcam.960-001106.html&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt; webcam, which delivers phenomenal video quality (4K/30fps - HDR), a wide viewing angle (90-degree dFoV) and a surprisingly good stereo, dual omnidirectional integrated microphone.&lt;/p&gt;

&lt;p&gt;To support my minimal (hidden-wire) entertainment setup, all of my AV equipment (Sony STR-DN1050 AV Receiver, Sony PlayStation 5, Apple Mac mini, Logitech Harmony Hub) is located in a cupboard under the stairs, with the required cables fed through the wall to the TV. This can be a little inconvenient when looking to insert/change physical media, but thankfully the cupboard offers plenty of room for ventilation.&lt;/p&gt;
</description>
        <pubDate>Mon, 07 Nov 2022 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2022/11/07/My-Setup-Q4-2022/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/11/07/My-Setup-Q4-2022/</guid>
      </item>
    
      <item>
        <title>Meta Quest Pro</title>
        <description>&lt;p&gt;Earlier today I received the &lt;a href=&quot;https://www.meta.com/quest/quest-pro/&quot;&gt;Meta Quest Pro&lt;/a&gt;, which is the latest Virtual Reality headset from &lt;a href=&quot;https://www.meta.com/&quot;&gt;Meta&lt;/a&gt; (formally Facebook/Oculus).&lt;/p&gt;

&lt;p&gt;My first experience of Virtual Reality was in the early-90’s when I stumbled upon a demonstration of a &lt;a href=&quot;https://virtuality.com/&quot;&gt;Virtuality 1000CS&lt;/a&gt;. However, I didn’t start to take Virtual Reality seriously until around 2016, with the release of the Oculus Rift Consumer Version (CV).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2020/03/30/oculus-quest/&quot;&gt;Over the years, I have owned multiple consumer Virtual Reality headsets&lt;/a&gt;, starting with Oculus Rift Developer Kit 2 (DK2) and most recently the Meta Quest 2.&lt;/p&gt;

&lt;p&gt;I have also explored other Mixed Reality headsets/glasses, such as &lt;a href=&quot;https://www.google.com/glass/&quot;&gt;Google Glass&lt;/a&gt; and &lt;a href=&quot;/2020/07/20/holo-lens-2/&quot;&gt;Microsoft HoloLens 2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Meta Quest Pro does not replace existing the Meta Quest 2, instead targeting a different audience. It shares the same core architecture (Qualcomm Snapdragon XR2), with the focus being new optics, sensors and controllers.&lt;/p&gt;

&lt;p&gt;The specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Qualcomm Snapdragon XR2+&lt;/li&gt;
  &lt;li&gt;Adreno 650 Graphics&lt;/li&gt;
  &lt;li&gt;Pancake Lens and Optics Technology (Non-Fresnel)&lt;/li&gt;
  &lt;li&gt;1800x1920 (Per Eye) at 72/90Hz&lt;/li&gt;
  &lt;li&gt;12GB LPDDR5 Memory&lt;/li&gt;
  &lt;li&gt;256GB Storage&lt;/li&gt;
  &lt;li&gt;10x Cameras (5x External, 5x Internal)&lt;/li&gt;
  &lt;li&gt;Touch Pro Controllers (Qualcomm Snapdragon 662, 3x Cameras)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Meta Quest Pro is £1499, which is a significant price increase from the £399 price of the Meta Quest 2.&lt;/p&gt;

&lt;p&gt;To justify this price change, Meta describes the Meta Quest Pro as a business device, not targeting consumers. With this positioning, the Meta Quest Pro sits alongside other business-centric Mixed Reality headsets, such as the &lt;a href=&quot;/2020/07/20/holo-lens-2/&quot;&gt;Microsoft Holo Lens 2&lt;/a&gt; ($3,500) and &lt;a href=&quot;https://www.magicleap.com/en-us/magic-leap-2-video&quot;&gt;Magic Leap 2&lt;/a&gt; ($3,299).&lt;/p&gt;

&lt;p&gt;I suspect this positioning will confuse and disappoint many Meta (and previous Oculus) customers that likely hoped to see a successor to the popular (and price-competitive) Meta Quest 2.&lt;/p&gt;

&lt;p&gt;This was apparent in the recent Meta Connect 2022 Unscripted Talk from &lt;a href=&quot;/2022/08/12/John-Carmack/&quot;&gt;John Carmack&lt;/a&gt;, who believes Meta should be prioritising a low-cost, mass-market virtual reality headset.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ouq5yyzSiAw?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The Meta Quest Pro is an elegant headset, with excellent build quality using premium materials.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/metaquestpro01.jpg&quot; alt=&quot;Meta Quest Pro&quot; title=&quot;Meta Quest Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The headset itself is reasonably heavy at 722g, compared to the Meta Quest 2 at 503g. However, the weight has been redistributed between the front (optics and system on a chip) and back (battery).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/metaquestpro02.jpg&quot; alt=&quot;Meta Quest Pro&quot; title=&quot;Meta Quest Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my opinion, this design makes a big difference and I certainly prefer the Meta Quest Pro over the Meta Quest 2 for prolonged usage (even with the &lt;a href=&quot;https://www.meta.com/gb/quest/accessories/quest-2-elite-strap/&quot;&gt;Elite Strap&lt;/a&gt;. With that said, Virtual Reality headsets are highly personal, similar to earphones, therefore individual comfort will vary.&lt;/p&gt;

&lt;p&gt;The new pancake lenses reduce the size of the optical stack by 40% compared to the Meta Quest 2. They work by folding light inside the optical module, delivering 75% greater contrast with a 1.3x larger colour gamut.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/metaquestpro03.jpg&quot; alt=&quot;Meta Quest Pro&quot; title=&quot;Meta Quest Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The difference is immediately noticeable, positively impacting the design of the headset and image quality when used. For example, the Meta Quest Pro is not prone to lens flaring, which is a common complaint with existing Virtual Reality headsets.&lt;/p&gt;

&lt;p&gt;Unlike the previous Touch Controllers, the Touch Pro Controllers are self-tracked, meaning that each controller has three cameras and a dedicated Qualcomm Snapdragon 662 SoC.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/metaquestpro04.jpg&quot; alt=&quot;Meta Quest Pro&quot; title=&quot;Meta Quest Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The removal of the sensor ring and the ability to track independently from the headset is a major positive. However, the extra horsepower forces a shift to rechargeable batteries, providing up to eight hours of battery life.&lt;/p&gt;

&lt;p&gt;In use, the Meta Quest Pro feels exactly like the Meta Quest 2. Although the Meta Quest Pro targets business use cases, the software (operating system) is identical to the consumer range. In fact, there are no obvious enhancements that specifically target businesses. As a comparison, the Microsoft &lt;a href=&quot;https://www.microsoft.com/en-us/hololens/buy&quot;&gt;Holo Lens 2&lt;/a&gt; supports a wide range of industrial standards, such as ISO 14644-14, ISO Class 5.0, UL Class I, and Division 2.&lt;/p&gt;

&lt;p&gt;First-party applications such as &lt;a href=&quot;https://www.oculus.com/horizon-worlds/&quot;&gt;Meta Horizon Worlds&lt;/a&gt; and &lt;a href=&quot;https://www.meta.com/gb/work/workrooms/&quot;&gt;Meta Horizon Workrooms&lt;/a&gt; are available for the Meta Quest Pro and do (in theory) support the new features, such as eye tracking.&lt;/p&gt;

&lt;p&gt;However, even with billions of dollars invested by Meta, these applications continue to be very underwhelming. At this point, they feel like a rehash of ill-fated applications such as &lt;a href=&quot;https://en.wikipedia.org/wiki/PlayStation_Home&quot;&gt;PlayStation Home&lt;/a&gt;, whilst being riddled with bugs, delivering an almost unusable (but sometimes comical) user experience.&lt;/p&gt;

&lt;p&gt;Thankfully, there are some good third-party applications (designed for the Meta Quest and Oculus range of headsets), that all work as designed on the Meta Quest Pro.&lt;/p&gt;

&lt;p&gt;Unfortunately, although the new features, such as eye tracking and the improved mixed reality mode can be generically enabled from the settings, individual applications require a specific software update to ensure full compatibility.&lt;/p&gt;

&lt;p&gt;At the time of writing, there were very few third-party applications that demonstrated these features effectively. Therefore, it is difficult to determine their overall impact compared to other headsets that lack these features.&lt;/p&gt;

&lt;p&gt;What I can state is that although the high-definition front-facing cameras certainly improve the Mixed Reality mode (compared to the Meta Quest 2), the quality is still unacceptable for everyday use.&lt;/p&gt;

&lt;p&gt;For example, reading text in the “real world” through the Meta Quest Pro is very difficult, generally requiring the text size to be increased.&lt;/p&gt;

&lt;p&gt;In many respects, the Meta Quest Pro feels confused, trying to appease the Virtual Reality community, whilst also competing against Mixed Reality headsets, such as the Holo Lens 2. This is most evident by the fact that the Meta Quest Pro is not fully enclosed, something you would expect from a dedicated Virtual Reality headset.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/metaquestpro05.jpg&quot; alt=&quot;Meta Quest Pro&quot; title=&quot;Meta Quest Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As a result of this design decision, there is a significant amount of light leakage from the sides and bottom. In theory, this is a negative for Virtual Reality, but a potential positive for Mixed Reality.&lt;/p&gt;

&lt;p&gt;The Meta Quest Pro design even looks similar to the Holo Lens 2, as demonstrated by my son. Can you spot which headset is the Meta Quest Pro? It is not immediately obvious.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/metaquestpro06.jpg&quot; alt=&quot;Meta Quest Pro&quot; title=&quot;Meta Quest Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I expected to dislike these design choices, thinking they would break the immersion of Virtual Reality and potentially contribute to motion sickness.&lt;/p&gt;

&lt;p&gt;However, surprisingly I did not find it to be an issue. After a few minutes of wearing the Meta Quest Pro, my focus recalibrated and essentially ignored the light leakage when using Virtual Reality applications.&lt;/p&gt;

&lt;h3 id=&quot;initial-impressions&quot;&gt;Initial Impressions&lt;/h3&gt;

&lt;p&gt;Looking at the Meta Quest Pro headset in isolation (ignoring all other headsets and the price), my initial impressions are mostly positive.&lt;/p&gt;

&lt;p&gt;The headset is well built and demonstrates potential, with advanced features such as pancake lenses, eye tracking, front-facing cameras, etc.&lt;/p&gt;

&lt;p&gt;I do believe it suffers from attempting to bridge the gap between Virtual Reality and Mixed Reality, essentially compromising both modes. However, it still performs well enough to make it the best overall Virtual Reality headset I have used to date.&lt;/p&gt;

&lt;p&gt;The video below shows my son playing &lt;a href=&quot;https://www.oculus.com/experiences/quest/5017327094985781/&quot;&gt;Iron Man VR&lt;/a&gt;.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/voAReQAicJE?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Unfortunately for Meta, the Meta Quest Pro is not the only headset on the market and the price is difficult to ignore when comparing features that most (consumer) users desire.&lt;/p&gt;

&lt;p&gt;Therefore, if you are looking for a good quality consumer virtual reality headset for playing games, etc. You should purchase the Meta Quest 2 (£399) or &lt;a href=&quot;https://www.picoxr.com/uk/products/pico4&quot;&gt;PICO 4&lt;/a&gt; (£379.99) (not the Meta Quest Pro). Alternatively, wait for the inevitable Meta Quest 3, which I would expect to be announced in 2023 and could even include more advanced features, such as a new System on a Chip and 120Hz Refresh Rate.&lt;/p&gt;

&lt;p&gt;If you are a business, looking to explore Mixed Reality and the “Metaverse”, the Meta Quest Pro is an interesting option. However, consumer-centric software, poor quality first-party applications and limited business-centric features reduce its relevance, resulting in a questionable return on investment.&lt;/p&gt;

&lt;p&gt;I am excited to see how the Meta Quest Pro evolves and where Meta goes next.&lt;/p&gt;
</description>
        <pubDate>Tue, 25 Oct 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/10/25/Meta-Quest-Pro/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/10/25/Meta-Quest-Pro/</guid>
      </item>
    
      <item>
        <title>CircuitMess Nibble</title>
        <description>&lt;p&gt;Knowing my love for all things technology, my wife recently purchased me a &lt;a href=&quot;https://circuitmess.com/products/nibble-diy-game-console&quot;&gt;CircuitMess Nibble&lt;/a&gt; for my birthday.&lt;/p&gt;

&lt;p&gt;The Nibble is a small, retro gaming console that must be physically built and programmed (C++ and CircuitBlocks).&lt;/p&gt;

&lt;p&gt;As highlighted by the articles below, my wife knows I enjoy completing STEM activities with my son (my daughter is still a little young), therefore the Nibble was a great gift!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lifeintech.com/2019/06/02/swift-playgrounds/&quot;&gt;Swift Playgrounds&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lifeintech.com/2020/09/04/kids-coding/&quot;&gt;Kids Coding&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lifeintech.com/2022/02/01/swift-playgrounds-4/&quot;&gt;Swift Playgrounds 4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The embedded video below highlights the Nibble in action.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/FfZlTR9CiMg?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The CircuitMess Nibble is very well packaged. However, the box only includes an EU charger. Therefore, if purchased for the UK market,  CircuitMess provide a separate adapter, which is free but not included in the box.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/circuitmessnibble01.jpg&quot; alt=&quot;CircuitMess Nibble&quot; title=&quot;CircuitMess Nibble&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Inside the box, all components are neatly packaged, including the required AAA batteries for the gaming console, solder and soldering iron safety stand.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/circuitmessnibble02.jpg&quot; alt=&quot;CircuitMess Nibble&quot; title=&quot;CircuitMess Nibble&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The instructions are also excellent, with step-by-step instructions, supported by large, clear fonts and a colourful, inviting theme.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/circuitmessnibble03.jpg&quot; alt=&quot;CircuitMess Nibble&quot; title=&quot;CircuitMess Nibble&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The build instructions are also available online, at &lt;a href=&quot;https://circuitmess.com/build&quot;&gt;circuitmess.com/build&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/circuitmessnibble04.jpg&quot; alt=&quot;CircuitMess Nibble&quot; title=&quot;CircuitMess Nibble&quot; /&gt;&lt;/p&gt;

&lt;p&gt;My son (seven years old) has never soldered before. Thankfully, CircuitMess provide details instructions, including a video tutorial featuring Collin Cunningham.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/QKbJxytERvg?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Some of the components are quite small and require force to install. Therefore, adult support throughout the build is advisable.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/circuitmessnibble05.jpg&quot; alt=&quot;CircuitMess Nibble&quot; title=&quot;CircuitMess Nibble&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The risk of breaking the device is low, except for the screen, which includes eight narrowly spaced pins. As the LCD is also fragile, I would recommend helping any children with this part.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/circuitmessnibble06.jpg&quot; alt=&quot;CircuitMess Nibble&quot; title=&quot;CircuitMess Nibble&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have completed a range of software projects with my son. However, this is his first “real” hardware build (outside of Lego). He appeared to enjoy the process and I feel seven years old is probably the right age.&lt;/p&gt;

&lt;p&gt;The only issue we had was the occasional bad solder joint and/or bridged solder joint. These can be easily rectified by re-heating the joint and cleaning the iron using the included sponge.&lt;/p&gt;

&lt;p&gt;Overall, my son and I enjoyed the build process. The next step is to programme the device and load some games!&lt;/p&gt;
</description>
        <pubDate>Thu, 20 Oct 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/10/20/CircuitMess-Nibble/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/10/20/CircuitMess-Nibble/</guid>
      </item>
    
      <item>
        <title>Day in the Life</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2018/09/23/cto/&quot;&gt;I have been the global Chief Technology Officer (CTO)&lt;/a&gt; at an &lt;a href=&quot;https://www.forbes.com/companies/elanco-animal-health/?sh=18762bf244cf&quot;&gt;enterprise business&lt;/a&gt; since 2018.&lt;/p&gt;

&lt;p&gt;Earlier this year, my role was expanded to become the &lt;a href=&quot;/2022/05/01/cto-vs-ciso/&quot;&gt;combined global Chief Technology Officer (CTO) and Chief Information Security Officer (CISO)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With approximately six months in the role, I thought I would provide an update regarding the day in the life as a combined CTO / CISO.&lt;/p&gt;

&lt;h3 id=&quot;morning&quot;&gt;Morning&lt;/h3&gt;

&lt;p&gt;My day starts between 05:30 and 06:30. I aim to wake naturally, without an alarm. As a morning person, this is rarely an issue.&lt;/p&gt;

&lt;p&gt;I usually spend the first 30mins of my day reviewing any updates that occurred overnight. This includes direct messages, as well as news and social channels, with a focus on World Events, Information Technology, Cybersecurity, Business, and Sports.&lt;/p&gt;

&lt;p&gt;Once I have myself ready, I reset the house for the day ahead. This includes tidying anything left out from the night before and preparing my kid’s school bags.&lt;/p&gt;

&lt;p&gt;My kids wake at around 07:00. My son (seven years old) is a morning person (like me) and is fairly self-sufficient. My daughter (four years old) usually requires more “encouragement”, including help getting ready for school (e.g., clothes, teeth, etc.)&lt;/p&gt;

&lt;p&gt;I prepare breakfast for my kids and make myself a &lt;a href=&quot;https://www.phd.com/synergy-iso-powder&quot;&gt;PhD Synergy All-In-One Protein&lt;/a&gt; shake (247kcal, 38g Protein, 15g Carb, 5mg Creatine) and take a &lt;a href=&quot;https://www.centrum.co.uk/products/multivitamins/centrum-advance/&quot;&gt;Centrum Advance&lt;/a&gt; Multivitamin. I rarely eat breakfast, as time is fairly limited.&lt;/p&gt;

&lt;p&gt;With breakfast complete, my kids have approximately 45mins to complete any homework (e.g., reading, spelling) and play before school. If possible, I use this time to complete any “quick wins”, which could be personal or work-related. This includes a review of my emails, targeting anything that can be instantly actioned.&lt;/p&gt;

&lt;p&gt;At 08:20, I drop my kids at school, before heading directly to the office or back home (depending on the day). I usually work from the office on Tuesdays and Thursdays, with a focus on in-person meetings and collaboration.&lt;/p&gt;

&lt;h3 id=&quot;the-working-day&quot;&gt;The Working Day&lt;/h3&gt;

&lt;p&gt;My work day is usually back-to-back, with a combination of meetings and focused time.&lt;/p&gt;

&lt;p&gt;Throughout my career as an IT professional, I have worked in operations as an analyst and delivery as an engineer, across Infrastructure, Global Services, Commercial, and Research &amp;amp; Development (R&amp;amp;D).&lt;/p&gt;

&lt;p&gt;In these roles, the majority of my time was spent as an individual contributor, supporting requirements as part of a wider team, therefore focused time was the priority (getting stuff done).&lt;/p&gt;

&lt;p&gt;As I progressed into leadership roles, either as an architect or a director, the balance shifted towards meetings. Defining and communicating strategy, steering, influencing, coaching, etc.&lt;/p&gt;

&lt;p&gt;My team are predominately based in India, Poland, UK and the US (Eastern Time). As a result, I usually connect with the India/Poland/UK team in the morning, with the afternoon dominated by the US.&lt;/p&gt;

&lt;p&gt;The global nature of the team can make time zone alignment a challenge (+5:30 to -5:00). Therefore, I accept the traditional 9-to-5 hours are not viable, instead I structure my week knowing that the start and finish times will vary, whilst ensuring time is protected to promote a healthy work / life balance.&lt;/p&gt;

&lt;p&gt;For example, I will usually find 50mins during the day to exercise (usually over the UK lunchtime). I am lucky enough to have a gym at my house, where I focus on stretching and weights (compound movements) or a metcon workout. I may also go for a run (or a ruck run), depending on how much time I have available.&lt;/p&gt;

&lt;p&gt;Where possible, I combine my exercise with an opportunity to listen to a podcast (usually technology related) or listen / watch a pre-recorded sprint demo. The goal is to maximise the working hours, whilst still breaking away from my desk and ensuring I achieve some physical activity each day.&lt;/p&gt;

&lt;p&gt;I find being able to exercise in the middle of the day very refreshing, reducing stress and allowing me to hit the afternoon with renewed energy and motivation.&lt;/p&gt;

&lt;p&gt;Regarding Lunch, I eat at my desk while working (not ideal, but a necessary evil). I usually eat a &lt;a href=&quot;https://www.musclefood.com/meals/chicken-and-rice-pots.html&quot;&gt;MuscleFood Prepped Pot&lt;/a&gt;, which tastes great, can be prepared very quickly (4-7mins heating time), as well as relatively healthy and cost-effective (&amp;lt; £3.59 per pot). For example, the Caribana Chicken Pot (358kcal, 34g Protein, 33g Carbs).&lt;/p&gt;

&lt;p&gt;I do not drink coffee, therefore I am fueled on tea and the occasional &lt;a href=&quot;https://www.phd.com/protein/whey-protein-powder/diet-whey-powder-1kg&quot;&gt;PhD Nutrition Diet Whey Protein&lt;/a&gt; shake (91kcal, 17g Protein, 2.8g Carb). I won’t eat much outside of lunch/dinner, usually some fruit and a cereal bar (e.g., &lt;a href=&quot;https://www.naturevalley.co.uk/product/protein-salted-caramel-nut/&quot;&gt;Nature Valley&lt;/a&gt;) if I am feeling drained.&lt;/p&gt;

&lt;p&gt;To help provide insight into the structure of my day, I have analysed my schedule over one month. The results can be found below, highlighting where I spend my time.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/dayinthelife01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/dayinthelife01.jpg&quot; alt=&quot;Day in the Life&quot; title=&quot;Day in the Life&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have split my work across twenty-one categories, with a few examples provided for each (not exhaustive).&lt;/p&gt;

&lt;p&gt;On average, I work 178h per month, which is approximately 119% of my contracted time. The fact that this is above 100% is not ideal, but not unexpected or unmanageable considering my role. My company and industry are very relationship-based, therefore I do have a lot of meetings, up to 8 per day, 160 per month (many of which are 30mins in length).&lt;/p&gt;

&lt;p&gt;Knowing this dataset is an average, captured over a single month, I acknowledge the balance of these categories and time consumed varies, influenced by many variables (e.g., Priorities, Workshops, Personal Commitments, etc.)&lt;/p&gt;

&lt;p&gt;Looking at the data in more detail, my top five categories are:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Executive Leadership (12%)&lt;/li&gt;
  &lt;li&gt;Team and People Development (11%)&lt;/li&gt;
  &lt;li&gt;Technical Leadership / Consultancy (8%)&lt;/li&gt;
  &lt;li&gt;Business Development and Innovation (8%)&lt;/li&gt;
  &lt;li&gt;Information Security Programme (7%)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;However, it should be noted that specific themes, such as Architecture / Engineering and Information Security are represented across multiple categories. For example:&lt;/p&gt;

&lt;p&gt;Combined Architecture / Engineering categories consume a total of 19% of my time, covering Enterprise, Solution, Data and Domain architecture and engineering.&lt;/p&gt;

&lt;p&gt;Combined Information Security categories consume a total of 16% of my time, covering Governance, Risk and Compliance, Architecture and Operations.&lt;/p&gt;

&lt;p&gt;Finally, I look for opportunities each day to step away from my desk. For example, if I have a scheduled 1:1 (in-person or virtual) I will check to see if we (or I) can walk + talk. If I am working from home, I also look for small windows of opportunity to complete some house chores (load/empty the dishwasher, washing machine, etc.) These are small tasks that left unchecked can contribute to stress.&lt;/p&gt;

&lt;h3 id=&quot;evening&quot;&gt;Evening&lt;/h3&gt;

&lt;p&gt;Except for Monday, when I collect my kids from their afterschool club and take my son to football, I usually finish work at around 17:00. I ensure that 17:00 to 19:30 is protected in my calendar, spent with my family having dinner and usually playing a game before the bedtime routine (homework, bath, stories, etc.)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/in/sarah-bull-pr/&quot;&gt;My wife&lt;/a&gt; also has a hectic work schedule as Head of Marketing at the &lt;a href=&quot;/2022/07/20/Winchester-Science-Centre/&quot;&gt;Winchster Science Centre&lt;/a&gt;, therefore I am fortunate that she can coordinate after-school clubs (e.g., swimming, etc.) and prepares the evening meal (we subscribe to &lt;a href=&quot;https://www.gousto.co.uk/&quot;&gt;Gousto&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;With the kids in bed (hopefully asleep), I occasionally need to jump back on another work meeting or if I am training for a specific event (e.g., Ultra Event, Marathon, &lt;a href=&quot;https://www.spartan.com/&quot;&gt;Obstacle Course Race&lt;/a&gt;, &lt;a href=&quot;https://hyrox.com/&quot;&gt;Hyrox&lt;/a&gt;, etc.) I squeeze in an additional exercise session.&lt;/p&gt;

&lt;p&gt;As a general rule, I try to avoid using my smartphone from 20:00 onwards, removing the temptation for work or unintentional “doomscrolling”. The only exception is a personal emergency or work major incident.&lt;/p&gt;

&lt;p&gt;I wear &lt;a href=&quot;https://www.fitbit.com/global/us/products/trackers/charge5&quot;&gt;Fitbit Charge 5&lt;/a&gt; lifestyle tracker and average 7000 steps (I would like that to be more) and 55 Active Zone Minutes per day. Considering I have a “desk job” I feel these numbers are respectable.&lt;/p&gt;

&lt;p&gt;To wind down before bed, my wife and I usually watch TV. I aim to be in bed around 22:30. I occasionally read before bed, although I do not always have the energy.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;That’s it! This structure represents a fairly accurate view of my working week, with weekends dedicated to family and friends.&lt;/p&gt;

&lt;p&gt;My wife and I do not have family that live close, therefore with two demanding jobs and two young kids, the working week is fairly intense (which can become a touch stressful).&lt;/p&gt;

&lt;p&gt;However, with a supportive wife, happy kids and great friends. Combined with a family-orientated employer, I feel incredibly fortunate and thankful.&lt;/p&gt;
</description>
        <pubDate>Wed, 19 Oct 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/10/19/Day-in-the-Life/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/10/19/Day-in-the-Life/</guid>
      </item>
    
      <item>
        <title>New Home Office</title>
        <description>&lt;p&gt;Earlier this month, I upgraded my home office.&lt;/p&gt;

&lt;p&gt;This was my first major office upgrade in over six years, prompted by the release of the &lt;a href=&quot;https://secretlab.co.uk/pages/magnus-pro&quot;&gt;Secret Lab Magnus Pro XL&lt;/a&gt; sit-to-stand desk.&lt;/p&gt;

&lt;p&gt;Over the past decade, I have been fortunate enough to have the flexibility to work from home, something that has become increasingly common post-pandemic, supported by the acceptance of hybrid working.&lt;/p&gt;

&lt;p&gt;My setup requirements have not changed much over the years, with the desk and monitor being the focal point of the room. I use computers for a wide range of tasks, specifically productivity, collaboration, software development, photo editing, video editing, virtual labs, gaming and game development. Therefore, although I have some gaming-centric peripherals, I try to keep my setup fairly neutral.&lt;/p&gt;

&lt;p&gt;I have experimented with different monitor setups, ranging from a single Apple Cinema Display (2010), &lt;a href=&quot;/2014/04/20/eyefinity/&quot;&gt;three Eyefinity configured monitors (2014)&lt;/a&gt;, and &lt;a href=&quot;/2017/05/20/my-setup-2017/&quot;&gt;dual 4K 27-inch monitors (2017)&lt;/a&gt;, resulting in &lt;a href=&quot;/2022/01/07/my-setup-2022/&quot;&gt;my current setup&lt;/a&gt;, a single &lt;a href=&quot;/2020/08/24/super-ultrawide/&quot;&gt;49-inch Super Ultrawide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The photo below highlights my outgoing setup.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup26.jpg&quot; alt=&quot;New Home Office&quot; title=&quot;New Home Office&quot; /&gt;&lt;/p&gt;

&lt;p&gt;One of my goals was to switch from a corner desk to a straight desk, reducing the overall surface area, and providing more floor space in the office itself. I also hope to reorientate my seating position, as the window facing the monitor can cause distracting glare and reflections.&lt;/p&gt;

&lt;h3 id=&quot;the-secret-lab-magnus-pro-xl&quot;&gt;The Secret Lab Magnus Pro XL&lt;/h3&gt;

&lt;p&gt;The Secret Lab Magnus Pro XL sit-to-stand desk is a sight to behold.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newhomeoffice01.jpg&quot; alt=&quot;New Home Office&quot; title=&quot;New Home Office&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At 177cm in length and 80cm wide, it is a serious desk, with a lot of surface area (although less overall surface area when compared to my previous corner desk).&lt;/p&gt;

&lt;p&gt;The all-metal construction is incredibly robust, supporting up to 120kg in weight (twice my body weight) and millimetre-specific height adjustment from 650mm to 1250mm.&lt;/p&gt;

&lt;p&gt;Unlike other sit-to-stand desks, the control panel is fully integrated into the desk itself, providing a clean, premium aesthetic. It includes touch-sensitive buttons for manual height control, four customisable pre-sets and a physical lock switch.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newhomeoffice02.jpg&quot; alt=&quot;New Home Office&quot; title=&quot;New Home Office&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The sit-to-stand motor is also fully-integrated, hidden inside the legs and connected via a single electrical socket on the bottom left leg. This electrical socket not only powers the desk but also connects to a hidden cable that provides an additional electrical socket directly to the large cable management tray.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newhomeoffice03.jpg&quot; alt=&quot;New Home Office&quot; title=&quot;New Home Office&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As a result, the cable management tray, which extends the full length of the desk, conceals all cables, with enough room for a large power extension lead. The cable management tray is accessible via an easy-access rear-hinged cover, which provides enough room to route (hide) cables and mount a monitor arm.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newhomeoffice04.jpg&quot; alt=&quot;New Home Office&quot; title=&quot;New Home Office&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, the desk complies with all relevant safety standards and regulatory requirements, including the use of a thermal circuit breaker, insulated 12AWG cables, segmentation and grounding, as well as anti-collision detection.&lt;/p&gt;

&lt;p&gt;In summary, the Secret Lab Magnus Pro XL sit-to-stand desk is the “Rolls Royce” of home office desks, with no-expense-spared materials, build quality and features.&lt;/p&gt;

&lt;p&gt;Regarding price, it is certainly a premium product, at £829. However, considering the feature set, it compares well against the premium competition.&lt;/p&gt;

&lt;h3 id=&quot;the-build&quot;&gt;The Build&lt;/h3&gt;

&lt;p&gt;I was incredibly impressed by the packaging and documentation of the Secret Lab Magnus Pro XL. Every part was well protected and structured, making the “out of the box” experience a pleasure. My only minor feedback relates to the amount of plastic used to wrap the parts, which could arguably be reduced or replaced by more environmentally friendly materials.&lt;/p&gt;

&lt;p&gt;I assembled the desk alone in about 30mins. However, I would recommend at least two people. The desk is heavy and must be flipped as part of the build process.&lt;/p&gt;

&lt;p&gt;All required tools and fixings are provided, with each part having a specific installation location and orientation. As a result, it is almost impossible to go wrong.&lt;/p&gt;

&lt;p&gt;The team over at &lt;a href=&quot;https://www.youtube.com/c/ShortCircuit&quot;&gt;ShortCircuit&lt;/a&gt; recently reviewed the desk, including the build process. I highly recommend watching their video for more details.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/UpnfTg7EhDA?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I also purchased the &lt;a href=&quot;https://secretlab.co.uk/products/cable-management-bundle?sku=Mag-CblBdl-Stealth&quot;&gt;Secret Lab cable management bundle&lt;/a&gt; and &lt;a href=&quot;https://secretlab.co.uk/products/magrgb-diffused-rgb-strip-smart-edition?sku=MAG-RGB17G-V3&quot;&gt;Secret Lab MAGRGB XL Diffused RGB Strip&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Both products connect via strong magnets, which makes installation and adjustments very simple and highly intuitive.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, I have been incredibly impressed by the Secret Lab Magnus Pro XL sit-to-stand desk, which sets the tone of the room (you are here to work).&lt;/p&gt;

&lt;p&gt;Although the desk is the most exciting and impactful change, I did take the opportunity to decorate the room and replace some peripherals/furniture.&lt;/p&gt;

&lt;p&gt;Most notably, I purchased an &lt;a href=&quot;https://www.ergotron.com/zh-sg/products/product-details/45-647#?color=black&quot;&gt;Ergotron HX Desk Monitor Arm with HD Pivot&lt;/a&gt;, which is one of the few on the market that can hold a 49-inch Super Ultrawide monitor, like my &lt;a href=&quot;https://www.lifeintech.com/2020/08/24/super-ultrawide/&quot;&gt;Samsung C49RG90&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unsurprisingly, the monitor arm is heavy-duty, with a hinge that can support up to 19.1kg (the Samsung C49RG90 is 11.6kg). It is fully compatible with the Secret Lab Magnus Pro XL, installed using the included clamp.&lt;/p&gt;

&lt;p&gt;Unfortunately, the use of premium materials results in a high price of £269.99.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newhomeoffice05.jpg&quot; alt=&quot;New Home Office&quot; title=&quot;New Home Office&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I replaced my previous three-bulb ceiling light with a &lt;a href=&quot;https://www.philips-hue.com/en-gb/p/hue-white-ambiance-aurelle-square-panel-light/8719514382626&quot;&gt;Phillips Hue Aurelle Square Panel Light&lt;/a&gt;. This diffused light reduces the glare on the display and also provides “warm” colour options, ideal for a range of different working scenarios (video conferencing, evening working, etc.)&lt;/p&gt;

&lt;p&gt;In addition, I installed a &lt;a href=&quot;https://www.amazon.co.uk/gp/product/B07VC6BP6Z/&quot;&gt;Navaris Magnetic Glass Whiteboard&lt;/a&gt; on my door, which faces the desk. This doesn’t sound exciting, but when combined with the &lt;a href=&quot;https://www.insta360.com/product/insta360-link&quot;&gt;Insta360 Link&lt;/a&gt; 4k webcam, it can be used as an augmented whiteboard whilst video conferencing.&lt;/p&gt;

&lt;p&gt;Finally, I continue to use a &lt;a href=&quot;https://www.hermanmiller.com/en_gb/products/seating/office-chairs/mirra-2-chairs/&quot;&gt;Herman Miller Mirra 2&lt;/a&gt; chair, which aims to balance comfort and personalised ergonomics in a single design.&lt;/p&gt;

&lt;p&gt;The photo below highlights my new setup, including art work from my wife (Whaam!, Roy Lichtenstein).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newhomeoffice06.jpg&quot; alt=&quot;New Home Office&quot; title=&quot;New Home Office&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk itself is essentially wall-to-wall but provides a lot of space thanks to the monitor arm.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newhomeoffice07.jpg&quot; alt=&quot;New Home Office&quot; title=&quot;New Home Office&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That’s it! My new home office setup is complete, hopefully serving me well for the years to come.&lt;/p&gt;
</description>
        <pubDate>Mon, 17 Oct 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/10/17/New-Home-Office/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/10/17/New-Home-Office/</guid>
      </item>
    
      <item>
        <title>GitHub Success Story</title>
        <description>&lt;p&gt;Earlier today, &lt;a href=&quot;https://github.com/customer-stories/elanco&quot;&gt;GitHub published a success story&lt;/a&gt; highlighting the great work completed by my DevSecOps team to standardise and automate the developer experience, whilst enforcing security standards and enhancing security visibility.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/customer-stories/elanco&quot;&gt;&lt;img src=&quot;/images/posts/githubsuccessstory01.jpg&quot; alt=&quot;GitHub Success Story&quot; title=&quot;GitHub Success Story&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With digital and data business models becoming the standard across every industry, the ability to ship reliable, scalable and secure code is more critical than ever before.&lt;/p&gt;

&lt;p&gt;As a result, the team seized the opportunity to position GitHub as the common DevSecOps platform across the enterprise, including pre-built patterns (using &lt;a href=&quot;https://www.terraform.io/&quot;&gt;HashiCorp Terraform&lt;/a&gt;) that unlock speed to value and agility through reuse, whilst promoting concepts such as innersourcing to drive continuous improvement.&lt;/p&gt;

&lt;p&gt;These patterns, combined with &lt;a href=&quot;https://github.com/features/actions&quot;&gt;GitHub Actions&lt;/a&gt; and &lt;a href=&quot;https://github.com/features/security&quot;&gt;GitHub Advanced Security&lt;/a&gt;, ensure security, privacy and quality standards are proactively enforced through programmatically defined controls.&lt;/p&gt;

&lt;p&gt;The result, in 2021, infrastructure and application provisioning took an average of 600 hours (&amp;gt; 25 days). Through the new DevSecOps automation foundation, this lead time was reduced to 30 mins (&amp;lt; 1 day).&lt;/p&gt;

&lt;p&gt;I highly recommend reviewing the &lt;a href=&quot;https://github.com/customer-stories/elanco&quot;&gt;success story&lt;/a&gt; for more details and/or connecting with the project lead, &lt;a href=&quot;https://www.linkedin.com/in/calum-bell-886654114/&quot;&gt;Calum Bell&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 23 Sep 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/09/23/GitHub-Success-Story/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/09/23/GitHub-Success-Story/</guid>
      </item>
    
      <item>
        <title>3D Printed Framework</title>
        <description>&lt;p&gt;Since May, &lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;I have been using a Framework Laptop as my daily driver&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have written a few articles highlighting my experience.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/07/Framework-Laptop-Update/2022/06/01/Framework-Performance/&quot;&gt;Framework Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/07/Framework-Laptop-Update/&quot;&gt;Framework Laptop - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/18/Framework-Laptop-Upgrade/&quot;&gt;Framework Laptop - Upgrade&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/2022/08/18/Framework-Laptop-Upgrade/&quot;&gt;I recently upgraded my laptop&lt;/a&gt;, specifically the Intel 12th Generation mainboard, adding 10 Cores and 12 Threads.&lt;/p&gt;

&lt;p&gt;This left me with my old Intel 11th Generation mainboard, which includes the very capable Intel i7-1185G7.&lt;/p&gt;

&lt;p&gt;Therefore, I decided to 3D print the &lt;a href=&quot;https://www.printables.com/model/176903-framework-pc-mainboard-case-w-vesa-mount&quot;&gt;Framework PC (mainboard) case with VESA mount&lt;/a&gt;, transforming the Framework Laptop into a Small Form Factor (SFF) PC.&lt;/p&gt;

&lt;p&gt;Although this would not be my most complex print, it would be my longest, with six files:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://media.printables.com/media/prints/176903/stls/1658923_bf624ebb-05fe-4636-992a-a6d20eb6bf00/top-right-cover-top_cover_r_full.stl#_ga=2.134667449.919040947.1661503528-611055104.1661503528&quot;&gt;Top Right&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://media.printables.com/media/prints/176903/stls/1658932_bb5f01e6-26f4-4d9b-900d-ed8dc317a77e/top-middle-cover-top_cover_main_full.stl#_ga=2.123663299.919040947.1661503528-611055104.1661503528&quot;&gt;Top Middle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://media.printables.com/media/prints/176903/stls/1658930_9e88b27c-6b6b-42e6-b25f-5e0f07a52e20/top-left-cover-top_cover_l_full.stl#_ga=2.123663299.919040947.1661503528-611055104.1661503528&quot;&gt;Top Left&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://media.printables.com/media/prints/176903/stls/1658926_825661f3-01fc-49d5-ace2-6d8dcf789f4c/bottom-right-cover-bottom_cover_r_full.stl#_ga=2.123663299.919040947.1661503528-611055104.1661503528&quot;&gt;Bottom Right&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://media.printables.com/media/prints/176903/stls/1658928_0080ada3-11e5-4f5c-a1b9-17a976a848f0/bottom-left-cover-bottom_cover_l_full.stl#_ga=2.195696740.919040947.1661503528-611055104.1661503528&quot;&gt;Bottom Left&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://media.printables.com/media/prints/176903/stls/1658931_b640cfda-20c8-4f91-8a2d-420a5b63fbe6/connector-pin-connect_pin.stl#_ga=2.195696740.919040947.1661503528-611055104.1661503528&quot;&gt;Connector Pin&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I would be using my &lt;a href=&quot;https://www.lifeintech.com/tag/prusa/&quot;&gt;Original Prusa MINI+&lt;/a&gt;, with an estimated print time of 27 hours.&lt;/p&gt;

&lt;p&gt;The case is designed to be modular, meaning it can be printed on 3D Printers with a smaller hotplate.&lt;/p&gt;

&lt;p&gt;I printed the parts over several days, starting with the bottom left.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/3dprintedframework01.jpg&quot; alt=&quot;3D Printed Framework&quot; title=&quot;3D Printed Framework&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With all parts complete, the case can be assembled (no tools required).&lt;/p&gt;

&lt;p&gt;The build precision tolerance is not perfect, but certainly good enough when acting as an Small Form Factor PC, with the appropriate gaps for cooling, expansion cards and Wi-Fi antenna points.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/3dprintedframework02.jpg&quot; alt=&quot;3D Printed Framework&quot; title=&quot;3D Printed Framework&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The middle of the case is removable, providing convenient access to the mainboard.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/3dprintedframework03.jpg&quot; alt=&quot;3D Printed Framework&quot; title=&quot;3D Printed Framework&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The case includes the required mounting holes for the mainboard, compatible with the original screws. However, screwing into PLA can be imprecise.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/3dprintedframework04.jpg&quot; alt=&quot;3D Printed Framework&quot; title=&quot;3D Printed Framework&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This fun little experiment highlights the potential when the hardware is designed to be serviceable. With very little effort and almost no additional cost, I now have a Small Form Factor PC, only missing memory, storage and a Wi-Fi module.&lt;/p&gt;

&lt;p&gt;I am excited to see what the community come up with next!&lt;/p&gt;
</description>
        <pubDate>Fri, 19 Aug 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/08/19/3D-Printed-Framework/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/08/19/3D-Printed-Framework/</guid>
      </item>
    
      <item>
        <title>Framework Laptop - Upgrade</title>
        <description>&lt;p&gt;Since May, &lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;I have been using a Framework Laptop as my daily driver, running Fedora 36&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have written a few articles highlighting my experience.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/07/Framework-Laptop-Update/2022/06/01/Framework-Performance/&quot;&gt;Framework Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/08/07/Framework-Laptop-Update/&quot;&gt;Framework Laptop - Update&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fulfilling the vision of Framework, I recently ordered two upgrade parts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/display-hinge-kit?v=FRANFB0002&quot;&gt;Hinge Kit 4kg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/12-gen-intel-upgrade-kit?v=FRUPGRDKIT03&quot;&gt;Upgrade Kit Intel i7-1280P and Top Cover (CNC)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hinge targets a personal criticism highlighted in my &lt;a href=&quot;/2022/08/07/Framework-Laptop-Update/&quot;&gt;previous article&lt;/a&gt;. The original hinge was not overly robust, resulting in noticeable display wobble when typing. Likely subjective, but this was a point of frustration for me.&lt;/p&gt;

&lt;p&gt;The upgrade kit is the real star of the show, specifically the Intel i7-1280P. The new Top Cover is a welcome addition, but not something I would consider essential.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptopupgrade01.jpg&quot; alt=&quot;Framework Laptop Upgrade&quot; title=&quot;Framework Laptop Upgrade&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As highlighted in my previous articles, the original 11th Generation Intel i7 Processor (Tiger Lake) is very capable for daily usage (productivity and collaboration), but certainly not a high-performance part. The full specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Processor:&lt;/strong&gt; Intel i7-1185G7&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cores:&lt;/strong&gt; 4&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Threads:&lt;/strong&gt; 8&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Max Turbo Frequency:&lt;/strong&gt; 4.8GHz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Base Frequency:&lt;/strong&gt; 3.00 GHz TDP-Up (1.2GHz TDP-Down)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cache:&lt;/strong&gt; 12MB&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;TDP Maximum:&lt;/strong&gt; 28 W&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;TDP Minimum:&lt;/strong&gt; 12 W&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Graphics:&lt;/strong&gt; Intel Iris Xe Graphics (1.35GHz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 12th Generation Intel Core i7 Processor (Alder Lake) is a significant improvement, with more cores, threads and cache, but also higher power consumption. The full specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Processor:&lt;/strong&gt; Intel i7-1280P&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cores:&lt;/strong&gt; 14 (6 Performance / 8 Efficiency)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Threads:&lt;/strong&gt; 20&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Max Turbo Frequency:&lt;/strong&gt; 4.8GHz (3.6GHz Efficiency)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Base Frequency:&lt;/strong&gt; 1.8GHz (1.3GHz Efficiency)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cache:&lt;/strong&gt; 24MB&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;TDP Maximum:&lt;/strong&gt; 64 W&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;TDP Base:&lt;/strong&gt; 28 W&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;TDP Minimum:&lt;/strong&gt; 20 W&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Graphics:&lt;/strong&gt; Intel Iris Xe Graphics (1.45GHz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am not aware of any other laptop where you can upgrade the mainboard, incrementing the architecture generation (Intel 11th Generation to 12th Generation), whilst adding 10 Cores, 12 Threads and doubling the Cache (12MB to 24MB).&lt;/p&gt;

&lt;p&gt;In my opinion, the launch of the Intel 12th Generation mainboard validates the “right to repair” model defined by Framework, as it is an order of magnitude more complex than “simple” upgrades, such as the display, battery, etc.&lt;/p&gt;

&lt;h3 id=&quot;upgrade-experience&quot;&gt;Upgrade Experience&lt;/h3&gt;

&lt;p&gt;I decided to replace the mainboard, display hinges and top cover at the same time, although this could be completed incrementally. All other components, including the memory and storage, were reused from my Intel 11th Generation laptop.&lt;/p&gt;

&lt;p&gt;Although it is technically possible to swap the mainboard without reinstalling the operating system, I had already decided to do a clean install of Fedora 36 post upgrade.&lt;/p&gt;

&lt;p&gt;The entire upgrade process is completed via one tool, the included screwdriver (T5/PH0 double-sided bit). Access to the mainboard is achieved via the input cover, which is released via 5 magnetic screws on the bottom cover&lt;/p&gt;

&lt;p&gt;All primary components include a QR code, which links to the specific user servicing guide. This is a nice touch and very pro-consumer.&lt;/p&gt;

&lt;p&gt;I started with the mainboard itself, which includes &lt;a href=&quot;https://guides.frame.work/Guide/Mainboard+Replacement+Guide/79&quot;&gt;34 steps&lt;/a&gt;, but I am pleased to report was very simple.&lt;/p&gt;

&lt;p&gt;With the seven connectors and five screws removed, the mainboard easily lifts from the chassis.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptopupgrade02.jpg&quot; alt=&quot;Framework Laptop Upgrade&quot; title=&quot;Framework Laptop Upgrade&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Even with the more powerful processor, the cooling solution on the Intel 12th Generation mainboard is similar in design, size and weight to the Intel 11th Generation. It will be interesting to see how effectively it cools the additional 10 Cores and 12 Threads.&lt;/p&gt;

&lt;p&gt;The mainboard upgrade took less than 10 minutes to complete. The only area that requires additional focus was the removal of the connectors, as some of the flex cables are delicate.&lt;/p&gt;

&lt;p&gt;Next, was the hinge and top case upgrade.&lt;/p&gt;

&lt;p&gt;This was a little more fiddly. The top case upgrade includes &lt;a href=&quot;https://guides.frame.work/Guide/Top+Cover+Replacement+Guide/118&quot;&gt;21 steps&lt;/a&gt;, requiring the removal of the display, camera module and Wi-Fi antenna cables, which are all delicate components.&lt;/p&gt;

&lt;p&gt;I had to pay special attention to the Wi-Fi antenna cables, which include tiny connectors and are routed across the mainboard into the top case. This is not a criticism of Framework, simply a required compromise to ensure industry standards are maintained.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptopupgrade03.jpg&quot; alt=&quot;Framework Laptop Upgrade&quot; title=&quot;Framework Laptop Upgrade&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The hinge (two parts) was a simpler &lt;a href=&quot;https://guides.frame.work/Guide/Hinge+Replacement+Guide/104&quot;&gt;18 step&lt;/a&gt; process, with the only minor frustration being the strength of the magnets used as part of the Framework top case design, which tended to attract the screws from the screwdriver when installing.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptopupgrade04.jpg&quot; alt=&quot;Framework Laptop Upgrade&quot; title=&quot;Framework Laptop Upgrade&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you plan to upgrade the top case and hinges, I would recommend purchasing them together, knowing the installation requires similar steps.&lt;/p&gt;

&lt;p&gt;With the new hinges and top case installed, I could immediately feel the difference, specifically, the hinges, which require more force to manoeuvre, removing the wobble when typing.&lt;/p&gt;

&lt;p&gt;The top case impact is less apparent, which considering it was the most “complex” part to upgrade, makes me question the value.&lt;/p&gt;

&lt;p&gt;The hinges and top case took around 20 minutes to upgrade, with most of the time spent ensuring the display, camera module and Wi-Fi antenna were removed and reinstalled without damage.&lt;/p&gt;

&lt;p&gt;With the upgrades complete and existing memory and storage were re-installed.&lt;/p&gt;

&lt;p&gt;The UEFI BIOS confirmed all the components were detected as expected and the new Intel 12th Generation mainboard was running the &lt;a href=&quot;https://knowledgebase.frame.work/en_us/framework-laptop-bios-and-driver-releases-12th-gen-intel-core-Bkx2kosqq&quot;&gt;latest BIOS version&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At which point, I inserted the &lt;a href=&quot;https://docs.fedoraproject.org/en-US/quick-docs/creating-and-using-a-live-installation-image/&quot;&gt;Fedora Installation Media (USB Drive)&lt;/a&gt; and reinstalled the operating system.&lt;/p&gt;

&lt;p&gt;Upon completion, I am pleased to report the drivers for the Intel 12th Generation mainboard were immediately detected and initialised by Fedora 36 (Linux Kernel 5.18.17).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptopupgrade05.jpg&quot; alt=&quot;Framework Laptop Upgrade&quot; title=&quot;Framework Laptop Upgrade&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The only issue I have encountered relates to the display brightness hotkeys, which failed to respond. Thankfully, the Framework team were aware of the issue and had posted a &lt;a href=&quot;https://guides.frame.work/Guide/Fedora+36+Installation+on+the+Framework+Laptop/108&quot;&gt;knowledge article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In short, there is a conflict between the Ambient Light Sensor (ALS) and the display brightness hotkeys. Therefore, at this time, only one can work. I always disable the Ambient Light Sensor on Linux (I find it to be unreliable), therefore decided to enable the hotkeys using the following command. Once executed, you must restart your laptop.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo grubby --update-kernel=ALL --args=&quot;module_blacklist=hid_sensor_hub&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
That’s it! In 30 minutes, I have added 10 Cores, 12 Threads, a more rigid hinge and a robust CNC top case.&lt;/p&gt;

&lt;p&gt;Great work to the Framework team for delivering against their “right to repair” promise and producing a high-quality product with excellent (user-centric) &lt;a href=&quot;https://guides.frame.work/c/Framework_Laptop&quot;&gt;documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;Regarding performance, I used my &lt;a href=&quot;/2022/06/01/framework-performance/&quot;&gt;previous Geekbench score and Docker build time&lt;/a&gt; as a reference.&lt;/p&gt;

&lt;h4 id=&quot;intel-i7-1185g7&quot;&gt;Intel i7-1185G7&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Single-Core Score: 1727&lt;/li&gt;
  &lt;li&gt;Multi-Core Score: 6134&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;intel-i7-1280p&quot;&gt;Intel i7-1280P&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Single-Core Score: 1860&lt;/li&gt;
  &lt;li&gt;Multi-Core Score: 10822&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, &lt;a href=&quot;https://www.geekbench.com/&quot;&gt;Geekbench&lt;/a&gt; highlights a healthy 76% increase for multi-core workloads.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptopupgrade06.jpg&quot; alt=&quot;Framework Laptop Upgrade&quot; title=&quot;Framework Laptop Upgrade&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This result is not a surprise, considering the Intel 12th Generation mainboard includes 10 additional cores and 12 additional threads. The single-core performance is less exciting, showing a modest 7.7% increase.&lt;/p&gt;

&lt;p&gt;Regarding Docker, I executed &lt;a href=&quot;/2022/03/15/docker-and-apple-silicon/&quot;&gt;my standard build&lt;/a&gt;, a project that includes over 4000 individual files and 800MB of data.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Intel i7-1185G7: 55 Seconds&lt;/li&gt;
  &lt;li&gt;Intel i7-1280P: 38 Seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was an impressive result, highlighting a 40% decrease in build time. Any build time decrease is always welcomed, as it can be very disruptive when integrating code throughout the day.&lt;/p&gt;

&lt;p&gt;Finally, it is worth mentioning battery life.&lt;/p&gt;

&lt;p&gt;Actual usage is very respectable for a Linux laptop, but cannot rival a modern Apple MacBook. With a varied workload, I have been achieving between 6 to 8 hours, although more consistently able to reach 8 hours when compared to the Intel 11th Generation.&lt;/p&gt;

&lt;p&gt;The main issue with the Intel 11th Generation was the battery drain when sleeping. As a result, &lt;a href=&quot;/2022/05/27/framework-and-fedora/&quot;&gt;I was forced to switch the sleep state from the default “s2idle” to “deep”.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Previously, with the sleep state set to “s2idle”, the battery percentage would drop by approximately 15% per hour, resulting in a maximum sleep time of 6.5 hours before the battery would die (very frustrating).&lt;/p&gt;

&lt;p&gt;With the sleep state set to “deep”, the battery percentage drop improved to around 1.6% per hour, achieving a more respectable (but still bad) 14.4% drop overnight (nine hours). However, this change has a trade-off regarding wake time, which can take upwards of 15 seconds.&lt;/p&gt;

&lt;p&gt;The Intel 12th Generation appears to deliver better results, achieving an equivalent 1.6% per hour battery drain with the sleep state set to the default “s2idle”.&lt;/p&gt;

&lt;p&gt;Compared to a modern Apple MacBook (or even a Windows laptop), these sleep numbers are still horrible. However, they are now at least manageable with the Intel 12th Generation and will hopefully continue to improve over time with new firmware/software releases.&lt;/p&gt;

&lt;p&gt;In conclusion, I am very pleased with the upgrade process and improved performance, specifically multi-core and battery life when sleeping.&lt;/p&gt;

&lt;p&gt;Things are still not perfect, but certainly, a positive step forward, building upon an already very solid foundation.&lt;/p&gt;

&lt;p&gt;I look forward to seeing what comes next for Framework, maybe the addition of an &lt;a href=&quot;https://www.amd.com/en/products/processors-laptop&quot;&gt;AMD Ryzen-based&lt;/a&gt; mainboard and/or new display options offering anti-reflective coating, higher refresh rates, etc.&lt;/p&gt;
</description>
        <pubDate>Thu, 18 Aug 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/08/18/Framework-Laptop-Upgrade/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/08/18/Framework-Laptop-Upgrade/</guid>
      </item>
    
      <item>
        <title>John Carmack</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/John_Carmack&quot;&gt;John Carmack&lt;/a&gt;, legendary programmer and co-founder of &lt;a href=&quot;https://www.idsoftware.com/&quot;&gt;id Software&lt;/a&gt; recently completed an in-depth interview with &lt;a href=&quot;https://lexfridman.com/&quot;&gt;Lex Fridman&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I consider Carmack one of the most influential thought leaders in technology, alongside Linus Torvalds, Steve Wozniak, Bill Gates, Tim Berners-Lee, etc.&lt;/p&gt;

&lt;p&gt;In the context of programming, Carmack is notable as his contributions extend multiple decades, with most other technology leaders transitioning to a business and/or ambassador role.&lt;/p&gt;

&lt;p&gt;Carmack is best known for being the lead programmer of many blockbuster video games including Commander Keen, Wolfenstein 3D, Doom, Quake, etc. He was also CTO of Oculus VR, &lt;a href=&quot;https://www.youtube.com/watch?v=kw-DlWwlXHo&quot;&gt;delivering the demo that launched the modern era of virtual reality&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Fridman interview is certainly long (five hours), but provides an incredible insight into the mind of Carmack, covering his career highlights, the state of programming, personal experiences, controversy, work/life balance, and future innovation across space exploration and artificial intelligence.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/I845O57ZSy4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;If you are interested in technology (specifically programming), I highly recommend you watch the interview.&lt;/p&gt;

&lt;p&gt;In a world dominated by micro-blogging and brand-endorsed influencers, this type of detailed, unbiased, uninterrupted interview from a credible source is very rare.&lt;/p&gt;
</description>
        <pubDate>Fri, 12 Aug 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/08/12/John-Carmack/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/08/12/John-Carmack/</guid>
      </item>
    
      <item>
        <title>Framework Laptop - Update</title>
        <description>&lt;p&gt;Since May, &lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;I have been using a Framework Laptop, running Fedora 36&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;2022/06/01/Framework-Performance/&quot;&gt;Framework Performance&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With three months of usage, I thought I would share an update regarding my experience.&lt;/p&gt;

&lt;h3 id=&quot;performance-and-reliability&quot;&gt;Performance and Reliability&lt;/h3&gt;

&lt;p&gt;The specification of my Framework Laptop can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop DIY Edition&lt;/li&gt;
  &lt;li&gt;Intel i7-1185G7 4.80GHz (4C/8T)&lt;/li&gt;
  &lt;li&gt;64GB Crucial DDR4 PC4-25600C22 3200MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Western Digital Black SN850 NVMe (7GB/s Read)&lt;/li&gt;
  &lt;li&gt;Intel Iris Xe Graphics&lt;/li&gt;
  &lt;li&gt;13.5-inch LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB4 (USB-C), 1x USB 3.2 G2 (USB-A), 1x HDMI 2.0b&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Considering its relatively low-powered processor (Intel i7-1185G7 - 28 W), the Framework Laptop has been impressively performant for daily productivity and collaboration tasks.&lt;/p&gt;

&lt;p&gt;For example, my common workflow includes the following applications:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.insynchq.com/&quot;&gt;InSync&lt;/a&gt; (Google Drive and Microsoft OneDrive)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.co.uk/chrome/&quot;&gt;Google Chrome&lt;/a&gt; (Multiple Tabs)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.libreoffice.org/&quot;&gt;LibreOffice&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://krita.org/&quot;&gt;Krita&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yoga.flozz.org/&quot;&gt;YOGA Image Optimizer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Microsoft Visual Studio Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.qemu.org/&quot;&gt;QEMU/KVM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://obsproject.com/&quot;&gt;OBS Studio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://1password.com/&quot;&gt;1Password&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/microsoft-teams/&quot;&gt;Microsoft Teams&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All applications perform well (highly responsive), except for Microsoft Teams, which tends to “stutter” and severely impact battery life when the video is enabled.&lt;/p&gt;

&lt;p&gt;It would be easy to assume this issue is unique to the Linux version of Microsoft Teams, but I have seen similar results with macOS and even Windows. Therefore, I have found accessing Microsoft Teams via the browser to be a better overall experience.&lt;/p&gt;

&lt;p&gt;Regarding performance numbers, &lt;a href=&quot;2022/06/01/Framework-Performance/&quot;&gt;I did share a few benchmarks in my previous article&lt;/a&gt;. In short, all results (CPU, GPU, Memory, Storage) match industry expectations and I am pleased to report performance has remained consistent over time.&lt;/p&gt;

&lt;p&gt;I have not seen any evidence of thermal throttling impacting real-world performance, even with an ambient temperature of 35+ degrees Celcius. This is impressive, considering the relatively small cooling solution.&lt;/p&gt;

&lt;p&gt;Fedora itself runs amazingly well on the Framework Laptop! Outside of a few occasional application errors, the operating system has been “bulletproof”, with perfect hardware compatibility out of the box.&lt;/p&gt;

&lt;p&gt;I rarely shut down the laptop, which over a week of work would usually highlight any software/hardware instability. To date, I have not experienced a full system crash.&lt;/p&gt;

&lt;p&gt;Overall, I would state this is the best Linux laptop I have ever used/owned, including more expensive alternatives such as the &lt;a href=&quot;/2020/10/08/linux-at-work/&quot;&gt;Dell XPS 13&lt;/a&gt;, &lt;a href=&quot;/2020/08/02/dell-xps-17/&quot;&gt;Dell XPS 17&lt;/a&gt; and &lt;a href=&quot;/2019/02/06/thinkpad-x1-extreme/&quot;&gt;Lenovo ThinkPad X1 Extreme&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;build-quality&quot;&gt;Build Quality&lt;/h3&gt;

&lt;p&gt;The Framework Laptop is built extremely well. The actual build quality (materials and manufacturing refinement) does not compete with premium options (Apple Mac) but it is certainly high quality.&lt;/p&gt;

&lt;p&gt;I have used the laptop from multiple locations, including home, work and travelling.&lt;/p&gt;

&lt;p&gt;I treat the laptop with respect, but it has certainly taken its share of “bumps and clunks”, especially when travelling, where it is frequently thrown into my bag without a protective case.&lt;/p&gt;

&lt;p&gt;In addition, I have disassembled the laptop multiple times, demonstrating the serviceable features to friends and coworkers. This is clearly “above and beyond” what would be expected as standard.&lt;/p&gt;

&lt;p&gt;I have owned other laptops that have shown signs of wear and tear very quickly, including scratches and marks across the palm rests and ports, as well as dents on the top cover.&lt;/p&gt;

&lt;p&gt;I am pleased to report that this has not been the case with the Framework Laptop, which looks as good today as it did when purchased.&lt;/p&gt;

&lt;p&gt;Unfortunately, not everything is perfect…&lt;/p&gt;

&lt;p&gt;The standard display hinge is weak and tends to wobble when typing (even on a solid surface). The display lid is also more flexible than most, which doesn’t impact daily usage, but makes the laptop feel less “premium”.&lt;/p&gt;

&lt;p&gt;I suspect this is a required compromise to ensure the display is serviceable, making it more difficult to reinforce the bezel or cover the display with protective glass.&lt;/p&gt;

&lt;p&gt;Thankfully, highlighting the power and flexibility of the Framework philosophy, the team have responded to these areas of feedback, with a new 4kg display hinge and a more robust CNC top cover. I will likely purchase both in the future.&lt;/p&gt;

&lt;p&gt;Finally, it is worth mentioning the expansion cards, which are a huge selling point but can be very difficult to release (requiring a lot of pressure).&lt;/p&gt;

&lt;p&gt;Ironically, the locking mechanism appears to be very small (a potential point of failure), therefore it is a little surprising how well they secure the expansion cards.&lt;/p&gt;

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

&lt;p&gt;Overall, I have enjoyed using the Framework Laptop. When assessed as a total package, including the price, serviceability, performance and build quality, I would argue it offers a compelling value proposition.&lt;/p&gt;

&lt;p&gt;With that said, it is worth acknowledging the strengths/weaknesses of the individual parts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Display:&lt;/strong&gt; Great resolution and aspect ratio. Image quality is average. However, my main complaint is the reflective nature of the display, which makes it difficult to use in certain lighting.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Keyboard:&lt;/strong&gt; Perfect! Although subjective, the Framework Laptop has one of the best laptop keyboards I have ever used.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Trackpad:&lt;/strong&gt; Good, but not great. Certainly not comparable to an Apple MacBook, but equal to most Windows laptops I have used, with good sensitivity, responsiveness and reliability.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Fingerprint Reader:&lt;/strong&gt; Acceptable: A useful addition that is not as convenient as Windows Hello or as accurate/responsive as Apple TouchID.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Camera/Microphone:&lt;/strong&gt; Acceptable. The camera and microphone are perfectly adequate for basic video conferencing, although not something you would want to rely upon for anything more professional.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Speakers:&lt;/strong&gt; Bad. Maybe I have been spoiled by the latest Apple MacBook Pro or there is a driver issue with Linux (I have not tested Windows natively), but the speakers simply sound bad. Be prepared to use headphones.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The good news, each part listed above is independently serviceable. Therefore, just as we have seen with the new hinge and top cover, Framework could conceivably produce and sell individual upgrades.&lt;/p&gt;

&lt;p&gt;For example, I would love to see them deliver a new display with an anti-reflective coating or a new high-resolution camera module.&lt;/p&gt;

&lt;p&gt;This is completely viable with the Framework Laptop, something that would be almost impossible with any other laptop.&lt;/p&gt;

&lt;h3 id=&quot;battery-life&quot;&gt;Battery Life&lt;/h3&gt;

&lt;p&gt;The last area to highlight is battery life.&lt;/p&gt;

&lt;p&gt;This is a controversial area, as there are known limitations with the Intel 11th Generation architecture and Linux. Therefore, please recognise that your experience will be very different if running Windows natively.&lt;/p&gt;

&lt;p&gt;As stated in my article “&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;”, I was forced to switch the sleep state from “s2idle” to “deep”. This change results in a slower resume time, but it dramatically improves the battery life when sleeping.&lt;/p&gt;

&lt;p&gt;With that said, battery life is still fairly average.&lt;/p&gt;

&lt;p&gt;When sleeping, the battery percentage dropped by approximately 1.6% per hour, meaning a total of 14.4% overnight (nine hours).&lt;/p&gt;

&lt;p&gt;In use, avoiding sustained “heavy” workloads, I would average around 6 hours of battery life, which could easily drop to below 4 hours with more demanding (Encoding, Development Builds) or less well-optimised (Microsoft Teams) workloads.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Even with its faults, I love the Framework Laptop!&lt;/p&gt;

&lt;p&gt;Yes, I am biased toward the mission of Framework to produce a laptop that respects the consumer’s right to repair and upgrade.&lt;/p&gt;

&lt;p&gt;However, even when reviewing in isolation of the overall mission, the Framework Laptop is excellent, delivering a “best in class” Linux experience.&lt;/p&gt;

&lt;p&gt;What is next for my Framework journey? I have ordered the following two upgrade parts from the &lt;a href=&quot;https://frame.work/gb/en/marketplace&quot;&gt;Framework marketplace&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/display-hinge-kit?v=FRANFB0002&quot;&gt;Hinge Kit 4kg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/12-gen-intel-upgrade-kit?v=FRUPGRDKIT03&quot;&gt;Upgrade Kit Intel i7-1280P and Top Cover (CNC)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am most excited to see how the Intel i7-1280P (14 Cores / 20 Threads) processor performs, recognising the significant increase in core count and power.&lt;/p&gt;

&lt;p&gt;This upgrade will also unlock my existing Intel i7-1185G7 mainboard, which I plan to reuse with the &lt;a href=&quot;https://www.printables.com/model/176903-framework-pc-mainboard-case-w-vesa-mount&quot;&gt;3D printed Framework PC (Mainboard) case&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Stay tuned for updates.&lt;/p&gt;
</description>
        <pubDate>Sun, 07 Aug 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/08/07/Framework-Laptop-Update/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/08/07/Framework-Laptop-Update/</guid>
      </item>
    
      <item>
        <title>Cybersecurity Hardware Tools</title>
        <description>&lt;p&gt;Last month, I shared a list of safe and legal “&lt;a href=&quot;/2022/07/16/cybersecurity-resources/&quot;&gt;Cybersecurity Resources&lt;/a&gt;”, covering websites, videos, training, ethical hacking, etc.&lt;/p&gt;

&lt;p&gt;In the article, I also highlighted three hardware tools, specifically the &lt;a href=&quot;https://shop.hak5.org/products/usb-rubber-ducky&quot;&gt;Hak5 Rubber Ducky&lt;/a&gt;, &lt;a href=&quot;https://shop.hak5.org/products/wifi-pineapple&quot;&gt;Hak5 WiFi Pineapple&lt;/a&gt; and &lt;a href=&quot;https://flipperzero.one/&quot;&gt;Flipper Zero&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This article will provide more details regarding these hardware tools and their usage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE: These tools must be used legally/ethically. For example, I use them for education, penetration testing, etc.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;hak5-rubber-ducky&quot;&gt;Hak5 Rubber Ducky&lt;/h3&gt;

&lt;p&gt;The &lt;a href=&quot;https://shop.hak5.org/products/usb-rubber-ducky&quot;&gt;Hak5 Rubber Ducky&lt;/a&gt; is a seemingly harmless USB drive (USB-A and USB-C interface). However, it is actually a hotplug attack tool, targeting keystroke injection. It is a hacker culture icon (as seen on &lt;a href=&quot;https://en.wikipedia.org/wiki/Mr._Robot&quot;&gt;Mr. Robot&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/cybersecuritytools01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/cybersecuritytools01.jpg&quot; alt=&quot;Cybersecurity Tools&quot; title=&quot;Cybersecurity Tools&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The premise, computers trust humans and humans use keyboards. Therefore, the Hak5 Rubber Ducky pretends to be a USB keyboard, automating keyboard entries.&lt;/p&gt;

&lt;p&gt;Through the use of &lt;a href=&quot;https://docs.hak5.org/hak5-usb-rubber-ducky/duckyscript-tm-quick-reference&quot;&gt;DuckySrcipt&lt;/a&gt; (scripting language), automated payloads can be easily created and executed. This includes features to fingerprint devices (operating system identification), and mimic human typing cadence, whilst evading endpoint restrictions and firewalls.&lt;/p&gt;

&lt;h3 id=&quot;hak5-wifi-pineapple&quot;&gt;Hak5 WiFi Pineapple&lt;/h3&gt;

&lt;p&gt;The &lt;a href=&quot;https://shop.hak5.org/products/wifi-pineapple&quot;&gt;Hak5 WiFi Pineapple&lt;/a&gt; (Mark VII shown below) is a portable wifi penetration testing tool.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/cybersecuritytools02.jpg&quot;&gt;&lt;img src=&quot;/images/posts/cybersecuritytools02.jpg&quot; alt=&quot;Cybersecurity Tools&quot; title=&quot;Cybersecurity Tools&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It can perform and automate a wide range of wifi-based campaigns, including auditing, surveillance, reconnaissance, man-in-the-middle, etc.&lt;/p&gt;

&lt;p&gt;As highlighted by the video below, the Hak5 WiFi Pineapple includes an intuitive web interface for configuration.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/j0dMxL77NjU?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Finally, it includes three dedicated role-based radios, with three high-gain antennas, supporting 2.4GHz 802.11 b/g/n and 5GHz 802.11 ac via a module.&lt;/p&gt;

&lt;h3 id=&quot;flipper-zero&quot;&gt;Flipper Zero&lt;/h3&gt;

&lt;p&gt;The &lt;a href=&quot;https://flipperzero.one/&quot;&gt;Flipper Zero&lt;/a&gt; is a standalone, multi-functional device developed for interaction with access control systems.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/cybersecuritytools03.jpg&quot;&gt;&lt;img src=&quot;/images/posts/cybersecuritytools03.jpg&quot; alt=&quot;Cybersecurity Tools&quot; title=&quot;Cybersecurity Tools&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is highly versatile and able to read, copy, or emulate RFID and NFC tags, radio remotes, infrared transmissions, iButton, and digital access keys. It also includes a GPIO interface and can act as a BadUSB device, targetting keystroke injection and accepting the previously mentioned scripting language (DuckyScript) used by the Hak5 Rubber Ducky.&lt;/p&gt;

&lt;p&gt;The Flipper Zero firmware is based on the &lt;a href=&quot;https://www.freertos.org/&quot;&gt;FreeRTOS&lt;/a&gt; operating system, with its own software abstraction over the hardware layer.&lt;/p&gt;

&lt;p&gt;Like the Hak5 Rubber Ducky, it has become a hacker culture icon, being banned from Amazon and certain geographies.&lt;/p&gt;
</description>
        <pubDate>Tue, 02 Aug 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/08/02/Cybersecurity-Hardware-Tools/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/08/02/Cybersecurity-Hardware-Tools/</guid>
      </item>
    
      <item>
        <title>Cybersecurity Dashboard</title>
        <description>&lt;p&gt;In May, &lt;a href=&quot;/2022/05/01/CTO-vs-CISO/&quot;&gt;my role was expanded to include Chief Information Security Officer (CISO)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A key responsibility is to represent cybersecurity as part of the Executive Committee and Board of Directors, covering the strategic direction, maturity, risks, incident management, awareness and education.&lt;/p&gt;

&lt;p&gt;This has become increasingly important over the past year, with &lt;a href=&quot;https://www.sec.gov/news/press-release/2022-39&quot;&gt;proposed rules from the SEC&lt;/a&gt; to enhance and standardise the disclosure of cybersecurity risk management, strategy, governance, and incident reporting by public companies.&lt;/p&gt;

&lt;p&gt;To support this outcome, each quarter, I present a standard dashboard to help facilitate the discussion. In the spirit of transparency and collaboration, I thought I would share the dashboard template.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/cybersecuritydashboard01.jpg&quot;&gt;&lt;img src=&quot;/images/posts/cybersecuritydashboard01.jpg&quot; alt=&quot;Cybersecurity Dashboard&quot; title=&quot;Cybersecurity Dashboard&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The dashboard includes eight sections, highlighting (and wherever possible, quantifying) key metrics associated with cybersecurity.&lt;/p&gt;

&lt;p&gt;The sections were selected based on their relevance to the business. Therefore, if you plan to reuse the template, please modify/replace the sections as required.&lt;/p&gt;

&lt;h4 id=&quot;nist-csf-maturity-score&quot;&gt;NIST CSF Maturity Score:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The &lt;a href=&quot;/2022/07/07/NIST-Cybersecurity-Framework/&quot;&gt;NIST Cybersecurity Framework (CSF)&lt;/a&gt; is a commonly used set of guidelines for mitigating organisational cybersecurity risks, based on established standards, guidelines, and practices.&lt;/li&gt;
  &lt;li&gt;The maturity assessment is scored against the 5 functions of the NIST Cybersecurity Framework (23 categories and 108 subcategories). Scoring is between 1 (No Control) and 5 (Enforced/Automated at Scale).&lt;/li&gt;
  &lt;li&gt;The industry score highlights the industry average score. If the industry average score is not known, the target score would be a good replacement.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;annual-infosec-spend&quot;&gt;Annual InfoSec Spend:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The total spend for Information Security includes direct (Infomation Security budget), indirect (other budgets) and people (FTE/Contractor).&lt;/li&gt;
  &lt;li&gt;The industry spend highlights the industry average, which for enterprise businesses is commonly between 7% and 10% of the IT budget (&lt;a href=&quot;https://www.ey.com/&quot;&gt;Ernst Young&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;external-rating&quot;&gt;External Rating:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The external cybersecurity rating provides an external perspective from a reputable source, for example, &lt;a href=&quot;https://www.mastercard.com/&quot;&gt;Mastercard&lt;/a&gt;. Ideally, the score would incorporate software, infrastructure, geolocation, hosting providers, third parties, domains, systems and configuration.&lt;/li&gt;
  &lt;li&gt;External ratings are used to assess the material cybersecurity risk of a business before investments, partnerships, mergers, acquisitions and/or divestitures.&lt;/li&gt;
  &lt;li&gt;The industry score highlights the industry average score. If the industry average score is not known, the target score would be a good replacement.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;priorities&quot;&gt;Priorities:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The top five priorities for Information Security, ideally complimenting the business strategy and mitigating any enterprise and external risks.&lt;/li&gt;
  &lt;li&gt;Each priority includes a measurable outcome, ensuring progress can be tracked against a specific deliverable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;assets&quot;&gt;Assets:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The managed IT assets, covering the users (active identities), endpoints (Windows, macOS, iOS, Android), virtual machines (all hosting environments) and application services (SaaS, Serverless, Containers).&lt;/li&gt;
  &lt;li&gt;The managed percentage indicates the status of the assets, covering discovery, hardening, patching and advanced threat protection.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;awareness&quot;&gt;Awareness:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The results of key awareness and education initiatives. For example, a social engineering phishing campaign, highlighting the number of emails successfully “delivered”, “reported” and “clicked”.&lt;/li&gt;
  &lt;li&gt;The industry score highlights the industry average score. If the industry average score is not known, the target score would be a good replacement.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;detect--respond&quot;&gt;Detect &amp;amp; Respond:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The number of alerts detected, reviewed and investigated via the Security Operations Center (SOC), including the Median Time to Detect and Resolve.&lt;/li&gt;
  &lt;li&gt;The number of major incidents detected (hopefully zero). A major incident can be considered an unauthorized occurrence on or conducted through an information system that jeopardises the confidentiality, integrity, or availability of the information system or any information residing therein.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;risks&quot;&gt;Risks:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;The top three risk vectors (including the primary rationale) and the risk status of critical assets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each section includes a Red, Amber, Green (RAG) status, which can be used to help focus the discussion.&lt;/p&gt;

&lt;p&gt;The iconography used as part of the “Priorities” and “Risks” sections can be updated as needed, with the colour (RAG) highlighting a sub-status.&lt;/p&gt;

&lt;p&gt;I won’t claim this to be the perfect cybersecurity dashboard. However, I believe it does a good job of highlighting key information in a simple to consume format.&lt;/p&gt;

&lt;p&gt;The most important thing is for the dashboard to facilitate a robust discussion with the Executive Committee and Board of Directors.&lt;/p&gt;
</description>
        <pubDate>Sun, 31 Jul 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/07/31/Cybersecurity-Dashboard/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/07/31/Cybersecurity-Dashboard/</guid>
      </item>
    
      <item>
        <title>Windows 365</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2022/07/27/KVM-on-Fedora/&quot;&gt;In my last article&lt;/a&gt;, I installed a Kernel-based Virtual Machine (KVM) on Fedora, enabling client-side (offline) virtualisation.&lt;/p&gt;

&lt;p&gt;As previously highlighted, thanks to the use of browser-based applications and the growing support for Linux, 99% of my work can be completely natively from Linux. However, there are specific workloads that force me back to Windows.&lt;/p&gt;

&lt;p&gt;Although client-side virtualisation is a good option, providing offline support and “local” performance, the need to install, configure and maintain a second operating system can be a pain.&lt;/p&gt;

&lt;p&gt;As a result, I have also been testing &lt;a href=&quot;https://www.microsoft.com/windows-365&quot;&gt;Windows 365&lt;/a&gt; from Microsoft, provisioned through my work.&lt;/p&gt;

&lt;p&gt;In its simplest form, Windows 365 is a Virtual Desktop Infrastructure (VDI) service, similar to &lt;a href=&quot;https://www.vmware.com/products/horizon.html&quot;&gt;VMWare Horizon&lt;/a&gt; and &lt;a href=&quot;https://www.citrix.com/solutions/vdi-and-daas/&quot;&gt;Citrix DaaS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It delivers a highly available, scalable and persistent (1:1) virtual machine (Cloud PC), accessible via any modern browser or standalone applications for Windows, macOS, iOS and Android.&lt;/p&gt;

&lt;p&gt;Windows 365 has some unique advantages for enterprise businesses, specifically the unified user experience as part of Office 365 and full integration with &lt;a href=&quot;https://www.microsoft.com/security/business/microsoft-endpoint-manager/&quot;&gt;Microsoft Endpoint Manager&lt;/a&gt; (AKA Microsoft Intune).&lt;/p&gt;

&lt;p&gt;As with any VDI service, Windows 365 requires a persistent internet connection, with the quality of the experience being dependent on the available bandwidth and latency.&lt;/p&gt;

&lt;p&gt;However, the primary barrier for most will be price, with a 4 vCPU, 16GB RAM, 256GB Storage plan costing £63.90 user/month (£766.80 user/year). As Windows 365 is reliant on the Azure network infrastructure, outbound (egress) charges are also applied, including Office 365 (OneDrive) data synchronisation and RDP network traffic.&lt;/p&gt;

&lt;p&gt;When compared against laptop ownership with the equivalent specification, assuming a minimum three-year life cycle, Windows 365 is an expensive  (£2300.40) proposition. However, as any enterprise customer of Microsoft will know, the list price is not indicative of the final price.&lt;/p&gt;

&lt;p&gt;Windows 365 can be accessed via the web (&lt;a href=&quot;https://windows365.microsoft.com&quot;&gt;windows365.microsoft.com&lt;/a&gt; or via Microsoft Remote Desktop.&lt;/p&gt;

&lt;h3 id=&quot;windows-365-overview&quot;&gt;Windows 365 Overview&lt;/h3&gt;

&lt;p&gt;Windows 365 can be launched from Office 365 for Web by clicking the “Apps” menu (top left). This helps Windows 365 feel like an integrated part of the Office 365 experience, following a usage pattern known by most users.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows36501.jpg&quot; alt=&quot;Windows 365&quot; title=&quot;Windows 365&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Windows 365 Cloud PC selection web user interface is not well optimised, with a lot of unused screen real estate. I assume if you have access to multiple Cloud PC instances, the user interface would be more evenly populated.&lt;/p&gt;

&lt;p&gt;However, at the current pricing and knowing that Windows 365 delivers a persistent (1:1) Cloud PC, I am not sure how many users (excluding administrators) would have access to multiple instances.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows36502.jpg&quot; alt=&quot;Windows 365&quot; title=&quot;Windows 365&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When a Cloud PC is launched, the session settings menu appears, providing quick access to important configuration items.&lt;/p&gt;

&lt;p&gt;This is a useful prompt, allowing the user to enable the local Printer, Microphone and/or Clipboard. For example, if you plan to use Voice/Video capabilities (Microsoft Teams) via the Cloud PC, you must enable the Microphone.&lt;/p&gt;

&lt;p&gt;The session settings menu is fairly intuitive, arguably better than what I have seen from VMWare and Citrix, which can often overcomplicate end-user settings with unnecessary technical jargon (Networking Settings, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows36503.jpg&quot; alt=&quot;Windows 365&quot; title=&quot;Windows 365&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, you are prompted to verify your identity. For example, your Azure AD credentials.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows36504.jpg&quot; alt=&quot;Windows 365&quot; title=&quot;Windows 365&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A persistent Windows Client PC will then launch. If you are using the enterprise version, your administrator will have configured your default corporate settings. In my case, a standard Windows 10 desktop (Windows 10 is still the default in most enterprise businesses).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows36505.jpg&quot; alt=&quot;Windows 365&quot; title=&quot;Windows 365&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Cloud PC toolbar (located at the top) provides access to key settings and keyboard shortcuts.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows36506.jpg&quot; alt=&quot;Windows 365&quot; title=&quot;Windows 365&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have been testing Windows 365 on my &lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework Laptop, running Fedora&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There is no native Linux client for Windows 365. Therefore, I used &lt;a href=&quot;https://www.google.co.uk/chrome/&quot;&gt;Google Chrome&lt;/a&gt; as my browser, but also tested &lt;a href=&quot;https://www.microsoft.com/edge&quot;&gt;Microsoft Edge&lt;/a&gt; (no noticeable difference).&lt;/p&gt;

&lt;p&gt;So far, the Windows 365 experience has been positive. Everything works as designed and I can certainly see the benefits for enterprise businesses, especially if they are a Microsoft 365 and/or Microsoft Endpoint Management customer.&lt;/p&gt;

&lt;p&gt;The performance of the Client PC has been good. Perfectly adequate for productivity and collaboration tasks, including the use of Voice/Video capabilities. However, “power users” will likely find the reduced graphics performance and increased latency a deal breaker.&lt;/p&gt;

&lt;p&gt;As with any VDI-based service, some restrictions limit the viability for certain user groups. Specifically, the need for a persistent, performant, reliable internet connection.&lt;/p&gt;

&lt;p&gt;If you are predominantly an office or home user, you will likely be fine. However, if you are a frequent traveller (planes, trains) I suspect the inability to use your Client PC offline will be a frustrating limitation, meaning you would be better served by a laptop running Windows and/or a local virtual machine.&lt;/p&gt;

&lt;p&gt;Windows 365 is not a cost-effective option for my use case, as I only require access to Windows as an exception (not my primary desktop). Therefore, the monthly cost does not offer a compelling return on investment.&lt;/p&gt;

&lt;p&gt;However, it does make sense for users that require persistent access to a managed/secured Windows desktop, where provisioning, managing and/or securing physical hardware is not viable. For example, users working on a service desk and/or third-party service providers.&lt;/p&gt;
</description>
        <pubDate>Sat, 30 Jul 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/07/30/Windows-365/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/07/30/Windows-365/</guid>
      </item>
    
      <item>
        <title>KVM on Fedora</title>
        <description>&lt;p&gt;Over the past few months, my daily driver (personal and work) has been a Framework Laptop running Fedora.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/06/01/Framework-Performance/&quot;&gt;Framework Performance&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The laptop is great and runs Fedora amazingly well (compatible, fast and reliable). Thanks to the use of browser-based applications and the growing support for Linux, 99% of my work can be completely natively from Linux.&lt;/p&gt;

&lt;p&gt;However, there are still a few frustrating exceptions that force me back to Windows via a virtual machine.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2012/03/28/installing-vsphere/&quot;&gt;I have a long history with VMWare&lt;/a&gt;, prodominately within the enterprise, supporting &lt;a href=&quot;https://www.vmware.com/products/vsphere.html&quot;&gt;vSphere&lt;/a&gt;, &lt;a href=&quot;https://www.vmware.com/products/nsx.html&quot;&gt;NSX&lt;/a&gt;, &lt;a href=&quot;https://www.vmware.com/products/horizon.html&quot;&gt;Horizon&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;As a result, I have always favoured VMWare Workstation (Windows, Linux) and VMware Fusion (macOS) for client-side virtualisation.&lt;/p&gt;

&lt;p&gt;However, with this new setup, I thought I would finally make the jump to an open-source Kernel-based Virtual Machine (KVM). Specifically, a combination of &lt;a href=&quot;https://www.qemu.org/&quot;&gt;QEMU&lt;/a&gt;, &lt;a href=&quot;https://libvirt.org/&quot;&gt;Libvirt&lt;/a&gt; and &lt;a href=&quot;https://virt-manager.org/&quot;&gt;Virt Manager&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;setup-qemu-libvirt-and-virt-manager&quot;&gt;Setup QEMU, Libvirt and Virt Manager&lt;/h3&gt;

&lt;p&gt;Confirm your processor has &lt;a href=&quot;https://www.intel.co.uk/content/www/uk/en/virtualization/virtualization-technology/intel-virtualization-technology.html&quot;&gt;Intel-VT&lt;/a&gt; or &lt;a href=&quot;https://www.techtarget.com/searchitoperations/definition/AMD-V-AMD-virtualization&quot;&gt;AMD-V&lt;/a&gt; enabled.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;grep -E --color '(vmx|svm)' /proc/cpuinfo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Ensure “VMX” or “SVM” are listed in the output.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kvmonfedora01.jpg&quot; alt=&quot;KVM on Fedora&quot; title=&quot;KVM on Fedora&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Confirm the Kernel-based Virtual Machine (KVM) module is enabled.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;lsmod | grep -i kvm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Ensure “kvm” is listed in the output. For example, “kvm_intel”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kvmonfedora02.jpg&quot; alt=&quot;KVM on Fedora&quot; title=&quot;KVM on Fedora&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Install the required virtualisation packages.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install -y qemu-kvm libvirt virt-install bridge-utils virt-manager
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Specific packages include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;qemu-kvm:&lt;/strong&gt; An emulator and virtualization package with hardware emulation.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;libvirt:&lt;/strong&gt; Configuration files required to run the libvirt daemon.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;virtinst:&lt;/strong&gt; Command line utilities for provisioning and modifying virtual machines.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Virt-install:&lt;/strong&gt; Command line tool for creating virtual machines.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;bridge-utils:&lt;/strong&gt; A set of tools for creating and managing bridge devices.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;virt-manager:&lt;/strong&gt; Graphical user interface for managing virtual machines.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, install the required virtualization modules using the command below.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install -y libvirt-devel virt-top libguestfs-tools guestfs-tools
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
That’s it! QEMU, Libvirt and Virt Manager are now installed.&lt;/p&gt;

&lt;p&gt;To launch a virtual machine, you must first start the virtualization daemon.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo systemctl start libvirtd
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Confirm the demon is running.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo systemctl status libvirtd
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Ensure the status is “active (running)”. You can also check the CPU and Memory utilisation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kvmonfedora03.jpg&quot; alt=&quot;KVM on Fedora&quot; title=&quot;KVM on Fedora&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you plan to run virtual machines frequently, it might be worth starting the service on boot. This can be done using the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo systemctl enable libvirtd
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Finally, launch the Virt Manager application to create a virtual machine.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kvmonfedora04.jpg&quot; alt=&quot;KVM on Fedora&quot; title=&quot;KVM on Fedora&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alternatively, virtual machines can be created via the command line tool, virt-install.&lt;/p&gt;

&lt;p&gt;If you plan to run Windows 10/11 as a guest virtual machine, I recommend reviewing the &lt;a href=&quot;https://leduccc.medium.com/improving-the-performance-of-a-windows-10-guest-on-qemu-a5b3f54d9cf5&quot;&gt;performance guide&lt;/a&gt; on Medium by &lt;a href=&quot;https://leduccc.medium.com/&quot;&gt;Leduccc&lt;/a&gt;, which includes a lot of great tips and tricks.&lt;/p&gt;

</description>
        <pubDate>Wed, 27 Jul 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/07/27/KVM-on-Fedora/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/07/27/KVM-on-Fedora/</guid>
      </item>
    
      <item>
        <title>Winchester Science Centre</title>
        <description>&lt;p&gt;The &lt;a href=&quot;https://www.winchestersciencecentre.org/&quot;&gt;Winchester Science Centre&lt;/a&gt; is an independent educational charity, that inspires children across the south of England (and worldwide online) to engage in Science, Technology, Engineering and Maths (STEM).&lt;/p&gt;

&lt;p&gt;As &lt;a href=&quot;/2022/05/01/CTO-vs-CISO/&quot;&gt;Chief Technology and Information Security Officer (CTO/CISO)&lt;/a&gt; at a purpose-driven &lt;a href=&quot;https://fortune.com/company/elanco-animal-health/&quot;&gt;enterprise business&lt;/a&gt;, I am passionate about STEM and very aware of the challenges associated with diversity, inclusion and inequality.&lt;/p&gt;

&lt;p&gt;Therefore, I am a long-time supporter (and frequent visitor) of the Winchester Science Centre.&lt;/p&gt;

&lt;p&gt;Disclaimer, &lt;a href=&quot;https://www.linkedin.com/in/sarah-bull-pr/&quot;&gt;my wife is Head of Marketing at the Winchester Science Centre&lt;/a&gt;. However, we visited the Winchester Science Centre with our family many times before her employment. It was our love for the experience that prompted her to explore career opportunities.&lt;/p&gt;

&lt;p&gt;The Winchester Science Centre provides a range of experiences for the entire family, including:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;(https://www.winchestersciencecentre.org/exploring/sound-hearing-vibration)&quot;&gt;Sound, Hearing and Vibration&lt;/a&gt;:&lt;/strong&gt; An open area packed with interactive exhibits. Highlights include Europe’s largest playable guitar, the sonic rocket, where you can explore environmental acoustics and my personal favourite, gravity run, which propels a ball through a vertical course.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.winchestersciencecentre.org/exploring/explorer-space&quot;&gt;Explorer:Space&lt;/a&gt;:&lt;/strong&gt; A second open interactive area, focused on space and space exploration. Highlights include the ability to programme a miniature lunar rover and exhibits that demonstrate the impact of infrared light and gravity. There is also a soft play area for smaller children.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.winchestersciencecentre.org/exploring/bio-space&quot;&gt;Bio:Space&lt;/a&gt;:&lt;/strong&gt; An outside area, set in the &lt;a href=&quot;https://www.southdownstrust.org.uk/&quot;&gt;South Downs National Park&lt;/a&gt;, providing a great place to relax and absorb nature, while the kids play on the mini adventure playground.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.winchestersciencecentre.org/exploring/planetarium&quot;&gt;The Planetarium&lt;/a&gt;:&lt;/strong&gt; The UK’s largest standalone planetarium, with a stunning 360-degree screen, with narrated shows that provide a unique insight into space, our solar system and beyond.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alongside the open areas, interactive exhibits and Planetarium, the team run regular science shows at the &lt;a href=&quot;https://www.winchestersciencecentre.org/exploring/science-theatre&quot;&gt;Science Theature&lt;/a&gt; and explosive science demonstrations, known as &lt;a href=&quot;https://www.winchestersciencecentre.org/exploring/science-live&quot;&gt;Science Live&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For example, the photo below is my son exploring an exhibit that highlights the delicate balance between people, farming and pets.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/winchestersciencecentre01.jpg&quot; alt=&quot;Winchester Science Centre&quot; title=&quot;Winchester Science Centre&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The short promotion video below highlights the experience, with special guest stars at 0:16 and 0:25 (my kids).&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/j7lv9sVzF5o?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Outside of the venue, &lt;a href=&quot;https://www.winchestersciencecentre.org/learning&quot;&gt;Winchester Science Centre actively enagage the community&lt;/a&gt;, including &lt;a href=&quot;https://www.winchestersciencecentre.org/learning/in-school&quot;&gt;local schools&lt;/a&gt;, &lt;a href=&quot;https://www.winchestersciencecentre.org/visiting/schools-and-uniformed-groups/noel-turner-science-festival&quot;&gt;science festivals&lt;/a&gt;, and &lt;a href=&quot;https://www.winchestersciencecentre.org/learning/at-home&quot;&gt;freely available online STEM activities&lt;/a&gt;, supported by their passionate team of &lt;a href=&quot;https://www.winchestersciencecentre.org/stem-now&quot;&gt;STEM Ambassadors&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you’re interested in STEM and live in the south of England, I highly recommend &lt;a href=&quot;https://www.winchestersciencecentre.org/visiting/getting-here&quot;&gt;a trip to Winchester Science Centre (SO12 1HZ)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Alternatively, keep an eye on their social channels (&lt;a href=&quot;https://www.instagram.com/winchestersciencecentre/&quot;&gt;Instagram&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/WinSciCentre&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;https://www.facebook.com/winchestersciencecentre&quot;&gt;Facebook&lt;/a&gt;) for all things STEM!&lt;/p&gt;
</description>
        <pubDate>Wed, 20 Jul 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/07/20/Winchester-Science-Centre/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/07/20/Winchester-Science-Centre/</guid>
      </item>
    
      <item>
        <title>Security Policy Templates</title>
        <description>&lt;p&gt;In my &lt;a href=&quot;/2022/07/16/cybersecurity-resources/&quot;&gt;previous article&lt;/a&gt;, I shared a range of cybersecurity resources.&lt;/p&gt;

&lt;p&gt;In addition, I wanted to share a series of security policy templates developed and posted by &lt;a href=&quot;https://www.sans.org/&quot;&gt;SANS&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sans.org/information-security-policy/&quot;&gt;https://www.sans.org/information-security-policy/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SANS, launched in 1989, is a cooperative for information security thought leadership. Their mission is to empower cybersecurity professionals with practical skills and knowledge.&lt;/p&gt;

&lt;p&gt;The policy templates are a great starting point for any organisation looking to establish or mature a cybersecurity programme. The key categories include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sans.org/information-security-policy/?category=general&quot;&gt;General&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sans.org/information-security-policy/?category=application-security&quot;&gt;Application Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sans.org/information-security-policy/?category=server-security&quot;&gt;Server Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sans.org/information-security-policy/?category=network-security&quot;&gt;Network Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sans.org/information-security-policy/?category=incident-handling&quot;&gt;Incident Response&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SANS also promote community contributions via a &lt;a href=&quot;https://www.sans.org/mlp/security-policy-templates-form/&quot;&gt;form&lt;/a&gt;, although it would be nice if this was handled via a version control system.&lt;/p&gt;
</description>
        <pubDate>Mon, 18 Jul 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/07/18/Security-Policy-Templates/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/07/18/Security-Policy-Templates/</guid>
      </item>
    
      <item>
        <title>Cybersecurity Resources</title>
        <description>&lt;p&gt;In May, &lt;a href=&quot;/2022/05/01/CTO-vs-CISO/&quot;&gt;my role was expanded to include Chief Information Security Officer (CISO)&lt;/a&gt;. Over the past few months, I have been familiarising myself with all things cybersecurity.&lt;/p&gt;

&lt;p&gt;Therefore, I thought I would share my resource list. All links are safe and legal (ethical). The majority are free or include free trials.&lt;/p&gt;

&lt;h4 id=&quot;cybersecurity-web-resourcesnewsletters&quot;&gt;Cybersecurity Web Resources/Newsletters&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.ycombinator.com/&quot;&gt;Hacker News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thisweekin4n6.com/&quot;&gt;This Week in 4n6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.csoonline.com/&quot;&gt;CSO Online&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tldrsec.com/&quot;&gt;tl;dr sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.welivesecurity.com/&quot;&gt;We Live Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackernoon.com/&quot;&gt;HackerNoon&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;cybersecurity-youtubepodcasts&quot;&gt;Cybersecurity YouTube/Podcasts&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/@hak5&quot;&gt;Hak5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/@ItproTv&quot;&gt;ITProTV&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/@BlackHatOfficialYT&quot;&gt;Black Hat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thecyberwire.com/podcasts/cyberwire-x&quot;&gt;CyberWire-X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thecyberwire.com/podcasts/daily-podcast&quot;&gt;Cyberwire Daily&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://darknetdiaries.com/&quot;&gt;Darknet Diaries&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://twit.tv/shows/security-now&quot;&gt;Security Now&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;cybersecurity-ethical-hacking-training&quot;&gt;Cybersecurity (Ethical Hacking) Training&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackthebox.com/&quot;&gt;Hack the Box&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tryhackme.com/&quot;&gt;Try Hack Me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberseclabs.co.uk/&quot;&gt;CyberSecLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://letsdefend.io/&quot;&gt;LetsDefend&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hacker101.com/&quot;&gt;Hacker101&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.udemy.com/course/learn-ethical-hacking-from-scratch/&quot;&gt;Learn Ethical Hacking From Scratch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.udemy.com/course/penetration-testing/&quot;&gt;The Complete Ethical Hacking Course&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pluralsight.com/courses/kali-linux-penetration-testing-ethical-hacking&quot;&gt;PEN Testing and Ethical Hacking with Kali Linux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zerotomastery.io/courses/learn-ethical-hacking/&quot;&gt;Complete Ethical Hacking Bootcamp 2023&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;cybersecurity-search-engines&quot;&gt;Cybersecurity Search Engines&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://haveibeenpwned.com/&quot;&gt;Have I Been Pwned (HIBP)&lt;/a&gt; - Account Compromise&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cvedetails.com/&quot;&gt;CVE Details&lt;/a&gt; - Common Vulnerabilities and Exposures Database&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.exploit-db.com/&quot;&gt;ExploitDB&lt;/a&gt; - Exploit Database&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dehashed.com/&quot;&gt;Dehashed&lt;/a&gt; - Leaked Credentials&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;cybersecurity-web-app-software-tools&quot;&gt;Cybersecurity Web App Software Tools&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://nmap.org/&quot;&gt;Nmap&lt;/a&gt; - Port Scanning&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zaproxy.org/&quot;&gt;OWASP ZAP&lt;/a&gt; - Web App Scanner&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://portswigger.net/burp&quot;&gt;Burp Suite&lt;/a&gt; - Web Security Testing&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/maurosoria/dirsearch&quot;&gt;Dirsearch&lt;/a&gt; - HTTP Bruteforcing&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-project-amass/&quot;&gt;Amass&lt;/a&gt; - Network Mapping&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trufflesecurity.com/&quot;&gt;TruffleHog&lt;/a&gt; - Secret Scanning&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sqlmap.org/&quot;&gt;sqlmap&lt;/a&gt; - SQL Injection Flaws&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;cybersecurity-hardware&quot;&gt;Cybersecurity Hardware&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://shop.hak5.org/products/usb-rubber-ducky&quot;&gt;Hak5 Rubber Ducky&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shop.hak5.org/products/wifi-pineapple&quot;&gt;Hak5 WiFi Pineapple&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://flipperzero.one/&quot;&gt;Flipper Zero&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I also recommend you follow &lt;a href=&quot;https://www.linkedin.com/in/danielmakelley/&quot;&gt;Daniel Kelley&lt;/a&gt; on LinkedIn. He posts a wide range of resources related to Cybersecurity. A few items from my list were inspired by his posts.&lt;/p&gt;
</description>
        <pubDate>Sat, 16 Jul 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/07/16/Cybersecurity-Resources/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/07/16/Cybersecurity-Resources/</guid>
      </item>
    
      <item>
        <title>Corporate Separation - Update</title>
        <description>&lt;p&gt;In January, &lt;a href=&quot;https://www.wwt.com/&quot;&gt;World Wide Technology (WWT)&lt;/a&gt; &lt;a href=&quot;/2022/01/14/corporate-separation/&quot;&gt;published a case study highlighting our journey to complete a corporate separation in just two years&lt;/a&gt;, described by many as an impossible mission.&lt;/p&gt;

&lt;p&gt;Earlier this week they updated the &lt;a href=&quot;https://www.wwt.com/case-study/building-a-modern-elastic-it-infrastructure-from-scratch-for-elanco-animal-health-to-streamline-and-optimize-manda&quot;&gt;article&lt;/a&gt; with a video interview.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/YHttb5FP3YE?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Corporate separations do not happen overnight; they take an incredible number of resources, time, strategic planning, and rapid delivery.&lt;/p&gt;

&lt;p&gt;Thanks to WWT for the partnership!&lt;/p&gt;
</description>
        <pubDate>Thu, 14 Jul 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/07/14/Corporate-Separation-Update/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/07/14/Corporate-Separation-Update/</guid>
      </item>
    
      <item>
        <title>NIST Cybersecurity Framework</title>
        <description>&lt;p&gt;In May, &lt;a href=&quot;/2022/05/01/CTO-vs-CISO/&quot;&gt;my role was expanded to include Chief Information Security Officer (CISO)&lt;/a&gt;. Since that date, I have been building trust with the team, as well as connecting with internal and external stakeholders. I have also been re-educating myself, going back to basics with key cybersecurity approaches, methodologies and frameworks.&lt;/p&gt;

&lt;p&gt;This article provides a summary of the &lt;a href=&quot;https://www.nist.gov/cyberframework/framework&quot;&gt;National Institute of Standards and Technology (NIST) Cybersecurity Framework (CSF)&lt;/a&gt;, also known as the NIST CSF.&lt;/p&gt;

&lt;p&gt;The NIST CSF is a set of guidelines for mitigating organisational cybersecurity risks, based on established standards, guidelines, and practices. It includes three primary components:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Core:&lt;/strong&gt; Desired cybersecurity outcomes organised in a hierarchy and aligned to more detailed guidance and controls.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Profiles:&lt;/strong&gt; Alignment of an organisation’s requirements and objectives, risk appetite and resources using the desired outcomes of the NIST CSF Core.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Implementation Tiers:&lt;/strong&gt; A qualitative measure of organisational cybersecurity risk management practices.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The NIST CSF is intended to be a “living document” that is continuously refined, improved, and evolved, hopefully keeping pace with technology and threat trends, whilst integrating lessons learned.&lt;/p&gt;

&lt;p&gt;The full NIST CSF v1.1 can be downloaded below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://doi.org/10.6028/NIST.CSWP.04162018&quot;&gt;NIST CSF v1.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Framework Core includes 5 functions (listed below), covering 23 categories and 108 subcategories, with 6 informative references. The informative references include ISO 27001, COBIT, NIST SP 800-53, ANSI/ISA-62443, and the Council on CyberSecurity Critical Security Controls.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Identify:&lt;/strong&gt; Develop the organizational understanding to manage cybersecurity risk to systems, assets, data, and capabilities.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Protect:&lt;/strong&gt; Develop and implement the appropriate safeguards to ensure the delivery of critical infrastructure services.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Detect:&lt;/strong&gt; Develop and implement the appropriate activities to identify the occurrence of a cybersecurity event.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Respond:&lt;/strong&gt; Develop and implement the appropriate activities to take action regarding a detected cybersecurity incident.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Recover:&lt;/strong&gt; Develop and implement the appropriate activities to ensure resilience and restore capabilities impacted by a cybersecurity incident.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Framework Core is available as a downloadable CSV, linked below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nist.gov/document/2018-04-16frameworkv11core1xlsx&quot;&gt;NIST CSF Core v1.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Framework Profile is a list of outcomes that an organisation has chosen from the categories and subcategories, based on its needs and risk assessments.&lt;/p&gt;

&lt;p&gt;Typically, an organisation would start by developing the “Current Profile” which describes the cybersecurity activities and what outcomes are being achieved.&lt;/p&gt;

&lt;p&gt;This leads to the development of a “Target Profile”, resulting in a gap analysis and defined actions to mature from the “Current Profile” to the “Target Profile”.&lt;/p&gt;

&lt;p&gt;Finally, the Implementation Tiers, provide a consistent structure to benchmark cybersecurity risk management practices, helping organisations develop plans to improve their cybersecurity posture.&lt;/p&gt;

&lt;p&gt;It is essential to note the Implementation Tiers are not designed to be a maturity model, instead providing visibility across cybersecurity risk management and operational risk management processes.&lt;/p&gt;

&lt;p&gt;The four Implementation Tiers are outlined below:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tier 1 (Partial):&lt;/strong&gt; Organisations with limited security processes defined and implemented, resulting in low cybersecurity maturity, lacking sponsorship and prioritisation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tier 2 (Risk Informed):&lt;/strong&gt; Organisations that understand the risks and are actively addressing compliance requirements. However, they are not addressing broader (organisation-wide) security concerns and/or policy gaps.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tier 3 (Repeatable):&lt;/strong&gt; Organisations that have executive-approved risk management and cybersecurity best practices defined and implemented. Organisations that are prepared to respond to cybersecurity threats, and risks, whilst proactively addressing vulnerabilities.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tier 4 (Adaptive):&lt;/strong&gt; Organisations that utilise advanced adaptive cybersecurity practices, where behaviours and/or events are proactively analysed to protect from or adapt to threats before they happen. In parallel, organisations that continuously assess risk and automatically provide proportional enforcement as required.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For more details regarding the NIST CSF, I recommend reviewing the “NIST Cybersecurity Framework Explained” virtual session from &lt;a href=&quot;https://www.linkedin.com/in/tomconkle/&quot;&gt;Tom Conkle&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/kellyhoodoc/&quot;&gt;Kelly Hood&lt;/a&gt;. It was presented at the &lt;a href=&quot;https://www.rsaconference.com/&quot;&gt;RSA Conference&lt;/a&gt; in 2018 but is still relevant today.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/nFUyCrSnR68?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The NIST CSF is a powerful resource for SMB and Enterprise organisations across the globe, providing a robust framework to identify cybersecurity outcomes and a methodology to assess and manage those outcomes.&lt;/p&gt;
</description>
        <pubDate>Thu, 07 Jul 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/07/07/NIST-Cybersecurity-Framework/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/07/07/NIST-Cybersecurity-Framework/</guid>
      </item>
    
      <item>
        <title>Journey to Hybrid Multi-Cloud</title>
        <description>&lt;p&gt;Yesterday, &lt;a href=&quot;https://www.linkedin.com/in/calum-bell-886654114/&quot;&gt;Calum Bell&lt;/a&gt; and I presented at &lt;a href=&quot;https://hashiconf.com/europe/&quot;&gt;HashiConf Europe 2022&lt;/a&gt;, which is now available online for on-demand viewing.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/BtYP52Y7GoU?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The presentation focused on our journey to Hybrid Multi-Cloud, specifically, &lt;a href=&quot;https://azure.microsoft.com/&quot;&gt;Microsoft Azure&lt;/a&gt; and &lt;a href=&quot;https://cloud.google.com/&quot;&gt;Google Cloud Platform (GCP)&lt;/a&gt;, automated using &lt;a href=&quot;https://cloud.hashicorp.com/products/terraform&quot;&gt;HashiCorp Terraform Cloud&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I provided context regarding our business, IT ecosystem and hosting architecture.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Business Context&lt;/li&gt;
  &lt;li&gt;IT Ecosystem (01:05)&lt;/li&gt;
  &lt;li&gt;Hybrid Multi-Cloud Architecture (01:38)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Calum covered our automation journey, including the analysis, design and implementation.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Automation Context (02:38)&lt;/li&gt;
  &lt;li&gt;Analysis and Design Phase (03:22)&lt;/li&gt;
  &lt;li&gt;Implementation Phase (09:19)&lt;/li&gt;
  &lt;li&gt;The Future (14:20)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All presentations, including the keynotes, are &lt;a href=&quot;https://live.hashiconf.com/on-demand&quot;&gt;available online for on-demand viewing&lt;/a&gt;. However, access does require a free HashiCorp account.&lt;/p&gt;

&lt;p&gt;Thanks to the team at &lt;a href=&quot;https://www.hashicorp.com/&quot;&gt;HashiCorp&lt;/a&gt; for hosting a great event! Calum and I welcome any questions from the community.&lt;/p&gt;
</description>
        <pubDate>Tue, 21 Jun 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/06/21/Journey-to-Hybrid-Multi-Cloud/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/06/21/Journey-to-Hybrid-Multi-Cloud/</guid>
      </item>
    
      <item>
        <title>Steam Deck</title>
        <description>&lt;p&gt;On the 16-JUL-2021 at 18:00 BST, the highly anticipated &lt;a href=&quot;https://store.steampowered.com/steamdeck&quot;&gt;Steam Deck&lt;/a&gt; from &lt;a href=&quot;https://www.valvesoftware.com/&quot;&gt;Value&lt;/a&gt; become available for pre-order.&lt;/p&gt;

&lt;p&gt;Knowing there would be limited availability, compounded by the silicon shortage and supply chain constraints, I was primed to place my pre-order, ready for the scheduled December 2021 release date.&lt;/p&gt;

&lt;p&gt;Unsurprisingly, the &lt;a href=&quot;https://store.steampowered.com/&quot;&gt;Steam Store&lt;/a&gt; struggled to handle the increased traffic, with many users reporting issues. Thankfully, my order was completed successfully, with an order time of 18:01 BST, approximately one minute after the pre-order window opened.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/steamdeck01.jpg&quot; alt=&quot;Steam Deck&quot; title=&quot;Steam Deck&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Eleven months later, I finally received my Steam Deck!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/steamdeck02.jpg&quot; alt=&quot;Steam Deck&quot; title=&quot;Steam Deck&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Yes, it has taken Value nearly one year to meet the demand from the first minute of pre-orders.&lt;/p&gt;

&lt;p&gt;In fairness, Value is not to blame for the long lead time. Compared to other “high profile” hardware launches (e.g. PS5, Xbox Series S/X), I believe Valve has done a good job, with a verified pre-order process, clear expectations and consistent weekly deliveries.&lt;/p&gt;

&lt;p&gt;My first impression upon opening the box, the Steam Deck is massive but surprisingly lightweight. The image below shows the Steam Deck alongside my other handheld consoles, specifically the Nintendo Switch (HAC-001), PlayStation Vita 1000 (OLED), and Anbernic RG351MP.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/steamdeck03.jpg&quot; alt=&quot;Steam Deck&quot; title=&quot;Steam Deck&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Steam Deck makes the other consoles look tiny by comparison, even the Nintendo Switch, was considered large at launch.&lt;/p&gt;

&lt;p&gt;It is worth briefly highlighting the &lt;a href=&quot;https://anbernic.com/products/anbernic-new-rg351mp-retro-games-built&quot;&gt;Anbernic RG351MP&lt;/a&gt;, which is a &lt;a href=&quot;https://youtu.be/tHWZfhT94Dw&quot;&gt;surprisingly good retro console&lt;/a&gt;, first released in 2020. It is incredibly compact, with a robust (metal) construction and the highly versatile RK3326 Quad-Core processor, capable of running emulators from Game Boy through to PlayStation (even Nintendo 64 and Dreamcast, if you are willing to accept some slowdown).&lt;/p&gt;

&lt;p&gt;The build quality of the Steam Deck is very good, especially when you consider the aggressive £349 starting price. I ordered the 256GB version, which comes with a faster NVMe SSD, priced at £459.00.&lt;/p&gt;

&lt;p&gt;In my opinion, the Steam Deck does not feel as refined as the original PlayStation Vita 1000 (OLED), which (in my opinion) was years ahead of its time. However, when you consider the impressive specification (AMD Zen 2 4C/8T, AMD RDNA 2 GPU and 16GB LPDDR5 Memory) and the massive array of inputs (list below), it is hard not to be impressed.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2x Analog Sticks with Capacitive Touch&lt;/li&gt;
  &lt;li&gt;2x Trackpads&lt;/li&gt;
  &lt;li&gt;2x Shoulder Buttons (L1, R1)&lt;/li&gt;
  &lt;li&gt;2x Analog Triggers (L2, R2)&lt;/li&gt;
  &lt;li&gt;4x Grip Buttons (L4, R4, L5, R5)&lt;/li&gt;
  &lt;li&gt;D-Pad&lt;/li&gt;
  &lt;li&gt;A/B/X/Y Buttons&lt;/li&gt;
  &lt;li&gt;6-axis IMU (3-axis Accelerometer, 3-axis Gyroscope)&lt;/li&gt;
  &lt;li&gt;View/Menu Buttons&lt;/li&gt;
  &lt;li&gt;Steam Button&lt;/li&gt;
  &lt;li&gt;Quick Access Button&lt;/li&gt;
  &lt;li&gt;Volume +/− Buttons&lt;/li&gt;
  &lt;li&gt;Power Button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All the buttons are reassuringly tactile, with only the trackpads feeling a little “cheap”, although only when compared to a modern multi-touch touchpad.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/steamdeck04.jpg&quot; alt=&quot;Steam Deck&quot; title=&quot;Steam Deck&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Analog Sticks with Capacitive Touch are a particular highlight, easily comparable to the current generation of consoles (e.g. &lt;a href=&quot;https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller&quot;&gt;PlayStation DualSense Wireless Controller&lt;/a&gt;). The fact that they are also modular and therefore &lt;a href=&quot;https://www.ifixit.com/Device/Steam_Deck&quot;&gt;user-serviceable&lt;/a&gt; is also a major positive for “&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;right to repair&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/steamdeck05.jpg&quot; alt=&quot;Steam Deck&quot; title=&quot;Steam Deck&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Steam Deck runs a modified version of &lt;a href=&quot;https://archlinux.org/&quot;&gt;Arch Linux&lt;/a&gt; called &lt;a href=&quot;https://store.steampowered.com/steamos&quot;&gt;SteamOS v3.0&lt;/a&gt;, which natively integrates the &lt;a href=&quot;https://www.protondb.com/&quot;&gt;Proton&lt;/a&gt; compatibility layer.&lt;/p&gt;

&lt;p&gt;I have previously written about &lt;a href=&quot;/2021/08/07/proton-the-trojan-horse/&quot;&gt;Proton&lt;/a&gt;, which is a fork of the popular &lt;a href=&quot;https://www.winehq.org/&quot;&gt;Wine&lt;/a&gt; compatibility layer.&lt;/p&gt;

&lt;p&gt;The name Wine stands for “Wine Is Not an Emulator”, which is an important distinction, as it aims to translate (not emulate) Windows API calls into native POSIX calls. This approach eliminates the performance and memory penalties of methods such as emulation and virtualisation.&lt;/p&gt;

&lt;p&gt;In short, Proton is the “magic” behind the Steam Deck, which allows games designed for Windows to run on Linux at native performance.&lt;/p&gt;

&lt;p&gt;The SteamOS default user interface is optimised for the Steam Deck, providing quick access to the Steam Store, personal games library and settings.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/steamdeck06.jpg&quot; alt=&quot;Steam Deck&quot; title=&quot;Steam Deck&quot; /&gt;&lt;/p&gt;

&lt;p&gt;However, you can also switch to a full Linux desktop, which enables the installation of third-party software via &lt;a href=&quot;https://flatpak.org/&quot;&gt;Flatpak&lt;/a&gt; applications.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/steamdeck07.jpg&quot; alt=&quot;Steam Deck&quot; title=&quot;Steam Deck&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This unprecedented flexibility unlocks the true potential of the Steam Deck, allowing for the installation of games from third-party stores, such as the (&lt;a href=&quot;https://store.epicgames.com/en-US/&quot;&gt;Epic Games Store&lt;/a&gt;, &lt;a href=&quot;https://www.gog.com/&quot;&gt;GOG&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;p&gt;It is even possible to install non-gaming software (e.g. Browsers, Productivity, Collaboration), assuming it is available as a &lt;a href=&quot;/2019/09/22/flatpak-and-snappy/&quot;&gt;Flatpak&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For example, I installed the &lt;a href=&quot;https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher&quot;&gt;Heroic Games Launcher&lt;/a&gt;, which provides native Linux access to the Epic Games Store and GOG, including your associated library of games.&lt;/p&gt;

&lt;p&gt;The Heroic Games Launcher can be downloaded, installed and maintained from the integrated “Discover Software Center” and then added to your Steam library as a “Non-Steam Game”.&lt;/p&gt;

&lt;p&gt;If you want an extra level of integration, the “&lt;a href=&quot;https://github.com/redromnon/HeroicBashLauncher&quot;&gt;HeroicBashLauncher&lt;/a&gt;” creates launch scripts for installed Epic and GOG games, allowing them to be added as individual games within Steam (meaning you can also configure per-game settings).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/steamdeck08.jpg&quot; alt=&quot;Steam Deck&quot; title=&quot;Steam Deck&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With Steam and the Heroic Games Launcher, alongside &lt;a href=&quot;https://support.microsoft.com/en-gb/topic/xbox-cloud-gaming-in-microsoft-edge-with-steam-deck-43dd011b-0ce8-4810-8302-965be6d53296&quot;&gt;Microsoft xCloud&lt;/a&gt; and &lt;a href=&quot;https://www.emudeck.com/&quot;&gt;EmuDeck&lt;/a&gt;, the scope of games capable of running on the Steam Deck is massive!&lt;/p&gt;

&lt;p&gt;As an example, over the years, I have taken advantage of many gaming offers (many free), resulting in a substantial games collection. With these games locked to the desktop, I rarely get time to play. The Steam Deck has the potential to change that, providing greater flexibility when travelling, etc.&lt;/p&gt;

&lt;p&gt;Expect additional updates regarding the Steam Deck. Knowing that it is an x86-64 Linux-based PC “under the hood”, I am excited to see how far it can be pushed.&lt;/p&gt;
</description>
        <pubDate>Fri, 10 Jun 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/06/10/Steam-Deck/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/06/10/Steam-Deck/</guid>
      </item>
    
      <item>
        <title>Framework Performance</title>
        <description>&lt;p&gt;Over the past month, I have been testing the &lt;a href=&quot;https://frame.work/gb/en/marketplace/laptops&quot;&gt;Framework Laptop&lt;/a&gt;, from &lt;a href=&quot;https://frame.work/&quot;&gt;Framework Computer&lt;/a&gt; (which for brevity, I will simply reference as Framework).&lt;/p&gt;

&lt;p&gt;I shared my initial impressions and setup process in the following two articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;Framework and Fedora&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt; set out to deliver a laptop that encourages home servicing and incremental upgrades.&lt;/p&gt;

&lt;p&gt;As highlighted in my &lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;last article&lt;/a&gt;, I selected &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora 36&lt;/a&gt; as my operating system.&lt;/p&gt;

&lt;p&gt;The Framework Laptop is fully Windows 10/11 compatible, however, &lt;a href=&quot;/tag/linux/&quot;&gt;I am a Linux user&lt;/a&gt; and the “open” philosophy of Framework felt like a perfect match.&lt;/p&gt;

&lt;p&gt;In this article I plan to share my experience using the laptop over the past month, covering performance, reliability and usability.&lt;/p&gt;

&lt;p&gt;It should be noted that as I am running Linux, my impressions may not reflect the Windows experience, which has different performance and power consumption characteristics.&lt;/p&gt;

&lt;p&gt;With that said, I am pleased to report that Framework has published handy guides that cover the installation process for popular Linux distributions.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://guides.frame.work/Guide/Fedora+36+Installation+on+the+Framework+Laptop/108&quot;&gt;Fedora 36&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://guides.frame.work/Guide/Ubuntu+22.04+LTS+Installation+on+the+Framework+Laptop/109&quot;&gt;Ubuntu 22.04&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://guides.frame.work/Guide/Pop!_OS+21.10+Installation+on+the+Framework+Laptop/115&quot;&gt;Pop!_OS 21.10&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://guides.frame.work/Guide/Manjaro+21.2.1+Installation+on+the+Framework+Laptop/111&quot;&gt;Manjaro 21.2.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With Fedora 36, everything works out of the box, including common “pain-points” such as the audio, webcam and fingerprint reader.&lt;/p&gt;

&lt;p&gt;It is, however, important to ensure you are running the latest BIOS, which at the time of writing is version 3.07.&lt;/p&gt;

&lt;p&gt;At this time, the BIOS update cannot be triggered from within Linux. However, Framework is actively working to implement LVFS (Linux Vendor Firmware Service).&lt;/p&gt;

&lt;p&gt;As a result, the BIOS must be updated manually, by downloading the relevant files from the &lt;a href=&quot;https://knowledgebase.frame.work/en_us/framework-laptop-bios-releases-S1dMQt6F&quot;&gt;Framework Help Center&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once downloaded, updating is a simple three-step process:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Extract contents of “.zip” to a FAT32 formatted USB drive.&lt;/li&gt;
  &lt;li&gt;Disable Secure Boot in BIOS (F2 &amp;gt; Security &amp;gt; Secure Boot).&lt;/li&gt;
  &lt;li&gt;Boot the system while tapping F12, and select the USB drive.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The remainder of this article assumes BIOS version 3.07.&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;The specification of my Framework Laptop can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop DIY Edition&lt;/li&gt;
  &lt;li&gt;Intel i7-1185G7 4.80GHz (4C/8T)&lt;/li&gt;
  &lt;li&gt;64GB Crucial DDR4 PC4-25600C22 3200MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Western Digital Black SN850 NVMe (7GB/s Read)&lt;/li&gt;
  &lt;li&gt;Intel Iris Xe Graphics&lt;/li&gt;
  &lt;li&gt;13.5-inch LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB4 (USB-C), 1x USB 3.2 G2 (USB-A), 1x HDMI 2.0b&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Knowing that the Framework Laptop is a standard x86-64 architecture, running an Intel 11th Generation processor, the performance is highly predictable.&lt;/p&gt;

&lt;p&gt;For example, any &lt;a href=&quot;https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i7-1185G7+%40+3.00GHz&amp;amp;id=3793&quot;&gt;generic benchmark and/or review&lt;/a&gt; of the Intel i7-1185G7 will provide a good insight into the performance.&lt;/p&gt;

&lt;p&gt;The main differentiator would be any limitation regarding thermal throttling, which I am pleased to report is not something I have experienced with the Framework Laptop.&lt;/p&gt;

&lt;p&gt;To provide some numbers, the &lt;a href=&quot;https://www.geekbench.com/&quot;&gt;Geekbench 5&lt;/a&gt; score was 1727/6134.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkperformance01.jpg&quot; alt=&quot;Framework Performance&quot; title=&quot;Framework Performance&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I also tested Docker, leveraging the build process outlined in my article “&lt;a href=&quot;/2022/03/15/Docker-and-Apple-Silicon/&quot;&gt;Docker and Apple Silicon&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;The build was completed in 54 seconds, which interestingly outperformed the &lt;a href=&quot;/2020/08/02/dell-xps-17/&quot;&gt;Dell XPS 17&lt;/a&gt; and Ryzen 3950X custom-built PC (although this was running Windows and &lt;a href=&quot;/2020/05/12/wsl-2/&quot;&gt;WSL2&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkperformance02.jpg&quot; alt=&quot;Framework Performance&quot; title=&quot;Framework Performance&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, the performance of the Framework Laptop is very good. Not groundbreaking, but consistent with other laptops with an equivalent specification.&lt;/p&gt;

&lt;p&gt;Finally, it is worth mentioning that &lt;a href=&quot;https://www.theverge.com/23125965/framework-laptop-upgrade-intel-12th-gen&quot;&gt;Framework recently announced a series of Intel 12th Generation mainboards&lt;/a&gt;, which can be installed as an upgrade.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/mainboard-12th-gen-intel-core?v=FRANGACP04&quot;&gt;Intel i5-1240P&lt;/a&gt; (12C/16T)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/mainboard-12th-gen-intel-core?v=FRANGACP06&quot;&gt;Intel i7-1260P&lt;/a&gt; (12C/16T)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/mainboard-12th-gen-intel-core?v=FRANGACP08&quot;&gt;Intel i7-1280P&lt;/a&gt; (14C/20T)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With the combined benefits of the newer 12th Generation architecture and higher core count, I would expect to see a decent performance improvement over the current 11th Generation options.&lt;/p&gt;

&lt;h3 id=&quot;reliability&quot;&gt;Reliability&lt;/h3&gt;

&lt;p&gt;So far, I have been impressed with the reliability of the Framework Laptop running Fedora 36.&lt;/p&gt;

&lt;p&gt;I have not experienced any errors or unforeseen issues caused by hardware or software. Although this should be a baseline expectation, there has been a worrying trend of poor quality control with consumer electronics, even from “big brands” such as Dell.&lt;/p&gt;

&lt;p&gt;Knowing that Framework is a new company, combined with the additional complexity of designing a modular laptop that can be serviced at home, I would have accepted a few “issues”. Therefore, it is great to see this level of quality in their first consumer product.&lt;/p&gt;

&lt;p&gt;The only area I would highlight relates to the display hinge, which (in my opinion) is not rigid enough, which can result in a minor wobble when typing.&lt;/p&gt;

&lt;p&gt;Interestingly, it would appear this was a common view and Framework recently released a new &lt;a href=&quot;https://frame.work/gb/en/products/display-hinge-kit&quot;&gt;hinge kit&lt;/a&gt;, which includes a more rigid (4.0kg up from 3.3kg) mechanism.&lt;/p&gt;

&lt;p&gt;This is a great example of listening to your customers and the unique advantage of a modular design, where individual parts can be replaced.&lt;/p&gt;

&lt;p&gt;Finally, it is important to highlight the battery life, which I would describe as “ok”.&lt;/p&gt;

&lt;p&gt;In theory, the laptop can achieve 10 hours of usage. However, I do not believe I have ever achieved this outcome. In my experience, I would guess between 6 and 8 hours.&lt;/p&gt;

&lt;p&gt;However, when using Linux, it is “sleep” mode that causes the biggest concern. By default, using Fedora 36, the Framework Laptop battery can drain as much as 15% per hour while in sleep.&lt;/p&gt;

&lt;p&gt;This is far from ideal, likely caused by the fact that Fedora 36 (at this time) cannot take advantage of the full sleep state of the Intel processor.&lt;/p&gt;

&lt;p&gt;To mitigate this issue, I switched the default sleep state from “s2idle” to “deep”, using the commands highlighted in my &lt;a href=&quot;/2022/05/27/Framework-and-Fedora/&quot;&gt;previous article&lt;/a&gt;. This change reduces the battery drain to approximately 3% per hour, which is not perfect, but manageable.&lt;/p&gt;

&lt;p&gt;As a result, I do not believe I could rely on the Framework Laptop as an “all-day battery” laptop, which is a shame, as I have been spoilt by the latest Apple MacBook Pro running &lt;a href=&quot;/2020/11/18/apple-m1/&quot;&gt;Apple Silicon&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;Overall, the Framework Laptop has been a pleasure to use, either used as a standalone laptop or connected to my &lt;a href=&quot;/2020/08/24/super-ultrawide/&quot;&gt;Samsung C49RG90 49-inch Super Ultra-Wide&lt;/a&gt; monitor.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkperformance03.jpg&quot; alt=&quot;Framework Performance&quot; title=&quot;Framework Performance&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The keyboard, modular expansion cards, 3:2 aspect ratio, and display flexibility are particular highlights.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkperformance04.jpg&quot; alt=&quot;Framework Performance&quot; title=&quot;Framework Performance&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The touchpad, speakers, webcam and microphone are all good, certainly not the best I have used, but perfectly viable for daily use. I do like the physical buttons to disconnect the webcam and microphone, providing additional reassurance for privacy-conscious users.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkperformance05.jpg&quot; alt=&quot;Framework Performance&quot; title=&quot;Framework Performance&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The display itself and fingerprint reader are my only frustrations. The display aspect ratio (3:2) and resolution (2,256 x 1,504) are great. However, it is highly reflective.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkperformance06.jpg&quot; alt=&quot;Framework Performance&quot; title=&quot;Framework Performance&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The fingerprint is ok, but (in my experience) unreliable when compared to Apple TouchID. This might be due to the Linux driver vs. the hardware, which I have not been able to test with Windows.&lt;/p&gt;

&lt;p&gt;Finally, it is worth reiterating the primary selling point of the Framework Laptop. In the event of a hardware issue, I can simply swap the individual component.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, I can’t help but love the Framework Laptop.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Is it perfect? No.&lt;/li&gt;
  &lt;li&gt;Is it the best laptop I own? No (Apple MacBook Pro M1 Max).&lt;/li&gt;
  &lt;li&gt;Do I still love it? Yes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The vision and ambition of Framework as a company is infectious and they have done an amazing job delivering a product that redefines how we think about a laptop, with a focus on the user and sustainability.&lt;/p&gt;

&lt;p&gt;I am eager to support their cause and excited to see what the future holds!&lt;/p&gt;
</description>
        <pubDate>Wed, 01 Jun 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/06/01/Framework-Performance/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/06/01/Framework-Performance/</guid>
      </item>
    
      <item>
        <title>Framework and Fedora</title>
        <description>&lt;p&gt;Earlier this month, I shared my first impressions of the &lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a reminder, &lt;a href=&quot;https://frame.work/&quot;&gt;Framework&lt;/a&gt; set out to deliver a laptop that encourages home servicing and incremental upgrades. I ordered the “&lt;a href=&quot;/gb/en/products/laptop-diy-11-gen-intel&quot;&gt;DIY Edition&lt;/a&gt;”, with the following specification:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop DIY Edition&lt;/li&gt;
  &lt;li&gt;Intel i7-1185G7 4.80GHz (4C/8T)&lt;/li&gt;
  &lt;li&gt;64GB Crucial DDR4 PC4-25600C22 3200MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Western Digital Black SN850 NVMe (7GB/s Read)&lt;/li&gt;
  &lt;li&gt;Intel Iris Xe Graphics&lt;/li&gt;
  &lt;li&gt;13.5-inch LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB4 (USB-C), 1x USB 3.2 G2 (USB-A), 1x HDMI 2.0b&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The assembly process was incredibly straightforward, supported by smart design decisions from Framework, specifically, well-organised internals, labels and instructions for each serviceable part, as well as the inclusion of a handy T5/PH0 double-sided bit screwdriver.&lt;/p&gt;

&lt;p&gt;The build quality of the laptop is very good, but not what I would consider premium. The Framework Laptop does not have the same dense, refined feel as an &lt;a href=&quot;/2018/08/07/macbook-pro-2018/&quot;&gt;Apple MacBook&lt;/a&gt; or &lt;a href=&quot;/2020/08/02/dell-xps-17/&quot;&gt;Dell XPS&lt;/a&gt;. Instead, I would compare it to a mid-range Dell, with a focus on practical usage vs. aesthetics.&lt;/p&gt;

&lt;p&gt;For example, the chassis is made from 50% post-consumer recycled (PCR) aluminium, but it is not overly rigid, resulting in some screen flex and wobble when typing. The same can be said for the trackpad, which lacks the “precision feel” of a Dell XPS or &lt;a href=&quot;/2019/11/18/razer-blade/&quot;&gt;Razer Blade&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With that said, these are minor complaints that do not impede the daily usage of the laptop.&lt;/p&gt;

&lt;p&gt;Since my purchase and following their promise, Framework has released newly upgraded parts and open-source accessories.&lt;/p&gt;

&lt;p&gt;The most significant is the &lt;a href=&quot;https://frame.work/gb/en/marketplace/mainboards&quot;&gt;Intel 12th Generation mainboard&lt;/a&gt;, which remains compatible with the original chassis.&lt;/p&gt;

&lt;p&gt;There have also been some interesting community modifications, using the published schematics to 3D print accessories, such as a &lt;a href=&quot;https://github.com/FrameworkComputer/Mainboard&quot;&gt;standalone case&lt;/a&gt; for the mainboard.&lt;/p&gt;

&lt;p&gt;In short, the hardware continues to impress and it is great to see Framework deliver new updates/parts, helping to build trust in their promise to enable home servicing and incremental upgrades.&lt;/p&gt;

&lt;h3 id=&quot;framework-and-fedora&quot;&gt;Framework and Fedora&lt;/h3&gt;

&lt;p&gt;Complimenting the “open” nature of the hardware, I felt it was only right to install an open-source operating system.&lt;/p&gt;

&lt;p&gt;The Framework Laptop is fully Windows 10/11 compatible and the likely option for most users. However, as a &lt;a href=&quot;/tag/linux/&quot;&gt;Linux fanatic&lt;/a&gt;, there was only one choice for me!&lt;/p&gt;

&lt;p&gt;Initially, I planned to install &lt;a href=&quot;https://pop.system76.com/&quot;&gt;Pop!_OS 22.04&lt;/a&gt;, which includes Linux Kernel 5.16.19, delivering native compatibility for the Framework Laptop.&lt;/p&gt;

&lt;p&gt;Frustratingly, I encountered an issue with the WiFi driver. In theory, this can be fixed by installing the backport Intel WiFi driver package using the command below.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt install backport-iwlwifi-dkms
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
However, the included Intel AX210 vPro WiFi simply refused to connect. I tried multiple workaround options (following guides on &lt;a href=&quot;https://www.reddit.com/r/framework/comments/ubwr07/wifi_on_pop_os_2204/&quot;&gt;Reddit&lt;/a&gt;), but no luck.&lt;/p&gt;

&lt;p&gt;Although &lt;a href=&quot;/2021/10/20/why-pop-os/&quot;&gt;I have grown to love Pop!_OS&lt;/a&gt;, I decided to switch to my old faithful, &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora&lt;/a&gt;. The timing was good, as Fedora 36 had just been released and I was eager to check it out.&lt;/p&gt;

&lt;p&gt;I am pleased to report the installation of Fedora 36 was perfect, with full drive encryption and every driver, including WiFi and the fingerprint reader, detected natively.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworkfedora01.jpg&quot; alt=&quot;Framework and Fedora&quot; title=&quot;Framework and Fedora&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is a great example of how good Linux can be, with no need to install/configure third-party proprietary drivers, etc.&lt;/p&gt;

&lt;p&gt;I suspect my issue with Pop!_OS was simply a bug, which I am confident will be resolved soon.&lt;/p&gt;

&lt;p&gt;Once up and running, I installed my &lt;a href=&quot;/2020/11/20/software-list-2020/&quot;&gt;default software&lt;/a&gt;. Thanks to the growing popularity of &lt;a href=&quot;/2021/11/19/immutable-os/&quot;&gt;immutable operating systems&lt;/a&gt; such as &lt;a href=&quot;https://silverblue.fedoraproject.org/&quot;&gt;Silverblue&lt;/a&gt; and the recent launch of the &lt;a href=&quot;https://store.steampowered.com/steamdeck&quot;&gt;Steam Deck&lt;/a&gt;, the majority of my software is available as a &lt;a href=&quot;/2019/09/22/flatpak-and-snappy/&quot;&gt;flatpak&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Therefore, the installation was as simple as running the following commands.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

flatpak install flathub org.onlyoffice.desktopeditors
flatpak install flathub com.simplenote.Simplenote
flatpak install flathub com.visualstudio.code
flatpak install flathub org.gimp.GIMP
flatpak install flathub org.kde.krita
flatpak install flathub org.flozz.yoga-image-optimizer
flatpak install flathub com.obsproject.Studio
flatpak install flathub com.getpostman.Postman
flatpak install flathub org.videolan.VLC
flatpak install flathub fr.handbrake.ghb
flatpak install flathub org.cryptomator.Cryptomator
flatpak install flathub org.godotengine.Godot
flatpak install flathub com.prusa3d.PrusaSlicer
flatpak install flathub com.valvesoftware.Steam
flatpak install flathub com.heroicgameslauncher.hgl
flatpak install flathub com.discordapp.Discord
flatpak install flathub us.zoom.Zoom
flatpak install flathub com.microsoft.Teams
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Outside of flatpak, I installed &lt;a href=&quot;https://docs.docker.com/engine/&quot;&gt;Docker Engine&lt;/a&gt; and &lt;a href=&quot;https://www.docker.com/products/docker-desktop/&quot;&gt;Docker Desktop&lt;/a&gt;. Fedora includes &lt;a href=&quot;https://podman.io/&quot;&gt;Podman&lt;/a&gt;, which is an excellent container engine.&lt;/p&gt;

&lt;p&gt;However, I am most familiar with Docker and haven’t invested the time (yet) to migrate my workloads.&lt;/p&gt;

&lt;p&gt;Getting Docker up and running is a little more involved, achieved via the following commands.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf -y install dnf-plugins-core

sudo dnf config-manager \
    --add-repo \
    https://download.docker.com/linux/fedora/docker-ce.repo

sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin

sudo systemctl start docker
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Docker Desktop is available as an “rpm” &lt;a href=&quot;https://docs.docker.com/desktop/release-notes/&quot;&gt;download&lt;/a&gt;, which I installed using the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install ./docker-desktop-&amp;lt;version&amp;gt;-&amp;lt;arch&amp;gt;.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The login for Docker Desktop relies on the “&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;pass&lt;/a&gt;” password manager to store credentials as gpg2-encrypted files.&lt;/p&gt;

&lt;p&gt;Therefore, before authenticating via Docker Desktop, “pass” must be initialised.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;gpg --generate-key

pass init &amp;lt;key&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;https://1password.com/&quot;&gt;1Password&lt;/a&gt;, is my prefered password manager. It is available as an rpm package, installed via the following commands.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo rpm --import https://downloads.1password.com/linux/keys/1password.asc

sudo sh -c 'echo -e &quot;[1password]\nname=1Password Stable Channel\nbaseurl=https://downloads.1password.com/linux/rpm/stable/\$basearch\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=\&quot;https://downloads.1password.com/linux/keys/1password.asc\&quot;&quot; &amp;gt; /etc/yum.repos.d/1password.repo'

sudo dnf install 1password
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Finally, I install a few “tweaks” to ensure reliable media playback and font compatibility.&lt;/p&gt;

&lt;p&gt;Starting with &lt;a href=&quot;https://rpmfusion.org/&quot;&gt;RPM Fusion&lt;/a&gt;, which is a repository of add-on packages for Fedora. It includes some useful packages that are not directly included with Fedora.&lt;/p&gt;

&lt;p&gt;The following command enables the “free” and “non-free” repositories.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
With RPM Fusion enabled, the following commands install common multimedia libraries.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel

sudo dnf install lame\* --exclude=lame-devel

sudo dnf group upgrade --with-optional Multimedia
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Next is fonts, where I install the standard Microsoft fonts for improved Microsoft Office compatibility.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install mscore-fonts-all -y

sudo dnf install curl cabextract xorg-x11-font-utils fontconfig

sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Throughout the setup process, I noticed the sleep/suspend state was not ideal, essentially resulting in a high battery drain whilst the laptop lid was closed.&lt;/p&gt;

&lt;p&gt;By default, Fedora does not support hibernate (although it can be configured). Therefore, the default sleep state is “s2idle”, which is not well optimised. This can be confirmed using the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cat /sys/power/mem_sleep
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Although not perfect, I switched the sleep state to “deep” by modifying the file ‘/etc/default/grub’, inserting the parameter ‘mem_sleep_default=deep’ at the end of the line containing the ‘GRUB_CMDLINE_LINUX’ string.&lt;/p&gt;

&lt;p&gt;The final string should read:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;GRUB_CMDLINE_LINUX=&quot;mem_sleep_default=deep&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once added, I rebuilt the grub file using the following command (specific to UEFI).&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Upon reboot, the sleep state should now default to “deep”, which in my testing significantly reduces the battery drain with the lid closed, with the only caveat being a slightly slower resume time (approximately 15 seconds).&lt;/p&gt;

&lt;p&gt;That’s it! My Framework Laptop is now fully set up, running Fedora 36.&lt;/p&gt;

&lt;p&gt;Overall, the process was fairly painless, primarily thanks to the “Linux friendly” hardware choices and the modern Linux Kernel (Linux Kernel 5.17) included as part of Fedora 36.&lt;/p&gt;

&lt;p&gt;Over the coming weeks, I plan to put the Framework Laptop through its paces. Therefore, be sure to stay tuned for updates regarding performance, reliability and usability.&lt;/p&gt;
</description>
        <pubDate>Fri, 27 May 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/05/27/Framework-and-Fedora/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/05/27/Framework-and-Fedora/</guid>
      </item>
    
      <item>
        <title>HashiConf Europe 2022</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - &lt;a href=&quot;/2022/06/21/Journey-to-Hybrid-Multi-Cloud/&quot;&gt;The HashiConf Europe 2022 presentation is now available to view online&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Next month, &lt;a href=&quot;https://www.linkedin.com/in/calum-bell-886654114/&quot;&gt;Calum Bell&lt;/a&gt; and I will be presenting at &lt;a href=&quot;https://hashiconf.com/europe/&quot;&gt;HashiConf Europe 2022&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;HashiConf Europe 2022, hosted by &lt;a href=&quot;https://www.hashicorp.com/&quot;&gt;HashiCorp&lt;/a&gt;, includes over forty keynote and technical sessions, as well as product demos, virtual labs and social events.&lt;/p&gt;

&lt;p&gt;Due to COVID-19, HashiConf Europe 2021 was virtual, but in 2022 the conference will embrace hybrid working, with physical (Amsterdam) and virtual attendance.&lt;/p&gt;

&lt;p&gt;The video below provides a brief recap of HashiConf Europe 2021, highlighting the type of content presented.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/BN6oLQATKnk?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Our session will focus on our journey to Hybrid Multi-Cloud, specifically, &lt;a href=&quot;https://azure.microsoft.com/&quot;&gt;Microsoft Azure&lt;/a&gt; and &lt;a href=&quot;https://cloud.google.com/&quot;&gt;Google Cloud Platform (GCP)&lt;/a&gt; using &lt;a href=&quot;https://cloud.hashicorp.com/products/terraform&quot;&gt;HashiCorp Terraform Cloud&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hashiconf01.jpg&quot; alt=&quot;HashiConf Europe 2022&quot; title=&quot;HashiConf Europe 2022&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We plan to provide some insight into our business and our rationale for embracing Hybrid Multi-Cloud.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hashiconf02.jpg&quot; alt=&quot;HashiConf Europe 2022&quot; title=&quot;HashiConf Europe 2022&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We will then outline our developer experience, which prioritises product team autonomy and proactive controls that help ensure production releases are scalable, secure and meet our expectations regarding quality, privacy and sustainability.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hashiconf03.jpg&quot; alt=&quot;HashiConf Europe 2022&quot; title=&quot;HashiConf Europe 2022&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The session will be made available for on-demand viewing; therefore, I stay tuned for a follow-up article.&lt;/p&gt;

&lt;p&gt;If you would like to engage live, the conference takes place between the 20th and 22nd of June and is free to all virtual attendees.&lt;/p&gt;
</description>
        <pubDate>Fri, 20 May 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/05/20/HashiConf-Europe-2022/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/05/20/HashiConf-Europe-2022/</guid>
      </item>
    
      <item>
        <title>Framework Laptop</title>
        <description>&lt;p&gt;In January 2020, &lt;a href=&quot;https://frame.work/&quot;&gt;Framework Computer&lt;/a&gt; (which for brevity, I will simply reference as Framework) announced its intent to produce a laptop that respected the consumer’s right to repair and upgrade.&lt;/p&gt;

&lt;p&gt;Conventional wisdom, adopted by most computer manufacturers (Apple, Dell, HP), accepts that producing repairable products will make them thicker, heavier, uglier, less robust, and more expensive.&lt;/p&gt;

&lt;p&gt;Framework believes they can reset this perspective, delivering a modern, performant, desirable, and cost-effective laptop, with a modular design that encourages home servicing and incremental upgrades.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://youtu.be/LSxbc1IN9Gg&quot;&gt;Like many across the technology industry&lt;/a&gt;, I was excited by this prospect, which is pro-consumer and environmentally friendly.&lt;/p&gt;

&lt;p&gt;For example, the world produces more than fifty million tons of e-waste per year. On average, that is 6kg per person, per year. This horrific statistic is a direct result of the monolithic, anti-environmental stance taken by companies such as Apple, etc.&lt;/p&gt;

&lt;p&gt;Don’t get me wrong, I use (and love) Apple products, but I also recognise the need to change, which will only happen if consumers take a stand and support companies like Framework.&lt;/p&gt;

&lt;p&gt;Proposed government legislation, such as the right to repair, would also help, forcing manufacturers to provide the practical means for consumers to repair their devices.&lt;/p&gt;

&lt;h3 id=&quot;framework-laptop&quot;&gt;Framework Laptop&lt;/h3&gt;

&lt;p&gt;In July 2021, Framework shipped its first product, the &lt;a href=&quot;https://frame.work/gb/en/marketplace/laptops&quot;&gt;Framework Laptop&lt;/a&gt;, to the US and Canada. This was followed by the UK launch in December 2021.&lt;/p&gt;

&lt;p&gt;Last month, I received my Framework Laptop, which included the following specification:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop DIY Edition&lt;/li&gt;
  &lt;li&gt;Intel i7-1185G7 4.80GHz (4C/8T)&lt;/li&gt;
  &lt;li&gt;64GB Crucial DDR4 PC4-25600C22 3200MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Western Digital Black SN850 NVMe (7GB/s Read)&lt;/li&gt;
  &lt;li&gt;Intel Iris Xe Graphics&lt;/li&gt;
  &lt;li&gt;13.5-inch LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB4 (USB-C), 1x USB 3.2 G2 (USB-A), 1x HDMI 2.0b&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I selected the “&lt;a href=&quot;https://frame.work/gb/en/products/laptop-diy-edition-product&quot;&gt;DIY Edition&lt;/a&gt;”, which allows you to customise your order, shipped as components for home assembly.&lt;/p&gt;

&lt;p&gt;My selected specification is the highest performance available from Framework, costing a total of £2,093.00 (including the £49 USB-C power adapter).&lt;/p&gt;

&lt;p&gt;The price to performance ratio is acceptable, certainly not the cheapest for the specification, but competitive with other premium laptop manufacturers (e.g. Dell, HP, Lenovo, etc.)&lt;/p&gt;

&lt;p&gt;However, the “magic” of the Framework Laptop is not the price or performance, it is the promise of a highly modular laptop that can be serviced/upgraded incrementally over time.&lt;/p&gt;

&lt;h3 id=&quot;building-the-framework-laptop&quot;&gt;Building the Framework Laptop&lt;/h3&gt;

&lt;p&gt;Outlined below are my initial thoughts, covering the unboxing and building of the Framework Laptop. I plan to publish a follow-up article, covering the usage, etc.&lt;/p&gt;

&lt;p&gt;The Framework Laptop arrived in a single cardboard box, which included three smaller boxes (laptop, custom components and power adapter).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop01.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Inside the main box was the laptop itself. Even with the “DIY Edition”, the &lt;a href=&quot;https://frame.work/gb/en/marketplace/mainboards&quot;&gt;mainboard&lt;/a&gt;, &lt;a href=&quot;https://frame.work/gb/en/products/display-kit&quot;&gt;display&lt;/a&gt;, &lt;a href=&quot;https://frame.work/gb/en/marketplace/keyboards&quot;&gt;keyboard&lt;/a&gt;, &lt;a href=&quot;https://frame.work/gb/en/products/touchpad-kit&quot;&gt;touchpad&lt;/a&gt; and &lt;a href=&quot;https://frame.work/gb/en/products/battery&quot;&gt;battery&lt;/a&gt; were already installed.&lt;/p&gt;

&lt;p&gt;However, these components are sold separately via the &lt;a href=&quot;https://frame.work/gb/en/marketplace/&quot;&gt;Framework Marketplace&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop02.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://frame.work/gb/en/products/framework-screwdriver&quot;&gt;Framework Screwdriver&lt;/a&gt; is a combination spudger and screwdriver that comes with a magnetically attached T5/PH0 double-sided bit.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop03.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The second box contained my custom configured components, specifically the Memory, Storage and Expansion Cards. It would appear this is a standard box, with empty compartments for additional components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop04.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Framework Laptop itself includes a 13.5-inch display, with a 3:2 aspect ratio. The exterior build quality is good, comparable to a mid-range PC laptop, although not quite achieving the same level of refinement as an Apple MacBook or a Dell XPS.&lt;/p&gt;

&lt;p&gt;Although this reads like a criticism, the build quality is perfectly acceptable, acknowledging that Framework was founded in 2020, compared to the long heritage of manufacturers such as Apple (1976), Dell (1984), and HP (1939).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop05.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The keyboard and touchpad are both great! The keyboard delivers excellent travel and responsiveness. The touchpad is a buttonless design (not haptic/static) providing a large surface area similar to a Dell XPS 13.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop06.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The only brand awareness on the inside of the laptop is the Framework logo/text on the display hinge, which is tastefully debossed.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop07.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A wider view of the keyboard and touchpad highlights the standard QWERTY layout in UK format.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop08.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The official Framework power adapter is rated at 60W, with a detachable power and USB-C cable. The power brick is very compact thanks to the use of gallium nitride (GaN).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop09.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A closer look at the Framework Screwdriver, which is the only tool you need to service/upgrade your Framework Laptop. The inclusion of this tool is important, as it encourages the consumer to take action.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop10.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Framework Laptop is easy to open, simply loosen the five T5 screws on the bottom. At this point, the keyboard base can be lifted, revealing the laptop internals. All screws are connected to the base (spring-loaded), which is great, as it means they cannot be lost.&lt;/p&gt;

&lt;p&gt;Each serviceable component within the Framework Laptop is easily accessible and clearly signposted, with a handy QR code providing direct access to the specific service/replacement guide (e.g. &lt;a href=&quot;https://guides.frame.work/Guide/Battery+Replacement+Guide/&quot;&gt;Battery&lt;/a&gt;, &lt;a href=&quot;https://guides.frame.work/Guide/Memory+Replacement+Guide/&quot;&gt;Memory&lt;/a&gt;, &lt;a href=&quot;https://guides.frame.work/Guide/Storage+Replacement+Guide/&quot;&gt;Storage&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://guides.frame.work/c/Framework_Laptop&quot;&gt;guides&lt;/a&gt; are also excellent, similar to what I have seen from &lt;a href=&quot;/2021/11/24/prusa-mini-plus/&quot;&gt;Prusa&lt;/a&gt;, providing concise step-by-step information, including photos, videos and user feedback.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop11.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The attention to detail on the inside of the Framework Laptop is impressive, arguably more impressive than the outside. The team should be commended for this innovation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop12.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The memory installation process was exceptionally simple, exactly as it should be.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop13.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The same can be said for the storage, with the same T5 screw-type being used to mount the SSD.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop14.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The touchpad is also serviceable, although likely a little more challenging to remove. The &lt;a href=&quot;https://guides.frame.work/Guide/Touchpad+Replacement+Guide/&quot;&gt;guide&lt;/a&gt; highlights the difficult as “Moderate”. Each serviceable component includes a difficulty level, which helps set appropriate expectations.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop15.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The final part of the build was to insert the expansion cards. The Framework Laptop includes four expansion ports, which all connect via USB-C.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop16.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There are currently six expansion cards available, with the promise of more in the future.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/usb-c-expansion-card&quot;&gt;USB4 (USB-C)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/usb-a-expansion-card&quot;&gt;USB 3.2 G2 (USB-A)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/hdmi-expansion-card&quot;&gt;HDMI 2.0b&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/displayport-expansion-card&quot;&gt;DisplayPort 1.4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/microsd-expansion-card&quot;&gt;MicroSD (UHS-I/UFS)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frame.work/gb/en/products/storage-expansion-card&quot;&gt;Storage&lt;/a&gt; (256GB/1TB)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I selected, 2x USB4 (USB-C), 1x USB 3.2 G2 (USB-A), and 1x HDMI 2.0b.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop17.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once inserted, the expansion card can be removed by pressing the button on the bottom of the laptop.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/frameworklaptop18.jpg&quot; alt=&quot;Framework Laptop&quot; title=&quot;Framework Laptop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, I commend the Framework team for leading by example and showing the world that serviceable/upgradable laptops are still possible in 2022!&lt;/p&gt;

&lt;p&gt;Steve Jobs once said:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Making an insanely great product has a lot to do with the process of making the product, how you learn things and adopt new ideas and throw out old ideas.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I believe this statement epitomises the Framework Laptop, which is a tangible example of innovation that challenges the status quo.&lt;/p&gt;

&lt;p&gt;I am excited to see how the Framework Laptop performs over time, attacking my common workloads. Expect a follow-up article soon.&lt;/p&gt;
</description>
        <pubDate>Thu, 05 May 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/05/05/Framework-Laptop/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/05/05/Framework-Laptop/</guid>
      </item>
    
      <item>
        <title>CTO vs. CISO</title>
        <description>&lt;p&gt;Since 2018, I have held the role of &lt;a href=&quot;https://www.lifeintech.com/2018/09/23/cto/&quot;&gt;Chief Technology Officer (CTO)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Last month, my role was expanded, combining the roles of Chief Technology Officer (CTO) and Chief Information Security Officer (CISO).&lt;/p&gt;

&lt;p&gt;The expansion was the result of an unforeseen personal change and not necessarily part of my &lt;a href=&quot;/2019/01/12/career-planning/&quot;&gt;career plan&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;However, sometimes circumstances present an opportunity and it was certainly a gratifying “vote of confidence” in my ability. Therefore, I willingly accepted, excited by the prospect of personal development and the chance to broaden my value contribution.&lt;/p&gt;

&lt;p&gt;With that said, I did have some reservations regarding the impact of combining the CTO and CISO, both personally and from a business perspective.&lt;/p&gt;

&lt;p&gt;Therefore, I thought I would share my thinking, highlighting some of the benefits and concerns.&lt;/p&gt;

&lt;p&gt;As a starting point, I feel it is important to baseline the responsibilities of the CTO and CISO.&lt;/p&gt;

&lt;p&gt;It should be noted that these responsibilities are not consistently defined. For example, depending on the company, the CTO role can cover everything from technology operations management to technology innovation (and sometimes both).&lt;/p&gt;

&lt;p&gt;Outlined below are the responsibilities of the CTO and CISO at my company.&lt;/p&gt;

&lt;h3 id=&quot;chief-technology-officer-cto&quot;&gt;Chief Technology Officer (CTO)&lt;/h3&gt;

&lt;p&gt;The Chief Technology Officer (CTO) is the executive responsible for the overarching technology strategy, including investments, architecture, engineering and external engagement.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Business Development:&lt;/strong&gt; Partner with the business to build a strategy that supports the company objectives. Help to identify and realise opportunities, including new digital/data business models.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;IT Vision and Strategy:&lt;/strong&gt; Position IT as a differentiator, delivering a secure, reliable, efficient IT Ecosystem and new value through the creation of innovative digital/data products, services and insights.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Technology Governance:&lt;/strong&gt; Establish, embed and maintain a framework of authority and accountability that defines and controls the outputs, outcomes and benefits of Information Technology, ensuring prioritised initiatives have the required structure, sponsorship and funding to succeed.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Technology Investments:&lt;/strong&gt; Establish and maintain the technology investment portfolio, including the executive relationships with strategic partners, aiming to maximise the return on investment.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Architecture:&lt;/strong&gt; Lead the global architecture community, establishing, embedding and maintaining a framework for the design, development, and implementation of IT/OT solutions. Includes the leadership of Business Process, Solution, Data, and Domain architects, responsible for the creation and maintenance of architecture principles, positioning, methods and models, including technical enforcement mechanisms.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Engineering:&lt;/strong&gt; Lead the global engineering community, enabling the design, development, and implementation of IT/OT solutions, alongside rapid development of discovery (experimentation) initiatives. Includes the leadership of Solution, Data, Site Reliability, and DevOps engineers.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Innovation and External Engagement:&lt;/strong&gt; Identify and promote technology opportunities that position the company as a market leader in Science, Technology, Engineering and Math (STEM), supporting talent acquisition and external collaboration.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Coaching and Mentoring:&lt;/strong&gt; Engage in the community (internal and external) across multiple channels, looking to share, educate and inspire. Support and promote the recruitment and personal development of individuals following a career path in STEM.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;chief-information-security-officer-ciso&quot;&gt;Chief Information Security Officer (CISO)&lt;/h3&gt;

&lt;p&gt;The Chief Information Security Officer (CISO) is the executive responsible for developing and implementing an information security program, covering cyber, data and information security.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cybersecurity Governance:&lt;/strong&gt; Establish, embed and maintain a framework of authority and accountability for cybersecurity across Information Technology (IT), Operational Technology (OT) and relevant Business Functions, ensuring prioritised initiatives have the required structure, sponsorship and funding to succeed.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cybersecurity Risk:&lt;/strong&gt; Partner to analyse, measure and understand cybersecurity risk, identifying potential threats and vulnerabilities following a defined risk framework, including strategies to mitigate the likelihood.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cybersecurity Compliance:&lt;/strong&gt; Identify and maintain compliance with relevant global cybersecurity laws, regulations, and industry standards. Establish and maintain roles and responsibilities with key Business Functions, specifically Finance, Legal and Privacy.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cybersecurity Architecture:&lt;/strong&gt; Ensure cybersecurity policies and standards are understood and enforced throughout the design, development, and implementation of Information Technology (IT) and Operational Technology (OT) solutions. Includes the leadership of Information Security architects, responsible for the creation and maintenance of architecture principles, positioning, methods and models, including technical enforcement mechanisms.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cybersecurity Operations:&lt;/strong&gt; Continuous analysis of cybersecurity threats, incidents and investigations, maintaining the global incident response plan that defines the detect, respond and recovery processes.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cybersecurity Awareness and Education:&lt;/strong&gt; Deliver and measure cybersecurity awareness and education to improve the acumen of Elanco stakeholders, establishing a culture of security.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cybersecurity Technology Foundations:&lt;/strong&gt; The procurement, design, implementation and support of specific cybersecurity technologies/services, facilitating cybersecurity policies, standards, controls and procedures.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Executive Engagement:&lt;/strong&gt; Represent cybersecurity internally and externally, partnering closely with the Executive Committee, Audit Committee and Board of Directors.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;combined-cto--ciso&quot;&gt;Combined CTO / CISO&lt;/h3&gt;

&lt;p&gt;As highlighted by the responsibilities, there are natural points of convergence, specifically architecture and engineering when targeting Security by Design.&lt;/p&gt;

&lt;p&gt;However, each role also includes a range of unique responsibilities, which have the potential to be time-consuming, commonly resulting in two dedicated roles.&lt;/p&gt;

&lt;p&gt;Outlined below are the advantages and concerns associated with a combined CTO / CISO role.&lt;/p&gt;

&lt;h4 id=&quot;advantages&quot;&gt;Advantages:&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Zero Trust:&lt;/strong&gt; As highlighted in my article “&lt;a href=&quot;/2020/10/31/zero-trust/&quot;&gt;Zero Trust&lt;/a&gt;”, the advent of digital/data business models has resulted in new threat vectors. Zero Trust is a fundamentally different approach to IT security, moving away from the traditional “moat/castle” strategy. It places a strong emphasis on Identity, the Principle of Least Privilege, and Securing at Source. I believe a combined CTO / CISO role could help accelerate the adoption of Zero Trust by positioning a unified strategy, ensuring discipline and removing bureaucracy.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;IT Ecosystem Knowledge:&lt;/strong&gt; The CTO should have an unparalleled understanding of the IT Ecosystem. Although certain roles have greater domain-specific expertise, very few roles have the full end-to-end understanding, with the ability to deep dive where required. This insight provides a unique appreciation of the strengths and weaknesses, which could help identify and prioritise risks.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Technical Expertise:&lt;/strong&gt; Although technical depth is not a requirement of the CISO role, the technical expertise commonly possessed by the CTO could prove invaluable. For example, “code-level” knowledge when dealing with a software-defined IT ecosystem could help identify opportunities and troubleshoot incidents, whilst ensuring appropriate context when assessing risk.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Delivery/Ops:&lt;/strong&gt; Security by Design requires product/project teams to embed security into their daily activities. This can be a challenge for dedicated Information Security teams, where roles and responsibilities can become confused or ignored. The established relationships and credibility between the CTO and Delivery/Ops teams should help bridge this gap, promoting and embedding the mission of Information Security.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;concerns&quot;&gt;Concerns:&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Equilibrium:&lt;/strong&gt; The CTO and CISO roles work best when balancing each other. The CTO should be progressive, pushing the boundaries of what is possible. The CISO should constructively challenge, helping to manage any associated risk. With the two roles combined, a new approach would need to be defined to self-regulate.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Governance, Risk and Compliance (GRC):&lt;/strong&gt; A critical part of the CISO role is Governance, Risk and Compliance (GRC), establishing a framework of authority and accountability that defines and controls the outputs, outcomes and benefits of Information Security. This is a process-led (not technology-led) responsibility, requiring a different skill set to be successful.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Information Security Team:&lt;/strong&gt; Succession in Information Security is commonly associated with the CISO role. By combining the CTO / CISO role, the expectations regarding expertise and experience are reset. This would likely reduce the viable candidates, potentially impacting morale and creating retention challenges.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Capacity:&lt;/strong&gt; As highlighted, the CTO and CISO roles require a significant time investment to be successful as they both include a wide range of highly visible responsibilities. A combined CTO / CISO role will undoubtedly apply additional individual pressure, potentially impacting work/life balance and wellbeing. Certainly, something to consider when looking to ensure a healthy “long-term” career.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Looking across the industry, it is common for start-ups and small/medium businesses to have a combined CTO / CISO role. However, it becomes less common at the enterprise level.&lt;/p&gt;

&lt;p&gt;In a perfect world, I do believe these two roles are best delivered separately, with a strong partnership. However, business-specific context is critical (every company is different) and there are certain advantages (as highlighted) to a combined role.&lt;/p&gt;

&lt;p&gt;As a result, I am optimistic and energised about my expanded role as a combined Chief Technology Officer (CTO) and Chief Information Security Officer (CISO).&lt;/p&gt;

&lt;p&gt;I recognise the need to establish and empower a strong team, as well as a clear strategy that promotes appropriate autonomy to ensure success. This will be my focus over the first few months!&lt;/p&gt;
</description>
        <pubDate>Sun, 01 May 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/05/01/CTO-vs-CISO/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/05/01/CTO-vs-CISO/</guid>
      </item>
    
      <item>
        <title>Microsoft Zero Trust</title>
        <description>&lt;p&gt;Earlier today, &lt;a href=&quot;https://www.microsoft.com/&quot;&gt;Microsoft&lt;/a&gt; published a &lt;a href=&quot;https://customers.microsoft.com/en-us/story/1475174067017321855-elanco-consumer-goods-microsoft-security-solutions&quot;&gt;customer story&lt;/a&gt; focused on my companies journey to &lt;a href=&quot;/2020/10/31/zero-trust/&quot;&gt;Zero Trust&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://customers.microsoft.com/en-us/story/1475174067017321855-elanco-consumer-goods-microsoft-security-solutions&quot;&gt;&lt;img src=&quot;/images/posts/microsoftzerotrust01.jpg&quot; alt=&quot;Microsoft Zero Trust&quot; title=&quot;Microsoft Zero Trust&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the article, &lt;a href=&quot;https://www.linkedin.com/in/murtazanisar/&quot;&gt;Murtaza Nisar&lt;/a&gt; (CISO) and I highlight our philosophy and approach to Information Security, including our use of the Microsoft Security Suite, covered under the &lt;a href=&quot;https://www.microsoft.com/en-gb/microsoft-365/enterprise/e5&quot;&gt;Microsoft 365 E5&lt;/a&gt; license.&lt;/p&gt;

&lt;p&gt;If you would like to learn more about Zero Trust at Microsoft, I would recommend the following links.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-gb/security/business/zero-trust&quot;&gt;Microsoft Zero Trust Security Model&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RWJJdT&quot;&gt;Microsoft Zero Trust Whitepaper&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also recorded a live interview, which compliments the article.&lt;/p&gt;

&lt;iframe class=&quot;vidyard_iframe&quot; src=&quot;//play.vidyard.com/s94o7xJ5MPQFkQSAfDtdky.html?&quot; width=&quot;640&quot; height=&quot;360&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The video was recorded after a day of back-to-back meetings, hence I look a little disheveled.&lt;/p&gt;
</description>
        <pubDate>Tue, 05 Apr 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/04/05/Microsoft-Zero-Trust/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/04/05/Microsoft-Zero-Trust/</guid>
      </item>
    
      <item>
        <title>Data to Power Decisions</title>
        <description>&lt;p&gt;My colleague &lt;a href=&quot;https://www.linkedin.com/in/sam-miller-664979/&quot;&gt;Sam Miller&lt;/a&gt; recently published an article on &lt;a href=&quot;https://www.linkedin.com/&quot;&gt;LinkedIn&lt;/a&gt;, which explores &lt;a href=&quot;https://www.linkedin.com/pulse/data-solutions-power-decision-making-elanco-it/&quot;&gt;opportunities for data solutions to deliver a foundation that can be used to power decision-making&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/pulse/data-solutions-power-decision-making-elanco-it/&quot;&gt;&lt;img src=&quot;/images/posts/datatopowerdecisions01.jpg&quot; alt=&quot;Data to Power Decisions&quot; title=&quot;Data to Power Decisions&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The article covers five key areas:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Common Design Pattern and Technologies&lt;/li&gt;
  &lt;li&gt;Data Products&lt;/li&gt;
  &lt;li&gt;Decentralization&lt;/li&gt;
  &lt;li&gt;Frameworks (Accelerators)&lt;/li&gt;
  &lt;li&gt;Accessibility&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I look forward to learning more from Sam and the team over the coming months.&lt;/p&gt;
</description>
        <pubDate>Tue, 05 Apr 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/04/05/Data-to-Power-Decisions/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/04/05/Data-to-Power-Decisions/</guid>
      </item>
    
      <item>
        <title>Docker and Apple Silicon</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2014/07/21/docker-containerisation-virtualisation/&quot;&gt;I have been using Docker since 2014&lt;/a&gt;, primarily to support web development.&lt;/p&gt;

&lt;p&gt;Last year, I tested Docker for Mac on the MacBook Air (M1) and MacBook Pro (M1 Max) both running &lt;a href=&quot;/2020/11/18/apple-m1/&quot;&gt;Apple Silicon&lt;/a&gt;, which I documented across four articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/11/18/apple-m1/&quot;&gt;Apple M1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/12/19/docker-on-apple-m1/&quot;&gt;Docker on Apple M1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/12/29/docker-m1-arm64/&quot;&gt;Docker + M1 + ARM64&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/11/03/docker-performance-on-m1/&quot;&gt;Docker Performance on M1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Docker running on Apple Silicon demonstrated tremendous potential. Unfortunately, the hardware was held back by the software, specifically &lt;a href=&quot;https://docs.docker.com/desktop/mac/install/&quot;&gt;Docker Desktop for Mac&lt;/a&gt; that leverages gRPC-FUSE for file sharing, which resulted in poor I/O performance.&lt;/p&gt;

&lt;p&gt;In my testing, the best build time I could achieve running Docker on macOS was 220 seconds, compared to just 9 seconds when building under Docker via a Linux virtual machine (Ubuntu Server ARM64) running on &lt;a href=&quot;https://mac.getutm.app/&quot;&gt;UTM&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The I/O performance limitation is workload-specific, primarily impacting projects with a lot of small files. However, it was disruptive enough, that it forced me away from Docker Desktop for Mac.&lt;/p&gt;

&lt;p&gt;Therefore, &lt;a href=&quot;/2021/10/29/virtualisation-on-m1/&quot;&gt;I have spent the past six months running Docker inside a “right-sized” Linux virtual machine&lt;/a&gt;, which unlocked the raw performance of the Apple Silicon by removing the filesystem I/O bottleneck. This approach delivered an unbelievable 24x performance increase over Docker Desktop for Mac.&lt;/p&gt;

&lt;h3 id=&quot;docker-desktop-v460&quot;&gt;Docker Desktop v4.6.0&lt;/h3&gt;

&lt;p&gt;Yesterday, Docker released &lt;a href=&quot;https://docs.docker.com/desktop/mac/release-notes/#docker-desktop-460&quot;&gt;Docker Desktop for Mac v4.6.0&lt;/a&gt;, which included the following new feature:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Docker Desktop 4.6.0 gives macOS users the option of enabling a new experimental file-sharing technology called VirtioFS. During testing VirtioFS has been shown to drastically reduce the time taken to sync changes between the host and VM, leading to substantial performance improvements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The accompanying &lt;a href=&quot;https://www.docker.com/blog/speed-boost-achievement-unlocked-on-docker-desktop-4-6-for-mac/&quot;&gt;blog post&lt;/a&gt; states.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“The 4.6 release of Docker Desktop for Mac contains a number of changes that drastically improve file sharing performance for macOS users. Firstly, developers now have the option of using a new experimental file sharing implementation called virtiofs (the current default is gRPC-FUSE). Secondly, improvements have been made to the way that files are synced between the macOS host and Docker VM. During testing with our amazing macOS community of users, we have observed that these changes have reduced the time taken to complete filesystem operations by up to 98%.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In theory, this new feature directly targets the issue I have been experiencing, therefore I was eager to see how it performed across my common workloads.&lt;/p&gt;

&lt;h3 id=&quot;test-setup&quot;&gt;Test Setup&lt;/h3&gt;

&lt;p&gt;As part of my testing, I will be using the 16-inch MacBook Pro (OCT-2021). A summary of the specification can be found below.&lt;/p&gt;

&lt;h4 id=&quot;16-inch-macbook-pro-oct-2021&quot;&gt;16-inch MacBook Pro (OCT-2021)&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Apple M1 Max (10-core - 8 Performance / 2 Efficiency)&lt;/li&gt;
  &lt;li&gt;32-core GPU (10.4 Teraflops)&lt;/li&gt;
  &lt;li&gt;64GB Unified Memory (400GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;1TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;macOS 12.3&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I plan to use &lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt; (this blog) as my test build, which follows the &lt;a href=&quot;/2017/12/20/jamstack/&quot;&gt;JAMstack web development architecture&lt;/a&gt;, using the &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll Static Site Generator&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The project includes a range of external dependencies and custom plugins. It is fairly large, including over 4000 individual files and 800MB of data. This is relevant as it applies file sharing I/O pressure.&lt;/p&gt;

&lt;p&gt;On the MacBook Pro, I plan to test three scenarios, specifically Docker Desktop for Mac (default), Docker Desktop for Mac (VirtioFS), and Docker running on a Linux virtual machine using &lt;a href=&quot;https://mac.getutm.app/&quot;&gt;UTM&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To enable VirtioFS, update to Docker Desktop for Mac v4.6.0 or higher, select “Preferences &amp;gt; Experimental Features” and check the following configuration options.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Use the new Virtualisation framework&lt;/li&gt;
  &lt;li&gt;Enable VirtioFS accelerated directory sharing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The screenshot below highlights the configuration.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dockerperformanceonm102.jpg&quot; alt=&quot;Docker and Apple Silicon&quot; title=&quot;Docker and Apple Silicon&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once configured, Docker will restart with VirtioFS enabled by default.&lt;/p&gt;

&lt;h3 id=&quot;results&quot;&gt;Results&lt;/h3&gt;

&lt;p&gt;The table below highlights my findings. As a point of comparison, &lt;a href=&quot;/2021/11/03/docker-performance-on-m1/&quot;&gt;I have retained my original test results&lt;/a&gt;, which include my AMD Ryzen 3950X (16C/32T) / 64GB RAM custom-built PC running native Docker Desktop (WSL2).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dockerperformanceonm103.jpg&quot; alt=&quot;Docker and Apple Silicon&quot; title=&quot;Docker and Apple Silicon&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I am pleased to report that the new VirtioFS file-sharing implementation does make a significant difference.&lt;/p&gt;

&lt;p&gt;The build time dropped from 220 seconds to 38 seconds, which is also faster than my custom-built PC. It cannot compete with the Linux virtual machine using UTM, but this is essentially Apple Silicon running on native Linux, therefore removing all middleware bottlenecks.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In a perfect world, I would love to see “native” Docker performance under macOS, achieving the same 9 second build times achieved with Linux.&lt;/p&gt;

&lt;p&gt;However, 38 seconds is a significant improvement over 220 seconds and it also outperforms my custom-built PC (75 seconds). This is a huge milestone and I commend the team at Docker for this release!&lt;/p&gt;

&lt;p&gt;As a result, I believe Docker Desktop for Mac has now become viable for daily use.&lt;/p&gt;

&lt;p&gt;Although I will likely retain my Linux virtual machine as a backup, the ability to simply build directly from macOS without any additional pre-work (UTM configuration, Ubuntu Server setup/maintenance, SSH) is highly valuable.&lt;/p&gt;
</description>
        <pubDate>Tue, 15 Mar 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/03/15/Docker-and-Apple-Silicon/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/03/15/Docker-and-Apple-Silicon/</guid>
      </item>
    
      <item>
        <title>TechPoint MIRA Awards</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Unfortunately, we did not win the main prize. However, the team had a great time at the gala and it was great to engage the community. Congratulations to the winners!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt; is my personal blog, where I share my thoughts and showcase projects.&lt;/p&gt;

&lt;p&gt;However, I do occasionally share some highlights from &lt;a href=&quot;/tag/lifeinwork/&quot;&gt;work&lt;/a&gt;, specifically in areas where IT has publically disclosed acomplishments. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/06/10/journey-to-the-cloud/&quot;&gt;Journey to the Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/07/21/infrastructure-as-code/&quot;&gt;Infrastructure as Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/09/12/experience-analytics/&quot;&gt;Experience Analytics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/09/28/cto-confessions/&quot;&gt;CTO Confessions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/10/01/deloitte-experience-analytics/&quot;&gt;Deloitte Experience Analytics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/09/29/boomi/&quot;&gt;Boomi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/10/08/devops-enterprise-forum/&quot;&gt;DevOps @ Enterprise Forum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/10/25/evolve-21/&quot;&gt;EVOLVE21&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/11/16/evolve-21-update/&quot;&gt;EVOLVE21 - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/11/25/Kontent-Horizons/&quot;&gt;Kontent Horizons&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/01/01/CTO-Confessions-Podcast/&quot;&gt;CTO Confessions Podcast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2022/01/14/Corporate-Separation/&quot;&gt;Corporate Separation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The past two years have been unlike anything I have experienced in my career.&lt;/p&gt;

&lt;p&gt;In late-2018, we completed an IPO, becoming a standalone company.&lt;/p&gt;

&lt;p&gt;Before the IPO, all IT services were consumed from the parent company, supporting thousands of employees and millions of customers across more than 90 Countries.&lt;/p&gt;

&lt;p&gt;As a result of the IPO, my team had just over two years to rebuild IT from the ground up, covering the architecture, technology, processes, as well as recruiting the team itself.&lt;/p&gt;

&lt;p&gt;This was completed under extreme time and budget constraints, whilst also maintaining business continuity throughout.&lt;/p&gt;

&lt;p&gt;During the transition, in 2019, we demonstrated our ambition as a standalone company, by acquiring one of our largest competitors.&lt;/p&gt;

&lt;p&gt;Therefore, not only did we need to rebuild IT but also integrate another company simultaneously, which doubled the internal user-based to 15,000.&lt;/p&gt;

&lt;p&gt;Finally, these activities were completed under the backdrop of the global pandemic, where travel logistics and supply chains were heavily impacted.&lt;/p&gt;

&lt;p&gt;This “perfect storm” of IPO, acquisition and global pandemic feels like a unique, once in a lifetime experience.&lt;/p&gt;

&lt;p&gt;Therefore, as an Indiana-based company, I am pleased to share that the team have been nominated and selected as a winner for two &lt;a href=&quot;https://techpoint.ac-page.com/mira&quot;&gt;TechPoint MIRA Awards&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The TechPoint Mira Awards are Indiana’s largest, best known, and most prestigious technology awards. A total of 276 people, products, companies and places have been honoured with coveted Mira Awards over 23 years, and they have gone on to become the state’s greatest tech successes.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/k9h7yZlqqng?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The team have been nominated for two awards:&lt;/p&gt;

&lt;h3 id=&quot;large-enterprise-of-the-year&quot;&gt;Large Enterprise of the Year&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;The Large Enterprise of the Year award recognizes tech companies (including tech-enabled) that are succeeding in the marketplace; investing in innovation; committing to diversity, equity, and inclusion; boosting Indiana’s reputation nationally/internationally; and leveraging their resources and scale to make a positive impact in our community. We especially encourage applications from employers who are advancing diversity, equity and inclusion and/or creating employment and development pathways to underrepresented individuals.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;service-partner-of-the-year&quot;&gt;Service Partner of the Year&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;The Service Partner of the Year award celebrates exceptional work by professional services firms or internal teams who created the year’s best solutions, which are defined as the development of tech products or other professional services for a tech company. Services may be related to IT/cyber, design/branding, marketing/PR, legal/accounting, consulting, and data science.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full details regarding the awards, including the eligibility, nomination and winners process can be found in the &lt;a href=&quot;https://techpoint.org/wp-content/uploads/2021/11/Entry-Kit-Categories-Criteria-Guide-2022-v2.pdf&quot;&gt;TechPoint MIRA Awards Entry Kit&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Last week, I was interviewed by the executive judging panel, with the winners announced at the annual TechPoint MIRA Awards Gala on 23 April 2022.&lt;/p&gt;

&lt;p&gt;Wish us luck!&lt;/p&gt;
</description>
        <pubDate>Mon, 14 Mar 2022 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2022/03/14/TechPoint-MIRA-Awards/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/03/14/TechPoint-MIRA-Awards/</guid>
      </item>
    
      <item>
        <title>Swift Playgrounds 4</title>
        <description>&lt;p&gt;In December, Apple released &lt;a href=&quot;https://developer.apple.com/swift-playgrounds/&quot;&gt;Swift Playgrounds 4&lt;/a&gt;, which delivers new tools that enable developers to build and submit &lt;a href=&quot;https://developer.apple.com/xcode/swiftui/&quot;&gt;SwiftUI&lt;/a&gt; iPhone and iPad apps directly from Swift Playgrounds.&lt;/p&gt;

&lt;p&gt;Previous versions of Swift Playgrounds had been exclusively focused on education, with pre-defined, heavily constrained lessons. Although the previous content was excellent, it failed to provide a path from “basic programming concepts” to building an actual app. For example, the jump from Swift Playgrounds to &lt;a href=&quot;https://developer.apple.com/xcode/&quot;&gt;Xcode&lt;/a&gt; is significant, also requiring the developer to have access to a Mac.&lt;/p&gt;

&lt;p&gt;With Swift Playgrounds 4, Apple has (for the first time) delivered a development environment that can officially build and submit an app to the &lt;a href=&quot;https://www.apple.com/app-store/&quot;&gt;Apple App Store&lt;/a&gt; without the use of Xcode.&lt;/p&gt;

&lt;p&gt;Key new features include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.swift.org/blog/swift-5-5-released/&quot;&gt;Swift 5.5&lt;/a&gt;, introduced language capabilities for concurrency.&lt;/li&gt;
  &lt;li&gt;Focuses on SwiftUI apps, but also supports &lt;a href=&quot;https://developer.apple.com/documentation/uikit&quot;&gt;UIKit&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;With an &lt;a href=&quot;https://developer.apple.com/&quot;&gt;Apple Developer Account&lt;/a&gt;, developers can submit apps to the App Store.&lt;/li&gt;
  &lt;li&gt;Supports &lt;a href=&quot;https://www.swift.org/package-manager/&quot;&gt;Swift Package Manager&lt;/a&gt;, including import from &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Includes code completion, similar to Xcode.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As the name suggests, SwiftUI delivers a set of tools and APIs for user interface development, including key features such as GPU acceleration, accessibility options, retina support, widgets, etc. In short, it allows developers to build consistent, great-looking apps across all Apple platforms using Swift.&lt;/p&gt;

&lt;p&gt;With this in mind, Swift Playgrounds 4 is still limited regarding the types of apps you can create. For example, it would be difficult to build the next “blockbuster” game. With that said, building on its heritage as an education tool, SwiftUI is a logical next step for Swift Playgrounds, opening the door to new experiences, whilst ensuring an appropriate learning curve.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2019/06/02/swift-playgrounds/&quot;&gt;I had previously used Swift Playgrounds with my son (now six years old)&lt;/a&gt;, helping him to learn the basic concepts of programming.&lt;/p&gt;

&lt;p&gt;Alongside Swift Playgrounds, &lt;a href=&quot;/2020/09/04/kids-coding/&quot;&gt;my son has also been learning via different iPad apps&lt;/a&gt; (e.g. &lt;a href=&quot;https://www.kodable.com/&quot;&gt;Kodable&lt;/a&gt;) and is a regular player of &lt;a href=&quot;https://www.roblox.com/&quot;&gt;Roblox&lt;/a&gt; and &lt;a href=&quot;https://www.minecraft.net/&quot;&gt;Minecraft&lt;/a&gt;, which (can) incorporate programming concepts.&lt;/p&gt;

&lt;p&gt;Therefore, we decided to take these new skills and attempt to build his first app using Swift Playgrounds 4.&lt;/p&gt;

&lt;p&gt;As with any project of this type, finding an idea with a defined scope is critical. For example, an app that would appeal to a six-year-old, and could be developed in around 30mins (maximum attention span).&lt;/p&gt;

&lt;p&gt;This led me to the excellent tutorial “Build your first SwiftUI app with Swift Playgrounds 4 for iPad” by &lt;a href=&quot;https://www.youtube.com/channel/UCmJi5RdDLgzvkl3Ly0DRMlQ&quot;&gt;Paul Hudson&lt;/a&gt;. I have embedded the video below, which outlines the process end-to-end.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/EbBjeRqQpl0?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The app displays a list of personalised photos, which play a custom sound when tapped. It can be developed in around 30 lines of code and includes key concepts such as SwiftUI views, modifiers, use lists, grids, images, buttons, and even the use of a third-party Swift package from GitHub.&lt;/p&gt;

&lt;p&gt;My son and I worked together on the app, with him typing/tapping, whilst I provided commentary as to “what” and “why”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/swiftplaygrounds401.jpg&quot; alt=&quot;Swift Playgrounds 4&quot; title=&quot;Swift Playgrounds 4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thanks to the new code completion capabilities of Swift Playgrounds 4, my son was able to start typing (first few letters) and then select from a list to complete the line of code. Now that he is old enough to read, this was an engaging way of coding, as the process of finding the right code snippet was like a mini-game in itself.&lt;/p&gt;

&lt;p&gt;All media (photos and sounds) were created and imported into the app directly on the iPad using the included camera and sound recorder apps. This worked well, as it broke up the coding with some fun elements. For example, my son enjoyed making silly sounds, especially when he realised he could make my photo fart.&lt;/p&gt;

&lt;p&gt;The entire process took us around 40mins, resulting in a fully functioning app that can be compiled and executed directly from the iPad (no Apple Developer Account required). The full code (minimum viable product) can be found below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/swiftplaygrounds402.jpg&quot; alt=&quot;Swift Playgrounds 4&quot; title=&quot;Swift Playgrounds 4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Following the initial release, my son went back and modified the code by repeating the previously learnt steps to add his mum and sister (three years old). This was gratifying, as it demonstrated his understanding and allowed other members of the family to contribute.&lt;/p&gt;

&lt;p&gt;Overall, I am impressed with Swift Playgrounds 4. I am excited to see Apple add more advanced capabilities to the app, highlighting a future where end-to-end development could be viable on an iPad. I did notice a few small bugs, but they did not impact the experience and were easily mitigated.&lt;/p&gt;

&lt;p&gt;I should also reiterate and commend the excellent tutorial created by Paul Hudson! Great work!&lt;/p&gt;
</description>
        <pubDate>Tue, 01 Feb 2022 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2022/02/01/Swift-Playgrounds-4/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/02/01/Swift-Playgrounds-4/</guid>
      </item>
    
      <item>
        <title>LifeinTECH 2022</title>
        <description>&lt;p&gt;I launched my personal blog (&lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt;) in 2008.&lt;/p&gt;

&lt;p&gt;At the time, I had just started a new job as a Telecoms (Network) engineer. Over the past 14 years, LifeinTECH has followed my journey in technology, providing a location for me to share my thoughts and projects.&lt;/p&gt;

&lt;p&gt;As I look back on the 300+ articles (approximately twenty-one per year), &lt;a href=&quot;/2019/01/12/career-planning/&quot;&gt;It is gratifying to see the trends that have followed my career through multiple engineering roles, to architecture, culminating in my current position as Chief Technology Officer (CTO)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;LifeinTECH is a non-profit (no advertisement or tracking) and is not associated with or sponsored by any third parties. This is important, as the primary audience for LifeinTECH is me!&lt;/p&gt;

&lt;p&gt;I find writing a powerful way to organise my thoughts and work through complex topics. It also provides a mechanism to help retain (and structure) information (like a journal).&lt;/p&gt;

&lt;p&gt;The advantage of having the content public is that others can also (potentially) benefit and/or contribute. It also acts as a nice portfolio, capturing accomplishments and providing insight into passion areas.&lt;/p&gt;

&lt;h3 id=&quot;architecture&quot;&gt;Architecture&lt;/h3&gt;

&lt;p&gt;LifeinTECH follows the &lt;a href=&quot;/2017/12/20/jamstack/&quot;&gt;JAMstack web development architecture&lt;/a&gt;, using the &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll Static Site Generator&lt;/a&gt;. It is hosted on &lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify&lt;/a&gt;, secured using HTTPS, with a certificate provisioned from &lt;a href=&quot;https://letsencrypt.org/&quot;&gt;Let’s Encrypt&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I leverage the Netlify “&lt;a href=&quot;https://www.netlify.com/pricing/&quot;&gt;Starter&lt;/a&gt;” plan, which includes 100GB bandwidth and 300 build minutes per month. The advantage of this plan is that it is completely free, whilst still offering modern capabilities, such as Custom Domains, CI/CD, GitHub integration, CDN, Site Previews, Serverless Functions, etc.&lt;/p&gt;

&lt;p&gt;The site is configured as a &lt;a href=&quot;/2017/07/27/progressive-web-apps/&quot;&gt;Progressive Web App (PWA)&lt;/a&gt;, meaning it can be installed on compatible systems. Only the twelve most recent articles, including the “About” and “Ninja Caves” pages, are cached for offline access.&lt;/p&gt;

&lt;p&gt;The following Jekyll plugins (Ruby Gems) are leveraged to enable and maintain specific features.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/jekyll/jekyll-paginate&quot;&gt;jekyll-paginate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/pattex/jekyll-tagging&quot;&gt;jekyll-tagging&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/lavas-project/jekyll-pwa&quot;&gt;jekyll-pwa-plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
This architecture (JAMStack + PWA) delivers exceptional performance and reliability, whilst also having a very low compute/bandwidth impact (with cached content).&lt;/p&gt;

&lt;h3 id=&quot;analytics&quot;&gt;Analytics&lt;/h3&gt;

&lt;p&gt;As previously stated, LifeinTECH does not target a specific audience and is not associated with or sponsored by any third parties.&lt;/p&gt;

&lt;p&gt;There was a brief period in 2009 when I added referral links, which provided an income for a gadget fund. However, I found that this biased my writing and removed the enjoyment of the process. Therefore, these were quickly removed.&lt;/p&gt;

&lt;p&gt;As a result, traffic is fairly modest. In January (01-JAN-2022 to 31-JAN-2022), LifeinTECH was viewed by 3,400 unique users, covering 5,220 page views.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/lifeintech01.jpg&quot; alt=&quot;LifeinTECH&quot; title=&quot;LifeinTECH&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Over the years, I have seen peaks (as many as 1000 unique users per day), but I would state the January 2022 traffic flow has become fairly typical.&lt;/p&gt;

&lt;p&gt;LifeinTECH also hosts the executable files for my game “&lt;a href=&quot;/ninjacaves&quot;&gt;Ninja Caves&lt;/a&gt;”, as well as the associated Privacy Policy, which is linked to the relevant App Stores (&lt;a href=&quot;https://apps.apple.com/us/app/ninja-caves/id1574836125&quot;&gt;Apple App Store&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;p&gt;As a result, it is not uncommon for LifeinTECH to pass 50GB of used bandwidth per month. Thankfully, I have never crossed the 100GB limit of the Netlify “Starter” plan.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/lifeintech02.jpg&quot; alt=&quot;LifeinTECH&quot; title=&quot;LifeinTECH&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Over the years, I have used multiple hosts, including Heroku and GitHub Pages, usually gravitating to the best “free” service.&lt;/p&gt;

&lt;h3 id=&quot;top-links&quot;&gt;Top Links&lt;/h3&gt;

&lt;p&gt;Outlined below are links to my most common areas of interest.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/development/&quot;&gt;Development&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/programming/&quot;&gt;Programming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/architecture/&quot;&gt;Architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/hardware/&quot;&gt;Hardware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/software/&quot;&gt;Software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/blockchain/&quot;&gt;Blockchain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/artificial_intelligence/&quot;&gt;Artificial Intelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/3d_printing/&quot;&gt;3D Printing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/quantum_computing/&quot;&gt;Quantum Computing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/lifeinwork/&quot;&gt;LifeinWORK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have also published several series, which are a collection of related content, for example, my series on the creation of a “&lt;a href=&quot;/tag/modern_it_ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;” for a hypothetical enterprise business.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/modern_it_ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/masonplatformer/&quot;&gt;30 Days of Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/javascript/&quot;&gt;JavaScript&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/docker/&quot;&gt;Docker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/mac/&quot;&gt;Apple Mac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/ipad/&quot;&gt;Apple iPad&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, I have dedicated pages for applications I have designed, developed and released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/07/20/conf-buddy/&quot;&gt;Conf Buddy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/02/20/site-builder/&quot;&gt;Site Builder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/ninjacaves&quot;&gt;Ninja Caves&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am not a professional software developer; therefore, these projects are usually “hobby” based, developed in my spare time or as part of a hackathon.&lt;/p&gt;

&lt;h3 id=&quot;2022-and-beyond&quot;&gt;2022 and Beyond!&lt;/h3&gt;

&lt;p&gt;In 2022, traditional blogging has become less popular, replaced by micro-blogging, vlogging and an infinite number of social networks.&lt;/p&gt;

&lt;p&gt;Recognising the goal of LifeinTECH, I have no interest in shifting to a more “modern” approach. I believe there is power in traditional blogging, especially when used as a journal, helping to document, structure and share thoughts/projects.&lt;/p&gt;

&lt;p&gt;Therefore, expect to see a steady stream of posts to LifeinTECH, usually biased toward my latest area of interest. Although not the primary goal, I hope the content can help others, and I always welcome input.&lt;/p&gt;

&lt;p&gt;Finally, it is important to reinforce that LifeinTECH is my personal blog and in no way reflects the views or plans of my employer.&lt;/p&gt;
</description>
        <pubDate>Mon, 31 Jan 2022 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2022/01/31/LifeinTECH-2022/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/01/31/LifeinTECH-2022/</guid>
      </item>
    
      <item>
        <title>Kubernetes</title>
        <description>&lt;p&gt;Earlier today, &lt;a href=&quot;https://www.honeypot.io/&quot;&gt;Honeypot&lt;/a&gt; released an excellent two-part documentary on their &lt;a href=&quot;https://www.youtube.com/c/Honeypotio&quot;&gt;YouTube channel&lt;/a&gt;, sharing the history of &lt;a href=&quot;https://kubernetes.io/&quot;&gt;Kubernetes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Kubernetes (AKA K8s), is an open source system for automating deployment, scaling, and management of containerised workloads. Kubernetes works with &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;, &lt;a href=&quot;https://containerd.io/&quot;&gt;Containerd&lt;/a&gt;, and &lt;a href=&quot;https://cri-o.io/&quot;&gt;CRI-O&lt;/a&gt; and has become the “de facto standard” for cloud-native applications.&lt;/p&gt;

&lt;p&gt;I highly recommend watching the documentary, which includes incredible access to &lt;a href=&quot;https://www.google.com/&quot;&gt;Google&lt;/a&gt;, &lt;a href=&quot;https://www.redhat.com/&quot;&gt;Red Hat&lt;/a&gt;, and Docker employees, as well as many other influential members of the open source community.&lt;/p&gt;

&lt;p&gt;Part one of the documentary focuses on the history of Kubernetes, including the emergence of Docker, &lt;a href=&quot;https://research.google/pubs/pub43438/&quot;&gt;Google Borg (Cluster Management)&lt;/a&gt; and the infamous “container wars”.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/BE77h7dmoQU?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Part two of the documentary describes the growth of Kubernetes, including key adoption milestones and the inevitable market consolidation.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/318elIq37PE?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;a href=&quot;/2014/07/21/docker-containerisation-virtualisation/&quot;&gt;I started my journey with Docker in 2014&lt;/a&gt; and was a big advocate of &lt;a href=&quot;/2013/05/03/wordpress-on-heroku/&quot;&gt;Heroku&lt;/a&gt; following their acquisition by Salesforce.com in 2010, where I worked closely with their team promoting the &lt;a href=&quot;https://12factor.net/&quot;&gt;Twelve-Factor App&lt;/a&gt; methodology and refining the developer experience.&lt;/p&gt;

&lt;p&gt;I have also spent many years advocating the value of software engineering and open source within traditional businesses, looking to unlock new value through digital business models.&lt;/p&gt;

&lt;p&gt;Therefore, it was fascinating to see the team at Google face relatable challenges convincing senior business leaders to sponsor an open source initiative. It highlights that even “cloud native businesses” suffer from bureaucratic inertia, looking to protect legacy/obsolete forms of monetisation.&lt;/p&gt;

&lt;p&gt;I commend Honeypot for investing the time to create well researched, high-quality documentaries providing insight into key technologies and the communities that fuel them.&lt;/p&gt;

&lt;p&gt;I respect these are niche topics, with a specialist audience, but the impact of technologies such as Kubernetes should not be underestimated, therefore we must document and celebrate these stories.&lt;/p&gt;
</description>
        <pubDate>Fri, 21 Jan 2022 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2022/01/21/Kubernetes/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/01/21/Kubernetes/</guid>
      </item>
    
      <item>
        <title>Nikon D3500 Webcam</title>
        <description>&lt;p&gt;Over the past two years, I have spent more time in front of a camera than ever before in my life, video conferencing meetings or virtual events, such as &lt;a href=&quot;/2021/10/08/devops-enterprise-forum/&quot;&gt;conferences&lt;/a&gt;, &lt;a href=&quot;/2021/11/16/EVOLVE-21-Update/&quot;&gt;webinars&lt;/a&gt;, &lt;a href=&quot;/2022/01/01/CTO-Confessions-Podcast/&quot;&gt;podcasts&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;I use the excellent &lt;a href=&quot;https://www.logitech.com/products/webcams/brio-4k-hdr-webcam.960-001106.html&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt; webcam, but even at 4K 30FPS, it lacks the image quality of a Digital Single-Lens Reflex (DSLR) camera.&lt;/p&gt;

&lt;p&gt;Therefore, I decided to connect my &lt;a href=&quot;(https://www.nikon.co.uk/en_GB/product/digital-cameras/slr/consumer/d3500)&quot;&gt;Nikon D3500&lt;/a&gt; DSLR camera as an optional alternative.&lt;/p&gt;

&lt;p&gt;The Nikon D3500 is a popular beginner DLSR, which can be purchased for around £500. Due to some inconvenient software limitations (covered later), the Nikon D3500 is not the best DLSR camera for use as a webcam but is certainly usable in most (non-professional) scenarios.&lt;/p&gt;

&lt;p&gt;To get started, you will need to purchase the following hardware, which cost approximately £40.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.elgato.com/en/cam-link-4k&quot;&gt;Elgato CAM LINK 4k&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amazon.co.uk/gp/product/B014I8UEGY/&quot;&gt;Mini-HDMI to HDMI Cable&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amazon.co.uk/gp/product/B08PKP1VH8/&quot;&gt;Neewer EP-5A for EN-EL14 Power Connector&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I selected the Elgato CAM LINK 4k as it offers great quality/performance for the price. However, it is worth noting that it only officially supports Windows and macOS, not Linux.&lt;/p&gt;

&lt;p&gt;With the required hardware procured, the setup process is very simple.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Step One:&lt;/strong&gt; Connect the Elgato CAM LINK 4k and install the &lt;a href=&quot;https://www.elgato.com/en/downloads&quot;&gt;Camera Hub&lt;/a&gt; software.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Step Two:&lt;/strong&gt; Insert the Neewer EP-5A for EN-EL14 Power Connector.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Step Three:&lt;/strong&gt; Turn on the Nikon D3500 and configure the shutter view to 30mins.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Step Four:&lt;/strong&gt; Swith the Nikon D3500 to “Live View” by clicking the “Lv” button.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Step Five:&lt;/strong&gt; Connect the HDMI cable to the Elgato CAM LINK 4k and Nikon D3500.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Step Six:&lt;/strong&gt; Launch the Camera Hub software to confirm it is working.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The camera will now be available to select from video conferencing applications (e.g. &lt;a href=&quot;https://www.microsoft.com/microsoft-teams/&quot;&gt;Microsoft Teams&lt;/a&gt;, &lt;a href=&quot;https://zoom.us/&quot;&gt;Zoom&lt;/a&gt;, &lt;a href=&quot;https://www.webex.com/&quot;&gt;Cisco WebEx&lt;/a&gt;, &lt;a href=&quot;https://www.goto.com/&quot;&gt;GoToMeeting&lt;/a&gt;, etc.) and streaming software (e.g. &lt;a href=&quot;https://obsproject.com/&quot;&gt;OBS Studio&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nikond3500webcam01.jpg&quot; alt=&quot;Nikon D3500&quot; title=&quot;Nikon D3500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You will need a separate microphone, either via a headset or a dedicated device. I use a &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeti/&quot;&gt;Blue Yeti&lt;/a&gt; connected to the &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeticaster/&quot;&gt;Blue Yeticaster&lt;/a&gt;, which includes the Compass Boom Arm and Radius III Custom Shockmount.&lt;/p&gt;

&lt;p&gt;With everything configured, you should see a dramatic improvement in video quality over the majority of consumer-grade webcams.&lt;/p&gt;

&lt;p&gt;One frustrating software limitation is the Live View timeout, which has a maximum preset of 30mins.&lt;/p&gt;

&lt;p&gt;As a result, the camera requires manual user intervention (a button click) once every 30mins to maintain the Live View. The good news is that any button click is acceptable and it does display a warning. Even if you miss the timeout, it does not stop the video feed, it simply goes dark (therefore is quick and easy to recover).&lt;/p&gt;

&lt;p&gt;To get the most out of the Nikon D3500, I recommend the following settings.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Set the Live View timeout to 30mins by clicking “Setup Menu” &amp;gt; “Auto Off Timers” &amp;gt; “Custom” &amp;gt; “Live View” = “30m”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Click the “Exposure Compensation” button, located on the front of the camera to reset the 30mins Live View timeout.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Remove the on-screen overlay by repeatedly clicking the “info” button.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Enable continuous autofocus by selecting mode “P”, switch to “Live View” by clicking the “Lv” button, click the “i” menu button and select “AF-F” (full-time-servo AF).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I don’t use the Nikon D3500 as a webcam every day, as it is less convenient than the Logitech Brio Ultra HD Pro. However, in scenarios where the extra quality is desired, having this setup available is great!&lt;/p&gt;
</description>
        <pubDate>Sun, 16 Jan 2022 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2022/01/16/Nikon-D3500-Webcam/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/01/16/Nikon-D3500-Webcam/</guid>
      </item>
    
      <item>
        <title>Corporate Separation</title>
        <description>&lt;p&gt;Corporate separations don’t happen overnight; they take an incredible number of resources, time, strategic planning, and rapid delivery.&lt;/p&gt;

&lt;p&gt;In 2019, &lt;a href=&quot;/2021/06/10/journey-to-the-cloud/&quot;&gt;my company embarked on the journey to complete a corporate separation in just two years&lt;/a&gt;, which was described by many as an impossible mission. However, with an extraordinary team, nothing is impossible!&lt;/p&gt;

&lt;p&gt;Our partner &lt;a href=&quot;https://www.wwt.com/&quot;&gt;World Wide Technology (WWT)&lt;/a&gt; recently published a &lt;a href=&quot;https://www.wwt.com/case-study/building-a-modern-elastic-it-infrastructure-from-scratch-for-elanco-animal-health-to-streamline-and-optimize-manda&quot;&gt;case study&lt;/a&gt;, highlighting this amazing accomplishment!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.wwt.com/case-study/building-a-modern-elastic-it-infrastructure-from-scratch-for-elanco-animal-health-to-streamline-and-optimize-manda&quot;&gt;&lt;img src=&quot;/images/posts/wwtcasestudy01.jpg&quot; alt=&quot;WWT Case Study&quot; title=&quot;WWT Case Study&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks to WWT for the partnership!&lt;/p&gt;
</description>
        <pubDate>Fri, 14 Jan 2022 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2022/01/14/Corporate-Separation/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/01/14/Corporate-Separation/</guid>
      </item>
    
      <item>
        <title>My Setup (Q1 2022)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;h3 id=&quot;home-setup&quot;&gt;Home Setup&lt;/h3&gt;

&lt;p&gt;At home, I switch between three devices (one desktop PC and two notebooks).&lt;/p&gt;

&lt;p&gt;My daily driver is a custom-built desktop PC. It is primarily used for productivity, collaboration, software development, photo editing, virtual labs, gaming and game development (&lt;a href=&quot;/tag/platform_game/&quot;&gt;GameMaker Studio 2&lt;/a&gt;, &lt;a href=&quot;https://godotengine.org/&quot;&gt;Godot&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X570 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 3950X 3.5GHz Base / 4.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance LPX DDR4 PC4-28800C18 3600MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 980 Pro M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e 3.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 3090 FE 24GB GDDR6X&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;AMD Ryzen 3950X&lt;/a&gt;, &lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;Samsung 980 Pro&lt;/a&gt; and &lt;a href=&quot;/2021/02/08/GeForce-RTX-3090/&quot;&gt;Nvidia GeForce RTX 3090&lt;/a&gt; are premium components, delivering high-performance across a range of workloads (e.g. multi-threading, &lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;ray-tracing gaming&lt;/a&gt;, machine learning, video editing, etc.)&lt;/p&gt;

&lt;p&gt;When remote or travelling, my daily driver is a 16-inch Apple MacBook Pro (OCT-2021). Similar to my custom-build PC, it is primarily used for productivity, collaboration, software development, photo editing, video editing, virtual labs and game development.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;16-inch MacBook Pro (OCT-2021)&lt;/li&gt;
  &lt;li&gt;Apple M1 Max (10-core - 8 Performance / 2 Efficiency)&lt;/li&gt;
  &lt;li&gt;32-core GPU (10.4 Teraflops)&lt;/li&gt;
  &lt;li&gt;16-core Neural Engine&lt;/li&gt;
  &lt;li&gt;64GB Unified Memory (400GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;1TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;3x Thunderbolt 4, HDMI, 3.5mm Headphone, SDXC Card Reader, MagSafe 3&lt;/li&gt;
  &lt;li&gt;16.2-inch Liquid Retina XDR Display (3456x2234 @ 120Hz, 1600nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;/2022/05/05/Framework-Laptop/&quot;&gt;Framework Laptop&lt;/a&gt; running (&lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora&lt;/a&gt;) for Linux specific workloads (e.g. Docker). I am a believer in the “right to repair”, therefore eager to support companies promoting this cause.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Framework Laptop DIY Edition&lt;/li&gt;
  &lt;li&gt;Intel i7-1280P 4.80GHz (14C/20T)&lt;/li&gt;
  &lt;li&gt;64GB Crucial DDR4 PC4-25600C22 3200MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Western Digital Black SN850 NVMe (7GB/s Read)&lt;/li&gt;
  &lt;li&gt;Intel Iris Xe Graphics&lt;/li&gt;
  &lt;li&gt;13.5-inch IPS LCD Display (2256x1504 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;2x USB4 (USB-C), 1x USB 3.2 G2 (USB-A), 1x HDMI 2.0b&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At home, the desktop PC and notebooks connect to a &lt;a href=&quot;/2020/08/24/super-ultrawide/&quot;&gt;49-inch Super Ultra-Wide monitor, specifically the Samsung C49RG90&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The full specification of the monitor can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Model:&lt;/strong&gt; Samsung C49RG90&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Size:&lt;/strong&gt; 49-inch&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Type:&lt;/strong&gt; VA&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Curvature:&lt;/strong&gt; 1800R&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aspect Ratio:&lt;/strong&gt; 32:9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 5120x1440&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 120Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Variable Refresh Rate:&lt;/strong&gt; AMD FreeSync 2 (48-120Hz Range)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; 4ms (GTG)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Colour Accuracy:&lt;/strong&gt; 125% sRGB, 92% Adobe RGB, 95% DCI-P3&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;High Dynamic Range:&lt;/strong&gt; HDR1000&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 600cd/m2 (Typical), 1000cd/m2 (Peak)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is kept fairly minimal, the Apple MacBook Pro connects to the monitor directly (DisplayPort v1.4), with peripherals connecting via a &lt;a href=&quot;https://www.ugreen.com/products/5-in-1-usb-c-hub-with-4k-hdmi&quot;&gt;UGREEN 5-in-1 USB-C Hub&lt;/a&gt;, which simplifies the cable management.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup26.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, for peripherals, I primarily use the &lt;a href=&quot;https://www.logitech.com/products/keyboards/mx-mechanical.html&quot;&gt;Logitech MX Mechanical&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/products/mice/mx-master-3s.910-006559.html&quot;&gt;Logitech MX Master 3S&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/products/webcams/brio-4k-hdr-webcam.960-001106.html&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt;, and &lt;a href=&quot;https://www.logitech.com/products/lighting/litra-glow.946-000002.html&quot;&gt;Logitech Litra Glow&lt;/a&gt;. The keyboard and mouse were selected as they include “easy-switch”, which makes it simple to toggle between multiple Bluetooth devices.&lt;/p&gt;

&lt;p&gt;The photo also highlights my DSLR camera and microphone setup. The DSLR camera is a &lt;a href=&quot;https://www.nikon.co.uk/en_GB/product/digital-cameras/slr/consumer/d3500&quot;&gt;Nikon D3500&lt;/a&gt;, connected via an &lt;a href=&quot;https://www.elgato.com/en/cam-link-4k&quot;&gt;Elgato CAM LINK 4k&lt;/a&gt;, which delivers low-latency 2160P at 30fps.&lt;/p&gt;

&lt;p&gt;The microphone is a &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeti/&quot;&gt;Blue Yeti&lt;/a&gt; connected to the &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeticaster/&quot;&gt;Blue Yeticaster&lt;/a&gt;, which includes the Compass Boom Arm and Radius III Custom Shockmount. The microphone is primarily used for video conferencing, screencasting, webinars and podcasts.&lt;/p&gt;

&lt;p&gt;The photo below provides a closer look at the Samsung C49RG90 monitor.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup27.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Additional peripherals include speakers (&lt;a href=&quot;https://audioengineusa.com/shop/wirelessspeakers/a1-wireless-speaker-system/&quot;&gt;AudioEngine A1&lt;/a&gt;), headphones (&lt;a href=&quot;https://www.razer.com/gb-en/gaming-headsets/Razer-BlackShark-V2/RZ04-03230100-R3M1&quot;&gt;Razer BlackShark V2&lt;/a&gt; and &lt;a href=&quot;https://www.whathifi.com/bo/beoplay-h8/review&quot;&gt;Bang &amp;amp; Olufsen BeoPlay H8&lt;/a&gt;), controller (&lt;a href=&quot;https://www.xbox.com/accessories/controllers/elite-wireless-controller-series-2&quot;&gt;Microsoft Xbox Elite Series 2&lt;/a&gt;), flight controller (&lt;a href=&quot;https://www.flightsim.com/vbfs/content.php?16051-Review-Saitek-X-55-Rhino-HOTAS-System&quot;&gt;Saitek X-55&lt;/a&gt;), steering wheel (&lt;a href=&quot;http://gaming.logitech.com/en-gb/product/g29-driving-force&quot;&gt;Logitech G29&lt;/a&gt;) and virtual reality headset (&lt;a href=&quot;https://www.oculus.com/quest/&quot;&gt;Oculus Quest&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;As highlighted in the photo below, my desktop PC is hidden under the desk, with the case door exposed providing easy access to the components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup21.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Accompanying the desktop PC and monitor is an &lt;a href=&quot;/2021/11/18/Prusa-Research/&quot;&gt;Original Prusa MINI+&lt;/a&gt;, which is an open-source 3D printer.&lt;/p&gt;

&lt;p&gt;The desk and matching pedestals are from &lt;a href=&quot;https://www.tcofficefurniture.co.uk/&quot;&gt;Three Counties Office Furniture&lt;/a&gt;. They are designed for corporate use, therefore are hard-wearing and include integrated cable management.&lt;/p&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;https://www.hermanmiller.com/en_gb/products/seating/office-chairs/mirra-2-chairs/&quot;&gt;Herman Miller Mirra 2&lt;/a&gt; chair, which balances comfort and personalised ergonomics.&lt;/p&gt;

&lt;h3 id=&quot;home-server&quot;&gt;Home Server&lt;/h3&gt;

&lt;p&gt;Alongside my desktop PC and notebooks, I have a small home server, which is connected to my &lt;a href=&quot;/2018/11/10/samsung-q7fn/&quot;&gt;Samsung Q7FN QLED TV&lt;/a&gt;. The server manages local and cloud backups, media streaming, and collaboration (video conferencing).&lt;/p&gt;

&lt;p&gt;I selected an Apple Mac mini (NOV-2018) for the server, thanks to its excellent power efficiency (150W max), high-performance I/O (4x Thunderbolt 3, 2x USB-A 3.0) and small form factor. The Mac mini also offers versatile video conferencing capabilities covering Apple FaceTime, Zoom, Microsoft Teams, Google Meet, Cisco WebEx, WhatsApp Video, etc.&lt;/p&gt;

&lt;p&gt;The full specification of the Mac mini can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple Mac mini (NOV-2018)&lt;/li&gt;
  &lt;li&gt;Intel Core i5-8500B 3.0GHz Base / 4.1GHz Boost (6C/6T)&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance Series 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;256GB PCI-e SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;2x 500GB Samsung Portable T5 SSD (USB 3.1 Gen2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 1256GB of local SSD storage is split across multiple drives for resilience, with automated backups being completed by &lt;a href=&quot;https://bombich.com/&quot;&gt;Carbon Copy Cloner&lt;/a&gt; and Cloud Storage via &lt;a href=&quot;https://www.google.com/drive/&quot;&gt;Google Drive&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To support my minimal (hidden-wire) &lt;a href=&quot;/2016/05/19/entertainment-setup/&quot;&gt;entertainment setup&lt;/a&gt;, the Mac mini is located in a cupboard under the stairs, connected directly to the Samsung One Connect box via HDMI.&lt;/p&gt;

&lt;p&gt;The cupboard is a little cluttered, with all the AV equipment (Sony STR-DN1050 AV Receiver, Sony PlayStation 5, Apple Mac mini, Apple TV 4K, Logitech Harmony Hub), but is rarely accessed and offers plenty of room for ventilation.&lt;/p&gt;

&lt;p&gt;The only peripheral connected directly to the Mac mini is a &lt;a href=&quot;https://www.logitech.com/products/webcams/brio-4k-hdr-webcam.960-001106.html&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt; webcam, which delivers phenomenal video quality (4K/30fps - HDR), a wide viewing angle (90-degree dFoV) and a surprisingly good stereo, dual omnidirectional integrated microphone.&lt;/p&gt;

&lt;h3 id=&quot;work-setup&quot;&gt;Work Setup&lt;/h3&gt;

&lt;p&gt;At work, I use the Apple MacBook Pro and/or Framework Laptop connected to two &lt;a href=&quot;http://www1.euro.dell.com/content/products/productdetails.aspx/dell-u2718q-monitor&quot;&gt;27-inch Dell U2718Q IPS HDR 4K&lt;/a&gt; monitors via a &lt;a href=&quot;https://www.amazon.co.uk/StarTech-comThunderbolt-Dock-Windows-DisplayPort-Docking/dp/B07BJJX47G/&quot;&gt;StarTech Dual-DisplayPort to ThunderBolt 3 Adapter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The peripherals include a &lt;a href=&quot;https://www.logitech.com/en-gb/products/keyboards/craft.html&quot;&gt;Logitech Craft&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/products/mice/mx-anywhere-3.910-005989.html&quot;&gt;Logitech MX Anywhere 3&lt;/a&gt; and Logitech Brio Ultra HD Pro.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/officesetup04.jpg&quot; alt=&quot;Office Setup&quot; title=&quot;Office Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk is very basic, with a simple dual-monitor stand. Similar to at home, I use a Herman Miller Mirra 2 chair at work.&lt;/p&gt;
</description>
        <pubDate>Fri, 07 Jan 2022 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2022/01/07/My-Setup-Q1-2022/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/01/07/My-Setup-Q1-2022/</guid>
      </item>
    
      <item>
        <title>CTO Confessions Podcast</title>
        <description>&lt;p&gt;Last year, &lt;a href=&quot;/2021/09/28/cto-confessions/&quot;&gt;I joined IT Labs as a guest speaker on their CTO Confessions podcast&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;CTO Confessions is a UK podcast series hosted by IT Labs, a US-based software company focused on Cloud, DevOps, AI, etc.&lt;/p&gt;

&lt;p&gt;The podcast series launched in April 2020 and has had some great guest speakers from companies such as &lt;a href=&quot;https://about.google/&quot;&gt;Google&lt;/a&gt;, &lt;a href=&quot;https://www.tui.co.uk/&quot;&gt;Tui&lt;/a&gt;, &lt;a href=&quot;https://www.accenture.com/gb-en&quot;&gt;Accenture&lt;/a&gt;, &lt;a href=&quot;https://www.easyjet.com/en&quot;&gt;easyJet&lt;/a&gt;, &lt;a href=&quot;https://www.cloudbees.com/&quot;&gt;CloudBees&lt;/a&gt;, &lt;a href=&quot;https://www.revolut.com/&quot;&gt;Revolut&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;The 45mins podcast (linked below) covered a wide range of topics, including career, leadership, teamwork, and technology trends.&lt;/p&gt;

&lt;p&gt;We also discussed my company journey, specifically our recent transformation that included a major divestiture and acquisition, whilst managing the complexity of the global pandemic.&lt;/p&gt;

&lt;iframe width=&quot;100%&quot; height=&quot;166&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; allow=&quot;autoplay&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/1181286268&amp;amp;color=%23ff5500&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;To access all episodes of the CTO Confessions podcast, I recommend subscribing via one of their channels.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.it-labs.com/podcasts/&quot;&gt;CTO Confessions - IT Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://open.spotify.com/show/3LKhgOJSkRbbCn9agFCajC?si=TxZ6qmB5TGGZ7_Y3i4GE-g&amp;amp;dl_branch=1&amp;amp;nd=1&quot;&gt;CTO Confessions - Spotify&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/mk/podcast/cto-confessions-brought-to-you-by-it-labs/id1507959613&quot;&gt;CTO Confessions - iTunes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://soundcloud.com/cto-confessions&quot;&gt;CTO Confessions - SoundCloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://youtube.com/playlist?list=PLK96dwihwhdli7mgNa3Fw7oKlYM3KOqom&quot;&gt;CTO Confessions - YouTube&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to the IT Labs teams for the partnership!&lt;/p&gt;
</description>
        <pubDate>Sat, 01 Jan 2022 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2022/01/01/CTO-Confessions-Podcast/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2022/01/01/CTO-Confessions-Podcast/</guid>
      </item>
    
      <item>
        <title>LifeinWORK</title>
        <description>&lt;p&gt;Although I post frequently about technology topics that relate to my work, I rarely post on my &lt;a href=&quot;/&quot;&gt;personal blog&lt;/a&gt; about specific work accomplishments.&lt;/p&gt;

&lt;p&gt;With that said, if you would like to learn more about my work, we recently launched a &lt;a href=&quot;https://www.elanco.com/en-us/information-technology&quot;&gt;dedicated page&lt;/a&gt; on our corporate website focused on Information Technology.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.elanco.com/en-us/information-technology&quot;&gt;&lt;img src=&quot;/images/posts/lifeinwork01.jpg&quot; alt=&quot;LifeinWORK&quot; title=&quot;LifeinWORK&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The hope is to populate this page with information, blog posts, videos, and much more.&lt;/p&gt;

&lt;p&gt;Stay tuned!&lt;/p&gt;
</description>
        <pubDate>Mon, 20 Dec 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/12/20/LifeinWORK/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/12/20/LifeinWORK/</guid>
      </item>
    
      <item>
        <title>Dell UEFI Secure Wipe</title>
        <description>&lt;p&gt;Earlier this month I needed to return a &lt;a href=&quot;https://www.dell.com/&quot;&gt;Dell&lt;/a&gt; laptop, which I had been testing via their corporate “try before you buy” scheme.&lt;/p&gt;

&lt;p&gt;Historically, I would use a tool such &lt;a href=&quot;/2009/05/03/dban-secure-wipe/&quot;&gt;DBAN&lt;/a&gt;, &lt;a href=&quot;https://gparted.org/&quot;&gt;GParted&lt;/a&gt; or a Linux Live Environment to complete a secure wipe, protecting any sensitive corporate data.&lt;/p&gt;

&lt;p&gt;Unfortunately, these traditional tools were designed to erase mechanical Hard Disk Drives (HDD), otherwise known as “spinning rust”. In the era of Solid State Drives (SSD), modern storage controllers continuously optimise data to improve performance, making these traditional tools less effective.&lt;/p&gt;

&lt;p&gt;Thankfully, &lt;a href=&quot;https://www.dell.com/support/kbdoc/en-uk/000146892/dell-data-wipe&quot;&gt;I was pleasantly surprised to learn that Dell laptops manufactured after 2016 include a secure wipe tool accessed via UEFI BIOS&lt;/a&gt;, which supports both HDD and SSD. The website “&lt;a href=&quot;https://dellwindowsreinstallationguide.com/uefi-bios-dell-data-wipe/&quot;&gt;Dell Windows Installation Guide&lt;/a&gt;” includes an exellent step-by-step guide.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/delluefidatawipe.jpg&quot; alt=&quot;Dell UEFI Secure Wipe&quot; title=&quot;Dell UEFI Secure Wipe&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If the laptop includes an HDD (unlikely in 2021), the secure wipe process defaults to a traditional method, where each bit is zeroed individually. This process is time-consuming (multiple hours) and write intensive, but is effective.&lt;/p&gt;

&lt;p&gt;If the laptop includes an SSD, the secure wipe process applies a voltage spike to the drive, which simultaneously zeros all data. This modern method is very fast (almost instant), but highly effective and avoids the intensive writes that can degrade/damage a drive.&lt;/p&gt;

&lt;p&gt;Therefore, if you need to secure erase a modern Dell laptop, I would highly recommend using the UEFI BIOS tool (available in SMBIOS Version 2.9 or later). In the context of an SSD, it is fast, write efficient and highly effective.&lt;/p&gt;
</description>
        <pubDate>Sun, 12 Dec 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/12/12/Dell-UEFI-Secure-Wipe/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/12/12/Dell-UEFI-Secure-Wipe/</guid>
      </item>
    
      <item>
        <title>Printing with Prusa</title>
        <description>&lt;p&gt;Over the past month, I have been experimenting with my first 3D printer, specifically an &lt;a href=&quot;https://www.prusa3d.com/product/original-prusa-mini-3/&quot;&gt;Original Prusa MINI+&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/11/18/Prusa-Research/&quot;&gt;Prusa Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/11/24/Prusa-MINI-Plus/&quot;&gt;Original Prusa MINI+&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Having recently completed the &lt;a href=&quot;/2021/11/24/Prusa-MINI-Plus/&quot;&gt;assembly&lt;/a&gt;, the next step was to calibrate the printer and attempt the first print.&lt;/p&gt;

&lt;p&gt;I commend Prusa on their excellent documentation and knowledge base, which includes some useful videos. For example, the video below provides an overview of the calibration process, delivered by Josef Prusa.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/6Nip9EnSz7Q?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;In addition to the video, I have produced a simple diagram (below) that highlights key 3D printer terminology. The digram is purposely high-level and generic (not specific to the Original Prusa Mini+).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/printingwithprusa01.jpg&quot; alt=&quot;Printing with Prusa&quot; title=&quot;Printing with Prusa&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The goal of the calibration process is to ensure the nozzle is set to the appropriate height, allowing for good first layer adhesion. The nozzle can be adjusted in real-time using the “Live Adjust Z” function, however, it is important to ensure it is not lowered to the point that it blocks the plastic from exiting the extruder.&lt;/p&gt;

&lt;p&gt;The image below highlights the desired outcome, detailed in the “&lt;a href=&quot;https://help.prusa3d.com/en/article/first-layer-calibration-i3_112364&quot;&gt;first layer calibration&lt;/a&gt;” knowledge article.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/printingwithprusa02.jpg&quot; alt=&quot;Printing with Prusa&quot; title=&quot;Printing with Prusa&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I used &lt;a href=&quot;https://www.prusa3d.com/product/prusament-pla-prusa-galaxy-black-1kg/&quot;&gt;Prusament PLA Prusa (Galaxy Black)&lt;/a&gt; and the smooth PEI sheet, which I cleaned using an isopropyl alcohol (90%) wipe, but I understand that warm water and a few drops of washing-up liquid works equally well.&lt;/p&gt;

&lt;p&gt;It took me several attempts to calibrate the nozzle height, eventually achieving an outcome that closely matched the example. It should be noted that any adjustment of the nozzle height during the calibration process can impact the quality of the print. Therefore, I found it useful to repeat the process until I achieved a clean run from start to finish.&lt;/p&gt;

&lt;p&gt;Once complete, I plugged in the included USB drive and selected my first print (a whistle).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/printingwithprusa03.jpg&quot; alt=&quot;Printing with Prusa&quot; title=&quot;Printing with Prusa&quot; /&gt;&lt;/p&gt;

&lt;p&gt;PLA (or polylactic acid) is a great plastic material for beginners, as it is vegetable-based (commonly cornstarch) and is fully biodegradable. It also operates at a relatively low temperature, with the Original Prusa Mini+ defaulting to 215 degrees at the nozzle and 60 degrees on the heatbed. These temperatures improve safety and reduce the impact of particle contaminants, specifically volatile organic compounds (VOCs) and ultrafine particles (UFPs).&lt;/p&gt;

&lt;p&gt;The print took 33mins to complete, successfully producing a fully functioning whistle.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/printingwithprusa04.jpg&quot; alt=&quot;Printing with Prusa&quot; title=&quot;Printing with Prusa&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This early success triggered me to explore the “&lt;a href=&quot;https://www.prusaprinters.org/prints&quot;&gt;Prusa Prints&lt;/a&gt;” library, which includes thousands of print files. My son (six years old) and I agreed that Pokemon would be a good starting point, recognising there are hundreds of small, relatively simple models.&lt;/p&gt;

&lt;p&gt;After a few hours, we had printed a small army of Pokemon, ready to be painted (I understand acrylic paint is the best beginner option for PLA).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/printingwithprusa05.jpg&quot; alt=&quot;Printing with Prusa&quot; title=&quot;Printing with Prusa&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I did have a couple of failures, where the print become dislodged from the smooth PEI sheet. Thankfully, this was easily resolved through some additional tuning of the nozzle height. Although the setting is different for every printer, I settled on a nozzle height of -1.500.&lt;/p&gt;

&lt;p&gt;Having become comfortable with single file prints, my next challenge was to produce a print that included multiple parts.&lt;/p&gt;

&lt;p&gt;Coincidentally, my sister in law was looking for a &lt;a href=&quot;https://harrypotter.fandom.com/wiki/Golden_Snitch&quot;&gt;Golden Snitch from Harry Potter&lt;/a&gt; that could be used as a cake topper for my nieces upcoming birthday.&lt;/p&gt;

&lt;p&gt;As with any Harry Potter merchandise, online prices are ridiculous (£20+). Therefore, following a brief search, I found a great example on the “&lt;a href=&quot;https://www.instructables.com/3D-Printed-Golden-Snitch/&quot;&gt;Instructables Workshop&lt;/a&gt;” website.&lt;/p&gt;

&lt;p&gt;I did need to fractionally modify the “Snitch” print file using &lt;a href=&quot;https://www.prusa3d.com/page/prusaslicer_424/&quot;&gt;PrusaSlicer&lt;/a&gt;, helping to ensure good first layer adhesion.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/printingwithprusa06.jpg&quot; alt=&quot;Printing with Prusa&quot; title=&quot;Printing with Prusa&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The three required prints took approximately 40mins, producing a reasonably impressive result, specifically the intricate detail on the wings.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/printingwithprusa07.jpg&quot; alt=&quot;Printing with Prusa&quot; title=&quot;Printing with Prusa&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, throughout the printing process, I did monitor the air quality, which did not show any significant increase, even with the monitor placed directly next to the printer.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/printingwithprusa08.jpg&quot; alt=&quot;Printing with Prusa&quot; title=&quot;Printing with Prusa&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With that said, I may look to purchase/build an enclosure and would always recommend printing in a well-ventilated room.&lt;/p&gt;

&lt;p&gt;That’s it! My first prints are complete! Over the next few weeks, I hope to increase the complexity of the prints, as well as improve my skills with PrusaSlicer to modify and create print files.&lt;/p&gt;
</description>
        <pubDate>Sun, 05 Dec 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/12/05/Printing-with-Prusa/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/12/05/Printing-with-Prusa/</guid>
      </item>
    
      <item>
        <title>Microsoft Linux?</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://gs.statcounter.com/os-market-share/desktop/worldwide&quot;&gt;Microsoft Windows is still the dominant desktop operating system, with over 70% market share&lt;/a&gt;. However, the relevance of Windows has shifted dramatically over the past decade, predominantly driven by the growth of web and mobile.&lt;/p&gt;

&lt;p&gt;In 2001, Microsoft was best known for Windows, serving as a critical part of their business model and brand. Fast forward to 2021, Windows has been rightly relegated to a bullet point under the “More Personal Computing” business segment.&lt;/p&gt;

&lt;p&gt;Outlined below are the three business segments used by Microsoft to communicate with their investors.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Productivity and Business Processes&lt;/strong&gt; (&lt;a href=&quot;https://www.office.com/&quot;&gt;Office 365&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/microsoft-teams/&quot;&gt;Teams&lt;/a&gt;, &lt;a href=&quot;https://dynamics.microsoft.com/&quot;&gt;Dynamics&lt;/a&gt;, &lt;a href=&quot;https://powerplatform.microsoft.com/&quot;&gt;Power Platform&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/&quot;&gt;LinkedIn&lt;/a&gt;, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Intelligent Cloud&lt;/strong&gt; (&lt;a href=&quot;https://azure.microsoft.com/&quot;&gt;Azure&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/windows-server&quot;&gt;Server Products&lt;/a&gt;, &lt;a href=&quot;https://www.github.com/&quot;&gt;GitHub&lt;/a&gt;, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;More Personal Computing&lt;/strong&gt; (&lt;a href=&quot;https://www.microsoft.com/windows&quot;&gt;Windows&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/surface&quot;&gt;Devices&lt;/a&gt;, &lt;a href=&quot;https://www.xbox.com/&quot;&gt;Gaming&lt;/a&gt;, &lt;a href=&quot;https://www.bing.com/&quot;&gt;Search&lt;/a&gt;, etc.)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These business segments provide insight into how Microsoft prioritises its value and investments, with a clear focus on services, specifically productivity and cloud targeting enterprise businesses.&lt;/p&gt;

&lt;p&gt;Even with this prioritisation, Windows remains an important product, installed on more than 1.5 billion devices worldwide.&lt;/p&gt;

&lt;p&gt;As highlighted in the 2017 blog post “&lt;a href=&quot;https://devblogs.microsoft.com/bharry/the-largest-git-repo-on-the-planet/&quot;&gt;The Largest Git Repo on the Planet&lt;/a&gt;”, the maintenance of Windows continues to be a significant overhead for Microsoft.&lt;/p&gt;

&lt;p&gt;For example, the Windows source code includes an estimated 3.5 Million files, stored in a 300GB &lt;a href=&quot;https://git-scm.com/&quot;&gt;Git repository&lt;/a&gt;. Approximately 4000 engineers work on Windows, producing 1760 daily builds across 440 branches.&lt;/p&gt;

&lt;p&gt;This ridiculous complexity and scale likely contribute to some of the challenges experienced by Microsoft when attempting to deliver reliable feature updates for Windows 10, forcing them to drop “Windows as a Service”, moving to a more manageable yearly update schedule.&lt;/p&gt;

&lt;p&gt;Commercially, consumer Windows updates are offered for “free”, which combined with the slowing PC market, erodes the return on investment.&lt;/p&gt;

&lt;p&gt;Corporate licensing has a similar challenge, knowing that Windows is bundled as part of &lt;a href=&quot;https://www.microsoft.com/microsoft-365&quot;&gt;Microsoft 365&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In short, is there any value in developing and maintaining a proprietary desktop operating system in 2021?&lt;/p&gt;

&lt;p&gt;What if Microsoft were to explore an open-source alternative?&lt;/p&gt;

&lt;h3 id=&quot;microsoft-and-linux&quot;&gt;Microsoft and Linux&lt;/h3&gt;

&lt;p&gt;Since Satya Nadella replaced Steve Ballmer as CEO in 2014, Microsoft has demonstrated a greater willingness to support Linux and open-source software.&lt;/p&gt;

&lt;p&gt;For example, &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Visual Studio Code&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/edge&quot;&gt;Edge&lt;/a&gt;, Teams, and &lt;a href=&quot;https://www.microsoft.com/sql-server/&quot;&gt;SQL Server&lt;/a&gt; are all available and supported on Linux.&lt;/p&gt;

&lt;p&gt;With Edge being based on the open-source &lt;a href=&quot;https://www.chromium.org/&quot;&gt;Chromium Project&lt;/a&gt;, Microsoft web apps are also cross-platform compatible, specifically &lt;a href=&quot;https://www.microsoft.com/microsoft-365/free-office-online-for-the-web&quot;&gt;Office for Web&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/microsoft-365/sharepoint/&quot;&gt;SharePoint&lt;/a&gt; and the Power Platform. Gone are the days where Microsoft web apps require a proprietory browser, extensions or &lt;a href=&quot;https://en.wikipedia.org/wiki/ActiveX&quot;&gt;ActiveX&lt;/a&gt; controls.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://opensource.microsoft.com/projects&quot;&gt;Microsoft has also actively embraced open-source&lt;/a&gt;, with “home-grown” examples being &lt;a href=&quot;https://dotnet.microsoft.com/&quot;&gt;.Net Core&lt;/a&gt;, &lt;a href=&quot;https://www.typescriptlang.org/&quot;&gt;TypeScript&lt;/a&gt;, &lt;a href=&quot;https://developer.microsoft.com/fluentui/&quot;&gt;Fluent UI&lt;/a&gt;, alongside notable contributions to many community projects.&lt;/p&gt;

&lt;p&gt;Finally, Microsoft maintains their own &lt;a href=&quot;https://github.com/microsoft/WSL2-Linux-Kernel&quot;&gt;Linux Kernel&lt;/a&gt;, which is used to power &lt;a href=&quot;/2020/05/12/wsl-2/&quot;&gt;Windows Subsystem for Linux (WSL2)&lt;/a&gt;. Enabling a Linux kernel within Windows was a significant step towards convergence, making Windows a POSIX compatible development environment and opening the door to native Linux containers (e.g. &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;), etc.&lt;/p&gt;

&lt;p&gt;Outside of Microsoft, the community is also contributing to projects that aim to enable Windows software to run on Linux. The most notable are &lt;a href=&quot;https://www.winehq.org/&quot;&gt;Wine&lt;/a&gt; and &lt;a href=&quot;/2021/08/07/proton-the-trojan-horse/&quot;&gt;Proton&lt;/a&gt;, which deliver a compatibility layer that allows complex Windows software to run natively on Linux without relying on virtualisation and/or emulation. In recent months, &lt;a href=&quot;https://www.valvesoftware.com/&quot;&gt;Valve&lt;/a&gt; has put its weight behind Proton, setting the ambitious goal of achieving compatibility for 99% of games available via &lt;a href=&quot;https://store.steampowered.com/&quot;&gt;Steam&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;microsoft-linux&quot;&gt;Microsoft Linux?&lt;/h3&gt;

&lt;p&gt;With these examples in mind, I question if the time is right for Microsoft to position Linux as their primary desktop operating system, potentially superseding Windows.&lt;/p&gt;

&lt;p&gt;This could be achieved through the delivery of a Microsoft Linux Distribution with a new Desktop Environment that mimics the Windows 11 UI (&lt;a href=&quot;/2021/06/03/windows-11/&quot;&gt;excluding the legacy UI components&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;To the end-user, this new Desktop Environment would look and feel like Windows 11, but behind the scenes, Microsoft would shift from owning/maintaining the full-stack in favour of open-source collaboration.&lt;/p&gt;

&lt;p&gt;Over time, I believe this would allow Microsoft to dramatically reduce the overhead associated with maintaining a desktop operating system, as well as drive positive public relations by embracing and investing in the open-source community.&lt;/p&gt;

&lt;p&gt;I am not suggesting this approach would be easily achieved, requiring significant upfront investment from Microsoft to deliver a Linux Distribution and Desktop Environment, whilst also contributing to popular community projects to ensure software compatibility, etc.&lt;/p&gt;

&lt;p&gt;Outlined below are five areas I believe would require focus to successfully transition to Linux.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Linux Distribution - &lt;strong&gt;Deliver/Contribute&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Package Management - &lt;strong&gt;Contribute&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Desktop Envrionment - &lt;strong&gt;Deliver&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Native Software and Drivers - &lt;strong&gt;Deliver&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Software Compatibility Layer - &lt;strong&gt;Contribute&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ignoring the shareholder and community ramifications, which I suspect would be polarising, the sections below include some thoughts regarding each area.&lt;/p&gt;

&lt;h3 id=&quot;linux-distribution&quot;&gt;Linux Distribution&lt;/h3&gt;

&lt;p&gt;Although Microsoft maintains their own Linux Distribution used for Windows Subsystem for Linux (WSL2), I would recommend they base future development on an established foundation, specifically &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt; or &lt;a href=&quot;https://archlinux.org/&quot;&gt;Arch Linux&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Knowing the primary audience for Windows is enterprise business, I would recommend Debian, which places a heavy emphasis on stability through their long-term support release model.&lt;/p&gt;

&lt;p&gt;Microsoft could explore &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora&lt;/a&gt; as a base, which would be a fun “throw-back” to the IBM PC days, knowing that &lt;a href=&quot;https://www.redhat.com/&quot;&gt;Red Hat&lt;/a&gt; is owned by &lt;a href=&quot;https://www.ibm.com/&quot;&gt;IBM&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;However, I do not believe the “&lt;a href=&quot;https://docs.fedoraproject.org/en-US/project/&quot;&gt;Four Foundations&lt;/a&gt;” of Fedora align with the established license-based business model used by Microsoft, which is also still heavily dependant on proprietary software.&lt;/p&gt;

&lt;p&gt;With Debian as the base, Microsoft could also exploit this opportunity to make the operating system immutable, as outlined in the article “&lt;a href=&quot;/2021/11/19/Immutable-OS/&quot;&gt;Immutable OS&lt;/a&gt;”,&lt;/p&gt;

&lt;p&gt;In short, an immutable operating system makes the root directory (first or top-most directory in a hierarchy) read-only, ensuring it cannot be modified and therefore proactively protecting the core.&lt;/p&gt;

&lt;p&gt;This approach would be a significant step forward for security, stability and performance, delivering a foundation that would be immune to “system rot” and accidental/malicious interventions, which have plagued Windows since its inception.&lt;/p&gt;

&lt;h3 id=&quot;package-management&quot;&gt;Package Management&lt;/h3&gt;

&lt;p&gt;Assuming an immutable operating system, Microsoft would need a package management capability that supports dependency isolation (containerisation).&lt;/p&gt;

&lt;p&gt;Therefore, I would recommend Microsoft contribute to a project like &lt;a href=&quot;https://flatpak.org/&quot;&gt;Flatpak&lt;/a&gt;, which would also benefit the wider Linux community.&lt;/p&gt;

&lt;p&gt;Although Flatpak has its own set of challenges, I believe Microsoft, with its software expertise, experience and resources could accelerate the maturity of the project, delivering against the promise of a universal software packaging capability with a focus on security and privacy.&lt;/p&gt;

&lt;h3 id=&quot;desktop-envrionment&quot;&gt;Desktop Envrionment&lt;/h3&gt;

&lt;p&gt;Although Microsoft could build on an established Desktop Envrtionemnt (e.g. &lt;a href=&quot;https://wiki.gnome.org/Projects/GnomeShell&quot;&gt;GNOME Shell&lt;/a&gt;, &lt;a href=&quot;https://kde.org/plasma-desktop/&quot;&gt;KDE Plasma&lt;/a&gt;, etc.). This is the area I would expect Microsoft to differentiate their Linux experience.&lt;/p&gt;

&lt;p&gt;In my opinion, they could take the Windows 11 UI (excluding the legacy UI components) and build a new Desktop Environment from the ground up that is familiar to Windows users, whilst delivering improved performance and consistency.&lt;/p&gt;

&lt;p&gt;It would also be an opportunity to explore a modern programming language such as &lt;a href=&quot;https://www.rust-lang.org/&quot;&gt;Rust&lt;/a&gt;, which emphasises performance, reliability and productivity, helping to future-proof the Desktop Environment.&lt;/p&gt;

&lt;p&gt;It is likely Microsoft would want to protect this Desktop Environment, positioning it as a differentiator from other Linux distributions (although it would be great to see them fully embrace open-source).&lt;/p&gt;

&lt;p&gt;This approach is not dissimilar to the &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.microsoft.launcher&quot;&gt;Microsoft Launcher&lt;/a&gt;, which is available for &lt;a href=&quot;https://www.android.com/&quot;&gt;Android&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;native-software-and-drivers&quot;&gt;Native Software and Drivers&lt;/h3&gt;

&lt;p&gt;As previously stated, Microsoft has come a long way with Linux support, specifically with Visual Studio Code, Edge, Teams, etc.&lt;/p&gt;

&lt;p&gt;However, there is still one major gap… &lt;a href=&quot;https://www.office.com/&quot;&gt;Office 365&lt;/a&gt;, which includes &lt;a href=&quot;https://www.microsoft.com/microsoft-365/word/&quot;&gt;Word&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/microsoft-365/powerpoint/&quot;&gt;PowerPoint&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/microsoft-365/excel/&quot;&gt;Excel&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/microsoft-365/onenote/&quot;&gt;OneNote&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/microsoft-365/outlook/&quot;&gt;Outlook&lt;/a&gt;, and &lt;a href=&quot;https://www.microsoft.com/microsoft-365/onedrive/&quot;&gt;OneDrive&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In my opinion, natively porting the Office 365 suite to Linux would have the single largest impact on driving adoption. It would also be a mistake to proceed without support for these applications, knowing that productivity is a key strategic driver for the business.&lt;/p&gt;

&lt;p&gt;Outside of first-party software, third-party software has also made great progress over the past few years, as highlighted in the article “&lt;a href=&quot;/2020/11/20/software-list-2020/&quot;&gt;Software List 2020&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;A few notable exceptions include &lt;a href=&quot;https://www.adobe.com/&quot;&gt;Adobe&lt;/a&gt; and &lt;a href=&quot;https://www.serif.com/&quot;&gt;Serif&lt;/a&gt; software, which would require investment and time to port, although could potentially be incentivised and even subsidised by Microsoft to accelerate the outcome.&lt;/p&gt;

&lt;p&gt;Regarding drivers, Linux has a surprisingly robust foundation, especially with &lt;a href=&quot;https://www.intel.com/&quot;&gt;Intel&lt;/a&gt; and &lt;a href=&quot;https://www.amd.com/&quot;&gt;AMD&lt;/a&gt; hardware and it is arguably more compatible than Windows when it comes to “out of the box” support for peripherals such as printers, scanners, cameras, etc.&lt;/p&gt;

&lt;p&gt;However, similar to third-party software, there are notable exceptions. For example, although NVIDIA does provide proprietory drivers for Linux, they are not comparable to the Windows drivers.&lt;/p&gt;

&lt;p&gt;With that said, if Microsoft were to position Linux as their primary desktop operating system, I suspect this story would change very quickly.&lt;/p&gt;

&lt;h3 id=&quot;compatibility-layer&quot;&gt;Compatibility Layer&lt;/h3&gt;

&lt;p&gt;It is fair to state that with any transition of this nature, some software would be left behind. We have seen this with Apple on several occasions, as they transitioned from PowerPC to x86 and x86 to ARM.&lt;/p&gt;

&lt;p&gt;This is where robust a compatibility layer can make a big difference.&lt;/p&gt;

&lt;p&gt;In the context of Linux, I would recommend Microsoft contribute and invest in Wine and Proton, helping these projects deliver a greater level of compatibility through native API mapping.&lt;/p&gt;

&lt;p&gt;As outlined in the article “&lt;a href=&quot;/2021/08/07/proton-the-trojan-horse/&quot;&gt;Proton - The Trojan Horse&lt;/a&gt;”, Proton focuses on graphics APIs, achieved via Direct3D-to-Vulkan translation layers, specifically &lt;a href=&quot;https://github.com/doitsujin/dxvk&quot;&gt;DXVK&lt;/a&gt; for Direct3D 9, 10, 11 and &lt;a href=&quot;https://github.com/HansKristian-Work/vkd3d-proton&quot;&gt;VKD3D&lt;/a&gt; for Direct3D 12.&lt;/p&gt;

&lt;p&gt;The goal of Proton is to deliver compatibility and (where possible) native performance.&lt;/p&gt;

&lt;p&gt;With the recent backing of Valve, Proton becomes a viable (maybe prefered) approach for the development of games on Linux. With official backing and support from Microsoft, I am confident the experience could be improved further, delivering acceptable compatibility and performance for mainstream users.&lt;/p&gt;

&lt;p&gt;Outside of Wine and Proton, Microsoft also has &lt;a href=&quot;https://www.microsoft.com/windows-365&quot;&gt;Windows 365&lt;/a&gt; and &lt;a href=&quot;https://www.xbox.com/xbox-game-pass/cloud-gaming&quot;&gt;Xbox Cloud Gaming&lt;/a&gt;, which enable software (including a full Windows 10/11 desktop) to be streamed over the Internet via a browser.&lt;/p&gt;

&lt;p&gt;Although virtualisation and streaming services are not viable for all scenarios, they are becoming increasingly competent and would offer native compatibility, knowing the server-side software could run native code compiled for Windows.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In summary, I recognise that this article does not thoroughly detail the challenges associated with Microsoft attempting to transition to Linux as their primary desktop operating system. It ignores many major barriers and oversimplifies key constraints.&lt;/p&gt;

&lt;p&gt;However, I do believe it is an interesting prospect and with the maturity of Linux in 2021, more viable than ever before.&lt;/p&gt;

&lt;p&gt;It could even make good business sense for Microsoft, allowing them to focus on their strategic priorities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I think Microsoft will transition to Linux as their primary desktop operating system?&lt;/strong&gt; Probably not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I think Microsoft should transition to Linux as their primary desktop operating system?&lt;/strong&gt; Maybe! As long as they do not hurt the FOSS community.&lt;/p&gt;

&lt;p&gt;Assuming Microsoft had the appetite to explore this transition, I would highlight the following value proposition.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Microsoft could reduce the overhead associated with the development and maintenance of Windows, allowing them to focus on their strategic priorities, across Productivity, Cloud, Information Security, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Microsoft could deliver a more secure, reliable, and performant desktop operating system that is easier to deploy, support and use. It would also promote transparency and privacy, potentially helping Microsoft avoid future litigation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Microsoft could use the transition to drive positive public relations by fully embracing and investing in the open-source community, encouraging contributions from diverse talent around the world.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Regarding the return on investment, which is likely what most shareholders care about.&lt;/p&gt;

&lt;p&gt;If we take the 4000 engineers working on Windows and assume an average wage of $50,000 per year, that equates to a staggering $200,000,000 per year (without considering other dependencies).&lt;/p&gt;

&lt;p&gt;If Microsoft could re-purpose a percentage of this investment into their strategic priorities, they would have a compelling business case.&lt;/p&gt;

&lt;p&gt;Finally, regarding a potential go-to-market strategy, I would recommend Microsoft perform this transition as a true open-source project, where the development is transparent, promoting input from the community.&lt;/p&gt;

&lt;p&gt;With this in mind, it would make sense to deliver it under a separate brand (maybe EdgeOS) to help differentiate it from the NT-based versions of Windows. This approach would allow the Microsoft Linux Distribution to co-exist with Windows until it is ready for “prime time”.&lt;/p&gt;

&lt;p&gt;This concludes my thought experiment (for now). I do not claim to have the required expertise, experience or situational awareness to fully comprehend this topic. Therefore, please consider it a collection of thoughts, which can be fun to explore.&lt;/p&gt;
</description>
        <pubDate>Thu, 02 Dec 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/12/02/Microsoft-Linux/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/12/02/Microsoft-Linux/</guid>
      </item>
    
      <item>
        <title>Kontent Horizons</title>
        <description>&lt;p&gt;Earlier today, &lt;a href=&quot;https://www.kentico.com/&quot;&gt;Kentico Software&lt;/a&gt; published the recordings from their recent &lt;a href=&quot;https://horizons.kontent.ai/&quot;&gt;Kontent Horizons 2021&lt;/a&gt; conference.&lt;/p&gt;

&lt;p&gt;Kentico is a powerful headless CMS, similar to &lt;a href=&quot;https://www.contentful.com/&quot;&gt;Contentful&lt;/a&gt; and &lt;a href=&quot;https://prismic.io/&quot;&gt;Prismic&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am a huge advocate of the headless CMS architecture pattern, as it delivers a clear separation of concerns (content/code) following an API-first paradigm, that promotes cloud native applications (&lt;a href=&quot;https://12factor.net/&quot;&gt;Twelve-Factor App&lt;/a&gt;) and unlocks multi-channel marketing.&lt;/p&gt;

&lt;p&gt;A common failing of this architecture pattern is the marketer experience, which can be disjointed (not fully embedded like a traditional CMS).&lt;/p&gt;

&lt;p&gt;Kentico aims to close this gap, delivering a cloud-based (SaaS) platform that benefits everyone (marketers and developers), allowing the team to create engaging online experiences that look and feel great via any channel.&lt;/p&gt;

&lt;p&gt;My company recently implemented Kentico, therefore took the opportunity to present our journey at Kontent Horizons 2021. The focus of the story is our migration of 100+ websites, facilitated by our in-house developed “Flexible Web Toolkit”.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/dBptHyYny6w?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/in/jonathanstone1/&quot;&gt;Jon Stone&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/danieljwillis/&quot;&gt;Daniel Willis&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/hjfitz/&quot;&gt;Harry Fitzgerald&lt;/a&gt;, did a great job!&lt;/p&gt;

&lt;p&gt;If you have questions or comments, please do not hesitate to contact the team.&lt;/p&gt;
</description>
        <pubDate>Thu, 25 Nov 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/11/25/Kontent-Horizons/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/11/25/Kontent-Horizons/</guid>
      </item>
    
      <item>
        <title>Original Prusa MINI+</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2021/11/18/Prusa-Research/&quot;&gt;As highlighted in my previous article&lt;/a&gt;, over the past week I have been building the &lt;a href=&quot;https://www.prusa3d.com/product/original-prusa-mini-kit-9/&quot;&gt;Original Prusa Mini+ kit&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The “kit” version is shipped as individual parts, requiring manual assembly. The Prusa documentation estimates a 5 to 8 hour build time for one person, with 194 steps.&lt;/p&gt;

&lt;p&gt;Thankfully, the assembly instructions (linked below) are exceptional and the package includes all the required tools (e.g. Allen keys, TORX key, pliers, wrench, etc.)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://help.prusa3d.com/en/guide/1-introduction_203948&quot;&gt;Original Prusa Mini+ Kit Assembly Guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://help.prusa3d.com/wp-content/uploads/generated/original-prusa-mini-kit-assembly_1215_en_2021-11-24.pdf&quot;&gt;Original Prusa Mini+ Kit Assembly Download&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article highlights my build process, with a few photos and commentary.&lt;/p&gt;

&lt;p&gt;I started with the Y Carriage assembly (image below), which secures and manoeuvres the heatbed.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/originalprusaminiplus01.jpg&quot; alt=&quot;Original Prusa Mini+&quot; title=&quot;Original Prusa Mini+&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I had expected the Y-motor and Y-axis belt installation to present a challenge, but thankfully the MINI-Y-belt-holder includes the required grooves to secure the belt teeth (no fiddly screws required). Additionally, the tension of the belt can be easily manipulated via the MINI-Y-plate-front (a nice design touch).&lt;/p&gt;

&lt;p&gt;I did not enjoy the bearing lubrication process, which reminded me of applying thermal paste, where the quantity can impact performance.&lt;/p&gt;

&lt;p&gt;Once complete, I started on the Z-axis assembly (image below), which includes the buddy board enclosure and PCB itself. The buddy board enclosure is used to secure the Z-axis to the previously assembled Y Carriage. The 32-bit PCB is custom-built by Prusa, approximately the same size as a &lt;a href=&quot;https://www.raspberrypi.org/&quot;&gt;Raspberry Pi 4&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/originalprusaminiplus02.jpg&quot; alt=&quot;Original Prusa Mini+&quot; title=&quot;Original Prusa Mini+&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thanks to the larger components, the Z-axis assembly was relatively straightforward. However, I did need to apply a disconcerting amount of force to ensure the steel rods were fully seated. This is a testament to the 3D printer parts, which feel reassuringly dense.&lt;/p&gt;

&lt;p&gt;In my opinion, the next phase was the most complex, covering the X-axis, extruder and print head (image below).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/originalprusaminiplus03.jpg&quot; alt=&quot;Original Prusa Mini+&quot; title=&quot;Original Prusa Mini+&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With many small and moving parts, I found myself double-checking my work to ensure the instructions had been followed correctly. The printhead is “where the magic happens”, including the hotend, which can reach temperatures of 280C. The installation of the PTFE tube and SuperPINDA sensor requires accuracy, therefore I would recommend allocating additional time for this section.&lt;/p&gt;

&lt;p&gt;My build also included the optional filament sensor (£23), which detects the presence and movement of filament, which adds convenience and helps protect against spoiled builds.&lt;/p&gt;

&lt;p&gt;Finally, I installed the Heatbed and LCD (image below). The heatbed has a larger surface area and can reach temperatures of 100C, therefore care should be taken when connecting the cables and attaching the cable cover.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/originalprusaminiplus04.jpg&quot; alt=&quot;Original Prusa Mini+&quot; title=&quot;Original Prusa Mini+&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The LCD comes pre-assembled, therefore simply needs to be mounted (one screw) and connected to the PCD via a ribbon cable.&lt;/p&gt;

&lt;p&gt;With the assembly complete, I powered on the printer and completed the initial setup, which includes a self-test and automatic calibration. Unfortunately, the self-test failed due to an issue with the Z-axis (image below).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/originalprusaminiplus05.jpg&quot; alt=&quot;Original Prusa Mini+&quot; title=&quot;Original Prusa Mini+&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After some troubleshooting (Google and &lt;a href=&quot;https://www.reddit.com/r/prusa3d/&quot;&gt;Reddit&lt;/a&gt;), I identified the issue. I had over-tightened the trapezoidal nut (image below), which restricted the movement of the Z-axis motor.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/originalprusaminiplus06.jpg&quot; alt=&quot;Original Prusa Mini+&quot; title=&quot;Original Prusa Mini+&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the two screw tension reduced, the Z-axis motor kicked into action and the self-test passed successfully!&lt;/p&gt;

&lt;p&gt;That’s it! The build took me approximately six hours, split over several days. It is worth re-emphasising the quality of the assembly instructions, which are among the best I have ever used. Therefore, if you are in the market for a Prusa 3D printer, I would have no hesitation in recommending the “kit” version.&lt;/p&gt;

&lt;p&gt;Over the next week, I plan to test the printer, starting with some simple print jobs. Stay tuned for the results.&lt;/p&gt;
</description>
        <pubDate>Wed, 24 Nov 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/11/24/Prusa-MINI-Plus/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/11/24/Prusa-MINI-Plus/</guid>
      </item>
    
      <item>
        <title>Immutable OS</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2018/05/01/fedora-28/&quot;&gt;I am a long-time user of the Linux distribution Fedora&lt;/a&gt;. In recent months, &lt;a href=&quot;/2021/06/30/pop-os/&quot;&gt;I switched to Pop!_OS as my primary Linux distribiton&lt;/a&gt;, however, I still keep a close eye on the &lt;a href=&quot;https://fedoraproject.org/wiki/Fedora_Project_Wiki&quot;&gt;Fedora Project&lt;/a&gt;, specifically their work on immutable operating systems.&lt;/p&gt;

&lt;p&gt;The definition of the word immutable is “unchanging over time or unable to be changed.”&lt;/p&gt;

&lt;p&gt;In computing, “immutable” is most commonly associated with &lt;a href=&quot;/tag/blockchain/&quot;&gt;Blockchain&lt;/a&gt;, specifically the decentralised ledger that uses cryptographic hashes to protect the data from alteration.&lt;/p&gt;

&lt;p&gt;An immutable operating system aims to achieve a similar goal by making the root directory (first or top-most directory in a hierarchy) read-only, ensuring it cannot be modified.&lt;/p&gt;

&lt;p&gt;The purpose is to ensure the host operating system is protected from accidental or malicious modifications, which improves security, stability and performance by guaranteeing the integrity of the core system.&lt;/p&gt;

&lt;p&gt;Every application, tool and/or package installed on an immutable operating system executes code isolated from the root directory, providing clear segregation, as well as a highly effective rollback (restoration) capability.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://silverblue.fedoraproject.org/&quot;&gt;Fedora Silverblue&lt;/a&gt; and &lt;a href=&quot;https://kinoite.fedoraproject.org/&quot;&gt;Fedora Kinoite&lt;/a&gt; are great examples of an immutable operating system.&lt;/p&gt;

&lt;p&gt;The primary difference between Silverblue and Kinoite is the Desktop Environment, as Silverblue ships with &lt;a href=&quot;https://www.gnome.org/&quot;&gt;GNOME&lt;/a&gt; and Kinoite ships with &lt;a href=&quot;https://kde.org/plasma-desktop/&quot;&gt;KDE Plasma&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a GNOME user, I have the most experience with Fedora Silverblue. The image below highlights my ARM64 installation running on my MacBook Pro M1 Max.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fedorasilverblue01.jpg&quot; alt=&quot;Fedora Silverblue&quot; title=&quot;Fedora Silverblue&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Fedora Silverblue and Fedora Kinoite leverage three core technologies to initialise and maintain the immutable operating system, as well as support application/tool/package management.&lt;/p&gt;

&lt;h4 id=&quot;ostree&quot;&gt;OSTree&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://coreos.github.io/rpm-ostree/&quot;&gt;rpm-ostree&lt;/a&gt; is a hybrid image/package system. It combines &lt;a href=&quot;https://ostreedev.github.io/ostree/&quot;&gt;libostree&lt;/a&gt; (AKA OSTree) as a base image format, and accepts RPM on both the client and server-side, sharing code with the &lt;a href=&quot;/2017/05/01/dnf-cheat-sheet/&quot;&gt;dnf&lt;/a&gt; project.&lt;/p&gt;

&lt;p&gt;OSTree is a system for versioning updates of Linux. It includes a shared library and suite of command-line tools that combines a “&lt;a href=&quot;/2015/05/10/git-cheat-sheet/&quot;&gt;git-like&lt;/a&gt;” model for committing and downloading bootable filesystem trees, along with a layer for deploying them and managing the bootloader configuration.&lt;/p&gt;

&lt;p&gt;OSTree operates in userspace (code that runs outside of the operating system kernel) and supports any Linux file system.&lt;/p&gt;

&lt;p&gt;In short, OSTree is used to initialise and maintain the immutable operating system, facilitating system updates, rollbacks, etc.&lt;/p&gt;

&lt;h4 id=&quot;flatpak&quot;&gt;Flatpak&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://flatpak.org/&quot;&gt;Flatpak&lt;/a&gt; is a universal packaging system for Linux as well as a utility for software development and distribution.&lt;/p&gt;

&lt;p&gt;Flatpak aims to deliver an isolated sandbox environment that includes the runtime and bundled libraries to support the execution of the application/tool/package.&lt;/p&gt;

&lt;p&gt;This isolated sandbox environment cannot make any changes to the system without explicit permission from the host.&lt;/p&gt;

&lt;p&gt;Flatpak provides a mechanism to install/manage an application/tool/package (including GUI applications) on an immutable operating system, without impacting the integrity of the root directory.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://flathub.org/&quot;&gt;FlatHub&lt;/a&gt; is a useful resource that maintains a list of available Flatpack compatible applications/tools/packages.&lt;/p&gt;

&lt;h4 id=&quot;podman&quot;&gt;Podman&lt;/h4&gt;

&lt;p&gt;Podman is a daemonless container engine for developing, managing, and running OCI Containers on Linux.&lt;/p&gt;

&lt;p&gt;Critically, Podman containers can be executed in rootless mode, which reinforces the security model defined as part of an immutable operating system.&lt;/p&gt;

&lt;p&gt;As a result, podman is considered more secure than Docker as it does not require root access, making it a great choice for running headless/web applications, tools and packages.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, an immutable operating system like Fedora Silverblue and Fedora Kionite provide an exciting glimpse into a future where security, reliability and performance are proactively enforced instead of reactively maintained.&lt;/p&gt;

&lt;p&gt;This subtle shift in thinking could have a profound impact on how operating systems are built and supported, whilst also ensuring the “out of the box” user experience is protected, avoiding the inevitable “system rot”.&lt;/p&gt;

&lt;p&gt;A great example is the upcoming &lt;a href=&quot;/2021/08/07/proton-the-trojan-horse/&quot;&gt;Steam Deck&lt;/a&gt; from &lt;a href=&quot;https://www.valvesoftware.com/&quot;&gt;Valve&lt;/a&gt;, which will ship with a new version of &lt;a href=&quot;https://store.steampowered.com/steamos/&quot;&gt;SteamOS&lt;/a&gt; (based on &lt;a href=&quot;https://archlinux.org/&quot;&gt;Arch Linux&lt;/a&gt;) that will be an immutable operating system. This makes sense for an “appliance-like” device that is targeting consumers, where guaranteed core software consistency will help simplify support.&lt;/p&gt;

&lt;p&gt;In conclusion, with Linux already making progress towards an immutable future and mounting evidence that Apple is doing the same with macOS, I am intrigued to see how this story evolves.&lt;/p&gt;
</description>
        <pubDate>Fri, 19 Nov 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/11/19/Immutable-OS/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/11/19/Immutable-OS/</guid>
      </item>
    
      <item>
        <title>Prusa Research</title>
        <description>&lt;p&gt;As a passionate technologist, I aim to stay up to date with emerging technologies, covering &lt;a href=&quot;/tag/development/&quot;&gt;Development&lt;/a&gt;, &lt;a href=&quot;/tag/architecture/&quot;&gt;Architecture&lt;/a&gt;, &lt;a href=&quot;/tag/hardware/&quot;&gt;Hardware&lt;/a&gt; and &lt;a href=&quot;/tag/software/&quot;&gt;Software&lt;/a&gt;, as well as trending buzzwords such as &lt;a href=&quot;/tag/blockchain/&quot;&gt;Blockchain&lt;/a&gt;, &lt;a href=&quot;/tag/artificial_intelligence/&quot;&gt;Artificial Intelligence&lt;/a&gt;, &lt;a href=&quot;/tag/quantum_computing/&quot;&gt;Quantum Computing&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;One area that has eluded me is the rapidly evolving world of 3D printing. I have watched from the sidelines for many years and certainly see the potential in the technology, but have never had the time to get hands-on.&lt;/p&gt;

&lt;p&gt;That changes today, with the arrival of an &lt;a href=&quot;https://www.prusa3d.com/product/original-prusa-mini-kit-9/&quot;&gt;Original Prusa Mini+ kit&lt;/a&gt;, which is an open-source fused deposition modelling 3D printer.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/prusaresearch01.jpg&quot; alt=&quot;Prusa Research&quot; title=&quot;Prusa Research&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.prusa3d.com/&quot;&gt;Prusa Research&lt;/a&gt; was founded in 2012 by &lt;a href=&quot;https://www.forbes.com/profile/josef-prusa/&quot;&gt;Josef Prusa&lt;/a&gt;, a Czech hobbyist, maker and inventor who has become one of the most famous names in 3D printing.&lt;/p&gt;

&lt;p&gt;In 2021, there are hundreds of consumer 3D printers available to purchase. However, the Prusa origin story resonated with me, avoiding common start-up tropes such as technology incubators and crowdfunding, instead, relying upon the passion of one man and a workshop.&lt;/p&gt;

&lt;p&gt;The video below provides a great overview of the Prusa journey, documenting the road to 100,000 3D printers.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/xX3pDDi9PeU?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Josef Prusa embodies the mantra “&lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt;” and has established a company that positively promotes open-source.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/prusaresearch02.jpg&quot; alt=&quot;Prusa Research&quot; title=&quot;Prusa Research&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Original Prusa MINI+ felt like the perfect entry point into 3d printing, thanks to the fact that it shares many of the market-leading capabilities offered by the &lt;a href=&quot;https://www.prusa3d.com/product/original-prusa-i3-mk3s-3d-printer-3/&quot;&gt;Original Prusa i3 MK3S+&lt;/a&gt;, but at a lower price point (£359 vs. £899).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/prusaresearch03.jpg&quot; alt=&quot;Prusa Research&quot; title=&quot;Prusa Research&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Original Prusa MINI+ even includes some enhancements over its bigger brother, specifically the colour LCD, 32-bit mainboard, and enhanced I/O options (e.g. Ethernet, Wi-Fi, USB, etc.)&lt;/p&gt;

&lt;p&gt;The “kit” version is shipped as components, with a build time of between six to eight hours. Many of the parts are 3D printed, with open-source hardware, meaning the design is made publicly available, allowing anyone to research, modify or distribute the design.&lt;/p&gt;

&lt;p&gt;The Original Prusa MINI+ is also available pre-assembled, but I felt the process of building the 3D printer would be a fun project and also help me learn how the hardware works.&lt;/p&gt;

&lt;p&gt;The Original Prusa MINI+ includes the following features:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;An 18×18×18cm build volume, which is only slightly smaller than the Original Prusa i3 MK3S+ at 25×21×21cm.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Sensorless homing, automatic mesh bed calibration and replaceable nozzles.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;2.8-inch, 240×320 LCD screen with 65.000 colours.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Custom-developed 32-bit “Buddy” motherboard with Trinamic 2209 drivers, delivering &lt;a href=&quot;https://en.wikipedia.org/wiki/OctoPrint&quot;&gt;OctoPrint&lt;/a&gt; compatibility.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A magnetic heat bed and removable spring steel sheets, with two variants available (smooth and textured).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;SuperPINDA probe features a high-quality sensor for a fully-automatic mesh bed levelling process.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Robust I/O, including USB, Ethernet (RJ45) and an optional Wi-Fi module.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Three thermistors and comes with a high-quality &lt;a href=&quot;http://www.delta-emea.com/default.aspx&quot;&gt;Delta Electronics&lt;/a&gt; 150W power supply.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, the Original Prusa MINI+ is a fully-featured 3D printer from a well-established manufacturer with a strong reputation for reliability and safety. The price point (£359) is highly accessible, either for new users or anyone looking to establish a consumer print farm.&lt;/p&gt;

&lt;p&gt;I plan to build the printer over the next week, therefore I hope my next update will include a photo of my first successful print!&lt;/p&gt;
</description>
        <pubDate>Thu, 18 Nov 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/11/18/Prusa-Research/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/11/18/Prusa-Research/</guid>
      </item>
    
      <item>
        <title>EVOLVE 21 - Update</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2021/10/25/EVOLVE-21/&quot;&gt;Last month&lt;/a&gt;, I took part in the &lt;a href=&quot;https://www.alcortech.com/evolve21/&quot;&gt;EVOLVE 21&lt;/a&gt; webinar series, hosted by &lt;a href=&quot;https://www.alcortech.com/&quot;&gt;Alcor Solutions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/in/mike-henry-07248a1/&quot;&gt;Mike Henry (Executive Director - TechOps)&lt;/a&gt; and I discussed our business transformation journey that included a major divestiture and acquisition.&lt;/p&gt;

&lt;p&gt;The session is now available online.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/AowkKdRFVkU?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Thanks to the Alcor team for allowing us to share our experience, specifically Ziying “Magic” Tan and Pam Morris for facilitating.&lt;/p&gt;
</description>
        <pubDate>Tue, 16 Nov 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/11/16/EVOLVE-21-Update/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/11/16/EVOLVE-21-Update/</guid>
      </item>
    
      <item>
        <title>The Linux Challenge</title>
        <description>&lt;p&gt;The Linux community has been patiently waiting for the first &lt;a href=&quot;https://www.youtube.com/user/linustechtips&quot;&gt;Linus Tech Tips (LTT)&lt;/a&gt; Linux Challenge video to drop.&lt;/p&gt;

&lt;p&gt;The Linux Challenge is a five-part series where Linus and Luke have agreed to commit to Linux as their primary gaming system for one month, documenting their experience.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Part One:&lt;/strong&gt; Select a Linux distribution, install Linux and play a game.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Part Two:&lt;/strong&gt; Game streaming setup (e.g. capture, microphones, levels, etc.)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Part Three:&lt;/strong&gt; Install and run a game from as many game launchers as possible.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Part Four:&lt;/strong&gt; Complete non-gaming tasks, including productivity, collaboration, etc.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Part Five:&lt;/strong&gt;  Conclusion and final decision to remain on Linux&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If either Linus or Luke “fail” and are forced to go back to Windows, they must complete a forfeit. Knowing that Luke has previous experience with Linux, I suspect he has a higher chance of success.&lt;/p&gt;

&lt;p&gt;As highlighted by the &lt;a href=&quot;https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam?platform=combined&quot;&gt;Steam Hardware and Software Survey&lt;/a&gt;, Linux has approximately 1% market share, demonstrating a steady (but minor) increase over time.&lt;/p&gt;

&lt;p&gt;LTT is the largest tech channel on &lt;a href=&quot;https://www.youtube.com/&quot;&gt;YouTube&lt;/a&gt; by video views and the eleventh largest by subscribers (with more than 14 Million). Therefore, any video published by LTT has the potential to influence a massive audience.&lt;/p&gt;

&lt;p&gt;Part one of the Linux Challenge is now available (video embedded below).&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/0506yDSgU7M?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Without question, the most controversial part of the video was the choice of Linux distribution (&lt;a href=&quot;/2021/06/30/pop-os/&quot;&gt;Pop!_OS&lt;/a&gt;) and the error encountered by Linus at 09:57, which resulted in him removing essential packages required by the operating system.&lt;/p&gt;

&lt;p&gt;In June, &lt;a href=&quot;/2021/06/30/pop-os/&quot;&gt;I switched from Fedora to Pop!_OS&lt;/a&gt; as my primary Linux distribution and have written several articles describing my rationale and setup.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/06/30/pop-os/&quot;&gt;Pop!_OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/08/20/pop-os-setup/&quot;&gt;Pop!_OS Setup&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/09/05/linux-distributions/&quot;&gt;Linux Distributions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/10/20/Why-Pop-OS/&quot;&gt;Why Pop!_OS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the reasons I like Pop!_OS is the “out of the box” experience, delivering what I consider to be the closest equivalent to the Apple “it just works” mantra.&lt;/p&gt;

&lt;p&gt;Therefore, I watched in horror, as Linus essentially “killed” his system whilst simply trying to install the popular game launcher &lt;a href=&quot;https://store.steampowered.com/&quot;&gt;Steam&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To understand what happened, the image below provides a closer look at the warning message.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/thelinuxchallenge01.jpg&quot; alt=&quot;The Linux Challenge&quot; title=&quot;The Linux Challenge&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The warning clearly states that the following packages will be removed.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;pop-desktop&lt;/li&gt;
  &lt;li&gt;gnome-control-center&lt;/li&gt;
  &lt;li&gt;pop-gnome-initial-setup&lt;/li&gt;
  &lt;li&gt;chrome-gnome-shell&lt;/li&gt;
  &lt;li&gt;gdm3&lt;/li&gt;
  &lt;li&gt;xorg3&lt;/li&gt;
  &lt;li&gt;gstreamer1.0-vaapi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anyone with Linux experience will immediately identify these packages as critical, knowing they enable the Pop!_OS Desktop Environment (COSMIC, GNOME, Xorg), otherwise known as the Graphical User Interface (GUI).&lt;/p&gt;

&lt;p&gt;Therefore, I suspect this warning and the resulting outcome, will generate a lot of discussion amongst the Linux community. Was this a user error or is Linux to blame?&lt;/p&gt;

&lt;p&gt;In my opinion, it is a bit of both but ultimately highlights that even a competent technologist must have a basic understanding of Linux to be successful.&lt;/p&gt;

&lt;p&gt;The issue originated from a bug, which has subsequently been fixed. This bug would have been resolved if Linus would have had an internet connection enabled during the installation of Pop!_OS or completed a system update post-installation.&lt;/p&gt;

&lt;p&gt;In my opinion, a system update is best practice with any operating system (Linux, Windows, macOS) following a fresh installation, as you can almost always guarantee there will be updates and bug fixes.&lt;/p&gt;

&lt;p&gt;With that said, as a new Linux user, a simple application installation should never “break” the system.&lt;/p&gt;

&lt;p&gt;In fairness, when Linus tried to install Steam from the Pop!_Shop, it simply failed, successfully protecting the system.&lt;/p&gt;

&lt;p&gt;However, the error message was essentially useless for a new Linux user, not providing any valuable path to resolution. For example, it could have prompted the user to update their system and try again (which in this case, would have resolved the issue.)&lt;/p&gt;

&lt;p&gt;When Linus switched to the Terminal, the installation of Steam generated the same error as the Pop!_Shop, but also provided a (bad) path forward.&lt;/p&gt;

&lt;p&gt;Knowing the ramifications of this action, Linux forces the user to manually type the phrase “Yes, do as I say!”. This additional step is designed to warn the user that the following actions could result in unforeseen consequences.&lt;/p&gt;

&lt;p&gt;Unfortunately, like the majority of users, Linus did not stop to consider the warning message, instead deciding to proceed regardless (we have all done it).&lt;/p&gt;

&lt;p&gt;At which point, Linux executed the exact actions as requested by the user, including the removal of the Pop!_OS Desktop Environment.&lt;/p&gt;

&lt;p&gt;Therefore, I feel the “blame” is split between the user and Linux, knowing that both could have acted differently to prevent this outcome.&lt;/p&gt;

&lt;p&gt;Overall, the biggest disappointment is that this experience triggered Linus to switch his Linux distribution from Pop!_OS to &lt;a href=&quot;https://manjaro.org/&quot;&gt;Manjaro&lt;/a&gt;. Although I also like Manjaro (as highlighted in the article &lt;a href=&quot;/2021/09/05/linux-distributions/&quot;&gt;Linux Distributions&lt;/a&gt;), I do believe the “new user” experience is better on Pop!_OS.&lt;/p&gt;

&lt;p&gt;I also believe Linus would be better served by a &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian-based&lt;/a&gt; Linux distribution, instead of &lt;a href=&quot;https://archlinux.org/&quot;&gt;Arch Linux&lt;/a&gt;, which in my experience can have a steeper learning curve.&lt;/p&gt;

&lt;p&gt;As a fan of &lt;a href=&quot;/tag/linux/&quot;&gt;Linux&lt;/a&gt; and Pop!_OS, I am not disheartened by this outcome. Linux still has a long way to go before it is ready for general consumers and I hope that this series of honest videos will help shine a light on areas that need improvement.&lt;/p&gt;

&lt;p&gt;It will be interesting to see how the Linux community (and &lt;a href=&quot;https://system76.com/&quot;&gt;System76&lt;/a&gt;) respond (get ready for a lot of memes) and I look forward to watching the rest of the series.&lt;/p&gt;

&lt;h3 id=&quot;update-10-nov-2021&quot;&gt;Update (10-NOV-2021)&lt;/h3&gt;

&lt;p&gt;System76 have responded to the issue Linus experienced with Pop!_OS.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“For some reason, an i386 version of a package was never published on Launchpad. Steam being an i386 package when trying to install it, it had to downgrade that package to the Ubuntu version to resolve dependencies, which removed Pop!_OS packages.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As I had hoped, the issue has also triggered System76 to patch &lt;a href=&quot;https://github.com/pop-os/apt/pull/1&quot;&gt;APT&lt;/a&gt;, preventing users from accidentally breaking their system via the Terminal. As with all things Linux, this protection can be overwritten but requires a specific user intervention.&lt;/p&gt;
</description>
        <pubDate>Tue, 09 Nov 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/11/09/The-Linux-Challenge/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/11/09/The-Linux-Challenge/</guid>
      </item>
    
      <item>
        <title>Docker Performance on M1</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - On 14-MAR-2022, Docker released Docker Desktop for Mac v4.6.0, which included a new experimental file sharing implementation called virtiofs. Please refer to my follow-up article “&lt;a href=&quot;/2022/03/15/Docker-and-Apple-Silicon/&quot;&gt;Docker and Apple Silicon&lt;/a&gt;” for the latest results.&lt;/p&gt;

&lt;p&gt;With the &lt;a href=&quot;/2021/10/27/PowerBook-Reborn/&quot;&gt;arrivial of the 2021 MacBook Pro&lt;/a&gt;, I have been testing my common workloads.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2014/07/21/docker-containerisation-virtualisation/&quot;&gt;I have been using Docker since 2014&lt;/a&gt;, primarily to support web development. Last year, &lt;a href=&quot;/2020/12/19/docker-on-apple-m1/&quot;&gt;I tested Docker for Mac on the MacBook Air running Apple Silicon&lt;/a&gt;, which I documented across three articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/11/18/apple-m1/&quot;&gt;Apple M1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/12/19/docker-on-apple-m1/&quot;&gt;Docker on Apple M1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/12/29/docker-m1-arm64/&quot;&gt;Docker + M1 + ARM64&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The performance of Docker running on the MacBook Air was good, relative to Intel equivalent Mac. It was clear that the Apple M1 System on a Chip (SoC) had tremendous potential, but was held back by the software. For example, in my testing, Docker Desktop for Mac was consistently outperformed by its x86 Linux and Windows (WSL2) counterparts.&lt;/p&gt;

&lt;p&gt;In this article, I plan to take a second look at Docker Desktop for Mac. I hope that a year of additional development and the more powerful Apple M1 Max SoC will deliver tangible improvements.&lt;/p&gt;

&lt;h3 id=&quot;test-setup&quot;&gt;Test Setup&lt;/h3&gt;

&lt;p&gt;As part of my testing, I will be using the 16-inch MacBook Pro (OCT-2021), 16-inch MacBook Pro (NOV-2019), Dell XPS 17 (9710) and a custom-built desktop PC. A summary of the specification for each system can be found below.&lt;/p&gt;

&lt;h4 id=&quot;16-inch-macbook-pro-oct-2021&quot;&gt;16-inch MacBook Pro (OCT-2021)&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Apple M1 Max (10-core - 8 Performance / 2 Efficiency)&lt;/li&gt;
  &lt;li&gt;32-core GPU (10.4 Teraflops)&lt;/li&gt;
  &lt;li&gt;32GB Unified Memory (400GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;1TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;macOS 12.0.1&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;16-inch-macbook-pro-nov-2019&quot;&gt;16-inch MacBook Pro (NOV-2019)&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Intel Core i9-9980HK 2.4GHz Base / 5.0GHz Boost (8C/16T)&lt;/li&gt;
  &lt;li&gt;AMD Radeon Pro 5500M 8GB GDDR6&lt;/li&gt;
  &lt;li&gt;32GB 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;1TB PCI-e SSD&lt;/li&gt;
  &lt;li&gt;macOS 11.6&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;dell-xps-17-9710&quot;&gt;Dell XPS 17 (9710)&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Intel Core i9-11900HK 2.6GHz Base / 5.0GHz Boost (8C/16T)&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 3060 Ti 6GB GDDR6 (70W)&lt;/li&gt;
  &lt;li&gt;64GB DDR4 3200MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB M.2 PCI-e NVM-e SSD&lt;/li&gt;
  &lt;li&gt;Pop!_OS 21.04 (Linux 5.13)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;custom-built-desktop&quot;&gt;Custom-Built Desktop&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;AMD Ryzen 9 3950X 3.5GHz Base / 4.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 3090 FE 24GB GDDR6X&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance LPX DDR4 PC4-28800C18 3600MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 980 Pro M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;Windows 11 (WSL2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I plan to use &lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt; (this blog) as my test build, which follows the &lt;a href=&quot;/2017/12/20/jamstack/&quot;&gt;JAMstack web development architecture&lt;/a&gt;, using the &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll Static Site Generator&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The project includes a range of external dependencies and custom plugins. It is fairly large, including over 4000 individual files and 800MB of data. This is relevant as it applies file sharing I/O pressure.&lt;/p&gt;

&lt;p&gt;On the MacBook Pro, I plan to test two scenarios, specifically Docker Desktop for Mac and Docker running on a Linux virtual machine using &lt;a href=&quot;https://mac.getutm.app/&quot;&gt;UTM&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;docker-desktop-for-mac&quot;&gt;Docker Desktop for Mac&lt;/h3&gt;

&lt;p&gt;Docker Desktop for Mac includes multiple configuration options that can directly impact performance.&lt;/p&gt;

&lt;p&gt;Under “Docker Desktop &amp;gt; Preferences &amp;gt; Resources &amp;gt; Advanced”, I configured the following settings.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;CPUs:&lt;/strong&gt; By default, Docker Desktop is set to use half the number of CPUs available on the host machine. However, Docker Desktop does not detect the M1 Max correctly, therefore I manually configured 8 CPUs. At this time, there is a software bug that prevents configuring all 10 CPUs.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Memory:&lt;/strong&gt; By default, Docker Desktop is set to use 2GB runtime memory, allocated from the total available memory on the Mac. This is adequate for my test build but can be adjusted as required. It should be noted that this memory is allocated to Docker Desktop regardless of a running container.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Swap:&lt;/strong&gt; I retained the default swap of 1GB.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Under “Docker Desktop &amp;gt; Preferences &amp;gt; Resources &amp;gt; File Sharing”, I configured the following settings.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;File Sharing:&lt;/strong&gt; One of the biggest bottlenecks associated with Docker Desktop for Mac is file sharing I/O performance. Therefore, it is important to only share the directories required by the container. For example, the specific “development” folder.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, under “Docker Desktop &amp;gt; Preferences &amp;gt; Experimental Features”, I checked the setting “Use the New Virtualisation Framework”, which enables the new &lt;a href=&quot;https://developer.apple.com/documentation/hypervisor&quot;&gt;Apple Hypervisor&lt;/a&gt; framework that should deliver better performance.&lt;/p&gt;

&lt;h3 id=&quot;ubuntu-server-on-utm&quot;&gt;Ubuntu Server on UTM&lt;/h3&gt;

&lt;p&gt;I installed &lt;a href=&quot;https://ubuntu.com/download/server/arm&quot;&gt;Ubuntu Server (ARM64)&lt;/a&gt; on UTM, provisioned with 4 Cores, 8GB Memory and NVMe Storage.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm102.jpg&quot; alt=&quot;Docker Performance on M1&quot; title=&quot;Docker Performance on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Ubuntu Desktop Environment was installed, with the Docker Desktop and Docker Compose packages. The full setup can be found in the article “&lt;a href=&quot;/2021/10/29/Virtualisation-on-M1/&quot;&gt;Virtualisation on M1&lt;/a&gt;”.&lt;/p&gt;

&lt;h3 id=&quot;results&quot;&gt;Results&lt;/h3&gt;

&lt;p&gt;The table below outlines the results of my testing.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dockerperformanceonm101.jpg&quot; alt=&quot;Docker Performance on M1&quot; title=&quot;Docker Performance on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Performance across Linux (Dell XPS 17) and Windows (Custom-Built PC) provides a good baseline as they both build against a native Linux kernel.&lt;/p&gt;

&lt;p&gt;The results from the 16-inch MacBook Pro (OCT-2021) are inconsistent depending on the specific configuration. For example, when using Docker Desktop for Mac, it is critical that an ARM64 image is selected and the Apple Hypervisor is enabled to achieve acceptable performance.&lt;/p&gt;

&lt;p&gt;In this scenario, the Apple M1 Max performs as well as the 16-inch MacBook Pro (NOV-2019), with an Intel Core i9-9980HK processor. Interestingly, the 16-inch MacBook Pro (NOV-2019) performance degraded with the Apple Hypervisor enabled.&lt;/p&gt;

&lt;p&gt;The most exciting result was the Ubuntu Server (ARM64) running on UTM, which achieved a blistering 9 second build time. This result is the fastest I have seen on any system, demonstrating the raw power of the Apple M1 Max when software limitations are removed.&lt;/p&gt;

&lt;p&gt;For example, the testing indicates that file system I/O is the limiting factor when using Docker Desktop for Mac, especially with large, multi-file projects. This is not an issue in scenarios where the native Linux kernel filesystem can be accessed directly.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I remain conflicted regarding the performance of Docker for Mac, specifically with the 16-inch MacBook Pro (OCT-2021) running the Apple M1 Max SoC.&lt;/p&gt;

&lt;p&gt;If it is not possible to run a Linux host directly, I prefer the implementation of Docker for Windows, which takes advantage of WSL2. In my opinion, this is a great compromise, allowing the developer to use Windows software, with Linux performance.&lt;/p&gt;

&lt;p&gt;Regarding macOS, Docker Desktop feels constrained, forced to use middleware that is not always performant (e.g. File Sharing). As a result, I will likely retain a “right-sized” Ubuntu Server running as a virtual machine on UTM.&lt;/p&gt;

&lt;p&gt;This approach unlocks the raw performance of the Apple M1 Max SoC by removing the filesystem I/O bottleneck, delivering an unbelievable 24x performance increase over Docker Desktop for Mac.&lt;/p&gt;

&lt;p&gt;Finally, it is worth noting that these results are workload-specific, therefore the highlighted filesystem I/O bottleneck may not always be an issue.&lt;/p&gt;
</description>
        <pubDate>Wed, 03 Nov 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/11/03/Docker-Performance-on-M1/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/11/03/Docker-Performance-on-M1/</guid>
      </item>
    
      <item>
        <title>Foldable Future - Update</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2020/10/02/foldable-future/&quot;&gt;Over the past year, I have been using the Samsung Galaxy Z Fold2 5G&lt;/a&gt; as my primary smartphone.&lt;/p&gt;

&lt;p&gt;As a reminder, the Fold2 includes a 7.6-inch 120Hz AMOLED display that folds internally, supported by a complex mechanical hinge. The full specification of the device can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Samsung Galaxy Z Fold2 5G&lt;/li&gt;
  &lt;li&gt;Qualcomm SM8250 Snapdragon 865+ (Octa-Core)&lt;/li&gt;
  &lt;li&gt;6.2-inch HD+ AMOLED Display (2260x816 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;7.6-inch QXGA+ HDR10+ AMOLED Display (2208x1768 @ 120Hz)&lt;/li&gt;
  &lt;li&gt;12GB RAM&lt;/li&gt;
  &lt;li&gt;256GB Storage (UFS 3.1)&lt;/li&gt;
  &lt;li&gt;2x 10MP Selfie Cameras&lt;/li&gt;
  &lt;li&gt;3x 12MP Cameras (Ultra Wide, Wide-Angle, Telephoto)&lt;/li&gt;
  &lt;li&gt;4500mAh Dual Battery&lt;/li&gt;
  &lt;li&gt;5G, LTE, Wi-Fi 6, Bluetooth v5.0&lt;/li&gt;
  &lt;li&gt;Finger-Print Reader and Face Unlock&lt;/li&gt;
  &lt;li&gt;USB-C and Wireless Charging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although over a year old (and superseded by the Fold3), the specification of the Fold2 is still very impressive. However, this specification also commanded a premium price point, starting at £1799.&lt;/p&gt;

&lt;p&gt;This article will act as a short update regarding my experience using the Fold2 throughout 2020/21, reflecting on the durability of the hardware.&lt;/p&gt;

&lt;p&gt;Regarding my usage pattern, the Fold2 was my daily driver (no other smartphone), commonly stored in my trouser pocket. I did not use a protective case or skin and removed the internal display protector, as I did not like the “plastic” feel.&lt;/p&gt;

&lt;p&gt;Although much of the year was in lockdown, the Fold2 was exposed to the elements, specifically gym, running and multiple trips to the beach. I would also regularly join video conferencing calls whilst walking, often in adverse weather conditions (wind, rain, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/foldablefutureupdate01.jpg&quot; alt=&quot;Foldable Future - Update&quot; title=&quot;Foldable Future - Update&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In short, the Fold2 was treated with respect, but not coddled.&lt;/p&gt;

&lt;p&gt;Infamously, the first generation Fold, released in 2019, was an unprecedented disaster, due to a fundamental design flaw that resulted in an exceptionally high failure rate.&lt;/p&gt;

&lt;p&gt;I am pleased to report that I have had no such issue with the Fold2. I must have unfolded the Fold2 thousands of times over the past year and the hinge feels as good today as it did in October 2020.&lt;/p&gt;

&lt;p&gt;The hinge as always felt very robust, with enough pressure to hold the two sides of the display at any angle. I had feared the hinge would weaken over time, potentially becoming loose, but there are no obvious signs of degradation.&lt;/p&gt;

&lt;p&gt;This is an impressive accomplishment, especially considering the complexity of the hinge and knowing the challenges faced by the previous generation.&lt;/p&gt;

&lt;p&gt;The front display, which is protected by Corning Gorilla Glass Victus, shows signs of micro-scratches, but in line with my experience of other smartphones (e.g. iPhone, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/foldablefutureupdate02.jpg&quot; alt=&quot;Foldable Future - Update&quot; title=&quot;Foldable Future - Update&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The internal display is more interesting, as it does not have the same level of protection when in use. Thankfully, the display itself has demonstrated great resilience. My only criticism is a series of minor scratches along the fold. It is unclear if these scratches have formed because of the folding mechanism itself or (more likely) the fold continues to be an exposed area (like with the first generation product), which can easily collect particles, such as dust, dirt, sand, etc.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/foldablefutureupdate03.jpg&quot; alt=&quot;Foldable Future - Update&quot; title=&quot;Foldable Future - Update&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I can feel these scratches when running my finger over them, however, when viewing full-screen content, they essentially fade into the background.&lt;/p&gt;

&lt;p&gt;Both displays continue to work as designed, with no loss of touch sensitivity, etc.&lt;/p&gt;

&lt;p&gt;This brings me to “the big drop”. Unfortunately, last month I missed my pocket and dropped the Fold2 on a stone floor. As soon as it landed I knew I was in trouble.&lt;/p&gt;

&lt;p&gt;Surprisingly, the front and internal display survived! However, the rear glass was not so lucky.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/foldablefutureupdate04.jpg&quot; alt=&quot;Foldable Future - Update&quot; title=&quot;Foldable Future - Update&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This outcome was not a complete surprise, recognising the rear is protected by Corning Gorilla Glass 6 (not Victus). I would speculate that any glass-backed smartphone would have fallen to the same fate.&lt;/p&gt;

&lt;p&gt;Thankfully, the Fold2 itself continues to operate as designed, with no obvious impact on core functionality (touch sensitivity, cameras, etc.)&lt;/p&gt;

&lt;p&gt;With that said, I suspect the repair cost would be high, knowing that the repairability of modern smartphones is rarely a priority. Therefore, I might get a &lt;a href=&quot;https://dbrand.com/&quot;&gt;dbrand&lt;/a&gt; skin to help hide the damage.&lt;/p&gt;

&lt;p&gt;Overall, I remain impressed with the Fold2, which has served me admirably over the past year. At no point have I been concerned about the build quality, which has proven to be as robust as any other smartphone I have used.&lt;/p&gt;

&lt;p&gt;Considering the complexity of the hinge and folding display, this is a remarkable achievement and a great “real world” demonstration that folding displays are viable for everyday use.&lt;/p&gt;

&lt;p&gt;This article has focused on the hardware durability, but it is also worth noting that the software has received steady updates from Samsung.&lt;/p&gt;

&lt;p&gt;When I first started using the device I was concerned that most apps would not be optimised for the larger display. Although this is true for some, the majority work very well, arguably offering a better experience than traditional smartphones.&lt;/p&gt;

&lt;p&gt;This is especially true for content consumption and multi-tasking, where the Fold2 is in a league of its own.&lt;/p&gt;

&lt;p&gt;For example, I would regularly join Microsoft Teams meetings, where one side of the display was populated by the participant videos and/or presentation, with the other available for comments or notes. With picture-in-picture (image below), multi-tasking can be taken to the next level, with three distinct “content windows” displayed simultaneously from a single app.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/foldablefutureupdate05.jpg&quot; alt=&quot;Foldable Future - Update&quot; title=&quot;Foldable Future - Update&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This level of multi-tasking is simply not viable on traditional smartphones, acting as a real differentiator for business users and/or road warriors.&lt;/p&gt;

&lt;p&gt;In conclusion, &lt;a href=&quot;/2020/10/02/foldable-future/&quot;&gt;as highlighted by my previous review&lt;/a&gt;, I believe the Fold2 is the “real deal”, delivering on the promise of a foldable product that could replace a traditional smartphone and a small tablet.&lt;/p&gt;

&lt;p&gt;After “battle testing” the Fold2 for over a year, I remain convinced that foldable smartphones are the future, something I expect all the mainstream providers to produce, likely starting with the Google Android ecosystem (maybe a future Pixel product).&lt;/p&gt;
</description>
        <pubDate>Tue, 02 Nov 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/11/02/Foldable-Future-Update/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/11/02/Foldable-Future-Update/</guid>
      </item>
    
      <item>
        <title>Virtualisation on M1</title>
        <description>&lt;p&gt;With the &lt;a href=&quot;/2021/10/27/PowerBook-Reborn/&quot;&gt;arrivial of the 2021 MacBook Pro&lt;/a&gt;, I have been testing client-side virtualisation on Apple Silicon.&lt;/p&gt;

&lt;p&gt;I use virtualisation frequently for testing and to run specialist workloads. Historically, these virtual machines leveraged the x86-64 instruction set, which is native to Intel and AMD processors. However, with the shift to Apple Silicon, the AArch64 (ARM64) instruction set is required to achieve native/optimal performance.&lt;/p&gt;

&lt;p&gt;The AArch64 ecosystem is less mature than x86-64 for “desktop” computing, reducing the number of compatible guest operating systems.&lt;/p&gt;

&lt;p&gt;Thankfully, the main bases are covered, including &lt;a href=&quot;https://fedoraproject.org&quot;&gt;Fedora&lt;/a&gt;, &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt; (&lt;a href=&quot;https://www.debian.org&quot;&gt;Debian-based&lt;/a&gt;) and &lt;a href=&quot;https://archlinux.org&quot;&gt;Arch Linux&lt;/a&gt;, as well as &lt;a href=&quot;https://www.microsoft.com/windows&quot;&gt;Microsoft Windows 10/11&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://ubuntu.com/download/server/arm&quot;&gt;Ubuntu Server (AArch64)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://getfedora.org/workstation/download/&quot;&gt;Fedora Workstation (AArch64)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/utmapp/vm-downloads/releases/download/archlinux-arm64/archlinux-arm64-utm.zip&quot;&gt;Arch Linux (AArch64)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://api.onedrive.com/v1.0/shares/u!aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBcFkxOTZoZU5FTldhZ2VCMWFzdEZhRFdnTkU_ZT1aMWZleTE/root/content&quot;&gt;Microsoft Windows 10 Insider Preview for ARM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewARM64&quot;&gt;Microsoft Windows 11 Insider Preview for ARM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On a Linux or Windows host, I use &lt;a href=&quot;https://www.vmware.com/uk/products/workstation-player/workstation-player-evaluation.html&quot;&gt;VMware Workstation&lt;/a&gt; for client-side virtualisation, mainly because &lt;a href=&quot;/2012/03/28/installing-vsphere/&quot;&gt;I have years of experience working with VMware products (e.g. ESXi, etc.)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;However, VMware is a little behind with their Apple Silicon implementation, therefore I have selected &lt;a href=&quot;https://mac.getutm.app&quot;&gt;UTM&lt;/a&gt;, which is free and open-source software, but also offered via the &lt;a href=&quot;https://apps.apple.com/app/utm-virtual-machines/id1538878817&quot;&gt;Mac App Store&lt;/a&gt; (£8.99) if you would like to support the project.&lt;/p&gt;

&lt;p&gt;Similar to VMware Workstation (and &lt;a href=&quot;https://www.parallels.com/products/desktop/&quot;&gt;Parallels&lt;/a&gt;), UTM allows you to securely virtualise and emulate guest operating systems on your Mac.&lt;/p&gt;

&lt;p&gt;What makes UTM unique is that it employs the &lt;a href=&quot;https://developer.apple.com/documentation/hypervisor&quot;&gt;Apple Hypervisor&lt;/a&gt; virtualization framework to run AArch64 operating systems on Apple Silicon at near-native speeds, as well as lower performance emulation for x86/x64 operating systems.&lt;/p&gt;

&lt;p&gt;Behind the scenes, UTM leverages &lt;a href=&quot;https://www.qemu.org&quot;&gt;QEMU&lt;/a&gt;, which is a mature, free and open-source emulation software that is actively maintained by a passionate community. UTM takes the best parts of QEMU, providing a user-friendly GUI for simple configuration and maintenance.&lt;/p&gt;

&lt;p&gt;This architecture makes UTM very versatile, perfect for developers that what to emulate different physical architecture, such as ARM32, MIPS, PPC, and RISC-V.&lt;/p&gt;

&lt;p&gt;The only watch-out relates to GPU hardware acceleration, which is not currently supported across virtualisation or emulation. Therefore, do not expect to use UTM for running graphics-intensive software or playing modern games.&lt;/p&gt;

&lt;h3 id=&quot;linux-virtual-machine-installation&quot;&gt;Linux Virtual Machine Installation&lt;/h3&gt;

&lt;p&gt;The following screenshots highlight the installation process for Linux (&lt;a href=&quot;https://ubuntu.com/download/server/arm&quot;&gt;Ubuntu Server&lt;/a&gt;), including the setup of a Desktop Environment (GUI).&lt;/p&gt;

&lt;p&gt;Launch UTM and select to create a new Virtual Machine. Provide some basic information (metadata) about the virtual machine, including the name, style and icon.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm101.jpg&quot; alt=&quot;Virtualisation on M1&quot; title=&quot;Virtualisation on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Under the “System” tab, select the “ARM64 (AArch64)” architecture and allocated the desired amount of memory. For a local, single-user server I normally allocate 8GB (8192MB).&lt;/p&gt;

&lt;p&gt;Select “Show Advanced Settings” and specify the desired number of CPU cores. I found that leaving this setting “blank” resulted in a boot error.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm102.jpg&quot; alt=&quot;Virtualisation on M1&quot; title=&quot;Virtualisation on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Under the “Drives” tab, create two drives. The first will serve as the system drive (NVMe), while the second is used for the installation media (ISO). The allocated drive space is not provisioned upfront, therefore it is safe to specify a reasonable drive size (e.g. 60GB).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm103.jpg&quot; alt=&quot;Virtualisation on M1&quot; title=&quot;Virtualisation on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once configured, the virtual machine will be accessible from the UTM Library. At which point. select the CD/DVD drive and attach the desired installation media (ISO).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm104.jpg&quot; alt=&quot;Virtualisation on M1&quot; title=&quot;Virtualisation on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Start the virtual machine. If everything is configured correctly, you should be presented with the classic Linux GNU GRUB menu, allowing you to select “Ubuntu Server”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm105.jpg&quot; alt=&quot;Virtualisation on M1&quot; title=&quot;Virtualisation on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This will launch the Ubuntu Server installation wizard. Use the “Cursor Keys” to navigate, “Space” to check options and “Enter” to select.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm106.jpg&quot; alt=&quot;Virtualisation on M1&quot; title=&quot;Virtualisation on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The majority of the options can be left as default. However, a few require manual intervention. For example, the profile setup.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm107.jpg&quot; alt=&quot;Virtualisation on M1&quot; title=&quot;Virtualisation on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You may also want to specify any required features (e.g. Docker) as part of the installation, however, these features can also be added later.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm108.jpg&quot; alt=&quot;Virtualisation on M1&quot; title=&quot;Virtualisation on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once complete, the wizard will prompt you to reboot. Instead, close the virtual machine and eject the installation media (ISO).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm109.jpg&quot; alt=&quot;Virtualisation on M1&quot; title=&quot;Virtualisation on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Start the virtual machine and you will be prompted to log in with the previously defined profile information.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm110.jpg&quot; alt=&quot;Virtualisation on M1&quot; title=&quot;Virtualisation on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As this is a server product, Ubuntu Server does not include a Desktop Environment (GUI). This is perfectly fine for most server workflows, however, if you would like the Ubuntu GNOME Desktop Environment, run the following commands:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get update

sudo apt-get install tasksel

sudo tasksel install ubuntu-desktop
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
These commands will update the package information from configured sources and install the Ubuntu GNOME Desktop Environment. The process will take several minutes, but once complete, the subsequent reboot will display the standard Ubuntu GNOME Desktop Environment login screen.&lt;/p&gt;

&lt;p&gt;If the installation process fails, simply re-run the ‘install ubuntu-desktop’ command, which should pick up at the point of the failure.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/virtualisationonm111.jpg&quot; alt=&quot;Virtualisation on M1&quot; title=&quot;Virtualisation on M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, it is worth installing the &lt;a href=&quot;https://mac.getutm.app/support/&quot;&gt;SPICE Guest Tools and Drivers&lt;/a&gt;, which allows for advanced display setting to be enabled, such as “Retina Mode”, etc.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get install spice-vdagent spice-webdavd   
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
That’s it! Ubuntu Server, with the Ubuntu GNOME Desktop Environment, is now ready for use.&lt;/p&gt;
</description>
        <pubDate>Fri, 29 Oct 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/10/29/Virtualisation-on-M1/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/10/29/Virtualisation-on-M1/</guid>
      </item>
    
      <item>
        <title>PowerBook Reborn</title>
        <description>&lt;p&gt;I purchased my first Apple notebook in 2005, the legendary Aluminium PowerBook G4. This was not my first Mac, but all previous interactions were via second-hand desktops that I collected due to my obsession with technology (not because I had a specific use case).&lt;/p&gt;

&lt;p&gt;The PowerBook G4 changed everything! It was my first significant laptop purchase and marked the point I switched from Windows to OS X as my primary operating system.&lt;/p&gt;

&lt;p&gt;I still used Windows and Linux regularly (including a year as a Windows/Linux/Unix administrator), but OS X took me through university, including the delivery of my dissertation and associated software development project (which can be found on &lt;a href=&quot;https://github.com/mswbull/University_Dissertation&quot;&gt;GitHub&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The (blurry) photo below is from my flat in 2008, proudly featuring the PowerBook G4, Airport Extreme and even the original iPhone (imported from the US).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/powerbookreborn01.jpg&quot; alt=&quot;Apple PowerBook G4&quot; title=&quot;Apple PowerBook G4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The specification of the PowerBook G4 was modest by today’s standards, but included many “pro” features not found on Windows laptops at the time (high definition display, FireWire, etc.)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;PowerBook G4 Rev E (PowerBook5,8)&lt;/li&gt;
  &lt;li&gt;PowerPC 7447a (G4) 1.67GHz (1C/1T)&lt;/li&gt;
  &lt;li&gt;512MB DDR SDRAM (PC2-4200)&lt;/li&gt;
  &lt;li&gt;80GB 5400RPM HDD&lt;/li&gt;
  &lt;li&gt;ATi Radeon 9700 128MB DDR SDRAM (4x AGP)&lt;/li&gt;
  &lt;li&gt;2x USB 2.0, FireWire 400, FireWire 800&lt;/li&gt;
  &lt;li&gt;Analog/Optical Digital Audio&lt;/li&gt;
  &lt;li&gt;15-inch TFT Display (1440x960)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The PowerBook G4 served me well for over four years, at which point the Apple transition from PowerPC to Intel was well underway, prompting me to purchase a MacBook Pro.&lt;/p&gt;

&lt;p&gt;For fifteen years, the 15/16-inch MacBook Pro was my notebook model of choice, acting as my daily driver at home and for work. Due to my love of technology, I also had Windows and Linux systems, but the MacBook Pro went everywhere with me.&lt;/p&gt;

&lt;p&gt;In 2016, &lt;a href=&quot;/2016/11/28/macbook-pro-late-2016/&quot;&gt;Apple released a major redesign of the MacBook Pro&lt;/a&gt;, removing many features used by the professional community. Instead, Apple prioritised aesthetics with a slimline design that felt more like an oversized ultrabook.&lt;/p&gt;

&lt;p&gt;Although the notebook itself was still among the “best” available, with Apple’s market-leading build quality, the shift towards a design-first philosophy, frustrated the professional community, myself included.&lt;/p&gt;

&lt;p&gt;As a result, like many in the community, I decided to switch from the MacBook Pro to Windows/Linux laptop as my daily driver. It took me a while to find the right fit, working my way through three devices (which were all very good).&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/06/thinkpad-x1-extreme/&quot;&gt;Lenovo ThinkPad Extreme&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/11/18/razer-blade/&quot;&gt;Razer Blade 15 Advanced&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/08/02/dell-xps-17/&quot;&gt;Dell XPS 17&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For the past year, I have used a combination of the Razer Blade 15 Advanced (Windows 10/11) and Dell XPS 17 (Linux - &lt;a href=&quot;/2018/05/01/fedora-28/&quot;&gt;Fedora&lt;/a&gt; and &lt;a href=&quot;/2021/06/30/pop-os/&quot;&gt;Pop!_OS&lt;/a&gt;. Both of these laptops deliver exceptional performance, with unique features targetting the professional community, specifically:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;High-Performance CPU with Vapor Chamber Cooling&lt;/li&gt;
  &lt;li&gt;High-Performance GPU with Vapor Chamber Cooling&lt;/li&gt;
  &lt;li&gt;High-Performance Memory (up to 64GB)&lt;/li&gt;
  &lt;li&gt;High-Performance Storage (NVMe SSD up to 8TB)&lt;/li&gt;
  &lt;li&gt;Ports (Thunderbolt, USB-C, USB-A, SD-Card Reader, HDMI, DisplayPort)&lt;/li&gt;
  &lt;li&gt;High-Performance Power Delivery (140W+)&lt;/li&gt;
  &lt;li&gt;High Resolution, High Refresh Rate, Touch Display&lt;/li&gt;
  &lt;li&gt;Professional Orientated Keyboard&lt;/li&gt;
  &lt;li&gt;Biometric Security (Fingerprint Reader and/or Face Recognition)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, the Razer Blade 15 Advanced and Dell XPS 17 consistently outperformed the equivalent MacBook Pro, usually at a significantly lower cost (greater than £1000).&lt;/p&gt;

&lt;p&gt;Although these laptops have served me well over the past few years, I found myself imagining a future where Apple returned to the “glory days” of the PowerBook, with a product that prioritised professional workloads.&lt;/p&gt;

&lt;p&gt;On the 18th of October, &lt;a href=&quot;https://www.apple.com/uk/apple-events/october-2021/&quot;&gt;Apple announced the new 2021 MacBook Pro&lt;/a&gt;, running &lt;a href=&quot;/2020/11/18/apple-m1/&quot;&gt;Apple Silicon&lt;/a&gt; (M1 Pro and M1 Max).&lt;/p&gt;

&lt;p&gt;I can honestly state it is the most excited I have been about an Apple event in years and as soon as Apple revealed the design and specification of the 2021 MacBook Pro, I knew my fate was sealed.&lt;/p&gt;

&lt;p&gt;Yesterday, my new 16-inch MacBook Pro arrived!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/powerbookreborn02.jpg&quot; alt=&quot;Apple PowerBook G4&quot; title=&quot;Apple PowerBook G4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I selected the 16-inch SKU, equipped with the M1 Max System on a Chip (SoC). The full specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;16-inch MacBook Pro&lt;/li&gt;
  &lt;li&gt;Apple M1 Max CPU (10-core - 8 Performance / 2 Efficiency)&lt;/li&gt;
  &lt;li&gt;32-core GPU (10.4 Teraflops)&lt;/li&gt;
  &lt;li&gt;16-core Neural Engine&lt;/li&gt;
  &lt;li&gt;32GB Unified Memory (400GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;1TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;3x Thunderbolt 4, HDMI, 3.5mm Headphone, SDXC Card Reader, MagSafe 3&lt;/li&gt;
  &lt;li&gt;16.2-inch Liquid Retina XDR Display (3456x2234 @ 120Hz, 1600nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Considering my workloads, I configured the highest performance CPU/GPU option. I did not upgrade the memory or storage, which I felt were not worth the additional cost for my usage.&lt;/p&gt;

&lt;p&gt;To validate this thinking, I launched the following applications simultaneously, which would represent an extreme scenario (for me).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Microsoft Teams (Video Conference)&lt;/li&gt;
  &lt;li&gt;Microsoft Word&lt;/li&gt;
  &lt;li&gt;Microsoft PowerPoint&lt;/li&gt;
  &lt;li&gt;UTM (Ubuntu Server - 4 Core / 8GB)&lt;/li&gt;
  &lt;li&gt;Docker Desktop for Mac (8 Cores / 2GB)&lt;/li&gt;
  &lt;li&gt;GameMaker Studio 2 Game Engine and YoYo Runner (2D Game)&lt;/li&gt;
  &lt;li&gt;Godot Game Engine (3D Game)&lt;/li&gt;
  &lt;li&gt;Visual Studio Code&lt;/li&gt;
  &lt;li&gt;Google Chrome (Seven Tabs)&lt;/li&gt;
  &lt;li&gt;Terminal&lt;/li&gt;
  &lt;li&gt;Finder Preview (PDF)&lt;/li&gt;
  &lt;li&gt;Activity Monitor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is worth re-emphasising that this test included a Linux Virtual Machine (&lt;a href=&quot;https://ubuntu.com/download/server/arm&quot;&gt;Ubuntu Server&lt;/a&gt;) and two game engines (&lt;a href=&quot;https://www.yoyogames.com/&quot;&gt;GameMaker Studio 2&lt;/a&gt; and &lt;a href=&quot;https://godotengine.org/&quot;&gt;Godot&lt;/a&gt;), both running compiled games.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/powerbookreborn03.jpg&quot; alt=&quot;Apple PowerBook G4&quot; title=&quot;Apple PowerBook G4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I am pleased to report that the Mac remained responsive throughout the test, consuming an average of 23.09GB physical memory and 0GB swap. At peak, I have seen up to 26GB of physical memory used.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/powerbookreborn04.jpg&quot; alt=&quot;Apple PowerBook G4&quot; title=&quot;Apple PowerBook G4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Some workloads will apply more memory pressure, for example, 3D modelling, video editing, video effects, etc. However, I am fortunate to have a &lt;a href=&quot;/2021/07/01/my-setup-q3-2021/&quot;&gt;custom-built desktop PC&lt;/a&gt; with 64GB memory to support these memory-intensive workloads.&lt;/p&gt;

&lt;p&gt;This article is not a review of the 2021 MacBook Pro, for that, I would reference &lt;a href=&quot;https://www.anandtech.com/show/17024/apple-m1-max-performance-review/&quot;&gt;Anandtech&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=IhqCC70ZfDM&quot;&gt;Dave2D&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;Instead, I wanted to highlight my first 48hours with the notebook, which I consider the spiritual successor of the PowerBook G4.&lt;/p&gt;

&lt;p&gt;Interestingly, the aesthetics even resemble the PowerBook G4, with its “boxy” design.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/powerbookreborn05.jpg&quot; alt=&quot;Apple PowerBook G4&quot; title=&quot;Apple PowerBook G4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It goes without saying, similar to the &lt;a href=&quot;/2020/11/18/apple-m1/&quot;&gt;Apple M1 SoC&lt;/a&gt;, the Apple M1 Max SoC delivers ridiculous performance and is a serious warning shot to Intel/AMD/NVIDIA, with a “power to performance” ratio that is not only market-leading but arguably a generational leap over the competition.&lt;/p&gt;

&lt;p&gt;As a single reference point, the Apple M1 Max SoC achieved a &lt;a href=&quot;https://geekbench.com/&quot;&gt;GeekBench&lt;/a&gt; score of 1772 (single-core) and 12688 (multi-core), which destroys my 2019 16-inch MacBook Pro (Intel i9-9980HK), which scored 1032 (single-core) and 6583 (multi-core).&lt;/p&gt;

&lt;p&gt;Thanks to the power efficiency of the SoC, this performance is also sustained even when operating on battery, which is not the case with high-performance Windows laptops, often resulting in a 75% performance reduction.&lt;/p&gt;

&lt;p&gt;Combined with the advertised 21 hours battery life (realistically 10 hours for mixed workloads), the MacBook Pro is a productivity monster.&lt;/p&gt;

&lt;p&gt;Regarding the design itself, I consider the 2021 MacBook Pro close to perfect. Apple has essentially walked back every controversial decision they made in 2016, specifically:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Removal of the Touch Bar, replaced with full-height function keys.&lt;/li&gt;
  &lt;li&gt;MagSafe 3 delivering 140W of power, charging to 50% in 30mins.&lt;/li&gt;
  &lt;li&gt;HDMI and SD Card Reader.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the MacBook Pro design we should have received in 2016, especially considering this chassis also delivers a larger thermal envelope, which would have suited the thermally inefficient Intel processor. The image below is a stacked 2016, 2019 and 2021 MacBook Pro.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/powerbookreborn06.jpg&quot; alt=&quot;Apple PowerBook G4&quot; title=&quot;Apple PowerBook G4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thankfully, Apple has also retained (and even improved) the keyboard, which has clicky, tactile, responsive keys. This is a long way from the disastrous “butterfly switch” keyboard introduced in 2016.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/powerbookreborn07.jpg&quot; alt=&quot;Apple PowerBook G4&quot; title=&quot;Apple PowerBook G4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If that is not enough, the 2021 MacBook Pro also includes a high resolution (3456x2234), high refresh rate (120Hz) display, high-performance storage (7.4GB/s Read) and a thermal system that is so efficient it rarely engages the fans.&lt;/p&gt;

&lt;p&gt;In conclusion, I am pleased to reinstate the 16-inch MacBook Pro as my primary notebook! Apple has finally listened to their customers and delivered a product that thoroughly deserves the designation of “Pro”.&lt;/p&gt;
</description>
        <pubDate>Wed, 27 Oct 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/10/27/PowerBook-Reborn/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/10/27/PowerBook-Reborn/</guid>
      </item>
    
      <item>
        <title>EVOLVE 21</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - &lt;a href=&quot;/2021/11/16/EVOLVE-21-Update/&quot;&gt;The EVOLVE 21 webinar is now available to view online&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On the 29th of October I will be speaking as part of the &lt;a href=&quot;https://www.alcortech.com/evolve21/&quot;&gt;EVOLVE 21&lt;/a&gt; webinar series, hosted by &lt;a href=&quot;https://www.alcortech.com/&quot;&gt;Alcor Solutions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://alcortech.zoom.us/webinar/register/WN_1qvYJP1pQTCDhpm97JWN3Q&quot;&gt;&lt;img src=&quot;/images/posts/evolve2101.jpg&quot; alt=&quot;EVOLVE 21&quot; title=&quot;EVOLVE 21&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Founded in 2008, Alcor Solutions specialise in cloud advisory and implementation services, supporting customers globally across multiple industry verticals. Their expertise includes Automation, IT Service Management, IT Asset Management, Human Resource Automation and Data Analytics.&lt;/p&gt;

&lt;p&gt;EVOLVE 21 is a webinar series focused on insights from global thought leaders and industry experts, covering digital transformation and the challenges associated with technology adoption across different verticals. Each webinar includes an interactive section, where the global audience can contribute and ask questions.&lt;/p&gt;

&lt;p&gt;My colleague, &lt;a href=&quot;https://www.linkedin.com/in/mike-henry-07248a1/&quot;&gt;Mike Henry (Executive Director - TechOps)&lt;/a&gt; and I will discuss “&lt;a href=&quot;https://alcortech.zoom.us/webinar/register/WN_1qvYJP1pQTCDhpm97JWN3Q&quot;&gt;Digital Transformation: Large Scale Change&lt;/a&gt;”, covering our business transformation journey that included a major divestiture and acquisition.&lt;/p&gt;

&lt;p&gt;The webinar is scheduled for Friday, 29-OCT-2021 at 08:00 PDT / 15:00 GMT. It is free to &lt;a href=&quot;https://alcortech.zoom.us/webinar/register/WN_1qvYJP1pQTCDhpm97JWN3Q&quot;&gt;register&lt;/a&gt;, therefore I hope to see you there!&lt;/p&gt;
</description>
        <pubDate>Mon, 25 Oct 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/10/25/EVOLVE-21/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/10/25/EVOLVE-21/</guid>
      </item>
    
      <item>
        <title>vscode.dev</title>
        <description>&lt;p&gt;Yesterday, Microsoft released &lt;a href=&quot;https://vscode.dev/&quot;&gt;vscode.dev&lt;/a&gt;, which is a lightweight version of &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Visal Studio Code&lt;/a&gt; that runs in the browser.&lt;/p&gt;

&lt;p&gt;This is not the first time Visual Studio Code has been made available as a browser-based application, however, previous examples have required a dedicated server or a paid subscription (&lt;a href=&quot;https://github.com/features/codespaces&quot;&gt;GitHub Codespaces&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;vscode.dev is different as it follows a SaaS model (no dedicated server) and is available for free.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vscodedev01.jpg&quot; alt=&quot;vscode.dev&quot; title=&quot;vscode.dev&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Knowing that Visual Studio Code is based on the cross-platform &lt;a href=&quot;https://www.electronjs.org/&quot;&gt;Electron framework&lt;/a&gt;, you may be questioning why anyone would need a browser-based version. I can think of two specific examples.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;In a corporate/education environment, end-user computing can be restricted through policy, sometimes removing the ability to install software development tools locally. Ironically, these restrictions can even be applied to software developers, inhibiting their ability to work. For example, I have seen scenarios where corporate/education entities require their software development teams to use jump boxes and/or virtual desktop infrastructure, which directly impacts the developer experience and productivity.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Software development on low-powered systems or platforms with inherent software restrictions. For example, &lt;a href=&quot;https://www.google.com/chromebook/&quot;&gt;Google Chromebook&lt;/a&gt; or the &lt;a href=&quot;https://www.apple.com/ipad/&quot;&gt;Apple iPad&lt;/a&gt;. Although there are alternative code editors for these platforms, they rarely compete with Visual Studio Code, which at this point has become the standard.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I am most interested in the second example, specifically software development from the iPad. Over the years, &lt;a href=&quot;/2020/04/24/ipad-for-the-enterprise-2020/&quot;&gt;I have challenged myself to use the iPad as a daily driver, specifically in the context of work&lt;/a&gt;. Unfortunately, software development has always been a challenge, requiring &lt;a href=&quot;/2020/05/02/ipad-development/&quot;&gt;elaborate workarounds (using a Raspberry Pi)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Therefore, I hope vscode.dev is another step towards making the iPad a viable platform for software development, even if it is restricted to web technologies.&lt;/p&gt;

&lt;p&gt;Alongside the release of vscode.dev, &lt;a href=&quot;https://code.visualstudio.com/blogs/2021/10/20/vscode-dev&quot;&gt;Microsoft published a blog post&lt;/a&gt;, which describes the new features and framed the target use cases. They used the positioning “Good”, “Better” and “Best”, as outlined below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Good:&lt;/strong&gt; For most programming languages, vscode.dev gives you code syntax colourisation, text-based completions, and bracket pair colourisation. Using a Tree-sitter syntax tree, we’re able to provide additional experiences such as Outline/Go to Symbol and Symbol Search for popular languages such as C/C++, C#, Java, PHP, Rust, and Go.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Better:&lt;/strong&gt; The TypeScript, JavaScript, and Python experiences are all powered by language services that run natively in the browser. With these programming languages, you’ll get the “Good” experience plus rich single file completions, semantic highlighting, syntax errors, and more.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Best:&lt;/strong&gt; For many “webby” languages, such as JSON, HTML, CSS, and LESS, the coding experience in vscode.dev is nearly identical to the desktop (including Markdown preview).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An important prerequisite for vscode.dev is a modern browser, specifically one that supports the &lt;a href=&quot;https://developer.mozilla.org/docs/Web/API/File_System_Access_API&quot;&gt;File System Access API&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vscodedev02.jpg&quot; alt=&quot;vscode.dev&quot; title=&quot;vscode.dev&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, as highlighted by the table, mobile browsers are not compatible with the File System Access API, meaning they are limited to individual file uploads/downloads or linking to a remote &lt;a href=&quot;https://www.github.com&quot;&gt;GitHub&lt;/a&gt; or &lt;a href=&quot;https://azure.microsoft.com/services/devops/&quot;&gt;Azure DevOps&lt;/a&gt; repository. This is not ideal, but workable in most software development scenarios.&lt;/p&gt;

&lt;p&gt;I attempted to use vscode.dev on the iPad to update this blog (&lt;a href=&quot;/2017/12/20/jamstack/&quot;&gt;JAMstack&lt;/a&gt; architecture).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vscodedev03.jpg&quot; alt=&quot;vscode.dev&quot; title=&quot;vscode.dev&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This use case falls between the “Better” the “Best” categories as outlined by Microsoft and I am pleased to report everything worked as designed. Visual Studio Code behaved as expected, delivering a familiar experience to the desktop application. The iPad also worked well, especially when connected to an external keyboard, such as the &lt;a href=&quot;https://www.apple.com/ipad-keyboards/&quot;&gt;Apple Magic Keyboard&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vscodedev04.jpg&quot; alt=&quot;vscode.dev&quot; title=&quot;vscode.dev&quot; /&gt;&lt;/p&gt;

&lt;p&gt;However, I encountered two frustrations, specifically the previously mentioned file system access (a constant pain point with Apple iOS and iPadOS), as well as the standard Visual Studio Code keyboard shortcuts, which conflict with the browser keyboard shortcuts.&lt;/p&gt;

&lt;p&gt;In theory, both of these challenges could be resolved via a custom browser wrapper (using a lightweight version of &lt;a href=&quot;https://www.chromium.org/&quot;&gt;Chromium&lt;/a&gt; or if Microsoft decided to deliver specific customisations for &lt;a href=&quot;https://www.microsoft.com/edge&quot;&gt;Microsoft Edge&lt;/a&gt;. The use of Microsoft Edge feels like an ideal path for Microsoft, acting as a clear differentiator by exploiting the strengths of their end-to-end ecosystem (e.g. Edge + vscode.dev).&lt;/p&gt;

&lt;p&gt;Finally, it should be noted that only a handful of the popular Visual Studio Code extensions are compatible with vscode.dev. Thankfully, this is an area I expect to improve over time.&lt;/p&gt;

&lt;p&gt;In conclusion, vscode.dev works well! I can see it being popular within education, where the environment (policy) and/or devices (Chromebooks) have specific limitations.&lt;/p&gt;

&lt;p&gt;Regarding the iPad, for web development, the core vscode.dev application works surprisingly well, with a few minor frustrations caused by the restrictions associated with iPadOS. I would be happy to use it today for quick updates/fixes, but the highlighted frustrations would deter me from using it as my daily driver.&lt;/p&gt;

&lt;p&gt;With that said, vscode.dev shows great promise and I remain optimistic that the iPad will (one day) become a viable software development platform.&lt;/p&gt;
</description>
        <pubDate>Thu, 21 Oct 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/10/21/vscode-dev/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/10/21/vscode-dev/</guid>
      </item>
    
      <item>
        <title>Why Pop!_OS?</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://pop.system76.com/&quot;&gt;Pop!_OS&lt;/a&gt; is a Ubuntu-based Linux operating system developed and maintained by &lt;a href=&quot;https://system76.com/&quot;&gt;System76&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It was first released in 2017 but has quickly established itself as a fast, robust and user-friendly Linux distribution, which is consistently ranked in the top five most popular by &lt;a href=&quot;https://distrowatch.com/dwres.php?resource=popularity&quot;&gt;DistroWatch&lt;/a&gt;. It targets developers, makers, and computer science professionals.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2021/06/30/pop-os/&quot;&gt;Earlier this year, I transitioned to Pop!_OS&lt;/a&gt;, switching from &lt;a href=&quot;/2018/05/01/fedora-28/&quot;&gt;Fedora&lt;/a&gt;, which had been my primary Linux distribution since 2011.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/whypopos01.jpg&quot; alt=&quot;Why Pop!_OS&quot; title=&quot;Why Pop!_OS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have now been using Pop!_OS for two months on a &lt;a href=&quot;/2021/07/01/my-setup-q3-2021/&quot;&gt;Dell XPS 17 (9710)&lt;/a&gt;, supporting my personal and business workloads. This includes eight hour days, covering web (Google Chrome), productivity (&lt;a href=&quot;https://www.libreoffice.org/&quot;&gt;LibreOffice&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/en-us/microsoft-365/free-office-online-for-the-web&quot;&gt;Microsoft Office Web&lt;/a&gt;), collaboration (&lt;a href=&quot;https://www.microsoft.com/microsoft-teams/&quot;&gt;Microsoft Teams&lt;/a&gt;, &lt;a href=&quot;https://zoom.us/&quot;&gt;Zoom&lt;/a&gt;), development (&lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;, &lt;a href=&quot;https://www.yoyogames.com/&quot;&gt;GameMaker Studio 2&lt;/a&gt;), video/photo editing (&lt;a href=&quot;https://www.openshot.org/&quot;&gt;OpenShot Video Editor&lt;/a&gt;, &lt;a href=&quot;https://krita.org/&quot;&gt;Krita&lt;/a&gt;) and even gaming (&lt;a href=&quot;https://store.steampowered.com/&quot;&gt;Steam&lt;/a&gt;, &lt;a href=&quot;https://lutris.net/&quot;&gt;Lutris&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/whypopos02.jpg&quot; alt=&quot;Why Pop!_OS&quot; title=&quot;Why Pop!_OS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As with any system, there has been the occasional “hiccup”, but I am pleased to report that overall, Pop!_OS has performed admirably, providing a comparable experience to Windows and/or macOS.&lt;/p&gt;

&lt;p&gt;With that said, I suspect this experience has been helped by &lt;a href=&quot;/2020/11/20/software-list-2020/&quot;&gt;my choice of software&lt;/a&gt;, which favours cross-platform and/or free and open-source.&lt;/p&gt;

&lt;p&gt;With two months of experience behind me, I thought I would share a few reasons why I believe Pop!_OS is one of the best Linux distributions available today.&lt;/p&gt;

&lt;h3 id=&quot;culture&quot;&gt;Culture&lt;/h3&gt;

&lt;p&gt;System76 started as a computer manufacturer, specialising in the sale of notebooks, desktops, and servers running Linux (initially &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;). This heritage provides them with a unique perspective on what it takes to make Linux a viable operating system for daily use.&lt;/p&gt;

&lt;p&gt;As an example, Carl Richell, founder and CEO of System76 recently joined Jonathan Bennett and Shawn Powers on &lt;a href=&quot;https://twit.tv/shows/floss-weekly&quot;&gt;FLOSS Weekly&lt;/a&gt;. The hour-long podcast provided a fascinating glimpse into System76, including their philosophy to design, manufacturing, etc.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/kvButXrArMk?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;In short, the System76 story resonates with me and therefore is something I want to use and promote. Similar to the recently announced &lt;a href=&quot;https://frame.work/&quot;&gt;Framework Laptop&lt;/a&gt;, I feel it is important that ethically and environmentally positive companies that prioritise free and open-source software are allowed to complete, hopefully helping to shape the future of computing.&lt;/p&gt;

&lt;h3 id=&quot;installation&quot;&gt;Installation&lt;/h3&gt;

&lt;p&gt;A common barrier with Linux is the initial installation, which can be cumbersome for new users, especially if the required open-source software/drivers are not readily available.&lt;/p&gt;

&lt;p&gt;A great example is &lt;a href=&quot;https://archlinux.org/&quot;&gt;Arch Linux&lt;/a&gt;, which is growing in popularity thanks to the rolling release model and the incredible control it provides over the operating system. Although I love the &lt;a href=&quot;https://wiki.archlinux.org/&quot;&gt;ArchWiki&lt;/a&gt;, and Arch User Repository (AUR), the initial installation is certainly not for beginners (prepare to reserve several hours).&lt;/p&gt;

&lt;p&gt;Arch-based Linux distributions such as &lt;a href=&quot;https://manjaro.org/&quot;&gt;Manjaro&lt;/a&gt; can help significantly, but (in my opinion) still fall short of Pop!_OS for speed and simplicity.&lt;/p&gt;

&lt;p&gt;System76 provide a dedicated ISO for Intel/AMD or NVIDIA-based systems. This alone is a huge benefit, as installing and maintaining the proprietory NVIDIA drivers on Linux can be a real pain. Once the correct ISO is selected, the installation wizard is fast and intuitive, with options to enable important security controls such as full-disk encryption, etc.&lt;/p&gt;

&lt;p&gt;Finally, once at the desktop, Pop!_OS includes a simple getting started guide to configure common settings. In my opinion, this experience is among the best in the business, even superior to Windows and macOS, which have both become bloated over the years with unnecessary steps.&lt;/p&gt;

&lt;h3 id=&quot;desktop-envrionment&quot;&gt;Desktop Envrionment&lt;/h3&gt;

&lt;p&gt;Pop!_OS ships with a custom version of the &lt;a href=&quot;https://www.gnome.org/&quot;&gt;GNOME&lt;/a&gt; desktop environment called COSMIC. If you do not like GNOME, &lt;a href=&quot;https://support.system76.com/articles/desktop-environment/&quot;&gt;System76 offer alternatives&lt;/a&gt; (e.g. MATE, Cinnamon, KDE Plasma, etc.) However, it should be noted that Pop!_OS was designed with COSMIC in mind.&lt;/p&gt;

&lt;p&gt;What I like about Pop!_OS is that COSMIC pre-configures all of the custom settings I would usually have to enable through third-party extensions. For example, I like a very minimal desktop experience, with a vertical layout and a focus on keyboard shortcuts. With Pop!_OS, this can be achieved natively, with almost no effort and zero ongoing maintenance.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/whypopos03.jpg&quot; alt=&quot;Why Pop!_OS&quot; title=&quot;Why Pop!_OS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, Pop!_OS includes custom power profiles, which are natively integrated into the menu bar. For example, if the system has hybrid graphics (e.g. Intel and NVIDIA), Pop!_OS can be configured in a “single click” to automatically switch depending on the workload.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/popos02.jpg&quot; alt=&quot;Why Pop!_OS&quot; title=&quot;Why Pop!_OS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you are coming from Windows or macOS, this will sound very trivial, but on Linux, hybrid graphics can be a pain to set up, configure and enable.&lt;/p&gt;

&lt;h3 id=&quot;compatibility&quot;&gt;Compatibility&lt;/h3&gt;

&lt;p&gt;Pop!_OS is based on Ubuntu, which itself is based on &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt;. I left the Ubuntu ecosystem in 2011 due to the direction of the project (Ubuntu Unity).&lt;/p&gt;

&lt;p&gt;However, it is hard to argue against the market strength of Ubuntu and the breadth of Debian-based repositories, delivering the most comprehensive software ecosystem that is often the starting point for new releases.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/whypopos04.jpg&quot; alt=&quot;Why Pop!_OS&quot; title=&quot;Why Pop!_OS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For example, &lt;a href=&quot;/2021/08/06/GameMaker-Studio-2-Linux/&quot;&gt;the recent release of GameMaker Studio 2 for Linux&lt;/a&gt; is currently only officially supported on Ubuntu. Although it is possible to make the software work on other distributions, having native support is certainly a time saver.&lt;/p&gt;

&lt;p&gt;What I like about System76 is that they have selected the “best bits” of Ubuntu for Pop!_OS, ignoring the more controversial decisions. For example, &lt;a href=&quot;/2019/09/22/flatpak-and-snappy/&quot;&gt;Pop!_OS does not prioritise the use of Snap packages, instead favouring Debian and Flatpak&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;performance-and-reliability&quot;&gt;Performance and Reliability&lt;/h3&gt;

&lt;p&gt;In my experience, Pop!_OS is not the fastest or the most reliable Linux distribution. However, it scores highly in both areas, making it a great balance. For example, I find Arch-based Linux distributions such as Manjaro to be faster, but also less stable.&lt;/p&gt;

&lt;p&gt;Pop!_OS follows the Ubuntu twice-yearly update cycle (April and October). As Pop!_OS is not a rolling release distribution (like Arch Linux), it means that software is often a little behind the latest version. For example, Pop!_OS 21.04 shipped with GNOME v3.38.4 (not &lt;a href=&quot;/2021/04/27/fedora-34/&quot;&gt;GNOME 40&lt;/a&gt;), however, this conservative update schedule helps ensure any “bleeding edge” bugs or security concerns are (hopefully) resolved before user adoption.&lt;/p&gt;

&lt;p&gt;In my experience, Pop!_OS is as stable as Fedora (which is very solid), but also more performant, especially in gaming.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, Pop!_OS just works!&lt;/p&gt;

&lt;p&gt;It allows me to focus on my workloads (e.g. productivity, collaboration, development), instead of the operating system itself. In my opinion, this is the true test of a great operating system, which should really “fade into the background”, acting as the vehicle to “get stuff done”.&lt;/p&gt;

&lt;p&gt;I would happily recommend Pop!_OS to any Linux user, either someone starting new or an experienced user simply looking for a robust daily driver. In either scenario, I think you would be hard-pressed to find a more well rounded Linux distribution.&lt;/p&gt;
</description>
        <pubDate>Wed, 20 Oct 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/10/20/Why-Pop-OS/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/10/20/Why-Pop-OS/</guid>
      </item>
    
      <item>
        <title>DevOps @ Enterprise Forum</title>
        <description>&lt;p&gt;Earlier today, I presented at the &lt;a href=&quot;https://devopsforum.pl/&quot;&gt;DevOps @ Enterprise Forum&lt;/a&gt; hosted from Poland.&lt;/p&gt;

&lt;p&gt;My session was focused on Infrastructure-as-Code, targetting IT managers (not architects/engineers) looking to learn about the concepts, prerequisites, implementation approach, and the associated value proposition.&lt;/p&gt;

&lt;p&gt;I shared my experience covering the Methodology and Foundational IT Ecosystem, as well as DevOps Culture, DevOps Operating Model, Immutable Infrastructure, and of course, Infrastructure-as-Code itself.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/devopsenterpriseforum02.jpg&quot; alt=&quot;DevOps @ Enterprise Forum&quot; title=&quot;DevOps @ Enterprise Forum&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The session was virtual and predominantly hosted in Polish (I do not speak Polish), therefore community connections were limited. However, I have had great engagement post-event and it has been great fun collaborating with passionate individuals.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/devopsenterpriseforum03.jpg&quot; alt=&quot;DevOps @ Enterprise Forum&quot; title=&quot;DevOps @ Enterprise Forum&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you are interested in DevOps Culture or concepts/technologies such as Immutable Infrastructure and Infrastructure-as-Code, feel free to connect using one of the usual channels (&lt;a href=&quot;mailto:mswbull@gmail.com&quot;&gt;Email&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/mswbull&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/mswbull/&quot;&gt;LinkedIn&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;p&gt;The recording for the session should be available online soon. I will update this post once it has been published.&lt;/p&gt;

&lt;p&gt;Thanks to the team at DevOps @ Enterprise Forum, as well as everyone that attended!&lt;/p&gt;
</description>
        <pubDate>Fri, 08 Oct 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/10/08/DevOps-Enterprise-Forum/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/10/08/DevOps-Enterprise-Forum/</guid>
      </item>
    
      <item>
        <title>Windows 11 VM</title>
        <description>&lt;p&gt;Earlier today, &lt;a href=&quot;https://www.microsoft.com/windows/windows-11&quot;&gt;Microsoft officially released Windows 11&lt;/a&gt;. &lt;a href=&quot;/2021/06/24/windows-11-announcement/&quot;&gt;As highlighted in my previous article&lt;/a&gt;, Windows 11 does not focus on technical innovation and instead should be considered a “marketing release”, intended to re-energise the faltering partner market (e.g. Dell, HP, etc.)&lt;/p&gt;

&lt;p&gt;With that said, Windows 11 does include some interesting incremental changes that go beyond Windows 10 21H1, most notably the new simplified Start Menu.&lt;/p&gt;

&lt;p&gt;It remains unclear what new features (if any) will be delivered to Windows 10 in the future, therefore Windows 11 is the logical path forward for most users.&lt;/p&gt;

&lt;p&gt;Windows 11 can be &lt;a href=&quot;https://www.microsoft.com/software-download/windows11&quot;&gt;installed from an ISO&lt;/a&gt; or upgraded via Windows Update. However, in either scenario, Windows will complete a compatibility check to ensure the host hardware is compatible.&lt;/p&gt;

&lt;p&gt;Outside of the &lt;a href=&quot;https://docs.microsoft.com/en-gb/windows-hardware/design/minimum/windows-processor-requirements&quot;&gt;arbitrary processor requirements&lt;/a&gt; (Intel 8th Generation / AMD Ryzen 3000 Series), the most controversial requirement is the Trusted Platform Module (TPM) v2.0.&lt;/p&gt;

&lt;p&gt;TPM v2.0 is an international standard for a secure cryptoprocessor, which was first introduced in 2014, therefore any system built after this point should be compatible. However, the reality for budget laptops, desktops and/or custom-built systems is more convoluted.&lt;/p&gt;

&lt;p&gt;Interestingly, the TPM v2.0 requirement is not a technical limitation of Windows 11, instead, a requirement enforced by Microsoft through code. Arguably, this position demonstrates Microsoft’s dedication to security, however, it is difficult to ignore that it also acts as a convenient cut-off point to force hardware upgrades.&lt;/p&gt;

&lt;p&gt;An example of where this requirement can be a challenge is client virtualisation. Although it is possible to virtualise TPM v2.0 for compatibility, this feature is not supported by all hypervisors. Therefore, if you need to run Windows using client virtualisation, you might encounter issues.&lt;/p&gt;

&lt;p&gt;Thankfully, as TPM v2.0 is not a technical limitation of Windows 11, the bypass mechanism is relatively simple.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2020/11/06/windows-10-iso/&quot;&gt;I previously shared&lt;/a&gt; a &lt;a href=&quot;https://github.com/AveYo/MediaCreationTool.bat&quot;&gt;simple script created by “AveYo”&lt;/a&gt;, which acts as a wrapper for the official &lt;a href=&quot;https://www.microsoft.com/software-download/windows11&quot;&gt;Microsoft Media Creation Tool&lt;/a&gt;, allowing the user to select any version of Windows 10 (1507 to latest) or 11 (21H2 to latest). By default, the Microsoft Media Creation Tool will always select the latest version, which may not be the desired outcome.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows11vm01.jpg&quot; alt=&quot;Windows 11 VM&quot; title=&quot;Windows 11 VM&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If Windows 11 is selected, the wrapper automatically disables the TPM v2.0 requirement, allowing the resulting ISO to be installed on a wide variety of hosts (hardware or virtualised).&lt;/p&gt;

&lt;p&gt;I recently used the wrapper to create a Windows 11 virtual machine for my Linux (&lt;a href=&quot;/2021/06/30/pop-os/&quot;&gt;Pop!_OS&lt;/a&gt;) host, running on &lt;a href=&quot;https://www.vmware.com/uk/products/workstation-player/workstation-player-evaluation.html&quot;&gt;VMware Workstation Player&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows11vm02.jpg&quot; alt=&quot;Windows 11 VM&quot; title=&quot;Windows 11 VM&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Outside of the TPM v2.0 requirement, everything else works as originally designed, including Windows Update, etc.&lt;/p&gt;
</description>
        <pubDate>Tue, 05 Oct 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/10/05/Windows-11-VM/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/10/05/Windows-11-VM/</guid>
      </item>
    
      <item>
        <title>Deloitte Experience Analytics</title>
        <description>&lt;p&gt;Earlier today, Deloitte published the on-demand videos from the &lt;a href=&quot;/2021/09/12/Deloitte-Experience-Analytics/&quot;&gt;Experience Analytics&lt;/a&gt; event.&lt;/p&gt;

&lt;p&gt;I presented with the team from &lt;a href=&quot;/2021/09/29/Boomi/&quot;&gt;Boomi&lt;/a&gt; as part of the session “Achieving Continuity with Modernisation to Create a New and Improved IT Ecosystem”.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://crowdcomms.com/experienceanalytics/stream/40174&quot;&gt;&lt;img src=&quot;/images/posts/experienceanalytics02.jpg&quot; alt=&quot;Experience Analytics&quot; title=&quot;Experience Analytics&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Within the session, I shared our customer journey and a few examples of how integration technologies played a critical role in enabling a series of highly complex acquisition and divestiture activities. Outlined below is a short extract from the session, which provides additional framing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“In September 2019, we announced our plan to divest from our parent company. What made this unique was the requirement to re-build IT from the ground up, covering the architecture, technology, processes and the organisation.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;As someone that has spent his career managing legacy, technical debt, and inertia, the ability to rebuild everything, covering workplace services, hosting, networking, as well our applications and data services was an exciting prospect.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;We had a two-year window to execute the change, whilst maintaining business continuity throughout.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;To make things more interesting, during the divestiture, we demonstrated our ambition as a standalone company, with a major acquisition. From an IT standpoint, this essentially doubled the size of the IT ecosystem.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This was obviously all completed whilst battling against a global pandemic, where travel was restricted, and supply chains were heavily impacted.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To access the &lt;a href=&quot;https://crowdcomms.com/experienceanalytics/modules/99039/live-stream/list&quot;&gt;on-demand videos&lt;/a&gt;, you must first &lt;a href=&quot;https://crowdcomms-ltd.reg.crowdcomms.com/experience-analytics/register&quot;&gt;register for the event&lt;/a&gt;. Once complete, all of the content is made available, including access to the community of speakers and participants.&lt;/p&gt;

&lt;p&gt;Overall, it was great to re-engage with the “tech” community and I look forward to the next opportunity.&lt;/p&gt;
</description>
        <pubDate>Fri, 01 Oct 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/10/01/Deloitte-Experience-Analytics/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/10/01/Deloitte-Experience-Analytics/</guid>
      </item>
    
      <item>
        <title>Boomi</title>
        <description>&lt;p&gt;Following the &lt;a href=&quot;/2021/09/12/Experience-Analytics/&quot;&gt;Deloitte Experience Analytics&lt;/a&gt; event last week, the team at &lt;a href=&quot;https://boomi.com/&quot;&gt;Boomi&lt;/a&gt; have released the associated customer story.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://boomi.com/customer/elanco/&quot;&gt;Customer Story&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://resources.boomi.com/resources/resources-library/elanco-balances-continuity-with-modernization-to-create-a-new-and-improved-it-ecosystem-with-boomi&quot;&gt;Case Study&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://resources.boomi.com/resources/resources-library/customer-testimonial-%7C-elanco&quot;&gt;Video Infographic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As discussed at the event, the Customer Story describes how we balanced business continuity with modernisation to create a new and improved IT ecosystem.&lt;/p&gt;

&lt;p&gt;I highly recommend watching the short video infographic (link below), which highlights the key milestones and value proposition.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://resources.boomi.com/resources/resources-library/customer-testimonial-%7C-elanco&quot;&gt;&lt;img src=&quot;/images/posts/boomi01.jpg&quot; alt=&quot;Boomi&quot; title=&quot;Boomi&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Boomi have been a great partner, helping us to unlock agility and speed to value via their cloud-native Integration Platform-as-a-Service (iPaaS).&lt;/p&gt;
</description>
        <pubDate>Wed, 29 Sep 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/09/29/Boomi/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/09/29/Boomi/</guid>
      </item>
    
      <item>
        <title>CTO Confessions</title>
        <description>&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt; - The CTO Confessions episode “&lt;a href=&quot;/2022/01/01/CTO-Confessions-Podcast/&quot;&gt;Proper Animal Care Through Tech Innovation with Matt Bull&lt;/a&gt;” is now available to download/stream.&lt;/p&gt;

&lt;p&gt;I am pleased to share that I will be a guest speaker on an upcoming episode of the &lt;a href=&quot;https://www.it-labs.com/podcasts/&quot;&gt;CTO Confessions&lt;/a&gt; podcast, hosted by &lt;a href=&quot;https://www.it-labs.com/&quot;&gt;IT Labs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;IT Labs is a US-based software company that helps businesses innovate across Cloud, DevOps, and AI/ML.&lt;/p&gt;

&lt;p&gt;Promoting the company culture, IT Labs are also very active in the community. For example, the CTO Confessions podcast launched in April 2020, but already has over 60 episodes, including guest speakers from &lt;a href=&quot;https://about.google/&quot;&gt;Google&lt;/a&gt;, &lt;a href=&quot;https://www.tui.co.uk/&quot;&gt;Tui&lt;/a&gt;, &lt;a href=&quot;https://www.accenture.com/gb-en&quot;&gt;Accenture&lt;/a&gt;, &lt;a href=&quot;https://www.easyjet.com/en&quot;&gt;easyJet&lt;/a&gt;, &lt;a href=&quot;https://www.cloudbees.com/&quot;&gt;CloudBees&lt;/a&gt;, &lt;a href=&quot;https://www.revolut.com/&quot;&gt;Revolut&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;The podcast, alongside the other community content, is available for free. Therefore, I highly recommend subscribing via one of their channels.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.it-labs.com/podcasts/&quot;&gt;CTO Confessions - IT Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://open.spotify.com/show/3LKhgOJSkRbbCn9agFCajC?si=TxZ6qmB5TGGZ7_Y3i4GE-g&amp;amp;dl_branch=1&amp;amp;nd=1&quot;&gt;CTO Confessions - Spotify&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/mk/podcast/cto-confessions-brought-to-you-by-it-labs/id1507959613&quot;&gt;CTO Confessions - iTunes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://soundcloud.com/cto-confessions&quot;&gt;CTO Confessions - SoundCloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://youtube.com/playlist?list=PLK96dwihwhdli7mgNa3Fw7oKlYM3KOqom&quot;&gt;CTO Confessions - YouTube&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As with previous episodes, I expect the discussion to focus on career and IT leadership, as well as architecture/technology trends.&lt;/p&gt;

&lt;p&gt;I am looking forward to collaborating with IT Labs, with the episode scheduled to be published in December.&lt;/p&gt;
</description>
        <pubDate>Tue, 28 Sep 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/09/28/CTO-Confessions/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/09/28/CTO-Confessions/</guid>
      </item>
    
      <item>
        <title>Experience Analytics</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - &lt;a href=&quot;/2021/10/01/Deloitte-Experience-Analytics/&quot;&gt;The Deloitte Experience Analytics session is now available to view online&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Later this month I will be presenting at the &lt;a href=&quot;https://www.deloitte.co.uk/experience-analytics/&quot;&gt;Deloitte Experience Analytics&lt;/a&gt; event in London, which is focused on AI and analytics in business.&lt;/p&gt;

&lt;p&gt;The event synopsis can be found below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Experience Analytics is Deloitte’s flagship conference for data, analytics, and artificial intelligence in business. This year, we’re hosting six live sessions across 20-22 September, delivered and attended by C-Suite and Senior Executives to discuss the latest insights and trends in AI and analytics.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Through a series of Ted-X style talks and live demonstrations, we’ll explore the key issues, challenges and opportunities presented by AI and data. We’ll also focus on how businesses can utilise the latest AI technologies to become an insight-driven organisation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;While we were restricted to virtual live streams in 2020, we’re delighted to be able to welcome a small number of you to a physical venue this year. For those unable to attend, we will be live streaming each of our sessions so that no one will miss out!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I will be speaking on &lt;a href=&quot;https://www.deloitte.co.uk/experience-analytics/agenda/#day3__3&quot;&gt;day three&lt;/a&gt; with the team from &lt;a href=&quot;https://boomi.com/&quot;&gt;Boomi&lt;/a&gt; as part of the session “Achieving Continuity with Modernisation to Create a New and Improved IT Ecosystem”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/experienceanalytics01.jpg&quot; alt=&quot;Experience Analytics&quot; title=&quot;Experience Analytics&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I plan to share details of our journey over the past eighteen months, which was highlighted in the article “&lt;a href=&quot;https://www.elanco.com/en-us/insights/elanco-modern-it-ecosystem&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://crowdcomms-ltd.reg.crowdcomms.com/experience-analytics&quot;&gt;The event runs from 20 September to 22 September and includes virtual participation&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 12 Sep 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/09/12/Experience-Analytics/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/09/12/Experience-Analytics/</guid>
      </item>
    
      <item>
        <title>Linux Distributions</title>
        <description>&lt;p&gt;Over the past two decades, I have hopped between different Linux distributions, eventually landing on &lt;a href=&quot;/2018/05/01/fedora-28/&quot;&gt;Fedora in 2011&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2021/06/30/Pop-OS/&quot;&gt;Earlier this year, I decided to take a look at some other Linux distributions&lt;/a&gt;. This evaluation was driven by personal intrigue and not any specific issue with Fedora.&lt;/p&gt;

&lt;p&gt;In this article, I wanted to share a summary of my findings, which has led me to what I believe to be the “best” three Linux distributions. It should be noted, this conclusion is very subjective and my choices are “&lt;a href=&quot;https://www.gnome.org&quot;&gt;GNOME-centric&lt;/a&gt;”, which is a personal preference that I respect would not suit everyone.&lt;/p&gt;

&lt;h3 id=&quot;pop_os&quot;&gt;Pop!_OS&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://pop.system76.com/&quot;&gt;Pop!_OS&lt;/a&gt;, developed by &lt;a href=&quot;https://system76.com/&quot;&gt;System76&lt;/a&gt;, is based on Ubuntu and features a custom GNOME desktop, known as COSMIC (Computer Operating System Main Interface Components).&lt;/p&gt;

&lt;p&gt;In my opinion, Pop!_OS achieves the best “out of the box” experience for Linux, covering Intel, AMD and NVIDIA hardware. It delivers the closest equivalent to the Apple “it just works” mantra, making it an ideal choice for anyone that is looking to get up and running with minimal effort.&lt;/p&gt;

&lt;p&gt;Knowing that Pop!_OS is based on Ubuntu (which itself is based on &lt;a href=&quot;https://www.debian.org&quot;&gt;Debian&lt;/a&gt;), there is a huge developer/support community, with thousands of compatible software packages (over 68,000) and knowledge articles covering almost every conceivable scenario.&lt;/p&gt;

&lt;p&gt;Pop!_OS includes two major releases per year (mimicking Ubuntu), with incremental updates delivering new features, patches, etc. This is a “tried and tested” update methodology, which delivers a highly consistent and reliable experience.&lt;/p&gt;

&lt;p&gt;In addition to the standard Ubuntu features, Pop!_OS includes some unique capabilities, such as a custom installer, full disk encryption, power profiles, firmware management, and integrated hybrid graphics switching. These capabilities help to make Pop!_OS feel like an operating system that could rival Windows and macOS as a consumer product targeting the general public.&lt;/p&gt;

&lt;p&gt;If you are looking for a “no-fuss” Linux distribution that is well optimised for productivity, gaming and development workflows, I would highly recommend Pop!_OS.&lt;/p&gt;

&lt;h3 id=&quot;manjaro&quot;&gt;Manjaro&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://manjaro.org/&quot;&gt;Manjaro&lt;/a&gt; is based on &lt;a href=&quot;https://archlinux.org/&quot;&gt;Arch Linux&lt;/a&gt;, which is a “rolling-release” distribution, meaning there are no “major” releases (like with Pop!_OS), with updates being delivered continuously (rolling) throughout the life of the product.&lt;/p&gt;

&lt;p&gt;Although Majaro is based on Arch Linux, it dramatically simplifies the installation and support process, providing an opinionated software stack. For example, Manjaro includes different editions, specifically &lt;a href=&quot;https://www.xfce.org&quot;&gt;Xfce&lt;/a&gt;, &lt;a href=&quot;https://kde.org/plasma-desktop/&quot;&gt;KDE Plasma&lt;/a&gt; or GNOME.&lt;/p&gt;

&lt;p&gt;Updates tend to be made available at a slower pace than Arch Linux, but are in theory more heavily tested to ensure interoperability and reliability.&lt;/p&gt;

&lt;p&gt;Similar to Pop!_OS, Manjaro has great support for open and proprietary drivers, meaning NVIDIA graphics can be easily installed and maintained. Manjaro also has access to the Arch package repositories and Arch User Repository (AUR) which contain thousands of software packages, comparable to Debian. Package management on Arch-based Linux distributions is very different to Debian-based distributions but arguably more powerful and versatile. Manjaro includes a GUI application known as Paman which simplifies package management, covering all common use cases.&lt;/p&gt;

&lt;p&gt;Another benefit of Manjaro is the &lt;a href=&quot;https://wiki.archlinux.org&quot;&gt;ArchWiki&lt;/a&gt;, which is the ultimate Linux knowledge base. The level of detail, breadth of content and ease of consumption is unrivalled.&lt;/p&gt;

&lt;p&gt;If you are looking for a rolling release Linux distribution, without the complexity of Arch Linux, Manjaro is a great choice.&lt;/p&gt;

&lt;h3 id=&quot;fedora&quot;&gt;Fedora&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora&lt;/a&gt;, sponsored by &lt;a href=&quot;https://www.redhat.com/&quot;&gt;Red Hat&lt;/a&gt;, is an upstream source of Red Hat Enterprise Linux (RHEL). As a result, it is an incredibly robust Linux distribution, with a core that is “battle-tested” for enterprise use.&lt;/p&gt;

&lt;p&gt;Major Fedora releases occur every six months, which tend to include the “latest and greatest” updates, covering the Linux Kernal and software dependencies. Fedora is passionate about open-source software, therefore does not come pre-installed with any proprietary software. This is a great philosophy but can be a pain when looking to use hardware that does not include open-source drivers (e.g. NVIDIA graphics, etc.)&lt;/p&gt;

&lt;p&gt;As a result, Fedora delivers a very “pure” Linux experience, with minimal shell customisations (unlike COSMIC with Pop!_OS).&lt;/p&gt;

&lt;p&gt;If you are looking for a rock-solid Linux distribution that focuses on cutting edge features and open-source software, Fedora is a great choice.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;That’s it! Depending on your requirements, I believe these three Linux distributions represent the very best available. If I had to select one, &lt;a href=&quot;/2021/08/20/Pop-OS-Setup/&quot;&gt;I would go with Pop!_OS, which delivered a great balance of performance, reliability and compatbility&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 05 Sep 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/09/05/Linux-Distributions/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/09/05/Linux-Distributions/</guid>
      </item>
    
      <item>
        <title>GMS2 Xbox Development</title>
        <description>&lt;p&gt;Since March, I have been building a platformer game called &lt;a href=&quot;/ninjacaves&quot;&gt;Ninja Caves&lt;/a&gt; for my son using &lt;a href=&quot;/2017/03/09/gamemaker-studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;. I have documented my progress across a series of articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/03/18/30-Days-of-Code/&quot;&gt;30 Days of Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/05/30-Days-of-Code-Update/&quot;&gt;30 Days of Code - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/28/30-Days-of-Code-MVP/&quot;&gt;30 Days of Code - MVP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/05/30/Ninja-Caves/&quot;&gt;Ninja Caves&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/06/13/Ninja-Caves-Update-One/&quot;&gt;Ninja Caves - Update One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/07/06/Ninja-Caves-Release/&quot;&gt;Ninja Caves - Release&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/08/05/Ninja-Caves-Update-Two/&quot;&gt;Ninja Caves - Update Two&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The game is currently available for &lt;a href=&quot;/downloads/ninjacaves/win/NinjaCaves.zip&quot;&gt;Windows&lt;/a&gt;, &lt;a href=&quot;/downloads/ninjacaves/macos/NinjaCaves.zip&quot;&gt;macOS&lt;/a&gt;, and &lt;a href=&quot;https://apps.apple.com/us/app/ninja-caves/id1574836125&quot;&gt;iPadOS&lt;/a&gt;. However, following the recent &lt;a href=&quot;/2021/08/06/GameMaker-Studio-2-Linux/&quot;&gt;GameMaker Studio 2 license changes&lt;/a&gt;, I had the opportunity to export the game for the &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide&quot;&gt;Universal Windows Platform (UWP)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Universal Windows Platform targets a common API on all devices that run Windows 10 and can be distributed via a unified app store, covering PC, Xbox, &lt;a href=&quot;/2020/07/20/holo-lens-2/&quot;&gt;HoloLens&lt;/a&gt;, Surface Hub, etc. Therefore, in theory, I should be able to export my game as a Universal Windows Platform app and have it run natively on an Xbox.&lt;/p&gt;

&lt;p&gt;To get started, the following four prerequisites must be met:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.yoyogames.com/&quot;&gt;GameMaker Studio 2&lt;/a&gt; running on Windows 10 (Free)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.yoyogames.com/en/get#comparison&quot;&gt;GameMaker Studio 2 Indie License&lt;/a&gt; (£7.19)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://visualstudio.microsoft.com/vs/community/&quot;&gt;Visual Studio Community Edition&lt;/a&gt; (Free)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.xbox.com/developers/creators-program&quot;&gt;Xbox Creators Program License&lt;/a&gt; (£14.40)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The GameMaker Studio 2 Indie License grants access to export to the Universal Windows Platform. The license is paid monthly but is only required at the point of export (development is free).&lt;/p&gt;

&lt;p&gt;The Xbox Creators Program allows developers to self-publish games for Xbox (including Xbox Series S and Xbox Series X) via a simplified certification process. This is a great path for independent developers, learning, education, etc.&lt;/p&gt;

&lt;p&gt;The program also supports the use of a consumer Xbox to be used for development via the “&lt;a href=&quot;https://docs.microsoft.com/en-us/windows/uwp/xbox-apps/devkit-activation&quot;&gt;Xbox Developer Mode&lt;/a&gt;”, removing the need to acquire a dedicated Xbox development kit.&lt;/p&gt;

&lt;p&gt;Once the prerequisites have been met, &lt;a href=&quot;https://help.yoyogames.com/hc/en-us/articles/115001100548-Setting-Up-UWP-For-Windows-10-Desktop&quot;&gt;GameMaker Studio 2 can be configured to compile the game source code as a Universal Windows Platform app&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This process requires Visual Studio (not Visual Studio Code), with the “Universal Windows Platform Development” workload and the “v142 tools” component to be installed.&lt;/p&gt;

&lt;p&gt;The linked guide provides an excellent overview of the setup process but does not include the locations for Visual Studio Community 2019.&lt;/p&gt;

&lt;p&gt;If you are using Visual Studio Community 2019 on Windows 10, open GameMaker Studio 2 and select “File &amp;gt; Preferences &amp;gt; Platform Settings &amp;gt; Windows UWP”. Set the following locations:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Visual Studio Location:&lt;/strong&gt; C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Win UWP Tools Location:&lt;/strong&gt; C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;NOTE: These locations might be different depending on your version of Windows and Visual Studio.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With these locations configured, the rest of the guide should work without issue, covering the enablement of “Windows 10 Developer Mode”, as well as the setup and registration of the “&lt;a href=&quot;https://docs.microsoft.com/en-us/windows/uwp/debug-test-perf/device-portal-desktop#set-up-device-portal-on-windows-desktop&quot;&gt;Device Portal for Desktop&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;You should now be able to run/export your game from GameMaker Studio 2 as a Universal Windows Platform app.&lt;/p&gt;

&lt;p&gt;If you want to test on Xbox hardware, you will need to acquire a consumer console and enable “Developer Mode”. This is a simple process, which does not void your warranty and can be switched on-demand (between developer and retail).&lt;/p&gt;

&lt;p&gt;With developer mode enabled, any compatible Universal Windows Platform app can be transferred to the console and executed. This can be achieved via a network transfer using the Developer Portal.&lt;/p&gt;

&lt;p&gt;The photo below highlights Ninja Caves running as a Universal Windows Platform app on an Xbox One Digital Edition. I have “Picture-in-Picture” mode enabled on my monitor, therefore the left side is showing my Windows 10 development environment, with the right side showing ninja Caves running on the Xbox One.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/gms2xboxdevelopment01.jpg&quot; alt=&quot;Ninja Caves Console&quot; title=&quot;Ninja Caves Console&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ninja Caves runs well on the Xbox One, although I did notice a few minor input bugs and sub-optimal performance. Recognising that I did not optimise the code for this platform, I am impressed with the results of the default export.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/gms2xboxdevelopment02.jpg&quot; alt=&quot;Ninja Caves Console&quot; title=&quot;Ninja Caves Console&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As I continue the development of Ninja Caves, I may look to release the game on the Windows Store as a Universal Windows Platform app.&lt;/p&gt;
</description>
        <pubDate>Thu, 02 Sep 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/09/02/GMS2-Xbox-Development/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/09/02/GMS2-Xbox-Development/</guid>
      </item>
    
      <item>
        <title>Manjaro Full Disk Encryption</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://manjaro.org/&quot;&gt;Manjaro&lt;/a&gt; is a great Linux distribution, delivering an opinionated &lt;a href=&quot;https://archlinux.org/&quot;&gt;Arch Linux&lt;/a&gt; experience that simplifies the setup and daily management.&lt;/p&gt;

&lt;p&gt;One frustration, unlike Debian-based Linux distributions (e.g. &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;, &lt;a href=&quot;https://pop.system76.com/&quot;&gt;Pop!_OS&lt;/a&gt;), there is no “one-click” option to enable full disk encryption as part of the initial setup.&lt;/p&gt;

&lt;p&gt;In 2021, I consider full disk encryption a foundational requirement, especially with modern hardware-accelerated encryption that mitigates any historical performance impact.&lt;/p&gt;

&lt;p&gt;Thankfully, there is a workaround for Manjaro. It is not perfect, but certainly better than no encryption.&lt;/p&gt;

&lt;p&gt;The approach is to manually partition the disk to include a small unencrypted boot partition. This partition is only used to boot the operating system, with all other partitions (storing the operating system, data and swap) being fully encrypted.&lt;/p&gt;

&lt;p&gt;As part of the Manjaro setup process, when using the default installer, select “Manual Partitioning” from “Partitions”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/manjaro01.jpg&quot; alt=&quot;Manjaro Full Disk Encryption&quot; title=&quot;Manjaro Full Disk Encryption&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Delete all existing partitions and configure the following.&lt;/p&gt;

&lt;h4 id=&quot;partition-1&quot;&gt;Partition 1&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Size: Minimum 300MB (Recommened 2GB)&lt;/li&gt;
  &lt;li&gt;File System: fat32&lt;/li&gt;
  &lt;li&gt;Mount Point: /boot/efi&lt;/li&gt;
  &lt;li&gt;Flags: boot&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;partition-2&quot;&gt;Partition 2&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Size: System RAM + 5%&lt;/li&gt;
  &lt;li&gt;File System: linuxswap + Encryption (luks)&lt;/li&gt;
  &lt;li&gt;Mount Point:&lt;/li&gt;
  &lt;li&gt;Flags: swap&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;partition-3&quot;&gt;Partition 3&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Size: Remaining Available Space&lt;/li&gt;
  &lt;li&gt;File System: ext4 + Encryption (luks)&lt;/li&gt;
  &lt;li&gt;Mount Point: /&lt;/li&gt;
  &lt;li&gt;Flags: root&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The SWAP partition is optional but recommended. If you plan to use hibernation, ensure you allocate enough capacity to cover your system memory, including a 5% buffer. For example, my system has 64GB RAM, therefore I allocate 70GB for SWAP.&lt;/p&gt;

&lt;p&gt;The Linux Unified Key Setup (LUKS) is a platform-independent disk encryption specification, which is why any encrypted partition will show as “LUKS” instead of the chosen filesystem (e.g. EXT4).&lt;/p&gt;

&lt;p&gt;LUKS is a fully open-source tool that has been the standard for disk encryption in Linux environments for many years. It sits in the kernel layer and encrypts storage at a disk block level, allowing for the transparent deployment of any file system.&lt;/p&gt;

&lt;p&gt;Once configured, Manjaro will install as normal. Following a cold boot, the GRand Unified Bootloader (GRUB) will prompt for the disk encryption password.&lt;/p&gt;

&lt;p&gt;Assuming the password is accepted the encrypted partitions will be opened and the Linux kernel will load as normal.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/manjaro02.jpg&quot; alt=&quot;Manjaro Full Disk Encryption&quot; title=&quot;Manjaro Full Disk Encryption&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There are three minor challenges with this approach.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;As the encryption password is requested by GRUB, before the operating system, any user-defined keyboard preferences are not loaded. Therefore, if your password includes special characters, you must know their location on a default US QWERTY keyboard.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Cold boot performance is slow, taking up to 30 seconds to accept the encryption password and open the encrypted partitions. Thankfully, this is only the case with a cold boot, which feels like a small price for encryption.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;GRUB is not sophisticated when requesting the password. If the password is entered incorrectly, you must restart and try again.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hopefully, the Majaro team will improve the full disk encryption experience over time, delivering a one-click option as part of the initial setup that also covers the boot partition.&lt;/p&gt;
</description>
        <pubDate>Tue, 24 Aug 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/08/24/Manjaro-Manjaro-Full-Disk-Encryption/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/08/24/Manjaro-Manjaro-Full-Disk-Encryption/</guid>
      </item>
    
      <item>
        <title>Pop!_OS Setup</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2021/06/30/Pop-OS/&quot;&gt;I recently switch to Pop!_OS as my primary Linux distribution&lt;/a&gt;. So far, I have been impressed with the speed, reliability and user experience.&lt;/p&gt;

&lt;p&gt;In 2019, &lt;a href=&quot;/2019/11/02/fedora-31/&quot;&gt;I shared my setup process for Linux, at the time, Fedora 31&lt;/a&gt;. This article will follow a similar approach, focused on my setup process for &lt;a href=&quot;https://pop.system76.com/&quot;&gt;Pop!_OS 21.04&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once Pop!_OS is installed, I immediately run the following three terminal commands to confirm my &lt;a href=&quot;https://en.wikipedia.org/wiki/Linux_kernel_version_history&quot;&gt;Linux kernel version&lt;/a&gt;, as well as update and upgrade the software.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;uname -r

sudo apt-get update

sudo apt-get upgrade
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
To help track ongoing system information I install &lt;a href=&quot;https://github.com/dylanaraps/neofetch&quot;&gt;Neofetch&lt;/a&gt; using the following terminal commands. Neofetch displays information about the operating system, software and hardware. For example, you can track the number of installed software packages (Debian and Flatpak) and memory utilisation.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo add-apt-repository ppa:dawidd0811/neofetch

sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install neofetch
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
If an NVIDIA graphics card is installed, I use the following command to confirm the latest proprietary driver is installed.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nvidia-smi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
If required, update the driver from the “Pop!_Shop” by clicking the “Installed” tab. If a new driver is available, it should be shown in the list.&lt;/p&gt;

&lt;p&gt;When using a laptop with &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/technologies/optimus/technology/&quot;&gt;NVIDIA Optimus technology&lt;/a&gt;, I switch the operating system to “Hybrid Graphics” by selecting the “Battery” dropdown in the Top Bar. Enabling this setting will require a system restart, but should help balance battery life and performance.&lt;/p&gt;

&lt;p&gt;Once complete, I make a few changes to the desktop to suit my workflow. Thankfully, the Pop!_OS defaults are already well optimised, therefore I do not install any third-party extensions, etc.&lt;/p&gt;

&lt;p&gt;In “Settings”, I configure the following options. Any option not specified is left default:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Desktop &amp;gt; General &amp;gt; Super Key Action = Workspaces&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; General &amp;gt; Top Bar &amp;gt; Show Workspace Button = Off&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; General &amp;gt; Top Bar &amp;gt; Show Applications Button = Off&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; Appearence = Dark&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; Dock &amp;gt; Extend Dock = Off&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; Dock &amp;gt; Show Launcher = Off&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; Dock &amp;gt; Show Workspaces = Off&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; Dock &amp;gt; Dock Visibility &amp;gt; Alway Hide = On&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; Docker &amp;gt; Dock Size &amp;gt; Customer Size = 24&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; Position on the Desktop = Left&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; Workspaces = Fixed Number&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; Workspaces &amp;gt; Number of Workspaces = 2&lt;/li&gt;
  &lt;li&gt;Desktop &amp;gt; Workspaces &amp;gt; Placement of Workspace Picker = Right&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With the Pop!_OS desktop configured to suit my workflow, I start installing software. The following steps include the installation process for &lt;a href=&quot;/2020/11/20/software-list-2020/&quot;&gt;my common software&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Open a browser (e.g. &lt;a href=&quot;https://www.mozilla.org/&quot;&gt;Firefox&lt;/a&gt;) and download the following Debian (.deb) packages. Alternatively, add the relevant repositories via the terminal.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://ulauncher.io/&quot;&gt;Ulauncher&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.com/chrome/&quot;&gt;Google Chrome&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dropbox.com/install-linux&quot;&gt;Dropbox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/microsoft-teams/download-app&quot;&gt;Microsoft Teams&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Automattic/simplenote-electron/releases/&quot;&gt;SimpleNote&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://support.1password.com/install-linux/&quot;&gt;1Password&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.yoyogames.com/en/get&quot;&gt;GameMaker Studio 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Assuming the installers were downloaded, open the terminal and navigate to the “Downloads” folder. Install each application individually using the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get install ./&amp;lt;Installer Filename&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once complete, open the “Pop!_Shop” and install the following applications. Where available, I select the native “Pop!_OS (deb)” package. &lt;a href=&quot;/2019/09/22/flatpak-and-snappy/&quot;&gt;Flatpak&lt;/a&gt; is a great package manager, but not always as tightly optimised for the specific Linux distribution.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Microsoft Visual Studio Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://slack.com/&quot;&gt;Slack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/phw/peek&quot;&gt;Peek&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.audacityteam.org/&quot;&gt;Audacity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blender.org/&quot;&gt;Blender&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://handbrake.fr/&quot;&gt;Handbrake&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://krita.org/&quot;&gt;Krita&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://store.steampowered.com/&quot;&gt;Steam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lutris.net/&quot;&gt;Lutris&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.openshot.org/&quot;&gt;OpenShot Video Editor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.videolan.org/&quot;&gt;VLC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://obsproject.com/&quot;&gt;OBS Studio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://flathub.org/apps/details/com.github.gijsgoudzwaard.image-optimizer&quot;&gt;Image Optimizer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I now install any application that is not available from within the “Pop!_Shop”, starting with &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;. Open the terminal and run the following commands.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get update

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
&quot;deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Alongside Docker, I also install &lt;a href=&quot;https://docs.docker.com/compose/&quot;&gt;Docker Compose&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo curl -L &quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&quot; -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once complete, I install &lt;a href=&quot;https://www.vmware.com/uk/products/workstation-player/&quot;&gt;VMware Workstation Player&lt;/a&gt;, which is my preference when running local virtual machines (e.g. Windows, etc.)&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get update

sudo apt install build-essential

wget --user-agent=&quot;Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0&quot; https://www.vmware.com/go/getplayer-linux

chmod +x getplayer-linux

sudo ./getplayer-linux --required --eulas-agreed
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Finally, I run the following commands to enable the embedded firewall and install/enable restricted formats (DVD, MP3, QuickTime) as well as Microsoft Core and ClearType fonts.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo ufw enable

sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install ubuntu-restricted-extras

sudo add-apt-repository multiverse

sudo apt update &amp;amp;&amp;amp; sudo apt install ttf-mscorefonts-installer

wget https://gist.github.com/maxwelleite/10774746/raw/ttf-vista-fonts-installer.sh -q -O - | sudo bash

wget https://gist.githubusercontent.com/maxwelleite/913b6775e4e408daa904566eb375b090/raw/cbfd8eb70184fa509fcab37dad7905676c93d587/ttf-ms-tahoma-installer.sh -q -O - | sudo bash

sudo fc-cache -f -v
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
With all my software installed, I start each application and complete any required setup process.&lt;/p&gt;

&lt;p&gt;I usually start with 1Password, followed by any application that requires data to be downloaded (e.g. Dropbox). The majority of applications will automatically detect the operating system theme, if not, manually select “dark” mode from the application preferences/settings/options.&lt;/p&gt;

&lt;p&gt;To enhance Ulauncher, I add the “&lt;a href=&quot;https://ext.ulauncher.io/-/github-brpaz-ulauncher-file-search&quot;&gt;File Search&lt;/a&gt;” and “&lt;a href=&quot;https://ext.ulauncher.io/-/github-iboyperson-ulauncher-system&quot;&gt;System&lt;/a&gt;” extensions. This can be done from “Ulauncher Settings”, specifically the “Extensions” tab.&lt;/p&gt;

&lt;p&gt;To conclude, I download the latest &lt;a href=&quot;https://www.microsoft.com/en-gb/software-download/windows11&quot;&gt;Windows ISO&lt;/a&gt; and create a local Windows virtual machine using VMware Workstation Player. The only application I install in the virtual machine is &lt;a href=&quot;https://www.office.com/&quot;&gt;Microsoft Office&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With these steps complete, I run one final update and upgrade.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get update

sudo apt-get upgrade
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Pop!_OS is now ready for action! Enjoy!!!&lt;/p&gt;
</description>
        <pubDate>Fri, 20 Aug 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/08/20/Pop-OS-Setup/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/08/20/Pop-OS-Setup/</guid>
      </item>
    
      <item>
        <title>Proton - The Trojan Horse</title>
        <description>&lt;p&gt;Last month, &lt;a href=&quot;https://www.valvesoftware.com/&quot;&gt;Valve&lt;/a&gt; announced the &lt;a href=&quot;https://store.steampowered.com/steamdeck&quot;&gt;Steam Deck&lt;/a&gt;, a new handheld gaming computer that is set to be released in December 2021.&lt;/p&gt;

&lt;p&gt;The hardware itself has generated a lot of interest from the community, driven by the modern AMD Zen 2 / RDNA 2 architecture and the “open” nature of the platform, which is essentially a PC with an integrated controller.&lt;/p&gt;

&lt;p&gt;I do not plan to cover the hardware specification in this article, which has been thoroughly covered by the usual suspects (&lt;a href=&quot;https://www.ign.com/articles/steam-deck-hands-on-impressions-details-valve-handheld-gaming-pc&quot;&gt;IGN&lt;/a&gt;, &lt;a href=&quot;https://www.eurogamer.net/articles/digitalfoundry-2021-valve-steam-deck-spec-analysis&quot;&gt;Digital Foundry&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;p&gt;With that said, I would recommend watching the &lt;a href=&quot;https://www.youtube.com/user/linustechtips&quot;&gt;Linus Tech Tips&lt;/a&gt; video (embedded below), which is a fun “rapid-fire” hands-on of the hardware and software.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/SElZABp5M3U?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Although I am always excited about the release of new hardware, it is the software direction that has me most intrigued.&lt;/p&gt;

&lt;p&gt;It is well known that Valve has a love/hate relationship with Microsoft. In 2012, Gabe Newell (Valve CEO) publically expresses his frustration and concern regarding the direction Microsoft was taking the Windows ecosystem, essentially creating a “walled garden”.&lt;/p&gt;

&lt;p&gt;As a result, Valve has been slowly increasing its commitment to Linux, with the release of Steam Client for Linux, SteamOS (Linux-based), Steam Machines, etc. They have also contributed to several open-source projects focused on Linux software compatibility.&lt;/p&gt;

&lt;p&gt;Although not restricted to a specific operating system, the Steam Deck will ship with a new version of SteamOS, which is a modified version of &lt;a href=&quot;https://archlinux.org/&quot;&gt;Arch Linux&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To ensure compatibility, Valve has made some bold claims regarding &lt;a href=&quot;https://github.com/ValveSoftware/Proton&quot;&gt;Proton&lt;/a&gt;, which is an open-source project developed by Valve and &lt;a href=&quot;https://www.codeweavers.com/&quot;&gt;CodeWeavers&lt;/a&gt; that provides a Linux compatibility layer for Windows games.&lt;/p&gt;

&lt;p&gt;Proton is a fork of the popular &lt;a href=&quot;https://www.winehq.org/&quot;&gt;Wine&lt;/a&gt; compatibility layer, which was first introduced in 1993. The name Wine stands for “Wine Is Not an Emulator”, which is an important distinction, as it aims to translate (not emulate) Windows API calls into native POSIX calls. This approach eliminates the performance and memory penalties of methods such as emulation and virtualisation.&lt;/p&gt;

&lt;p&gt;Proton focuses on graphics APIs, achieved via Direct3D-to-Vulkan translation layers, specifically &lt;a href=&quot;https://github.com/doitsujin/dxvk&quot;&gt;DXVK&lt;/a&gt; for Direct3D 9, 10, 11 and &lt;a href=&quot;https://github.com/HansKristian-Work/vkd3d-proton&quot;&gt;VKD3D&lt;/a&gt; for Direct3D 12. The goal is to deliver compatibility and (where possible) native performance.&lt;/p&gt;

&lt;p&gt;The video embedded below from &lt;a href=&quot;https://www.youtube.com/c/GloriouseggrollTv/&quot;&gt;Tom (GloriousEggroll)&lt;/a&gt; provides a great overview of how proton works, including the key components and game examples.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/K9khdYpMI5s?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;In 2018, Valve integrated Proton into the Steam client, known as “Steam Play”. The results are impressive, but not perfect. For example, many games run poorly or fail to run at all. The website &lt;a href=&quot;https://www.protondb.com/&quot;&gt;ProtonDB&lt;/a&gt; tracks compatibility across 19,000+ games, with 15,000+ reported as working.&lt;/p&gt;

&lt;p&gt;However, as part of the Steam Deck announcement, Valve has stated its intent to achieve 100% compatibility of the entire Steam Library ahead of the Steam Deck launch in December 2021.&lt;/p&gt;

&lt;p&gt;This is a highly ambitious outcome, but not without precedent, knowing that Valve has been actively exploring this space since 2012.&lt;/p&gt;

&lt;p&gt;Assuming success (or 90%+), Proton could help re-position Linux as a first-class operating system for gaming, with the Steam Deck acting as a trojan horse to showcase the possibilities.&lt;/p&gt;

&lt;p&gt;The ramifications could be profound, further reducing the reliance on Microsoft Windows, which would be a win for hardware vendors and consumers, recognising the free and open-source nature of Linux, as well as the inherent privacy and security benefits.&lt;/p&gt;

&lt;p&gt;In conclusion, I am eager to see the Steam Deck succeed, not because of the great hardware, but what it could mean for the software ecosystem. considering the history, it is also safe to assume that Valve has a similar ambition, providing unrestricted access to their Steam digital distribution service.&lt;/p&gt;
</description>
        <pubDate>Sat, 07 Aug 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/08/07/Proton-The-Trojan-Horse/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/08/07/Proton-The-Trojan-Horse/</guid>
      </item>
    
      <item>
        <title>GameMaker Studio 2 Linux</title>
        <description>&lt;p&gt;As a hobbyist independent game developer, I am a long-time user of the Game Creation System (GCS) &lt;a href=&quot;/2017/03/09/gamemaker-studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt; by &lt;a href=&quot;https://www.yoyogames.com/en&quot;&gt;YoYo Games&lt;/a&gt; (owned by &lt;a href=&quot;https://www.opera.com/&quot;&gt;Opera&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;GameMaker Studio 2 targets 2D games, which means it is not as versatile as other popular game engines such as &lt;a href=&quot;https://www.unrealengine.com/&quot;&gt;Unreal Engine&lt;/a&gt;, &lt;a href=&quot;https://unity.com/&quot;&gt;Unity&lt;/a&gt;, or &lt;a href=&quot;https://godotengine.org/&quot;&gt;Godot&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;However, it is very beginner-friendly and includes excellent multi-platform publishing support, making it a great choice for anyone looking to create platformer or top-down games, such as shooters, role-playing, racers, Metroidvania, bullet hell, etc. It is also great for prototyping, thanks to the highly accessible, integrated workflow.&lt;/p&gt;

&lt;p&gt;As an example, I am currently working on a 2D platformer called &lt;a href=&quot;/ninjacaves&quot;&gt;Ninja Caves&lt;/a&gt;, developed for my son (six years old). The game is inspired by &lt;a href=&quot;https://3drealms.com/catalog/crystal-caves_7/&quot;&gt;Crystal Caves&lt;/a&gt; and is available for &lt;a href=&quot;/downloads/ninjacaves/win/NinjaCaves.zip&quot;&gt;Windows&lt;/a&gt;, &lt;a href=&quot;/downloads/ninjacaves/macos/NinjaCaves.zip&quot;&gt;macOS&lt;/a&gt; and &lt;a href=&quot;https://apps.apple.com/us/app/ninja-caves/id1574836125&quot;&gt;iPadOS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have documented the development process in the following articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/03/18/30-Days-of-Code/&quot;&gt;30 Days of Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/05/30-Days-of-Code-Update/&quot;&gt;30 Days of Code - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/28/30-Days-of-Code-MVP/&quot;&gt;30 Days of Code - MVP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/05/30/Ninja-Caves/&quot;&gt;Ninja Caves&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/06/13/Ninja-Caves-Update-One/&quot;&gt;Ninja Caves - Update One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/07/06/Ninja-Caves-Release/&quot;&gt;Ninja Caves - Release&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although GameMaker Studio 2 can publish games for Linux, the IDE has historically been restricted to Windows and macOS.&lt;/p&gt;

&lt;p&gt;Earlier today, &lt;a href=&quot;https://forum.yoyogames.com/index.php?threads/2-3-4-beta-release.88083/&quot;&gt;YoYo Games announced the release of GameMaker Studio 2 (Beta) for Ubuntu&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I was personally excited by this announcement, as it takes me one step closer to my platform-agnostic (e.g. Windows, macOS, Linux) goal for &lt;a href=&quot;/2020/11/20/software-list-2020/&quot;&gt;my common software library&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At this time, YoYo Games are only offering a Debian Linux package, with support for Ubuntu. However, as &lt;a href=&quot;/2021/06/30/Pop-OS/&quot;&gt;I recently switched to Pop!_OS as my primary Linux distribution&lt;/a&gt;, which is Ubuntu-based, the package should be compatible.&lt;/p&gt;

&lt;p&gt;I am pleased to report the installation was completed successfully, with no errors or warnings. Although I did need to download the package from the &lt;a href=&quot;https://forum.yoyogames.com/&quot;&gt;GameMaker Studio Community&lt;/a&gt; forum via Firefox, as it refused to download using Chrome.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/gms2linux01.jpg&quot; alt=&quot;GMS2 Linux&quot; title=&quot;GMS2 Linux&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the latest runtime installed (v23.1.1.329), I loaded my active project, &lt;a href=&quot;/ninjacaves&quot;&gt;Ninja Caves&lt;/a&gt;. The source code for Ninja Caves can be found on &lt;a href=&quot;https://github.com/mswbull/masonPlatformer&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/gms2linux02.jpg&quot; alt=&quot;GMS2 Linux&quot; title=&quot;GMS2 Linux&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I would position Ninja Caves as a “medium complexity” project, targeting multiple platforms (Windows, macOS, Linux, iPadOS, tvOS), with two primary input mechanisms (keyboard/mouse and controller).&lt;/p&gt;

&lt;p&gt;Ninja Caves includes a wide range of custom assets, specifically Fonts, Objects, Rooms, Scripts, Shaders, Sounds, Sprites, and Tile Sets. All assets are present and correct on the Linux build, with no obvious bugs or limitations.&lt;/p&gt;

&lt;p&gt;Ninja Caves also incorporates &lt;a href=&quot;https://www.yoyogames.com/en/blog/get-started-with-particles-in-gamemaker-studio-2&quot;&gt;particles&lt;/a&gt; and GPU controller functions, specifically &lt;a href=&quot;https://manual.yoyogames.com/Additional_Information/Guide_To_Using_Blendmodes.htm&quot;&gt;extended blend modes&lt;/a&gt; to enable “baked lighting” across the levels. These features can be temperamental when working across multiple platforms, but I am pleased to report that they appear to be working as designed within the IDE and the VM (interpreted code).&lt;/p&gt;

&lt;p&gt;The only issue I have identified (so far) relates to the embedded debugger, which currently fails to run. The debugging overlay itself launches, but the game runner fails to load. If I build the game outside of the debugger, everything works as designed.&lt;/p&gt;

&lt;p&gt;Finally, although I have not objectively tested the performance of the IDE or build process, it “feels” responsive. Similar to what I experience on Windows and macOS. This is a great outcome, considering the pre-release nature of the build.&lt;/p&gt;

&lt;p&gt;In conclusion, the release of GameMaker Studio 2 for Linux, alongside the recent announcement from Valve regarding their Linux-powered Steam Deck, makes me excited about the future of gaming (and software in general) on Linux!&lt;/p&gt;

&lt;p&gt;I am not yet ready to declare this “the year of the Linux desktop”, but things are certainly trending in the right direction.&lt;/p&gt;

&lt;h4 id=&quot;update-10-aug-2021&quot;&gt;UPDATE (10-AUG-2021)&lt;/h4&gt;

&lt;p&gt;Earlier today, &lt;a href=&quot;https://www.yoyogames.com/en/blog/more-platforms-for-less&quot;&gt;YoYo Games announced&lt;/a&gt; an update to the GameMaker Studio 2 license model.&lt;/p&gt;

&lt;p&gt;In summary, they have removed the existing perpetual licensing options, replacing them with a three-tier subscription model (monthly or annual).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Free (£0 pm)&lt;/strong&gt; - Develop games with no restrictions, but cannot publish/export.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Indie (£7.19 pm)&lt;/strong&gt; - Develop games with no restrictions, publish/export to Desktop, Mobile, Web, and UWP.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Enterprise (£62.99 pm)&lt;/strong&gt; - Develop games with no restrictions, publish/export to Console, Desktop, Web, Mobile, Web, and UWP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ordinarily, I would be nervous about any switch to subscription-based licensing. However, knowing that the base tier is free and unrestricted for development, provides a lot of flexibility. For example, a license is only required to publish/export a game, which for many hobbyist/independent developers could be covered by a single month.&lt;/p&gt;

&lt;p&gt;As with any change of this type, I am sure YoYo Games will receive a lot of community feedback, therefore, I would recommend keeping an eye on the following channels.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.yoyogames.com/en/blog/more-platforms-for-less&quot;&gt;YoYo Games Annoucements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://help.yoyogames.com/hc/en-us/articles/115002637011-Which-Licence-Is-Right-For-Me-&quot;&gt;Subscription Information&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://help.yoyogames.com/hc/en-us/articles/4405059050001-Subscriptions-FAQ&quot;&gt;Frequently Asked Questions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://forum.yoyogames.com/index.php?threads/new-more-affordable-pricing-for-sharing-and-publishing-games.88217/&quot;&gt;Community Forum&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, it is worth noting that anyone with a perpetual license (like me) will retain that license for the life of GameMaker Studio 2, even if you decide to “upgrade” or purchase a new subscription license.&lt;/p&gt;

&lt;p&gt;YoYo Games are also offering incentives to licence holders, allowing for multi-month trials of the new subscriptions tiers. For example, I have a free six-month trial for Enterprise, which unlocks the ability to publish/export for consoles.&lt;/p&gt;
</description>
        <pubDate>Fri, 06 Aug 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/08/06/GameMaker-Studio-2-Linux/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/08/06/GameMaker-Studio-2-Linux/</guid>
      </item>
    
      <item>
        <title>Ninja Caves - Update Two</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Ninja Caves is no longer maintained. As a result, the Apple App Store (iPadOS) version has been retired. The Windows and macOS versions are still available for download, but they may not work correctly with modern hardware/software.&lt;/p&gt;

&lt;p&gt;Since March, I have been building a platformer game for my son (six years old), inspired by &lt;a href=&quot;https://en.wikipedia.org/wiki/Crystal_Caves&quot;&gt;Crystal Caves&lt;/a&gt;, using &lt;a href=&quot;/2017/03/09/gamemaker-studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have been documenting my progress across a series of articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/03/18/30-Days-of-Code/&quot;&gt;30 Days of Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/05/30-Days-of-Code-Update/&quot;&gt;30 Days of Code - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/28/30-Days-of-Code-MVP/&quot;&gt;30 Days of Code - MVP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/05/30/Ninja-Caves/&quot;&gt;Ninja Caves&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/06/13/Ninja-Caves-Update-One/&quot;&gt;Ninja Caves - Update One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/07/06/Ninja-Caves-Release/&quot;&gt;Ninja Caves - Release&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today I released version 1.0.7 across for &lt;a href=&quot;/downloads/ninjacaves/win/NinjaCaves.zip&quot;&gt;Windows&lt;/a&gt;, &lt;a href=&quot;/downloads/ninjacaves/macos/NinjaCaves.zip&quot;&gt;macOS&lt;/a&gt; and &lt;a href=&quot;https://apps.apple.com/us/app/ninja-caves/id1574836125&quot;&gt;iPadOS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The release includes new levels, features and bug fixes. The video below highlights a recent playtest, providing an insight into the first seven levels, including some of the new features.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Ub0DFc2WAkY?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I have outlined some of the new features below, which continue to be inspired by legendary platformer games from the past.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Abilities:&lt;/strong&gt; New abilities, which can be collected on specific levels and last for the duration of the level. For example, super jump and glide, which provide new methods to navigate the terrain.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Equipment:&lt;/strong&gt; The player can now equip a torch instead of the Ninja Stars, which can be used to light dark areas. The torch is connected to the right analogue stick and/or mouse, allowing the light to be directed.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Explosives:&lt;/strong&gt; New obstacles (rocks), which cannot be destroyed using the Ninja Stars. However, dynamite can be used to destroy the objects via a TNT blasting machine (like from Looney Toons).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Weather:&lt;/strong&gt; New weather effects, including fog and wind. The fog appears close to the ground, with subtle movement, while the wind blows horizontally across the entire level. The weather effects do not (currently) have an impact on the gameplay, but add to the atmosphere of the game.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The weather effects use the game engines embedded &lt;a href=&quot;https://www.yoyogames.com/en/blog/get-started-with-particles-in-gamemaker-studio-2&quot;&gt;particle system&lt;/a&gt;, which enabled a surprisingly simple implementation, requiring only two custom events.&lt;/p&gt;

&lt;p&gt;The code below was taken from the “create” event, defining the parameters of the required particle effect.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;time = 30;
alarm[0] = time;

particle_system = part_system_create();

particle_fog = part_type_create();

part_type_shape(particle_fog, pt_shape_cloud);
part_type_size(particle_fog, 1, 1, 0, 0);
part_type_direction(particle_fog, 180, 180, 0, 0);
part_type_speed(particle_fog, 0.01, 0.02, 0, 0);
part_type_alpha3(particle_fog, 0.03, 0.1, 0.03);
part_type_life(particle_fog, 240, 240);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The code below was taken from the “alarm” event, which triggers the particle effect.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alarm_set(0, time);

var camera_x = camera_get_view_x(view_camera[0]);
var camera_y = camera_get_view_y(view_camera[0]);

var camera_width = camera_get_view_width(view_camera[0]);
var camera_height = camera_get_view_height(view_camera[0]);

repeat(20) {
    var random_y = irandom_range(0, 200);
    var random_x = irandom_range(0, camera_width);

    part_particles_create(particle_system, camera_x + random_x, camera_y + camera_height - random_y, particle_fog, 1);
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Based on my current implementation, the in-game effect is subtle but provides the foundation for more impressive particle effects in the future.&lt;/p&gt;

&lt;p&gt;The photo below is of my son and daughter playtesting the new levels and features.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ninjacaves05.jpg&quot; alt=&quot;Ninja Caves&quot; title=&quot;Ninja Caves&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In an upcoming release, I plan to overhaul the menu system, recognising my current implementation is very rudimentary.&lt;/p&gt;
</description>
        <pubDate>Thu, 05 Aug 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/08/05/Ninja-Caves-Update-Two/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/08/05/Ninja-Caves-Update-Two/</guid>
      </item>
    
      <item>
        <title>Infrastructure-as-Code</title>
        <description>&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2021/10/08/devops-enterprise-forum/&quot;&gt;DevOps @ Enterprise Forum&lt;/a&gt;” for additional details.&lt;/p&gt;

&lt;p&gt;On the 8th October, I will be presenting at the &lt;a href=&quot;https://devopsforum.pl/&quot;&gt;DevOps @ Enterprise Forum&lt;/a&gt; in Poland.&lt;/p&gt;

&lt;p&gt;The conference agenda includes examples of industries and companies that have successfully implemented DevOps, as well as sessions to collaberate with peers.&lt;/p&gt;

&lt;p&gt;I have been asked to present on the topic of Infrastructure-as-Code.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://devopsforum.pl/&quot;&gt;&lt;img src=&quot;/images/posts/devopsenterpriseforum01.jpg&quot; alt=&quot;DevOps Enterprise Forum&quot; title=&quot;DevOps Enterprise Forum&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The synopsis of my session can be found below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Over the past decade, there has been a heavy focus on the cloud. However, a cloud strategy alone is not enough to unlock business value… Automation plays a critical role, helping to streamline development and operations, improve the user experience, as well as guarantee security, quality, and privacy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In this session I will share insights from our DevOps / NoOps journey, with a focus on our automation strategy, specifically Infrastructure as Code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It has been over two years since I last presented at a conference, therefore I am looking forward to reconnecting with the community.&lt;/p&gt;
</description>
        <pubDate>Wed, 21 Jul 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/07/21/Infrastructure-as-Code/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/07/21/Infrastructure-as-Code/</guid>
      </item>
    
      <item>
        <title>APT Cheat Sheet</title>
        <description>&lt;p&gt;Advanced Package Tool (APT) is a package manager for Unix-like computer systems that facilitates the retrieval, configuration and installation of software packages. APT is used by Debian-based Linux distributions, such as &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;, &lt;a href=&quot;https://pop.system76.com/&quot;&gt;Pop!_OS&lt;/a&gt;, &lt;a href=&quot;https://linuxmint.com/&quot;&gt;Linux Mint&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;dpkg (Debian Package) is a low-level tool, at the base of the package management system. APT is a higher-level tool, which is more commonly used than dpkg as it can fetch packages from remote locations and automatically manage package dependencies, etc.&lt;/p&gt;

&lt;p&gt;I am most familiar with Dandified Yum (DNF), which is an alternative package manager for RPM packages. This is due to my history with Fedora, which uses DNF/RPM by default.&lt;/p&gt;

&lt;p&gt;However, in recent weeks, I have switched to &lt;a href=&quot;/2021/06/30/Pop-OS/&quot;&gt;Pop!_OS&lt;/a&gt;, which is Ubuntu-based and therefore uses APT.&lt;/p&gt;

&lt;p&gt;Similar to my “&lt;a href=&quot;/2017/05/01/dnf-cheat-sheet/&quot;&gt;DNF Cheat Sheet&lt;/a&gt;” article, the goal of this article is to highlight common APT commands (acting as a cheat sheet).&lt;/p&gt;

&lt;p&gt;Before proceeding, it is important to understand the difference between a repository and a package.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A repository containers packages.&lt;/li&gt;
  &lt;li&gt;A package contains an application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Repositories and packages simplify software distribution and installation.&lt;/p&gt;

&lt;h4 id=&quot;list-all-repositories&quot;&gt;List All Repositories&lt;/h4&gt;

&lt;p&gt;The following command will list all repositories checked by APT.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;apt-cache policy
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;list-all-packages&quot;&gt;List All Packages&lt;/h4&gt;

&lt;p&gt;The following command will list all packages from installed repositories.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;apt-cache pkgnames
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;list-installed-packages&quot;&gt;List Installed Packages&lt;/h4&gt;

&lt;p&gt;The following command will list all installed packages.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;apt list --installed
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;install-package&quot;&gt;Install Package&lt;/h4&gt;

&lt;p&gt;The following command will install a specific package.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get install &amp;lt;package-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;remove-package&quot;&gt;Remove Package&lt;/h4&gt;

&lt;p&gt;The following command will remove a specific package.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get remove &amp;lt;package-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;remove-package-and-configuration&quot;&gt;Remove Package and Configuration&lt;/h4&gt;

&lt;p&gt;The following command will remove a specific package and the related configuration.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get --purge remove &amp;lt;package-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;remove-orphen-packages&quot;&gt;Remove Orphen Packages&lt;/h4&gt;

&lt;p&gt;The following command will remove any packages that are no longer required.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get --purge autoremove
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;check-for-updates&quot;&gt;Check for Updates&lt;/h4&gt;

&lt;p&gt;The following command will update the list of available packages and their versions, but it does not install or upgrade any packages. The “update” command should be run before the “upgrade” command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get update
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;upgrade-all-packages&quot;&gt;Upgrade All Packages&lt;/h4&gt;

&lt;p&gt;The following command will upgrade installed packages. The “update” command should be run before the “upgrade” command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get upgrade
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;view-package-information&quot;&gt;View Package Information&lt;/h4&gt;

&lt;p&gt;The following command will show the details of a specific package.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;apt show &amp;lt;package&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Additional information regarding APT can be found on the &lt;a href=&quot;https://help.ubuntu.com/community/AptGet/Howto&quot;&gt;Ubuntu documentation&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Mon, 12 Jul 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/07/12/APT-Cheat-Sheet/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/07/12/APT-Cheat-Sheet/</guid>
      </item>
    
      <item>
        <title>Ninja Caves - Release</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Ninja Caves is no longer maintained. As a result, the Apple App Store (iPadOS) version has been retired. The Windows and macOS versions are still available for download, but they may not work correctly with modern hardware/software.&lt;/p&gt;

&lt;p&gt;Since March, I have been building a platformer game for my son (six years old), inspired by &lt;a href=&quot;https://3drealms.com/catalog/crystal-caves_7/&quot;&gt;Crystal Caves&lt;/a&gt;, using &lt;a href=&quot;/2017/03/09/gamemaker-studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have been documenting my progress across a series of articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/03/18/30-Days-of-Code/&quot;&gt;30 Days of Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/05/30-Days-of-Code-Update/&quot;&gt;30 Days of Code - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/28/30-Days-of-Code-MVP/&quot;&gt;30 Days of Code - MVP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/05/30/Ninja-Caves/&quot;&gt;Ninja Caves&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/06/13/Ninja-Caves-Update-One/&quot;&gt;Ninja Caves - Update One&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today we hit an important milestone… The Minimum Viable Product (MVP) release!&lt;/p&gt;

&lt;p&gt;The initial release is available for Windows and macOS and can be downloaded for free from LifeinTECH (links below). In the future, I plan to make the game available via &lt;a href=&quot;https://store.steampowered.com/&quot;&gt;Steam&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/downloads/ninjacaves/win/NinjaCaves.zip&quot;&gt;Ninja Caves - Windows&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/downloads/ninjacaves/macos/NinjaCaves.zip&quot;&gt;Ninja Caves - macOS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The code has not been signed (yet) by Microsoft or Apple, therefore users might receive a security warning at the first launch.&lt;/p&gt;

&lt;p&gt;I have also submitted Ninja Caves for release on Apple iPadOS (Apple tvOS planned in the future), but am currently waiting on the review process. The image below shows the Apple App Store Connect process.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ninjacaves03.jpg&quot; alt=&quot;Ninja Caves&quot; title=&quot;Ninja Caves&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The initial release includes the first four levels and is playable on Windows and macOS using the keyboard/mouse or controller. The game requires a controller on iPadOS (no virtual controller support, yet).&lt;/p&gt;

&lt;p&gt;The video below showcases the first four levels, with developer commentary highlighting some of the features and design decisions.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/DQ5HX2kOLkY?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;As previously stated, Ninja Caves was developed with (and for) my six-year-old son, therefore the difficulty has been balanced based on his skill set. Therefore, I have pitched the game for players new to the platform genre.&lt;/p&gt;

&lt;p&gt;Additional information regarding Ninja Caves, including the Privacy Policy, can be found linked below.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/ninjacaves&quot;&gt;Ninja Caves - Privacy Policy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to download the game, all feedback welcome. I hope you enjoy it!&lt;/p&gt;

&lt;h4 id=&quot;update-13-jul-2021&quot;&gt;UPDATE (13-JUL-2021)&lt;/h4&gt;

&lt;p&gt;Following a prolonged review process with Apple, I am pleased to report that Ninja Caves is now available for &lt;a href=&quot;https://apps.apple.com/us/app/ninja-caves/id1574836125&quot;&gt;iPadOS&lt;/a&gt; on the iOS App Store for free.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ninjacaves04.jpg&quot; alt=&quot;Ninja Caves&quot; title=&quot;Ninja Caves&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It is important to note that Ninja Caves requires an external (Bluetooth) controller. The game does not currently include a virtual controller.&lt;/p&gt;

&lt;p&gt;Over the coming months, I plan to add new features and levels. All will be made available for free (no ads or in-app purchases) on Windows, macOS, iPadOS and tvOS (coming soon).&lt;/p&gt;
</description>
        <pubDate>Tue, 06 Jul 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/07/06/Ninja-Caves-Release/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/07/06/Ninja-Caves-Release/</guid>
      </item>
    
      <item>
        <title>My Setup (Q3 2021)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Updated to include the 2021 MacBook Pro, released in October 2021.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;h3 id=&quot;home-setup&quot;&gt;Home Setup&lt;/h3&gt;

&lt;p&gt;At home, I switch between three devices (one desktop PC and two laptops).&lt;/p&gt;

&lt;p&gt;My daily driver is a custom-built desktop PC. It is primarily used for productivity, collaboration, software development, photo editing, virtual labs, gaming and game development (&lt;a href=&quot;/tag/platform_game/&quot;&gt;GameMaker Studio 2&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X570 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 3950X 3.5GHz Base / 4.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance LPX DDR4 PC4-28800C18 3600MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 980 Pro M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e 3.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 3090 FE 24GB GDDR6X&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;AMD Ryzen 3950X&lt;/a&gt;, &lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;Samsung 980 Pro&lt;/a&gt; and &lt;a href=&quot;/2021/02/08/GeForce-RTX-3090/&quot;&gt;Nvidia GeForce RTX 3090&lt;/a&gt; are premium components, delivering high-performance across a range of workloads (e.g. multi-threading, &lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;ray-tracing gaming&lt;/a&gt;, machine learning, video editing, etc.)&lt;/p&gt;

&lt;p&gt;When remote or travelling, my daily driver is a 16-inch Apple MacBook Pro (OCT-2021). Similar to my custom-build PC, it is primarily used for productivity, collaboration, software development, photo editing, video editing, virtual labs and game development.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;16-inch MacBook Pro (OCT-2021)&lt;/li&gt;
  &lt;li&gt;Apple M1 Max (10-core - 8 Performance / 2 Efficiency)&lt;/li&gt;
  &lt;li&gt;32-core GPU (10.4 Teraflops)&lt;/li&gt;
  &lt;li&gt;16-core Neural Engine&lt;/li&gt;
  &lt;li&gt;32GB Unified Memory (400GB/s Memory Bandwidth)&lt;/li&gt;
  &lt;li&gt;1TB SSD (7.4GB/s Read)&lt;/li&gt;
  &lt;li&gt;3x Thunderbolt 4, HDMI, 3.5mm Headphone, SDXC Card Reader, MagSafe 3&lt;/li&gt;
  &lt;li&gt;16.2-inch Liquid Retina XDR Display (3456x2234 @ 120Hz, 1600nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also have a secondary laptop, the Dell XPS 17 which runs Linux, specificlly &lt;a href=&quot;/2021/08/20/Pop-OS-Setup/&quot;&gt;Pop!_OS&lt;/a&gt;, but also hosts multiple virtual machines, covering Windows and other Linux Distributions.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Dell XPS 17 (9710)&lt;/li&gt;
  &lt;li&gt;Intel Core i9-11900HK 2.6GHz Base / 5.0GHz Boost (8C/16T)&lt;/li&gt;
  &lt;li&gt;64GB DDR4 3200MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB M.2 PCI-e NVM-e SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 750&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 3060 Ti 6GB GDDR6 (70W)&lt;/li&gt;
  &lt;li&gt;17-inch Touch Display (3840x2400, 500nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At home, the desktop PC and laptops connect to a &lt;a href=&quot;/2020/08/24/super-ultrawide/&quot;&gt;49-inch Super Ultra-Wide monitor, specifically the Samsung C49RG90&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The full specification of the monitor can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Model:&lt;/strong&gt; Samsung C49RG90&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Size:&lt;/strong&gt; 49-inch&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Type:&lt;/strong&gt; VA&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Curvature:&lt;/strong&gt; 1800R&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aspect Ratio:&lt;/strong&gt; 32:9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 5120x1440&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 120Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Variable Refresh Rate:&lt;/strong&gt; AMD FreeSync 2 (48-120Hz Range)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; 4ms (GTG)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Colour Accuracy:&lt;/strong&gt; 125% sRGB, 92% Adobe RGB, 95% DCI-P3&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;High Dynamic Range:&lt;/strong&gt; HDR1000&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 600cd/m2 (Typical), 1000cd/m2 (Peak)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is kept fairly minimal, the Dell XPS 17 and Apple MacBook Pro connect to the monitor directly (DisplayPort v1.4), with peripherals connecting via a &lt;a href=&quot;https://www.ugreen.com/products/5-in-1-usb-c-hub-with-4k-hdmi&quot;&gt;UGREEN 5-in-1 USB-C Hub&lt;/a&gt;, which simplifies the cable management.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup25.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, for peripherals, I primarily use the &lt;a href=&quot;https://www.keychron.com/products/keychron-k1-wireless-mechanical-keyboard&quot;&gt;Keychron K1 Version 4&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/products/mice/mx-master-3.910-005694.html&quot;&gt;Logitech MX Master 3&lt;/a&gt; and &lt;a href=&quot;https://www.logitech.com/products/webcams/brio-4k-hdr-webcam.960-001106.html&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt;. The keyboard and mouse were selected as they include “easy-switch”, which makes it simple to toggle between multiple Bluetooth devices.&lt;/p&gt;

&lt;p&gt;The photo also highlights my microphone setup, which is a &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeti/&quot;&gt;Blue Yeti&lt;/a&gt; connected to the &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeticaster/&quot;&gt;Blue Yeticaster&lt;/a&gt;, which includes the Compass Boom Arm and Radius III Custom Shockmount. The microphone is primarily used for video conferencing, screencasting, webinars and podcasts.&lt;/p&gt;

&lt;p&gt;The photo below provides a closer look at the Samsung C49RG90 monitor.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup23.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Additional peripherals include speakers (&lt;a href=&quot;https://audioengineusa.com/shop/wirelessspeakers/a1-wireless-speaker-system/&quot;&gt;AudioEngine A1&lt;/a&gt;), headphones (&lt;a href=&quot;https://www.razer.com/gb-en/gaming-headsets/Razer-BlackShark-V2/RZ04-03230100-R3M1&quot;&gt;Razer BlackShark V2&lt;/a&gt; and &lt;a href=&quot;https://www.whathifi.com/bo/beoplay-h8/review&quot;&gt;Bang &amp;amp; Olufsen BeoPlay H8&lt;/a&gt;), controller (&lt;a href=&quot;https://www.xbox.com/accessories/controllers/elite-wireless-controller-series-2&quot;&gt;Microsoft Xbox Elite Series 2&lt;/a&gt;), flight controller (&lt;a href=&quot;https://www.flightsim.com/vbfs/content.php?16051-Review-Saitek-X-55-Rhino-HOTAS-System&quot;&gt;Saitek X-55&lt;/a&gt;), steering wheel (&lt;a href=&quot;http://gaming.logitech.com/en-gb/product/g29-driving-force&quot;&gt;Logitech G29&lt;/a&gt;) and virtual reality headset (&lt;a href=&quot;https://www.oculus.com/quest/&quot;&gt;Oculus Quest&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;As highlighted in the photo below, my desktop PC is hidden under the desk, with the case door exposed providing easy access to the components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup21.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk and matching pedestals are from &lt;a href=&quot;https://www.tcofficefurniture.co.uk/&quot;&gt;Three Counties Office Furniture&lt;/a&gt;. They are designed for corporate use, therefore are hard-wearing and include integrated cable management.&lt;/p&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;https://www.hermanmiller.com/en_gb/products/seating/office-chairs/mirra-2-chairs/&quot;&gt;Herman Miller Mirra 2&lt;/a&gt; chair, which aims to balance comfort and personalised ergonomics in a single design.&lt;/p&gt;

&lt;h3 id=&quot;home-server&quot;&gt;Home Server&lt;/h3&gt;

&lt;p&gt;Alongside my desktop PC and laptops, I have a small home server, which is connected to my &lt;a href=&quot;/2018/11/10/samsung-q7fn/&quot;&gt;Samsung Q7FN QLED TV&lt;/a&gt;. The server manages local and cloud backups, media streaming, and collaboration (video conferencing).&lt;/p&gt;

&lt;p&gt;I selected an Apple Mac mini (NOV-2018) for the server, thanks to its excellent power-efficiency (150W max), high-performance I/O (4x Thunderbolt 3, 2x USB-A 3.0) and small form factor. The Mac mini also offers versatile video conferencing capabilities covering Apple FaceTime, Zoom, Microsoft Teams, Google Meet, Cisco WebEx, WhatsApp Video, etc.&lt;/p&gt;

&lt;p&gt;The full specification of the Mac mini can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple Mac mini (NOV-2018)&lt;/li&gt;
  &lt;li&gt;Intel Core i5-8500B 3.0GHz Base / 4.1GHz Boost (6C/6T)&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance Series 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;256GB PCI-e SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;2x 500GB Samsung Portable T5 SSD (USB 3.1 Gen2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 1256GB of local SSD storage is split across multiple drives for resilience, with automated backups being completed by &lt;a href=&quot;https://bombich.com/&quot;&gt;Carbon Copy Cloner&lt;/a&gt; and Cloud Storage via &lt;a href=&quot;https://www.dropbox.com/&quot;&gt;Dropbox&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To support my minimal (hidden-wire) &lt;a href=&quot;/2016/05/19/entertainment-setup/&quot;&gt;entertainment setup&lt;/a&gt;, the Mac mini is located in a cupboard under the stairs, connected directly to the Samsung One Connect box via HDMI.&lt;/p&gt;

&lt;p&gt;The cupboard is a little cluttered, with all the AV equipment (Sony STR-DN1050 AV Receiver, Sony PlayStation 5, Apple Mac mini, Apple TV 4K, Logitech Harmony Hub), but is rarely accessed and offers plenty of room for ventilation.&lt;/p&gt;

&lt;p&gt;The only peripheral connected directly to the Mac mini is a &lt;a href=&quot;https://www.logitech.com/products/webcams/brio-4k-hdr-webcam.960-001106.html&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt; webcam, which delivers phenomenal video quality (4K/30fps - HDR), a wide viewing angle (90-degree dFoV) and a surprisingly good stereo, dual omnidirectional integrated microphone.&lt;/p&gt;

&lt;h3 id=&quot;work-setup&quot;&gt;Work Setup&lt;/h3&gt;

&lt;p&gt;At work, I use the Apple MacBook Pro and/or Dell XPS 17 (depending on the workload).&lt;/p&gt;

&lt;p&gt;I use two &lt;a href=&quot;http://www1.euro.dell.com/content/products/productdetails.aspx/dell-u2718q-monitor&quot;&gt;27-inch Dell U2718Q IPS HDR 4K&lt;/a&gt; monitors, connected via a &lt;a href=&quot;https://www.amazon.co.uk/StarTech-comThunderbolt-Dock-Windows-DisplayPort-Docking/dp/B07BJJX47G/&quot;&gt;StarTech Dual-DisplayPort to ThunderBolt 3 Adapter&lt;/a&gt;. The peripherals include a &lt;a href=&quot;https://www.logitech.com/en-gb/products/keyboards/craft.html&quot;&gt;Logitech Craft&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/products/mice/mx-anywhere-3.910-005989.html&quot;&gt;Logitech MX Anywhere 3&lt;/a&gt; and Logitech Brio Ultra HD Pro.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/officesetup04.jpg&quot; alt=&quot;Office Setup&quot; title=&quot;Office Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk is very basic, with a simple dual-monitor stand. Similar to at home, I use a Herman Miller Mirra 2 chair at work.&lt;/p&gt;
</description>
        <pubDate>Thu, 01 Jul 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/07/01/My-Setup-Q3-2021/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/07/01/My-Setup-Q3-2021/</guid>
      </item>
    
      <item>
        <title>Pop!_OS</title>
        <description>&lt;p&gt;Over the years, I have used a wide range of Linux distributions, including Mandrake, SUSE, Ubuntu, Fedora, etc.&lt;/p&gt;

&lt;p&gt;Since 2011, I have favoured Fedora thanks to its speed, reliability and focus on innovation. &lt;a href=&quot;/2021/04/27/Fedora-34/&quot;&gt;Fedora 34&lt;/a&gt; is a great example, which was one of the first distributions to include &lt;a href=&quot;https://forty.gnome.org/&quot;&gt;GNOME 40&lt;/a&gt;, the first major release of GNOME in the past decade.&lt;/p&gt;

&lt;p&gt;The “&lt;a href=&quot;https://docs.fedoraproject.org/en-US/project/&quot;&gt;Four Foundations&lt;/a&gt;” of Fedora (listed below) resonate strongly with me, especially the focus on community.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Freedom:&lt;/strong&gt; We are dedicated to free software and content.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Friends:&lt;/strong&gt; We are a strong, caring community.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Features:&lt;/strong&gt; We care about excellent software.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;First:&lt;/strong&gt; We are committed to innovation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With that said, although an admirable position, the “Freedom” foundation can sometimes act as a barrier when working in a world that is still encumbered by proprietory and/or protected software.&lt;/p&gt;

&lt;p&gt;For example, the use of NVIDIA proprietory drivers can be painful to configure and maintain on Fedora, especially in devices that use &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/technologies/optimus/technology/&quot;&gt;NVIDIA Optimus (hybrid graphics) technology&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Enter &lt;a href=&quot;https://system76.com/&quot;&gt;System76&lt;/a&gt; a small US-based company with the goal to sell computers that are pre-installed with Linux. To enable this outcome, System76 developed a Ubuntu-based Linux distribution known as &lt;a href=&quot;https://pop.system76.com/&quot;&gt;Pop!_OS&lt;/a&gt;, which targets “developers, makers, and computer science professionals”.&lt;/p&gt;

&lt;p&gt;Knowing that Pop!_OS is engineered alongside x86 hardware sold by System76, it naturally simplifies common pain points, such as driver compatibility, disk encryption, firmware management and application provisioning.&lt;/p&gt;

&lt;p&gt;These benefits, alongside the recent release of Pop!_OS 21.04 + Cosmic sparked my curiosity, triggering me to explore an alternative to my beloved Fedora.&lt;/p&gt;

&lt;p&gt;As my test system I selected a &lt;a href=&quot;https://www.dell.com/en-uk/shop/laptops/xps-15-laptop/spd/xps-15-9510-laptop&quot;&gt;Dell XPS 15 (9510)&lt;/a&gt;, with the following specification:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Dell XPS 15 (9510)&lt;/li&gt;
  &lt;li&gt;Intel Core i9-11900H 2.5GHz Base / 4.9GHz Boost (8C/16T)&lt;/li&gt;
  &lt;li&gt;64GB DDR4 3200MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB M.2 PCI-e NVM-e SSD&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 3050 Ti 4GB GDDR6 (45W)&lt;/li&gt;
  &lt;li&gt;15.6-inch OLED Touch Display (3456x2160, 400nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;System76 offer two &lt;a href=&quot;https://pop.system76.com/&quot;&gt;Pop!_OS images&lt;/a&gt;, one that includes the proprietary NVIDIA driver preinstalled.&lt;/p&gt;

&lt;p&gt;This is the option I selected and confirm it installed perfectly, without any manual intervention or additional configuration. I was even able to update the NVIDIA drivers from the Pop!_Shop.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/popos01.jpg&quot; alt=&quot;Pop!_OS&quot; title=&quot;Pop!_OS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Anyone coming from Windows or macOS likely won’t appreciate the value in having an image with preinstalled drivers, but installing, optimising and maintaining NVIDIA drivers on Linux can be a nightmare. As highlighted by the video below, Linus Torvalds (creator of Linux) has been fairly vocal on this topic.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/i2lhwb_OckQ?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I am pleased to report that the drivers not only work seamlessly but are also tightly integrated, with an option to automatically switch between integrated and dedicated graphics, leveraging NVIDIA Optimus technology, as well as the ability to select a specific graphics processor per application.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/popos02.jpg&quot; alt=&quot;Pop!_OS&quot; title=&quot;Pop!_OS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As Pop!_OS is a fork of Ubuntu, it uses the GNOME desktop environment, but will not be updated to &lt;a href=&quot;/2021/04/27/Fedora-34/&quot;&gt;GNOME 40&lt;/a&gt; until version 21.10. Thankfully, this is not a huge deal, as System76 include a lightweight overlay from GNOME, known as Cosmic.&lt;/p&gt;

&lt;p&gt;Ordinarily, I would be against any unnecessary customisation of GNOME, however, it is as if Cosmic was designed specifically for my workflow. I would describe it as a cross between GNOME 3.x and macOS, with native settings to customise the Dock, Activities, Workspaces and the Launcher.&lt;/p&gt;

&lt;p&gt;Honestly, I think Cosmic is close to perfect! I set the Dock too small and hidden, positioned on the left (I commonly use widescreen displays). I hide the Activities and Workspaces buttons, with the Workspace view accessible from the right.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/popos03.jpg&quot; alt=&quot;Pop!_OS&quot; title=&quot;Pop!_OS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With these simple changes, which can be configured without any &lt;a href=&quot;https://extensions.gnome.org/&quot;&gt;GNOME shell extensions&lt;/a&gt;, the desktop is clean, minimal and keyboard-centric (exactly how I like it).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/popos04.jpg&quot; alt=&quot;Pop!_OS&quot; title=&quot;Pop!_OS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although it took me a few minutes to adjust to the Advanced Package Tool (I am used to RPM Package Manager with Fedora), I was quickly able to install &lt;a href=&quot;/2020/11/20/software-list-2020/&quot;&gt;my common software&lt;/a&gt; without any issue.&lt;/p&gt;

&lt;p&gt;Thanks to Pop!_OS being Ubuntu-based (dpkg), its software repositories are very well maintained, helped further by the fact that &lt;a href=&quot;/2019/09/22/flatpak-and-snappy/&quot;&gt;Flatpak&lt;/a&gt; is natively integrated into the Pop!_Shop.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/popos05.jpg&quot; alt=&quot;Pop!_OS&quot; title=&quot;Pop!_OS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In summary, I have been very impressed with Pop!_OS. I have not experienced any issues with the Dell XPS 15 (9510), with the system configured to use “hybrid graphics” by default.&lt;/p&gt;

&lt;p&gt;If you are new to the Linux world, have a device with NVIDIA graphics or simply want a simplified Ubuntu-based experience, I would seriously recommend checking out Pop!_OS.&lt;/p&gt;

&lt;p&gt;At this time, I plan to continue to use Pop!_OS as my primary Linux distribution (sorry Fedora). It will be interesting to see how long this remains true!&lt;/p&gt;
</description>
        <pubDate>Wed, 30 Jun 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/06/30/Pop-OS/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/06/30/Pop-OS/</guid>
      </item>
    
      <item>
        <title>GitHub Copilot</title>
        <description>&lt;p&gt;Yesterday, &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt; announced a new capability known as &lt;a href=&quot;https://copilot.github.com/&quot;&gt;GitHub Copilot&lt;/a&gt;, currently available as a Technical Preview.&lt;/p&gt;

&lt;p&gt;GitHub Copilot is pitched as an “AI Pair Programmer”, which goes beyond traditional code completion by suggesting full lines of code and even entire functions.&lt;/p&gt;

&lt;p&gt;It is powered by Codex, a new AI system created by &lt;a href=&quot;https://openai.com/&quot;&gt;OpenAI&lt;/a&gt;. It uses the docstring, comments, function names, or the code itself to suggest potential code matches.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/githubcopilot01.jpg&quot; alt=&quot;GitHub Copilot&quot; title=&quot;GitHub Copilot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For example, it is possible to write a comment describing the desired logic, at which point GitHub Copilot will suggest the code itself.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/githubcopilot02.jpg&quot; alt=&quot;GitHub Copilot&quot; title=&quot;GitHub Copilot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;GitHub has confirmed that they leverage publicly accessible code on GitHub to train the AI model.&lt;/p&gt;

&lt;p&gt;This is an incredible dataset for training, as GitHub includes a massive range of examples covering almost any scenario, as well as relevant meta-data regarding the popularity of the code, etc.&lt;/p&gt;

&lt;p&gt;Therefore, assuming GitHub Copilot works as described, the ramifications of this capability could be profound.&lt;/p&gt;

&lt;p&gt;GitHub Copilot should improve developer speed and code quality, as well as reduce the risk of errors and bugs. It could also act as a powerful enabler for new developers, providing real-time support when starting a new project or learning a new language/framework.&lt;/p&gt;

&lt;p&gt;An alternative perspective could be that GitHub Copilot would negatively impact the competency of the developer community, making the individuals more reliant on tooling to produce code (similar to capabilities such as spell checking and grammar).&lt;/p&gt;

&lt;p&gt;As an optimist, I prefer to consider the positive ramifications and hope that the benefits of GitHub Copilot will allow the developer community to prioritise more complex problems, instead of sweating commodity code.&lt;/p&gt;

&lt;p&gt;However, I suspect the most controversial aspect of this release will be the impact on Copywrite law.&lt;/p&gt;

&lt;p&gt;For example, it is safe to assume that developers regularly search and copy code from public repositories on GitHub (as well as other sources). In theory, they should be checking and adhering to any associated licenses, but I suspect this is not common practice.&lt;/p&gt;

&lt;p&gt;There are frequent examples of open-source code finding itself into proprietary projects without any documented acknowledgement of the source, etc.&lt;/p&gt;

&lt;p&gt;However, with GitHub Copilot, the process of copying code has been industrialised, making it easier and therefore more prevalent. For example, if GitHub Copilot suggests code from an open-source project, is the developer ok to simply accept the suggestion? Is this any different to manually searching and copying?&lt;/p&gt;

&lt;p&gt;This is likely less of an issue for individual developers working on royalty-free and/or personal projects, but more complicated for businesses that custom develop software.&lt;/p&gt;

&lt;p&gt;I am a bigger believer in the open-source community, collaborating and learning from each other to solve increasingly complex problems. However, I also believe the community must be protected to ensure it remains healthy, especially individuals that have invested countless hours to progress a specific domain.&lt;/p&gt;

&lt;p&gt;I hope GitHub have considered these points and include relevant controls to ensure that developers and any associated licenses are respected.&lt;/p&gt;

&lt;p&gt;Finally, I commend GitHub for continuing to innovate. I see this as the first step towards true AI-assisted development, however, I predict a strong and polarising response from the community!&lt;/p&gt;

&lt;h4 id=&quot;update-04-jul-2021&quot;&gt;UPDATE (04-JUL-2021)&lt;/h4&gt;

&lt;p&gt;The team over at &lt;a href=&quot;https://www.youtube.com/channel/UC4MdpjzjPuop_qWNAvR23JA&quot;&gt;DevOps Directive&lt;/a&gt; posted an interesting video of GitHub Copilot completing a range of &lt;a href=&quot;https://leetcode.com/&quot;&gt;Leetcode&lt;/a&gt; interview questions.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/FHwnrYm0mNc?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;As highlighted by the video, the results were impressive, with GitHub Copilot successfully answering 80% of the questions.&lt;/p&gt;

&lt;p&gt;It should be noted that I suspect GitHub Copilot was at least partially trained using classic interview questions, which are commonly well defined and structured. Therefore, I suspect the success rate would drop significantly in scenarios with greater nuance or uncommon constraints.&lt;/p&gt;

&lt;p&gt;Either way, the technology looks promising, assuming GitHub can navigate the privacy, legal and copyright challenges, whilst respecting developer contributions that help train the model.&lt;/p&gt;
</description>
        <pubDate>Wed, 30 Jun 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/06/30/GitHub-Copilot/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/06/30/GitHub-Copilot/</guid>
      </item>
    
      <item>
        <title>Windows 11 Announcement</title>
        <description>&lt;p&gt;Earlier today, Microsoft revealed the “next generation” version of Windows, now officially known as Windows 11.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2021/06/03/Windows-11/&quot;&gt;As predicted&lt;/a&gt;, Microsoft updated the brand (Windows 11), alongside the introduction of a new user interface, updated application store and tighter Teams integration for collaboration. There was no mention of the Power Platform to promote low-code development and process automation or any new hardware.&lt;/p&gt;

&lt;p&gt;Panos Panay (Chief Product Officer for Windows) showcased the key features of Windows 11, with a focus on the user interface, which essentially matched the experience seen in the recently leaked build.&lt;/p&gt;

&lt;p&gt;The video below from &lt;a href=&quot;https://www.cnet.com/&quot;&gt;CNET&lt;/a&gt; provides a seven-minute summary of the event.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/TumQRiN75bk?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The Windows 11 user interface is heavily inspired by Windows X, which includes a new Start menu and an updated Start button that are both centred on the taskbar (but can be aligned to the left in the settings).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows11announcement01.jpg&quot; alt=&quot;Windows 11 Announcement&quot; title=&quot;Windows 11 Announcement&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alongside the new Start menu, there are several smaller changes, including improved discoverability for Snap and Virtual Desktops (a welcome addition), as well as widgets that can be accessed via a glass themed side panel.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows11announcement02.jpg&quot; alt=&quot;Windows 11 Announcement&quot; title=&quot;Windows 11 Announcement&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, Windows 11 has better Windows management for multi-monitor setups and an improved touch experience, including larger touch targets, when running on a “touch only” device.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows11announcement03.jpg&quot; alt=&quot;Windows 11 Announcement&quot; title=&quot;Windows 11 Announcement&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, the Windows 11 user experience looks to be a positive step forward, however, it does not address the underlying inconsistencies.&lt;/p&gt;

&lt;p&gt;For example, Microsoft has only updated the Windows 10/8 era user interface components, leaving the legacy components, which date back to Windows 95/NT, unchanged.&lt;/p&gt;

&lt;p&gt;I was hoping for something a little more comprehensive but can appreciate the sheer weight of the task when you consider the legacy Windows must attempt to protect.&lt;/p&gt;

&lt;p&gt;Alongside the user interface, there was a big focus on the Application Store, which now supports Win32 applications, alongside Universal Windows Platform (UWP)and Progressive Web Apps (PWA). This change is significant, opening the door to the wider Windows application eco-system, making the store instantly more relevant.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows11announcement04.jpg&quot; alt=&quot;Windows 11 Announcement&quot; title=&quot;Windows 11 Announcement&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is a welcome change, especially when combined with the new generous store policy (a clear shot at Apple) that, under certain circumstances, allows developers/publishers to forgo any revenue-sharing fees.&lt;/p&gt;

&lt;p&gt;Recognising that the application store is not a big revenue driver for Microsoft, means the positive PR gained through this change will likely outweigh any lost revenue.&lt;/p&gt;

&lt;p&gt;The final announcement, linked to the application store, was the ability for Android Apps to be downloaded, installed and ran locally.&lt;/p&gt;

&lt;p&gt;This is being achieved through a partnership with Intel and Amazon, with Intel delivering an “&lt;a href=&quot;https://www.businesswire.com/news/home/20210624005812/en/Intel-Core-Processors-and-Intel-Bridge-Technology-Unleash-Windows-11-Experience&quot;&gt;Intel Bridge&lt;/a&gt;” technology that enables Android applications to run on x86 systems (including AMD), with distribution coming via the Amazon App Store.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows11announcement05.jpg&quot; alt=&quot;Windows 11 Announcement&quot; title=&quot;Windows 11 Announcement&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The unusual partnership is likely a direct response to Apple/Google, which are both actively enabling compatible mobile applications to run on the associated desktop operating system (e.g. iOS to macOS and Android to  ChromeOS).&lt;/p&gt;

&lt;p&gt;This capability was not part of the recently leaked build, therefore it is unclear how well the Android Apps will run on Windows. However, the documented setup process (outlined below) appears to be a little cumbersome.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Load Windows Application Store&lt;/li&gt;
  &lt;li&gt;Download Amazon App Store&lt;/li&gt;
  &lt;li&gt;Run Amazon App Store&lt;/li&gt;
  &lt;li&gt;Download Android App&lt;/li&gt;
  &lt;li&gt;Run Android App&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, Microsoft detailed the new &lt;a href=&quot;https://www.microsoft.com/windows/windows-11-specifications&quot;&gt;minimum specification required to run Windows 11&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Processor:&lt;/strong&gt; 1GHz Dual-Core 64-bit&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Memory:&lt;/strong&gt; 4GB&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Storage:&lt;/strong&gt; 64GB&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Graphics:&lt;/strong&gt; DirectX 12 (WDDM 2.0)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Display:&lt;/strong&gt; 9-inch @ 720p&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Security:&lt;/strong&gt; Trusted Platform Module (TPM) v2.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I suspect the biggest point of controversy will be Trusted Platform Module (TPM) v2.0. First introduced in 2014, TPM v2.0 is an international standard for a secure cryptoprocessor, designed to secure hardware through integrated cryptographic keys.&lt;/p&gt;

&lt;p&gt;Therefore, although not guaranteed, any system built after 2014 should be compatible. However, this is a little more complicated for “build your own” desktop systems, which are not commonly equipped with a dedicated TPM module.&lt;/p&gt;

&lt;p&gt;In this scenario, the system relies on a compatible processor with a secure enclave. This means Intel 8th Generation or AMD Ryzen 3000 Series.&lt;/p&gt;

&lt;p&gt;Unfortunately, with limited innovation from Intel over recent years, I suspect many users still have processors that pre-date the 8th Generation.&lt;/p&gt;

&lt;p&gt;In conclusion, I felt the event itself felt quite subdued, the words expressed excitement, but the delivery did not. If Microsoft had hoped to rival the presentation quality and energy of recent pre-recorded Apple events, they fell woefully short.&lt;/p&gt;

&lt;p&gt;It is known that Panos Panay enjoys a live audience, which may be impacted his performance.&lt;/p&gt;

&lt;p&gt;As for Windows 11, it is an interesting update, but certainly not “game-changing”, with the foundations built firmly on Windows 10. It should be noted that there are some parallels to Windows Vista, with a “glass heavy” user interface, the return of widgets (gadgets) and stricter hardware requirements. Let’s hope this is where the comparison ends!&lt;/p&gt;

&lt;p&gt;Finally, it is clear that the Windows “11” branding is not the result of technical innovation, but a need to keep the partner market energised.&lt;/p&gt;
</description>
        <pubDate>Thu, 24 Jun 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/06/24/Windows-11-Announcement/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/06/24/Windows-11-Announcement/</guid>
      </item>
    
      <item>
        <title>Ninja Caves - Update One</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Ninja Caves is no longer maintained. As a result, the Apple App Store (iPadOS) version has been retired. The Windows and macOS versions are still available for download, but they may not work correctly with modern hardware/software.&lt;/p&gt;

&lt;p&gt;Since March, I have been building a platformer game for my son (now six years old), inspired by &lt;a href=&quot;https://3drealms.com/catalog/crystal-caves_7/&quot;&gt;Crystal Caves&lt;/a&gt;, using &lt;a href=&quot;/2017/03/09/gamemaker-studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have documented my progress in the following articles, including the rationale for the project.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/03/18/30-Days-of-Code/&quot;&gt;30 Days of Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/05/30-Days-of-Code-Update/&quot;&gt;30 Days of Code - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/28/30-Days-of-Code-MVP/&quot;&gt;30 Days of Code - MVP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/05/30/Ninja-Caves/&quot;&gt;Ninja Caves&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have continued to make good progress and have now completed the following features, which can also be reviewed in my &lt;a href=&quot;https://github.com/mswbull/masonPlatformer/projects/1&quot;&gt;backlog&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Level Objects, including walls, doors, ladders, fires, etc.&lt;/li&gt;
  &lt;li&gt;Collectable Objects, including coins, crystals, abilities.&lt;/li&gt;
  &lt;li&gt;Obstacle Objects, including water, lava, spikes, spinning saw.&lt;/li&gt;
  &lt;li&gt;Destructible Objects, specifically crates.&lt;/li&gt;
  &lt;li&gt;Story Objects, specifically signposts.&lt;/li&gt;
  &lt;li&gt;Player Movement, including keyboard/mouse and controller support.&lt;/li&gt;
  &lt;li&gt;Player Animations, including idle, run, jump, fall, crouch, climb, glide, hit, death.&lt;/li&gt;
  &lt;li&gt;Player Weapons, specifically ninja stars.&lt;/li&gt;
  &lt;li&gt;Player Health, including health bar.&lt;/li&gt;
  &lt;li&gt;Player Special Abilities, including speed, jump and glide.&lt;/li&gt;
  &lt;li&gt;Enemy Types, including customisable attributes.&lt;/li&gt;
  &lt;li&gt;Enemy Movement, including keyboard/mouse and controller.&lt;/li&gt;
  &lt;li&gt;Enemy Animations, including idle, run, jump, fall, hit, death.&lt;/li&gt;
  &lt;li&gt;Enemy Types, including customisable attributes.&lt;/li&gt;
  &lt;li&gt;Enemy Weapons, specifically ninja stars.&lt;/li&gt;
  &lt;li&gt;Lighting System, immitting light from a specific source.&lt;/li&gt;
  &lt;li&gt;Particle System, specifically lava particles.&lt;/li&gt;
  &lt;li&gt;Transition System, animating specific events.&lt;/li&gt;
  &lt;li&gt;Save Game System, persisting level, coins and kills.&lt;/li&gt;
  &lt;li&gt;Tile Sets, specifically jungle and caves.&lt;/li&gt;
  &lt;li&gt;Music and Sound Effects.&lt;/li&gt;
  &lt;li&gt;Menu and Ending Systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The video below highlights these features in action across the first three levels, which start in the jungle, before entering the caves.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ZhHPnWxYE0Q?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The majority of the game will occur in the caves (I am thinking ten levels), with each level challenging the player with unique obstacles, supported by specific abilities.&lt;/p&gt;

&lt;p&gt;The game has three basic objectives, collect the coins, find the crystal, progress through the level. The ninja enemies can be defeated using ninja stars, but this is not a requirement.&lt;/p&gt;

&lt;p&gt;The video below shows the game running on an Apple iPad Pro (Apple iOS 14.6), including Bluetooth controller support.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Ec3_bqpyqmA?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;It is worth noting that Apple iOS assigns the controller to slot 1 (not the default slot 0), which caused me some initial issues, as I had naively hardcoded slot 0 throughout my code.&lt;/p&gt;

&lt;p&gt;As part of the most recent release, I also did a lot of clean-up across my codebase, which is available for review (and reuse) on &lt;a href=&quot;https://github.com/mswbull/masonPlatformer/&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am particularly pleased with my lighting system, which uses a simple surface overlay and cutout object to deliver the illusion of light immitting from a specific source. The code assigned to the draw event can be found below.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/// @desc Draw Lighting

// Surface Overlay

if (surface_exists(lighting_surface) == false) {
lighting_surface = surface_create(room_width, room_height);
}

surface_set_target(lighting_surface);

draw_clear_alpha(c_black, tansparency); // Set Room Colour

// Lighting Cutout

with(oLightingCutout) {

    var wobble_amount_x = image_xscale + random_range(-wobble, wobble);
    var wobble_amount_y = image_yscale + random_range(-wobble, wobble);

    gpu_set_blendmode(bm_subtract);
    draw_sprite_ext(sprite_index, image_index, x, y, wobble_amount_x, wobble_amount_y, 0, c_white, 1); // Default Cutout Lighting

    gpu_set_blendmode(bm_add);

    draw_sprite_ext(sprite_index, image_index, x, y, wobble_amount_x, wobble_amount_y, 0, colour, intensity); // Custom Cutout Lighting

    gpu_set_blendmode(bm_normal);
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The code is split into two parts, the first creates the surface overlay and applies transparency based on a room variable. The second leverages a blend mode to remove the surface overlay for the “oLightingcutout” object.&lt;/p&gt;

&lt;p&gt;It should be noted that the surface overlay must be the power of two (e.g. 1024, 2048, 4096) to ensure compatibility with Apple iOS/iPadOS devices.&lt;/p&gt;

&lt;p&gt;The image below shows the “oLightingCutout” objects applied to the room.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ninjacaves02.jpg&quot; alt=&quot;Ninja Caves&quot; title=&quot;Ninja Caves&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In a future release, I intend to transition my player object (oPlayer) to a &lt;a href=&quot;https://www.yoyogames.com/en/blog/coffee-break-tutorial-finite-state-machines-gml&quot;&gt;finite state machine&lt;/a&gt;, which is a method of programming that uses sequential “states” to perform tasks in a logical form. This approach will hopefully streamline the player object, which has become cumbersome due to the number of animations.&lt;/p&gt;

&lt;p&gt;The main challenge I have faced is balancing the difficulty, recognising the target audience (a six-year-old). I hope to make the game challenging, but still fun for someone playing their first 2D platformer.&lt;/p&gt;

&lt;p&gt;I will continue to post periodic development updates. The game videos, backlog and source code can be found linked below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mswbull/masonPlatformer/&quot;&gt;Ninja Caves - Source Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mswbull/masonPlatformer/projects/1&quot;&gt;Ninja Caves - Backlog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLZurol1oWB4wQvhxvy2fxtt_9aSpo7GOD&quot;&gt;Ninja Caves - Video Playlist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Assuming the game maintains a reasonable level of quality, I plan to publish for PC, macOS, Linux, iPadOS, and AppleTV (controller support required).&lt;/p&gt;
</description>
        <pubDate>Sun, 13 Jun 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/06/13/Ninja-Caves-Update-One/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/06/13/Ninja-Caves-Update-One/</guid>
      </item>
    
      <item>
        <title>Journey to the Cloud</title>
        <description>&lt;p&gt;Although I post frequently about technology topics that relate to my work, I rarely post on my &lt;a href=&quot;/&quot;&gt;personal blog&lt;/a&gt; about specific work accomplishments.&lt;/p&gt;

&lt;p&gt;With that said, the past two years have been unlike anything I have experienced before, with a corporate separation and a major acquisition, all successfully delivered during an unprecedented global pandemic.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/in/chris-keeley-b923484/&quot;&gt;Chris Keeley (Elanco CIO)&lt;/a&gt; and I recently shared a few highlights from this remarkable journey via a couple of blog posts.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://elanco.com/en-us/insights/the-cloud-and-the-role-it-played-in-creating-an-independent-animal-health-company&quot;&gt;The Cloud – Creating an Independent Animal Health Company&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://elanco.com/en-us/insights/elanco-modern-it-ecosystem&quot;&gt;Elanco - Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Recognising that these achievements were delivered virtually (due to the pandemic) is evidence of the agility provided by modern architecture, as well as the dedication and resilience of a phenomenal team!&lt;/p&gt;

&lt;p&gt;The published image below makes me smile, as it includes my daughter joining an IT Townhall, during one of the many “childcare + work” days.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/journeytothecloud01.jpg&quot; alt=&quot;Journey to the Cloud&quot; title=&quot;Journey to the Cloud&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Over the coming months, we plan to share more details regarding this journey, therefore be sure to follow us at: &lt;a href=&quot;https://elanco.com/en-us/insights/employee-blogs&quot;&gt;Blog&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/company/elanco/&quot;&gt;LinkedIn&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/Elanco&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;https://www.facebook.com/elancoanimalhealth&quot;&gt;Facebook&lt;/a&gt;, &lt;a href=&quot;https://www.instagram.com/weareelanco/&quot;&gt;Instagram&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Thu, 10 Jun 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/06/10/Journey-to-the-Cloud/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/06/10/Journey-to-the-Cloud/</guid>
      </item>
    
      <item>
        <title>Windows 11</title>
        <description>&lt;p&gt;Yesterday, Microsoft announced an event scheduled for 24th June to discuss the “next generation” of Windows.&lt;/p&gt;

&lt;p&gt;This event was previously teased by Satya Nadella (Microsoft CEO) at &lt;a href=&quot;https://register.build.microsoft.com/&quot;&gt;Build 2021&lt;/a&gt;, where he said…&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Soon we will share one of the most significant updates to Windows of the past decade to unlock greater economic opportunity for developers and creators.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Following the announcement, there has been a lot of online speculation (and confusion) as to what Microsoft intend to reveal.&lt;/p&gt;

&lt;p&gt;When Microsoft released Windows 10 in 2015, it was unofficially described as “the last version of Windows”, linked to the “Windows-as-a-Service” release methodology.&lt;/p&gt;

&lt;p&gt;Although Microsoft has never formally acknowledged this positioning, they have also done very little to dispute it. Even Cortana, the Microsoft Virtual Assistant, agreed.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows1101.jpg&quot; alt=&quot;Windows 11&quot; title=&quot;Windows 11&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In reality, Microsoft was always going to release a “new” version of Windows, as Windows is a powerful brand that has been used over the years to reinvigorate PC sales. This is especially important for Microsoft partners (e.g. Dell, HP, Lenovo, etc.)&lt;/p&gt;

&lt;p&gt;With this in mind, what do I expect from the event? Will this be the most significant update to Windows in the past decade?&lt;/p&gt;

&lt;p&gt;My prediction, no…&lt;/p&gt;

&lt;p&gt;If anyone is expecting a reimagining of Windows and/or new foundational architecture, prepare to be disappointed. For example, although I would love to see Microsoft aggressively target an immutable operating system or container-based application architecture, the need to maintain legacy hardware/software compatibility continues to be a significant barrier.&lt;/p&gt;

&lt;p&gt;As a result, I expect to see the following headlines:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;New Brand (Windows 11)&lt;/li&gt;
  &lt;li&gt;Updated User Interface&lt;/li&gt;
  &lt;li&gt;Updated Application Store&lt;/li&gt;
  &lt;li&gt;Enhanced Collaboration Capabilities (Teams)&lt;/li&gt;
  &lt;li&gt;Enhanced Low-Code Development Capabilities (Power Apps)&lt;/li&gt;
  &lt;li&gt;Enhanced Workflow Automation (Power Automate)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The real star of the show will be the new user interface, which I expect will be more “touch-friendly” and take inspiration from the recently cancelled &lt;a href=&quot;https://www.windowscentral.com/windows-10x&quot;&gt;Windows X&lt;/a&gt; project.&lt;/p&gt;

&lt;p&gt;All other headline features are a continuation of existing initiatives previously planned for Windows 10, which will now fall under the new brand (Windows 11).&lt;/p&gt;

&lt;p&gt;To be clear, this release will still be Windows 10 under the hood, with no significant changes to the foundational architecture.&lt;/p&gt;

&lt;p&gt;As a technologist, this prediction feels underwhelming. However, I can count at least seven layers of “user interface” within Windows 10 (listed below). Therefore, achieving some level of consistency would be a positive step forward from a user experience standpoint.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fluent Design (Windows 10 Era)&lt;/li&gt;
  &lt;li&gt;Metro (Windows 8 Era)&lt;/li&gt;
  &lt;li&gt;Windows 7 UI&lt;/li&gt;
  &lt;li&gt;Windows Vista UI&lt;/li&gt;
  &lt;li&gt;Windows XP UI&lt;/li&gt;
  &lt;li&gt;Windows 2000 UI&lt;/li&gt;
  &lt;li&gt;Windows 95/NT 4.0 UI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unbelievably, there are still traces of the Windows 95/NT user interface within Windows 10, specifically screensaver settings, etc.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows1102.jpg&quot; alt=&quot;Windows 11&quot; title=&quot;Windows 11&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Yes, the preview icon is a CRT monitor, last used two decades ago.&lt;/p&gt;

&lt;p&gt;Additionally, I hope Microsoft take the opportunity to make key features more discoverable, such as Windows Snap and Virtual Desktops, which are both obscured in Windows 10, resulting in minimal usage.&lt;/p&gt;

&lt;p&gt;Finally, I do believe there is a small chance we will see new hardware at the event, potentially the &lt;a href=&quot;https://www.windowscentral.com/surface-neo&quot;&gt;Surface Neo&lt;/a&gt;, which is the previously announced dual-screen device that has been “missing in action” in recent months.&lt;/p&gt;

&lt;p&gt;Microsoft may use this device to showcase some of the new touch-friendly user experience, also attempting to usher in a new form factor for Microsoft partners.&lt;/p&gt;
</description>
        <pubDate>Thu, 03 Jun 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/06/03/Windows-11/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/06/03/Windows-11/</guid>
      </item>
    
      <item>
        <title>Ninja Caves</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Ninja Caves is no longer maintained. As a result, the Apple App Store (iPadOS) version has been retired. The Windows and macOS versions are still available for download, but they may not work correctly with modern hardware/software.&lt;/p&gt;

&lt;p&gt;Earlier this month I completed a personal &lt;a href=&quot;/2021/03/18/30-Days-of-Code/&quot;&gt;coding challenge&lt;/a&gt;, dedicating thirty minutes a day for thirty days.&lt;/p&gt;

&lt;p&gt;I built a platformer game for my son (five years old), inspired by &lt;a href=&quot;https://3drealms.com/catalog/crystal-caves_7/&quot;&gt;Crystal Caves&lt;/a&gt;, using &lt;a href=&quot;/2017/03/09/gamemaker-studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I documented the process across a few blog posts and &lt;a href=&quot;https://www.youtube.com/playlist?list=PLZurol1oWB4xbwKPMXrX7IgBT3i-lQWVu&quot;&gt;daily videos&lt;/a&gt;, as well as published my code on &lt;a href=&quot;(https://github.com/mswbull/masonPlatformer/)&quot;&gt;GitHub&lt;/a&gt; (links below).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/03/18/30-Days-of-Code/&quot;&gt;30 Days of Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/05/30-Days-of-Code-Update/&quot;&gt;30 Days of Code - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/28/30-Days-of-Code-MVP/&quot;&gt;30 Days of Code - MVP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mswbull/masonPlatformer/&quot;&gt;masonPlatformer - Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLZurol1oWB4xbwKPMXrX7IgBT3i-lQWVu&quot;&gt;30 Days of Code - YouTube Playlist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the goals of the challenge was to reignite my passion for writing code, which has taken a backseat throughout the pandemic due to family/work commitments.&lt;/p&gt;

&lt;p&gt;As a result, I am pleased to report that following the thirty days, I have continued to develop the game, polishing some of the rough edges and adding new features. I am not coding with the same frequency or intensity, but still making steady progress and enjoying the process.&lt;/p&gt;

&lt;p&gt;The video below includes a brief walkthrough of the first level, which includes the new “ninja theme”, as requested by my son.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/LUqaycH_JuE?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;As highlighted in the video, the following new features have been added.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Updated player and enemy sprites.&lt;/li&gt;
  &lt;li&gt;Updated tile set.&lt;/li&gt;
  &lt;li&gt;Updated enemies, including different behaviours.&lt;/li&gt;
  &lt;li&gt;Updated weapons, including bullets.&lt;/li&gt;
  &lt;li&gt;Updated objects, including coins, hearts, signs, etc.&lt;/li&gt;
  &lt;li&gt;Updated on-screen display, including health, equipment, score, etc.&lt;/li&gt;
  &lt;li&gt;Updated animations, covering player, enemy, explosions, etc.&lt;/li&gt;
  &lt;li&gt;Improved controller input.&lt;/li&gt;
  &lt;li&gt;Implemented player health, including health bar.&lt;/li&gt;
  &lt;li&gt;Implemented sound, including music and effects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My son has been an avid tester, providing plenty of feedback and ideas. The video below including a few highlights of him playing through the first level, testing the core game mechanics.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/N06qgfBqXw4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The game is currently running on macOS, using the &lt;a href=&quot;https://www.8bitdo.com/sn30-pro-g-classic-or-sn30-pro-sn/&quot;&gt;8BitDo N30pro&lt;/a&gt; controller. The controller works well (especially for players with small hands), but the Bluetooth range is limited, hence the cable.&lt;/p&gt;

&lt;p&gt;My son has also been eager to contribute, specifically the creation of new levels, features etc. The picture below is a design he created for a cave level, where the floor is lava.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ninjacaves01.jpg&quot; alt=&quot;Ninja Caves&quot; title=&quot;Ninja Caves&quot; /&gt;&lt;/p&gt;

&lt;p&gt;He has also suggested we include a shield (to block enemy ninja stars) and a glider to help the player navigate across the level.&lt;/p&gt;

&lt;p&gt;Overall, I have been inspired by the process and therefore have decided to continue developing the game until it reaches a natural conclusion (or my son become bored).&lt;/p&gt;

&lt;p&gt;Assuming the game maintains a reasonable level of quality, I will look to publish, likely targetting PC, macOS, Linux and AppleTV (controller support needed). I will also publish periodic development blogs and videos, tracking the progress.&lt;/p&gt;
</description>
        <pubDate>Sun, 30 May 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/05/30/Ninja-Caves/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/05/30/Ninja-Caves/</guid>
      </item>
    
      <item>
        <title>GitHub Linguist Overrides</title>
        <description>&lt;p&gt;Last month I completed a personal &lt;a href=&quot;/2021/03/18/30-Days-of-Code/&quot;&gt;coding challenge&lt;/a&gt;, where I dedicated thirty minutes a day for thirty days.&lt;/p&gt;

&lt;p&gt;I decided to build a platformer game for my son, using &lt;a href=&quot;/2017/03/09/gamemaker-studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;, with the game logic being written in GameMaker Language (GML).&lt;/p&gt;

&lt;p&gt;I documented the process in the following three articles:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/03/18/30-Days-of-Code/&quot;&gt;30 Days of Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/05/30-Days-of-Code-Update/&quot;&gt;30 Days of Code - Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/04/28/30-Days-of-Code-MVP/&quot;&gt;30 Days of Code - MVP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whilst using GameMaker Studio 2, I noticed that &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt; detects files with the “.yy” extension as Yacc language files, which stands for “Yet Another Compiler-Compiler”.&lt;/p&gt;

&lt;p&gt;Although not a major issue, it is slightly annoying to see a GameMaker Studio 2 projects be reported by GitHub as 98% Yacc. I would prefer JSON or maybe even GML, as they are generated by GameMaker Studio 2.&lt;/p&gt;

&lt;p&gt;As a result, I decided to research the &lt;a href=&quot;https://github.com/github/linguist&quot;&gt;linguist library&lt;/a&gt; which is used by GitHub to detect blob languages, ignore binary files, suppress generated files in diffs, and generate language breakdown graphs.&lt;/p&gt;

&lt;p&gt;Thankfully, the library supports “&lt;a href=&quot;https://github.com/github/linguist/blob/master/docs/overrides.md&quot;&gt;overrides&lt;/a&gt;”, allowing for custom override strategies for language definitions and file paths.&lt;/p&gt;

&lt;p&gt;As documented, I created a “.gitattributes” file with the following code:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Re-classify .yy files
*.yy linguist-language=GML
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The “.gitattributes” must be stored in the root of the GameMaker Studio 2 project, similar to how you would use “.gitignore”.&lt;/p&gt;

&lt;p&gt;Once pushed to GitHub, you should see the “languages” section update. This took several hours post push, I assume driven by a scheduled job executed by GitHub.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/githublinguistoverrides01.jpg&quot; alt=&quot;GitHub Linguist Overrides&quot; title=&quot;GitHub Linguist Overrides&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Depending on your preference, you may want to reclassify “.yy” files as JSON or maybe even ignore them completely. These are both viable options using linguist overrides.&lt;/p&gt;
</description>
        <pubDate>Thu, 20 May 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/05/20/GitHub-Linguist-Overrides/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/05/20/GitHub-Linguist-Overrides/</guid>
      </item>
    
      <item>
        <title>PS5 Optical Audio Delay</title>
        <description>&lt;p&gt;In November, I was lucky enough to secure a &lt;a href=&quot;/2020/10/03/console-wars-2020/&quot;&gt;Sony PlayStation 5&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My current &lt;a href=&quot;/2016/05/19/entertainment-setup/&quot;&gt;entertainment setup&lt;/a&gt; includes a &lt;a href=&quot;/2018/11/10/samsung-q7fn/&quot;&gt;Samsung Q7FN 4K TV&lt;/a&gt; and a Bowers &amp;amp; Wilkins MT-50 sound system, connected via a Sony STR-DN1050 AV receiver.&lt;/p&gt;

&lt;p&gt;The Samsung TV was purchased in 2018 and supports 4K at 60Hz (4K60), including HDR10+ and Variable Refresh Rate (VRR). Unfortunately, the Sony receiver is a little older, purchased in 2014 and therefore is limited to the HDMI 2.0 standard, not HDMI 2.0a/b or HDMI 2.1.&lt;/p&gt;

&lt;p&gt;To ensure I do not lose features such as High Dynamic Range (HDR) and Variable Refresh Rate (VRR), I connect my HDMI 2.0+ devices (such as the PlayStation 4/5 and Apple TV) directly to the Samsung TV, leveraging a digital optical cable for audio, connected to the Sony receiver.&lt;/p&gt;

&lt;p&gt;The setup works reasonably well, with the source devices configured to output bitstream audio, delivering an encoded Dolby Digital or DTS 5.1 signal, which can be decoded by the Sony receiver. Although not the highest possible audio quality, it works perfectly well for daily usage, delivering immersive 5.1 surround sound.&lt;/p&gt;

&lt;p&gt;Unfortunately, with the release of the PlayStation 5, Sony removed the digital optical port as a dedicated audio output (image from &lt;a href=&quot;https://www.polygon.com/&quot;&gt;Polygon&lt;/a&gt;), forcing me to send the audio signal over HDMI via the Samsung TV to the Sony receiver.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/opticalaudiodelay01.jpg&quot; alt=&quot;PS5 Optical Audio Delay&quot; title=&quot;PS5 Optical Audio Delay&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I can understand why Sony made this decision, as digital optical cables have bandwidth limitations, which are not compatible with modern lossless formats. However, I suspect this omission will frustrate many users with “legacy” sound systems, especially those who have invested in an expensive receiver, etc.&lt;/p&gt;

&lt;p&gt;In theory, passing the bitstream configured audio via the Samsung TV should work. Unfortunately, in my experience, this setup results in a frustrating audio delay (up to one second), which can not be corrected through software. Regardless of the content (e.g. Movie, Game), an audio delay is very distracting, ruining the overall experience.&lt;/p&gt;

&lt;p&gt;I tried every possible software configuration option across the Samsung TV, PlayStation 5 and Sony receiver, but failed to find a viable solution. It is likely the Samsung TV software is adding an unavoidable audio input delay, that could only be resolved by Samsung via a firmware update (very unlikely at this point).&lt;/p&gt;

&lt;p&gt;One option would be to replace my old Sony receiver. Modern AV receivers are HDMI 2.1 compliant, however, &lt;a href=&quot;https://www.whathifi.com/news/denon-and-marantz-announce-fix-for-4k120hz-bug&quot;&gt;reports from the first generation HDMI 2.1 chipsets have not been encouraging&lt;/a&gt;, resulting in widespread reports of black screen issues when viewing 4K120 and 8K60 signals.&lt;/p&gt;

&lt;p&gt;Therefore, it feels like any AV receiver upgrade should be delayed until second-generation HDMI 2.1 chipsets are available, hopefully in late 2021 or early 2022. Additionally, AV receivers are not cheap, costing upwards of £500 for something equivalent to my current Sony STR-DN1050.&lt;/p&gt;

&lt;p&gt;With these challenges in mind, I decided to try an audio extractor, which essentially splits the audio and video signals from the source, providing a digital optical port for the audio output. An audio extractor is a physical device, but are relatively small and cheap (approximately £30). However, due to the complexity of the HDMI and Content Protection (HDCP) standards, perfect compatibility is not a guarantee.&lt;/p&gt;

&lt;p&gt;I purchased the &lt;a href=&quot;https://www.amazon.co.uk/gp/product/B07TZRXKYG/&quot;&gt;Ezcoo HDMI 2.0 Audio Extractor&lt;/a&gt;, which (in theory) supports 4K 60Hz, 4:4:4, HDCP 2.2, 18Gbps, Dolby Vision HDR, 5.1 Audio Breakout. Although not HDMI 2.1 compliant, the HDMI specification matches my Samsung TV, therefore should be compatible.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/opticalaudiodelay02.jpg&quot; alt=&quot;PS5 Optical Audio Delay&quot; title=&quot;PS5 Optical Audio Delay&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the audio extractor connected to the PlayStation 5 and dip switches 3, 4, and 5 in the “ON” position, I am pleased to report the audio delay issue was instantly resolved, delivering 5.1 sound via Dolby Digital or DTS.&lt;/p&gt;

&lt;p&gt;The audio extractor does require dedicated power (Micro USB), which I achieved by connecting the included cable to a spare USB port on the PlayStation 5, which removed the need for an external power supply.&lt;/p&gt;

&lt;p&gt;With the hardware connected, the PlayStation 5 audio “HDMI Device Type” must be configured for “AV Amplifier”, with the desired “Number of Channels” (e.g. 5.1 ch) and “Audio Format” (e.g. Dolby or DTS) selected.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/opticalaudiodelay03.jpg&quot; alt=&quot;PS5 Optical Audio Delay&quot; title=&quot;PS5 Optical Audio Delay&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In addition to the audio, I can confirm no visible loss in video quality or features when compared against a direct connection from the PlayStation 5 to the Samsung TV. This Includes 4K at 60Hz with HDR enabled.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/opticalaudiodelay04.jpg&quot; alt=&quot;PS5 Optical Audio Delay&quot; title=&quot;PS5 Optical Audio Delay&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, I would highly recommend this solution for anyone experiencing an audio delay when passing audio from their source system (e.g. PlayStation 5) to an AV receiver via their TV.&lt;/p&gt;

&lt;p&gt;In the future, I will likely explore an AV receiver upgrade, but this simple and cost-effective solution has probably extended the life of my current set-up by a few years.&lt;/p&gt;
</description>
        <pubDate>Mon, 10 May 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/05/10/PS5-Optical-Audio-Delay/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/05/10/PS5-Optical-Audio-Delay/</guid>
      </item>
    
      <item>
        <title>WinWire Fireside Chat</title>
        <description>&lt;p&gt;Earlier today, &lt;a href=&quot;https://www.winwire.com/&quot;&gt;WinWire Technologies&lt;/a&gt; published a few snippets from a recent fireside chat with &lt;a href=&quot;https://www.linkedin.com/in/chris-keeley-b923484/&quot;&gt;Chris Keeley&lt;/a&gt;, Senior Vice President and CIO (also my boss).&lt;/p&gt;

&lt;p&gt;WinWire Technologies is a digital engineering company that supports enterprises across multiple industries. WinWire has expertise across a range of digital technologies and delivers large enterprise solutions leveraging cloud, artificial intelligence, machine learning, mixed/augmented reality, Internet of Things (IoT), mobility, security, and UI/UX.&lt;/p&gt;

&lt;p&gt;The fireside chat focuses on the importance of improving animal health, creating value through innovative products, and how this leads to solving some of the world’s most pressing issues.&lt;/p&gt;

&lt;p&gt;Embedded below are the video snippets.&lt;/p&gt;

&lt;h4 id=&quot;how-does-the-overarching-mission-of-purpose-drive-daily-activities&quot;&gt;How does the overarching mission of purpose drive daily activities?&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/277fM25yI34?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;what-does-purpose-driven-innovation-and-leadership-mean-to-you&quot;&gt;What does purpose-driven innovation and leadership mean to you?&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ExVJLjPQV6w?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;how-has-technology-driven-further-innovation-within-your-organisation&quot;&gt;How has technology-driven further innovation within your organisation?&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/cZpMcmxpH5Q?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;how-has-your-organisation-pivoted-since-the-pandemic&quot;&gt;How has your organisation pivoted since the pandemic?&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/35Pm2T806c4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;advice-to-aspiring-business-leaders&quot;&gt;Advice to aspiring business leaders?&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/c0AChnMxulM?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Great work from Chris! It is always valuable to hear from different leaders, helping to challenge preconceptions and ensure diversity of thought.&lt;/p&gt;
</description>
        <pubDate>Fri, 30 Apr 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/04/30/WinWire-Fireside-Chat/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/04/30/WinWire-Fireside-Chat/</guid>
      </item>
    
      <item>
        <title>30 Days of Code - MVP</title>
        <description>&lt;p&gt;Last month I started a personal &lt;a href=&quot;/2021/03/18/30-Days-of-Code/&quot;&gt;coding challenge&lt;/a&gt;, dedicating thirty minutes a day for the next thirty days.&lt;/p&gt;

&lt;p&gt;I decided to build a platformer game for my son (five years old), inspired by &lt;a href=&quot;https://en.wikipedia.org/wiki/Crystal_Caves&quot;&gt;Crystal Caves&lt;/a&gt; by &lt;a href=&quot;https://3drealms.com/&quot;&gt;Apogee Software (3D Realms)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2021/04/05/30-Days-of-Code-Update/&quot;&gt;Earlier this month, I shared an update, covering the first fifteen (non-consecutive) days&lt;/a&gt;, accounting for approximately six hours of development.&lt;/p&gt;

&lt;p&gt;I selected &lt;a href=&quot;/2017/03/09/gamemaker-studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt; as my development environment, which includes a cross-platform 2D game engine, with the game logic being written in GameMaker Language (GML).&lt;/p&gt;

&lt;p&gt;GML is an imperative, dynamically typed language commonly likened to JavaScript and C, which can be exported to run on a wide range of platforms (Windows, macOS, Linux, iOS, Android, PlayStation, Xbox, Switch, etc.)&lt;/p&gt;

&lt;p&gt;Popular 2D games such as &lt;a href=&quot;https://spelunkyworld.com/original.html&quot;&gt;Spelunky&lt;/a&gt; and &lt;a href=&quot;https://www.devolverdigital.com/games/hotline-miami&quot;&gt;Hotline Miami&lt;/a&gt; were developed using GameMaker Studio.&lt;/p&gt;

&lt;h3 id=&quot;minimum-viable-product-mvp&quot;&gt;Minimum Viable Product (MVP)&lt;/h3&gt;

&lt;p&gt;I have now passed the thirty-day milestone and am pleased to report that I have achieved a minimum viable product.&lt;/p&gt;

&lt;p&gt;The video below demonstrates the core mechanics of the game. However, the visuals and level designs are for testing purposes only, using freely available assets from &lt;a href=&quot;https://www.kenney.nl/&quot;&gt;Kenney&lt;/a&gt;.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/O2WnbrC_Csc?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Showcased in the video is a basic menu system, player and enemy movement, pick-ups, story narrative, player and enemy shooting, scoring, destructible objects, enemy types, saving, loading, and end credits.&lt;/p&gt;

&lt;p&gt;My son has been helping to test the game, providing feedback on the controls, etc. It has been fun watching him explore the game mechanics on the big screen.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/30daysofcode02.jpg&quot; alt=&quot;30 Days of Code&quot; title=&quot;30 Days of Code&quot; /&gt;&lt;/p&gt;

&lt;p&gt;One area that has been a point of concern is shooting, which is currently achieved using the classic “right analogue stick + trigger” combination found in most shooting video games.&lt;/p&gt;

&lt;p&gt;However, my son has found this combination difficult to grasp (literally), due to his small hands. Therefore, I am actively exploring two mitigations.&lt;/p&gt;

&lt;p&gt;The first was to remove the need to press the trigger to shoot, instead, the shooting action would be automatic, based on the direction of the right analogue stick.&lt;/p&gt;

&lt;p&gt;The second option was to try a different controller, specifically the &lt;a href=&quot;https://www.8bitdo.com/sn30-pro-g-classic-or-sn30-pro-sn/&quot;&gt;8BitDo N30pro&lt;/a&gt;, which supports Windows, macOS, iOS, Android and Switch.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/30daysofcode03.jpg&quot; alt=&quot;30 Days of Code&quot; title=&quot;30 Days of Code&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I can see a combination of the two options being the best outcome.&lt;/p&gt;

&lt;h3 id=&quot;development&quot;&gt;Development&lt;/h3&gt;

&lt;p&gt;If you would like to review the thirty days of development history, the YouTube playlist below provides a glimpse into my daily progress.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLZurol1oWB4xbwKPMXrX7IgBT3i-lQWVu&quot;&gt;30 Days of Code - YouTube Playlist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The codebase, which can be viewed on &lt;a href=&quot;https://github.com/mswbull/masonPlatformer&quot;&gt;GitHub&lt;/a&gt;, should provide a solid foundation for a 2D platformer game.&lt;/p&gt;

&lt;p&gt;It includes numerous re-usable functions, which should make the game reasonable extensible, with options for new collectables, enemy types, destructible objects, etc.&lt;/p&gt;

&lt;p&gt;I also included a few “secret” game mechanics. For example, the shooter can be used to provide a small amount of vertical population, which allows the player to jump higher and longer. Although not immediately obvious, once discovered, it could provide an interesting option to be used within the level design.&lt;/p&gt;

&lt;p&gt;If you would like to build/test my game from the source, I would recommend the following GitHub commit, found in the master branch.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mswbull/masonPlatformer/tree/73f4794fa1de5476acb698ecb077f37b7d4c561c&quot;&gt;30 Days of Code - MVP Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You will need a copy of &lt;a href=&quot;https://www.yoyogames.com/&quot;&gt;GameMaker Studio 2&lt;/a&gt; to build the game.&lt;/p&gt;

&lt;h3 id=&quot;next-steps&quot;&gt;Next Steps&lt;/h3&gt;

&lt;p&gt;Although I have reached the end of my thirty-day challenge, I plan to continue developisng the game. The next phase will be to focus on art, story, and level design, which I can already tell will be more complex than the code itself.&lt;/p&gt;

&lt;p&gt;If you are interested, you can view my current backlog and all enhancements on GitHub (develop-x branches).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mswbull/masonPlatformer/&quot;&gt;masonPlatformer - Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mswbull/masonPlatformer/projects/1&quot;&gt;masonPlatformer - Backlog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I will also upload all of my art assets, which I plan to create using &lt;a href=&quot;https://www.aseprite.org/&quot;&gt;Aseprite&lt;/a&gt; (Windows, macOS, Linux) and &lt;a href=&quot;https://pixaki.com/&quot;&gt;Pixaki&lt;/a&gt; (iPadOS).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/30daysofcode04.jpg&quot; alt=&quot;30 Days of Code&quot; title=&quot;30 Days of Code&quot; /&gt;&lt;/p&gt;

&lt;p&gt;My son has informed me that he would like the game to be “ninja” themed, based on his current love for &lt;a href=&quot;https://www.lego.com/en-gb/themes/ninjago&quot;&gt;Lego Ninjago&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I am pleased with my progress over the past thirty days and the challenge accomplished its goal of forcing me to get “hands-on keyboard”.&lt;/p&gt;

&lt;p&gt;As with any coding, I stood on the shoulders of giants, leveraging the amazing work from the community, specifically &lt;a href=&quot;https://www.kenney.nl/&quot;&gt;Kenney&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/user/gamefromscratch&quot;&gt;Gamesfromscratch&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/channel/UC08QfQDLAd9D7aYPFgBUIng&quot;&gt;AdamCYounis&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/user/999Greyfox&quot;&gt;Shaun Spalding&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/user/ndurzo64&quot;&gt;Vimlark&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/channel/UCKCTmact-90hXpV2ns8GSsA&quot;&gt;DevDuck&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/user/uheartbeast&quot;&gt;HeartBeast&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/channel/UCTjPQWeqxGI9KAD_X6e8BAQ&quot;&gt;Ric&lt;/a&gt;, and &lt;a href=&quot;https://itch.io/&quot;&gt;itch.io&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Wed, 28 Apr 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/04/28/30-Days-of-Code-MVP/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/04/28/30-Days-of-Code-MVP/</guid>
      </item>
    
      <item>
        <title>Fedora 34</title>
        <description>&lt;p&gt;Earlier today, &lt;a href=&quot;https://www.redhat.com/&quot;&gt;Red Hat&lt;/a&gt; officially released &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora 34&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I would usually test pre-release versions of Fedora in a virtual machine, but due to other commitments, did not get the time with Fedora 34.&lt;/p&gt;

&lt;p&gt;As a result, I decided to jump straight into the deep end by upgrading my &lt;a href=&quot;/2020/10/08/linux-at-work/&quot;&gt;primary Linux laptop (Dell XPS 13 - 9300)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On paper, Fedora 34 looks like a reasonable update, with some notable new features:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Linux Kernel 5.11, which brings support for modern hardware capabilities primarily targetting AMD, as well as improved support for USB4 and Thunderbolt.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://forty.gnome.org/&quot;&gt;GNOME 40&lt;/a&gt; desktop environment, which includes an evolved design, which aims to streamline the user workflow.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;ZSTD compression for the BTRFS filesystem, enabling faster read, write performance and optimising disk space.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Systemd-oomd as default, providing better resource handling during out-of-memory (OOM) scenarios.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Pipewire replaces PulseAudio, delivering more flexible, higher-performance audio management.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;i3 Tiling Manager, which is used to control the appearance and placement of windows in a windowing system. i3 delivers performance improvements, flexibility and extensive keyboard shortcuts, ready for a &lt;a href=&quot;https://spins.fedoraproject.org/&quot;&gt;Fedora Spin&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://kde.org/plasma-desktop/&quot;&gt;KDE Plasma&lt;/a&gt; v5.21, which includes many new features, as well as support for Wayland and ARM.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The usual array of package and toolchain updates, including Ruby v3.0, Ruby on Rails v6.1, Golang v1.16, etc.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With twenty-five years of operating system upgrades behind me, I still default to a fresh install vs. an in-place upgrade. This approach, although more time-consuming, has historically helped to protect against errors, conflicts and performance degradation.&lt;/p&gt;

&lt;p&gt;However, with Fedora 34, I decided to change a habit of a lifetime and attempt the in-place upgrade. I was sceptical, especially when reviewing some of the horror stories on &lt;a href=&quot;https://www.reddit.com/r/Fedora/&quot;&gt;Reddit&lt;/a&gt;, but am pleased to report the upgrade from Fedora 33 was seamless.&lt;/p&gt;

&lt;p&gt;I suspect the Dell XPS 13 helped, as the hardware is well supported by the Linux community, with no need for third-party graphics drivers, etc.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fedora3401.jpg&quot; alt=&quot;GNOME 40&quot; title=&quot;GNOME 40&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although the switch to &lt;a href=&quot;https://pipewire.org/&quot;&gt;PipeWire&lt;/a&gt; for audio is arguably the most valuable update, the most obvious difference is the introduction of &lt;a href=&quot;https://forty.gnome.org/&quot;&gt;GNOME 40&lt;/a&gt;, which is the first major release of GNOME since 2011.&lt;/p&gt;

&lt;p&gt;GNOME 40 introduces a new versioning scheme, with a single number being incremented with each biannual release. This replaces the more complex versioning scheme, specifically v3.38.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2018/05/01/fedora-28/&quot;&gt;I first used the GNOME desktop environment in 2001 (v1.4.1)&lt;/a&gt; and although I have experimented with other desktop environments such as &lt;a href=&quot;https://kde.org/plasma-desktop/&quot;&gt;KDE&lt;/a&gt;, I have always found myself returning to GNOME.&lt;/p&gt;

&lt;p&gt;GNOME releases have not been without their controversy, but it is what I know best and aligns with my prefered workflow.&lt;/p&gt;

&lt;p&gt;The biggest change with GNOME 40 is the shift from a vertical flow, to a horizontal flow, which is immediately noticeable when you click the “Super” key or activate the “Activities Overview”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fedora3402.jpg&quot; alt=&quot;GNOME 40&quot; title=&quot;GNOME 40&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When looking to open an application, the “App Launcher” slides up from the bottom, delivering a consolidated “Activities Overview” that provides instant access to Workspaces, the App Grid and Dash.&lt;/p&gt;

&lt;p&gt;This evolved experience feels heavily inspired by Mission Control and Launchpad found in Apple macOS (which is not a bad thing).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fedora3403.jpg&quot; alt=&quot;GNOME 40&quot; title=&quot;GNOME 40&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The other key change is the default location of the Dash, which is now at the bottom and re-organised to show favourite and running applications. I do not personally use the Dash (or Dock with macOS), therefore its location is of little consequence (although I do position it on the left with macOS).&lt;/p&gt;

&lt;p&gt;GNOME 40 also includes a host of new default touchpad gestures, including three-finger swipes to toggle the “Activities Overview” and switch Workspaces. It should be noted that these gestures are only available with the Wayland display server, which is the default for GNOME 40 in Fedora 34 unless you have installed third-party Nvidia drivers.&lt;/p&gt;

&lt;p&gt;Alongside other polish, including new default applications and an updated settings menu, I have so far been very impressed with GNOME 40. The horizontal flow feels very natural and the less intrusive animations are much faster (prioritising productivity over visual effects).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fedora3404.jpg&quot; alt=&quot;GNOME 40&quot; title=&quot;GNOME 40&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have only been using Fedora 34 for a few hours, therefore have not thoroughly tested all of my &lt;a href=&quot;/2020/11/20/software-list-2020/&quot;&gt;applications&lt;/a&gt; (yet). However, so far, everything appears to be working well.&lt;/p&gt;
</description>
        <pubDate>Tue, 27 Apr 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/04/27/Fedora-34/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/04/27/Fedora-34/</guid>
      </item>
    
      <item>
        <title>30 Days of Code - Update</title>
        <description>&lt;p&gt;Last month I started a personal &lt;a href=&quot;/2021/03/18/30-Days-of-Code/&quot;&gt;coding challenge&lt;/a&gt;, dedicating thirty minutes a day for the next thirty days.&lt;/p&gt;

&lt;p&gt;I decided to build a platformer video game, inspired by &lt;a href=&quot;https://3drealms.com/catalog/crystal-caves_7/&quot;&gt;Crystal Caves&lt;/a&gt; by &lt;a href=&quot;https://3drealms.com/&quot;&gt;Apogee Software (3D Realms)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a kid (1991 - age seven), I played countless hours of Crystal Caves on PC (MS-DOS), an experience I hope to reproduce for my son.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/lf0ovAZ4R2E?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;This article marks the halfway point, specifically fifteen (non-consecutive) days, accounting for approximately six hours of development.&lt;/p&gt;

&lt;p&gt;I have successfully implemented the following features.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Created two rooms (levels).&lt;/li&gt;
  &lt;li&gt;Created wall, player, enemy, water pistol and water objects.&lt;/li&gt;
  &lt;li&gt;Created collision map for wall, player, enemy, water pistol and water objects.&lt;/li&gt;
  &lt;li&gt;Implemented player movement, specifically run and jump.&lt;/li&gt;
  &lt;li&gt;Implemented enemy object health.&lt;/li&gt;
  &lt;li&gt;Implemented enemy instance variability.&lt;/li&gt;
  &lt;li&gt;Created tile set, including nineteen tiles.&lt;/li&gt;
  &lt;li&gt;Created player sprite, including idle, running, jumping and falling animations.&lt;/li&gt;
  &lt;li&gt;Created enemy sprite, including idle, running, jumping and falling animations.&lt;/li&gt;
  &lt;li&gt;Created water pistol sprite, including water animation.&lt;/li&gt;
  &lt;li&gt;Created a room camera, which follows the player object.&lt;/li&gt;
  &lt;li&gt;Created three background layers with a parallax effect.&lt;/li&gt;
  &lt;li&gt;Created room transition object.&lt;/li&gt;
  &lt;li&gt;Created room transition animation.&lt;/li&gt;
  &lt;li&gt;Implemented game restart.&lt;/li&gt;
  &lt;li&gt;Implemented controller (PlayStation and Xbox) input.&lt;/li&gt;
  &lt;li&gt;Created menu, including save and load functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The short video below highlights a quick “playtest” session with my son (five years old).&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/yJtLD65kGMQ?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;He tried the core features of the game, as well as provided me with an early insight into potential player issues. For example, due to the size of his hands, he struggled to control the direction of the water pistol (right analogue stick) and fire (right trigger) simultaneously.&lt;/p&gt;

&lt;p&gt;I have also been producing short (less than 30 seconds) video demos of my daily progress.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLZurol1oWB4xbwKPMXrX7IgBT3i-lQWVu&quot;&gt;30 Days of Code - YouTube Playlist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, you can also view my backlog and code on GitHub.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mswbull/masonPlatformer/projects/1&quot;&gt;30 Days of Code - Backlog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mswbull/masonPlatformer&quot;&gt;30 Days of Code - GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My next update will be in approximately fifteen days, where I hope to have the core mechanics of the game complete. At which point I will focus on the visuals, story and level design.&lt;/p&gt;
</description>
        <pubDate>Mon, 05 Apr 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/04/05/30-Days-of-Code-Update/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/04/05/30-Days-of-Code-Update/</guid>
      </item>
    
      <item>
        <title>30 Days of Code</title>
        <description>&lt;p&gt;The past eighteen months have been fairly brutal, with high-pressure work deadlines and the global pandemic that has forced lockdowns, homeschooling, etc.&lt;/p&gt;

&lt;p&gt;These commitments/restrictions have not left must time for personal growth and one of my regrets is losing my “connection to the keyboard”.&lt;/p&gt;

&lt;p&gt;In short, I have not written a meaningful line of code in over a year.&lt;/p&gt;

&lt;p&gt;As a geek, this situation pains me… It also means that my core technical skills have become a little rusty.&lt;/p&gt;

&lt;p&gt;Therefore, I have decided to dedicate thirty minutes a day for the next thirty days (likely mornings or evenings) to write some code and hopefully learn a thing or two.&lt;/p&gt;

&lt;p&gt;I have decided to set myself the challenge to build a 2D platformer game, targeting my five-year-old son. I have not written a game in several years and have historically focused on &lt;a href=&quot;/2019/02/11/tank-arena/&quot;&gt;top-down shooters&lt;/a&gt;, therefore a platformer should be an interesting challenge.&lt;/p&gt;

&lt;p&gt;Considering my target audience, the game will need to be fairly simple, but I plan to take inspiration from classics such as &lt;a href=&quot;https://en.wikipedia.org/wiki/Super_Mario_World&quot;&gt;Super Mario World&lt;/a&gt; (SNES) and &lt;a href=&quot;https://en.wikipedia.org/wiki/Mega_Man_X_(video_game)&quot;&gt;Mega Man X&lt;/a&gt; (SNES), as well as games that dominated my childhood such as &lt;a href=&quot;https://3drealms.com/catalog/crystal-caves_7/&quot;&gt;Crystal Caves&lt;/a&gt; (PC) and &lt;a href=&quot;https://en.wikipedia.org/wiki/Alex_Kidd&quot;&gt;Alex Kidd&lt;/a&gt; (Sega Master System).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/30daysofcode01.jpg&quot; alt=&quot;Super Mario World&quot; title=&quot;Super Mario World&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I plan to use the cross-platform game engine &lt;a href=&quot;/2017/03/09/gamemaker-studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;, written in GML. The game will be made available for the PC with controller (PlayStation and Xbox) support.&lt;/p&gt;

&lt;p&gt;If you would like to follow my progress, I plan to post short status updates (demos) to YouTube.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLZurol1oWB4xbwKPMXrX7IgBT3i-lQWVu&quot;&gt;30 Days of Code - YouTube Playlist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also view my backlog and code on GitHub.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mswbull/masonPlatformer/projects/1&quot;&gt;30 Days of Code - Backlog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mswbull/masonPlatformer&quot;&gt;30 Days of Code - GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wish me luck! Expect another post in thirty days, which will hopefully include a video of the playable game.&lt;/p&gt;
</description>
        <pubDate>Thu, 18 Mar 2021 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2021/03/18/30-Days-of-Code/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/03/18/30-Days-of-Code/</guid>
      </item>
    
      <item>
        <title>Company Watch List</title>
        <description>&lt;p&gt;In the article “&lt;a href=&quot;/2021/02/21/Digital-Resources/&quot;&gt;Digital Resources&lt;/a&gt;” I shared a list of resources that I use to support my role working in Information Technology.&lt;/p&gt;

&lt;p&gt;Alongside the many technology blogs, communities, and open-source projects, I also keep a close eye on companies that are creating or applying technology in interesting ways. Therefore, outlined below is my current company watch list.&lt;/p&gt;

&lt;p&gt;It should be noted that this is an opinionated list, targeting my areas of interest and focus. For example, you will see specific resources related to the role of a &lt;a href=&quot;/2018/09/23/cto/&quot;&gt;CTO&lt;/a&gt;, covering software development, automation, artificial intelligence, etc.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blobr.io/&quot;&gt;Blobr&lt;/a&gt; - API Monetisation&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hasura.io/&quot;&gt;Hasura&lt;/a&gt; - GraphQL API Creation&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://strapi.io/&quot;&gt;Strapi&lt;/a&gt; - API Creation&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://datasaur.ai/&quot;&gt;Datasaur&lt;/a&gt; - ML Data Labeling&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fiddler.ai/&quot;&gt;Fiddler&lt;/a&gt; - ML Model Performance Management&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.augury.com/&quot;&gt;Augury&lt;/a&gt; - Machine Health Diagnostics&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://electrifai.net/&quot;&gt;ElectrifAi&lt;/a&gt; - Pre-Built ML Models&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://surveyauto.com/&quot;&gt;SurveyAuto&lt;/a&gt; - Data Visualisation&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://boastcapital.com/&quot;&gt;Boast&lt;/a&gt; - AI R&amp;amp;D Tax Credits&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zudy.com/&quot;&gt;Zudy&lt;/a&gt; - No-Code/Low-Code Development&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nodered.org/&quot;&gt;Node-RED&lt;/a&gt; - No-Code/Low-Code Development&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.appgyver.com/&quot;&gt;AppGyver&lt;/a&gt; - No-Code/Low-Code Development&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify&lt;/a&gt; - Web App Hosting&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://snyk.io/&quot;&gt;Snyk&lt;/a&gt; - Secure CI/CD&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://readme.com/&quot;&gt;ReadMe&lt;/a&gt; - Developer Documentation&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.contentful.com/&quot;&gt;Contentful&lt;/a&gt; - Headless CMS&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://buttercms.com/&quot;&gt;ButterCMS&lt;/a&gt; - Headless CMS&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.integromat.com/&quot;&gt;Integromat&lt;/a&gt; - Integration and Workflow Automation&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.levity.ai/&quot;&gt;Levity&lt;/a&gt; - Workflow Automation&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.uipath.com/&quot;&gt;UiPath&lt;/a&gt; - Robotic Process Automation&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://algorithmia.com/&quot;&gt;Algorithmia&lt;/a&gt; - MLOps&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sedai.io/&quot;&gt;Sedai&lt;/a&gt; - Infrastructure AIOps&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://reflect.run/&quot;&gt;Reflect&lt;/a&gt; - Automated Regression Testing&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.confluera.com/&quot;&gt;Confluera&lt;/a&gt; - Infrastructure Cyber Security&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://capacity.com/&quot;&gt;Capacity&lt;/a&gt; - AI Helpdesk&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://invideo.io/&quot;&gt;invideo&lt;/a&gt; - Video Creation&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.digma.io/&quot;&gt;Digma&lt;/a&gt; - Video Interactive Overlays&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arc.dev/&quot;&gt;Arc ()&lt;/a&gt; - Developer Talent Recruitment&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.usebraintrust.com/&quot;&gt;Braintrust&lt;/a&gt; - Talent Recruitment&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://slower.ai/&quot;&gt;Slower&lt;/a&gt; - Talent Recruitment&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.coded-minds.org/&quot;&gt;Coded Minds&lt;/a&gt; - Developer Education&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://make.toys/&quot;&gt;Toybox Labs&lt;/a&gt; - 3D Printing&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nuviainc.com/&quot;&gt;NUVIA&lt;/a&gt; - Silicon Design for HPC&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.robust.ai/&quot;&gt;Robust&lt;/a&gt; - Robot Software&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.spacemakerai.com/&quot;&gt;Spacemaker&lt;/a&gt; - Real Estate Collaberation&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://monzo.com/&quot;&gt;Monzo&lt;/a&gt; - Bank&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.babylonhealth.com/&quot;&gt;Babylon Health&lt;/a&gt; - Human Health Care&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://goforward.com/&quot;&gt;Forward Healthcare&lt;/a&gt; - Human Health Care&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://casper.com/&quot;&gt;Casper&lt;/a&gt; - Sleep&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hectare.farm/&quot;&gt;Hectare&lt;/a&gt; - Farming Supply Chain&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fitbark.com/&quot;&gt;FitBark&lt;/a&gt; - Dog Health Tracking&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oggii.com/&quot;&gt;Oggii&lt;/a&gt; - Dog Behaviour Analytics&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.whistle.com/&quot;&gt;Whistle&lt;/a&gt; - Pet Tracking&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://karakuri.com/&quot;&gt;Karakuri&lt;/a&gt; - Food Production&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xfarm.ag/&quot;&gt;XFarm&lt;/a&gt; - Agriculture Platform&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hopin.com/&quot;&gt;Hopin&lt;/a&gt; - Online Events Platform&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chargifi.com/&quot;&gt;Chargifi&lt;/a&gt; - Desk Management for Hybrid Working&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.argo.ai/&quot;&gt;Argo&lt;/a&gt; - Self-Driving Technology&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pureelectric.com/&quot;&gt;Pure Electric&lt;/a&gt; - Electric Transport&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wing.com/&quot;&gt;Wing&lt;/a&gt; - Drone Deliveries&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rapanuiclothing.com/&quot;&gt;Rapanui&lt;/a&gt; - Sustainable Clothing&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://uk.gymshark.com/&quot;&gt;Gymshark&lt;/a&gt; - Fitness Brand&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It should be noted that I have a connection with many of the companies on this list, either as a customer, partner and/or advisor.&lt;/p&gt;
</description>
        <pubDate>Thu, 11 Mar 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/03/11/Company-Watch-List/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/03/11/Company-Watch-List/</guid>
      </item>
    
      <item>
        <title>My Setup (Q1 2021)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;h3 id=&quot;home-setup&quot;&gt;Home Setup&lt;/h3&gt;

&lt;p&gt;At home, I switch between four devices (one desktop PC and three laptops).&lt;/p&gt;

&lt;p&gt;My daily driver is a custom-built desktop PC. It is primarily used for productivity, collaboration, software development, photo editing, virtual labs, gaming and game development (&lt;a href=&quot;/2019/02/11/tank-arena/&quot;&gt;GameMaker Studio 2&lt;/a&gt; and &lt;a href=&quot;https://www.construct.net/&quot;&gt;Construct 3&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X570 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 3950X 3.5GHz Base / 4.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance LPX DDR4 PC4-28800C18 3600MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 980 Pro M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e 3.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;Nvidia GeForce RTX 3090 FE 24GB GDDR6X&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;AMD Ryzen 3950X&lt;/a&gt;, &lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;Samsung 980 Pro&lt;/a&gt; and &lt;a href=&quot;/2021/02/08/GeForce-RTX-3090/&quot;&gt;Nvidia GeForce RTX 3090&lt;/a&gt; are premium components, delivering high-performance across a range of workloads (e.g. multi-threading, &lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;ray-tracing gaming&lt;/a&gt;, machine learning, video editing, etc.)&lt;/p&gt;

&lt;p&gt;When remote or travelling, my daily driver is a &lt;a href=&quot;/2019/11/18/razer-blade/&quot;&gt;Razer Blade 15 Advanced (Late-2019)&lt;/a&gt;. Similar to my custom-build PC, it is primarily used for productivity, collaboration, software development, photo editing, virtual labs and gaming.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Razer Blade 15 Advanced (Late-2019)&lt;/li&gt;
  &lt;li&gt;Intel i7-9750H 2.6GHz Base / 4.5GHz Boost (6C/12T)&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance Series 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 970 EVO Plus PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 2080 Max-Q 8GB GDDR6&lt;/li&gt;
  &lt;li&gt;15.6-inch 4K OLED Touch DCI-P3 HDR400 Display (3840x2160)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also have a 16-inch Apple MacBook Pro (NOV-2019), which is a secondary device providing native access to the Apple ecosystem for software development (e.g. Xcode), video editing, etc.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;16-inch MacBook Pro with Retina Display (NOV-2019)&lt;/li&gt;
  &lt;li&gt;Intel i9-9980HK 2.4GHz Base / 5.0GHz Boost (8C/16T)&lt;/li&gt;
  &lt;li&gt;32GB 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;1TB PCI-e SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;AMD Radeon Pro 5500M 8GB GDDR6&lt;/li&gt;
  &lt;li&gt;16-inch IPS P3 Display (3072x1920, 500nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although I use Linux across all devices via a virtual machine, I find it useful to have one Linux system running on bare-metal. &lt;a href=&quot;/2018/05/01/fedora-28/&quot;&gt;I use Fedora as my primary Linux distribution&lt;/a&gt;, running on a Dell XPS 13, which is a very capable laptop that avoids complexities such as dedicated graphics, which can be problematic with Linux.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;13-inch Dell XPS 13 (9300)&lt;/li&gt;
  &lt;li&gt;Intel i7-1065G7 1.30GHz Base / 3.9GHz Boost (4C/8T)&lt;/li&gt;
  &lt;li&gt;16GB 3733MHz LPDDR4x RAM&lt;/li&gt;
  &lt;li&gt;512GB M.2 PCIe NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel Iris Plus Graphics&lt;/li&gt;
  &lt;li&gt;13.4-inch Display (1920x1200, 500nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At home, the desktop PC and laptops connect to a &lt;a href=&quot;/2020/08/24/super-ultrawide/&quot;&gt;49-inch Super Ultra-Wide monitor, specifically the Samsung C49RG90&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The full specification of the monitor can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Model:&lt;/strong&gt; Samsung C49RG90&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Size:&lt;/strong&gt; 49-inch&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Type:&lt;/strong&gt; VA&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Curvature:&lt;/strong&gt; 1800R&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aspect Ratio:&lt;/strong&gt; 32:9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 5120x1440&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 120Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Variable Refresh Rate:&lt;/strong&gt; AMD FreeSync 2 (48-120Hz Range)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; 4ms (GTG)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Colour Accuracy:&lt;/strong&gt; 125% sRGB, 92% Adobe RGB, 95% DCI-P3&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;High Dynamic Range:&lt;/strong&gt; HDR1000&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 600cd/m2 (Typical), 1000cd/m2 (Peak)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is kept fairly minimal, the Razer Blade 15 Advanced, Apple MacBook Pro and Dell XPS connect to the monitor directly (DisplayPort v1.4), with peripherals connecting via a &lt;a href=&quot;https://www.ugreen.com/products/5-in-1-usb-c-hub-with-4k-hdmi&quot;&gt;UGREEN 5-in-1 USB-C Hub&lt;/a&gt;, which simplifies the cable management.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup24.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, for peripherals, I primarily use the &lt;a href=&quot;https://www.keychron.com/products/keychron-k1-wireless-mechanical-keyboard&quot;&gt;Keychron K1 Version 4&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/products/mice/mx-anywhere-3.910-005989.html&quot;&gt;Logitech MX Anywhere 3&lt;/a&gt; and &lt;a href=&quot;https://www.logitech.com/products/webcams/brio-4k-hdr-webcam.960-001106.html&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt;. The keyboard and mouse were selected as they include “easy-switch”, which makes it simple to toggle between multiple Bluetooth devices.&lt;/p&gt;

&lt;p&gt;The photo also highlights my microphone setup, which is a &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeti/&quot;&gt;Blue Yeti&lt;/a&gt; connected to the &lt;a href=&quot;https://www.bluemic.com/en-gb/products/yeticaster/&quot;&gt;Blue Yeticaster&lt;/a&gt;, which includes the Compass Boom Arm and Radius III Custom Shockmount. The microphone is primarily used for video conferencing, screencasting, webinars and podcasts.&lt;/p&gt;

&lt;p&gt;The photo below provides a closer look at the Samsung C49RG90 monitor.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup23.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Additional peripherals include headphones (&lt;a href=&quot;https://www.razer.com/gb-en/gaming-headsets/Razer-BlackShark-V2/RZ04-03230100-R3M1&quot;&gt;Razer BlackShark V2&lt;/a&gt; and &lt;a href=&quot;https://www.whathifi.com/bo/beoplay-h8/review&quot;&gt;Bang &amp;amp; Olufsen BeoPlay H8&lt;/a&gt;), controller (&lt;a href=&quot;https://www.xbox.com/accessories/controllers/elite-wireless-controller-series-2&quot;&gt;Microsoft Xbox Elite Series 2&lt;/a&gt;), flight controller (&lt;a href=&quot;https://www.flightsim.com/vbfs/content.php?16051-Review-Saitek-X-55-Rhino-HOTAS-System&quot;&gt;Saitek X-55&lt;/a&gt;), steering wheel (&lt;a href=&quot;http://gaming.logitech.com/en-gb/product/g29-driving-force&quot;&gt;Logitech G29&lt;/a&gt;) and virtual reality headset (&lt;a href=&quot;https://www.oculus.com/quest/&quot;&gt;Oculus Quest&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;As highlighted in the photo below, my desktop PC is hidden under the desk, with the case door exposed providing easy access to the components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup21.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk and matching pedestals are from &lt;a href=&quot;https://www.tcofficefurniture.co.uk/&quot;&gt;Three Counties Office Furniture&lt;/a&gt;. They are designed for corporate use, therefore are hard-wearing and include integrated cable management.&lt;/p&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/multi-use-guest-chairs/setu-chair.html&quot;&gt;Herman Miller Setu&lt;/a&gt; chair, which includes the Kinematic Spine to control resistance, automatically providing support as you recline.&lt;/p&gt;

&lt;h3 id=&quot;home-server&quot;&gt;Home Server&lt;/h3&gt;

&lt;p&gt;Alongside my desktop PC and laptops, I have a small home server, which is connected to my &lt;a href=&quot;/2018/11/10/samsung-q7fn/&quot;&gt;Samsung Q7FN QLED TV&lt;/a&gt;. The server manages local and cloud backups, media streaming, and collaboration (video conferencing).&lt;/p&gt;

&lt;p&gt;I selected an Apple Mac mini (NOV-2018) for the server, thanks to its excellent power-efficiency (150W max), high-performance I/O (4x Thunderbolt 3, 2x USB-A 3.0) and small form factor. The Mac mini also offers versatile video conferencing capabilities covering Apple FaceTime, Zoom, Microsoft Teams, Google Meet, Cisco WebEx, WhatsApp Video, etc.&lt;/p&gt;

&lt;p&gt;The full specification of the Mac mini can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple Mac mini (NOV-2018)&lt;/li&gt;
  &lt;li&gt;Intel Core i5-8500B 3.0GHz Base / 4.1GHz Boost (6C/6T)&lt;/li&gt;
  &lt;li&gt;32GB DDR4-2666 RAM&lt;/li&gt;
  &lt;li&gt;256GB PCI-e SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;2x 500GB Samsung Portable T5 SSD (USB 3.1 Gen2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 1256GB of local SSD storage is split across multiple drives for resilience, with automated backups being completed by &lt;a href=&quot;https://bombich.com/&quot;&gt;Carbon Copy Cloner&lt;/a&gt; and Cloud Storage via &lt;a href=&quot;https://www.dropbox.com/&quot;&gt;Dropbox&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To support my minimal (hidden-wire) &lt;a href=&quot;/2016/05/19/entertainment-setup/&quot;&gt;entertainment setup&lt;/a&gt;, the Mac mini is located in a cupboard under the stairs, connected directly to the Samsung One Connect box via HDMI.&lt;/p&gt;

&lt;p&gt;The cupboard is a little cluttered, with all the AV equipment (Sony STR-DN1050 AV Receiver, Sony PlayStation 5, Apple Mac mini, Apple TV 4K, Logitech Harmony Hub), but is rarely accessed and offers plenty of room for ventilation.&lt;/p&gt;

&lt;p&gt;The only peripheral connected directly to the Mac mini is a &lt;a href=&quot;https://www.logitech.com/products/webcams/brio-4k-hdr-webcam.960-001106.html&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt; webcam, which delivers phenomenal video quality (4K/30fps - HDR), a wide viewing angle (90-degree dFoV) and a surprisingly good stereo, dual omnidirectional integrated microphone.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup22.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This setup has been especially valuable during the UK pandemic lockdown, allowing my kids to connect quickly, easily and securely with their grandparents and friends on the big screen.&lt;/p&gt;

&lt;h3 id=&quot;work-setup&quot;&gt;Work Setup&lt;/h3&gt;

&lt;p&gt;At work, I use the Razer Blade 15 Advanced and/or Apple MacBook Pro (depending on the workload).&lt;/p&gt;

&lt;p&gt;I use two &lt;a href=&quot;http://www1.euro.dell.com/content/products/productdetails.aspx/dell-u2718q-monitor&quot;&gt;27-inch Dell U2718Q IPS HDR 4K&lt;/a&gt; monitors, connected via a &lt;a href=&quot;https://www.amazon.co.uk/StarTech-comThunderbolt-Dock-Windows-DisplayPort-Docking/dp/B07BJJX47G/&quot;&gt;StarTech Dual-DisplayPort to ThunderBolt 3 Adapter&lt;/a&gt;. To provide consistency, all other peripherals (e.g. Mouse, Keyboard, and Webcam) are the same as home.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/officesetup04.jpg&quot; alt=&quot;Office Setup&quot; title=&quot;Office Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk is very basic, with a simple dual-monitor stand. Similar to at home, I use a Herman Miller chair at work, however, due to the extended hours, it is the more robust &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/performance-work-chairs/mirra-2-chairs.html&quot;&gt;Mirra 2&lt;/a&gt;. This chair includes a phenomenal amount of adjustment, ensuring all-day comfort.&lt;/p&gt;
</description>
        <pubDate>Sun, 07 Mar 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/03/07/My-Setup-Q1-2021/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/03/07/My-Setup-Q1-2021/</guid>
      </item>
    
      <item>
        <title>Mac Pro Comparison</title>
        <description>&lt;p&gt;I recently &lt;a href=&quot;/2021/02/02/Ryzen-Build-Update/&quot;&gt;upgraded my primary PC&lt;/a&gt;, which I use for a wide range of purposes, including productivity, collaboration, software development, photo editing, virtual labs, gaming and game development.&lt;/p&gt;

&lt;p&gt;The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X570 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 3950X 3.5GHz Base / 4.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance LPX DDR4 PC4-28800C18 3600MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 980 Pro M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e 3.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;Nvidia GeForce RTX 3090 FE 24GB GDDR6X&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the time of writing, the total cost for this specification would be approximately £3500 (&lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;I paid £2500 for my upgrade&lt;/a&gt;). Although not cheap, this combination of a Processor, Memory, Storage and Graphics delivers exceptional performance across a range of workloads (e.g. gaming, development, video editing, machine learning, etc.)&lt;/p&gt;

&lt;p&gt;For example, the &lt;a href=&quot;/2021/02/08/GeForce-rtx-3090/&quot;&gt;Nvidia GeForce RTX 3090&lt;/a&gt; is the &lt;a href=&quot;https://benchmarks.ul.com/compare/best-gpus&quot;&gt;highest rated graphics card on the market today&lt;/a&gt;, powered by the Ampere architecture, delivering market-leading ray tracing and AI performance with enhanced Ray Tracing (RT) Cores, Tensor Cores, and new streaming multiprocessors.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://benchmarks.ul.com/3dmark&quot;&gt;3DMark&lt;/a&gt; result below highlights the relative global performance of my PC, which outperforms 99% of systems when targeting graphics-intensive workloads. This result indicates that spending more than £3500 on a PC would achieve diminishing returns.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/macprocomparison01.jpg&quot; alt=&quot;Mac Pro Comparison&quot; title=&quot;Mac Pro Comparison&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In 2019, Apple released the third generation &lt;a href=&quot;https://www.apple.com/mac-pro/&quot;&gt;Mac Pro&lt;/a&gt;, which replaced the infamous 2013 cylindrical (trash can) Mac Pro. The 2019 Mac Pro emphasised performance and flexibility, compromising size and power efficiency, which was a positive direction for “pro” users.&lt;/p&gt;

&lt;p&gt;Unfortunately, the Mac Pro commands a very premium price point, costing up to £53,448 with all “build to order” options added. Therefore, I was interested to understand how the Mac Pro (equivalent specification) would compare to my PC.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/macprocomparison02.jpg&quot; alt=&quot;Mac Pro Comparison&quot; title=&quot;Mac Pro Comparison&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, due to existing commercial partnerships, Apple continues to use Intel processors and AMD graphics across the “pro-line” of systems, which are both outperformed by their primary rivals (AMD processors and Nvidia graphics).&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://ark.intel.com/content/www/us/en/ark/products/193753/intel-xeon-w-3245-processor-22m-cache-3-20-ghz.html&quot;&gt;Intel Xeon W&lt;/a&gt; processor remains “stuck” on the legacy 14nm process, which simply can not compete with the 7nm process used by the AMD Ryzen 3000/5000 series.&lt;/p&gt;

&lt;p&gt;The same can be said for the &lt;a href=&quot;https://www.amd.com/en/graphics/workstations-radeon-pro-vega-ii&quot;&gt;AMD Radeon Pro Vega II&lt;/a&gt;, which gets annihilated by the Nvidia Geforce RTX 3090, especially with modern workloads focused on ray-tracing, artificial intelligence, etc.&lt;/p&gt;

&lt;p&gt;With these limitations, the Mac Pro (specification outlined above) is thoroughly outperformed by my PC, but also significantly more expensive.&lt;/p&gt;

&lt;p&gt;The Mac Pro would cost an additional £10,299, which is ridiculous. To put this price into perspective, you could build four equivalent Windows/Linux-based systems for the price of one Mac Pro.&lt;/p&gt;

&lt;p&gt;The only “unique” hardware capability exclusive to the Mac Pro is the Apple Afterburner PCI-e card, which accelerates the decoding of ProRes and ProRes RAW video codecs. However, this card is a “build to order” extra, costing £2,000.&lt;/p&gt;

&lt;p&gt;I love the Mac, macOS and the Mac ecosystem, but it is impossible to recommend the Mac Pro. I see a lot of creatives (mostly on YouTube) using a Mac Pro, which for 99.99% of use cases makes no sense.&lt;/p&gt;

&lt;p&gt;Even if the workload demands Apple proprietary software, such as Final Cut Pro or Logic Pro X, the return on investment of a Mac Pro could only be realised in very specific scenarios, where extreme performance against time-sensitive deadlines are a requirement. All other Mac-specific workloads would likely be better serviced by an iMac and/or the new Mac mini (powered by &lt;a href=&quot;/2020/11/18/Apple-M1/&quot;&gt;Apple Silicon&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;With this in mind, I would recommend (even die-hard Mac fans) explore &lt;a href=&quot;/2020/11/20/Software-List-2020/&quot;&gt;transitioning common workloads to leverage open-source and/or cross-platform software (e.g. Windows, Linux, macOS)&lt;/a&gt;. This approach ensures maximum flexibility and delivers an unbeatable return on investment.&lt;/p&gt;
</description>
        <pubDate>Fri, 26 Feb 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/02/26/Mac-Pro-Comparison/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/02/26/Mac-Pro-Comparison/</guid>
      </item>
    
      <item>
        <title>Digital Resources</title>
        <description>&lt;p&gt;This article lists the resources I use to support my role working in Information Technology (I have not included industry-specific resources).&lt;/p&gt;

&lt;p&gt;Although not exhaustive, I hope these resources can help motivate, inspire, and/or educate. It should be noted that this is an opinionated list, targeting my areas of interest and focus. For example, you will see specific resources related to the role of a &lt;a href=&quot;/2018/09/23/cto/&quot;&gt;CTO&lt;/a&gt;, JavaScript, Kubernetes, etc.&lt;/p&gt;

&lt;p&gt;I start with some of my resources (&lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt;), followed by third-party communities, web resources, curated lists, and podcasts.&lt;/p&gt;

&lt;h4 id=&quot;lifeintech&quot;&gt;LifeinTECH:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/development/&quot;&gt;Development&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/programming/&quot;&gt;Programming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/architecture/&quot;&gt;Architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/hardware/&quot;&gt;Hardware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/software/&quot;&gt;Software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/blockchain/&quot;&gt;Blockchain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/tag/artificial_intelligence/&quot;&gt;Artificial Intelligence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;communities&quot;&gt;Communities:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.ycombinator.com/&quot;&gt;Hacker News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackernoon.com/&quot;&gt;HackerNoon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/&quot;&gt;Stack Overflow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stackexchange.com/&quot;&gt;Stack Exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sitepoint.com/community/&quot;&gt;SitePoint Community&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kaggle.com/&quot;&gt;Kaggle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.indiehackers.com/&quot;&gt;Indie Hackers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lobste.rs/&quot;&gt;Lobsters&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hyperledger.org/participate/join-a-group&quot;&gt;Hyperledger Working Groups&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ethereum.org/en/community/&quot;&gt;Ethereum Community&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/&quot;&gt;YouTube - Thousands of Tech Videos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://twitter.com/&quot;&gt;Twitter - Thousands of Tech Thought Leaders&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reddit.com/&quot;&gt;Reddit - Thousands of Tech Communities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.slack.com/&quot;&gt;Slack - Thousands of Tech Channels&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.github.com/&quot;&gt;GitHub - Thousands of Projects&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;web-resources&quot;&gt;Web Resources:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://techcrunch.com/&quot;&gt;TechCrunch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.macrumors.com/&quot;&gt;MacRumors&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zdnet.com/blog/microsoft/&quot;&gt;All About Microsoft&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.thurrott.com/&quot;&gt;Paul Thurrott&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.anandtech.com/&quot;&gt;Anandtech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.xda-developers.com/&quot;&gt;XDA-Developers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://netflixtechblog.com/&quot;&gt;Netflix Tech Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://engineering.atspotify.com/&quot;&gt;Spotify Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.blog/category/engineering/&quot;&gt;GitHub Engineering Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stackoverflow.blog/&quot;&gt;Stack Overflow Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.docker.com/blog/&quot;&gt;Docker Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developers.googleblog.com/&quot;&gt;Google Developers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arxiv.org/ftp/arxiv/papers/1702/1702.01715.pdf&quot;&gt;Software Engineering at Google&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rework.withgoogle.com/&quot;&gt;re-Work with Google&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dropbox.tech/&quot;&gt;Dropbox Tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.atlassian.com/team-playbook&quot;&gt;Atlassian Team Playbook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cdn.cloudflare.steamstatic.com/apps/valve/Valve_NewEmployeeHandbook.pdf&quot;&gt;Valve Handbook for New Employees&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/basecamp/handbook&quot;&gt;Basecamp Handbook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://about.gitlab.com/handbook/&quot;&gt;GitLab Handbook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://works.hashicorp.com/&quot;&gt;How HashiCorp Works&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.fastforwardlabs.com/&quot;&gt;Cloudera Fast Forward&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://12factor.net/&quot;&gt;Twelve-Factor App&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.smartdatacollective.com/&quot;&gt;SmartDataCollective&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.datasciencecentral.com/&quot;&gt;Data Science Central&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://medium.com/kaggle-blog&quot;&gt;No Free Hunch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://a16z.com/&quot;&gt;Andreessen Horowitz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://medium.com/swlh&quot;&gt;The Startup&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://codescrum.medium.com/&quot;&gt;Codescrum Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://medium.com/@cfatechblog&quot;&gt;Chick-fil-A Tech Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dschool.stanford.edu/&quot;&gt;Stanford d.School&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pcper.com/&quot;&gt;PC Perspective&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.allthingsdistributed.com/&quot;&gt;All Things Distributed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.joelonsoftware.com/&quot;&gt;Joel on Software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/ukncsc/zero-trust-architecture&quot;&gt;Zero Trust Architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/public-apis/public-apis&quot;&gt;Public APIs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.protocol.com/&quot;&gt;Protocol&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://increment.com/&quot;&gt;Increment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dev.to/&quot;&gt;Dev&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;curated-lists&quot;&gt;Curated Lists:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/kilimchoi/engineering-blogs&quot;&gt;Software Engineering Blogs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/92bondstreet/cto&quot;&gt;Chief Technology Officer vs. Coder Thinker Organizer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/kuchin/awesome-cto&quot;&gt;Awesome CTO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.socalcto.com/2011/09/startup-cto.html&quot;&gt;Startup CTO Resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mateusz-brainhub/awesome-cto-resources&quot;&gt;Awesome CTO Resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/bayandin/awesome-awesomeness&quot;&gt;Awesome Awesomeness (List of Lists)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://free-for.dev/&quot;&gt;Free Tools for Developers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;podcasts&quot;&gt;Podcasts:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://a16z.com/podcasts/&quot;&gt;A16z Podcast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://5by5.tv/rubyonrails&quot;&gt;Ruby on Rails Podcast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://architechtshow.com/&quot;&gt;The Architecht Show&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://responsivewebdesign.com/podcast/&quot;&gt;A Responsive Web Design Podcast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/nodeup/id447667314&quot;&gt;NodeUp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/gb/podcast/interviews-business-and-tech/id1069746738&quot;&gt;CXO Talk - Interviews: Business and Tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://twit.tv/shows/this-week-in-tech&quot;&gt;This Week in Tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.podbean.com/podcast-detail/apz4e-34eeb/All-JavaScript-Podcasts-by-Devchat.tv&quot;&gt;All JavaScript Podcasts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fullstackradio.com/&quot;&gt;Full Stack Radio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tuxdigital.com/thisweekinlinux/&quot;&gt;This Week in Linux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://twit.tv/shows/twit-news&quot;&gt;TWiT News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://twit.tv/shows/windows-weekly&quot;&gt;Windows Weekly&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wired.co.uk/podcasts&quot;&gt;The WIRED Podcast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://5by5.tv/bigwebshow&quot;&gt;The Big Web Show&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tanzu.vmware.com/content/podcasts&quot;&gt;VMware Tanzu Podcasts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://destinationlinux.org/&quot;&gt;Destination Linux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://linuxactionnews.com/&quot;&gt;Linux Action News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pcper.com/category/podcast-article/&quot;&gt;PC Perspective Podcast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://linuxunplugged.com/&quot;&gt;LINUX Unplugged&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://go.forrester.com/what-it-means/&quot;&gt;Forrester - What It Means&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://twit.tv/shows/this-week-in-enterprise-tech&quot;&gt;This Week in Enterprise Tech (TWiET)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.delltechnologies.com/en-us/blog/series/technology-powers-x/&quot;&gt;Technology Powers X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.delltechnologies.com/en-us/perspectives/categories/trailblazers/&quot;&gt;Trailblazers with Walter Isaacson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kubernetespodcast.com/&quot;&gt;Kubernetes Podcast from Google&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://popcast-d9f7b6dc.simplecast.com/&quot;&gt;The POPCAST with Dan POP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.heavybit.com/library/podcasts/the-kubelist-podcast/&quot;&gt;The Kubelist Podcast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://syntax.fm/&quot;&gt;Syntax&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although not immediately obvious from the list, I leverage &lt;a href=&quot;https://www.youtube.com/&quot;&gt;YouTube&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/&quot;&gt;Twitter&lt;/a&gt; (&lt;a href=&quot;https://twitter.com/mswbull/following&quot;&gt;see who I am following&lt;/a&gt;), &lt;a href=&quot;https://www.reddit.com/&quot;&gt;Reddit&lt;/a&gt;, and &lt;a href=&quot;https://www.github.com/&quot;&gt;GitHub&lt;/a&gt; a lot, consuming and contributing to a wide range of community initiatives and open-source projects.&lt;/p&gt;
</description>
        <pubDate>Sun, 21 Feb 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/02/21/Digital-Resources/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/02/21/Digital-Resources/</guid>
      </item>
    
      <item>
        <title>GeForce RTX 3090</title>
        <description>&lt;p&gt;Earlier this month, I upgraded my primary Windows PC, which I documented in the following two articles:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;Ryzen Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2021/02/02/Ryzen-Build-Update/&quot;&gt;Ryzen Build - Update&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I did not immediately upgrade my old Nvidia GeForce RTX 2080 Ti. The &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/graphics-cards/30-series/&quot;&gt;Nvidia GeForce RTX 3000 Series&lt;/a&gt; graphics cards look great, however, with COVID-19 supply chain issues and the current cryptocurrency boom, availability and pricing have been a nightmare (with no end in sight).&lt;/p&gt;

&lt;p&gt;For example, the Nvidia GeForce RTX 3080 Founders Edition (FE) has an RRP of £649.00, but can rarely be found for less than £1500.00. The same can be said for AIB graphics cards, with the cheapest GeForce RTX 3080 RRP being £899.99 (with no availability).&lt;/p&gt;

&lt;p&gt;With that said, if you have the right network (and a bit of luck), it is possible to secure these cards at RRP.&lt;/p&gt;

&lt;p&gt;I recently purchased the &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/graphics-cards/30-series/rtx-3090/&quot;&gt;Nvidia GeForce RTX 3090 Founders Edition (FE)&lt;/a&gt;, which at RRP costs £1399.00, but is frequently sold for more than £2000.00.&lt;/p&gt;

&lt;p&gt;It should be noted, although positioned as such, I do not consider the GeForce RTX 3090 a pure gaming graphics card. Nvidia calls it a “Big Ferocious GPU (BFGPU)”, featuring 24GB GDDR6X memory, which makes it equivalent to a “TITAN-class” graphics cards, used for professional workloads (e.g. Machine Learning, Video Editing, etc.)&lt;/p&gt;

&lt;p&gt;The GeForce RTX 3090 FE is a monstrous graphics card in every sense of the word. The specification pushes every limit and the dimensions of the card are like nothing I have worked with before.&lt;/p&gt;

&lt;p&gt;A summary of the GeForce RTX 3090 FE specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Architecture Family: Ampere&lt;/li&gt;
  &lt;li&gt;Architecture: GA102&lt;/li&gt;
  &lt;li&gt;Process Technology: Samsung 8N&lt;/li&gt;
  &lt;li&gt;Transistors: 28.3 Billion&lt;/li&gt;
  &lt;li&gt;Streaming Multiprocessors: 82&lt;/li&gt;
  &lt;li&gt;NVIDIA CUDA Cores: 10496&lt;/li&gt;
  &lt;li&gt;Tensor Cores: 328&lt;/li&gt;
  &lt;li&gt;RT Cores: 82&lt;/li&gt;
  &lt;li&gt;Base Clock: 1.4GHz&lt;/li&gt;
  &lt;li&gt;Boost Clock: 1.7GHz&lt;/li&gt;
  &lt;li&gt;Memory: 24GB GDDR6X&lt;/li&gt;
  &lt;li&gt;Memory Speed: 19.5Gbps&lt;/li&gt;
  &lt;li&gt;Memory Interface: 384bit&lt;/li&gt;
  &lt;li&gt;Maximum Digital Resolution: 7680x4320 (8K)&lt;/li&gt;
  &lt;li&gt;Display Connectors: HDMI 2.1 and 3x DisplayPort 1.4a&lt;/li&gt;
  &lt;li&gt;Power Requirement: 350W (Recommended 750W PSU)&lt;/li&gt;
  &lt;li&gt;Power Connectors: 1x 12-pin (Equal to 2x PCI-e 8-pin)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The GeForce RTX 3090 pushes the GA102 chip to its limit, utilising 82 of the potential 84 Streaming Multiprocessors, which is up from 68 on the GeForce RTX 3080 (also based on GA102).&lt;/p&gt;

&lt;p&gt;The image below highlights the architecture.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309001.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The dimensions of the graphics card are equality impressive, requiring three full slots. The specific dimensions and weight can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Length: 313mm (12.3-inch)&lt;/li&gt;
  &lt;li&gt;Width: 138mm (5.4-inch)&lt;/li&gt;
  &lt;li&gt;Weight: 2189g (4.82pounds)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I always considered my GeForce RTX 2080 Ti a large graphics card, but the GeForce RTX 3090 FE makes it look small.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309002.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have included a selection of photos below highlighting the GeForce RTX 3090 FE.&lt;/p&gt;

&lt;p&gt;The first photo shows the retail box, which like other Nvidia products, feels high quality and delivers an excellent “unboxing” experience.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309003.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the lid removed, the box essentially acts as a presentation stand for the graphics card. You can also see the rear 110mm fan, which has the fins angled to pull air through the radiator.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309004.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the graphics card unboxed, you can see the front 110mm fan, which pushes air out of the rear three-slot exhaust.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309005.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The photo below shows a closer view of the rear three-slot exhaust and fan, which are larger than anything I have seen before on a graphics card.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309006.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The GeForce RTX 3090 FE includes a unique cooling design, which aims keeps noise to a minimum (48.9 dB under load) by leveraging large fans to exhaust hot air through the rear of the case.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309007.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This approach works well with my setup, as I have positioned my fans to pull cool air from the front, running over the system components, before being push out of the rear.&lt;/p&gt;

&lt;p&gt;The only watch-out is the internal fan on the GeForce RTX 3090 FE, which will likely blow warmer air over the CPU heatsink. It will be interesting to see if this design has an impact on my CPU temperature.&lt;/p&gt;

&lt;p&gt;The GeForce RTX 3090 FE includes a new 12-pin power connector, which is smaller and more convenient than the old two 8-pin connectors. However, at this time, very few power supply units include this connector, therefore an adapter required (not ideal).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309008.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thankfully, Nvidia does include the adapter in the box, therefore any (good quality) 750W power supply unit with two 8-pin connectors should be fully compatible.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309009.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The final photo shows the GeForce RTX 3090 FE installed, highlighting the size and unsightly power adopter.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309010.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I am pleased to report that my Phanteks Enthoo Evolv ATX Mid Tower Case continues to serve me well, with plenty of room to support the large dimensions of the GeForce RTX 3090 FE.&lt;/p&gt;

&lt;p&gt;Regarding performance, the GeForce RTX 3090 FE is unsurprisingly a beast, delivering a significant performance boost over my old GeForce RTX 2080 Ti.&lt;/p&gt;

&lt;p&gt;I haven’t had the opportunity to test every workload, but I suspect with this much power, the GeForce RTX 3090 FE will deliver previously unseen performance. Although not the best test (due to the low resolution), the screenshot below highlights my &lt;a href=&quot;http://www.3dmark.com/spy/18177215&quot;&gt;3DMark Time Spy result&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309011.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This score compares well against equivalent systems in the UK, ranking within the top 50% (just over average).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx309012.jpg&quot; alt=&quot;Nvidia GeForce RTX 3090&quot; title=&quot;Nvidia GeForce RTX 3090&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Recognising these are 24x7 stable settings, running with air cooling, without any extreme overclocking, custom bios or voltage modifications, I am pleased with the results.&lt;/p&gt;

&lt;p&gt;Over the coming weeks, I plan to put the GeForce RTX 3090 through its paces across a range of workloads, specifically applications that can showcase the raw horsepower (streaming multiprocessors) and utilise the 24GB GDDR6X memory.&lt;/p&gt;
</description>
        <pubDate>Mon, 08 Feb 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/02/08/GeForce-RTX-3090/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/02/08/GeForce-RTX-3090/</guid>
      </item>
    
      <item>
        <title>Ryzen Build - Update</title>
        <description>&lt;p&gt;In my previous article “&lt;a href=&quot;/2021/01/26/Ryzen-Build/&quot;&gt;Ryzen Build&lt;/a&gt;”, I detailed the specification of my pending PC upgrade, which will replace my ageing &lt;a href=&quot;/2016/04/01/skylake-build/&quot;&gt;Intel i7-6700K&lt;/a&gt; from 2016.&lt;/p&gt;

&lt;p&gt;This article will focus on the build itself and my initial testing.&lt;/p&gt;

&lt;h3 id=&quot;specification&quot;&gt;Specification&lt;/h3&gt;

&lt;p&gt;As a reminder, the full specification of my new PC can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI MAG X570 Tomahawk WiFi&lt;/li&gt;
  &lt;li&gt;AMD Ryzen 9 3950X 3.5GHz Base / 4.7GHz Boost (16C/32T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;64GB Patriot Viper Steel DDR4-3600 (18-20-20-38)&lt;/li&gt;
  &lt;li&gt;1TB Samsung 980 Pro M.2 PCI-e 4.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e 3.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;PNY GeForce RTX 2080 Ti 11GB XLR8 Gaming Overclocked Edition&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thankfully, I was able to reuse a lot of components from my existing PC, specifically the case, power supply unit and graphics card. Not only did this reduce the cost of the upgrade (approximately £1000), but also simplified the build process, as the power supply unit and I/O cables were already connected, routed, and mounted.&lt;/p&gt;

&lt;h3 id=&quot;build&quot;&gt;Build&lt;/h3&gt;

&lt;p&gt;I started the build process by installing the AMD Ryzen 3950X processor, Patriot Viper Steel memory, Samsung 980 Pro SSD and the Samsung PM981 SSD. This included the two SSD heatsinks, supplied with the MSI MAG X570 Tomahawk WiFi motherboard.&lt;/p&gt;

&lt;p&gt;The photo below shows the Samsung 980 Pro SSD installed before the heatsink was mounted.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild02.jpg&quot; alt=&quot;Ryzen Build&quot; title=&quot;Ryzen Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Samsung 980 Pro SSD delivers impressive performance, with up to 7,000MB/s read and 5,100MB/s write.&lt;/p&gt;

&lt;p&gt;Once complete, I mounted the motherboard in the case and connected the EVGA SuperNova P2 1000W power supply unit. The MSI MAG X570 Tomahawk WiFi motherboard requires the standard 24-pin ATX power connector, 8-pin auxiliary connector, as well as an additional 4-pin connector.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild03.jpg&quot; alt=&quot;Ryzen Build&quot; title=&quot;Ryzen Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thankfully I had all of the required power supply unit modular cables, even though my existing Intel i7-6700K PC did not require the additional 4-pin connector.&lt;/p&gt;

&lt;p&gt;The photo below shows the processor and memory, with the Noctua NH-D15 AM4 mounting bracket ready for the heatsink. Recognising the size of the Noctua NH-D15 cooler, this is likely the last photo that delivers a clear view of the installed processor and memory.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild04.jpg&quot; alt=&quot;Ryzen Build&quot; title=&quot;Ryzen Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The next phase of the build is always the most nerve-racking, applying the thermal paste and installing the Noctua NH-D15 cooler. In reality, &lt;a href=&quot;https://www.youtube.com/watch?v=EUWVVTY63hc&amp;amp;t=911s&quot;&gt;testing has shown&lt;/a&gt; that if you are using a processor with an integrated heat spreader (like the AMD Ryzen 3950X), the risk of incorrectly applying thermal paste is relatively low. Therefore, I proceeded with the “pea-sized blob” method, which has served me well in the past.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild05.jpg&quot; alt=&quot;Ryzen Build&quot; title=&quot;Ryzen Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I did not use the included &lt;a href=&quot;https://noctua.at/en/nt-h1-3-5g&quot;&gt;Noctua NT-H1&lt;/a&gt; thermal paste, instead, I selected &lt;a href=&quot;https://www.thermal-grizzly.com/en/products/16-kryonaut-en&quot;&gt;Thermal Grizzly Kryonaut High-Performance Thermal Paste&lt;/a&gt;. This is a personal preference, which I suspect has minimal real-world impact on temperatures.&lt;/p&gt;

&lt;p&gt;Once complete, I mounted the massive Noctua NH-D15 cooler.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild06.jpg&quot; alt=&quot;Ryzen Build&quot; title=&quot;Ryzen Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I installed the PNY GeForce RTX 2080 Ti graphics card, which due to the size and weight has visible flex when the case is stood vertically (likely occurred over the past two-years of usage).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild07.jpg&quot; alt=&quot;Ryzen Build&quot; title=&quot;Ryzen Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, I connected and validated all motherboard connections, specifically the power supply unit, fans, I/O, etc.&lt;/p&gt;

&lt;p&gt;Overall, I am pleased with the build, which is relatively clean thanks to the majority of the cables being routed via the back-panel of the case.&lt;/p&gt;

&lt;p&gt;Regarding cooling, the air is drawn in from the front of the case, running over the motherboard, processor and graphics card, before being pushed out of the rear.&lt;/p&gt;

&lt;h3 id=&quot;testing&quot;&gt;Testing&lt;/h3&gt;

&lt;p&gt;With the build complete, I switched my focus to testing, specifically optimising the BIOS settings, processor and memory frequencies, as well as the memory timings (which for Ryzen-based systems can have a significant impact on performance).&lt;/p&gt;

&lt;p&gt;Unfortunately, I immediately encountered an issue with the Patriot Viper Steel memory, which refused to POST with the XMP profile enabled (either via the XMP option or manually defined).&lt;/p&gt;

&lt;p&gt;I knew this was a risk when purchasing the memory, which was not officially “approved” by &lt;a href=&quot;https://www.msi.com/Motherboard/support/MAG-X570-TOMAHAWK-WIFI#support-mem-19&quot;&gt;MSI&lt;/a&gt;. Memory compatibility is a real lottery with motherboard manufacturers, with each manufacture configuring the sub-timings and voltages slightly differently, which can impact performance and stability.&lt;/p&gt;

&lt;p&gt;This issue forced an undesirable amount of testing, requiring systematically testing of memory frequencies, timings, and voltages.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild08.jpg&quot; alt=&quot;Ryzen Build&quot; title=&quot;Ryzen Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The best I could achieve (stable) with the Patriot Viper Steel memory was 1600MHz (3200MHz) at CL 16 / tRCD 20 / tRP 20 / tRAS 36 / tRC 74 / CR 1T. No amount of additional voltage (memory and/or controller) achieved improved stability.&lt;/p&gt;

&lt;p&gt;I had already confirmed the FCLK (Infinity Fabric) was stable at 1800MHz, therefore I was disappointed not to be able to raise the memory frequency above 1600MHz. The tighter timings did help offset the performance impact, but it was still far from ideal (and below the manufacturer specification of the memory).&lt;/p&gt;

&lt;p&gt;With these memory settings and a 1:1 Memory and FCLK frequency, I achieved the following benchmark results.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild09.jpg&quot; alt=&quot;Ryzen Build&quot; title=&quot;Ryzen Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although the results are certainly acceptable, I was disappointed by the memory compatibility, therefore I decided to RMA the Patriot Viper Steel memory, replacing it with the more expensive (+ £70) Corsair Vengeance LPX 64GB DDR4 PC4-28800C18 3600MHz memory.&lt;/p&gt;

&lt;p&gt;On paper, the Corsair Vengeance LPX is identical to the Patriot Viper Steel, with a 1800MHz (3600MHz) frequency and CL 18 timings. However, the Corsair Vengeance LPX is officially approved by MSI.&lt;/p&gt;

&lt;p&gt;Thankfully, by disconnecting one fan from the Noctua NH-D15 cooler, the memory could be swapped without removing the heatsink (which would have been a real pain).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild10.jpg&quot; alt=&quot;Ryzen Build&quot; title=&quot;Ryzen Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the Corsair Vengeance LPX memory installed, I cleared the BIOS and selected the XMP profile via the XMP option. The system booted into Windows without any errors, which after several hours or testing with the Patriot Viper Steel memory was a positive result.&lt;/p&gt;

&lt;p&gt;Finally, I configured my 24x7 settings and re-ran the suite of benchmarks, which validated the system stability and achieved the following performance results.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild11.jpg&quot; alt=&quot;Ryzen Build&quot; title=&quot;Ryzen Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, I am pleased with the build and performance, which has delivered excellent improvements over my old Intel i7-6700K PC.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild12.jpg&quot; alt=&quot;Ryzen Build&quot; title=&quot;Ryzen Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unsurprisingly, the biggest gains can be seen across applications that favour multi-threading, allowing the 16 Core / 32 Thread AMD Ryzen 3950X to demonstrate its potential.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, my new PC has easily met my expectations, delivering a significant performance boost across my common workloads.&lt;/p&gt;

&lt;p&gt;The memory testing was both frustrating and eye-opening, highlighting the importance of motherboard and memory compatibility, which can have a significant impacted on performance and stability (even with comparable memory).&lt;/p&gt;

&lt;p&gt;Looking ahead, I plan to watch the graphics card market closely, hoping to see the Nvidia GeForce RTX 3000 Series stock and prices stabilise. At which point, I will likely explore an upgrade, helping to deliver an additional performance boost across gaming, machine learning, and video editing workloads.&lt;/p&gt;
</description>
        <pubDate>Tue, 02 Feb 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/02/02/Ryzen-Build-Update/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/02/02/Ryzen-Build-Update/</guid>
      </item>
    
      <item>
        <title>Apple M1 Management</title>
        <description>&lt;p&gt;Over the past couple of months, I have been testing the new Apple MacBook Air, equipped with the &lt;a href=&quot;/2020/11/18/Apple-M1/&quot;&gt;Apple M1 System on a Chip (SoC)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The three articles linked below document my initial thoughts and findings.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/11/18/Apple-M1/&quot;&gt;Apple M1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/12/19/Docker-on-Apple-M1/&quot;&gt;Docker on Apple M1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/12/29/Docker-M1-ARM64/&quot;&gt;Docker + M1 + ARM64&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alongside performance, compatibility and battery life, I have been testing enterprise management, looking to ensure that Apple Silicon equipped Mac’s can be enrolled and managed alongside their Intel counterparts.&lt;/p&gt;

&lt;p&gt;The screenshots below highlight the enterprise enrollment experience using &lt;a href=&quot;https://www.microsoft.com/en-gb/microsoft-365/microsoft-endpoint-manager&quot;&gt;Microsoft Endpoint Manager&lt;/a&gt; (AKA Microsoft Intune) running on &lt;a href=&quot;https://www.apple.com/uk/macos/big-sur/&quot;&gt;macOS 11 Big Sur&lt;/a&gt;. I also tested &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/microsoft-defender-atp-mac&quot;&gt;Microsoft Defender ATP for Mac&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Enrollment is achieved is via &lt;a href=&quot;https://docs.microsoft.com/en-us/mem/intune/user-help/enroll-your-device-in-intune-macos-cp&quot;&gt;Microsoft Company Portal&lt;/a&gt;, which can be downloaded from the &lt;a href=&quot;https://go.microsoft.com/fwlink/?linkid=853070&quot;&gt;Microsoft website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Similar to Apple iOS and Google Android, Microsoft Company Portal is a standalone application that is used to enable the following capabilities:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Device enrollment to access business resources, including Office 365, Productivity, Collaboration, and data (via OneDrive).&lt;/li&gt;
  &lt;li&gt;Configure Single Sign-On (SSO) to simplify authentication.&lt;/li&gt;
  &lt;li&gt;Access business resources via company-issued certificates.&lt;/li&gt;
  &lt;li&gt;Browse and install approved business applications.&lt;/li&gt;
  &lt;li&gt;View and manage enrolled devices, including the ability to remote erase, etc.&lt;/li&gt;
  &lt;li&gt;Links to key business contacts for support, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the time of writing, the Company Portal application for Mac is Intel-only (x86 architecture), therefore runs via Rosetta 2 emulation on Apple Silicon.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1management01.jpg&quot; alt=&quot;Apple M1 Management&quot; title=&quot;Apple M1 Management&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once installed, the user must log in with a Microsoft Account (Microsoft User Principle Name) that is connected to a corporate environment, which will automatically check the device management status.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1management02.jpg&quot; alt=&quot;Apple M1 Management&quot; title=&quot;Apple M1 Management&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Microsoft has done a nice job making user privacy transparent, delivered in an easy to consume format. Assuming the user agrees with the privacy statements, the enrollment process will begin.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1management03.jpg&quot; alt=&quot;Apple M1 Management&quot; title=&quot;Apple M1 Management&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Similar to Apple iOS and iPadOS, a macOS management profile needs to be installed, which includes the pre-defined configuration setup using Microsoft Endpoint Manager.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1management04.jpg&quot; alt=&quot;Apple M1 Management&quot; title=&quot;Apple M1 Management&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once complete, the device is checked for compliance. If there are any gaps (e.g. Password Policy, Encryption), the user is prompted to make the required updates.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1management05.jpg&quot; alt=&quot;Apple M1 Management&quot; title=&quot;Apple M1 Management&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, the enterprise enrollment process will install any pre-defined business-critical software. I configured Microsoft Defender ATP for Mac, which is also running via Rosetta 2 emulation on Apple Silicon.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1management06.jpg&quot; alt=&quot;Apple M1 Management&quot; title=&quot;Apple M1 Management&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In conclusion, I am pleased to report that everything appears to be working as designed, which highlights (again) just how impressive Rosetta 2 is at emulating x86 architecture applications on Apple Silicon.&lt;/p&gt;

&lt;p&gt;The enrolment process was seamless and the Microsoft Company Portal and Microsoft Defender ATP applications did not any negatives running via emulation. I also tested a full remote-wipe, which initiated instantly, forcing the Mac to restart and prompt for a remote recovery (reinstall macOS 11 Big Sur).&lt;/p&gt;

&lt;p&gt;Overall, I am pleased to see that the transition to Apple Silicon does not impact the ability to enable device management within an enterprise.&lt;/p&gt;
</description>
        <pubDate>Wed, 27 Jan 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/01/27/Apple-M1-Management/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/01/27/Apple-M1-Management/</guid>
      </item>
    
      <item>
        <title>Ryzen Build</title>
        <description>&lt;p&gt;The last time I completed a major upgrade of my primary PC was 2016 when &lt;a href=&quot;/2016/04/01/skylake-build/&quot;&gt;I switched to Intel’s Skylake architecture&lt;/a&gt;. I documented the build process and subsequent upgrades in the following three articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/04/01/skylake-build/&quot;&gt;Skylake Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/04/12/skylake-overclocking/&quot;&gt;Skylake Overclocking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;GeForce RTX&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full specification of my current (soon to be old) PC can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus Maximus VIII Hero Alpha (Intel Z170)&lt;/li&gt;
  &lt;li&gt;Intel Core i7-6700K 4.0GHz @ 4.6GHz (4C/8T)&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;32GB Corsair Vengeance LPX DDR4 PC4-24000C15 (15-17-17-35)&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;PNY GeForce RTX 2080 Ti 11GB XLR8 Gaming Overclocked Edition&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since the launch of Skylake, Intel has provided little incentive to upgrade. For example, the current 11th generation processors are still based on the underlying Skylake architecture. Therefore, I have been playing the long game, waiting for more transformative technologies such as PCI-e 4.0 to become mainstream.&lt;/p&gt;

&lt;p&gt;In 2019, with the release of the AMD Zen 2 (Ryzen 3000 Series) architecture, things started to get interesting! For the first time in over two decades, AMD surpassed Intel by delivering an architecture with competitive instructions per clock (IPC) performance, alongside a significant jump in the number of cores and threads available across their consumer range (up to 16 Cores / 32 Threads).&lt;/p&gt;

&lt;p&gt;Thanks to the benefits of the 7 nanometer MOSFET node from TSMC, the Zen 2 architecture was also aggressively priced, undercutting the competition by a significant margin.&lt;/p&gt;

&lt;p&gt;In 2020, AMD built on the success of Zen 2 with the launch of Zen 3 (Ryzen 5000 Series), which maintained the 7 nanometers process but delivered other optimisations that resulted in an impressive 15% to 19% performance improvement.&lt;/p&gt;

&lt;p&gt;With the release of Zen 3, combined with PCI-e 4.0 going mainstream, I felt the time was right to explore an upgrade of my primary PC.&lt;/p&gt;

&lt;h3 id=&quot;requirements&quot;&gt;Requirements&lt;/h3&gt;

&lt;p&gt;Working in IT, I utilise my PC for a wide range of different workloads, including productivity, collaboration, software development, photo editing, video editing, video effects, virtual labs, gaming and game development.&lt;/p&gt;

&lt;p&gt;As my primary PC, my goal has always been to build a high-performance system that balances these workloads. For example, if the system was used exclusively for gaming, I would target a lower core-count CPU with a higher clock frequency. However, with video editing and virtual labs, a high core-count can make a big difference.&lt;/p&gt;

&lt;p&gt;With these workloads in mind, I have defined the following hardware requirements:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Respectable VRM Thermal Performance&lt;/li&gt;
  &lt;li&gt;Minimum 12 Core / 24 Thread Processor&lt;/li&gt;
  &lt;li&gt;Minimum 64GB DDR4 3600MHz Memory&lt;/li&gt;
  &lt;li&gt;1x PCI-e 4.0 x16 Slot with Three Slot Clearence&lt;/li&gt;
  &lt;li&gt;2x M.2 Slots (PCI-e 4.0 x4) for Storage&lt;/li&gt;
  &lt;li&gt;Intel Wireless Controller compatible with Wi-Fi 6 (802.11ax)&lt;/li&gt;
  &lt;li&gt;Minimum 1x USB 3.2 Gen 2 (10Gb/s) Type-C&lt;/li&gt;
  &lt;li&gt;Minimum 2x USB 3.2 Gen 2 (10Gb/s) Type-A&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although some of the requirements are fairly self-explanatory, a few require additional context.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;VRM thermal performance is important when targeting a processor with a high core-count, especially if overclocked.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The 12 Core / 24 Thread processor guarantees a significant multi-core performance improvement over my current Intel Core i7-6700K (Quad Core / Eight Thread). It also provides head-room for gaming, knowing that the PlayStation 5 and Xbox Series X are both equipped with 8 Core / 16 Thread Zen2 processors.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The three slot clearance for the PCI-e 4.0 x16 slot ensures compatibility with Nvidia 3000 graphics cards (for example, the Nvidia GeForce 3090).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Wi-Fi 6 (802.11ax), ideally integrated into the motherboard, delivers 37% better performance and 75% improved latency over Wi-Fi 5 (802.11ac). My home network is 802.11ax compatible via the &lt;a href=&quot;https://www.asus.com/Networking-IoT-Servers/WiFi-6/All-series/RT-AX86U&quot;&gt;Asus RT-AX86U Router&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am not loyal to any specific hardware manufacture or brand and am not interested in cosmetic features, such as RGB lighting, etc. Therefore, the system can be considered high-performance workhorse, built at the best possible price.&lt;/p&gt;

&lt;h3 id=&quot;specification&quot;&gt;Specification&lt;/h3&gt;

&lt;p&gt;The specification below highlights my proposed build, with the new components in bold.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;MSI MAG X570 Tomahawk WiFi&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;AMD Ryzen 9 3950X 3.5GHz Base / 4.7GHz Boost (16C/32T)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;64GB Patriot Viper Steel DDR4-3600 (18-20-20-38)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;1TB Samsung 980 Pro M.2 PCI-e 4.0 NVM-e SSD&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e 3.0 NVM-e SSD&lt;/li&gt;
  &lt;li&gt;PNY GeForce RTX 2080 Ti 11GB XLR8 Gaming Overclocked Edition&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Knowing that my current system is built on a strong foundation, I can re-use many components. For example, my 1000W Power Supply Unit (PSU) delivers more than enough power for the new build and the Noctua NH-D15 CPU cooler, which was first released in 2014, remains one of the best air coolers on the market.&lt;/p&gt;

&lt;p&gt;Selecting the motherboard was the most difficult part of the build, recognising that there are hundreds of X570 motherboards on the market. Through my analysis, I believe the &lt;a href=&quot;https://www.msi.com/Motherboard/MAG-X570-TOMAHAWK-WIFI&quot;&gt;MSI MAG X570 Tomahawk WiFi&lt;/a&gt; delivers the best price to performance, with high-quality components/features at a reasonable £199. The motherboard includes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;4x Memory Slots (Supports 128GB)&lt;/li&gt;
  &lt;li&gt;1x PCI-e 4.0 x16 Slot&lt;/li&gt;
  &lt;li&gt;1x PCI-e 4.0 x16 Slot (Supports x4 Mode)&lt;/li&gt;
  &lt;li&gt;2x PCI-e 3.0 x1 Slots&lt;/li&gt;
  &lt;li&gt;2x M.2 Slots (PCI-e 4.0 x4) with Heatsinks&lt;/li&gt;
  &lt;li&gt;6x SATA 6Gb/s Ports&lt;/li&gt;
  &lt;li&gt;1x Realtek 8125B 2.5Gb/s LAN Controller&lt;/li&gt;
  &lt;li&gt;Intel Wi-Fi 6 AX200 and Bluetooth 5.1&lt;/li&gt;
  &lt;li&gt;5x USB 3.2 Gen 2 (10Gb/s) Type-A and Type-C&lt;/li&gt;
  &lt;li&gt;4x USB 3.2 Gen 1 (5Gb/s) Type-A&lt;/li&gt;
  &lt;li&gt;6x USB 2.0 Type-A&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Looking at the &lt;a href=&quot;https://www.techspot.com/review/2020-msi-x570-tomahawk/&quot;&gt;TechSpot X570 VRM analysis&lt;/a&gt;, the MSI MAG X570 Tomahawk WiFi consistently delivered top performance. This is an impressive result, but even more so when you consider the competing Gigabyte X570 Aorus Xtreme costs £769.99.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ryzenbuild01.jpg&quot; alt=&quot;TechSpot - MSI MAG X570 Tomahawk WiFi&quot; title=&quot;TechSpot - MSI MAG X570 Tomahawk WiFi&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The MSI MAG X570 Tomahawk WiFi is likely a byproduct of the bad press MSI received with their first-generation X570 motherboards, which underperformed, leaving many of their loyal fans disappointed. Therefore, the MSI MAG X570 Tomahawk WiFi can be considered an apology and a gesture of goodwill (which I will gladly accept).&lt;/p&gt;

&lt;p&gt;The most controversial part of the build is probably the choice to go with a Ryzen 3950X (Zen 2), instead of the new Ryzen 5000 Series (Zen 3).&lt;/p&gt;

&lt;p&gt;This decision was primarily driven by price to performance, as I was able to purchase the Ryzen 3950X for £430, which is nearly half the price of the Ryzen 5950X at £829.99. The performance difference between these two products is between 15% and 19% depending on the workload, making the additional cost difficult to justify.&lt;/p&gt;

&lt;p&gt;Regarding the graphics card, I have chosen to retain my &lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;Nvidia GeForce RTX 2080 Ti&lt;/a&gt; (for now), primarily due to the launch challenges experienced with the Nvidia GeForce RTX 3000 Series, which remain in very short supply and therefore heavily overpriced. The Nvidia GeForce RTX 2080 Ti remains a very powerful graphics card, capable of Ray Tracing, therefore will continue to meet my immediate needs until the market stabilises.&lt;/p&gt;

&lt;p&gt;The approximate cost of the upgrade was £1000 (£430 on the CPU), which I feel is reasonable considering the current economic climate. As with all technology investments, the longer you are willing to wait, the more you can save (as new products displace old ones). For example, I could see me waiting for the inevitable Nvidia GeForce RTX 3080 Ti/Super before upgrading my graphics card.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, I am excited to see how my new build will perform!&lt;/p&gt;

&lt;p&gt;On paper, the additional twelve cores and twenty-eight threads, alongside 64GB memory and 1TB storage rated at 7000MB/s read should deliver a healthy boost in performance, especially across multi-threaded workloads.&lt;/p&gt;

&lt;p&gt;Once the components arrive, I plan to document the build process and share the performance results.&lt;/p&gt;
</description>
        <pubDate>Tue, 26 Jan 2021 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2021/01/26/Ryzen-Build/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2021/01/26/Ryzen-Build/</guid>
      </item>
    
      <item>
        <title>Docker + M1 + ARM64</title>
        <description>&lt;p&gt;Over the past few weeks, I have been testing the new Apple MacBook Air, equipped with the Apple M1 System on a Chip (SoC).&lt;/p&gt;

&lt;p&gt;The two articles linked below document my initial thoughts and findings.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/11/18/Apple-M1/&quot;&gt;Apple M1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/12/19/Docker-on-Apple-M1/&quot;&gt;Docker on Apple M1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Docker compatibility is an important part of my workflow, therefore I was to see the release of the public preview earlier this month.&lt;/p&gt;

&lt;p&gt;As documented in the article “&lt;a href=&quot;/2020/12/19/Docker-on-Apple-M1/&quot;&gt;Docker on Apple M1&lt;/a&gt;” all core functionality appears to be working as designed, however, as highlighted by the table below, performance is sub-optimal.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1docker05.jpg&quot; alt=&quot;Docker on Apple M1&quot; title=&quot;Docker on Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As part of my testing, I used this blog (&lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt;) as common workload, which installs and configures &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt;, &lt;a href=&quot;https://rubygems.org/&quot;&gt;Gems&lt;/a&gt;, &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; and &lt;a href=&quot;https://bundler.io/&quot;&gt;Bundler&lt;/a&gt;, before building my Jekyll static site, which is approximately 400MB.&lt;/p&gt;

&lt;p&gt;Although &lt;a href=&quot;https://www.docker.com/blog/multi-arch-images/&quot;&gt;Docker supports multi-platform images&lt;/a&gt;,  the official &lt;a href=&quot;https://hub.docker.com/r/jekyll/jekyll/&quot;&gt;Jekyll Docker image&lt;/a&gt; does not include an ARM64 version. Therefore, like all x86 images running on Apple Silicon, the &lt;a href=&quot;https://www.qemu.org/&quot;&gt;QEMU&lt;/a&gt; emulator is used, which I suspect is having a significant impact on performance.&lt;/p&gt;

&lt;p&gt;As a result, I set up an arm64 version of the official Jekyll Docker image, which should run natively on the Apple M1.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1docker06.jpg&quot; alt=&quot;Docker on Apple M1&quot; title=&quot;Docker on Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I ran the build multiple times to help identify any anomalies.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1docker07.jpg&quot; alt=&quot;Docker on Apple M1&quot; title=&quot;Docker on Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the table below, the MacBook Air receives a huge performance boost.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1docker08.jpg&quot; alt=&quot;Docker on Apple M1&quot; title=&quot;Docker on Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Not only does the MacBook Air now outperform my 16-inch MacBook Pro, but also my Razer Blade 15 Advanced, when running Docker via virtualisation (no WSL). These are impressive numbers that are more in line with what I had expected from the Apple M1.&lt;/p&gt;

&lt;p&gt;It is worth noting that &lt;a href=&quot;/2020/05/12/wsl-2/&quot;&gt;Docker running via WSL 2 on Windows 10&lt;/a&gt; still offers the best overall performance, thanks to the fact that Microsoft has included a native Linux Kernel as part of WSL 2. I would love to see Apple offer the same capability, but this is very unlikely based on their tightly controlled ecosystem.&lt;/p&gt;

&lt;p&gt;In conclusion, if you plan to use Docker on Apple Silicon, I highly recommend selecting images that include native support for the ARM64 architecture.&lt;/p&gt;
</description>
        <pubDate>Tue, 29 Dec 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/12/29/Docker-M1-ARM64/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/12/29/Docker-M1-ARM64/</guid>
      </item>
    
      <item>
        <title>Cyberpunk 2077</title>
        <description>&lt;p&gt;I consider myself a hobbyist game developer, someone that enjoys creating simple video games, with no pressure, expectation or desire to achieve a financial return.&lt;/p&gt;

&lt;p&gt;Although I would love to master advanced 3D game engines such as the &lt;a href=&quot;https://www.unrealengine.com/&quot;&gt;Unreal Engine&lt;/a&gt; or &lt;a href=&quot;https://unity.com/&quot;&gt;Unity&lt;/a&gt;, the time and effort required would be significant. Therefore, I focus on 2D game engines such as &lt;a href=&quot;/2017/03/09/gamemaker-studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Over the years, I have shared some of my personal projects, alongside general observations covering gaming related topics:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2011/12/12/First-PC/&quot;&gt;First PC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2012/04/28/Next-PC-Ivy-Bridge/&quot;&gt;Next PC - Ivy Bridge&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2012/05/05/Next-PC-Build/&quot;&gt;Next PC - Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2012/05/12/Next-PC-Overclocking/&quot;&gt;Next PC - Overclocking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2013/02/21/ps4/&quot;&gt;PS4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/04/20/eyefinity/&quot;&gt;Eyefinity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/01/30/Virtual-Reality/&quot;&gt;Virtual Reality&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/04/01/Skylake-Build/&quot;&gt;Skylake Build&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/04/12/Skylake-Overclocking/&quot;&gt;Skylake Overclocking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/05/19/Entertainment-Setup/&quot;&gt;Entertainment Setup&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/02/06/nintendo-switch/&quot;&gt;Nintendo Switch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/03/09/gamemaker-studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/10/26/GeForce-RTX/&quot;&gt;GeForce RTX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/11/03/GeForce-RTX-vs-3DMark/&quot;&gt;Geforce RTX vs 3DMark&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/11/10/Samsung-Q7FN/&quot;&gt;Samsung Q7FN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/11/tank-arena/&quot;&gt;Tank Arena&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/11/18/Razer-Blade/&quot;&gt;Razer Blade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/03/30/oculus-quest/&quot;&gt;Oculus Quest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/08/24/super-ultrawide/&quot;&gt;Super Ultrawide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/10/03/Console-Wars-2020/&quot;&gt;Console Wars 2020&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although I do not personally use 3D game engines, the topic still interests me and I am eager to learn the concepts, even if I do not get time to apply them personally.&lt;/p&gt;

&lt;p&gt;As a result, I follow a range of game developers, including “Triple-A” studios such as &lt;a href=&quot;https://www.valvesoftware.com/&quot;&gt;Valve&lt;/a&gt;, &lt;a href=&quot;https://www.naughtydog.com/&quot;&gt;Naughty Dog&lt;/a&gt;, &lt;a href=&quot;https://sms.playstation.com/&quot;&gt;Santa Monica Studio&lt;/a&gt;, &lt;a href=&quot;http://www.kojimaproductions.jp/&quot;&gt;Kojima Productions&lt;/a&gt;, &lt;a href=&quot;https://www.rockstargames.com/&quot;&gt;Rockstar Games&lt;/a&gt;, &lt;a href=&quot;https://www.crytek.com/&quot;&gt;Crytek&lt;/a&gt;, &lt;a href=&quot;https://en.cdprojektred.com/&quot;&gt;CD Projekt Red&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;I also enjoy content from small independent developers such as &lt;a href=&quot;https://dennatongames.com/&quot;&gt;Dennaton Games&lt;/a&gt;, &lt;a href=&quot;https://www.derekyu.com/&quot;&gt;Derek Yu&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/c/TheChernoProject/&quot;&gt;The Cherno&lt;/a&gt; and &lt;a href=&quot;https://www.youtube.com/channel/UClqFSFR_H1yJJ7NRs8xxGCQ&quot;&gt;Vimlark&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/channel/UCKCTmact-90hXpV2ns8GSsA&quot;&gt;DevDuck&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/channel/UC08QfQDLAd9D7aYPFgBUIng&quot;&gt;AdamCYounis&lt;/a&gt;, and &lt;a href=&quot;https://www.youtube.com/channel/UCuHVjteDW9tCb8QqMrtGvwQ&quot;&gt;Thomas Brush&lt;/a&gt;, that deliver more relatable content for hobbyists.&lt;/p&gt;

&lt;p&gt;This leads me to the recent controversy regarding the highly anticipated release of &lt;a href=&quot;https://www.cyberpunk.net&quot;&gt;Cyberpunk 2077&lt;/a&gt; from &lt;a href=&quot;https://en.cdprojektred.com/&quot;&gt;CD Projekt Red&lt;/a&gt;, which resulted in Sony pulling the game from the &lt;a href=&quot;https://www.playstation.com/en-gb/cyberpunk-2077-refunds/&quot;&gt;PlayStation Store and offering a refund to all customers&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;cyberpunk-2077&quot;&gt;Cyberpunk 2077&lt;/h3&gt;

&lt;p&gt;Cyberpunk 2077 was announced in May 2012, with a &lt;a href=&quot;https://www.youtube.com/watch?v=DvVjkqB3LH0&quot;&gt;teaser trailer&lt;/a&gt; in 2013, which both pre-dated the launch of the PlayStation 4. Although I suspect development did not ramp-up until after the launch of the &lt;a href=&quot;https://thewitcher.com/en/witcher3&quot;&gt;Witcher 3&lt;/a&gt; in 2015, it is fair to state that CD Projekt Red has been “planning” this game for over eight years.&lt;/p&gt;

&lt;p&gt;With over 500 people working on the REDengine 4, Cyberpunk 2077 is a serious “Triple-A” game that took every opportunity to market the anticipated advancements in graphics, story-telling and artificial intelligence, delivering what many hoped would be the most immersive game ever created.&lt;/p&gt;

&lt;p&gt;The marketing included a ridiculous number of product partnerships, ranging from Cyberpunk 2077 branded &lt;a href=&quot;https://www.forbes.com/sites/mitchwallace/2020/12/18/i-got-one-of-only-77-limited-cyberpunk-2077-doritos-fuel-cells-and-its-insanely-cool/&quot;&gt;snacks&lt;/a&gt;, &lt;a href=&quot;https://secretlab.co.uk/pages/cyberpunk2077&quot;&gt;furniture&lt;/a&gt;, &lt;a href=&quot;https://www.jinx.com/pages/cyberpunk&quot;&gt;clothes&lt;/a&gt;, &lt;a href=&quot;https://www.theverge.com/2020/11/2/21546013/oneplus-cyberpunk-2077-8t-big-camera-module&quot;&gt;smartphones&lt;/a&gt;, &lt;a href=&quot;https://www.razer.com/gb-en/campaigns/cyberpunk-2077&quot;&gt;gaming peripherals&lt;/a&gt;, and &lt;a href=&quot;https://uk.gear.cdprojektred.com/game/cyberpunk-2077.html&quot;&gt;a lot more&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The team also capitalised on their star, Keanu Reeves, who plays the character Johnny Silverhand, delivering a wall-to-wall advertising campaign across &lt;a href=&quot;https://www.youtube.com/watch?v=KUBksr6riVE&quot;&gt;television&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/user/CyberPunkGame&quot;&gt;online&lt;/a&gt; and the &lt;a href=&quot;https://www.reddit.com/r/cyberpunkgame/comments/jotb06/cyberpunk_ad_in_times_square_it_costs_25mln/&quot;&gt;high-street&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Recognising the technical ambition and marketing hype, the team at CD Projekt Red were no doubt under extreme pressure to deliver and I suspect underestimated the time it would take to deliver a product across multiple platforms and generations (e.g. PlayStation 4/4 Pro/5, Xbox One/One X/S/X and PC). This became evident with continuous delays, that resulted in the team missing their original release window by eight-months.&lt;/p&gt;

&lt;p&gt;Unfortunately, even with the additional development/testing time, the launch of Cyberpunk 2077 was a public relations disaster, with a product that was essentially unplayable on the “base” consoles (e.g. PlayStation 4 and Xbox One).&lt;/p&gt;

&lt;p&gt;As highlighted by the &lt;a href=&quot;https://www.eurogamer.net/digitalfoundry&quot;&gt;Digital Foundry&lt;/a&gt; analysis (video below), the PlayStation 4 and Xbox One versions of the game run below 720p (variable resolution) and dip to 15fps. These are performance numbers that have not been seen in several generations and certainly not what consumers have come to expect from the era of high-definition, etc.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/mVWJPYKCMco?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Alongside the horrendous performance, the game also suffers from countless bugs, including hitching, missing textures, crashes and even half-finished sections of the game. In one hilarious moment, as seen in the Digital Foundry analysis, the game “stalls” for over a minute before resuming (essentially one frame per minute).&lt;/p&gt;

&lt;p&gt;The PlayStation 5 and Xbox Series X do run the game better, leveraging their raw horsepower to deliver a passable experience, but even they cannot protect against the countless bugs.&lt;/p&gt;

&lt;p&gt;It is not uncommon for games to launch with bugs, especially open-world games, but this is clearly unacceptable and therefore it is not a surprise that Sony felt the need to intervene.&lt;/p&gt;

&lt;h3 id=&quot;cyberpunk-2077-pc-version&quot;&gt;Cyberpunk 2077 PC Version&lt;/h3&gt;

&lt;p&gt;On a positive note, the PC version of the game demonstrates the potential of Cyberpunk 2077. It is far from perfect, but certainly not the unplayable mess found on the consoles. This highlights that the PC version was likely the lead platform for development, with the team hoping to be able to scale back the game to run on consoles.&lt;/p&gt;

&lt;p&gt;The PC version is also a showcase for &lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;Ray Tracing&lt;/a&gt;, arguably delivering the most ambitious implementation of this demanding technology since &lt;a href=&quot;https://controlgame.com/&quot;&gt;Control&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have been playing Cyberpunk 2077 on the PC and can confirm, when everything is working as designed, Night City is something special. The density and vertical scale, combined with the advantages of Ray Tracing, delivers a truly immersive experience.&lt;/p&gt;

&lt;p&gt;Unsurprisingly, the PC requirements are very high (especially with Ray Tracing enabled), therefore, I thought I would share my specification and configuration.&lt;/p&gt;

&lt;p&gt;I have been playing Cyberpunk 2077 on the following system.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus Maximus VIII Hero Alpha (Intel Z170)&lt;/li&gt;
  &lt;li&gt;Intel Core i7-6700K 4.0GHz @ 4.6GHz (4C/8T)&lt;/li&gt;
  &lt;li&gt;32GB Corsair Vengeance LPX DDR4 PC4-24000C15 (15-17-17-35)&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;PNY GeForce RTX 2080 Ti 11GB XLR8 Gaming Overclocked Edition&lt;/li&gt;
  &lt;li&gt;Samsung C49RG90 49-inch (5120x1440 @ 120Hz)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is worth noting that I use a &lt;a href=&quot;/2020/08/24/super-ultrawide/&quot;&gt;Super Ultra-Wide Monitor&lt;/a&gt;, specifically the &lt;a href=&quot;https://displaysolutions.samsung.com/monitor/detail/1421/C49RG90&quot;&gt;Samsung C49RG90&lt;/a&gt;, which is a 49-inch monitor running at a 5120x1440 resolution, alongside a high refresh rate (120Hz) and support for &lt;a href=&quot;https://www.amd.com/en/technologies/free-sync&quot;&gt;AMD FreeSync 2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With this specification in mind, I have configured the following settings to achieve a stable frame-rate above 30FPS with all Ray Tracing features enabled.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Resolution: 5120x1440&lt;/li&gt;
  &lt;li&gt;Field of View: 80&lt;/li&gt;
  &lt;li&gt;Film Grain: Off&lt;/li&gt;
  &lt;li&gt;Chromatic Aberration: Off&lt;/li&gt;
  &lt;li&gt;Depth of Field: On&lt;/li&gt;
  &lt;li&gt;Lens Flare: On&lt;/li&gt;
  &lt;li&gt;Motion Blur: Low&lt;/li&gt;
  &lt;li&gt;Contrast Shadows: On&lt;/li&gt;
  &lt;li&gt;Improved Facial Lighting Geometry: On&lt;/li&gt;
  &lt;li&gt;Anisotropy: 16&lt;/li&gt;
  &lt;li&gt;Local Shadow Mesh Quality: High&lt;/li&gt;
  &lt;li&gt;Local Shadow Quality: High&lt;/li&gt;
  &lt;li&gt;Cascaded Shadows Range: High&lt;/li&gt;
  &lt;li&gt;Cascaded Shadows Resolution: Medium&lt;/li&gt;
  &lt;li&gt;Distant Shadows Resolution: High&lt;/li&gt;
  &lt;li&gt;Volumetric Fog Resolution: High&lt;/li&gt;
  &lt;li&gt;Volumetric Cloud Quality: Medium&lt;/li&gt;
  &lt;li&gt;Max Dynamic Decals: Ultra&lt;/li&gt;
  &lt;li&gt;Screen Space Reflections Quality: High&lt;/li&gt;
  &lt;li&gt;Subsurface Scattering Quality: High&lt;/li&gt;
  &lt;li&gt;Ambient Occlusion: Low&lt;/li&gt;
  &lt;li&gt;Color Precision: Medium&lt;/li&gt;
  &lt;li&gt;Mirror Quality: High&lt;/li&gt;
  &lt;li&gt;Level of Detail (LOD): High&lt;/li&gt;
  &lt;li&gt;Ray-Tracing: On&lt;/li&gt;
  &lt;li&gt;Ray-Tracing Reflections: On&lt;/li&gt;
  &lt;li&gt;Ray-Tracing Shadows: On&lt;/li&gt;
  &lt;li&gt;Ray-Tracing Lighting: Psycho&lt;/li&gt;
  &lt;li&gt;DLSS: Performance&lt;/li&gt;
  &lt;li&gt;Dynamic FidelityFX CAS: Off&lt;/li&gt;
  &lt;li&gt;Static FidelityFX CAS: Off&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, depending on the demand of the scene, I see a frame-rate between 30FPS and 50FPS, which thanks to RPG-style of the game (slower pace) and Low Framerate Compensation (LFC) via FreeSync 2, delivers what I consider to be an acceptable experience.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/cyberpunk207701.jpg&quot; alt=&quot;Cyberpunk 2077&quot; title=&quot;Cyberpunk 2077&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I use the same settings (1920x1080 resolution) on my &lt;a href=&quot;/2019/11/18/razer-blade/&quot;&gt;Razer Blade 15 Advanced&lt;/a&gt;, which thanks to the Nvidia GeForce 2080 Max-Q graphics card and Samsung 970 Pro SSD performs well. It does not achieve the same consistent frame-rate as my main PC but remains surprisingly playable.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/cyberpunk207702.jpg&quot; alt=&quot;Cyberpunk 2077&quot; title=&quot;Cyberpunk 2077&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At this time I am not far enough through the game to comment on the story, but it is clear that the non-playable character artificial intelligence is not the “game-changer” I had hoped it would be. The city feels alive, but the inhabitants of the city feel disjointed, with scripted reactions that do not always match the situation. I had hoped for better, although (again) this likely due to unrealistic expectations, following the hype surrounding the game.&lt;/p&gt;

&lt;p&gt;In short, Cyberpunk 2077 on the PC looks great, plays well and certainly demonstrates promise (I am enjoying the game). It is far from perfect, but certainly not the disaster experienced on the consoles.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I suspect many factors contributed to the dismal launch of Cyberpunk 2077, likely compounded by the current economic situation with COVID-19, etc.&lt;/p&gt;

&lt;p&gt;With this in mind, I feel the CD Projekt Red senior leadership must take accountability, as I assume they would have ultimately sanctioned the release. I suspect the decision was driven by the mounting commercial pressure associated with the extensive marketing campaign and many co-promotional agreements, which likely included financial penalties for an additional delay.&lt;/p&gt;

&lt;p&gt;Therefore, I empathise with the designers, developers and testers, who must have known (and I assume communicated) the game was not ready for release and therefore have had their talent and hard work questioned by factors outside of their control.&lt;/p&gt;

&lt;p&gt;Looking forward, I hope CD Project Red endeavour to improve the situation through free updates, patches, etc. In my opinion, they should postpone any new features (e.g. expansions) until the foundations of the game reach an acceptable level.&lt;/p&gt;

&lt;p&gt;Unfortunately, based on the current state of the game, this will not be a simple task. Through my analysis, I question if the base consoles (PlayStation 4 and Xbox One) can ever deliver an acceptable experience. For example, the AMD Jaguar architecture (launched in 2013), alongside the use of mechanical hard drives (80MB/s to 100MB/s) are physical architectural bottlenecks that even the most skilled developer would struggle to overcome.&lt;/p&gt;

&lt;p&gt;In conclusion, I feel the launch of Cyberpunk 2077 must become a case study (and warning) for all future game releases. The key learning would be to ensure the marketing and hype do not get ahead of the product itself, which ultimately forced a release that disrespected the CD Projekt Red team, disappointed customers, and resulted in considerable brand damage that may take years to recover.&lt;/p&gt;
</description>
        <pubDate>Thu, 24 Dec 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/12/24/Cyberpunk-2077/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/12/24/Cyberpunk-2077/</guid>
      </item>
    
      <item>
        <title>Docker on Apple M1</title>
        <description>&lt;p&gt;In the article “&lt;a href=&quot;/2020/11/18/Apple-M1/&quot;&gt;Apple M1&lt;/a&gt;”, I shared my initial observations of the Apple transition from Intel to Apple Silicon, using the new MacBook Air (Fourth Generation).&lt;/p&gt;

&lt;p&gt;In summary, I was incredibly impressed with the Apple M1 System on a Chip (SoC), which delivered excellent performance and power efficiency as well as a viable transition runway via Rosetta 2.&lt;/p&gt;

&lt;p&gt;I concluded that this transition was not only the most ambitious change in the history of the Mac but could also have a profound impact on the personal computing industry.&lt;/p&gt;

&lt;p&gt;With that said, due to the immaturity of the architecture, there were some limitations. A big one for me was the inability to run &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;, which I use frequently as part of my development workflow.&lt;/p&gt;

&lt;p&gt;Earlier in the week, Docker released the first public preview of “&lt;a href=&quot;https://www.docker.com/blog/download-and-try-the-tech-preview-of-docker-desktop-for-m1/&quot;&gt;Docker Desktop for M1&lt;/a&gt;”, enabling native compatibility. Although still in preview, this is a significant milestone, removing one of the primary blockers that would prevent me from using an Apple Silicon powered Mac as my daily driver.&lt;/p&gt;

&lt;p&gt;I did not expect to see a public preview in 2020, therefore the Docker development team should be commended for their quick work. As highlighted in the blog post, the team needed to overcome the following engineering challenges:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Migrate from HyperKit to the Virtualization Framework introduced in macOS 11 Big Sur.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Recompile all binaries of Docker Desktop to run natively on Apple Silicon.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Update engineering tools (CI/CD and Testing) to support Apple Silicon.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This article will focus on my initial impressions of Docker on Apple M1, looking to assess reliability and performance across my common workloads. Recognising this is a preview, I do not expect perfection.&lt;/p&gt;

&lt;h3 id=&quot;reliability&quot;&gt;Reliability&lt;/h3&gt;

&lt;p&gt;Once &lt;a href=&quot;https://www.docker.com/blog/download-and-try-the-tech-preview-of-docker-desktop-for-m1/&quot;&gt;downloaded&lt;/a&gt;, the installation was very simple, essentially identical to the regular Docker Desktop for Mac.&lt;/p&gt;

&lt;p&gt;I decided to use this blog (LifeinTECH) as my reference point, as I am very familiar with its performance characteristics building via Docker across a wide range of hosts (Windows, Mac, Linux).&lt;/p&gt;

&lt;p&gt;As a reminder, &lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt; follows the &lt;a href=&quot;https://jamstack.org/&quot;&gt;JAMstack&lt;/a&gt; web development architecture, using the &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; Static Site Generator. It includes a range of custom plugins to support search, tagging and to enable Progressive Web App (PWA) capabilities (offline access, etc.) The project size is approximately 400MB.&lt;/p&gt;

&lt;p&gt;I use the official &lt;a href=&quot;https://hub.docker.com/r/jekyll/jekyll/&quot;&gt;Jekyll Docker image&lt;/a&gt; as part of my build, which itself requires &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt;, &lt;a href=&quot;https://rubygems.org/&quot;&gt;Ruby Gems&lt;/a&gt; and &lt;a href=&quot;https://bundler.io/&quot;&gt;Bundler&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Leveraging &lt;a href=&quot;https://docs.docker.com/compose/&quot;&gt;Docker Compose&lt;/a&gt;, I was able to use my YAML configuration file to install and configure the required runtime dependencies.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1docker01.jpg&quot; alt=&quot;Docker on Apple M1&quot; title=&quot;Docker on Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once complete, the Jekyll build service was executed, which generates a static site for production use. As you can see from the image below, the build took approximately 614 seconds to complete (more on performance later).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1docker02.jpg&quot; alt=&quot;Docker on Apple M1&quot; title=&quot;Docker on Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Everything worked as designed, including the Docker Dashboard GUI.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1docker03.jpg&quot; alt=&quot;Docker on Apple M1&quot; title=&quot;Docker on Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Docker Dashboard GUI includes some useful real-time statistics of any running container, highlighting CPU, Memory and Storage and Network utilisation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1docker04.jpg&quot; alt=&quot;Docker on Apple M1&quot; title=&quot;Docker on Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Everything built as expected, however, I did receive several warnings related to file conflicts. I do not receive these warning when building for WSL 2 on Windows, therefore I suspect this is related to the filesystem differences of the mounted volumes (e.g. AFS, ext4, NTFS).&lt;/p&gt;

&lt;p&gt;Thankfully, the generated static site appears to work as designed.&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;With reliability looking good, I switched my attention to performance. The table below outlines the build times leveraging the “default” Docker settings for each device.&lt;/p&gt;

&lt;p&gt;I have also added the relative &lt;a href=&quot;https://www.geekbench.com/&quot;&gt;Geekbench&lt;/a&gt; CPU scores, highlighting the relative performance of the hardware.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem1docker05.jpg&quot; alt=&quot;Docker on Apple M1&quot; title=&quot;Docker on Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the MacBook Air running the Apple M1 is very slow, falling behind my 16-inch MacBook Pro and only narrowly beating my old 12-inch MacBook.&lt;/p&gt;

&lt;p&gt;The 12-inch MacBook is running an Intel Core i7-7Y75, which is a 7th Generation dual-core processor, that is passively cooled (no fan). As highlighted by the Geekbench scores, the Apple M1 is (in theory) significantly more powerful than the Intel Core i7-7Y75, highlighting a potential software bottleneck.&lt;/p&gt;

&lt;p&gt;If I had to guess, I would highlight the following limitations.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Docker on M1 is pre-release (public preview), therefore likely not optimised for the new architecture.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Although &lt;a href=&quot;https://www.docker.com/blog/multi-arch-images/&quot;&gt;Docker supports multi-platform images&lt;/a&gt;, I suspect the majority are still built using the x86 architecture, therefore not native to the Apple Silicon. This is the case for the official &lt;a href=&quot;https://hub.docker.com/r/jekyll/jekyll/&quot;&gt;Jekyll Docker image&lt;/a&gt;, which does not include an ARM64 version. In this scenario, I believe the &lt;a href=&quot;https://www.qemu.org/&quot;&gt;QEMU&lt;/a&gt; emulator is utilised, which would have a significant impact on performance.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is worth noting that &lt;a href=&quot;/2020/05/12/wsl-2/&quot;&gt;Docker running via WSL 2 on Windows 10&lt;/a&gt; is still the gold standard (outside of native Linux), delivering over seven times the performance of the MacBook Air. This is thanks to the fact that Microsoft includes a native Linux Kernel as part of WSL 2, delivering bare-metal performance (CPU and I/O).&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, I am pleased to have a compatible version of Docker running on the Apple M1. Following my initial testing, everything appears to be working as designed.&lt;/p&gt;

&lt;p&gt;Performance is not great when using x86 Docker images, but this is not a limitation of the hardware, therefore I hope to see things improve over time as the software stack matures, optimising for Apple Silicon.&lt;/p&gt;

&lt;p&gt;Over the coming weeks, I plan to test some ARM64 Docker images, which I expect to perform better. In parallel, I am interested in evaluating the capabilities of the &lt;a href=&quot;https://developer.apple.com/documentation/virtualization&quot;&gt;Apple Virtualization Framework&lt;/a&gt;, specifically targetting client-side virtualisation.&lt;/p&gt;
</description>
        <pubDate>Sat, 19 Dec 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/12/19/Docker-on-Apple-M1/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/12/19/Docker-on-Apple-M1/</guid>
      </item>
    
      <item>
        <title>Computer Vision - Update</title>
        <description>&lt;p&gt;Over the past few months, I have been testing Computer Vision technologies using an &lt;a href=&quot;https://developer.nvidia.com/&quot;&gt;Nvidia Jetson Nano Developer Kit&lt;/a&gt;. I covered the framing, use cases, architecture and set up in my previous two articles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/09/25/Computer-Vision/&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/10/18/Jetson-Nano/&quot;&gt;Nvidia Jestson Nano&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article will focus on the usage of the Jetson Nano Developer Kit to execute some basic Computer Vision workloads, covering image recognition, object detection and semantic segmentation.&lt;/p&gt;

&lt;p&gt;The photo below shows my &lt;a href=&quot;/2020/10/18/Jetson-Nano/&quot;&gt;Jetson Nano Developer Kit&lt;/a&gt;, connected to my monitor running picture-in-picture via HDMI.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/computervisionupdate01.jpg&quot; alt=&quot;Computer Vision - Nvidia Jetson Nano Developer Kit&quot; title=&quot;Computer Vision - Nvidia Jetson Nano Developer Kit&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To get started, I used the &lt;a href=&quot;https://github.com/dusty-nv/jetson-inference&quot;&gt;Inference and Realtime DNN Vision library&lt;/a&gt; from &lt;a href=&quot;https://github.com/dusty-nv&quot;&gt;Dustin Franklin&lt;/a&gt;, which includes a range of example projects, as well as links to the &lt;a href=&quot;https://developer.nvidia.com/embedded/learn/jetson-ai-certification-programs&quot;&gt;Nvidia Jetson AI Courses and Certifications&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The video below covers the software configuration process, including the setup of Docker and installation of the pre-trained models.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/QXIwdsyK7Rw?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The library comes pre-loaded with forty models, which can be managed and installed via the ‘docker/run.sh’ command.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/computervisionupdate02.jpg&quot; alt=&quot;Computer Vision - Nvidia Jetson Nano Developer Kit&quot; title=&quot;Computer Vision - Nvidia Jetson Nano Developer Kit&quot; /&gt;&lt;/p&gt;

&lt;p&gt;All models are installed locally on the host and automatically mounted to the running Docker container, which makes viewing the output and future modifications much easier.&lt;/p&gt;

&lt;p&gt;Once the initial configuration is complete, the examples projects can be loaded, covering Computer Vision primitives, such as imageNet for image recognition, detectNet for object detection, and segNet for semantic segmentation, which all inherit from the shared tensorNet object.&lt;/p&gt;

&lt;h3 id=&quot;image-recognition&quot;&gt;Image Recognition&lt;/h3&gt;

&lt;p&gt;The first project focuses on image recognition, which uses classification networks that have been trained on large datasets to identify scenes and objects.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/dusty-nv/jetson-inference/blob/master/docs/imagenet-camera-2.md&quot;&gt;Dusty-NV/imageNet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The imageNet object accepts an input image and outputs the classified object name, confidence of the classified object, and the framerate.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/computervisionupdate03.jpg&quot; alt=&quot;Computer Vision - Image Recognition&quot; title=&quot;Computer Vision - Image Recognition&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Assuming the Docker container is running, the image detection project can be started using the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;./imagenet.py csi://0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The “csi://0” command assumes a MIPI-CSI Camera is installed, for example, the &lt;a href=&quot;https://thepihut.com/products/raspberry-pi-camera-module&quot;&gt;Raspberry Pi Camera&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The photos below highlight the image recognition project in action.&lt;/p&gt;

&lt;p&gt;I tested a wide range of objects, including many of my son’s toys. The model was surprisingly good at detecting dinosaurs, with varying levels of confidence.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/computervisionupdate04.jpg&quot; alt=&quot;Computer Vision - Image Recognition&quot; title=&quot;Computer Vision - Image Recognition&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The second photo highlights higher confidence (99%) when viewing a baseball.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/computervisionupdate05.jpg&quot; alt=&quot;Computer Vision - Image Recognition&quot; title=&quot;Computer Vision - Image Recognition&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The average framerate for image recognition on the Jetson Nano Developer Kit was 68fps.&lt;/p&gt;

&lt;h3 id=&quot;object-detection&quot;&gt;Object Detection&lt;/h3&gt;

&lt;p&gt;The second project focuses on object detection, which aims to identify where in the frame various objects are located by extracting their bounding boxes.&lt;/p&gt;

&lt;p&gt;Unlike image recognition, object detection networks are capable of detecting multiple different objects per frame.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/dusty-nv/jetson-inference/blob/master/docs/detectnet-camera-2.md&quot;&gt;Dusty-NV/detectNet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The detectNet object accepts an image as input and outputs a list of coordinates of the detected bounding boxes, alongside the classified object name, the confidence of the classified object, and the framerate.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/computervisionupdate06.jpg&quot; alt=&quot;Computer Vision - Object Detection&quot; title=&quot;Computer Vision - Object Detection&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The object detection project can be started using the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;./detectnet.py csi://0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The photo below highlights the object detection project in action.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/computervisionupdate07.jpg&quot; alt=&quot;Computer Vision - Object Detection&quot; title=&quot;Computer Vision - Object Detection&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The object detection project pushed the Jetson Nano Developer Kit a lot harder, resulting in 20fps.&lt;/p&gt;

&lt;h3 id=&quot;semantic-segmentation&quot;&gt;Semantic Segmentation&lt;/h3&gt;

&lt;p&gt;The final project focuses on semantic segmentation, where the classifications occur at the pixel level instead of the entire image. This technique is useful for environmental perception and images with multiple objects per scene.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/dusty-nv/jetson-inference/blob/master/docs/segnet-camera-2.md&quot;&gt;Dusty-NV/segNet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The segNet object accepts an image as an input and outputs a second image with the per-pixel classification mask overlay.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/computervisionupdate08.jpg&quot; alt=&quot;Computer Vision - Semantic Segmentation&quot; title=&quot;Computer Vision - Semantic Segmentation&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The semantic segmentation project can be started using the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;./segnet.py --network=fcn-resnet18-mhp csi://0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The photo below highlights the semantic segmentation project in action.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/computervisionupdate09.jpg&quot; alt=&quot;Computer Vision - Semantic Segmentation&quot; title=&quot;Computer Vision - Semantic Segmentation&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I struggled to achieve clear results with this project, likely due to poor lighting and/or a lot of background noise. The Jetson Nano Developer Kit achieved an average of 28fps.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, the three examples projects provide a nice foundation covering Computer Vision primitives, such as image recognition, object detection and semantic segmentation.&lt;/p&gt;

&lt;p&gt;The Jetson Nano worked well, delivering acceptable performance considering the cost and passive cooling. It did however become very hot when running the object detection project, potentially highlighting the need for a fan.&lt;/p&gt;

&lt;p&gt;Overall, I remain very impressed with the Jetson Nano Developer Kit and believe it is an excellent entry-point for anyone interested in exploring Artificial Technology (AI).&lt;/p&gt;
</description>
        <pubDate>Fri, 04 Dec 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/12/04/Computer-Vision-Update/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/12/04/Computer-Vision-Update/</guid>
      </item>
    
      <item>
        <title>Software List 2020</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - The table was updated in September 2022, including my latest software choices.&lt;/p&gt;

&lt;p&gt;Since 2003, I have been a devoted Mac user, favouring their “Pro” line of notebooks (PowerBook/MacBook Pro). &lt;a href=&quot;/2019/02/06/ThinkPad-X1-Extreme/&quot;&gt;In early-2019, driven by multiple factors, I decided to leave the “Cult of Mac”&lt;/a&gt;), switching to a Windows PC.&lt;/p&gt;

&lt;p&gt;With my new found freedom, throughout 2019 and 2020, I took the opportunity to experiment with multiple operating systems and device types, including Windows 10, Linux and even iPadOS. I was eager to understand the maturity of each platform related to my common workflows, whilst documenting the transition process.&lt;/p&gt;

&lt;p&gt;The articles linked below highlight this journey, describing my experience with the different software/hardware and providing insight into specific areas (e.g. development).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/06/ThinkPad-X1-Extreme/&quot;&gt;ThinkPad X1 Extreme&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;2019/02/14/macOS-and-Windows/&quot;&gt;macOS and Windows&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/04/12/WSL/&quot;&gt;WSL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/07/02/Linux-Software/&quot;&gt;Linux Software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/22/Flatpak-and-Snappy/&quot;&gt;Flatpak and Snappy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/11/02/Fedora-31/&quot;&gt;Fedora 31&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/11/18/Razer-Blade/&quot;&gt;Razer Blade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/12/08/VMware-Workstation-Pro/&quot;&gt;VMware Workstation Pro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/04/24/iPad-for-the-Enterprise-2020/&quot;&gt;iPad for the Enterprise 2020&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/05/02/iPad-Development/&quot;&gt;iPad Development&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/05/12/WSL-2/&quot;&gt;WSL 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/08/02/Dell-XPS-17/&quot;&gt;Dell XPS 17&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/10/08/Linux-at-Work/&quot;&gt;Linux at Work&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/11/10/Docker-on-Fedora-33/&quot;&gt;Docker on Fedora 33&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A byproduct of this transition process was the need to establish a common software list that could be utilised across different platforms.&lt;/p&gt;

&lt;p&gt;The goal was to make the transition between platforms as seamless as possible, minimising disruption through standardisation and native compatibility.&lt;/p&gt;

&lt;p&gt;To achieve this outcome, I actively avoided highly-opinionated software that targeted a specific platform, instead prioritising web-based technologies, accessed via the browser and/or technologies such as &lt;a href=&quot;https://www.electronjs.org/&quot;&gt;Electron&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Although “avoid lock-in” became my guiding philosophy, I did make exceptions, specifically for any software that delivered unique value above “open” alternatives. For example, I use Final Cut Pro on macOS for video editing, even though it is not available on Windows or Linux.&lt;/p&gt;

&lt;p&gt;The table below highlights my software selection across macOS, Windows, Linux and iPadOS, covering my common workflows.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/softwarelist202002.jpg&quot;&gt;&lt;img src=&quot;/images/posts/softwarelist202002.jpg&quot; alt=&quot;Software List 2020&quot; title=&quot;Software List 2020&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the primary “desktop” platforms (macOS, Windows and Linux) are comprehensively covered, each offering high-quality software that can be used with a low barrier to entry.&lt;/p&gt;

&lt;p&gt;Unsurprisingly, iPadOS (due to its inherent limitations) is a more challenging platform. Although it continues to mature with every release, “power user” tasks such as development remain cumbersome, requiring some &lt;a href=&quot;/2020/05/02/iPad-Development/&quot;&gt;creative workarounds&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As to which platform is “best”, I do not believe there is a perfect answer, which is why I would advocate the ability to use any of them. At a high-level, I would summarise&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Best hardware/software integration, often resulting in the most high-optimised experience (e.g. better battery life, etc.) The *nix kernel makes POSIX compliant development seamless (at least on Intel-based Mac’s) but often limited by the tightly controlled Apple ecosystem.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; The most “work-friendly” platform, especially utilising applications from the Microsoft ecosystem (e.g. Office 365). With the introduction of &lt;a href=&quot;/2020/05/12/wsl-2/&quot;&gt;Windows Subsystem for Linux 2 (WSL 2)&lt;/a&gt;, POSIX compliant development is now native, making Windows the most versatile platform.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt; Highly customisable and cost-effective, with the widest array of free and open-source software (FOSS). The main barrier (for me) is the &lt;a href=&quot;/2020/10/08/Linux-at-Work/&quot;&gt;lack of native Office 365 software (e.g. Word, PowerPoint, Excel, etc.)&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are a long-time user of a single platform but have been considering a change. I feel there is no better time, recognising the maturity of the main desktop platforms and prevalence of web-based software.&lt;/p&gt;
</description>
        <pubDate>Fri, 20 Nov 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/11/20/Software-List-2020/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/11/20/Software-List-2020/</guid>
      </item>
    
      <item>
        <title>Apple M1</title>
        <description>&lt;p&gt;In June, &lt;a href=&quot;https://www.apple.com/uk/newsroom/2020/06/apple-announces-mac-transition-to-apple-silicon/&quot;&gt;Apple announced its intent to transition the Mac from Intel to its own custom silicon&lt;/a&gt;, known as Apple Silicon, based on the &lt;a href=&quot;https://developer.arm.com/architectures/learn-the-architecture/introducing-the-arm-architecture/&quot;&gt;ARM architecture&lt;/a&gt;. This transition will establish a common architecture across all Apple products (e.g. iPhone, iPad, Apple Watch, Mac), which should streamline hardware and software development, enabling new customer experiences.&lt;/p&gt;

&lt;p&gt;This is not the first time Apple has completed a transition of this type, most recently, the 2005 switch from PowerPC to &lt;a href=&quot;https://www.intel.com/&quot;&gt;Intel&lt;/a&gt;. I remember this transition well, as I was mid-way through university and reliant on my trusty Apple PowerBook G4 (part of the PowerPC 74xx family). At the time, PowerBook users had been eagerly awaiting the release of the PowerBook G5, only to discover that the range would be replaced by the MacBook, running an Intel Core Duo processor.&lt;/p&gt;

&lt;p&gt;Although the PowerPC to Intel transition can be used as a reference point, the market dynamics were very different.&lt;/p&gt;

&lt;p&gt;Intel was the dominant player in microprocessors and x86 had established itself as the default instruction set architecture. As a result, the switch to Intel and x86 was a safe bet, aligning with the industry direction and retaining the existing value chain, with a third-party (Intel) being leveraged to design and build silicon for the Mac.&lt;/p&gt;

&lt;p&gt;Apple handled the transition reasonably well, primarily thanks to the higher-performance Intel processors and an emulation layer called Rosseta, which allowed legacy PowerPC applications to run on Intel hardware. As with any emulation-layer, the use of Rosseta resulted in a performance penalty, which was a little painful, especially with applications such as Microsoft Office 2004, which long outstayed its welcome. In 2011, Apple removed Rosetta from the operating system, marking the end of the PowerPC to Intel transition.&lt;/p&gt;

&lt;p&gt;The transition to custom Apple Silicon is a little different. For example, Apple Silicon is not a known quality on the Mac and although ARM-based architecture is well established for low powered devices (mobiles, tablets, watches), it has not been tested at scale for general-purpose computing (laptops, desktops). Therefore, it will be interesting to see how it competes against x86 across different workloads.&lt;/p&gt;

&lt;p&gt;This is also the first time that the Mac will be vertically integrated, positioning Apple as a direct competitor to industry giants such as Intel and &lt;a href=&quot;https://www.amd.com/&quot;&gt;AMD&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;arm-revolution&quot;&gt;ARM Revolution&lt;/h3&gt;

&lt;p&gt;The words “game changer” are overused in technology, however, I believe the shift to Apple Silicon and an ARM-based architecture has the potential to disrupt the entire personal computing industry.&lt;/p&gt;

&lt;p&gt;If Apple succeeds and achieves better performance and power efficiency, delivered in a smaller form-factor at a lower cost, the Mac would have a tremendous advantage over the competition (e.g. Windows PC).&lt;/p&gt;

&lt;p&gt;Similar to the launch of the original iPhone, competing products (e.g. &lt;a href=&quot;https://www.hp.com/&quot;&gt;HP&lt;/a&gt;, &lt;a href=&quot;https://www.lenovo.com/&quot;&gt;Lenovo&lt;/a&gt;, &lt;a href=&quot;https://www.dell.com/&quot;&gt;Dell&lt;/a&gt;) would immediately feel obsolete. Worse still, the markets ability to respond would be slow, recognising the heavy reliance on third-parties (&lt;a href=&quot;https://www.microsoft.com/&quot;&gt;Microsoft&lt;/a&gt;, Intel, AMD) to unlock innovation. This has been a major challenge over recent years (one of the reasons Apple has decided to transition), recognising that Intel has consistently failed to meet its performance expectations.&lt;/p&gt;

&lt;p&gt;With that said, if Apple fails to deliver better performance and power efficiency or inadvertently alienates developers, they have potentially isolated the Mac, reaffirming its market position as a niche product.&lt;/p&gt;

&lt;p&gt;As a reference point, &lt;a href=&quot;https://www.sony.com/&quot;&gt;Sony&lt;/a&gt; attempted a similar transition with the PlayStation 3, with the decision to design and build a custom processor, known as Cell, based on the PowerPC architecture. Unfortunately, developers did not embrace the change, which put the entire brand (and Sony as a company) at risk. Sony had to live with this decision for seven years, before switching back to the x86 architecture for the PlayStation 4 (and PlayStation 5).&lt;/p&gt;

&lt;p&gt;In short, I believe the transition to Apple Silicon is the most ambitious change in the history of the Mac and a decisive moment in personal computing.&lt;/p&gt;

&lt;p&gt;Therefore, I am excited to share my first observations of a Mac powered by Apple Silicon, specifically the Apple M1 System on a Chip (SoC).&lt;/p&gt;

&lt;h3 id=&quot;apple-m1&quot;&gt;Apple M1&lt;/h3&gt;

&lt;p&gt;In 2008, Apple announced the acquisition of Palo Alto Semiconductor (P.A. Semi), a fabless semiconductor company, as well as a stake in Imagination Technologies, designer of the PowerVR graphics processors.&lt;/p&gt;

&lt;p&gt;This was the first public indication that Apple was becoming serious about custom silicon. Over the next decade, Apple demonstrated its growing competency, introducing custom silicon across its product portfolio (iPod, iPhone, iPad, AppleTV, Apple Watch). They also started to build unique processors and co-processors for the Mac (Apple T2 Chip) and AirPods (Apple W1 Chip), etc.&lt;/p&gt;

&lt;p&gt;Most interestingly, Apple was not just competing, but regularly outperforming its competitors (e.g. &lt;a href=&quot;https://www.qualcomm.com/&quot;&gt;Qualcomm&lt;/a&gt;), with phenomenal jumps in compute, graphics and machine learning performance. However, recognising these achievements were predominantly restricted to mobile and/or specialist devices, there was no consistent way to benchmark against Intel and AMD.&lt;/p&gt;

&lt;p&gt;In recent years, this story has started to change, as smartphones, tablets and laptops have converged. The image below, put together by &lt;a href=&quot;https://www.anandtech.com/show/16226/apple-silicon-m1-a14-deep-dive&quot;&gt;Anandtech&lt;/a&gt;, compares Apple vs. Intel regarding performance over time.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem101.jpg&quot; alt=&quot;Apple M1&quot; title=&quot;Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ignoring the actual numbers, the rate of innovation (performance increase over time) is the real story, which is what has made Apple Silicon a viable alternative to x86 for personal computing. Assuming Apple can maintain this rate of innovation, PC manufactures should be very nervous.&lt;/p&gt;

&lt;p&gt;This leads us to the first SoC designed specifically for the Mac, known as the Apple M1. A summary of the specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple M1 System on a Chip (SoC)&lt;/li&gt;
  &lt;li&gt;5nm Process&lt;/li&gt;
  &lt;li&gt;16B Transistors&lt;/li&gt;
  &lt;li&gt;8-Core Central Processing Unit (4x High-Power, 4x Low-Power)&lt;/li&gt;
  &lt;li&gt;3.2GHz Max Clock Rate&lt;/li&gt;
  &lt;li&gt;12MB (High Power), 4MB (Low-Power) L2 Cache&lt;/li&gt;
  &lt;li&gt;8-Core Graphics Processing Unit&lt;/li&gt;
  &lt;li&gt;8GB or 16GB 4266 MT/s LPDDR4X SDRAM&lt;/li&gt;
  &lt;li&gt;16-Core Neural Engine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I do not plan to detail the specifics of the Apple M1 architecture, if you are interested, I would recommend reading the excellent analysis from &lt;a href=&quot;https://www.anandtech.com/show/16226/apple-silicon-m1-a14-deep-dive&quot;&gt;Anandtech&lt;/a&gt;. However, I have included an annotated image of the SoC, which highlights the core components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem102.jpg&quot; alt=&quot;Apple M1&quot; title=&quot;Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The key takeaway is that Apple has chosen to deliver a System on a Chip (SoC), which means all core components are embedded. This approach has many advantages (performance, power-efficiency and space), but removes any ability to upgrade individual components (e.g. Memory, etc.)&lt;/p&gt;

&lt;p&gt;It is curious how much space Apple reserved for the 16-Core Neural Engine, a capability that is not commonly found on x86-based systems. I feel this highlights another area of innovation (secret sauce) that might only become evident over time.&lt;/p&gt;

&lt;p&gt;Although the “paper specification” is interesting, it cannot be directly compared to traditional x86-based systems from Intel or AMD. For example, core count, clock speeds, memory capacity, memory speed are less relevant when comparing two different architectures, as they are fundamentally different, with unique strengths and weaknesses.&lt;/p&gt;

&lt;p&gt;As demonstrated by the iPhone, we have also seen the advantage that comes from vertical integration (hardware and software). For example, the Apple iPhone 12 Pro has 6GB of Memory, compared to the Samsung Galaxy S20 Ultra, which has 16GB. However, the iPhone consistently outperforms its rivals, partly driven by the level of hardware/software optimisation.&lt;/p&gt;

&lt;p&gt;In summary, although the architecture and specification of the Apple M1 are certainly intriguing, I am mostly interested in how they translate to real-world performance, power-efficiency and compatibility.&lt;/p&gt;

&lt;h3 id=&quot;apple-macbook-air&quot;&gt;Apple MacBook Air&lt;/h3&gt;

&lt;p&gt;I purchased an Apple MacBook Air (Fourth Generation) for testing.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem103.jpg&quot; alt=&quot;Apple M1&quot; title=&quot;Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The full specification can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple MacBook Air&lt;/li&gt;
  &lt;li&gt;Apple M1 8‑Core CPU, 7‑Core GPU, 16‑Core Neural Engine&lt;/li&gt;
  &lt;li&gt;16GB Memory&lt;/li&gt;
  &lt;li&gt;256GB SSD&lt;/li&gt;
  &lt;li&gt;2x USB 4 (Thunderbolt Compatible)&lt;/li&gt;
  &lt;li&gt;13.3-inch P3 IPS Display (2560x1600, 400nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A few areas to note, the new MacBook Air, MacBook Pro 13 and Mac Mini all include the same Apple M1 SoC, however, the MacBook Pro 13 ad Mac Mini have a fan (likely producing better-sustained performance).&lt;/p&gt;

&lt;p&gt;The MacBook Air I used for testing includes 16GB Memory, but a lower-binned SoC, with a 7-Core GPU (can be configured with 8-Core).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem104.jpg&quot; alt=&quot;Apple M1&quot; title=&quot;Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The total price for this specification was £1,199.00, which is comparable to the previous generation Intel MacBook Air.&lt;/p&gt;

&lt;p&gt;Like the price, the design of the MacBook Air is essentially identical to the previous generation, with a slightly better display (P3 colour gamut) and support for USB 4, which is compatible with Thunderbolt.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem105.jpg&quot; alt=&quot;Apple M1&quot; title=&quot;Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, The MacBook Air is a great passively cooled (no fans) notebook, that targets mainstream consumers.&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;Unsurprisingly, following the launch of the Apple M1, thousands of reviews have hit the Internet, many of which focus on the traditional suite of synthetic benchmarks.&lt;/p&gt;

&lt;p&gt;If you are interested in the benchmark results, I would advise referencing the following publications:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.anandtech.com/show/16252/mac-mini-apple-m1-tested&quot;&gt;Anandtech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2020/11/17/macbook-air-m1-review-the-right-apple-silicon-mac-for-most/&quot;&gt;TechCrunch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wired.com/review/macbook-air-m1-2020/&quot;&gt;Wired&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arstechnica.com/gadgets/2020/11/mac-mini-and-apple-silicon-m1-review-not-so-crazy-after-all/&quot;&gt;Ars Technica&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.theverge.com/21569603/apple-macbook-air-m1-review-price-specs-features-arm-silicon&quot;&gt;The Verge&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I did validate some of the benchmark results, &lt;a href=&quot;/2020/08/25/My-Setup-Q3-2020/&quot;&gt;compared against my 16-inch MacBook Pro, which includes an 8-Core Intel i9-9980HK processor&lt;/a&gt; and (where appropriate) my old 12-inch MacBook (2017), which includes a passively cooled Intel Core i7-7Y75 processor. The first image highlights the &lt;a href=&quot;https://www.geekbench.com/&quot;&gt;Geekbench&lt;/a&gt; CPU score of my 16-inch MacBook Pro.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem106.jpg&quot; alt=&quot;Apple M1&quot; title=&quot;Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The image below highlights the same benchmark running natively on the MacBook Air.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem107.jpg&quot; alt=&quot;Apple M1&quot; title=&quot;Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the M1 crushes the Intel i9-9980HK, which is already impressive, but especially considering it is passively cooled (no fan). Unsurprisingly, my old 12-inch MacBook was the worst performing by a wide margin, with a single-core score of 818 and a multi-core score of 1683. Although this is a great result for the M1, it should be noted that synthetic benchmarks only tell part of the story and Geekbench consistently favours Apple hardware.&lt;/p&gt;

&lt;p&gt;As a result, I prefer to focus my testing on real-world performance across my common workloads, covering productivity, collaboration, development, photo editing, video editing, etc. The video below provides a narrated overview of my experience.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/5QmVdtfDMRw?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Overall, I am very impressed by the results, which is great news, considering the Apple launch event made big claims but failed to provide any specifics. The lack of specifics would usually be a cause for concern, but thankfully the real-world performance speaks for itself.&lt;/p&gt;

&lt;p&gt;When compared against my 16-inch MacBook Pro (8-Core Intel i9-9980HK, 32GB Memory, AMD Radeon Pro 5500M), I am amazed by how well the passively cooled MacBook Air performs, especially under sustained load, which would usually result in thermal throttling and therefore a loss of performance. The M1 within the MacBook Air does appear to throttle, but far less aggressively than Intel processors and usually only after nine minutes of sustained load, which is more than acceptable for mainstream consumers.&lt;/p&gt;

&lt;p&gt;I am also pleased to report that executing common tasks such as productivity and collaboration are very responsive, equivalent to my 16-inch MacBook Pro and certainly outperforming my old 12-inch MacBook which is also passively cooled. In certain scenarios, for example, wake from sleep, the MacBook Air is essentially instant, tangibly quicker than my 16-inch MacBook Pro, demonstrating the advantage of being vertically integrated.&lt;/p&gt;

&lt;p&gt;My only frustration is not being able to run my developer workloads, which would have given me a much better indication of the performance. However, due to software limitations (covered under compatibility), applications such as Docker and Client-Side Virtualisation are not currently usable.&lt;/p&gt;

&lt;h3 id=&quot;power-efficiency&quot;&gt;Power Efficiency&lt;/h3&gt;

&lt;p&gt;Unsurprisingly, the ARM architecture excels when it comes to power efficiency.&lt;/p&gt;

&lt;p&gt;Recognising the current lock-down restrictions due to COVID-19, I have not needed to travel, therefore I am rarely away from a power source. However, in my testing at home, I would compare the MacBook Air with my iPad Pro, consistently achieving 10+ hours of use and up to 16 hours depending on the workload.&lt;/p&gt;

&lt;p&gt;The MacBook Air achieves an average of up to 9 hours additional battery life than my old 12-inch MacBook and &lt;a href=&quot;/2019/11/18/razer-blade/&quot;&gt;Razer Blade 15 Advanced&lt;/a&gt;, whilst up to 6 hours better than my 16-inch MacBook Pro. This is a phenomenal achievement, which makes me excited about the prospect of an Apple Silicon powered 16-inch MacBook Pro.&lt;/p&gt;

&lt;p&gt;In summary, my usage of the MacBook Air has been similar to an iPad, only charging every few days vs. every night. This is even true when using applications that would usually drain battery life at an accelerated rate, such as Zoom video conferencing, etc.&lt;/p&gt;

&lt;h3 id=&quot;compatibility&quot;&gt;Compatibility&lt;/h3&gt;

&lt;p&gt;As part of the transition to Apple Silicon, Apple introduced Rosetta 2, which like the PowerPC to Intel transition, aims to allow software designed for Intel processors to run on the Apple M1. The image below shows Activity Monitor, which includes a new “Architecture” column highlighting the status of each application.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem108.jpg&quot; alt=&quot;Apple M1&quot; title=&quot;Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With memories of Rosetta, this is where I was most sceptical. I was fairly confident Apple would nail the performance and power efficiency, but compatibility can be a real challenge. For example, Microsoft has attempted (multiple times) to deliver x86 compatibility on Windows for ARM but continues to fail miserably.&lt;/p&gt;

&lt;p&gt;The table below highlights which of my commonly used applications are currently running native Apple Silicon on or via Rosetta 2. Where available, I have also added the timeline in which a native version is expected.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem109.jpg&quot; alt=&quot;Apple M1&quot; title=&quot;Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It is important to note that this story is evolving daily, as developers update their applications. To stay up to date with the latest information, I would recommend reviewing the website “&lt;a href=&quot;https://isapplesiliconready.com/&quot;&gt;Is Apple Silicon Ready&lt;/a&gt;”. One of the strengths of the Apple ecosystem is the speed in which developers accept and adapt to changes, which appears to be the case with the Apple M1.&lt;/p&gt;

&lt;p&gt;The big test for me was Microsoft Office, which I use regularly, with large, complex files. I also remember how badly Microsoft Office 2004 ran on Rosetta during the transition to Intel, therefore I was nervous to go back to this position.&lt;/p&gt;

&lt;p&gt;Thankfully, as highlighted in the video below from &lt;a href=&quot;https://www.youtube.com/channel/UCUq3Rn72jfQ-86CaCxj7XzA&quot;&gt;Created Labs&lt;/a&gt;, Microsoft Office works remarkably well via Rosetta 2.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/cKl4_4fBp7I?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The same can be said for all of my common applications running via Rosetta 2. I occasionally see some slow-down during start-up, but once running, everything appears to work as designed, delivering acceptable performance and battery life. As an example, I re-ran Geekbench on the MacBook Air under Rosetta 2, which achieved the following result.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/applem110.jpg&quot; alt=&quot;Apple M1&quot; title=&quot;Apple M1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The single-core score reduced by 26% and the multi-core score reduced by 21%. This is a very impressive result, considering the M1 is still competitive against the Intel i9-9980HK in my 16-inch MacBook Pro.&lt;/p&gt;

&lt;p&gt;Although I cannot prove this to be true, I am guessing Apple has worked some “hardware” magic to achieve this outcome. I find it difficult to believe that software alone could deliver this level of performance through emulation. Assuming accurate, this would highlight one of the benefits of transitioning to custom silicon, something that would not have been possible when transitioning from PowerPC to Intel.&lt;/p&gt;

&lt;p&gt;It is worth noting that Rosetta 2 cannot translate kernel extensions or applications that rely on client virtualisation. Developers must also be aware that Rosetta 2 cannot translate AVX, AVX2, and AVX512 vector instructions, therefore some applications will simply fail to start.&lt;/p&gt;

&lt;p&gt;A good example is &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;, which relies on Go for Docker Desktop and client virtualisation to run Linux containers. I use Docker frequently as part of my developer workflow, therefore was unable to use the Apple MacBook Air for development at this time. Thankfully, Docker is actively working on a new version, as highlighted in their recent &lt;a href=&quot;https://www.docker.com/blog/apple-silicon-m1-chips-and-docker/&quot;&gt;blog post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I was pleasantly surprised that Terminal tools can be used under Rosetta 2, such as the popular &lt;a href=&quot;https://github.com/Homebrew/brew/issues/7857&quot;&gt;Homebrew Package Manager&lt;/a&gt;. To achieve this outcome, the “&lt;a href=&quot;https://www.unix.com/man-page/osx/1/arch/&quot;&gt;arch&lt;/a&gt;” command must be used, which allows the user to specify the architecture of a universal binary.&lt;/p&gt;

&lt;p&gt;For example, the following command installs Homebrew under x86_64 emulation.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;    arch -x86_64 /bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/in...)&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Although functional, package compatibility can be inconsistent, therefore I hope to see native support soon. I would recommend keeping an eye on the &lt;a href=&quot;https://github.com/Homebrew/brew/issues/7857&quot;&gt;Homebrew GitHub Issues Page&lt;/a&gt; for the latest updates.&lt;/p&gt;

&lt;p&gt;Finally, client virtualisation, such as &lt;a href=&quot;https://www.vmware.com/uk/products/fusion.html&quot;&gt;VMWare Fusion Player&lt;/a&gt; and &lt;a href=&quot;https://www.parallels.com/&quot;&gt;Parallels Desktop&lt;/a&gt; are also unusable at this time. In macOS 11 Big Sur, Apple has provided access to a new &lt;a href=&quot;https://developer.apple.com/documentation/virtualization&quot;&gt;virtualisation framework&lt;/a&gt;, which provides high-level APIs for creating and managing virtual machines. Therefore, I expect to see the availability of community projects soon, followed by the release of commercial applications from companies such as Parallels, etc.&lt;/p&gt;

&lt;p&gt;Although some of these current restrictions impact my workflow, I do not expect them to affect mainstream consumers (those buying a MacBook Air). I assume by the time Apple release a true “Pro” Mac running Apple Silicon, these limitations will be resolved.&lt;/p&gt;

&lt;p&gt;In short, with some known exceptions, Apple has nailed compatibility!&lt;/p&gt;

&lt;p&gt;Apple tend to use the word “magic” to describe their products, ironically, Rosetta 2 feels like magic, but will likely be relegated to a footnote in the history of macOS. Therefore I commend the Rosetta 2 development team for their impressive implementation.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In my framing, I highlighted two possible outcomes regarding the transition to Apple Silicon.&lt;/p&gt;

&lt;p&gt;The first described the impact if Apple were to succeed, by achieving better performance and power efficiency, delivered in a smaller form-factor at a lower cost.&lt;/p&gt;

&lt;p&gt;Although it is still early days, my initial reaction is that Apple is on the right path!&lt;/p&gt;

&lt;p&gt;In my experience, Apple Silicon is something special, delivering performance and power-efficiency that punches well above its weight, especially when you acknowledge that the MacBook Air I have been testing is passively cooled (no fans).&lt;/p&gt;

&lt;p&gt;Thanks to Rosetta 2, Apple has also delivered a viable transition runway that makes selecting a Mac running Apple Silicon seamless for mainstream consumers. This achievement should not be underestimated, considering the past failures of Windows on ARM.&lt;/p&gt;

&lt;p&gt;Assuming Apple can sustain the previously stated rate of innovation, as well as scale their silicon to “pro” devices, I am very excited by the future. The idea of an Apple M1x with more cores, more memory and higher clock rates is a tantalising proposition, something that I hope to see in early 2021 as part of the anticipated 16-inch MacBook Pro refresh.&lt;/p&gt;

&lt;p&gt;As to where this leaves Intel/AMD and the x86 architecture, as a PC manufacture (e.g. HP, Dell, Lenovo), I would be very nervous. Although I do not anticipate any immediate impact, the mid/long-term success of these companies could rely upon their ability to partner, as well as remove existing barriers that have prevented innovation.&lt;/p&gt;

&lt;p&gt;As a wild card, I will also be watching &lt;a href=&quot;https://www.nvidia.com/&quot;&gt;Nvidia&lt;/a&gt; very closely, who have demonstrated strong, sustained innovation across their graphics and AI technologies. With their recent &lt;a href=&quot;https://nvidianews.nvidia.com/news/nvidia-to-acquire-arm-for-40-billion-creating-worlds-premier-computing-company-for-the-age-of-ai&quot;&gt;announcement to acquire ARM&lt;/a&gt;, they potentially have all of the ingredients to rival Apple, especially if they form a close partnership with Microsoft and/or (finally) embrace Linux from a software perspective.&lt;/p&gt;

&lt;p&gt;My only concern as a byproduct of Apple Silicon is that Apple becomes even more confident, further locking-down their ecosystem, making open hardware and software increasingly difficult to embrace. &lt;a href=&quot;/2011/12/12/first-pc/&quot;&gt;As a long-time PC enthusiast&lt;/a&gt; and open evangelist, this trend would be disappointing.&lt;/p&gt;

&lt;p&gt;With that said, I cannot help but be inspired by Apple’s continued ambition and ability to execute! Many felt that the company would falter without Steve Jobs, however, I feel Apple may be on the verge of delivering another market-disrupting innovation!&lt;/p&gt;
</description>
        <pubDate>Wed, 18 Nov 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/11/18/Apple-M1/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/11/18/Apple-M1/</guid>
      </item>
    
      <item>
        <title>Docker on Fedora 33</title>
        <description>&lt;p&gt;In the article “&lt;a href=&quot;/2020/10/08/Linux-at-Work/&quot;&gt;Linux at Work&lt;/a&gt;”, I documented my testing of a Dell XPS 13 running &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora 33&lt;/a&gt; as my primary device for work.&lt;/p&gt;

&lt;p&gt;Thanks to the growth of web applications and frameworks such as &lt;a href=&quot;https://www.electronjs.org/&quot;&gt;Electron&lt;/a&gt;, the experience was mostly positive, with only a few limitations, caused by the lack of a native Linux Microsoft Office 365 applications (Word, PowerPoint, Excel).&lt;/p&gt;

&lt;p&gt;The only other challenge I experienced was related to software repositories that had not yet been updated to support Fedora 33 (which has now been officially released). For example, &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;, which I use for software development to package and run applications in containers.&lt;/p&gt;

&lt;p&gt;Thankfully, with support from the open-source community, it was relatively easy to get a Docker compatible environment running on Fedora 33, taking advantage of components offered by the &lt;a href=&quot;https://mobyproject.org/&quot;&gt;Moby Project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The article aims to document the installation process of a Docker compatible environment on Fedora 33.&lt;/p&gt;

&lt;h3 id=&quot;moby-project&quot;&gt;Moby Project&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://mobyproject.org/&quot;&gt;Moby&lt;/a&gt; is an open-source project, created by Docker, to enable and accelerate software containerisation.&lt;/p&gt;

&lt;p&gt;It includes a framework and library of components that provide the building blocks to set up a custom container-based architecture, primarily targetting container enthusiasts and professionals. The image below highlights the core components of Moby.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dockeronfedora01.jpg&quot; alt=&quot;Docker on Fedora&quot; title=&quot;Docker on Fedora&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I would still recommend using &lt;a href=&quot;https://www.docker.com/get-started&quot;&gt;Docker Community Edition (CE)&lt;/a&gt; for mission-critical development, but the Moby Project can be used to enable a Docker compatible environment if the official Docker channel has not been updated (often the case with new operating system releases).&lt;/p&gt;

&lt;h4 id=&quot;control-groups-cgroups&quot;&gt;Control Groups (cgroups)&lt;/h4&gt;

&lt;p&gt;As part of the Linux kernel, control groups (AKA cgroups) are a collection of processes that are bound by the same criteria and associated with a set of parameters or limits. For example, cgroups support the following capabilities:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Resource limiting:&lt;/strong&gt; Limit memory usage, including the file system cache.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Prioritisation:&lt;/strong&gt; Prioritise processor utilisation and/or disk I/O throughput.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Accounting:&lt;/strong&gt; Measure resource usage, which can be used for billing purposes.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Control:&lt;/strong&gt; Freezing processes, their checkpointing and restarting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are two versions of cgroups (cgroups v1 and cgroups v2) currently available. Starting with Fedora 31, cgroups v2 was enabled by default. Although this was a positive step forward from a Linux kernel perspective (and I respect Fedora for leading the way), unfortunately, &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;, &lt;a href=&quot;https://mobyproject.org/&quot;&gt;Moby&lt;/a&gt;and &lt;a href=&quot;https://kubernetes.io/&quot;&gt;Kubernetes&lt;/a&gt; are not yet compatible with cgroups v2.&lt;/p&gt;

&lt;p&gt;As a result, to enable Docker or Moby on Fedora 33, cgroups v1 must be re-enabled.&lt;/p&gt;

&lt;h3 id=&quot;install-docker-on-fedora-33&quot;&gt;Install Docker on Fedora 33&lt;/h3&gt;

&lt;p&gt;The following three steps outline how to install a Docker compatible environment on Fedora 33.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step One:&lt;/strong&gt; The following Terminal command will re-enable cgroups v1 on Fedora.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo grubby --update-kernel=ALL --args=&quot;systemd.unified_cgroup_hierarchy=0&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;strong&gt;Step Two:&lt;/strong&gt; The following Terminal commands will ensure Docker has the required network access to manage containers.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0

sudo firewall-cmd --permanent --zone=FedoraWorkstation --add-masquerade
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;strong&gt;Step Three:&lt;/strong&gt; The following Terminal commands will install and enable Docker compatible components.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install moby-engine docker-compose

sudo systemctl enable docker
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once the installation is complete, reboot Fedora.&lt;/p&gt;

&lt;p&gt;To test the installation, simply run the following Terminal command to run the “Hello World” container.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo docker run hello-world
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The screenshot below highlights a successful installation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dockeronfedora02.jpg&quot; alt=&quot;Docker on Fedora&quot; title=&quot;Docker on Fedora&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That’s it! You should now have a Docker compatible environment running on Fedora 33.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;As previously stated, I would still recommend &lt;a href=&quot;https://www.docker.com/get-started&quot;&gt;Docker CE&lt;/a&gt; for any mission-critical development. However, if you are impatient (or simply inquisitive), the Moby Project is viable and worth a look.&lt;/p&gt;
</description>
        <pubDate>Tue, 10 Nov 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/11/10/Docker-on-Fedora-33/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/11/10/Docker-on-Fedora-33/</guid>
      </item>
    
      <item>
        <title>Windows 10 ISO</title>
        <description>&lt;p&gt;In 2017, Microsoft introduced the terminology “Windows as a Service”, which many assumed would be a subscription model for Windows (like Office 365). Instead, it signified a change in approach regarding how Microsoft builds, deploys, and services Windows, shifting to regular “feature updates” that contain new features and fixes.&lt;/p&gt;

&lt;p&gt;On paper, this approach sounds great, similar to how web services are continuously updated. However, Windows 10 is a complex beast, which makes testing very difficult, especially when executed under pressure to meet an arbitrary timeline.&lt;/p&gt;

&lt;p&gt;As a result, there can be good reasons to avoid the latest release of Windows 10, especially for businesses, where consistency and reliability are generally prioritised above new features.&lt;/p&gt;

&lt;p&gt;Unfortunately, due to the “Windows as a Service” approach, Microsoft does not make it easy to download older versions of Windows 10, always pushing you towards the latest and “greatest”.&lt;/p&gt;

&lt;p&gt;Thankfully, the user “&lt;a href=&quot;https://github.com/AveYo&quot;&gt;AveYo&lt;/a&gt;” has posted a useful “.bat” file on &lt;a href=&quot;https://gist.github.com/AveYo/c74dc774a8fb81a332b5d65613187b15&quot;&gt;GitHub&lt;/a&gt;, which makes the process trivial.&lt;/p&gt;

&lt;p&gt;As a prerequisite, download the official “&lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows10&quot;&gt;Media Creation Tool&lt;/a&gt;” from Microsoft.&lt;/p&gt;

&lt;p&gt;Once complete, download the “.bat” file from &lt;a href=&quot;https://gist.github.com/AveYo/c74dc774a8fb81a332b5d65613187b15&quot;&gt;GitHub&lt;/a&gt; and place it in the same folder as Media Creation Tool.&lt;/p&gt;

&lt;p&gt;Finally, open the Command Prompt (cmd.exe), navigate to the folder location and run the following command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;MediaCreationTool.bat
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This will trigger a window to appear, with options to select any officially released version of Windows 10 (starting with 1507).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windows10iso.jpg&quot; alt=&quot;Windows 10 ISO&quot; title=&quot;Windows 10 ISO&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once selected, the standard Microsoft Media Creation Tool is triggered, allowing you to create an ISO.&lt;/p&gt;

&lt;p&gt;That’s it! You can now easily download and create installation media for any version of Windows 10.&lt;/p&gt;
</description>
        <pubDate>Fri, 06 Nov 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/11/06/Windows-10-ISO/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/11/06/Windows-10-ISO/</guid>
      </item>
    
      <item>
        <title>Zero Trust</title>
        <description>&lt;p&gt;Historically, enterprise businesses have relied upon a traditional “Moat/Castle” strategy for IT Security, which aims to protect critical business assets through perimeter security controls (e.g. Firewalls, etc.) This strategy was established during a time when the majority of IT services existed within private data centres, where the end-to-end technology stack was fully managed.&lt;/p&gt;

&lt;p&gt;Users would be “verified” at the perimeter before being granted access to business assets, usually via the Local Area Network (LAN) or remotely via a Virtual Private Network (VPN). Once inside the permitter, the business would assume a level of trust.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/zerotrust01.jpg&quot; alt=&quot;Zero Trust&quot; title=&quot;Zero Trust&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, modern working has exposed the Most/Castle strategy as inadequate, highlighted by three realities:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;The majority of users (employees/contractors) no longer operate from controlled locations (e.g. Offices), especially post-COVID, where remote working has become a necessity.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;IT Services are increasingly distributed (e.g. SaaS, Cloud Hosting) and rented vs. owned (e.g. Public Cloud, Colocation Data Centres), meaning business-critical assets could be hosted and/or processed at multiple unmanaged locations, making the concept of a permitter very difficult to define and maintain.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;It is no longer safe to assume that verified users (internal or external) are “friendly”, recognising the growth in outsourcing, partnerships and social engineering.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Many enterprise businesses (and security vendors) continue to perpetuate the inadequate Moat/Castle strategy, often positioning additional security layers that deliver the illusion of increased control. Unfortunately, in the context of security, investment against the wrong strategy can be counterintuitive, adding complexity and technical debt, which contributes to additional risk.&lt;/p&gt;

&lt;p&gt;With this in mind, a fundamentally different strategy is required, one that accepts and embraces the realities of modern working.&lt;/p&gt;

&lt;h3 id=&quot;zero-trust&quot;&gt;Zero Trust&lt;/h3&gt;

&lt;p&gt;Zero Trust is an emerging strategy for IT security, which assumes that internal and external threats exist at all times and that all networks are inherently hostile.&lt;/p&gt;

&lt;p&gt;The traditional concept of a perimeter is disregarded, shifting the emphasis to Identity Access Management (IAM). It could be argued that identity becomes the new perimeter, stipulating that all connections (users, services, machines or devices) accessing business assets must first be authenticated and authorised.&lt;/p&gt;

&lt;p&gt;In this scenario, IT services (applications and data) are individually secured and monitored at source via a central control pane, following the Principle of Least Privilege (PoLP). Therefore, a holistic security posture can be maintained regardless of the user or IT service location, with appropriate threat identification and controls that inherently limit the impact of a breach.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/zerotrust02.jpg&quot; alt=&quot;Zero Trust&quot; title=&quot;Zero Trust&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It should be noted, that although not depicted in the diagram, the firewall still plays an important role, shifting from Layer 3 (Network) to Layer 7 (Application), creating a Software-Defined Perimeter that can be managed from a central control pane.&lt;/p&gt;

&lt;p&gt;The philosophy of Zero Trust is reasonably easy to understand (everything is hostile), but the practical implementation of a Zero Trust architecture can be challenging.&lt;/p&gt;

&lt;p&gt;The following eight principles highlight the foundational technologies and techniques that enable a Zero Trust architecture:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Architecture and Asset Transparency:&lt;/strong&gt; Situational Awareness is an important part of any strategy, therefore it is critical to understand the end-to-end architecture and assets across the business, covering the users and their devices, through to the services and data they are accessing. Without this basic insight, it becomes very difficult to identify the risks and dependencies that allow for data-driven decisions. In the context of Zero Trust, focus on assets that interact with a network (specifically important within a microservice architecture), leveraging automated discovery tools to reduce the burden of ongoing maintenance.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Prioritise Identity Access Management:&lt;/strong&gt; In a Zero Trust architecture, identity becomes the new perimeter, it is important to have a single source of identity for all users, services, machines and devices, ideally managed via a central control pane and complimented by Privileged Access Management (PAM). These identities must be continuously maintained, modified and monitored throughout their access lifecycle, requiring a robust governance model, mature processes and discipline (e.g. Joiners-Movers-Leavers, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Authenticate Everything:&lt;/strong&gt; Every network flow from a user, service, machine or device must be authenticated, preferably leveraging a modern authentication protocol (e.g. SAML, Oauth2, OpenID Connect, etc.) User authentication must include Multi-Factor Authentication (MFA), alongside the use of Secure Cryptoprocessor technologies (e.g. HSM, TPM, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Authorise Everything:&lt;/strong&gt; The Principle of Least Privilege (PoLP) must be established, where all service and data access requests are only granted if required (need-to-know basis). Ideally, every request to access a service or data must be checked by a central policy engine, which should be dynamic and calculated from as many sources of data as possible, enabling conditional access.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Log Everything:&lt;/strong&gt; Given that users, services, machines and devices are increasingly network connected, it is important that comprehensive logging and monitoring is maintained to provide visibility. The output can be used to help identify gaps and opportunities, as well as verify that all policies are being enforced appropriately. Any identified issue can be automatically flagged and remediated following an event-driven architecture.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Hostile Network:&lt;/strong&gt; Recognising that all networks are considered hostile, all users, services, machines and devices must be secured at source and in transit. Network locality is not sufficient for defining trust, however, network segmentation concepts to create secure enclaves which limit network and application flows between workloads can form effective mitigation when looking to reduce the “blast radius” of a breach.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Health Confidence:&lt;/strong&gt; The health of services, machines and devices are important signals that should be used as part of the conditional access policies. Health should be established based on standard control policies, which stipulate the minimum required criteria for access (e.g. hardening controls, patching levels, etc.) &lt;a href=&quot;https://www.ncsc.gov.uk/&quot;&gt;NCSC&lt;/a&gt; or &lt;a href=&quot;https://www.cisecurity.org/&quot;&gt;CIS&lt;/a&gt; standards/benchmarks can be utilised to provide a robust foundation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Automation:&lt;/strong&gt; IT Security is a dynamically evolving and often volatile space, with new exploits and threat actors being identified regularly. With this in mind, it is unrealistic to rely upon reactive, manual interventions to protect an enterprise ecosystem. Investment in automation across the ecosystem can mitigate this challenge, promoting agility, whilst ensuring the consistent adoption of security controls that can be proactively and immediately applied based on specific criteria or events.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The diagram below helps to highlight the key components of Zero Trust:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/zerotrust03.jpg&quot; alt=&quot;Zero Trust&quot; title=&quot;Zero Trust&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alongside these principles, a robust education curriculum must be established to help embed the concepts of Zero Trust. This is especially important for any team designing/delivering digital solutions (e.g. Product Teams), as well as architects and engineers working on the core infrastructure, DevOps or DataOps.&lt;/p&gt;

&lt;h3 id=&quot;zero-trust-anti-patterns&quot;&gt;Zero Trust Anti-Patterns&lt;/h3&gt;

&lt;p&gt;Another perspective that can help position Zero Trust is to review anti-patterns, which include common designs that reduce the effectiveness of Zero Trust, resulting in technical debt. Zero Trust can only be effective if the entire business is aligned, although as with any transformation, the transition will take time.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Virtual Private Network (VPN):&lt;/strong&gt; Client VPN and Business-to-Business VPN (B2B VPN) technologies used to establish connectivity between two parties (user or business). These technologies commonly operate at the Network Layer (Layer 3), maintained by brittle access control lists. VPN technologies often assume IT services are static and therefore are not well suited for highly ephemeral, dynamic services. As a result, without application layer controls, achieving the Principle of Least Privilege (PoLP) across multiple IT services via a single VPN tunnel can become very complex. Zero Trust alternatives would include targeting API-Centric connectivity (e.g. REST) and/or a service such as &lt;a href=&quot;https://www.boundaryproject.io/&quot;&gt;Boundary&lt;/a&gt; from &lt;a href=&quot;https://www.hashicorp.com/&quot;&gt;HashiCorp&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Application Architecture:&lt;/strong&gt; Traditional three-tier applications running within a private data centre are often tightly-coupled, leveraging proprietary technologies and custom integrations. This “monolithic” approach to application architecture commonly relies upon network locality to define trust, instead of targeting modern authentication protocols (e.g. &lt;a href=&quot;https://oauth.net/2/&quot;&gt;OAuth2&lt;/a&gt;), open APIs (e.g. REST) and secure transit (e.g. TLS). To achieve Zero Trust, a modern “cloud-native” application methodology should be followed, such as &lt;a href=&quot;https://12factor.net/&quot;&gt;The Twelve-Factor App&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;IP Whitelists:&lt;/strong&gt; Legacy services and data stores can rely upon an IPv4 address to define trust. Static IP addresses are increasingly rare, due to address translation technologies, proxies and dynamic services. They can also be subject to “man-in-the-middle” attacks and address spoofing. A Zero Trust alternative would be to implement a modern authentication protocol, such as &lt;a href=&quot;https://oauth.net/2/&quot;&gt;OAuth2&lt;/a&gt;, &lt;a href=&quot;https://openid.net/connect/&quot;&gt;OpenID Connect&lt;/a&gt;, etc.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Finally, like all trending “buzzwords”, vendors will look to “rebrand” their existing products and services to promote Zero Trust concepts (the same can be said for Artificial intelligence). Therefore, be careful to ensure that any investment is verified as “Zero Trust” compliant, by benchmarking it against the previously highlighted principles.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, I am a strong believer that enterprise businesses need to stop perpetuating inadequate security strategies, recognising the hard reality that modern working requires a different approach.&lt;/p&gt;

&lt;p&gt;Zero Trust is a good example of a modern security model, but the transition can seem insurmountable for an enterprise business with a large legacy ecosystem. Even in this scenario, it is critical to “stop the bleed” and look for pragmatic opportunities to invest in technologies and techniques that support the principles of Zero Trust, for example, I would recommend protecting (growing) investments related to Identity Access Management (IAM).&lt;/p&gt;
</description>
        <pubDate>Sat, 31 Oct 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/10/31/Zero-Trust/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/10/31/Zero-Trust/</guid>
      </item>
    
      <item>
        <title>Nvidia Jetson Nano</title>
        <description>&lt;p&gt;In the article “&lt;a href=&quot;/2020/09/25/Computer-Vision/&quot;&gt;Computer Vision&lt;/a&gt;”, I outlined my intent to build a small Computer Vision test lab, designed to support a range of business use cases. The article highlighted the target uses cases (internal and external), requirements, proposed architecture and bill of materials.&lt;/p&gt;

&lt;p&gt;This article will detail the setup of the Computer Vision test lab, with a follow-up article that will focus on the testing observations and results.&lt;/p&gt;

&lt;p&gt;The test lab is built around the &lt;a href=&quot;https://developer.nvidia.com/&quot;&gt;Nvidia Jetson Nano Developer Kit&lt;/a&gt;, which is a small and power-efficient computer, with enough horsepower to run multiple neural networks in parallel, supporting applications such as image classification, object detection, segmentation, etc.&lt;/p&gt;

&lt;p&gt;The full bill of materials can be found below, selected based on their interoperability.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://developer.nvidia.com/buy-jetson/&quot;&gt;Nvidia Jetson Nano Developer Kit&lt;/a&gt;:&lt;/strong&gt; £101.50&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.co.uk/gp/product/B07FCMBLV6/&quot;&gt;SanDisk Ultra 64GB A2 microSD Card&lt;/a&gt;:&lt;/strong&gt; £9.69&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.co.uk/gp/product/B08215L7SY/&quot;&gt;Geekworm 5V 4A 4000mA AC-DC Adaptor&lt;/a&gt;:&lt;/strong&gt; £12.99&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://thepihut.com/products/raspberry-pi-camera-module&quot;&gt;Raspberry Pi Camera v2.0+&lt;/a&gt;:&lt;/strong&gt; £24.00&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.co.uk/gp/product/B01INRAC2C/&quot;&gt;EDiMAX EW-7611ULB USB Wi-Fi Adapter with Bluetooth&lt;/a&gt;:&lt;/strong&gt; £12.17&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The total one-time cost of the test lab was £160.35, making it a cost-effective entry point for anyone looking to explore Artificial Intelligence or subfields such as Computer Vision.&lt;/p&gt;

&lt;h3 id=&quot;hardware-setup&quot;&gt;Hardware Setup&lt;/h3&gt;

&lt;p&gt;The Jetson Nano Developer Kit is shipped in a small, bare-bones box, which includes the Jetson Nano module and carrier board. No other peripherals are provided (e.g. SD Card, Power Adaptor, etc.) The box does double as a fold-out paper stand, which is a nice touch, but fairly useless outside of the initial setup.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nvidiajetsonnano01.jpg&quot; alt=&quot;Nvidia Jetson Nano&quot; title=&quot;Nvidia Jetson Nano&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The back of the box highlights the product specification and board schematic, as well as acknowledging the need for an SD CArd and 5V 2A power source.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nvidiajetsonnano02.jpg&quot; alt=&quot;Nvidia Jetson Nano&quot; title=&quot;Nvidia Jetson Nano&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although the Jetson Nano Developer Kit can be powered via micro-USB, I would highly recommend an external power adaptor to ensure a consistent and reliable 5V 2A. I selected the &lt;a href=&quot;https://www.amazon.co.uk/gp/product/B08215L7SY/&quot;&gt;Geekworm 5V 4A 4000mA AC-DC Adaptor&lt;/a&gt;, which appears to work well (even under heavy load). To enable the external power adaptor, a jumper must be used to close the DC EN connection (highlighted in the photo below).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nvidiajetsonnano03.jpg&quot; alt=&quot;Nvidia Jetson Nano&quot; title=&quot;Nvidia Jetson Nano&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although delivered as one unit, the Jetson Nano Developer Kit is two components, the Jetson Nano module, mounted on a carrier board. The module includes a large heatsink, with an option to add an external 40mm fan (recommended with hot or enclosed environments). The carrier board includes a range of input/output options, specifically HDMI, Display Port, 4x USB, 2x MIPI-CSI Camera Connector Connectors, 1x Expansion Header (GPIO, I2C, UART) and Ethernet.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nvidiajetsonnano04.jpg&quot; alt=&quot;Nvidia Jetson Nano&quot; title=&quot;Nvidia Jetson Nano&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The microSD slot can be found on the back of the Jetson Nano module, which can be accessed whilst mounted to the carrier board (highligted in the photo below).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nvidiajetsonnano05.jpg&quot; alt=&quot;Nvidia Jetson Nano&quot; title=&quot;Nvidia Jetson Nano&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I previously mentioned the fold-out paper stand, which works fine for the initial setup but does not include any mounting points for peripherals such as a camera, etc. As a result, I constructed a rudimentary stand out of &lt;a href=&quot;https://www.lego.com/&quot;&gt;Lego&lt;/a&gt; for the camera. The &lt;a href=&quot;https://thepihut.com/products/raspberry-pi-camera-module&quot;&gt;Raspberry Pi Camera&lt;/a&gt; connects via a MIPI-CSI Camera Connector.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nvidiajetsonnano06.jpg&quot; alt=&quot;Nvidia Jetson Nano&quot; title=&quot;Nvidia Jetson Nano&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To install the camera, simply disconnect all power sources (CCD cameras are sensitive to static) and connect the ribbon, ensuring the blue side is facing away from the Jeston Nano module (outwards).&lt;/p&gt;

&lt;p&gt;Finally, the &lt;a href=&quot;https://www.amazon.co.uk/gp/product/B01INRAC2C/&quot;&gt;EDiMAX EW-7611ULB USB Wi-Fi Adapter with Bluetooth&lt;/a&gt; adaptor can be inserted into an available USB port.&lt;/p&gt;

&lt;p&gt;This concludes the hardware setup of the Jetson Nano Developer Kit, ready to be connected to a monitor (HDMI or Display Port) and USB Keyboard/Mouse.&lt;/p&gt;

&lt;h3 id=&quot;software-setup&quot;&gt;Software Setup&lt;/h3&gt;

&lt;p&gt;Nvidia provides a custom version of &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt; Linux, which can be &lt;a href=&quot;https://developer.nvidia.com/jetson-nano-sd-card-image&quot;&gt;downloaded from their website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once downloaded, follow the steps outlined in the “&lt;a href=&quot;https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#write&quot;&gt;Jeston Nano Developer Kit Getting Started Guide&lt;/a&gt;” to write the operating system image to the microSD card. I used Windows to write the image, using an application called &lt;a href=&quot;https://www.etcher.net/&quot;&gt;Etcher&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once written, do not be surprised if the host operating system (in my case Windows) displays multiple errors when attempting to read the microSD card. Simply eject the microSD card and insert it into the Jetson Nano module.&lt;/p&gt;

&lt;p&gt;The newly written operating system can now be used to boot the Jeston Nano Developer Kit, following the on-screen instructions to complete the initial operating system setup (e.g. Username, Password, etc.)&lt;/p&gt;

&lt;p&gt;Once at the Linux desktop, it is time to set up and enable the EDiMAX EW-7611ULB USB wireless adapter.&lt;/p&gt;

&lt;p&gt;Start by opening the terminal and cloning the following &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt; repository (you will temporarily need an Internet connection via the Ethernet port).&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone https://github.com/lwfinger/rtl8723bu.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Within the terminal, navigate to the newly downloaded directory and type the following command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;source dkms.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Type the following command to create a working project directory:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo mkdir /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
With the directory created, type the following command to move the files to the working project directory:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo cp -r core hal include os_dep platform dkms.conf Makefile rtl8723b_fw.bin /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Add the files to DKMS with the following command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dkms add $PACKAGE_NAME/$PACKAGE_VERSION
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Finally, the driver can be installed by typing the following command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dkms autoinstall $PACKAGE_NAME/$PACKAGE_VERSION
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
With the installation of the wireless adapter complete, restart the Jeston Nano Developer Kit, at which point wireless networks should be accessible via “Settings &amp;gt; Network”.&lt;/p&gt;

&lt;p&gt;Although the Raspberry Pi Camera should be “plug and play”, it is worth testing. I would recommend using the &lt;a href=&quot;https://github.com/JetsonHacksNano/CSI-Camera&quot;&gt;CSI-Camera&lt;/a&gt; repository, which includes code that interacts with the MIPI-CSI Camera Connector. Using the provided Python script ‘python simple-camera-py’, the camera can be activated, with a live feed being displayed to the monitor.&lt;/p&gt;

&lt;p&gt;Finally, the following two terminal commands will update the operating system and Nvidia Jetpack SDK, which includes a suite of tools to support Computer Vision use cases.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt-get update

sudo apt-get install nvidia-jetpack
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
That is it! The Jeston Nano Developer Kit is now ready to start processing Computer Vision workloads. In the next article, I will focus on testing observations and results.&lt;/p&gt;
</description>
        <pubDate>Sun, 18 Oct 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/10/18/Jetson-Nano/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/10/18/Jetson-Nano/</guid>
      </item>
    
      <item>
        <title>Linux at Work</title>
        <description>&lt;p&gt;Over the past twenty-years, enthusiasts, researchers and analysts have predicted the “Year of the Linux Desktop”.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2018/05/01/fedora-28/&quot;&gt;I started using Linux in 2001&lt;/a&gt;, during a strange period when boxed Linux distributions could be purchased in a physical store (e.g. PC World, Staples, etc.) This was short-lived phenonium, but I did personally buy a boxed version of Mandrake Linux (which at the time, included the best documentation).&lt;/p&gt;

&lt;p&gt;Ironically, Linux has seen enormous growth in almost every market (e.g. Server, Mobile, IoT), but has failed to gain momentum on the desktop (currently estimated at 1.74% global market share).&lt;/p&gt;

&lt;p&gt;With this in mind, I wanted to answer the question, could I use a Linux Desktop full-time for work?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2018/09/23/cto/&quot;&gt;As Chief Technology Officer (CTO)&lt;/a&gt;, my time is split across the following tasks.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Collaboration (e.g. E-mail, Messaging, Conferencing, etc.)&lt;/li&gt;
  &lt;li&gt;Productivity (e.g. Document Creation, Reviews, Presentations, etc.)&lt;/li&gt;
  &lt;li&gt;Architecture (e.g. Creating and Reviewing High/Low-Level Designs, etc.)&lt;/li&gt;
  &lt;li&gt;Engineering (e.g. Software Development, Administrative, etc.)&lt;/li&gt;
  &lt;li&gt;Testing (e.g. Integration, System, Acceptance, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I would like to state that architecture and engineering are where I spend the majority of my time, but the reality of my role places a heavy emphasis on collaboration and productivity. I do however look for opportunities to stay grounded, by getting “hands-on keyboard” as often as possible.&lt;/p&gt;

&lt;h3 id=&quot;linux-work-setup&quot;&gt;Linux Work Setup&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/2018/05/01/fedora-28/&quot;&gt;As a long-time advocate of Fedora&lt;/a&gt; from &lt;a href=&quot;https://www.redhat.com/&quot;&gt;Red Hat&lt;/a&gt;, I selected the near-final version of &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora 33&lt;/a&gt; as my Linux distribution. Fedora 33 is set to be released in November and includes the usual updates to the Linux kernel (v5.8), GNOME (v3.38.1), as well as a controversial shift away from EXT to Btrfs as the default file system. As a long-time supporter of the ZFS file system, I have mixed opinions about this change, but happy to give it a try.&lt;/p&gt;

&lt;p&gt;I installed Fedora 33 on a Dell XPS 13 (9300), with the following specification:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;13-inch Dell XPS 13 (9300)&lt;/li&gt;
  &lt;li&gt;1.3GHz 4-Core Intel i7-1065G7 (Turbo up to 3.9GHz)&lt;/li&gt;
  &lt;li&gt;16GB 3733MHz LPDDR4x RAM&lt;/li&gt;
  &lt;li&gt;512GB M.2 PCIe NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel Iris Plus Graphics&lt;/li&gt;
  &lt;li&gt;13.4-inch Display (1920x1200, 500nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although not a powerhouse, the Dell XPS 13 is a fast, portable laptop with the same exceptional aesthetics as the &lt;a href=&quot;/2020/08/02/Dell-XPS-17/&quot;&gt;Dell XPS 17&lt;/a&gt;. The photo below compares the Dell XPS 13 against the 12-inch Apple MacBook, highlighting the similar dimensions, which is impressive considering the Dell is significantly more powerful.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linuxatwork01.jpg&quot; alt=&quot;Linux at Work&quot; title=&quot;Linux at Work&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Dell has also “confirmed” support for Linux (specifically Ubuntu), selling a specific “developer edition”.&lt;/p&gt;

&lt;p&gt;The installation of Fedora 33 was flawless, with only the integrated fingerprint scanner failing to be recognised (I have not found a workaround yet). The lack of dedicated graphics within the XPS 13 is disappointing from a performance perspective but does remove a common challenge when installing Linux (especially when working with &lt;a href=&quot;https://www.nvidia.com/&quot;&gt;Nvidia&lt;/a&gt; graphics.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linuxatwork02.jpg&quot; alt=&quot;Linux at Work&quot; title=&quot;Linux at Work&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As I am currently working from home (due to COVID-19), the Dell XPS 13 is connected to my &lt;a href=&quot;/2020/08/24/Super-Ultrawide/&quot;&gt;Samsung C49RG90 Super Ultrawide&lt;/a&gt; display and Bluetooth Logitech keyboard/mouse.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linuxatwork03.jpg&quot; alt=&quot;Linux at Work&quot; title=&quot;Linux at Work&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The 5120x1440 resolution of the display works the Intel Iris Plus Graphics fairly hard, but still provides enough horsepower to deliver a smooth experience for collaboration and productivity tasks. The only minor watch-out was the refresh rate, which could only be set to a maximum 100Hz (instead of the default 120Hz).&lt;/p&gt;

&lt;h3 id=&quot;linux-work-software&quot;&gt;Linux Work Software&lt;/h3&gt;

&lt;p&gt;To support my work needs, I installed the following software, the majority of which is Free and Open-Source (FOSS).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linuxatwork04.jpg&quot; alt=&quot;Linux at Work&quot; title=&quot;Linux at Work&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The software installation process was fairly simple, following the steps outlined in my &lt;a href=&quot;/2019/11/02/fedora-31/&quot;&gt;Fedora 31&lt;/a&gt; article, using a combination of different package managers (&lt;a href=&quot;/2017/05/01/dnf-cheat-sheet/&quot;&gt;DNF&lt;/a&gt;, &lt;a href=&quot;/2019/09/22/flatpak-and-snappy/&quot;&gt;Flatpak and Snappy&lt;/a&gt;). The only issue I experienced was with the &lt;a href=&quot;https://simplenote.com/&quot;&gt;SimpleNote&lt;/a&gt; snap package, which I resolved by using the traditional DNF install.&lt;/p&gt;

&lt;p&gt;The overall software story on Linux is generally positive, with key applications such as &lt;a href=&quot;https://www.google.com/chrome/&quot;&gt;Chrome&lt;/a&gt;, &lt;a href=&quot;https://zoom.us/&quot;&gt;Zoom&lt;/a&gt; and &lt;a href=&quot;https://1password.com/&quot;&gt;1Password&lt;/a&gt; all being available and offering a comparable feature-set to their Windows/macOS counterparts.&lt;/p&gt;

&lt;p&gt;It is also great to see companies continuing to invest in Linux, for example, &lt;a href=&quot;https://support.1password.com/getting-started-linux/&quot;&gt;1Password recently announced a native Linux client is in development&lt;/a&gt;, replacing the need to use a Chrome plugin.&lt;/p&gt;

&lt;p&gt;At work, I am in the fortunate position where the majority of our applications are accessible via the browser (e.g. Corporate, Financial, HR, etc.) Therefore, assuming the user has a valid identity, multi-factor authentication enabled and meets the conditional access requirements, the underlying operating system is largely irrelevant (e.g. Windows, macOS, Linux, etc.) In this scenario, the browser becomes the operating system, placing a heavier emphasis on projects such as &lt;a href=&quot;https://www.chromium.org/&quot;&gt;Chromium&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One area of contention is Microsoft Office 365, used for Collaboration and Productivity.&lt;/p&gt;

&lt;p&gt;Over the past few years, Microsoft has demonstrated a renewed energy for Linux, with the release of &lt;a href=&quot;https://code.visualstudio.com/docs/setup/linux&quot;&gt;Visual Studio Code&lt;/a&gt; and &lt;a href=&quot;https://aka.ms/get-teams-linux&quot;&gt;Teams&lt;/a&gt; (helped by the fact that they are both &lt;a href=&quot;https://www.electronjs.org/&quot;&gt;Electron&lt;/a&gt; applications). They have also announced the release of &lt;a href=&quot;https://www.microsoftedgeinsider.com/&quot;&gt;Edge&lt;/a&gt; (Chromium-based browser), which could have integration benefits for Microsoft 365 customers.&lt;/p&gt;

&lt;p&gt;Unfortunately, the main Microsoft Office Suite (Outlook, Word, PowerPoint and Excel) are not natively available on Linux, forcing the use of virtual environments, emulation or Office Online.&lt;/p&gt;

&lt;p&gt;Office Online has come a long way in recent years and I prefer Microsoft Outlook on the web over the desktop version. It is feature-complete (at least for my usage) and includes a “less cluttered” user interface, which streamlines common tasks.&lt;/p&gt;

&lt;p&gt;Unfortunately, I cannot recommend the online versions of Microsoft Word, PowerPoint and Excel. Although they all technically work, I find the majority of my documents (which tend to be quite large and complex) result in constant stuttering and loading delays, as well as the occasional formatting inaccuracy (mainly with colours). These barriers make the user experience very cumbersome, resulting in constant frustration.&lt;/p&gt;

&lt;p&gt;As an alternative, I tested &lt;a href=&quot;https://www.libreoffice.org/&quot;&gt;LibreOffice&lt;/a&gt; (v7.0.x), &lt;a href=&quot;https://www.wps.com/&quot;&gt;WPS Office&lt;/a&gt; (v11.1.x) and &lt;a href=&quot;https://www.onlyoffice.com/&quot;&gt;OnlyOffice&lt;/a&gt;, which all include native Linux applications and compatibility with the Microsoft Office Open XML format (e.g. docx, pptx, xlsx, etc.)&lt;/p&gt;

&lt;p&gt;Unfortunately, I did not find a perfect solution. In my testing, LibreOffice had the most comprehensive feature-set, but struggled with text styling and compressed images from Microsoft Office. The screenshot below highlights the issues (red box).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linuxatwork05.jpg&quot; alt=&quot;Linux at Work&quot; title=&quot;Linux at Work&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I found WPS Office to be more compatible, but less comprehensive. The screenshot below highlights the same slide, achieving a (slightly) better outcome.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linuxatwork06.jpg&quot; alt=&quot;Linux at Work&quot; title=&quot;Linux at Work&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I was most disappointed by OnlyOffice, which I had heard good things about (especially regarding Microsoft Office compatibility), but the applications felt very unoptimised on the desktop, delivering an undesirable user experience. Although I have not completed thorough research, I assume OnlyOffice for Linux is a shell for their web applications (making it only marginally better than Microsoft Office Online).&lt;/p&gt;

&lt;p&gt;If I had to select one office suite for Linux, it would be WPS Office, which although not perfect, was the most compatible and delivered enough features to support my common use cases. The only watch-out is that WPS Office is not open-source (maybe a deal-breaker for some) and the &lt;a href=&quot;https://www.wps.com/eula&quot;&gt;license agreement&lt;/a&gt; requires a paid edition to support business use cases, starting at £31.00 per year (or £62 one time).&lt;/p&gt;

&lt;p&gt;With that said, thanks to the open-source nature of Linux, I would likely recommend installing both LibreOffice and WPS Office, providing the best of both, depending on the specific task.&lt;/p&gt;

&lt;p&gt;It is worth noting that to achieve font compatibility, you might need to install the Microsoft True Type fonts. Simply run the following Terminal commands:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo su

sudo dnf install curl cabextract xorg-x11-font-utils fontconfig

sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once complete, the Microsoft fonts should be accessible across the operating system and compatible applications.&lt;/p&gt;

&lt;p&gt;Finally, if all else fails, you can always run Windows in a Virtual Machine. Fedora comes pre-installed with &lt;a href=&quot;https://wiki.gnome.org/Apps/Boxes&quot;&gt;Gnome Boxes&lt;/a&gt;, which provides a simple GUI for creating virtual machines.&lt;/p&gt;

&lt;p&gt;I use &lt;a href=&quot;https://www.vmware.com/products/workstation-pro.html&quot;&gt;VMware Workstation Pro&lt;/a&gt;, which includes a more comprehensive feature-set (3D Graphics, Advanced Networking), as well as compatibility with other VMware-based virtualisation technologies (vSphere integration, etc.)&lt;/p&gt;

&lt;p&gt;VMware Workstation Pro requires a paid license but includes a 30-day free trial. &lt;a href=&quot;https://www.vmware.com/uk/products/workstation-player.html&quot;&gt;VMware Workstation Player&lt;/a&gt; is also an option, which is a free but includes feature limitations (single virtual machine).&lt;/p&gt;

&lt;p&gt;To install, simply &lt;a href=&quot;https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html&quot;&gt;download VMware Workstation Pro&lt;/a&gt; and run the following Terminal commands (update the filename as required):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo chmod 755 VMware-Workstation-Full-abc.x86_64.bundle

sudo ./VMware-Workstation-Full-abc.x86_64.bundle
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once complete, Vmware Workstation Pro can be used to &lt;a href=&quot;https://www.microsoft.com/en-gb/software-download/windows10&quot;&gt;install Windows 10 using the ISO&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, when considering my role and common tasks, Linux is absolutely a viable operating system for work.&lt;/p&gt;

&lt;p&gt;The primary pain point is Microsoft Office compatibility, but this is “workable” through the use of Linux compatible applications (LibreOffice and WPS Office) alongside Office Online. With that said, I would love to see Microsoft deliver a native Linux version of Office in the future.&lt;/p&gt;

&lt;p&gt;Regarding the Dell XPS 13 and Fedora 33, both worked flawlessly. Recognising that Fedora 33 is still pre-release (scheduled for GA on 28-OCT-2020), some software repositories had not been updated (e.g. Docker), but this did not cause me any significant issues.&lt;/p&gt;

&lt;p&gt;In conclusion, it may not be the “Year of the Linux Desktop”, but for me at least, the Linux Desktop is now a viable option as my daily driver.&lt;/p&gt;
</description>
        <pubDate>Thu, 08 Oct 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/10/08/Linux-at-Work/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/10/08/Linux-at-Work/</guid>
      </item>
    
      <item>
        <title>Console Wars 2020</title>
        <description>&lt;p&gt;In 1995, at the age of eleven, I received a Sony PlayStation for Christmas (replacing my Sega Mega Drive). To this day, the &lt;a href=&quot;https://www.youtube.com/watch?v=RB2tpJzArr4&quot;&gt;iconic startup sound from the original PlayStation&lt;/a&gt; can’t help bring a smile to my face.&lt;/p&gt;

&lt;p&gt;Over twenty-five years later, I have remained a PlayStation customer, owning seven consoles.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;PlayStation (1995)&lt;/li&gt;
  &lt;li&gt;PlayStation 2 (2000)&lt;/li&gt;
  &lt;li&gt;PlayStation Portable (2004)&lt;/li&gt;
  &lt;li&gt;PlayStation 3 (2007)&lt;/li&gt;
  &lt;li&gt;PlayStation Vita (2012)&lt;/li&gt;
  &lt;li&gt;PlayStation 4 (2013)&lt;/li&gt;
  &lt;li&gt;PlayStation 4 Pro (2016)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many of these consoles were pre-ordered ahead of the official UK release date and in the case of the PlayStation Portable (PSP), I went to the extra effort of arranging an import from Japan, nearly a year ahead of the UK launch.&lt;/p&gt;

&lt;p&gt;The commemorative video released by &lt;a href=&quot;https://www.youtube.com/channel/UC6yzV_xgKn8r77FkcmZyMSg&quot;&gt;PlayStation Access&lt;/a&gt; in 2013 does a nice job of highlighting the legacy of PlayStation (applicable to UK audience).&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/wZkMdi3XBhw?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Alongside PlayStation, &lt;a href=&quot;/2011/12/12/first-pc/&quot;&gt;I have always owned a gaming PC&lt;/a&gt;, providing access to content that was not available on the PlayStation or benefited from additional graphics performance (e.g. &lt;a href=&quot;https://elderscrolls.bethesda.net/&quot;&gt;The Elder Scrolls&lt;/a&gt;, etc.) I have also owned a Microsoft Xbox 360 and Nintendo Switch, although the Xbox only received modest usage.&lt;/p&gt;

&lt;p&gt;In November, both Sony and Microsoft will release their “next-generation” consoles, specifically the &lt;a href=&quot;https://www.playstation.com/ps5/&quot;&gt;Sony Playstation 5&lt;/a&gt; and Microsoft &lt;a href=&quot;https://www.xbox.com/consoles/xbox-series-x&quot;&gt;Xbox Series X&lt;/a&gt; and &lt;a href=&quot;https://www.xbox.com/consoles/xbox-series-s&quot;&gt;Xbox Series S&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Based on my history, it would be safe to assume that I would target a PlayStation 5. However, I believe this generation signifies a turning point in the “console wars”, potentially changing the future of gaming (and my purchasing decision).&lt;/p&gt;

&lt;h3 id=&quot;playstation-vs-xbox&quot;&gt;PlayStation vs. Xbox&lt;/h3&gt;

&lt;p&gt;On the surface, this impending console generation feels like any other, with two “corporate giants” going head-to-head with new consoles.&lt;/p&gt;

&lt;p&gt;Sony has lent into the design language they first introduced with &lt;a href=&quot;https://www.playstation.com/en-gb/explore/playstation-vr/&quot;&gt;PlayStation VR&lt;/a&gt;, delivering a futuristic two-tone design.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/consolewars202001.jpg&quot; alt=&quot;Sony PlayStation 5&quot; title=&quot;Sony PlayStation 5&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Microsoft has gone in a different direction, targeting a simple, minimalistic design for the Xbox Series X and Xbox Series S.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/consolewars202002.jpg&quot; alt=&quot;Microsoft Xbox Series X and Xbox Series S&quot; title=&quot;Microsoft Xbox Series X and Xbox Series S&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As to which console looks the “best” is completely subjective. I like elements of both consoles but have been a little surprised by the size of the PlayStation 5, which at 39cm tall, is an imposing piece of hardware. With that said, the size of the console does not impact me directly, as &lt;a href=&quot;/2016/05/19/entertainment-setup/&quot;&gt;all of my AV equipment is hidden from view&lt;/a&gt; in a cupboard.&lt;/p&gt;

&lt;h3 id=&quot;hardware-specification&quot;&gt;Hardware Specification&lt;/h3&gt;

&lt;p&gt;In many respects, the look of the console is irrelevant. The real story is the hardware specification, which provides our first insight into the types of gaming experience we can expect from the next generation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/consolewars202003.jpg&quot; alt=&quot;Console Wars 2020&quot; title=&quot;Console Wars 2020&quot; /&gt;&lt;/p&gt;

&lt;p&gt;All three consoles leverage the Zen 2 and RDNA 2 architecture from &lt;a href=&quot;https://www.amd.com/&quot;&gt;AMD&lt;/a&gt;, delivering significantly better performance per wat when compared with the previous console generation (making a direct comparison difficult). The new architecture also delivers additional capabilities for developers to exploit, for example, hardware-enabled Ray Tracing (referenced in my previous article focused on the &lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;GeForce RTX&lt;/a&gt; series).&lt;/p&gt;

&lt;p&gt;With this in mind, all three consoles should have similar capabilities, simplifying cross-platform development. However, how the architecture has been implemented can have a significant impact on the overall experience.&lt;/p&gt;

&lt;p&gt;On paper, it would appear that the Xbox Series X has the performance edge as it relates to Processor and Graphics, while the PlayStation 5 takes the lead regarding Storage performance. The real-world impact of these decisions will likely not be known until later in the generation, once developers have learnt how to maximise the potential.&lt;/p&gt;

&lt;p&gt;If I were to guess, I would expect cross-platform games to perform better on the Xbox Series X, with only the first-party games from Sony taking advantage of the additional storage read/write performance. This is already evident in some of the pre-release game trailers, such as &lt;a href=&quot;https://www.youtube.com/watch?v=ai3o0XtrnM8&quot;&gt;Ratchet and Clank&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;An area that I feel could be a challenge for both consoles is storage capacity. Although specific information has not yet been revealed, it is safe to assume a minimum of 150GB will be reserved for the formatting overhead and operating system, resulting in the following “usable” space.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Sony Playstation 5&lt;/strong&gt; = 675GB (Six 100GB Games)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft Xbox Series X&lt;/strong&gt; = 874GB (Eight 100GB Games)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft Xbox Series S&lt;/strong&gt; = 362GB (Three 100GB Games)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Knowing that many “Triple-A” games from the previous generation required a 100GB+ install, managing storage could become a continuous battle, especially for the consoles without an optical media drive.&lt;/p&gt;

&lt;p&gt;Sony and Microsoft may deliver new compression techniques and/or provide an ability to delete unused game content (e.g. game modes, textures, languages), but these techniques will only soften the impact of the issue, not resolve it.&lt;/p&gt;

&lt;p&gt;Thankfully, both Sony and Microsoft have confirmed that backwards compatible games can run from USB storage (e.g. External SSD), which should still offer performance benefits thanks to the high-speed USB interface (up to 10Gb/s on Playstation 5) and the improved decompression performance of the Zen 2 architecture.&lt;/p&gt;

&lt;h3 id=&quot;xbox-series-s&quot;&gt;Xbox Series S&lt;/h3&gt;

&lt;p&gt;The Xbox Series S is a unique proposition, delivering a compelling price point (£249.99) and the promise of “next-generation capabilities” at a lower resolution (likely 1080p or 1440p).&lt;/p&gt;

&lt;p&gt;Looking at the specification, this feels viable, with the same core architecture (Zen 2 and RDNA 2), but rightsized to hit a specific performance target.&lt;/p&gt;

&lt;p&gt;Unfortunately, I can foresee two issues:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;The reduction in memory (10GB from 16GB) and significantly lower bandwidth (224GB/s from 560GB/s) will likely become a difficult bottleneck for developers to manage.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;As previously highlighted, the included 512GB storage (approximately 362GB usable) will be very limiting, especially without an optical media drive. Therefore, users will likely need to invest in expandable storage. At £219.99 for a 1TB storage expansion card, the Xbox Series S would become more expensive than the Xbox Series X (which comes with 1TB as standard).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In short, the Xbox Series S feels like a high-risk purchase at this time and I would recommend seeing how well it is supported by developers before making a purchase.&lt;/p&gt;

&lt;h3 id=&quot;gaming-as-a-service&quot;&gt;Gaming as a Service&lt;/h3&gt;

&lt;p&gt;Success for the previous console generations has been driven by the number of consoles sold. In a world where requiring the console was a prerequisite to play games, this success criteria made perfect sense.&lt;/p&gt;

&lt;p&gt;However, like other entertainment industries (e.g. television, music, film), gaming is evolving and I believe Microsoft has anticipated the shift.&lt;/p&gt;

&lt;p&gt;With the launch of &lt;a href=&quot;https://www.xbox.com/xbox-game-pass&quot;&gt;Xbox Game Pass&lt;/a&gt; and &lt;a href=&quot;https://www.xbox.com/xbox-game-pass/cloud-gaming&quot;&gt;Xbox Cloud Gaming&lt;/a&gt; (game streaming), Microsoft has begun to reset what it means to be a gamer, delivering a service that is accessible across multiple platforms (e.g. PC, Console, Mobile, etc.) This approach removes the emphasis on the console itself, positioning it as just one part of a larger ecosystem.&lt;/p&gt;

&lt;p&gt;With this in mind, I believe the new success criteria for gaming should be the number of customers actively playing games and therefore investing in services. In this new world, I feel Microsoft has three critical ingredients to achieve success.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Online Services:&lt;/strong&gt; With the launch of Xbox Live in 2002, Microsoft has been the clear market leader in online services. Sony responded with the Playstation Network and Playstation Plus but has always been playing catch-up, with multiple significant setbacks, including the infamous &lt;a href=&quot;https://en.wikipedia.org/wiki/2011_PlayStation_Network_outage&quot;&gt;PlayStation Network Outage&lt;/a&gt;. In areas where Sony have attempted to innovate, such as &lt;a href=&quot;https://en.wikipedia.org/wiki/PlayStation_Home&quot;&gt;PlayStation Home&lt;/a&gt;, user adoption has been underwhelming. In short, Microsoft has demonstrated throughout their entire business an ability to successfully evolve from traditional sales models to online subscription services (e.g. &lt;a href=&quot;https://www.microsoft.com/microsoft-365&quot;&gt;Microsoft 365&lt;/a&gt;, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cloud Infrastructure:&lt;/strong&gt; As online services and cloud streaming becomes increasingly important, having a scalable, reliable, and globally available cloud infrastructure becomes increasingly important. This is an area where Microsoft can lean back on their other multi-billion dollar business, specifically &lt;a href=&quot;https://azure.microsoft.com/&quot;&gt;Microsoft Azure&lt;/a&gt;. With over 160 physical data centres around the world, supporting the critical business operations of every major industry, Microsoft can leverage this sizable investment to cost-effectively innovate and scale their gaming capabilities. In comparison, Sony must rely upon third-party data centres (such as &lt;a href=&quot;https://www.equinix.co.uk/&quot;&gt;Equinix&lt;/a&gt; to scale out their cloud infrastructure, which although is a viable business model, is a sizable investment when targeting a single revenue stream. Another option for Sony would be to partner with another hyperscale cloud provider (e.g. &lt;a href=&quot;https://aws.amazon.com/&quot;&gt;Amazon Web Services&lt;/a&gt; or &lt;a href=&quot;https://cloud.google.com/&quot;&gt;Google Cloud Platform&lt;/a&gt;), however, both Amazon (&lt;a href=&quot;https://www.amazon.com/luna/landing-page&quot;&gt;Luna&lt;/a&gt;) and Google (&lt;a href=&quot;https://stadia.google.com/&quot;&gt;Stadia&lt;/a&gt;) have their own gaming ambitions, creating a potential conflict of interest.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Finacial Foundation:&lt;/strong&gt; Over the past quarter, Microsoft generated $73 billion of net cash, compared to $17.6 billion at Sony. Over the past four quarters, Microsoft generated $45 billion in free cash flow compared to $9 billion at Sony. In short, Microsoft has very deep pockets, that are only likely to deepen, based on the increased demands of cloud, productivity and collaboration capabilities in a post-COVID world. Although money is not a guarantee for success, it does present Microsoft with flexibility, for example, the recent acquisition of &lt;a href=&quot;https://www.zenimax.com/&quot;&gt;ZeniMax Media&lt;/a&gt; for $7.5 billion, which is a holding company for &lt;a href=&quot;https://bethesda.net/&quot;&gt;Bethesda Game Studios&lt;/a&gt;, &lt;a href=&quot;https://www.idsoftware.com/&quot;&gt;id Software&lt;/a&gt;, &lt;a href=&quot;https://www.machinegames.com/&quot;&gt;MachineGames&lt;/a&gt;, and &lt;a href=&quot;https://www.tangogameworks.com/&quot;&gt;Tango Gameworks&lt;/a&gt;. I suspect this will be first of multiple major acquisitions we will see from Microsoft this generation, as they look to strengthen their first-party developer portfolio.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Leveraging these three ingredients, Microsoft has positioned two gaming services that I feel signify a change in the industry.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Xbox Game Pass:&lt;/strong&gt; In 2017, Microsoft introduced &lt;a href=&quot;https://www.xbox.com/xbox-game-pass&quot;&gt;Xbox Game Pass&lt;/a&gt;, delivering “the &lt;a href=&quot;https://www.netflix.com/&quot;&gt;Netflix&lt;/a&gt; of gaming”. In the UK, for £9.99 per month, the user gains access to Game Pass Ultimate, which includes a library of over 250+ games accessible across Xbox, PC and Mobile (via &lt;a href=&quot;https://www.xbox.com/xbox-game-pass/cloud-gaming&quot;&gt;Xbox Cloud Gaming&lt;/a&gt;). The library includes “release day” access to all first-party Microsoft Studio games (e.g. &lt;a href=&quot;https://www.halowaypoint.com/&quot;&gt;Halo&lt;/a&gt;, &lt;a href=&quot;https://forzamotorsport.net/&quot;&gt;Forza&lt;/a&gt;, &lt;a href=&quot;https://gearsofwar.com/&quot;&gt;Gears of War&lt;/a&gt;, &lt;a href=&quot;https://www.xbox.com/games/microsoft-flight-simulator&quot;&gt;Flight Simulator&lt;/a&gt;), alongside games from key partners, including all 70+ games covered by &lt;a href=&quot;https://www.ea.com/ea-play&quot;&gt;EA Play&lt;/a&gt;. With the acquisition of &lt;a href=&quot;https://www.zenimax.com/&quot;&gt;ZeniMax Media&lt;/a&gt;, games such as &lt;a href=&quot;https://elderscrolls.bethesda.net/&quot;&gt;The Elder Scrolls&lt;/a&gt;, &lt;a href=&quot;https://fallout.bethesda.net/&quot;&gt;Fallout&lt;/a&gt; and &lt;a href=&quot;https://bethesda.net/en/game/doom&quot;&gt;Doom&lt;/a&gt; will also be available. Considering each one of these games can cost up to £70 alone, £9.99 per month for everything, across multiple platforms, with no release delays, is a phenomenal deal.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Xbox All Access:&lt;/strong&gt; As an extension of Xbox Game Pass, Microsoft also offers “&lt;a href=&quot;https://www.xbox.com/en-GB/xbox-all-access&quot;&gt;Xbox All Access&lt;/a&gt;”, which bundles the console itself alongside Xbox Game Pass Ultimate over a 24 months subscription. As an example, Xbox All Access with an Xbox Series X costs £28.99 per month, which is £695.76 over the 24 months subscription. If purchased separately, the Xbox Series X and Xbox Game Pass Ultimate would cost £713.75, making “Xbox All Access” a compelling deal for anyone looking for a cost-efficient entry point into the next generation.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;the-end-of-playstation&quot;&gt;The End of PlayStation?&lt;/h3&gt;

&lt;p&gt;Is this the end of the road for Sony PlayStation?&lt;/p&gt;

&lt;p&gt;No, although I feel this generation will mark a turning point in the gaming industry, Sony has two major strength areas… Brand and Exclusives.&lt;/p&gt;

&lt;p&gt;The PlayStation brand is loved around the world, which like Apple, can carry a lot of weight. Alongside the brand itself, Sony has continued to deliver some of the best gaming experiences from their first-party studios, which they generally make exclusive to PlayStation.&lt;/p&gt;

&lt;p&gt;Games such as &lt;a href=&quot;https://godofwar.playstation.com/&quot;&gt;God of War&lt;/a&gt;, &lt;a href=&quot;https://www.unchartedthegame.com/&quot;&gt;Uncharted&lt;/a&gt;, &lt;a href=&quot;https://www.thelastofus.playstation.com/&quot;&gt;The Last of Us&lt;/a&gt;, &lt;a href=&quot;https://insomniac.games/game/spider-man-ps4/&quot;&gt;Spiderman&lt;/a&gt;, &lt;a href=&quot;https://www.gran-turismo.com/&quot;&gt;Gran Turismo&lt;/a&gt;, &lt;a href=&quot;https://littlebigplanet.playstation.com/&quot;&gt;Little Big Planet&lt;/a&gt;, &lt;a href=&quot;https://www.playstation.com/games/horizon-zero-dawn-ps4/&quot;&gt;Horizon Zero Dawn&lt;/a&gt;, &lt;a href=&quot;https://www.playstation.com/games/demons-souls/&quot;&gt;Demon Souls&lt;/a&gt; are critically acclaimed and arguably among the best games of the previous generation, and I see no sign of this changing in the short-term.&lt;/p&gt;

&lt;p&gt;Sony also has &lt;a href=&quot;https://www.playstation.com/en-us/explore/playstation-now/games/&quot;&gt;Playstation Now&lt;/a&gt;, which is a largely underrated service that is comparable to Xbox Game Pass Ultimate. The foundations of PlayStation Now are built from their acquisition of Gaikai, delivering game streaming to PlayStation consoles and the PC (no mobile at this time). PlayStation Now also offers the ability to download select PlayStation 4 games, similar to Xbox Game Pass Ultimate.&lt;/p&gt;

&lt;p&gt;At £8.99 per month (or £49.99 per year), with over 700 games available for streaming (300 of which are downloadable), the service is price competitive.&lt;/p&gt;

&lt;p&gt;The major challenge for Sony is that new games are not immediately available on PlayStation Now, with no guarantee (at this time) that they will ever transition to the service. Therefore, unlike Xbox Game Pass Ultimate, users will still need to pay up to £70 per game for the first-party exclusives. This is what makes Xbox Game Pass Ultimate unique, where Microsoft can take advantage of their previous highlighted financial foundation.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I predict this generation will be defined by gaming services, not console sales.&lt;/p&gt;

&lt;p&gt;With services such as &lt;a href=&quot;https://www.xbox.com/xbox-game-pass&quot;&gt;Xbox Game Pass&lt;/a&gt;, &lt;a href=&quot;https://www.xbox.com/xbox-game-pass/cloud-gaming&quot;&gt;Xbox Cloud Gaming&lt;/a&gt; and &lt;a href=&quot;https://www.xbox.com/en-GB/xbox-all-access&quot;&gt;Xbox All Access&lt;/a&gt;, I believe Microsoft is best positioned to capitalise on this market shift.&lt;/p&gt;

&lt;p&gt;Assuming this prediction is accurate, I believe this generation will end the dominance of Sony PlayStation, applying additional pressure on Sony as a business.&lt;/p&gt;

&lt;p&gt;With this in mind, am I recommending an Xbox Series X?&lt;/p&gt;

&lt;p&gt;In my opinion, anyone looking to join the next generation of gaming, who does not have access to multiple games platforms (e.g. PC), should seriously consider Xbox Series X and &lt;a href=&quot;https://www.xbox.com/xbox-game-pass&quot;&gt;Xbox Game Pass Ultimate&lt;/a&gt;, potentially via &lt;a href=&quot;https://www.xbox.com/en-GB/xbox-all-access&quot;&gt;Xbox All Access&lt;/a&gt;. I believe (today) this combination offers the greatest “bang for your buck”.&lt;/p&gt;

&lt;p&gt;However, if you have access to a gaming PC, you might want to consider PlayStation 5, giving you the best of both worlds. Microsoft has committed to the continued support of the PC for their first-party studios, therefore the PlayStation 5 could be the perfect compliment, delivering access to their excellent first-party exclusives. Although more comprehensive, this approach is clearly more expensive.&lt;/p&gt;

&lt;p&gt;As for me, &lt;a href=&quot;/2020/08/25/My-Setup-Q3-2020/&quot;&gt;knowing that I have a gaming PC&lt;/a&gt;, I will likely pick-up a PlayStation 5 over an Xbox Series X.&lt;/p&gt;
</description>
        <pubDate>Sat, 03 Oct 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/10/03/Console-Wars-2020/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/10/03/Console-Wars-2020/</guid>
      </item>
    
      <item>
        <title>Foldable Future</title>
        <description>&lt;p&gt;With the launch of the iPhone in 2007, Apple redefined what it meant to be a smartphone, resulting in a decade of “black mirror” devices that have evolved through a range of sizes but retained the same basic shape and function.&lt;/p&gt;

&lt;p&gt;In 2019, Samsung revealed the first foldable smartphone, known as the Samsung Galaxy Fold, which attempted to break the mould, by delivering an innovative new form factor.&lt;/p&gt;

&lt;p&gt;The idea was simple, produce a product that could operate as a traditional smartphone, but unfold to deliver a more immersive “tablet-like” experience.&lt;/p&gt;

&lt;p&gt;Unfortunately, the product launch was a disaster, with some serious quality assurance issues related to the hinge that resulted in a product recall.&lt;/p&gt;

&lt;p&gt;Although a complete failure, Samsung clearly felt the core concept was a winner, as they proceeded to release a follow-up in 2020, known as the &lt;a href=&quot;https://www.samsung.com/uk/smartphones/galaxy-z-fold2/&quot;&gt;Samsung Galaxy Z Fold2 5G&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have been testing this product, not because I believe it is ready for mainstream consumers, but as a device that I hope will provide an insight into the future of foldable smartphones.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fold201.jpg&quot; alt=&quot;Samsung Galaxy Z Fold2 5G&quot; title=&quot;Samsung Galaxy Z Fold2 5G&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Fold2 (I refuse to use the full name) is a true flagship, incorporating just about every modern smartphone feature, with the exception of water resistance. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Samsung Galaxy Z Fold2 5G&lt;/li&gt;
  &lt;li&gt;Qualcomm SM8250 Snapdragon 865+ (Octa-Core)&lt;/li&gt;
  &lt;li&gt;6.2-inch HD+ AMOLED Display (2260x816 @ 60Hz)&lt;/li&gt;
  &lt;li&gt;7.6-inch QXGA+ HDR10+ AMOLED Display (2208x1768 @ 120Hz)&lt;/li&gt;
  &lt;li&gt;12GB RAM&lt;/li&gt;
  &lt;li&gt;256GB Storage (UFS 3.1)&lt;/li&gt;
  &lt;li&gt;2x 10MP Selfie Cameras&lt;/li&gt;
  &lt;li&gt;3x 12MP Cameras (Ultra Wide, Wide-Angle, Telephoto)&lt;/li&gt;
  &lt;li&gt;4500mAh Dual Battery&lt;/li&gt;
  &lt;li&gt;5G, LTE, Wi-Fi 6, Bluetooth v5.0&lt;/li&gt;
  &lt;li&gt;Finger-Print Reader and Face Unlock&lt;/li&gt;
  &lt;li&gt;USB-C and Wireless Charging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unsurprisingly, this specification comes at a very premium price point, starting at £1799. This (rediculous) price is the primary reason not to buy the Fold2, recognising that competent smartphones such as the &lt;a href=&quot;https://www.oneplus.com/uk/nord&quot;&gt;OnePlus Nord&lt;/a&gt; can be purchased for £349.&lt;/p&gt;

&lt;p&gt;Instead, the Fold2 should be seen as a concept, which happens to be available for purchase for those that have the financial means and desire/need to test future capabilities.&lt;/p&gt;

&lt;p&gt;This article will focus on my observations/experience using the Fold2, to understand the viability and practical benefits of a foldable smartphone.&lt;/p&gt;

&lt;p&gt;As an example, science fiction has hypothesised this type of technology for many years, as highligted by the image below, which was taken from the popular TV series &lt;a href=&quot;https://www.hbo.com/westworld&quot;&gt;Westworld&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fold202.jpg&quot; alt=&quot;Westworld Tablet&quot; title=&quot;Westworld Tablet&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you are looking for a traditional smartphone review, I would recommend watching the video below from &lt;a href=&quot;https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ&quot;&gt;Marques Brownlee&lt;/a&gt;.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/G4E2bbAgjXg?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Before focusing on my specific observations, I want to acknowledge that I believe the Fold2 is the “real deal”, delivering on the promise of a foldable product that can replace a traditional smartphone and a small tablet.&lt;/p&gt;

&lt;p&gt;It would be easy to see the Fold2 as a niche product or a gimmick, but after using the device for several weeks, I am convinced that foldable smartphones deliver tangible value, even for mainstream consumers.&lt;/p&gt;

&lt;p&gt;I am also confident that Samsung has successfully evolved the hinge, delivering a truly innovate solution that appears to mitigate the previous issues.&lt;/p&gt;

&lt;p&gt;The video below describes how the new hinge and sweeper technologies work, which have apparently been tested to withstand 200,000 folds (100 folds per day for five years).&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/uatf7r6yb4E?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;With that said, there are a few areas that need additional work (either product evolution or time to mature).&lt;/p&gt;

&lt;p&gt;The 22.5:18 aspect ratio of front display on the Fold2 is not ideal, making text input and/or media playback awkward. However, it is a positive step from the first generation, which included a smaller 25:9 display. The display is also limited to 60Hz, which is comparable to the Apple iPhone 12 but noticeably less responsive than the unfolded 120Hz display.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fold203.jpg&quot; alt=&quot;Samsung Galaxy Z Fold2 5G&quot; title=&quot;Samsung Galaxy Z Fold2 5G&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my opinion, if a future foldable smartphone could deliver a more traditional aspect ratio for the front display, it could successfully achieve “the best of both”, operating as a traditional smartphone for day-to-day tasks, as well as a compelling small tablet, similar to the &lt;a href=&quot;https://www.apple.com/ipad-mini/&quot;&gt;Apple iPad Mini&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As an example, the photo below highlights two iPhone’s, each with a 5.8-inch display, which could be “unfolded” into a larger 7.5-inch display. For comparison, I have placed the iPhone’s on top of the Fold2, demonstrating that a subtle shift in aspect ratio could deliver a better overall experience.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fold204.jpg&quot; alt=&quot;Samsung Galaxy Z Fold2 5G&quot; title=&quot;Samsung Galaxy Z Fold2 5G&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Another minor point of contention is the crease left by the fold itself, which is noticeable via sight and touch when using the unfolded display. However, in my experience, similar to the “notch” on the iPhone, when immersed in content, the crease is rarely a distraction. With that said, I do hope the technology continues to mature, delivering a truly flat display when unfolded.&lt;/p&gt;

&lt;p&gt;At 16.8mm the thickness of the Fold2 when folded can be awkward, especially when combined with the “tall” aspect ratio. It is also heavier than an average smartphone at 282g, although the weight was only a minor inconvenience.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fold205.jpg&quot; alt=&quot;Samsung Galaxy Z Fold2 5G&quot; title=&quot;Samsung Galaxy Z Fold2 5G&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although not directly comparable, the &lt;a href=&quot;https://www.microsoft.com/en-us/surface/devices/surface-duo&quot;&gt;Microsoft Surface Duo&lt;/a&gt; has demonstrated the potential for a thinner foldable device at 9.9mm.&lt;/p&gt;

&lt;p&gt;In my opinion, somewhere between the two (12mm) should be viable (minimising trade-offs), delivering an acceptable balance when you consider the technology required to achieve the folding mechanism.&lt;/p&gt;

&lt;p&gt;The primary limitation is the need to manage the curvature of the OLED display, meaning it cannot close fully end-to-end. This is a limitation of the current generation OLED displays, which will hopefully improve in the future.&lt;/p&gt;

&lt;p&gt;Unsurprisingly, based on the specification, the performance of the Fold2 is excellent, comparable to other Android flagship smartphones such as the &lt;a href=&quot;https://www.oneplus.com/8-pro&quot;&gt;OnePlus 8 Pro&lt;/a&gt;, etc. Battery life has also been very good, easily lasting a day with a varied workload include streaming video.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fold206.jpg&quot; alt=&quot;Samsung Galaxy Z Fold2 5G&quot; title=&quot;Samsung Galaxy Z Fold2 5G&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The same can be said for the five (yes, five) cameras, which are all flagship quality, similar to what can be found on the &lt;a href=&quot;https://www.samsung.com/uk/smartphones/galaxy-s20/buy/&quot;&gt;Samsung Galaxy S20&lt;/a&gt; line of smartphones. Assuming “under-display” cameras become viable soon, manufactures could also remove the need for the “punch-hole” cameras, delivering a fully interrupted display.&lt;/p&gt;

&lt;p&gt;Application compatibility is good, but not perfect. Due to the lacklustre adoption of Android tablets, developers have less incentive to optimise their apps for larger displays. Therefore, not all apps utilise the additional display real-estate effectively, for example, apps such as Facebook, Instagram, etc.&lt;/p&gt;

&lt;p&gt;With that said, the transition between the front and unfolded display is seamless, with most apps delivering a better (if not fully optimised) experience on the larger display. For example, productivity apps such as Microsoft Office 365 and video playback apps such as Netflix work great, demonstrating the potential of a larger display!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fold207.jpg&quot; alt=&quot;Samsung Galaxy Z Fold2 5G&quot; title=&quot;Samsung Galaxy Z Fold2 5G&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Starting with Android 10, Google has made foldable smartphones a core part of the Android ecosystem. Therefore, I expect compatibility to improve over time, hopefully, incentivising hardware manufacturers and third-party developers to take advantage of the new capabilities.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fold208.jpg&quot; alt=&quot;Samsung Galaxy Z Fold2 5G&quot; title=&quot;Samsung Galaxy Z Fold2 5G&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The option to enable “usable” multi-tasking is especially intriguing, which has been a long-running limitation of smartphones that can impact productivity for content creation.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I am convinced foldable (or expandable) smartphones are the future! The ability to seamlessly transform a “traditional” smartphone into a tablet is breathtaking and feels like something straight from science fiction.&lt;/p&gt;

&lt;p&gt;Outside of the “wow” factor, the foldable display also offers tangible benefits, potentially removing the need for a user to purchase/carry a smartphone and a tablet.&lt;/p&gt;

&lt;p&gt;As smartphones continue to become more performant and feature-rich, it is even possible that a foldable smartphone could become the “one device” for mainstream consumers, even replacing the need for a laptop (assuming compatibility with a monitor and peripherals, etc.)&lt;/p&gt;

&lt;p&gt;If I were Google, I would see foldable smartphones as a real opportunity for Android to innovate and differentiate, whilst also reinvigorating the dwindling tablet market. Therefore, I hope to see Google continue to prioritise native foldable capabilities in future versions of Android, especially as I predict Apple will not be far behind.&lt;/p&gt;

&lt;p&gt;Overall, based on the constructive feedback outlined in this article, I believe we are two generations (two-years) from achieving a “refined” foldable smartphone that is viable for mainstream consumers. The cost will likely remain high but hopefully normalise to compete with regular Android flagships, which can be purchased for around £1000.&lt;/p&gt;

&lt;p&gt;With an additional two generations (total of four-years) the technology should be mature enough to drive economies of scale, resulting in mid-range foldable smartphones that open the door to the mass market.&lt;/p&gt;

&lt;p&gt;I am excited by this future, which I believe will signify the next major evolution of the smartphone!&lt;/p&gt;
</description>
        <pubDate>Fri, 02 Oct 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/10/02/Foldable-Future/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/10/02/Foldable-Future/</guid>
      </item>
    
      <item>
        <title>Digital Transformation</title>
        <description>&lt;p&gt;If you work in enterprise business, I suspect you have heard the words “Digital Transformation”, which is often linked to the corporate strategy.&lt;/p&gt;

&lt;p&gt;As an IT organisation, the words Digital Transformation should be seen as an opportunity to re-position IT, placing a heavier emphasis on value creation through the design and delivery of innovative digital products, services and insights.&lt;/p&gt;

&lt;p&gt;A common mistake when targeting Digital Transformation is to simply add technology to an existing traditional business model. This approach can certainly drive value through digital efficiency, but true Digital Transformation must rethink the business model itself, potentially resulting in market disruption.&lt;/p&gt;

&lt;p&gt;Thankfully, as demonstrated by many external case studies, Digital Transformation does not need significant investment and/or resources to be successful. In my experience, successful Digital Transformation initiatives start small, with a clear outcome and focus, the required sponsorship and a ruthless desire to execute and learn, prior to scale.&lt;/p&gt;

&lt;p&gt;I recently delivered a short presentation (embedded below) that describes an approach to Digital Transformation, encompassing concepts such as Outcome over Output and Products over Projects. Having the right approach (a digital operating model) is a critical prerequisite when looking to innovate and deliver customer-centric digital products.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/HUsuKtgZxF4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The approach highlighted in the presentation encapsulates my thinking, influenced by many sources, specifically &lt;a href=&quot;https://www.linkedin.com/in/chrisshinkle/&quot;&gt;Chris Shinkle&lt;/a&gt; a Product Manager at &lt;a href=&quot;https://www.sep.com/&quot;&gt;SEP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Although having the right approach is critical, other common barriers include:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;The digital initiative failed to effectively communicate with the internal stakeholders the desired outcome, specifically the goal and purpose.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The digital initiative attempted to add technology to an existing business model, instead of rethinking the business model itself. This approach can drive digital efficiency, but not digital transformation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The digital initiative lacked focus, discipline, perseverance and/or patience, often attempting to “boil the ocean” and/or achieve a positive ROI within unrealistic timelines (Steve Jobs quote: “if you really look closely, most overnight successes took a long time”).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The digital initiative failed to implement a digital operating model, specifically a focus on product management, iterative development and continuous feedback loop.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The digital initiative did not have a clear data strategy, where relevant primary data sources are identified and accessible, delivering actionable insights.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To overcome these barriers, I promote the following four Digital Transformation principles:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Make digital an embedded part of the business, instead of attempting to manage a separate internal corporate venture cycle and/or separate P&amp;amp;L organisation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Outline a clear strategy (Objectives and Key Results), but start small, with a small team, controlled investment and a measurable value proposition.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Clearly define the data strategy, including how to gain access to the required data sources and produce the required insights.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Accept that digital transformation is a long-term investment that may not achieve a positive ROI immediately.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Therefore, prior to pitching or sponsoring any new digital initiative, I ensure these principles are fully realised.&lt;/p&gt;
</description>
        <pubDate>Wed, 30 Sep 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/09/30/Digital-Transformation/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/09/30/Digital-Transformation/</guid>
      </item>
    
      <item>
        <title>Computer Vision</title>
        <description>&lt;p&gt;In the context of digital transformation, Artificial Intelligence (AI) presents a tremendous opportunity to disrupt traditional business models.&lt;/p&gt;

&lt;p&gt;I am personally interested in Computer Vision (CV), which is categorised as a subfield of Artificial Intelligence (AI) and includes many interesting business value opportunities that could drive digital transformation.&lt;/p&gt;

&lt;p&gt;A common misconception is that digital transformation initiatives require significant resources and investment. This is simply not the case, with most successful initiatives starting small, with a clear outcome and a ruthless focus on execution through iteration.&lt;/p&gt;

&lt;p&gt;With this in mind, I plan to create a small Computer Vision test lab for education and testing purposes.&lt;/p&gt;

&lt;h3 id=&quot;what-is-computer-vision&quot;&gt;What is Computer Vision?&lt;/h3&gt;

&lt;p&gt;Computer Vision is a field of study that seeks to develop techniques to help computers “see” and understand the content of digital images such as photographs and videos.&lt;/p&gt;

&lt;p&gt;In short, the goal of a Computer Vision problem is to use observed image data to infer something about the world.&lt;/p&gt;

&lt;p&gt;As previously stated, Computer Vision is a multidisciplinary field, often categorised as a subfield of Artificial Intelligence (AI) and Machine Learning (ML), which may involve the use of specialised methods and general learning algorithms.&lt;/p&gt;

&lt;p&gt;Common Computer Vision techniques include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Image Classification:&lt;/strong&gt; Classification based on contextual information in an image.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Object Detection:&lt;/strong&gt; Define objects within images.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Object Tracking:&lt;/strong&gt; Follow an object of interest in a given scene.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Semantic Segmentation:&lt;/strong&gt; Understand the role of each pixel in an image.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Instance Segmentation:&lt;/strong&gt; Segments different instances of classes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The proposed Computer Vision test lab will provide a real-world environment to explore these techniques, looking to identify strengths, weaknesses, barriers, etc.&lt;/p&gt;

&lt;h3 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h3&gt;

&lt;p&gt;Computer Vision is an exciting field of study, which continues to gain momentum across many industries.&lt;/p&gt;

&lt;p&gt;In the context of work, the list below highligts a few examples where Computer Vision could potentially add value.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Anomaly Alert System:&lt;/strong&gt; Provide real-time surveillance of a specific location, autonomously alerting users when a specific object enters the scene and/or executes a pre-defined movement.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Security/Privacy Filter:&lt;/strong&gt; Monitor live video streams (e.g. video conferences, webinars), automatically detecting and redacting specific objects (e.g. locations, individuals, displays).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Employee Social Distancing:&lt;/strong&gt; As a response to the COVID-19 pandemic, help users practice safe social distancing (physical separation) by monitoring office locations, notifying users of any risk.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Fever Control:&lt;/strong&gt; Monitor human temperature, detecting potential fever symptoms, delivering an immediate notification to the user.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Accessibility:&lt;/strong&gt; Support users with a visual impairment to remain safe and productive within the workplace.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The proposed Computer Vision lab must be capable of testing these use cases.&lt;/p&gt;

&lt;h3 id=&quot;requirements&quot;&gt;Requirements&lt;/h3&gt;

&lt;p&gt;I have defined the following high-level requirements to support the creation of a Computer Vision test lab.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The Computer Vision Test Lab capital investment must be low (&amp;lt; £200.00), with minimal operating costs (&amp;lt; £100.00pm).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Computer Vision Test Lab must be viable for use at rural locations, including limited (intermittent) network connectivity and power consumption (&amp;lt; 10 Watt).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Computer Vision Test Lab must accurately represent a “real world” production architecture, including edge infrastructure (e.g. Camera, Compute, Storage).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Computer Vision Test Lab must support modern AI/ML software libraries, including CUDA, cuDNN and TensorRT.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Computer Vision Test Lab must leverage open-source licensed software libraries (e.g. OpenDataCam, etc.) Ideally targeting MIT, GPL 2.0/3.0 and Apache Licence 2.0.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Computer Vision Test Lab must support autonomous operation, without physical or virtual human intervention.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Computer Vision Test Lab must include appropriate software and physical security controls (Zero Trust), including the ability to physically secure all compute/storage devices.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These requirements aim to ensure the Computer Vision test lab has a defined scope and can be easily reproduced.&lt;/p&gt;

&lt;h3 id=&quot;architecture&quot;&gt;Architecture&lt;/h3&gt;

&lt;p&gt;The high-level diagram below outlines the proposed Computer Vision test lab architecture.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/computervision01.jpg&quot; alt=&quot;Computer Vision Test Lab Architecture&quot; title=&quot;Computer Vision Test Lab Architecture&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have selected an &lt;a href=&quot;https://developer.nvidia.com/embedded/jetson-nano-developer-kit&quot;&gt;Nvidia Jetson Nano Developer Kit&lt;/a&gt; as my edge compute/storage capability.&lt;/p&gt;

&lt;p&gt;The Nvidia Jetson Nano is a small, reasonably powerful computer that can run a wide range of advanced networks, including the full native versions of popular ML frameworks such as TensorFlow, PyTorch, Caffe/Caffe2, Keras, MXNet, etc.&lt;/p&gt;

&lt;p&gt;The table below highlights the performance benchmarks, which are commonly multiple times better than completing edge computing capabilities (e.g. Raspberry Pi, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/computervision02.jpg&quot; alt=&quot;Nvidia Jetson Nano Benchmark Results&quot; title=&quot;Nvidia Jetson Nano Benchmark Results&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When combined with the &lt;a href=&quot;https://developer.nvidia.com/embedded/jetpack&quot;&gt;Nvidia JetPack SDK&lt;/a&gt;, the Nvidia Jetson Nano delivers an easy-to-use, cost-effective (£100) and power-efficient (5W) compute/storage capability, capable of supporting image classification, object detection, segmentation, and speech processing, etc.&lt;/p&gt;

&lt;h3 id=&quot;bill-of-materials&quot;&gt;Bill of Materials&lt;/h3&gt;

&lt;p&gt;The proposed Computer Vision test lab architecture is very cost-effective. I have selected the following components based on their interoperability.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://developer.nvidia.com/buy-jetson&quot;&gt;Nvidia Jetson Nano Developer Kit&lt;/a&gt;:&lt;/strong&gt; £101.50&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.co.uk/gp/product/B07FCMBLV6/&quot;&gt;SanDisk Ultra 64GB A2 microSD Card&lt;/a&gt;:&lt;/strong&gt; £9.69&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.co.uk/gp/product/B08215L7SY/&quot;&gt;Geekworm 5V 4A 4000mA AC-DC Adaptor&lt;/a&gt;:&lt;/strong&gt; £12.99&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://thepihut.com/products/raspberry-pi-camera-module&quot;&gt;Raspberry Pi Camera v2.0+&lt;/a&gt;:&lt;/strong&gt; £24.00&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.co.uk/gp/product/B01INRAC2C/&quot;&gt;EDiMAX EW-7611ULB USB Wi-Fi Adapter with Bluetooth&lt;/a&gt;:&lt;/strong&gt; £12.17&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://azure.microsoft.com/en-gb/&quot;&gt;Microsoft Azure&lt;/a&gt;:&lt;/strong&gt; £75.00pm (Variable)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The total one-time cost is £160.35, with a variable monthly cost from Microsoft Azure (estimated at £75.00).&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Over the coming weeks, I plan to have the Computer Vision test lab up and running, at which point I will document the setup and initial findings.&lt;/p&gt;
</description>
        <pubDate>Fri, 25 Sep 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/09/25/Computer-Vision/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/09/25/Computer-Vision/</guid>
      </item>
    
      <item>
        <title>Battery Health</title>
        <description>&lt;p&gt;Although I love my &lt;a href=&quot;/2019/11/18/razer-blade/&quot;&gt;Razer Blade 15 Advanced&lt;/a&gt;, I fear battery degradation (longevity) will be an issue.&lt;/p&gt;

&lt;p&gt;For example, thanks to the vrtical integration between hardware and software, Apple are known for achieving exellent battery life across their portable devices. However, what is less commonly known is that they also do a nice job of protecting the battery health, extending the usable life of the battery itself.&lt;/p&gt;

&lt;p&gt;After one-year, I have already noticed a significant drop in battery life with my Razer Blade, Which is likely due to poor battery management during charging cycles, etc. This issue is not limited to Razer laptops and likely an issue with all Windows-based portable devices, recognising that the software can play an important role in battery health.&lt;/p&gt;

&lt;p&gt;Windows (by default) does not provide much insight into battery health (only the current charge), but thankfully it is possible to get Windows 8/10 to generate a comprehensive battery report.&lt;/p&gt;

&lt;p&gt;Simply open a command prompt (CMD) and run the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;powercfg /batteryreport
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This command will create a HTML-based battery report, found in the following location.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;C:\Windows\System32\battery-report.html
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Although the battery report does not specificlly highlight “health”, it does provide a lot of information to provide an educated understanding. The key sections include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;System Information&lt;/li&gt;
  &lt;li&gt;Battery Information&lt;/li&gt;
  &lt;li&gt;Recent Usage&lt;/li&gt;
  &lt;li&gt;Battery Usage&lt;/li&gt;
  &lt;li&gt;Usage History&lt;/li&gt;
  &lt;li&gt;Battery Capacity History&lt;/li&gt;
  &lt;li&gt;Battery Life Estimates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The report can be quite large, but is formatted well, with clear sections.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/batteryhealth01.jpg&quot; alt=&quot;Battery Health&quot; title=&quot;Battery Health&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Each section also includes a summary (conclusion), which can be used as a quick “health check”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/batteryhealth02.jpg&quot; alt=&quot;Battery Health&quot; title=&quot;Battery Health&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Looking at the battery report from my Razer Blade, I do not see the battery lasting much beyond two-years (with usable battery life). Thankfully, unlike a modern Mac, the battery is easy to replace, assuming a trusted alternative can be located, as Razer do not sell batteries seperately.&lt;/p&gt;
</description>
        <pubDate>Fri, 11 Sep 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/09/11/Battery-Health/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/09/11/Battery-Health/</guid>
      </item>
    
      <item>
        <title>Kid's Coding</title>
        <description>&lt;p&gt;As a technologist and a father, I had been eagerly awaiting the day I could share my passion for technology with my children.&lt;/p&gt;

&lt;p&gt;This journey began last year when my four-year-old son and I started to explore the world of software development, using an app called &lt;a href=&quot;https://www.apple.com/swift/playgrounds/&quot;&gt;Swift Playgrounds&lt;/a&gt; from Apple. I documented our experience in the article “&lt;a href=&quot;/2019/06/02/swift-playgrounds/&quot;&gt;Swift Playgrounds&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;Recognising that my son was not yet able to read, I was impressed by how quickly he was able to understand and executed the “Learn to Code 1 (Fundamentals of Swift)” playground, covering basic programming concepts such as Commands, Functions, Loops, etc. The interactive and fun nature of Swift Playgrounds helped to make the learning process engaging (gamified), with enough visual cues that enabled my son to recognise key letters (camelCase), without needing to read the syntax.&lt;/p&gt;

&lt;p&gt;At the time, we stopped at the “Learn to Code 2 (Beyond the Basics)” playground, which upon review, would likely be beyond the capabilities of a four-year-old (rated for ten and above). I did not want to lose momentum by replacing enjoyment with frustration, which would likely impact future engagement.&lt;/p&gt;

&lt;p&gt;Encouraged by our initial success, I started to research other viable software development learning experiences that would be suitable for my (now five-year-old) son. I was not worried about the specific programming language, instead, targetting options that focus on core concepts, whilst hopefully complimenting the development of other key skills (e.g. maths, reading, writing, problem-solving, etc.)&lt;/p&gt;

&lt;p&gt;With five months of homeschooling behind us (due to the COVID-19 lockdown), I had plenty of time to introduce and trial some different options.&lt;/p&gt;

&lt;p&gt;This article will provide a brief overview of the options we explored, including my initial observations.&lt;/p&gt;

&lt;h3 id=&quot;sphero&quot;&gt;Sphero&lt;/h3&gt;

&lt;p&gt;Thanks to a &lt;a href=&quot;/2017/12/08/sphero-hackathon/&quot;&gt;hackathon that I sponsored in 2017&lt;/a&gt;, I happen to own a &lt;a href=&quot;https://sphero.com/products/sphero-mini&quot;&gt;Sphero Mini&lt;/a&gt;, which includes a free integrated development environment.&lt;/p&gt;

&lt;p&gt;As part of the &lt;a href=&quot;https://edu.sphero.com/&quot;&gt;Sphero Edu&lt;/a&gt; app, Sphero offers a declarative development (no code) capability, similar to &lt;a href=&quot;https://scratch.mit.edu/&quot;&gt;Scratch&lt;/a&gt;. It supports a wide range of platforms (e.g. iOS, Android), making it very accessible, assuming you are comfortable paying £44.99 for the Sphero Mini.&lt;/p&gt;

&lt;p&gt;The app works well (very easy to set up) and provides multiple options for almost any level of experience. For example, the Sphero Mini can be programmed by drawing a path, using a sequence of code blocks, or (when ready) via JavaScript.&lt;/p&gt;

&lt;p&gt;My son enjoyed controlling the Sphero Mini via the path drawing and was able to get started without any assistance. We quickly progressed to using the code blocks, where he required guidance due to the heavier emphasis on syntax. To ensure we had a challenge, we created a simple course using &lt;a href=&quot;https://www.megabloks.com/&quot;&gt;Mega Blocks&lt;/a&gt;, which we then attempted to programme.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/P5UCPt21008?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;It is fair to state that the Sphero Mini is not overly accurate (not helped by the carpet), therefore it took several attempts to achieve the desired outcome.&lt;/p&gt;

&lt;p&gt;In summary, the connection between the software and a physical object was a real winner! It helped bring the code to life, clearly demonstrating the consequences of any changes, which my son found hilarious as the Sphero Mini regularly bounced off the walls.&lt;/p&gt;

&lt;p&gt;The use of the path drawing capability was quick and simple but did not provide much in the way of learning. The code blocks started to introduce core concepts (functions, etc.) However, was more challenging due to the reliance on written code.&lt;/p&gt;

&lt;p&gt;With that said, I commend the Sphero team for providing a comprehensive development environment, with a very low barrier to entry.&lt;/p&gt;

&lt;h3 id=&quot;sony-aibo&quot;&gt;Sony Aibo&lt;/h3&gt;

&lt;p&gt;With everyone currently working from home due to the COVID-19 pandemic, I am current “dog sitting” our &lt;a href=&quot;/2020/02/28/Sony-Aibo/&quot;&gt;office robot dog (Sony Aibo)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Like Sphero, &lt;a href=&quot;https://us.aibo.com/developer/&quot;&gt;Sony offer development tools for Aibo&lt;/a&gt;, which can be accessed via the browser. This includes &lt;a href=&quot;https://developer.aibo.com/us/docs&quot;&gt;API documentation&lt;/a&gt;, as well as a declarative development (no code) capability.&lt;/p&gt;

&lt;p&gt;Recognising the similarities to the Spehro Edu app, my son and I connected the development environment to Aibo and created some simple routines (e.g. Getting Aibo to dance, bark, wee, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kidscoding01.jpg&quot; alt=&quot;Kids Coding&quot; title=&quot;Kids Coding&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I found the browser-based development environment to be less refined, but certainly functional. My son utilised the touch-screen of my laptop, as he is less familiar with traditional input mechanisms (e.g. trackpad, etc.)&lt;/p&gt;

&lt;p&gt;Similar to Sphero, my son and I were able to create multiple routines by dropping and dragging code blocks. We worked together, with me reading the available commands and him creating the simple functions. Again, the ability to see the code trigger real-world events was a particular highlight, although I do feel for Aibo, as my son quickly increased the complexity of the routines (resulting in a refusal to obey).&lt;/p&gt;

&lt;p&gt;Although our approach was certainly viable, it is clear that Sony (like Apple and many others) are targetting an audience that can read (not a surprise). Therefore, my son would not be able to progress without supervision and guidance.&lt;/p&gt;

&lt;p&gt;Considering the price of a Sony Aibo (£2300), I am certainly not recommending it as a personal learning tool (maybe if you work as a teacher in STEM), but it is worth noting that many “toys” (such as &lt;a href=&quot;https://www.lego.com/en-gb/categories/coding-for-kids&quot;&gt;Lego&lt;/a&gt;) now include simple development capabilities.&lt;/p&gt;

&lt;h3 id=&quot;hopster-coding-safari&quot;&gt;Hopster Coding Safari&lt;/h3&gt;

&lt;p&gt;Next, we tried &lt;a href=&quot;https://www.hopster.tv/coding-safari/&quot;&gt;Hopster Coding Safari&lt;/a&gt;, which is a free app (with in-app purchases) on the Apple iOS App Store.&lt;/p&gt;

&lt;p&gt;This app resembles the first few chapters of the “Learn to Code 1 (Fundamentals of Swift)” playground, where the user is presented with a series of logic puzzles to solve.&lt;/p&gt;

&lt;p&gt;The app is well built, with good graphics and an intuitive user interface. The logic puzzles involve navigating a cartoon animal to a defined endpoint using drag and drop programming, presented as symbols, instead of written syntax.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kidscoding02.jpg&quot; alt=&quot;Kids Coding&quot; title=&quot;Kids Coding&quot; /&gt;&lt;/p&gt;

&lt;p&gt;My son (and his younger sister) were immediately captivated, likely by the bright artwork, fun graphics and animations. Although the puzzles get progressively more complex, my son made short work of the available levels, completing all of them within two sittings. It is possible to purchase additional levels, however, from the reviews, it would appear to be more of the same, not adding much to the learning experience.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kidscoding03.jpg&quot; alt=&quot;Kids Coding&quot; title=&quot;Kids Coding&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It is worth noting that the levels are procedurally generated, therefore will automatically change if replayed. This is a great feature, but not necessarily varied or challenging enough to support long-term development.&lt;/p&gt;

&lt;p&gt;With that said, as a free app, it is hard to not recommend!&lt;/p&gt;

&lt;h3 id=&quot;kodable&quot;&gt;Kodable&lt;/h3&gt;

&lt;p&gt;In recent weeks, my son has been working his way through another app called &lt;a href=&quot;https://www.kodable.com/&quot;&gt;Kodable&lt;/a&gt;, which includes a comprehensive curriculum of software development challenges created specifically for kids.&lt;/p&gt;

&lt;p&gt;The curriculum begins very much like Swift Playgrounds and Hopster Coding Safari, with drag and drop programming, leveraging symbols (arrows, etc.) Over time, it introduces additional concepts such as conditional code and loops, before transitioning to written code (either JavaScript or Swift).&lt;/p&gt;

&lt;p&gt;The app consists of six main sections, which can initially make the main menu a little confusing, but once orientated, highlights the depth/breadth of content available.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Smeeborg:&lt;/strong&gt; Solve puzzles using symbol-based code, designed for pre-readers.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Asteroidia:&lt;/strong&gt; Begin your introduction to variables and data types.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Bug World:&lt;/strong&gt; Transition from symbol-based code to written code in JavaScript or Swift.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Maze Maker:&lt;/strong&gt; Practice foundational skills from every programming language as you create beautiful mazes.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Build Your Own Fuzz:&lt;/strong&gt; Use creativity and imagination to practice your coding skills building your very own characters (known as fuzzes).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Game Designer:&lt;/strong&gt; Design games by modifying properties of their code.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each section includes a wealth of content, primarily delivered as chapters and levels which progressively increase in difficultly by introducing new programming concepts.&lt;/p&gt;

&lt;p&gt;Starting with Smeeborg and recognising the similarities to Swift Playgrounds and Hopster Coding Safari, my son was quick to pick-up the concept and progressed through the first few chapters very quickly.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kidscoding04.jpg&quot; alt=&quot;Kids Coding&quot; title=&quot;Kids Coding&quot; /&gt;&lt;/p&gt;

&lt;p&gt;He did require occasional assistance, but the app does a nice job of providing visual cues if/when it detects the user has become stuck.&lt;/p&gt;

&lt;p&gt;What makes this app stand-out to me is the gradual progression it offers, whilst always building upon skills previously demonstrated. For example, chapter three introduced “loops”, using visual cues that had been previously mastered in the previous chapters.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kidscoding05.jpg&quot; alt=&quot;Kids Coding&quot; title=&quot;Kids Coding&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Each level offers a small reward, unlocking new parts for your avatar (known as a Fuzz), which the user can modify in the “Build your Own Fuzz” section. These small incentives, alongside occasional “bonus games” where you get the chance to win additional prizes, provides a fun way to encourage progression. My daughter (only two-years-old) enjoyed helping my son complete the “bonus games” and modifying the avatar.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kidscoding06.jpg&quot; alt=&quot;Kids Coding&quot; title=&quot;Kids Coding&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, I have been incredibly impressed with Kodable! However, my son is still working through Smeeborg, therefore I am assuming that the more advanced sections are delivered at the same quality.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kidscoding07.jpg&quot; alt=&quot;Kids Coding&quot; title=&quot;Kids Coding&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, Kodable is not free (which I think is fair, based on the content offered). It requires an &lt;a href=&quot;https://www.kodable.com/parents&quot;&gt;annual subscription, which can be purchased for £59.99 but can often be found on offer for £49.99&lt;/a&gt;. Although not cheap, I feel there is enough content, delivered with enough polish that it is worth the investment.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Over the past five months, I have seen my son develop the core concepts associated with software development, whilst also improve his logical reasoning, maths, reading and writing.&lt;/p&gt;

&lt;p&gt;He has also started to recognise the role of software within our world, often making statements about how something was “coded” or if he spots a potential bug.&lt;/p&gt;

&lt;p&gt;Considering he also appears to enjoy the process (anything to play on the iPad), I plan to continue our journey into software development, likely sticking with &lt;a href=&quot;https://www.kodable.com/&quot;&gt;Kodable&lt;/a&gt;, at least until he reaches a logical progression point (or gets bored).&lt;/p&gt;

&lt;p&gt;I hope you have found this article useful. Below are three “getting started” recommendations.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Focus on core concepts, not a specific programming language or syntax.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Start with a free learning exerience (e.g. &lt;a href=&quot;https://www.apple.com/swift/playgrounds/&quot;&gt;Apple Swift Playgrounds&lt;/a&gt; and/or &lt;a href=&quot;https://www.hopster.tv/coding-safari/&quot;&gt;Hopster Coding Safari&lt;/a&gt;, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;If possible, look to introduce an option where the software interacts with a physical object (e.g. &lt;a href=&quot;https://sphero.com/products/sphero-mini&quot;&gt;Sphero Mini&lt;/a&gt;, &lt;a href=&quot;https://www.lego.com/en-gb/categories/coding-for-kids&quot;&gt;Lego&lt;/a&gt;, etc.)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;
</description>
        <pubDate>Fri, 04 Sep 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/09/04/Kids-Coding/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/09/04/Kids-Coding/</guid>
      </item>
    
      <item>
        <title>My Setup (Q3 2020)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;h3 id=&quot;home-setup&quot;&gt;Home Setup&lt;/h3&gt;

&lt;p&gt;At home, I switch between four devices (three laptops and one desktop).&lt;/p&gt;

&lt;p&gt;My daily driver is a &lt;a href=&quot;/2019/11/18/Razer-Blade/&quot;&gt;Razer Blade 15 Advanced (Late-2019)&lt;/a&gt;. It is primarily used for productivity tasks, software development, photo editing, virtual labs, gaming and game development (&lt;a href=&quot;/2017/03/09/GameMaker-Studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;). The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Razer Blade 15 Advanced (Late-2019)&lt;/li&gt;
  &lt;li&gt;2.6GHz 6-Core Intel i7-9750H (Turbo up to 4.5GHz)&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance Series 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 970 EVO Plus PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 2080 Max-Q 8GB GDDR6&lt;/li&gt;
  &lt;li&gt;15.6-inch 4K OLED Touch DCI-P3 HDR400 Display (3840x2160)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also have a 16-inch Apple MacBook Pro (NOV-2019), which is a secondary device providing native access to the Apple ecosystem for software development, video editing, etc. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;16-inch MacBook Pro with Retina Display (NOV-2019)&lt;/li&gt;
  &lt;li&gt;2.4GHz 8-Core Intel i9-9980HK (Turbo up to 5.0GHz)&lt;/li&gt;
  &lt;li&gt;32GB 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;1TB PCI-e SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;AMD Radeon Pro 5500M 8GB GDDR6&lt;/li&gt;
  &lt;li&gt;16-inch IPS P3 Display (3072x1920, 500nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have a 13-inch Dell XPS 13 (9300), which is reserved for Linux (specifically &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora&lt;/a&gt;). Dell provides native support for Linux (primarily &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;), making it a good candidate for Linux applications and testing. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;13-inch Dell XPS 13 (9300)&lt;/li&gt;
  &lt;li&gt;1.3GHz 4-Core Intel i7-1065G7 (Turbo up to 3.9GHz)&lt;/li&gt;
  &lt;li&gt;16GB 3733MHz LPDDR4x RAM&lt;/li&gt;
  &lt;li&gt;512GB M.2 PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel Iris Plus Graphics&lt;/li&gt;
  &lt;li&gt;13.4-inch Display (1920x1200, 500nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alongside my laptops, I have a custom-built desktop PC. The specification (listed below) is a couple of years old but still provides excellent overall performance. Although released in 2018, the &lt;a href=&quot;2018/10/26/GeForce-RTX/&quot;&gt;GeForce RTX 2080 Ti&lt;/a&gt; is still a phenomenal graphics card, enabling high-performance Ray Tracing gaming.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus Maximus VIII Hero Alpha (Intel Z170)&lt;/li&gt;
  &lt;li&gt;Intel Core i7-6700K 4.0GHz @ 4.6GHz&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;32GB Corsair Vengeance LPX DDR4 PC4-24000C15 (15-17-17-35)&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;PNY GeForce RTX 2080 Ti 11GB XLR8 Gaming Overclocked Edition&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Intel Core i7-6700K is four-years-old, however, Intel has provided little incentive to upgrade. For example, their upcoming 10th generation processors are still based on the Skylake microarchitecture, first released in 2015.&lt;/p&gt;

&lt;p&gt;I continue to watch AMD closely, who are now the clear performance leaders with their Zen 2 microarchitecture, but will probably delay any future upgrades until transformative technologies such as PCI-e 4.0 are mainstream.&lt;/p&gt;

&lt;p&gt;In 2020, &lt;a href=&quot;/2020/08/24/Super-Ultrawide/&quot;&gt;I replaced my previous three monitors with one Super Ultrawide&lt;/a&gt;, specifically the &lt;a href=&quot;https://displaysolutions.samsung.com/monitor/detail/1421/C49RG90&quot;&gt;Samsung C49RG90&lt;/a&gt;. The full specification of the monitor can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Model:&lt;/strong&gt; Samsung C49RG90&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Size:&lt;/strong&gt; 49-inch&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Type:&lt;/strong&gt; VA&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Curvature:&lt;/strong&gt; 1800R&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aspect Ratio:&lt;/strong&gt; 32:9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 5120x1440&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 120Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Variable Refresh Rate:&lt;/strong&gt; AMD FreeSync 2 (48-120Hz Range)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; 4ms (GTG)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Colour Accuracy:&lt;/strong&gt; 125% sRGB, 92% Adobe RGB, 95% DCI-P3&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;High Dynamic Range:&lt;/strong&gt; HDR1000&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 600cd/m2 (Typical), 1000cd/m2 (Peak)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is kept fairly minimal, the Razer Blade 15 Advanced, MacBook Pro and Dell XPS 13 can connect to the monitors via a &lt;a href=&quot;https://www.amazon.co.uk/StarTech-comThunderbolt-Dock-Windows-DisplayPort-Docking/dp/B07BJJX47G/&quot;&gt;StarTech Dual-DisplayPort to ThunderBolt 3 Adapter&lt;/a&gt;, providing a single-cable solution.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup18.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, for peripherals, I primarily use the &lt;a href=&quot;https://www.logitech.com/en-gb/product/craft&quot;&gt;Logitech Craft&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/product/mx-anywhere-3/&quot;&gt;Logitech MX Anywhere 3&lt;/a&gt; and &lt;a href=&quot;https://www.logitech.com/en-gb/product/brio&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt;. The keyboard and mouse were selected as they include “Easy-Switch”, which makes it simple to toggle between multiple Bluetooth devices.&lt;/p&gt;

&lt;p&gt;The image below provides a closer look at the Samsung C49RG90 monitor.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup19.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Additional peripherals include headphones (&lt;a href=&quot;https://www.whathifi.com/bo/beoplay-h8/review&quot;&gt;Bang &amp;amp; Olufsen BeoPlay H8&lt;/a&gt;), controller (&lt;a href=&quot;https://www.xbox.com/accessories/controllers/elite-wireless-controller-series-2&quot;&gt;Microsoft Xbox Elite Series 2&lt;/a&gt;), flight controller (&lt;a href=&quot;https://www.flightsim.com/vbfs/content.php?16051-Review-Saitek-X-55-Rhino-HOTAS-System&quot;&gt;Saitek X-55&lt;/a&gt;), steering wheel (&lt;a href=&quot;http://gaming.logitech.com/en-gb/product/g29-driving-force&quot;&gt;Logitech G29&lt;/a&gt;) and virtual relaity headset (&lt;a href=&quot;https://www.oculus.com/quest/&quot;&gt;Oculus Quest&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;As highlighted in the image below, the desktop PC is hidden under the desk, with the case door exposed providing easy access to the components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup20.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk and matching pedestals are from &lt;a href=&quot;https://www.tcofficefurniture.co.uk&quot;&gt;Three Counties Office Furniture&lt;/a&gt;. They are designed for corporate use, therefore are hard-wearing and include integrated cable management.&lt;/p&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/multi-use-guest-chairs/setu-chair.html&quot;&gt;Herman Miller Setu&lt;/a&gt; chair, which includes the Kinematic Spine to control resistance and automatically support your weight as you recline.&lt;/p&gt;

&lt;h3 id=&quot;work-setup&quot;&gt;Work Setup&lt;/h3&gt;

&lt;p&gt;At work, I use the Razer Blade 15 Advanced, Apple MacBook Pro and/or Dell XPS 13 (depending on the workload).&lt;/p&gt;

&lt;p&gt;I use two &lt;a href=&quot;http://www1.euro.dell.com/content/products/productdetails.aspx/dell-u2718q-monitor&quot;&gt;27-inch Dell U2718Q IPS HDR 4K monitors&lt;/a&gt;, connected via the previously mentioned &lt;a href=&quot;https://www.amazon.co.uk/StarTech-comThunderbolt-Dock-Windows-DisplayPort-Docking/dp/B07BJJX47G/&quot;&gt;StarTech Dual-DisplayPort to ThunderBolt 3 Adapter&lt;/a&gt;. To provided consistency, all other peripherals (e.g. Mouse, Keyboard, and Webcam) are the same as home.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/officesetup04.jpg&quot; alt=&quot;Office Setup&quot; title=&quot;Office Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk is very basic, with a simple dual-monitor stand. Similar to at home, I use a Herman Miller chair at work, however, due to the extended hours, it is the more robust &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/performance-work-chairs/mirra-2-chairs.html&quot;&gt;Mirra 2&lt;/a&gt;. This chair includes a phenomenal amount of adjustment, ensuring all-day comfort.&lt;/p&gt;
</description>
        <pubDate>Tue, 25 Aug 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/08/25/My-Setup-Q3-2020/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/08/25/My-Setup-Q3-2020/</guid>
      </item>
    
      <item>
        <title>Super Ultrawide</title>
        <description>&lt;p&gt;Over the years I have experimented with different monitor setups. I have tested almost every viable combination positioned for consumers, including:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple Cinema Display (High Resolution, Single Cable)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/04/20/eyefinity/&quot;&gt;3D Compatible Monitor&lt;/a&gt; (3D Content)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/04/20/eyefinity/&quot;&gt;Triple 24-inch Monitors&lt;/a&gt; (AMD Eyefinity for Gaming)&lt;/li&gt;
  &lt;li&gt;High Resolution (5K+) Monitor (Productivity)&lt;/li&gt;
  &lt;li&gt;High Refresh Rate (144Hz+) Monitor (Gaming)&lt;/li&gt;
  &lt;li&gt;Dual 27-inch 4K HDR Monitors (Massive 8K Resolution)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every monitor setup had its relative strengths and weaknesses. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;High refresh rate monitors are great for gaming, but often trade-off colour accuracy and high dynamic range.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;High-resolution monitors (4K+)  provide great image quality, but are commonly locked at a 60Hz refresh rate, have a lower response time and require software DPI scaling.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Dual or triple monitor setups deliver an immersive experience as well as an amazing amount of screen real-estate but include cumbersome monitor bezels, as well as the need to connect multiple cables.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Over the past year, a new “type” of monitor has hit the market, known as the “Super Ultrawide”. These monitors include a massive 49-inch panel with a 32:9 aspect ratio, which is the equivalent of dual 27-inch monitors.&lt;/p&gt;

&lt;p&gt;Interestingly, Super Ultrawide monitors have the potential to deliver the perfect balance between productivity and gaming, achieved through the following characteristics:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;High Resolution:&lt;/strong&gt; Up to 5120x1440, which is approximately one million pixels less than 4K (arguably the best resolution for Windows DPI scaling and game performance).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;High Refresh Rate:&lt;/strong&gt; 120Hz+ with Variable Refresh Rate (FreeSync, G-Sync, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Low Response Time:&lt;/strong&gt; Maximum 4ms (GTG)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Colour Accuracy:&lt;/strong&gt; 95%+ of DCI-P3 and HDR1000 (Peak Brightness 1000cd/m2).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Screen Real Estate:&lt;/strong&gt; The equivalent of dual 27-inch QHD monitors.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a result, I decided to replace &lt;a href=&quot;/2020/01/06/my-setup-q1-2020/&quot;&gt;my existing three monitors&lt;/a&gt; (details below), with a single Super Ultrawide.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2x Dell U2718Q IPS HDR 4K (3840x2160 / 60Hz / 5ms / HDR10)&lt;/li&gt;
  &lt;li&gt;1x Dell S2716DG TN G-Sync (2560x1440 / 144Hz / VRR / 1ms)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have selected the &lt;a href=&quot;https://displaysolutions.samsung.com/monitor/detail/1421/C49RG90&quot;&gt;Samsung C49RG90&lt;/a&gt;, which can be purchased for around £1000 and includes the following specification:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Model:&lt;/strong&gt; Samsung C49RG90&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Size:&lt;/strong&gt; 49-inch&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Type:&lt;/strong&gt; VA&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel Curvature:&lt;/strong&gt; 1800R&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aspect Ratio:&lt;/strong&gt; 32:9&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 5120x1440&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 120Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Variable Refresh Rate:&lt;/strong&gt; AMD FreeSync 2 (48-120Hz Range)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; 4ms (GTG)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Colour Accuracy:&lt;/strong&gt; 125% sRGB, 92% Adobe RGB, 95% DCI-P3&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;High Dynamic Range:&lt;/strong&gt; HDR1000&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 600cd/m2 (Typical), 1000cd/m2 (Peak)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Samsung C49RG90 delivers in one monitor, the capabilities that I was previously achieving with three. Specifically, a 5120x1440 resolution, which is the equivalent of dual 27-inch QHD monitors, alongside a high refresh rate (120Hz) and support for AMD FreeSync 2 (which also is compatible with Nvidia graphics).&lt;/p&gt;

&lt;p&gt;I did explore the new &lt;a href=&quot;https://www.samsung.com/uk/monitors/monitor-cg95/&quot;&gt;Samsung Odyssey G9&lt;/a&gt;, which includes a higher refresh rate (240Hz), alongside a 1000R curvature. However, there have been widespread reports on &lt;a href=&quot;https://www.reddit.com/&quot;&gt;Reddit&lt;/a&gt; of inconsistent build quality (light leaking) and a “display flickering” issue. Therefore, considering I am not a competitive gamer, I decided to save some money (approximately £300) and select the “tried and tested” Samsung C49RG90.&lt;/p&gt;

&lt;h3 id=&quot;setup&quot;&gt;Setup&lt;/h3&gt;

&lt;p&gt;Unsurprisingly the Samsung C49RG90 is a monster, something that is immediately apparent based on the size of the box. I had initially planned to leverage my existing monitor arm, however, the 11.6kg weight was simply to heavy for the single arm.&lt;/p&gt;

&lt;p&gt;Therefore, I switched to the integrated stand, which consumes more desk space, but is certainly more robust. On a positive note, the stand does include an integrated cable tidy and handy headphone stand.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup18.jpg&quot; alt=&quot;Super Ultrawide&quot; title=&quot;Super Ultrawide&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Setting up the monitor was very simple, my default settings can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 5120x1440&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Refresh Rate:&lt;/strong&gt; 120Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Colour:&lt;/strong&gt; 8-bit&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FreeSync:&lt;/strong&gt; Ultimate Engine (48-120Hz Range)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 50 to 100&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Contrast:&lt;/strong&gt; 75&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sharpness:&lt;/strong&gt; 56&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Low Input Lag:&lt;/strong&gt; On&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; Fastest&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Local Dimming:&lt;/strong&gt; Auto&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When viewing HDR content, I switch the Colour to 10-bit (Nvidia Control Panel) and Brightness to 100, which automatically lowers the Refresh Rate to 100Hz. I do not personally leave HDR on by default, recognising the current HDR limitations in Windows 10.&lt;/p&gt;

&lt;p&gt;The Samsung C49RG90 supports &lt;a href=&quot;https://www.amd.com/en/technologies/free-sync&quot;&gt;FreeSync 2&lt;/a&gt;, which adds three important features to the FreeSync specification, specifically support for High Dynamic Range (HDR), Low Input Latency and Low Framerate Compensation (LFC).&lt;/p&gt;

&lt;p&gt;In my opinion, Low Framerate Compensation (LFC) is the most important feature, as it essentially removes the minimum refresh rate threshold by automatically multiplying frames to ensure they exceed the minimum (e.g. 48Hz).&lt;/p&gt;

&lt;p&gt;Although FreeSync is &lt;a href=&quot;https://www.amd.com/&quot;&gt;AMD&lt;/a&gt; technology, it works fine with &lt;a href=&quot;https://www.nvidia.com/&quot;&gt;Nvidia&lt;/a&gt; graphics. However, the setting “Enable settings for the selected display model” must be enabled in the “Set up G-Sync” tab of the Nvidia Control Panel.&lt;/p&gt;

&lt;h3 id=&quot;usage&quot;&gt;Usage&lt;/h3&gt;

&lt;p&gt;The 32:9 aspect ratio is simply phenomenal, delivering a truly immersive experience regardless of the task. The 1800R curvature works great for productivity (minimal distortion), but I could see the benefits of a 1000R curvature, especially when playing games.&lt;/p&gt;

&lt;p&gt;Unlike having dual displays, application windows running on the Super Ultrawide can be positioned in the centre of the display, something that would have been previously blocked by the monitor bezels.&lt;/p&gt;

&lt;p&gt;This subtle change makes a big difference, especially for focused tasks such as coding, writing and/or reviewing documents. Where previously I would have my primary application window on the left display, I now position centrally, with any “secondary” application windows positioned either side.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/superultrawide01.jpg&quot; alt=&quot;Super Ultrawide&quot; title=&quot;Super Ultrawide&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Another key advantage of a single monitor is that applications can leverage the full screen by default. Although not appropriate for all use cases (a single browser window across 32:9 aspect ratio looks ridiculous), applications such as &lt;a href=&quot;https://zoom.us/&quot;&gt;Zoom&lt;/a&gt; deliver an experience that could only be achieved on this setup.&lt;/p&gt;

&lt;p&gt;My only negative feedback would be related to text clarity, which is a common complaint with monitors that use a VA panel. The issue is most noticeable when compared against a high-resolution IPS panel, but is not something that bothers me in general use. It is worth noting that text clarity can be tuned in Windows 10 using the ClearType settings.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/superultrawide02.jpg&quot; alt=&quot;Super Ultrawide&quot; title=&quot;Super Ultrawide&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This immersive video conferencing experience has been particularly useful in 2020, where due to COVID-19, I have spent a lot of time and home.&lt;/p&gt;

&lt;p&gt;Gaming is another highlight of the Samsung C49RG90, with the 120Hz refresh rate and FreeSync 2 delivering a responsive, consistent, visual experience.&lt;/p&gt;

&lt;p&gt;With that said, not every game natively supports the 32:9 aspect ratio, therefore it is worth checking before any purchase. I would recommend starting with the “&lt;a href=&quot;https://store.steampowered.com/curator/9685213-r-ultrawidemasterrace-Group/&quot;&gt;Steam Ultrawide Master Race&lt;/a&gt;” group, which includes a curated list of supported games.&lt;/p&gt;

&lt;p&gt;Assuming support, the Super Ultrawide experience is breathtaking! I have included a few photos below, which hopefully highlight the immersion.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.rockstargames.com/reddeadredemption2/&quot;&gt;Red Dead Redemption 2&lt;/a&gt; is a first and third-person perspective open-world game developed by &lt;a href=&quot;https://www.rockstargames.com/&quot;&gt;Rockstar Games&lt;/a&gt;. The open landscapes look stunning when running at a 32:9 aspect ratio. When playing first or third-person games on a Super Ultrawide, the Field of View (FoV) might require adjustment, something that can usually be done from within the game options.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/superultrawide03.jpg&quot; alt=&quot;Super Ultrawide&quot; title=&quot;Super Ultrawide&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Another recent release is &lt;a href=&quot;https://www.xbox.com/en-GB/games/microsoft-flight-simulator&quot;&gt;Flight Simulator&lt;/a&gt; from &lt;a href=&quot;https://www.microsoft.com/&quot;&gt;Microsoft&lt;/a&gt;, which includes native support for the 32:9 aspect ratio. Flight Simulator is a very demanding game, therefore does require impressive hardware to run at the native 5120x1440 resolution (although this resolution is still less demanding than 4K).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/superultrawide04.jpg&quot; alt=&quot;Super Ultrawide&quot; title=&quot;Super Ultrawide&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, I am a fan of racing games (specifically the &lt;a href=&quot;https://www.codemasters.com/game/f1-2020/&quot;&gt;F1 Series&lt;/a&gt; from &lt;a href=&quot;https://www.codemasters.com/&quot;&gt;Codemasters&lt;/a&gt;), which I have always enjoyed playing with ultrawide setups (specifically AMD Eyefinity, as highlighted in the photo below).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/superultrawide05.jpg&quot; alt=&quot;Super Ultrawide&quot; title=&quot;Super Ultrawide&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As highlighted in the photo below, the impact of Super Ultrawide monitor is immediately evident, simplifying the setup and removing the bezels.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/superultrawide06.jpg&quot; alt=&quot;Super Ultrawide&quot; title=&quot;Super Ultrawide&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although not perfect for every gaming experience, I enjoy the Super Ultrawide gaming experience. However, this assumes a PC that can push a 5120x1440 resolution at a respectable framerate.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In short, I believe am pleased with my switch to Super Ultrawide. The Samsung C49RG90 delivers upon the promise of high resolution, high refresh rate, with minimal compromise.&lt;/p&gt;
</description>
        <pubDate>Mon, 24 Aug 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/08/24/Super-Ultrawide/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/08/24/Super-Ultrawide/</guid>
      </item>
    
      <item>
        <title>Dell XPS 17</title>
        <description>&lt;p&gt;In June, Dell released the new &lt;a href=&quot;https://www.dell.com/en-uk/shop/laptops/xps-17-laptop/spd/xps-17-9700-laptop&quot;&gt;Dell XPS 17&lt;/a&gt; laptop, which included a refreshed design aesthetic and an impressive 17-inch display.&lt;/p&gt;

&lt;p&gt;Over the years, I have experimented with different display sizes, looking to find the right balance between performance and portability. This continuous search has always led me back to 15-inch laptops, which tend to be the entry point for high-performance processors and graphics.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2020/01/06/My-Setup-2020/&quot;&gt;Traditionally, I have used a 15-inch MacBook Pro&lt;/a&gt;, but I am currently using a &lt;a href=&quot;/2019/11/18/razer-blade/&quot;&gt;Razer Blade 15 Advanced as my daily driver&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Considering the form factor, &lt;a href=&quot;/2019/11/18/razer-blade/&quot;&gt;the Razer Blade 15 Advanced offers excellent performance&lt;/a&gt;, packing a full NVIDIA GeForce RTX 2080 with Max-Q, whilst still competing with the Apple MacBook Pro for size and aesthetics.&lt;/p&gt;

&lt;p&gt;However, the design of the 15.6-inch display included on the Razer Blade 15 Advanced is starting to look dated, likely due to the 16:9 aspect ratio, which results in a large bezel at the bottom (often described as the chin).&lt;/p&gt;

&lt;p&gt;This is where the new Dell XPS 17 shines! Dell has successfully included a 17-inch display, with a 16:10 aspect ratio, delivered in a laptop that is only fractionally larger than most 15-inch counterparts.&lt;/p&gt;

&lt;p&gt;Dell has achieved this feat by reducing the display bezels to only a few millimetres (known as InfinityEdge), achieving an impressive 93.7% screen-to-body ratio.&lt;/p&gt;

&lt;p&gt;The result is so striking that it immediately makes other laptops look dated, including the recently refreshed Apple MacBook Pro, which attempted the same trick with a 16-inch display (84% screen-to-body ratio).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dellxps1701.jpg&quot; alt=&quot;Dell XPS 17&quot; title=&quot;Dell XPS 17&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As a result, I could not resist testing the new Dell XPS 17.&lt;/p&gt;

&lt;p&gt;This article is not a review (there are many &lt;a href=&quot;https://youtu.be/AnH3D9jExkU&quot;&gt;online&lt;/a&gt;), simply a summary of my experience using the laptop, specifically compared against my Razer Blade 15 Advanced and Apple MacBook Pro.&lt;/p&gt;

&lt;h3 id=&quot;design&quot;&gt;Design&lt;/h3&gt;

&lt;p&gt;I would ordinarily start with the laptop specification, however, the real star of this show is the display and new design aesthetic.&lt;/p&gt;

&lt;p&gt;The photo below highlights the sheer scale of the display (you can just about see the Windows “Start” button for reference).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dellxps1702.jpg&quot; alt=&quot;Dell XPS 17&quot; title=&quot;Dell XPS 17&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The 16:10 aspect ratio means that the display seamlessly fades into the body, delivering more vertical real estate when compared with most laptops (such as my Razer Blade 15 Advanced).&lt;/p&gt;

&lt;p&gt;I selected the UHD+ (3840 x 2400) touch display, which is very good but due to the use of an IPS panel, does not quite deliver the black-level performance and visual punch offered by the Razer Blade 15 Advanced, which uses an OLED panel. With that said, the display is very colour accurate and therefore a pleasure to use for productivity use cases (I will mention gaming later in the article).&lt;/p&gt;

&lt;p&gt;Outside of the display, the new Dell design aesthetic (also found on the new XPS 13 and 15) is stunning! The body is dense and rigid, with clean lines and a build-quality that rivals Apple.&lt;/p&gt;

&lt;p&gt;The carbon-fibre palm-rests, which have become a consistent feature across the XPS range, continue to act as a design differentiator, whilst also delivering a “softer” feel when compared against aluminium.&lt;/p&gt;

&lt;p&gt;Additionally, as someone who wears a steel watch bracelet, I can confirm that the carbon-fibre palm rests are also more durable than aluminium, being more resistant to scratches and discolouration (my Razer Blade 15 Advanced and Apple MacBook Pro both have a thin silver line on the edge of the palm rest).&lt;/p&gt;

&lt;p&gt;The photo below shows the Dell XPS 17 (bottom) stacked with an Apple MacBook Pro 16-inch, Lenovo ThinkPad X1 Extreme 15-inch and a Razer Blade 15 Advanced 15-inch (top).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dellxps1703.jpg&quot; alt=&quot;Dell XPS 17&quot; title=&quot;Dell XPS 17&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, Dell has successfully packed a 17-inch display into a body that is only fractionally larger than competing 16-inch and 15-inch laptops. The difference in size is so small that it still comfortably fits into my medium &lt;a href=&quot;https://www.timbuk2.com/products/1108-classic-messenger-bag?variant=12722837651498&quot;&gt;Timbuk2 Messenger Bag&lt;/a&gt;, which was designed for a 15-inch laptop.&lt;/p&gt;

&lt;p&gt;Although these are impressive dimensions, the Dell XPS 17 is obviously a large laptop. It is also heavy, weighing 2.51kg, compared to 1.9kg of the Apple MacBook Pro 16-inch. I did not find the additional size or weight to be an issue but accept that this will not be the case for everyone.&lt;/p&gt;

&lt;p&gt;Finally, the keyboard and trackpad are both excellent, only rivalled by the Apple MacBook Pro and Razer Blade 15 Advanced (Apple are still the king of the trackpad). I did notice some minor “wobble” on the trackpad (also reported in some reviews), but nothing that I would consider a deal-breaker.&lt;/p&gt;

&lt;p&gt;In short, I consider the Dell XPS 17 design close to perfect!&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;The Dell XPS 17 is available in a range of specifications, starting at £1799. The model I selected was £2899, which included the UHD+ display and &lt;a href=&quot;/2018/10/26/geforce-rtx/&quot;&gt;NVIDIA GeForce RTX graphics&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Dell XPS 17 (9700)&lt;/li&gt;
  &lt;li&gt;2.3Hz 8-Core Intel Core i7-10875H (Turbo up to 5.1GHz)&lt;/li&gt;
  &lt;li&gt;16GB DDR4 2933MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB M.2 NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 2060 with Max-Q 6GB GDDR6&lt;/li&gt;
  &lt;li&gt;17.0” UHD+ InfinityEdge Touch Display (3840 x 2400, 500nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Like the majority of laptops in 2020, the Dell XPS 17 comes equipped with an Intel CPU. Although perfectly adequate, the recent release of the &lt;a href=&quot;https://www.amd.com/en/products/ryzen-processors-laptop&quot;&gt;AMD Ryzen 4000 Series Mobile Processors&lt;/a&gt;, would have made for a fascinating inclusion. However, similar to the Apple MacBook Pro, the Dell XPS 17 has a heavy reliance on Thunderbolt 3 for I/O (4x ports), which for all intents and purposes, is still Intel technology.&lt;/p&gt;

&lt;p&gt;Ideally, I would have configured the laptop with 32GB RAM, however, for some reason, this option was not available in the UK (only the US). Thankfully, the Dell XPS 17 can be easily upgraded, including the RAM (up to 64GB) and SSD (2x M.2 nVME) (assuming you can remove the Torx screws, without stripping them).&lt;/p&gt;

&lt;p&gt;The NVIDIA GeForce RTX 2060 with Max-Q offers good performance, making the Dell XPS 17 viable for gaming. However, this is not a gaming laptop, which is emphasised by the fact that Dell pre-install the &lt;a href=&quot;https://www.nvidia.com/Download/driverResults.aspx/147971/zh-tw&quot;&gt;NVIDIA Studio Driver&lt;/a&gt;, which is designed for artists, creators and 3D developers. I proceeded to install the NVIDIA Game Ready Driver (GRD), which generally provides better performance for my workloads.&lt;/p&gt;

&lt;p&gt;Overall, performance is solid (in line with what you would expect from this specification). The table below highlights a few benchmark results, comparing the Dell XPS 17 against my &lt;a href=&quot;/2019/11/18/razer-blade/&quot;&gt;Razer Blade 15 Advanced&lt;/a&gt; and &lt;a href=&quot;/2019/02/06/thinkpad-x1-extreme/&quot;&gt;Lenovo ThinkPad X1 Extreme&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dellxps1704.jpg&quot; alt=&quot;Dell XPS 17&quot; title=&quot;Dell XPS 17&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I did not complete detailed testing of the thermals but did not notice any major concerns. The Dell XPS 17 is equipped with a vapour-chamber, covering the CPU and Graphics, which should be adequate for this specification.&lt;/p&gt;

&lt;p&gt;Finally, one minor disappointment. Dell has chosen to charge the laptop via the USB-C port, which although is incredibly convenient, does not deliver enough power (maximum 130W) to charge the laptop whilst running at full load. As a result, the laptop will continue to draw power from the battery, even when plugged in (not ideal).&lt;/p&gt;

&lt;p&gt;I would have prefered a dedicated charging port with adequate power delivery (like the Razer Blade 15 Advanced), whilst also supporting USB-C charging for added convenience.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In summary, the Dell XPS 17 is a phenomenal laptop!&lt;/p&gt;

&lt;p&gt;Dell has nailed the 2020 design aesthetic, with a unique, high-quality unibody aluminium body, paired perfectly with the carbon-fibre palm-rests.&lt;/p&gt;

&lt;p&gt;The display is the most impressive part of the laptop, with the 16:10 aspect ratio and 93.7% screen-to-body ratio. Working from the Dell XPS 17 has been a pleasure, especially productivity activities (multiple windows) and software development. The size and aspect ratio of the display delivers almost “desktop” levels of screen real estate, all within a package that is still viable for travel. This is a remarkable accomplishment!&lt;/p&gt;

&lt;p&gt;With that said, would I replace my Razer Blade 15 Advanced with the Dell XPS 17? At this point, no. However, only because I favour the OLED display and higher-performance graphics. If the Dell XPS offered these options, alongside a dedicated charging port, I would be very tempted!&lt;/p&gt;

&lt;p&gt;In conclusion, I consider the Dell XPS 17 an easy product to recommend, especially for those looking to switch from an Apple MacBook Pro, as I consider the Dell XPS range the closest equivalent to what Apple offers (balancing style and performance).&lt;/p&gt;
</description>
        <pubDate>Sun, 02 Aug 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/08/02/Dell-XPS-17/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/08/02/Dell-XPS-17/</guid>
      </item>
    
      <item>
        <title>Next.js</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://nextjs.org/&quot;&gt;Next.js&lt;/a&gt; is a &lt;a href=&quot;https://reactjs.org/&quot;&gt;React&lt;/a&gt; framework, built on &lt;a href=&quot;/2016/02/07/node-architecture/&quot;&gt;Node.js&lt;/a&gt;, that is rapidly gaining popularity amongst web developers.&lt;/p&gt;

&lt;p&gt;Next.js is an open-source project, which is maintained (including the copyright and trademarks) by &lt;a href=&quot;https://vercel.com/&quot;&gt;Vercel&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The goal of Next.js is to provide the building blocks to create fast web applications, complementing the React (Facebook-backed) JavaScript library.&lt;/p&gt;

&lt;p&gt;React is an excellent library for building interactive web applications, providing helpful functions to build user interface components. However, it does not stipulate or facilitate where these functions are used within the application.&lt;/p&gt;

&lt;p&gt;Next.js handles the tooling and configuration not covered by React, providing additional structure, features, and optimisations.&lt;/p&gt;

&lt;p&gt;As a result, Next.js is benefiting from the popularity of React, allowing developers to start with React, and then incrementally adopt Next.js to help solve common challenges such as routing, data fetching, integrations, etc.&lt;/p&gt;

&lt;p&gt;Next.js also supports Incremental Static Regeneration (ISR), which uses static generation on a per-page basis, removing the need to rebuild the entire site, as well as Static Site Generation (SSG), which is an approach I encourage, following a &lt;a href=&quot;/2017/12/20/jamstack/&quot;&gt;JAMstack&lt;/a&gt; architecture.&lt;/p&gt;

&lt;p&gt;My personal experience with React is fairly limited, however, I do work with React development teams and am already seeing the huge potential with Next.js. Therefore, if you are a React developer, I recommend you review the Next.js &lt;a href=&quot;https://nextjs.org/docs/getting-started&quot;&gt;getting started&lt;/a&gt; documentation.&lt;/p&gt;
</description>
        <pubDate>Fri, 24 Jul 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/07/24/Next.js/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/07/24/Next.js/</guid>
      </item>
    
      <item>
        <title>HoloLens 2</title>
        <description>&lt;p&gt;Over the past few weeks, I have been testing the &lt;a href=&quot;https://www.microsoft.com/en-us/hololens/&quot;&gt;Mirosoft HoloLens 2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Released in November 2019, the HoloLens 2 is a mixed reality (MR) headset, which aims to produce environments and visualisations, where physical and digital objects co-exist and interact in real-time.&lt;/p&gt;

&lt;p&gt;The mixed reality (MR) terminology can be confusing, especially when discussed alongside virtual reality (VR) and augmented reality (AR). The descriptions below outline the key differences.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Virtual reality (VR) fully immerses the user in an artificial digital environment.&lt;/li&gt;
  &lt;li&gt;Augmented reality (AR) overlays virtual objects on the real world.&lt;/li&gt;
  &lt;li&gt;Mixed reality (MR) goes beyond augmented reality, anchoring virtual objects on the real world.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As highlighted in the articles “&lt;a href=&quot;/2016/01/30/virtual-reality/&quot;&gt;Virtual Reality&lt;/a&gt;” and “&lt;a href=&quot;/2020/03/30/Oculus-Quest/&quot;&gt;Oculus Quest&lt;/a&gt;”, computer-generated simulations have matured significantly over the past five years. We have not yet achieved the fidelity of the Star Trek Holodeck or Star War Holograms, but these science fiction concepts no longer feel unachievable.&lt;/p&gt;

&lt;p&gt;When the HoloLens was first introduced in 2016, Microsoft failed to position the product effectively, setting a false expectation that it would be made available as a consumer product, similar to Virtual Reality Headsets (e.g. &lt;a href=&quot;https://www.oculus.com/&quot;&gt;Oculus&lt;/a&gt; and &lt;a href=&quot;https://developer.microsoft.com/windows/kinect/&quot;&gt;Kinect&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thankfully, Microsoft has rectified this confusion with HoloLens 2, clearly positioning the product for enterprise businesses, supporting use cases such as remote support, 3D modelling, training, hands-free procedures, etc.&lt;/p&gt;

&lt;p&gt;As an example, the video below highlights HoloLens 2 being used alongside &lt;a href=&quot;https://dynamics.microsoft.com/mixed-reality/remote-assist/&quot;&gt;Dynamics 365 Remote Assist&lt;/a&gt; for hardware remote support.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/d3YT8j0yYl0?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Over recent months, the applicability of these use cases has been amplified, recognising the global restrictions being applied due to the COVID-19 pandemic.&lt;/p&gt;

&lt;p&gt;In this article, I plan to share a brief insight into my testing (results to following in a future article), as well as my initial impressions of the HoloLens 2 hardware and software.&lt;/p&gt;

&lt;h3 id=&quot;testing&quot;&gt;Testing&lt;/h3&gt;

&lt;p&gt;I have been partnering with &lt;a href=&quot;https://www.wwt.com/&quot;&gt;World Wide Technology (WWT)&lt;/a&gt; to test two use cases, which have been documented in the article “&lt;a href=&quot;https://www.wwt.com/article/virtual-migration-strategy-with-microsoft-hololens2&quot;&gt;Virtual Migration Strategy with Microsoft HoloLens 2&lt;/a&gt;”. A summary of the use cases can be found below.&lt;/p&gt;

&lt;h4 id=&quot;deployments-and-site-migrations&quot;&gt;Deployments and Site Migrations&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Leverage the HoloLens 2 to assist physical hardware deployments and site migrations, specifically applicable to R&amp;amp;D and Manufacturing sites.&lt;/li&gt;
  &lt;li&gt;Instead of having a large number of expert resources on-site, a smaller number of local resources (known as “smart hands”) leverage HoloLens 2 to execute the required processes.&lt;/li&gt;
  &lt;li&gt;Local resources use the HoloLens 2 and &lt;a href=&quot;https://dynamics.microsoft.com/en-gb/mixed-reality/guides/&quot;&gt;Dynamics 365 Guides&lt;/a&gt;, which delivers a “digital playbook”, providing a fully annotated step-by-step guide.&lt;/li&gt;
  &lt;li&gt;Expert resources provide remote consultancy and support via &lt;a href=&quot;https://dynamics.microsoft.com/mixed-reality/remote-assist/&quot;&gt;Dynamics 365 Remote Assist&lt;/a&gt;, including real-time voice, video and annotation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;regulated-testing-and-validation&quot;&gt;Regulated Testing and Validation&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/09/service-delivery/&quot;&gt;As part of a regulated industry, the qualification process includes visual validation of the IQ (installation qualification) and PQ (performance qualification) testing&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Evidence must be produced and reviewed by a quality assurance resource, confirming the system configuration/installation has been completed in a controlled fashion.&lt;/li&gt;
  &lt;li&gt;Local resources use the HoloLens 2 and &lt;a href=&quot;https://dynamics.microsoft.com/mixed-reality/remote-assist/&quot;&gt;Dynamics 365 Remote Assist&lt;/a&gt; to connect with remote quality assurance resources.&lt;/li&gt;
  &lt;li&gt;The HoloLens 2 cameras could be used to record all testing, including human interactions with annotations. The recording can be retained as documented evidence of the testing process.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hope is that the HoloLens 2 and associated services can help improve the quality and efficiency of these use cases, reducing the need for on-site resources (travel and costs), whilst improving speed to value and providing a greater level of agility via real-time collaboration.&lt;/p&gt;

&lt;h3 id=&quot;hardware&quot;&gt;Hardware&lt;/h3&gt;

&lt;p&gt;At first glance, the compute, storage and network capabilities of the HoloLens 2 are fairly underwhelming, essentially equivalent to a mid-range smartphone.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;SoC:&lt;/strong&gt; Qualcomm Snapdragon 850&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Memory:&lt;/strong&gt; 4GB LPDDR4x System DRAM&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Storage:&lt;/strong&gt; 64GB UFS 2.1&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Connectivity:&lt;/strong&gt; Wi-Fi 5 (802.11ac 2x2), Bluetooth 5, USB Type-C&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.qualcomm.com/products/snapdragon-850-mobile-compute-platform&quot;&gt;Qualcomm Snapdragon 850 Mobile Compute Platform&lt;/a&gt; is an ARM-based SoC designed for Windows laptops. It is essentially a higher clocked version (3.0Ghz vs. 2.8GHz) of the popular &lt;a href=&quot;https://www.qualcomm.com/products/snapdragon-845-mobile-platform&quot;&gt;Snapdragon 845 Mobile Platform&lt;/a&gt;, manufactured using 10nm LPP FinFET at TSMC.&lt;/p&gt;

&lt;p&gt;Thankfully, the HoloLens 2 is more than just a smartphone that you mount on your head. It also includes a unique display, a wide range of sensors, as well as a custom multiprocessor known as the Holographic Processing Unit (HPU).&lt;/p&gt;

&lt;p&gt;It is the HPU that makes the HoloLens 2 unique, removing the need for a cumbersome breakout box and cables, which would severely limit real-world adoption.&lt;/p&gt;

&lt;p&gt;The HPU is responsible for processing the information coming from the sensors, including the custom time-of-flight depth sensor, head-tracking cameras, inertial measurement unit (IMU) and infrared camera.&lt;/p&gt;

&lt;h3 id=&quot;hololens-2&quot;&gt;HoloLens 2&lt;/h3&gt;

&lt;p&gt;As previously stated, the HoloLens 2 is not targetted at the consumer market. However, the packaging is certainly premium quality, that would not look out of place being sold at an Apple Store. This care and attention regarding the “unboxing experience” is unusual for an enterprise product, likely highlighting that the HoloLens 2 is still highly specialist (limited audience).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hololens201.jpg&quot; alt=&quot;Microsoft HoloLens 2&quot; title=&quot;Microsoft HoloLens 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Inside the box, the HoloLens 2 includes a high-quality travel case (very similar to the optional &lt;a href=&quot;https://www.oculus.com/quest/accessories/&quot;&gt;Oculus Quest Travel Case&lt;/a&gt;), which stores and protects the headset itself, as well as the USB-C power adapter.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hololens202.jpg&quot; alt=&quot;Microsoft HoloLens 2&quot; title=&quot;Microsoft HoloLens 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The HoloLens 2 headset is very well built, with premium materials and tight tolerances. The product feels rigid and dense, which promotes the quality, but also practical considering the target market.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hololens203.jpg&quot; alt=&quot;Microsoft HoloLens 2&quot; title=&quot;Microsoft HoloLens 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In the Virtual Reality world, the “halo” head strap (found on the &lt;a href=&quot;https://www.playstation.com/en-gb/explore/playstation-vr/&quot;&gt;PSVR&lt;/a&gt; and &lt;a href=&quot;https://www.oculus.com/rift-s/&quot;&gt;Oculus Rift S&lt;/a&gt;) is considered the most comfortable. However, Microsoft has chosen to implement a traditional velcro headband, with the addition of an “adjustment wheel” at the rear, which can be used to quickly and easily tighten/loosen the headband itself.&lt;/p&gt;

&lt;p&gt;This “hybrid” design is very comfortable and should be suitable for almost any head size (including my five-year-old son, as shown in a later photo).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hololens204.jpg&quot; alt=&quot;Microsoft HoloLens 2&quot; title=&quot;Microsoft HoloLens 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At 566g, the HoloLens 2 weighs about the same as the &lt;a href=&quot;https://www.oculus.com/quest/&quot;&gt;Oculus Quest&lt;/a&gt; (571g), but the weight is more evenly distributed, with the battery being located at the back of the headset. This delivers a very balanced product, making it more viable for prolonged usage.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hololens205.jpg&quot; alt=&quot;Microsoft HoloLens 2&quot; title=&quot;Microsoft HoloLens 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Wearing the HoloLens 2 is surprisingly comfortable, although not subtle (you cannot hide the fact you are wearing the headset). Therefore, it is likely a “point in time” device, only worn when completing a specific task.&lt;/p&gt;

&lt;p&gt;When viewed from the front, The HoloLens 2 looks a little like wearing a large bicycle helmet and cycling sunglasses.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hololens206.jpg&quot; alt=&quot;Microsoft HoloLens 2&quot; title=&quot;Microsoft HoloLens 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thanks to the open top and sides, the HoloLens 2 does not feel constrained or claustrophobic, which can be a common criticism of Virtual Reality headsets.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hololens207.jpg&quot; alt=&quot;Microsoft HoloLens 2&quot; title=&quot;Microsoft HoloLens 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although the lenses are transparent, the embedded display can obscure vision. As a result, Microsoft has implemented a flip mechanism, allowing the lenses to be moved from the field of view. This process awkwardly shifts the weight of the headset but is still useful for quick conversations outside of mixed reality.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hololens208.jpg&quot; alt=&quot;Microsoft HoloLens 2&quot; title=&quot;Microsoft HoloLens 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, I am incredibly impressed with the HoloLens 2 hardware. Although the technology is relatively new and likely targeting a very specific audience, these limitations are not reflected in the design and/or build quality.&lt;/p&gt;

&lt;p&gt;In short, Microsoft has clearly invested the time to deliver a high-quality “production-ready” product, instead of hiding behind common nomenclature such as “Developer Edition”, which is often used as an excuse for reduced quality and/or missing features.&lt;/p&gt;

&lt;h3 id=&quot;software&quot;&gt;Software&lt;/h3&gt;

&lt;p&gt;The HoloLens 2 runs Windows Holographic OS, which is part of the Windows 10 family.&lt;/p&gt;

&lt;p&gt;Like all other versions of Windows 10, it includes a Start menu, which can be triggered via a one-handed gesture (pinching motion) or by gazing at your wrist, which triggers the Windows logo to appear.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hololens209.jpg&quot; alt=&quot;Microsoft HoloLens 2&quot; title=&quot;Microsoft HoloLens 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alongside the Start menu, other common Windows concepts are sprinkled throughout the operating system, specifically the Application Launcher, Edge Browser, Mail, Calendar, Store, etc. The HoloLens 2 is also fully AutoPilot and InTune compatible, meaning the device can be managed centrally like any other Windows 10 endpoint. These management features, alongside a valid Microsoft Account, helps to ensure the setup process is quick and simple, providing instant access to user applications, data, etc.&lt;/p&gt;

&lt;p&gt;Recognising the lack of a standard input device (e.g. Mouse and keyboard), user interaction is achieved via “Gestures”, “Gaze”, “Hand Ray” and voice.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Gestures allow the user to interact with virtual objects using their hands and fingers.&lt;/li&gt;
  &lt;li&gt;Gaze allows the user to interact with virtual objects by looking (gazing) at specific items (e.g. Application, Buttons, etc.)&lt;/li&gt;
  &lt;li&gt;The Hand Ray presents the user with a “laser pointer”, enabling gestures to be used on virtual objects that are anchored out of direct reach.&lt;/li&gt;
  &lt;li&gt;The HoloLens 2 includes a microphone and speaker array, therefore can accept voice commands as an input (similar to voice assistants such as Amazon Alexa).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gestures, gaze and voice can be used simultaneously, delivering a reasonably intuitive experience, with the hand ray reducing the need for physical movement (a common challenge in mixed reality, where virtual objects are anchored in the real world).&lt;/p&gt;

&lt;p&gt;Similar to when multi-touch was first introduced, the new gestures do have a learning curve. For example, to “air tap”, the user must:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Create a loose fist, pointing the index finger straight up.&lt;/li&gt;
  &lt;li&gt;Tap the finger down.&lt;/li&gt;
  &lt;li&gt;Quickly raise it back up again.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Navigating the operating system and applications is fairly simple, primarily accomplished via air taps. For example, the image below is my five-year-old son interacting with Holo Lens 2. I had previously hidden multiple virtual dinosaurs around our house, which he then had to locate using mixed reality. Thanks to the advanced anchoring of virtual objects, the virtual dinosaurs look and feel part of the physical world. His reaction to seeing the dinosaurs hiding around our house was priceless and demonstrated the “magic” of this technology.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hololens210.jpg&quot; alt=&quot;Microsoft HoloLens 2&quot; title=&quot;Microsoft HoloLens 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At the time of writing, there are 351 HoloLens 2 compatible applications in the Microsoft Store, highlights include &lt;a href=&quot;https://www.microsoft.com/en-gb/p/3d-viewer/9nblggh42ths&quot;&gt;3D Viewer&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/en-gb/p/galaxy-explorer/9nblggh4q4jg&quot;&gt;Galaxy Explorer&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/en-gb/p/graffiti-3d/9npqpk9ngtzr&quot;&gt;Graffiti 3D&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/en-gb/p/holoblocks/9nblggh4wp8v&quot;&gt;HoloBlocks&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/en-gb/p/holotour/9nblggh5pj87&quot;&gt;HoloTour&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/en-gb/p/roboraid/9nblggh5fv3j&quot;&gt;Robo Raid&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/en-gb/p/holoanatomy/9nblggh4ntd3&quot;&gt;HoloAnatomy&lt;/a&gt;, etc. Unsurprisingly, the majority of the applications are still very experimental, offering a glimpse into the “art of the possible”, but rarely adding tangible value.&lt;/p&gt;

&lt;p&gt;Unfortunately, activities that require traditional typed input are far more cumbersome. Although Windows Holographic OS includes a virtual keyboard, the lack of any tactile feedback makes the process of typing very slow and prone to error. To make matters worse, the requirement to hold your arms up without a palm rest is surprisingly difficult, which amplifies the issues. I assume, as the application ecosystem matures, other interaction mechanisms, such as voice, will be favoured.&lt;/p&gt;

&lt;p&gt;Unsurprisingly, HoloLens 2 is at its best when it is operating in true mixed reality mode (virtual objects anchored on the real world), not when attempting to mimic traditional productivity activities. If you need to write a document or respond to e-mail, your laptop is still a far better choice.&lt;/p&gt;

&lt;p&gt;The video below was taken directly from HoloLens 2 and highlights me interacting with the operating system and a few applications. I have purposely not edited, enhanced or refined the video, hoping to highlight the good, the bad and the ugly. You will see me (more than once) fail to interact with a virtual object on the first attempt.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/lLSdFAB08tk?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;As you can see, the virtual overlay and anchoring of virtual objects is incredibly impressive and certainly beyond any other mixed reality or augmented reality device I have ever used. However, you can also see how the interactions can be cumbersome, which can break the illusion, resulting in frustration.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, I am very impressed by the HoloLens 2 and excited to see how the product evolves. I am pleased Microsoft remain willing to invest in these innovative technologies, especially considering past failures and accepting that the viable market is very small (at least today).&lt;/p&gt;

&lt;p&gt;Microsoft should also be commended for the quality of the product, which feels “production-ready” from the moment you pick-up the box. The hardware feels refined and robust (ready for business) and while the software needs some refinement, it is surprisingly intuitive and usable.&lt;/p&gt;

&lt;p&gt;Finally, I am pleased that Microsoft targetted and achieved basic impact protection requirements (ANSI Z87.1, CSA Z94.3 and EN 166), making the product viable for my test use cases. Over the coming weeks, I will conclude my testing, therefore I look forward to seeing how HoloLens 2 performs, as well as the reception it receives from the users. I’ll be sure to post an update with the results.&lt;/p&gt;
</description>
        <pubDate>Mon, 20 Jul 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/07/20/Holo-Lens-2/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/07/20/Holo-Lens-2/</guid>
      </item>
    
      <item>
        <title>Coding Stats</title>
        <description>&lt;p&gt;I recently reviewed my statistics on &lt;a href=&quot;https://coderstats.net/github/#mswbull&quot;&gt;CoderStats&lt;/a&gt;, which pulls public information from the &lt;a href=&quot;https://developer.github.com/v3/&quot;&gt;GitHub API&lt;/a&gt;. My statistics are fairly underwhelming, but (I assume like many others) they do not tell the full story.&lt;/p&gt;

&lt;p&gt;I have always worked in IT, initially as an analyst, prominently in infrastructure roles (web hosting, networking, etc.) I eventually progressed into architecture, working alongside engineering teams. Although I have never had a role as a dedicated software engineer, the rise of software-defined techniques and technologies, alongside the growth of digital business models, presented opportunities to get “hands-on keyboard” and code.&lt;/p&gt;

&lt;p&gt;Alongside work, I have always had a strong personal interest in software development (mostly web technologies) and have explored a lot of different programming languages, specifically JavaScript, Ruby, PHP, Python, Apex, GML, etc.&lt;/p&gt;

&lt;p&gt;Over the years, I have written numerous articles highlighting my coding projects.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;2011:&lt;/strong&gt; &lt;a href=&quot;/2011/12/20/PhoneGap/&quot;&gt;PhoneGap&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2013:&lt;/strong&gt; &lt;a href=&quot;/2013/05/03/Wordpress-on-Heroku/&quot;&gt;Wordpress on Heroku&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2014:&lt;/strong&gt; &lt;a href=&quot;/2014/02/19/IE-Rendering-Modes/&quot;&gt;IE Rendering Modes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2014:&lt;/strong&gt; &lt;a href=&quot;/2014/04/21/Visualforce-and-Internet-Explorer-Rendering-Issue/&quot;&gt;VF / IE Rendering Issue&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2014:&lt;/strong&gt; &lt;a href=&quot;/2014/06/29/Force-Enterprise-Application-Platform/&quot;&gt;Force.com Application Platform&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2014:&lt;/strong&gt; &lt;a href=&quot;/2014/07/10/JavaScript-Part-One/&quot;&gt;JavaScript - Part One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2014:&lt;/strong&gt; &lt;a href=&quot;/2014/07/22/JavaScript-Part-Two/&quot;&gt;JavaScript - Part Two&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2014:&lt;/strong&gt; &lt;a href=&quot;/2014/09/14/Developing-on-Force.com/&quot;&gt;Developing on Force.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2014:&lt;/strong&gt; &lt;a href=&quot;/2014/09/18/JavaScript-Part-Three/&quot;&gt;JavaScript - Part Three&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2015:&lt;/strong&gt; &lt;a href=&quot;/2015/02/28/Installing-Rails-on-OSX/&quot;&gt;Installing Rails on OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2015:&lt;/strong&gt; &lt;a href=&quot;/2015/06/15/Jekyll-on-Heroku/&quot;&gt;Jekyll on Heroku&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2015:&lt;/strong&gt; &lt;a href=&quot;/2015/07/18/ES6-Part-One/&quot;&gt;ES6 - Part One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2015:&lt;/strong&gt; &lt;a href=&quot;/2015/07/20/Conf-Buddy/&quot;&gt;Conf Buddy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2015:&lt;/strong&gt; &lt;a href=&quot;/2015/07/20/Force-Enterprise-Standards/&quot;&gt;Force.com Standards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2015:&lt;/strong&gt; &lt;a href=&quot;/2015/08/03/ES6-Part-Two/&quot;&gt;ES6 - Part Two&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2015:&lt;/strong&gt; &lt;a href=&quot;/2015/12/27/Less-with-Grunt/&quot;&gt;Less with Grunt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2016:&lt;/strong&gt; &lt;a href=&quot;/2016/01/07/Auth0-and-Rails/&quot;&gt;Auth0 and Rails&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2016:&lt;/strong&gt; &lt;a href=&quot;/2016/01/10/Materialize-and-Force.com/&quot;&gt;Materialize and Force.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2016:&lt;/strong&gt; &lt;a href=&quot;/2016/02/07/Node-Architecture/&quot;&gt;Node Architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2016:&lt;/strong&gt; &lt;a href=&quot;/2016/02/20/Site-Builder/&quot;&gt;Site Builder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2016:&lt;/strong&gt; &lt;a href=&quot;/2016/03/18/Harp-and-Heroku/&quot;&gt;Harp and Heroku&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2016:&lt;/strong&gt; &lt;a href=&quot;/2016/04/30/GraphQL/&quot;&gt;GraphQL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2016:&lt;/strong&gt; &lt;a href=&quot;/2016/02/20/Site-Builder/&quot;&gt;Site Builder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2016:&lt;/strong&gt; &lt;a href=&quot;/2016/07/07/Python-Cheat-Sheet/&quot;&gt;Python Cheat Sheet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2016:&lt;/strong&gt; &lt;a href=&quot;/2016/08/12/Processing-p5/&quot;&gt;Processing (p5.js)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2017:&lt;/strong&gt; &lt;a href=&quot;/2017/03/09/GameMaker-Studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2017:&lt;/strong&gt; &lt;a href=&quot;/2017/05/12/Alfred-Snippets/&quot;&gt;Alfred Snippets&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2017:&lt;/strong&gt; &lt;a href=&quot;/2017/06/16/App-Cloud-Hybrid-Apps/&quot;&gt;App Cloud - Hybrid Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2017:&lt;/strong&gt; &lt;a href=&quot;/2017/06/18/Jekyll-and-Docker/&quot;&gt;Jekyll and Docker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2017:&lt;/strong&gt; &lt;a href=&quot;/2017/07/16/Blockchain-Playground/&quot;&gt;Blockchain Playground&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2017:&lt;/strong&gt; &lt;a href=&quot;/2017/07/27/Progressive-Web-Apps/&quot;&gt;Progressive Web Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2017:&lt;/strong&gt; &lt;a href=&quot;/2017/10/23/Blockchain-Playground-UI/&quot;&gt;Blockchian Playground UI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2017:&lt;/strong&gt; &lt;a href=&quot;/2017/12/20/Jamstack/&quot;&gt;JAMstack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2018:&lt;/strong&gt; &lt;a href=&quot;/2018/01/22/Jekyll-PWA/&quot;&gt;Jekyll PWA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2019:&lt;/strong&gt; &lt;a href=&quot;/2019/02/11/Tank-Arena/&quot;&gt;Tank Arena&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2019:&lt;/strong&gt; &lt;a href=&quot;/2019/06/02/Swift-Playgrounds/&quot;&gt;Swift Playgrounds&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2020:&lt;/strong&gt; &lt;a href=&quot;/2020/05/02/iPad-Development/&quot;&gt;iPad Development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Due to the nature of my work and personal projects, the majority of my coding is private (stored in private repositories). Therefore, sites like &lt;a href=&quot;https://coderstats.net/github/#mswbull&quot;&gt;CoderStats&lt;/a&gt; are unable to show a holistic view.&lt;/p&gt;

&lt;p&gt;As a result, I thought I would share my full statistics for &lt;a href=&quot;https://www.github.com/&quot;&gt;GitHub&lt;/a&gt;, including public and private contributions.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;2016:&lt;/strong&gt; 671 Contributions&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2017:&lt;/strong&gt; 81 Contributions&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2018:&lt;/strong&gt; 321 Contributions&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2019:&lt;/strong&gt; 221 Contributions&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2020:&lt;/strong&gt; 372 Contributions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;NOTE: Before 2016, my work used &lt;a href=&quot;https://bitbucket.org/product&quot;&gt;Atlassian Bitbucket&lt;/a&gt; as their SCM system, which I also used for personal projects (providing consistency). Unfortunately, when I switched to GitHub in late 2015, I did not retain my previous contributions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In reality, my full statistics are still not particularly impressive, but certainly demonstrate higher engagement than my public persona.&lt;/p&gt;

&lt;p&gt;The year 2016 was stand-out for me, where I was the lead developer on two enterprise web applications, delivered as part of an extra-curricular work assignment. I showcased these web applications in the articles “&lt;a href=&quot;/2015/07/20/Conf-Buddy/&quot;&gt;Conf Buddy&lt;/a&gt;” and “&lt;a href=&quot;/2016/02/20/Site-Builder/&quot;&gt;Site Builder&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/githubcontributions2016.jpg&quot; alt=&quot;GitHub Contributions 2016&quot; title=&quot;GitHub Contributions 2016&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In 2017, I contributed to several Blockchain projects, focused on education (e.g. Hash Trees, Consensus Algorithms, etc.) Specifically, &lt;a href=&quot;/2017/07/16/Blockchain-Playground/&quot;&gt;Blockchain Playground&lt;/a&gt; and &lt;a href=&quot;/2017/10/23/Blockchain-Playground-UI/&quot;&gt;Blockchian Playground UI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Regarding development language rankings, my private contributions align with my public persona, with a strong preference for &lt;a href=&quot;/tag/javascript/&quot;&gt;JavaScript&lt;/a&gt;. CoderStats flags “Yacc” (Yet Another Compiler-Compiler), which is actually &lt;a href=&quot;/2017/03/09/GameMaker-Studio-2/&quot;&gt;“GML” (GameMaker Language)&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;JavaScript&lt;/li&gt;
  &lt;li&gt;HTML&lt;/li&gt;
  &lt;li&gt;PHP&lt;/li&gt;
  &lt;li&gt;Ruby&lt;/li&gt;
  &lt;li&gt;Visualforce&lt;/li&gt;
  &lt;li&gt;Apex&lt;/li&gt;
  &lt;li&gt;Yacc (GML)&lt;/li&gt;
  &lt;li&gt;CSS&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Unsurprisingly, as my responsibilities at work (and home) have increased, my coding time has naturally decreased. However, even in my role as &lt;a href=&quot;/2018/09/23/cto/&quot;&gt;Chief Technology Officer (CTO)&lt;/a&gt;, I believe maintaining tangible skills is of critical importance. Therefore, I aim to explore one or two projects per year, generally targetting new technologies and/or new techniques that force me to stay “current” with the latest trends. For example, &lt;a href=&quot;/2019/06/02/Swift-Playgrounds/&quot;&gt;Apple Swift&lt;/a&gt; and &lt;a href=&quot;/2017/07/27/Progressive-Web-Apps/&quot;&gt;Progressive Web Apps&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;Finally, I am increasingly interested in supporting initiatives that promote coding with children and young adults, either through coding clubs, &lt;a href=&quot;/tag/hackathon/&quot;&gt;hackathons&lt;/a&gt; and coding applications/services. This includes &lt;a href=&quot;/2019/06/02/Swift-Playgrounds/&quot;&gt;exploring and creating coding challenges that I complete with my children&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Wed, 01 Jul 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/07/01/Coding-Stats/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/07/01/Coding-Stats/</guid>
      </item>
    
      <item>
        <title>WSL 2</title>
        <description>&lt;p&gt;In my previous articles “&lt;a href=&quot;/2019/04/12/wsl/&quot;&gt;WSL&lt;/a&gt;” and “&lt;a href=&quot;/2019/12/08/VMware-Workstation-Pro/&quot;&gt;VMware Workstation Pro&lt;/a&gt;”, I described my experience running Linux on Windows to enable a POSIX compatible development environment.&lt;/p&gt;

&lt;p&gt;I leverage a combination of &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/wsl/about&quot;&gt;Windows Subsystem for Linux (WSL)&lt;/a&gt;, &lt;a href=&quot;https://www.lifeintech.com/tag/linux/&quot;&gt;Linux&lt;/a&gt; Virtual Machines running on &lt;a href=&quot;https://www.vmware.com/uk/products/workstation-pro.html&quot;&gt;VMware Workstation Pro&lt;/a&gt; and &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;. Unfortunately, I have yet to find a perfect workflow, with each technology introducing different limitations regarding performance, battery life, interoperability, stability, etc.&lt;/p&gt;

&lt;p&gt;With this in mind, I have been eagerly anticipating the general availability of Windows Subsystem for Linux 2 (WSL 2), which for the first time brings a native Linux kernel to Windows. On paper, this mitigates many of my concerns, whilst also removing the need for heavy-weight virtualisation technologies to run Docker, etc.&lt;/p&gt;

&lt;p&gt;In the &lt;a href=&quot;https://devblogs.microsoft.com/commandline/announcing-wsl-2/&quot;&gt;annoucement blog post&lt;/a&gt;, Microsoft made some bold claims regarding potential performance improvements.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Initial tests that we’ve run have WSL 2 running up to 20x faster compared to WSL 1 when unpacking a zipped tarball, and around 2-5x faster when using git clone, npm install and cmake on various projects.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I hope these performance improvements translate to my build process, specifically when using Docker.&lt;/p&gt;

&lt;p&gt;This article will cover the WSL 2  installation process, as well as the results from my initial testing.&lt;/p&gt;

&lt;h3 id=&quot;installing-wsl-2&quot;&gt;Installing WSL 2&lt;/h3&gt;

&lt;p&gt;To get started, ensure you are running Windows 10 2004 (AKA 20H1). If not, it can be downloaded via Windows Update and/or the “&lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows10&quot;&gt;Download Windows 10&lt;/a&gt;” website.&lt;/p&gt;

&lt;p&gt;Although not required, I would also recommend installing the new &lt;a href=&quot;https://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk701?activetab=pivot:overviewtab&quot;&gt;Windows Terminal&lt;/a&gt;, which offers native WSL support.&lt;/p&gt;

&lt;p&gt;Once ready, open PowerShell as an administrator and run the following commands.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Restart your system, allowing the installation of WSL and the Windows Virtual Machine Platform to complete.&lt;/p&gt;

&lt;p&gt;Install the latest version of the WSL 2 Linux Kernal from the &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/wsl/wsl2-kernel&quot;&gt;Microsoft website&lt;/a&gt; using the link below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi&quot;&gt;https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next, re-open PowerShell as an administrator and set WSL 2 as the default using the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;wsl --set-default-version 2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
WSL 2 is now setup, meaning it is time to install a Linux Distrbution from the &lt;a href=&quot;https://aka.ms/wslstore&quot;&gt;Windows Store&lt;/a&gt;. There are many options (&lt;a href=&quot;https://www.microsoft.com/store/apps/9n6svws3rx71&quot;&gt;Ubuntu&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/store/apps/9n6gdm4k2hnc&quot;&gt;Fedora&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/store/apps/9MSVKQC78PK6&quot;&gt;Debian&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/store/apps/9NJFZK00FGKV&quot;&gt;OpenSUSE&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/store/apps/9NJFZK00FGKV&quot;&gt;Kali&lt;/a&gt;), but I generally select the latest LTS release of Ubuntu. At the time of writting this is &lt;a href=&quot;https://www.microsoft.com/store/apps/9n6svws3rx71&quot;&gt;Ubuntu 20.04&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once installed, you will be prompted to create a username and password for the Linux distribution.&lt;/p&gt;

&lt;p&gt;Finally, it is worth confirming that your new Linux distribution is running WSL 2. This can be achieved by running the following PowerShell command as an administrator.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;wsl --list --verbose
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
If the version of WSL is incorrect, it can be easily modified by running the following PowerShell command as an administrator.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;wsl --set-version &amp;lt;distribution name&amp;gt; &amp;lt;versionNumber&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
You can now access WSL 2 by opening the Windows Terminal and selecting your Linux distribution (e.g. Ubuntu 20.04) as a new tab.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wsl201.jpg&quot; alt=&quot;WSL 2&quot; title=&quot;WSL 2&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;testing-wsl-2&quot;&gt;Testing WSL 2&lt;/h3&gt;

&lt;p&gt;With WSL 2 up and running, I installed the latest version of &lt;a href=&quot;https://www.docker.com/products/docker-desktop&quot;&gt;Docker Desktop&lt;/a&gt; and &lt;a href=&quot;https://docs.docker.com/docker-for-windows/wsl/&quot;&gt;confirmed that it was configured to utilise WSL 2 as the backend&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I launched &lt;a href=&quot;https://docs.docker.com/compose/&quot;&gt;Docker Compose&lt;/a&gt;, which is configured to automatically build my application services, including the runtime environment (&lt;a href=&quot;https://www.ruby-lang.org/&quot;&gt;Ruby&lt;/a&gt;) and Static Site Generator (&lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Running Docker on Hyper-V with Windows 1909, the Jekyll build process would take on average 175 seconds to complete. Outlined below was the result for WSL 2.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wsl202.jpg&quot; alt=&quot;WSL 2&quot; title=&quot;WSL 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, not what I had hoped. To rule out a one-time anomaly, I re-ran the build process several times, achieving an average of 503 seconds.&lt;/p&gt;

&lt;p&gt;At this point, I knew I had something configured incorrectly and hit the forums.&lt;/p&gt;

&lt;p&gt;Thankfully, the answer was fairly obvious, I had cloned my Git repository on the Windows filesystem, which meant that WSL 2 was using a mount point to access the files. This approach has a significant I/O performance impact, actually worse than running Docker on Hyper-V.&lt;/p&gt;

&lt;p&gt;To remediate, I cloned my Git repository again, this time natively within the Linux filesystem. The improvement was immediate and significant.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wsl203.jpg&quot; alt=&quot;WSL 2&quot; title=&quot;WSL 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At 73 seconds, the build process is now over 50% faster than Docker on Hyper-V with Windows 1909.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wsl204.jpg&quot; alt=&quot;WSL 2&quot; title=&quot;WSL 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thanks to the new Windows Terminal, accessing and manipulating files within the Linux filesystem is very simple. You can also quickly jump to an explorer view if you prefer a GUI. Simply navigate to the required folder and run the following command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;explorer.exe .
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This will open a Windows Explorer at the desired location.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, I have been impressed with WSL 2. Not only does it demonstrate Microsoft’s commitment to Linux on Windows, but also makes the developer experience comparable to using macOS and/or a native Linux distribution.&lt;/p&gt;

&lt;p&gt;This is an impressive outcome, arguably positioning Windows as the most versatile operating system for developers.&lt;/p&gt;
</description>
        <pubDate>Tue, 12 May 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/05/12/WSL-2/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/05/12/WSL-2/</guid>
      </item>
    
      <item>
        <title>IT Ecosystem</title>
        <description>&lt;p&gt;In January 2019, I started a series of articles that explored the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;The articles predominantly focused on the architecture, technology and positioning of key capabilities, but also (where appropriate) referenced facilitating processes and methodologies.&lt;/p&gt;

&lt;p&gt;Recognising that all good IT decisions must include business context, I defined the following hypothetical business characteristics.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Global Business (Americas, EMA, APAC)&lt;/li&gt;
  &lt;li&gt;Regulated Industry (Food and Drug)&lt;/li&gt;
  &lt;li&gt;Customers in 90+ Countries&lt;/li&gt;
  &lt;li&gt;Value Chain includes R&amp;amp;D, Manufacturing, Commercial and Global Services&lt;/li&gt;
  &lt;li&gt;15,000+ Total Users (Employees and Contractors)&lt;/li&gt;
  &lt;li&gt;170+ IT Users (Employees and Contractors)&lt;/li&gt;
  &lt;li&gt;50+ Physical Sites Globally&lt;/li&gt;
  &lt;li&gt;10+ R&amp;amp;D and Manufacturing Sites (24x7 Operation)&lt;/li&gt;
  &lt;li&gt;Established Traditional Business Model&lt;/li&gt;
  &lt;li&gt;Emerging Digital Business Model&lt;/li&gt;
  &lt;li&gt;$5Billion Revenue&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I used these characteristics to inform my proposed architecture, ensuring the content was grounded by a “real-world” scenario, hopefully making it relatable and credible.&lt;/p&gt;

&lt;p&gt;Up to now, I have written twelve articles (listed below), covering a wide range of topics. Although each article covers a specific area, they are best reviewed in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Part One: &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Two: &lt;a href=&quot;/2019/02/09/Service-Delivery/&quot;&gt;Service Delivery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Three: &lt;a href=&quot;/2019/03/01/SD-WAN/&quot;&gt;SD-WAN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Four: &lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Five: &lt;a href=&quot;/2019/06/08/Automation/&quot;&gt;Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Six: &lt;a href=&quot;/2019/09/11/Device-as-a-Service/&quot;&gt;Device-as-a-Service&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Seven: &lt;a href=&quot;/2019/09/17/Identity-Access-Management/&quot;&gt;Identity Access Management&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Eight: &lt;a href=&quot;/2019/10/02/Unified-Communications/&quot;&gt;Unified Communications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Nine: &lt;a href=&quot;/2019/11/08/Line-of-Business-Apps/&quot;&gt;Line of Business Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Ten: &lt;a href=&quot;/2019/12/11/Architecture-Community/&quot;&gt;Architecture Community&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Eleven: &lt;a href=&quot;/2020/03/02/Data-Protection/&quot;&gt;Data Protection&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Twelve: &lt;a href=&quot;/2020/04/06/SIAM/&quot;&gt;SIAM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part Thirteen: &lt;a href=&quot;/2020/05/12/IT-Ecosystem/&quot;&gt;IT Ecosystem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This final article (part thirteen) aims to conclude the series (at least for now), providing a summary of the decisions, which contributed to my vision of a Modern IT Ecosystem.&lt;/p&gt;

&lt;h3 id=&quot;modern-it-ecosystem&quot;&gt;Modern IT Ecosystem&lt;/h3&gt;

&lt;p&gt;In the article “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, I shared the following “marchitecture” diagram, which I aimed to highlight my desired end-state.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/itecosystem.jpg&quot; alt=&quot;IT Ecosystem&quot; title=&quot;IT Ecosystem&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Throughout the past year, I have essentially populated this diagram, detailing the architecture, positioning technologies, as well as highlighting the dependencies and facilitating processes.&lt;/p&gt;

&lt;p&gt;The diagram below acts as a conclusion, overlaying the technologies and vendors that I have proposed throughout the series. The details and rationale for each decision can be found within the individual articles.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/itecosystemvendors.jpg&quot; alt=&quot;IT Ecosystem (Vendors)&quot; title=&quot;IT Ecosystem (Vendors)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the diagram, with my previously described business characteristics in mind, a modern IT ecosystem can quickly become a complex landscape, supported by a wide range of technologies and vendors. With that said, I believe the philosophy, principles and declarations outlined in the article “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;” provided a strong foundation for decision making, helping to drive synergy, improve efficiency and reduce technical debt.&lt;/p&gt;

&lt;p&gt;Although I feel confident about my proposed architecture, there are many areas and details I simply did not have the time to document. For example, areas such as Domain Name Service (DNS) provider, Public Key Infrastructure (PKI), Privileged Access Management (PAM), etc. These areas (alongside many others) support critical capabilities that must exist to enable a secure, scalable IT ecosystem.&lt;/p&gt;

&lt;p&gt;It is also worth noting that a lot can change within a year, therefore technologies positioned as part of my proposed “modern” IT ecosystem have already been superseded, etc. For example, I had positioned RSA Identity Governance and Access (IGL) as part of my proposed &lt;a href=&quot;/2019/09/17/Identity-Access-Management/&quot;&gt;Identity Access Management&lt;/a&gt; architecture. Although still a perfectly viable option, part of my decision was driven by the desire to maximise the investment with &lt;a href=&quot;https://www.delltechnologies.com/&quot;&gt;Dell Technologies&lt;/a&gt;. &lt;a href=&quot;https://uk.reuters.com/article/uk-dell-tech-divestiture/dell-to-sell-cybersecurity-unit-for-2-08-billion-idUKKBN20C20N&quot;&gt;In February 2020, Dell Technologies announced their intent to divest RSA&lt;/a&gt;, which would reduce the value proposition associated with my decision.&lt;/p&gt;

&lt;p&gt;Cloud is another area that continues to evolve quickly, with new capabilities being added at a furious pace. For example, &lt;a href=&quot;https://www.microsoft.com/&quot;&gt;Microsoft&lt;/a&gt; continues to expand and enhance services within &lt;a href=&quot;https://www.office.com/&quot;&gt;Office 365&lt;/a&gt; and &lt;a href=&quot;https://azure.microsoft.com/&quot;&gt;Azure&lt;/a&gt;, which could potentially be used to replace third-party solutions, enabling a better user experience and reducing costs (especially if bundled under the Microsoft 365 E5 License).&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, I hope the “thought experiment” documented throughout this series has provided a useful perspective regarding the creation of a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;I do not claim that my proposed architecture is authoritative (there is an infinite number of options), especially considering all IT decisions must be made in the context of a specific business outcome, with appropriate situational awareness.&lt;/p&gt;

&lt;p&gt;With that said, recognising the previously defined business characteristics, I believe this series has accomplished my goal of establishing a robust and highly flexible IT ecosystem for a traditional enterprise business, with emerging digital business opportunities.&lt;/p&gt;

&lt;p&gt;For example, prioritising modern technologies and techniques, such as the use of Public Cloud, following an API-Centric Architecture that is Software-Defined and highly automated. This positioning, combined with pragmatic architecture decisions (e.g. Colocation Data Centres) help ensure the proposed IT ecosystem could support almost any workload (legacy or modern).&lt;/p&gt;

&lt;p&gt;Finally, it is important to recognise that although this series has predominantly focused on architecture, this is only one piece of the puzzle, with the processes, methodologies and organisation design being critical when looking to unlock the total value proposition. I covered a few of these areas, but would likely need to write a separate series to provide the required level of detail (maybe something for the future).&lt;/p&gt;

</description>
        <pubDate>Tue, 12 May 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/05/12/IT-Ecosystem/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/05/12/IT-Ecosystem/</guid>
      </item>
    
      <item>
        <title>iPad Development</title>
        <description>&lt;p&gt;In my article “&lt;a href=&quot;/2020/04/24/iPad-for-the-Enterprise-2020/&quot;&gt;iPad for the Enterprise (2020)&lt;/a&gt;”, I shared my workaround to enable offline (local) software development on the iPad. This involved the use of a &lt;a href=&quot;https://www.raspberrypi.org/&quot;&gt;Raspberry Pi 4&lt;/a&gt;, acting as a portable Linux server running &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This article will explain how I achieved this setup, which is not something I would necessarily recommend, but was a fun little technology project.&lt;/p&gt;

&lt;p&gt;First, why is this workaround even required? Unfortunately, due to Apple iPadOS restrictions, it is almost impossible to set up, customise and run a local development environment (e.g. &lt;a href=&quot;https://nodejs.org/&quot;&gt;Node.js&lt;/a&gt;, &lt;a href=&quot;https://www.ruby-lang.org/&quot;&gt;Ruby&lt;/a&gt;) on the iPad. Some applications do let you execute code locally (e.g. &lt;a href=&quot;https://apps.apple.com/us/app/pythonista-3/id1085978097&quot;&gt;Pythonista&lt;/a&gt;), but these are often limited to prototyping, automation or simple code snippets.&lt;/p&gt;

&lt;p&gt;The simplest workaround to this restriction would be to connect to a remote development environment, for example, &lt;a href=&quot;https://www.aws.amazon.com/&quot;&gt;AWS&lt;/a&gt;, &lt;a href=&quot;https://cloud.google.com/&quot;&gt;Google Cloud&lt;/a&gt;, &lt;a href=&quot;https://www.azure.com/&quot;&gt;Azure&lt;/a&gt;, &lt;a href=&quot;https://www.heroku.com/&quot;&gt;Heroku&lt;/a&gt;, etc. However, this would require a persistent Internet connection, which is not something I can always guarantee (especially when travelling). Therefore, I desire a local development environment that can be used offline, without an external power source.&lt;/p&gt;

&lt;p&gt;When developing on the iPad, I use the following applications:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Git Client: &lt;a href=&quot;https://workingcopyapp.com/&quot;&gt;Wroking Copy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Code Editor: &lt;a href=&quot;https://panic.com/code-editor/&quot;&gt;Coda&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Test Editor: &lt;a href=&quot;https://ia.net/writer&quot;&gt;iA Writer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SSH: &lt;a href=&quot;https://termius.com/&quot;&gt;Termius&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When combined, these applications enable a reasonable developer workflow (still limited by PC standards).&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Clone git repository from &lt;a href=&quot;https://www.github.com/&quot;&gt;GitHub&lt;/a&gt; using &lt;a href=&quot;https://workingcopyapp.com/&quot;&gt;Working Copy&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Access the cloned repository via &lt;a href=&quot;https://support.apple.com/en-us/HT206481&quot;&gt;Apple Files&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Modify the required files (&lt;a href=&quot;https://panic.com/code-editor/&quot;&gt;Coda&lt;/a&gt; and/or &lt;a href=&quot;https://ia.net/writer&quot;&gt;iA Writer&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;Push the changes back to GitHub using &lt;a href=&quot;https://workingcopyapp.com/&quot;&gt;Working Copy&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Trigger the remote build process (if required) using &lt;a href=&quot;https://termius.com/&quot;&gt;Termius&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My frustration was step 5, the remote build process, which is what I mitigated through the use of a Raspberry Pi 4, acting as portable Linux server running Docker.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadenterprise09.jpg&quot; alt=&quot;iPad Pro and Rspberry Pi 4&quot; title=&quot;iPad Pro and Rspberry Pi 4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Raspberry Pi 4 is well-positioned for this job, as it is small, light and cheap, but also very capable (Quad-Core CPU, 4GB RAM, SD-Card Reader). Thanks to the USB-C port, it is also possible to set up a physical network connection and power the device directly from the iPad. This is the “unique” selling point that removes the need for an external network (e.g. Wireless) and an external power source.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NOTE: I have only tested this setup using an iPad Pro (4th Generation - 2020), which comes equipped with a USB-C port. I suspect it would not be possible to replicate with an iPad equipped with a Lightning port.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;hardware-requirements&quot;&gt;Hardware Requirements&lt;/h3&gt;

&lt;p&gt;To get started, I purchased the following hardware.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://thepihut.com/collections/raspberry-pi/products/raspberry-pi-4-model-b&quot;&gt;Raspberry Pi 4 Model B (4GB RAM)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thepihut.com/collections/raspberry-pi-cases/products/raspberry-pi-4-case?variant=31140399874110&quot;&gt;Raspberry Pi 4 Case (Blank and Grey)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thepihut.com/collections/raspberry-pi-sd-cards-and-adapters/products/noobs-preinstalled-sd-card?variant=31604721287230&quot;&gt;Micro SD Card (64GB)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amazon.co.uk/AmazonBasics-USB-Type-C-2-0-Cable/dp/B01GGKYZQM/&quot;&gt;USB-C to USB-C Cable&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although not required in the long-term, I also purchased the following peripherals to help with the initial setup.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;USB keyboard&lt;/li&gt;
  &lt;li&gt;USB Mouse&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amazon.co.uk/Cable-Matters-Micro-Adapter-Inches/dp/B07JWDGXCV/&quot;&gt;Micro HDMI to HDMI Adapter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thepihut.com/collections/raspberry-pi-power-supplies/products/raspberry-pi-psu-uk?variant=20064070303806&quot;&gt;Raspberry Pi 15.3W USB-C Power Supply (Black)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The total cost was approximately £60, which is not bad when you consider this is a one-time payment, compared against the ongoing compute/storage costs associated with running a Linux VM in the cloud.&lt;/p&gt;

&lt;p&gt;The build process is very easy, simply insert the PCB into the case and load the Micro SD Card. For the initial setup, I connected a Power Supply, USB Mouse, USB Keyboard and HDMI monitor. Once the setup is complete, the peripherals can be removed.&lt;/p&gt;

&lt;h3 id=&quot;software-setup&quot;&gt;Software Setup&lt;/h3&gt;

&lt;p&gt;I chose to install &lt;a href=&quot;https://www.raspberrypi.org/downloads/raspbian/&quot;&gt;Raspbian Buster&lt;/a&gt; on the Raspberry Pi 4. The installation process is very simple, made even easier if you purchase a Micro SD Card from “&lt;a href=&quot;https://thepihut.com/&quot;&gt;The PiHut&lt;/a&gt;”, which comes preinstalled the &lt;a href=&quot;https://www.raspberrypi.org/downloads/noobs/&quot;&gt;NOOBS Raspberry Pi operating system&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once complete, I executed the following eleven steps (leveraging &lt;a href=&quot;https://www.hardill.me.uk/wordpress/2019/11/02/pi4-usb-c-gadget/&quot;&gt;Ben Hardill’s guide&lt;/a&gt;) to configure the Raspbian Pi to support SSH and network connectivity over USB-C.&lt;/p&gt;

&lt;p&gt;To simplify the process, I removed the SD Card and completed the steps from a Windows PC. The entire process took approximately 15mins.&lt;/p&gt;

&lt;p&gt;Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dtoverlay=dwc2&lt;/code&gt; to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/boot/config.txt&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modules-load=dwc2&lt;/code&gt; to the end of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/boot/cmdline.txt&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Enable ssh by creating an empty file called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ssh&lt;/code&gt; in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/boot&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;libcomposite&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/modules&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;denyinterfaces usb0&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/dhcpcd.conf&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Install dnsmasq with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo apt-get install dnsmasq&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Create &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/dnsmasq.d/usb&lt;/code&gt; with following content.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;interface=usb0  
dhcp-range=10.10.0.2,10.10.0.6,255.255.255.248,1h  
dhcp-option=3  
leasefile-ro  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Create &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/network/interfaces.d/usb0&lt;/code&gt; with the following content.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;auto usb0  
allow-hotplug usb0  
iface usb0 inet static  
  address 10.10.0.1  
  netmask 255.255.255.248  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Create &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/root/usb.sh&lt;/code&gt; with the following content.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#!/bin/bash  
cd /sys/kernel/config/usb_gadget/  
mkdir -p pi4  
cd pi4  
echo 0x1d6b &amp;gt; idVendor # Linux Foundation  
echo 0x0104 &amp;gt; idProduct # Multifunction Composite Gadget  
echo 0x0100 &amp;gt; bcdDevice # v1.0.0  
echo 0x0200 &amp;gt; bcdUSB # USB2  
echo 0xEF &amp;gt; bDeviceClass  
echo 0x02 &amp;gt; bDeviceSubClass  
echo 0x01 &amp;gt; bDeviceProtocol  
mkdir -p strings/0x409  
echo &quot;fedcba9876543211&quot; &amp;gt; strings/0x409/serialnumber  
echo &quot;Ben Hardill&quot; &amp;gt; strings/0x409/manufacturer  
echo &quot;PI4 USB Device&quot; &amp;gt; strings/0x409/product  
mkdir -p configs/c.1/strings/0x409  
echo &quot;Config 1: ECM network&quot; &amp;gt; configs/c.1/strings/0x409/configuration  
echo 250 &amp;gt; configs/c.1/MaxPower  
# Add functions here  
# see gadget configurations below  
# End functions  
mkdir -p functions/ecm.usb0  
HOST=&quot;00:dc:c8:f7:75:14&quot; # &quot;HostPC&quot;  
SELF=&quot;00:dd:dc:eb:6d:a1&quot; # &quot;BadUSB&quot;  
echo $HOST &amp;gt; functions/ecm.usb0/host_addr  
echo $SELF &amp;gt; functions/ecm.usb0/dev_addr  
ln -s functions/ecm.usb0 configs/c.1/  
udevadm settle -t 5 || :  
ls /sys/class/udc &amp;gt; UDC  
ifup usb0  
service dnsmasq restart  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Make &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/root/usb.sh&lt;/code&gt; executable with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chmod +x /root/usb.sh&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sh /root/usb.sh&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/rc.local&lt;/code&gt; before &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;exit 0&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Once complete, I shut down the Raspberry Pi and connected it via a USB-C to USB-C cable to the iPad Pro. The Rasberry Pi booted automatically and after a few minutes was accessible from the iPad via SSH using the previously configured IP Address (10.10.0.1).&lt;/p&gt;

&lt;p&gt;At this point, the Raspberry Pi can be used like any other Linux based server, installing any required software, etc. To further expand the value, I also configured screen sharing and file sharing, which opens the door to other use cases outside of software development (e.g. file backup, screen sharing, media server, etc.)&lt;/p&gt;

&lt;p&gt;There are multiple ways to leverage this setup to complete offline (local) software development on the iPad. I have been following the developer workflow outlined below.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Clone git repository from &lt;a href=&quot;https://www.github.com/&quot;&gt;GitHub&lt;/a&gt; using &lt;a href=&quot;https://workingcopyapp.com/&quot;&gt;Working Copy&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Access the cloned repository via &lt;a href=&quot;https://support.apple.com/en-us/HT206481&quot;&gt;Apple Files&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Modify the required files (&lt;a href=&quot;https://panic.com/code-editor/&quot;&gt;Coda&lt;/a&gt; and/or &lt;a href=&quot;https://ia.net/writer&quot;&gt;iA Writer&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;Copy the files to a working directory on the Raspberry Pi.&lt;/li&gt;
  &lt;li&gt;Trigger the build process (if required) on the Raspberry Pi using &lt;a href=&quot;https://termius.com/&quot;&gt;Termius&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Push the changes back to GitHub using &lt;a href=&quot;https://workingcopyapp.com/&quot;&gt;Working Copy&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As stated in the introduction, I would not necessarily recommend this setup, as anyone looking to develop offline (local) would be better served by a budget Windows/Linux laptop. However, it does demonstrate what is possible if forced to use an iPad.&lt;/p&gt;
</description>
        <pubDate>Sat, 02 May 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/05/02/iPad-Development/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/05/02/iPad-Development/</guid>
      </item>
    
      <item>
        <title>iPad for the Enterprise (2020)</title>
        <description>&lt;p&gt;In 2010, I wrote the article “&lt;a href=&quot;/2010/06/26/ipad-for-the-enterprise/&quot;&gt;iPad for the Enterprise&lt;/a&gt;”, which explored the viability of using an iPad as a business laptop replacement. At the time, the iPad hardware demonstrated potential but was limited by the software (operating system and applications).&lt;/p&gt;

&lt;p&gt;To overcome the software limitation, I positioned Virtual Desktop Infrastructure (VDI), which essentially transformed the iPad into a “dumb terminal” running Microsoft Windows. Although this approach enabled the iPad to run enterprise applications, the user impact was significant, with complete reliance on the network, a non-touch operating system and lack of native hardware support. In short, the use of VDI was technically viable, but not desirable.&lt;/p&gt;

&lt;p&gt;Ten years later and the iPad has come a long way! For example, in 2019 Apple released a dedicated iPad operating system (&lt;a href=&quot;https://www.apple.com/uk/ipados/&quot;&gt;iPadOS&lt;/a&gt;), which incorporated iPad specific features (e.g. Multi-Tasking, Split View, Widgets, etc.) The application ecosystem has also matured significantly, with a wide range of native applications that are optimised for iPadOS, including &lt;a href=&quot;https://www.microsoft.com/en-gb/microsoft-365&quot;&gt;Microsoft Office 365&lt;/a&gt;, &lt;a href=&quot;https://www.adobe.com/uk/products/photoshop/ipad.html&quot;&gt;Adobe Photoshop&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;Additionally, with the recent (MAR-2020) release of iPadOS 13.4, Apple enabled native mouse/trackpad support. To complement this release, Apple also announced a new iPad case, known as the &lt;a href=&quot;https://www.apple.com/uk/ipad-keyboards/&quot;&gt;Magic Keyboard&lt;/a&gt;, which for the first time includes an integrated trackpad.&lt;/p&gt;

&lt;p&gt;In my opinion, these milestones demonstrate a shift in mentality from Apple, which is slowly transforming the iPad, unlocking the previously described potential and blurring the lines between a tablet and a laptop.&lt;/p&gt;

&lt;p&gt;With this in mind, this article will revisit the question posed in my &lt;a href=&quot;/2010/06/26/ipad-for-the-enterprise/&quot;&gt;2010 article&lt;/a&gt;. In a business context, could an iPad replace a laptop?&lt;/p&gt;

&lt;p&gt;To answer this question, throughout APR-2020, I have been using an iPad as my daily driver, where possible, replacing Windows 10, macOS and Linux.&lt;/p&gt;

&lt;p&gt;As highlighted in the article “&lt;a href=&quot;/2020/01/06/My-Setup-2020/&quot;&gt;My Setup&lt;/a&gt;”, my common workflow includes productivity and collaboration tasks, software development, virtual labs, photo editing and video editing.&lt;/p&gt;

&lt;p&gt;To give myself the best chance of success, I selected the iPad Pro 12.9‑inch Wi-Fi 256GB (4th Generation - 2020), including the new Magic Keyboard.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadenterprise01.jpg&quot; alt=&quot;Apple iPad Pro&quot; title=&quot;Apple iPad Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It should be noted that this was not a cheap setup, with the iPad Pro costing £1069 and the Magic Keyboard £349, resulting in an eye-watering total of £1418. Although this is cheaper than my &lt;a href=&quot;/2019/11/18/Razer-Blade/&quot;&gt;Razer Blade Advanced&lt;/a&gt; (£2700), it is more expensive than a base MacBook Pro 13-inch (£1299).&lt;/p&gt;

&lt;p&gt;With this framing in mind, the rest of this article will summarise my findings, covering the hardware, software and daily usage.&lt;/p&gt;

&lt;h3 id=&quot;hardware&quot;&gt;Hardware&lt;/h3&gt;

&lt;p&gt;The iPad Pro is a phenomenal piece of hardware, arguably the most well built and futuristic product I own. The Apple A12Z Bionic Processor, although only a minor improvement over the previous generation, is still significantly ahead of the competition, effortlessly powering the 2732x2048 resolution display at 120Hz.&lt;/p&gt;

&lt;p&gt;My only minor frustration, similar to the old MacBook 12-inch, is the single USB-C port, which can be restrictive when attempting to work with multiple peripherals. Therefore, like most Apple products, the iPad does not escape “dongle life”.&lt;/p&gt;

&lt;p&gt;The new Magic Keyboard is an unusual product, featuring a “floating” cantilever design that allows the iPad viewing angle to be adjusted incrementally. This is a significant step forward from the previous Smart Keyboard Folio, which only supports two viewing angles (both titled backwards). The Magic Keyboard also features a full “laptop-style” keyboard and small trackpad, which both work very well, with the keyboard feeling equivalent to the scissor switches found on the MacBook Pro 16-inch. The Magic Keyboard also includes a second USB-C port, but it can only be used for charging, not data (which is disappointing).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadenterprise02.jpg&quot; alt=&quot;Apple iPad Pro&quot; title=&quot;Apple iPad Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In use, the Magic Keyboard exudes the Apple brand, thanks to the unique aesthetic, high-quality materials and plenty of magnets that ensure the iPad attaches with a reassuring “thud”. The “floating” design means the iPad can also be removed with ease, which I found was my preferred approach when switching from a fixed location to roaming (using the Magic Keyboard more like a dock).&lt;/p&gt;

&lt;p&gt;With this in mind, it is worth noting that the combined weight of the iPad Pro and Magic Keyboard is 1351 grams, which is heavier than a lot of ultrabooks (including the MacBook Air). This would not ordinarily be an issue, but when the iPad is attached, the combined product is top-heavy, making it difficult to use from your lap (something I often require when travelling, etc.)&lt;/p&gt;

&lt;p&gt;Another disappointment is the limited total viewing angle, which is restricted to 130 degrees. At this price, I would have expected the Magic Keyboard to at least rival the Microsoft Surface Pro range (165 degrees) and support an “easel mode” for drawing, etc. Thankfully, I have found a workaround, by placing the iPad on the keyboard, resting against the bottom ridge (see image below). I assume this approach was not a conscious design decision from Apple, but it works surprisingly well.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadenterprise03.jpg&quot; alt=&quot;Apple iPad Pro&quot; title=&quot;Apple iPad Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, even with the previously described limitations/frustrations, the combined iPad Pro and Magic Keyboard hardware are excellent. The iPad itself remains the best tablet on the market, providing enough processing horsepower for almost any workload, assuming the software can utilise it.&lt;/p&gt;

&lt;h3 id=&quot;software&quot;&gt;Software&lt;/h3&gt;

&lt;p&gt;I have previously shared my commonly used software for different operating systems (links below), including additional details regarding my use of Linux package managers.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/14/macos-and-windows/&quot;&gt;MacOS and Windows&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/07/02/linux-software/&quot;&gt;Linux Software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/22/Flatpak-and-Snappy/&quot;&gt;Flatpak and Snappy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this in mind, I have added my chosen iPadOS applications to the table below. It should be noted that I currently have 79 applications installed on my iPad, therefore the table below only highlights applications that support my common workflow.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadossoftware01.jpg&quot; alt=&quot;iPadOS Software&quot; title=&quot;iPadOS Software&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although there are still gaps, the iPadOS application ecosystem has come a long way over the past decade. In the context of my required capabilities, 70% can be supported by native applications, many of which are optimised for the iPad, including Split View, Widgets, etc.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadenterprise04.jpg&quot; alt=&quot;iPadOS Split View&quot; title=&quot;iPadOS Split View&quot; /&gt;&lt;/p&gt;

&lt;p&gt;From a business perspective, the introduction of native Microsoft Office 365 applications was a significant step forward (I live in hope for a Linux release). Unfortunately, the applications do not have feature parity with their Windows counterparts and can be cumbersome to use. For example, managing email and attachments within Outlook can be a frustrating experience.&lt;/p&gt;

&lt;p&gt;Recognising the “pro” moniker associated with the iPad, it is ironic that the application gaps are mostly associated with “pro” capabilities. For example, &lt;a href=&quot;https://www.apple.com/imovie/&quot;&gt;Apple iMovie&lt;/a&gt; on the iPad works very well, but there is no &lt;a href=&quot;https://www.apple.com/final-cut-pro/&quot;&gt;Apple Final Cut Pro&lt;/a&gt; equivalent. The same can be said for visual effects and software development, which due to the inherent restrictions imposed by Apple on iPadOS, developers lack the required API’s to enable advanced features. I will highlight the impact of these restrictions in the next section.&lt;/p&gt;

&lt;p&gt;Finally, it is worth noting that there are a lot of great iPadOS applications that are exclusive to the iPad, which uniquely take advantage of the hardware. For example, I am not an artist, but &lt;a href=&quot;https://procreate.art/&quot;&gt;Procreate&lt;/a&gt; is a phenomenal application when combined with the &lt;a href=&quot;https://www.apple.com/apple-pencil/&quot;&gt;Apple Pencil&lt;/a&gt;. My wife &lt;a href=&quot;/2016/03/31/ipad-pro/&quot;&gt;previously demonstrated what is possible using Procreate and the first generation iPad Pro&lt;/a&gt;. Other unique areas include Augmented Reality (AR) experiences and games, which take advantage of the excellent cameras, LiDAR scanner, motion sensors and ProMotion (120Hz) display.&lt;/p&gt;

&lt;h3 id=&quot;daily-usage&quot;&gt;Daily Usage&lt;/h3&gt;

&lt;p&gt;Like most Apple products, the iPad “just works”, with the hardware and software operating in perfect unity. In my opinion, the hardware is still limited by the software, but the gap is reduced with each iPadOS release.&lt;/p&gt;

&lt;p&gt;Apple should also be commended for its mouse/keyboard support. It would have been easy for Apple to add a standard cursor, similar to what is found on macOS. However, Apple decided to re-think mouse/trackpad support for a “touch-first” device and I feel they have achieved perfection on the first try. Instead of a static cursor, the mouse/trackpad support appears as a circular dot that is context-aware, meaning it snaps and morphs depending on the specific use case. This approach feels perfectly at home on the iPad, acting as a natural extension of the touch controls. I am excited to see how developers embrace mouse/trackpad support over the coming months, especially with productivity software such as Microsoft Office 365, etc.&lt;/p&gt;

&lt;p&gt;Another strength area for the iPad is security and management, enabled through the hardware and software (e.g. secure enclave, sandboxing, etc.) As a business device, these robust controls make the iPad one of the most secure and easy to manage end-user devices available. When combined with the exceptional hardware performance, strong battery life and the inclusion of mouse/trackpad support, the iPad finally feels ready to take on business workloads.&lt;/p&gt;

&lt;p&gt;Regarding my setup, the image below highlights my home page, where you will notice a large number of Dock items, which is the opposite of my setup on macOS, where I don’t use the Dock.&lt;/p&gt;

&lt;p&gt;With iPadOS, the Dock is a critical part of the multi-tasking workflow, leveraging the “swipe up” gesture to reveal the Dock without losing focus on the current application. At which point, other applications located in the Dock can be dragged into Split View, etc. As someone who prefers the keyboard, this requirement and the cumbersome experience, makes me miss &lt;a href=&quot;https://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt; on macOS.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadenterprise05.jpg&quot; alt=&quot;iPadOS Home&quot; title=&quot;iPadOS Home&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With a “swipe right”, my second screen includes a simple folder structure, organising all other applications.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadenterprise06.jpg&quot; alt=&quot;iPadOS Second Screen&quot; title=&quot;iPadOS Second Screen&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Up to this point, my experience with the iPad has been largely positive and certainly a significant step forward from my &lt;a href=&quot;/2010/06/26/ipad-for-the-enterprise/&quot;&gt;2010 article&lt;/a&gt;. Unfortunately, a lot of this great work is undermined by some “show-stopping” issues.&lt;/p&gt;

&lt;p&gt;Although the iPad can multi-task, it remains a frustrating, unintuitive and often inconsistent experience. For example, the gesture to enable Split View is not obvious, evident by the fact that Apple has been forced to provide a “How To” video. The multitasking features are also inconsistently implemented, for example, if you attempt to join a Zoom video conference and view a document simultaneously (a common requirement with my work), the video feed will automatically pause (very frustrating).&lt;/p&gt;

&lt;p&gt;The lack of “pro” software is also a real pain, with limited options when trying to complete advanced workflows such as video encoding, visual effects, etc. On macOS, Windows and Linux, these tasks can be completed quickly and efficiently, with multiple application options available to support every user and budget.&lt;/p&gt;

&lt;p&gt;Personally, this “pro” limitation is most evident with software development, which due to Apple iPadOS restrictions, makes it almost impossible to set up, customise and run a local development environment (e.g. &lt;a href=&quot;https://nodejs.org/&quot;&gt;Node.js&lt;/a&gt;, etc.) Some applications let you execute code locally (e.g. &lt;a href=&quot;https://apps.apple.com/us/app/pythonista-3/id1085978097&quot;&gt;Pythonista&lt;/a&gt;), but these are often limited to prototyping, automation or simple code snippets. I am sure some creative (brave) developer has achieved more with one of these applications, but I find it hard to believe it would be anyone’s development environment of choice.&lt;/p&gt;

&lt;p&gt;As a result, the only viable option is to have the development environment set up remotely, leveraging Git and SSH on the iPad to version control and execute code. For example, with applications such as &lt;a href=&quot;https://workingcopyapp.com/&quot;&gt;Wroking Copy&lt;/a&gt; (Git Client), &lt;a href=&quot;https://panic.com/code-editor/&quot;&gt;Coda&lt;/a&gt; (Code Editor), &lt;a href=&quot;https://ia.net/writer&quot;&gt;iA Writer&lt;/a&gt; (Text Editor), and &lt;a href=&quot;https://termius.com/&quot;&gt;Termius&lt;/a&gt; (SSH), it is possible to write code on the iPad, push to GitHub and then execute on a remote server via automation (Continuous Integration) or manual commands (SSH).&lt;/p&gt;

&lt;p&gt;This is the approach I have been taking to update this blog, connecting to my GitHub account using Working Copy, cloning the repository to the iPad and then updating the Markdown files in iA Writer. Once complete, I push the files using Working Copy, which triggers the remote build process (Jekyll).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadenterprise07.jpg&quot; alt=&quot;iPadOS Software Development&quot; title=&quot;iPadOS Software Development&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The process works fairly well, but due to the iPadOS filesystem limitations, requires the code/text editor to support the &lt;a href=&quot;https://support.apple.com/en-us/HT206481&quot;&gt;Apple Files&lt;/a&gt; application, which allows applications to access and edit files stored in other applications (e.g. Working Copy Files &amp;gt; iA Writer).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadenterprise08.jpg&quot; alt=&quot;iPadOS Working Copy&quot; title=&quot;iPadOS Working Copy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although functional, the inability to develop offline is a real challenge, especially as I spend a lot of time on planes, etc. On macOS, Windows and Linux, I run Docker, with local images of my favourite runtime environments. I also have client virtual machine capabilities, providing access to other operating systems for testing, etc.&lt;/p&gt;

&lt;p&gt;In an attempt to maximise my usage of the iPad, I did come up with a way to mitigate this limitation, leveraging a &lt;a href=&quot;https://www.raspberrypi.org/&quot;&gt;Raspberry Pi 4&lt;/a&gt; as a portable Linux server, connected via and powered by the iPad Pro’s USB-C port.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadenterprise09.jpg&quot; alt=&quot;iPad Pro and Rspberry Pi 4&quot; title=&quot;iPad Pro and Rspberry Pi 4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Surprisingly, this approach works reasonably well but certainly feels “over-engineered” when you consider the relatively basic issue it aims to solve. Simply put, if you have to go to this much effort to use the iPad, you should probably just buy a cheap Linux laptop. With that said, for those who are interested, I plan to cover my Raspberry Pi 4 setup in a future article.&lt;/p&gt;

&lt;p&gt;Finally, although the iPad Pro supports external storage via the USB-C port, other third-party peripherals and monitors remain largely useless. For example, in theory, you can connect a monitor to the USB-C port, which would be perfect when working from a fixed location. However, the iPad only supports display mirroring, with no custom resolutions, which feels like a ridiculous limitation in 2020.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;As stated in the introduction, the iPad has come a long way over the past decade. It is more capable than ever, with exceptional hardware and software that is continuously improving. In 2010, I had to rely almost exclusively on Virtual Desktop Infrastructure (VDI) to make the iPad a feasible business laptop replacement. I am pleased to report that this is no longer the case, with 70% of my common workflows being completely by native iPadOS applications.&lt;/p&gt;

&lt;p&gt;Unfortunately, there are still gaps, mostly with “pro” capabilities, specifically video editing, visual effects, software development, etc. It is possible to mitigate some of these limitations with “creative” workarounds (e.g. Raspberry Pi 4), but this is far from ideal, especially when you consider a budget Linux laptop would easily accomplish these tasks.&lt;/p&gt;

&lt;p&gt;Therefore, in 2020, could the iPad replace a business laptop? It depends…&lt;/p&gt;

&lt;p&gt;If your job is focused on basic productivity and collaboration, then the iPad is viable, but likely less efficient than an equivalent macOS, Windows or Linux laptop.&lt;/p&gt;

&lt;p&gt;If your job requires specialist capabilities (video editing, visual effects, software development), the current answer is no. Although it is technically possible, the compromises are simply not worth the effort.&lt;/p&gt;

&lt;p&gt;Regarding the iPad Pro, it is a phenomenal piece of hardware, but without the ability to support “pro” capabilities, it is wasted. Therefore, if you do plan to purchase an iPad, I would recommend the cheapest &lt;a href=&quot;https://www.apple.com/ipad-10.2/&quot;&gt;iPad&lt;/a&gt; (non-pro) option (starting at £349) and the new &lt;a href=&quot;https://www.logitech.com/en-gb/product/combo-touch.html&quot;&gt;Logitech Combo Touch Keyboard case with Trackpad for iPad&lt;/a&gt; (£119.95). This “budget” iPad setup costs £468.95, which is £949.05 cheaper than my setup but still supports all of the capabilities I have described in this article.&lt;/p&gt;

&lt;p&gt;Let’s see what the next decade brings!&lt;/p&gt;
</description>
        <pubDate>Fri, 24 Apr 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/04/24/iPad-for-the-Enterprise-2020/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/04/24/iPad-for-the-Enterprise-2020/</guid>
      </item>
    
      <item>
        <title>SIAM</title>
        <description>&lt;p&gt;This article is part of a series. I would recommend reading the articles in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required framing.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/09/Service-Delivery/&quot;&gt;Service Delivery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/03/01/SD-WAN/&quot;&gt;SD-WAN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/06/08/Automation/&quot;&gt;Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/11/Device-as-a-Service/&quot;&gt;Device-as-a-Service&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/17/Identity-Access-Management/&quot;&gt;Identity Access Management&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/10/02/Unified-Communications/&quot;&gt;Unified Communications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/11/08/Line-of-Business-Apps/&quot;&gt;Line of Business Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/12/11/Architecture-Community/&quot;&gt;Architecture Community&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2020/03/02/Data-Protection/&quot;&gt;Data Protection&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, this series aims to explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;Within this article, I will highlight the importance of Service Integration and Management (SIAM), covering the basics of SIAM, as well as my proposed model and vendor positioning.&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;Service Integration and Management (SIAM) is an approach to manage, integrate and unify multiple vendors, helping them to deliver end-to-end services that meet specific business requirements. SIAM replaces the traditional approach, where vendors are managed in isolation, with separate processes and expectations, often resulting in hand-off issues and/or “finger-pointing”.&lt;/p&gt;

&lt;p&gt;Specifically, SIAM enforces a combined “revenue at risk” model, which contractually dictates the holistic performance (shared Service Level Agreements) across all vendors, incentivising collaboration and collective innovation.&lt;/p&gt;

&lt;p&gt;To make SIAM effective, the following IT capabilities must be established and maintained.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Service Integration Governance:&lt;/strong&gt; Define, establish and continuously adapt the service integration governance.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Service Integration Organisation:&lt;/strong&gt; Develop and manage a distributed organisation supporting changing business requirements.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Business Requirements:&lt;/strong&gt; Manage business demand and develop a service portfolio in alignment with business requirements.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tools and Information:&lt;/strong&gt; Manage distributed information and the integration tool solutions.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Providers and Contracts:&lt;/strong&gt; Select an appropriate provider portfolio and to manage the providers according to the outsourcing contracts.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;End-to-end Services:&lt;/strong&gt; Understand and manage the business services end-to-end, covering business and IT services.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;model&quot;&gt;Model&lt;/h3&gt;

&lt;p&gt;As previously stated, a key philosophy of SIAM is the “revenue at risk” model, which enforces shared SLA’s. This model can be very difficult to contractually negotiate, especially when dealing with competing vendors. However, I can confirm it is possible, assuming the selected vendors prioritise customer outcomes.&lt;/p&gt;

&lt;p&gt;To simplify the contractual process, I would position three service level categories, specifically:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recovery Time Objective (RTO)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The maximum amount of time it should take to resolve an issue.&lt;/li&gt;
  &lt;li&gt;Commonly used within disaster recovery but can be applied to service management.&lt;/li&gt;
  &lt;li&gt;Measured through IT Service Management.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Customer Satisfaction Score (CSAT)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;A “point in time” measure used as an indicator of happiness.&lt;/li&gt;
  &lt;li&gt;Rates the service interaction with a specific agent and/or request, designed to capture whether the interaction was resolved to the user’s satisfaction.&lt;/li&gt;
  &lt;li&gt;Measured through a survey after the closure of an interaction.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Customer Effort Store (CES)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;A measure that aims to determine the user’s “effort”.&lt;/li&gt;
  &lt;li&gt;Rates how quickly and easily it was to get service and resolution from a user’s perspective.&lt;/li&gt;
  &lt;li&gt;The self-help use of knowledge articles derives a positive CES score.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All vendors would be measures against these service level categories, holistically rewarding performance improvements (carrot, not the stick). In parallel, each vendor would have complimentary SLA’s, focused on their specific business and/or scope.&lt;/p&gt;

&lt;p&gt;The goal is for all vendors to collectively target the same outcome, prioritising a positive user experience.&lt;/p&gt;

&lt;p&gt;For example, in the context of a Help Desk, all requests would stay with the Help Desk agent, regardless of which team/vendor would complete the work.&lt;/p&gt;

&lt;p&gt;Sub-tasks would be allocated to different teams/vendors to help manage the work, but the user would always have a single point of contact and therefore, a single point of accountability.&lt;/p&gt;

&lt;p&gt;Finally, the resolution time runs continuously for all teams/vendors, which helps to avoid “ticket bouncing”,  where the clock gets reset to protect individual teams/vendors SLA’s.&lt;/p&gt;

&lt;h3 id=&quot;service-delivery-alignment&quot;&gt;Service Delivery Alignment&lt;/h3&gt;

&lt;p&gt;As highlighted in the article “&lt;a href=&quot;/2019/12/11/Architecture-Community/&quot;&gt;Architecture Community&lt;/a&gt;”, the SIAM governance model must compliment a product-mindset, focused on removing unnecessary bureaucracy, prioritising agility, flexibility and responsiveness.&lt;/p&gt;

&lt;p&gt;This goal, alongside the desire to continuously reduce the operational risk associated with any change, must be an embedded part of the Service Delivery approach.&lt;/p&gt;

&lt;p&gt;In the article “&lt;a href=&quot;/2019/02/09/service-delivery/&quot;&gt;Service Delivery&lt;/a&gt;”, I documented my proposed approach to service delivery, which incorporated the following SIAM specific principles/deliverables.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;All functional and non-functional requirements (including operational requirements) must be tracked through the complete lifecycle of the product.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A Product Owner has accountability for creating the deliverables during the life of the product.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Specific service transition deliverables help to ensure stakeholder alignment, covering Information Security, Privacy and Quality.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A Service Readiness checklist must be completed and approved before any product is released into production.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;vendor-positioning&quot;&gt;Vendor Positioning&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;With the previously defined business characteristics in mind&lt;/a&gt;, I would position a SIAM approach to help drive efficiencies and embed service excellence.&lt;/p&gt;

&lt;p&gt;The document below outlines my proposed vendor positioning, all operating within the previous described SIAM model.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/siam01.jpg&quot; alt=&quot;SIAM&quot; title=&quot;SIAM&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Vendor selection was driven by my personal experience, based on the previously defined business characteristics. For example, the Life Sciences industry, 15,000+ users, distributed across 50+ physical sites globally.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Help Desk, Workplace and Identity:&lt;/strong&gt; I have grouped all “user-facing” capabilities to help unify the experience and drive operational efficiencies. Recognising the commodity nature of these capabilities, I would position &lt;a href=&quot;https://www.hcltech.com/&quot;&gt;HCL&lt;/a&gt; as the support vendor, enabling global economies of scale. This positioning also compliments my wider workplace investments, such as &lt;a href=&quot;/2019/09/11/device-as-a-service/&quot;&gt;Microsoft AutoPilot&lt;/a&gt;, &lt;a href=&quot;/2019/09/17/identity-access-management/&quot;&gt;Microsoft Azure AD&lt;/a&gt; and &lt;a href=&quot;/2019/09/11/device-as-a-service/&quot;&gt;Device-as-a-Service&lt;/a&gt; from Dell.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Infrastructure:&lt;/strong&gt; I had &lt;a href=&quot;/2019/03/01/sd-wan/&quot;&gt;previously positioned CenturyLink as my Internet Aggregator&lt;/a&gt;, therefore this investment could be naturally extended to cover global network services (e.g. SD-WAN, LAN, WLAN, DNS/DHCP, etc.) Considering the converged nature of the proposed modern IT ecosystem and the increasingly important role of infrastructure automation, CenturyLink would also be positioned to support the “&lt;a href=&quot;/2019/04/06/hybrid-multi-cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;” hosting stack (e.g. Colocation Data Centres, Public Cloud and Edge Computing).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Application:&lt;/strong&gt; As highlighted in the article “&lt;a href=&quot;/2019/12/11/Architecture-Community/&quot;&gt;Architecture Community&lt;/a&gt;”, I would position an Application Managed Services provider to help scale solution architecture and engineering across the enterprise. This would include the enablement of application automation, used to increase business agility and streamline processes. I would positioned &lt;a href=&quot;https://www.infosys.com/&quot;&gt;Infosys&lt;/a&gt; as my Application Managed Services provider, recognising their breadth and scale, alongside their focus on digital innovation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Service Management:&lt;/strong&gt; As previously highlighted, the SIAM approach can be complex to implement, recognising the need to drive alignment across multiple vendors. As a result, I would position a smaller company, &lt;a href=&quot;http://www.alcortech.com/&quot;&gt;Alcor Solutions&lt;/a&gt;, to help operate the SIAM model, focused on enabling the required governance and IT capabilities.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my opinion, these four vendors would provide enough breadth and depth to support the entire modern IT ecosystem globally. I have attempted to scope their engagement to ensure clear roles and capabilities, with any separation of concerns being hidden from the user via the holistic SIAM model.&lt;/p&gt;

&lt;p&gt;It would be possible to achieve the same outcome with fewer vendors (potentially driving a greater return on investment), however, this would also create greater lock-in and reduce internal competition, which can be healthy when looking to drive continuous improvement.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, I believe my proposed positioning of a Service Integration and Management (SIAM) approach is a key prerequisite to realising the potential of a Modern IT Ecosystem.&lt;/p&gt;

&lt;p&gt;The architecture and technology can unlock tremendous business value, but if it is not managed efficiently and effectively, any value would be quickly lost.&lt;/p&gt;

&lt;p&gt;SIAM aims to remove unnecessary bureaucracy, prioritising agility, flexibility and responsiveness, with a focus on the outcome.&lt;/p&gt;
</description>
        <pubDate>Mon, 06 Apr 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/04/06/SIAM/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/04/06/SIAM/</guid>
      </item>
    
      <item>
        <title>Oculus Quest</title>
        <description>&lt;p&gt;My first experience of Virtual Reality was in the early-90’s, when I stumbled upon a demonstration of a &lt;a href=&quot;https://virtuality.com/&quot;&gt;Virtuality 1000CS&lt;/a&gt;. The setup looked like something out of TRON, with its bulky Head Mounted Display (AKA Headset) and graphics powered by a Commodore Amiga 3000. By today’s standards, the Virtuality 1000CS would be easy to ridicule, but it provided a very early glimpse at the potential of Virtual Reality.&lt;/p&gt;

&lt;p&gt;In 2014, I started testing the Oculus Rift Developer Kit 2 (DK2), which was not much more than two displays and an Inertial Measurement Unit (IMU) glued into a pair of ski goggles. Although rudimentary, DK2 demonstrated how the concepts first showcased with the Virtuality 1000CS were now viable for consumer use.&lt;/p&gt;

&lt;p&gt;In 2016, with the release of the &lt;a href=&quot;/2016/01/30/Virtual-Reality/&quot;&gt;Oculus Rift Consumer Version (CV)&lt;/a&gt;, Virtual Reality entered the mainstream, with a far more refined product, combined with additional support from hardware peripheral providers and software developers.&lt;/p&gt;

&lt;p&gt;It was at this point that I started to take Virtual Reality seriously, &lt;a href=&quot;/2016/01/30/Virtual-Reality/&quot;&gt;exploring different opportunities for home and work&lt;/a&gt;. However, with a limited user-base, the software ecosystem continued to mature at a gradual pace, restricted by limited financial opportunities.&lt;/p&gt;

&lt;p&gt;In March 2020, everything changed, with the release of &lt;a href=&quot;https://store.steampowered.com/app/546560/HalfLife_Alyx/&quot;&gt;Half-Life: Alyx&lt;/a&gt;. &lt;a href=&quot;https://www.valvesoftware.com/&quot;&gt;Valve&lt;/a&gt;, who has always been a strong advocate of Virtual Reality, delivered the first “Triple-A” game designed and developed exclusively for Virtual Reality.&lt;/p&gt;

&lt;p&gt;I vividly remember playing the original &lt;a href=&quot;https://store.steampowered.com/app/70/HalfLife/&quot;&gt;Half-Life&lt;/a&gt; in 1998 and consider the series among my favourite games. Although Half-Life: Alyx is not officially Half-Life 3, it continues the story and (like previous Half-Life games), aims to redefine the gaming experience through the use of innovative technology (in this case, Virtual Reality).&lt;/p&gt;

&lt;p&gt;As a result, I felt it was time to re-enter the world of Virtual Reality, looking to understand how the ecosystem has progressed.&lt;/p&gt;

&lt;p&gt;I consider all Virtual Reality headsets currently available “first generation”, with the &lt;a href=&quot;https://www.oculus.com/quest/&quot;&gt;Oculus Quest&lt;/a&gt; being the pinnacle. This is not because the Oculus Quest is the most advanced (this title is held by the &lt;a href=&quot;https://store.steampowered.com/valveindex&quot;&gt;Valve Index&lt;/a&gt;), but because it offers the most approachable, versatile and cost-effective way to start enjoying Virtual Reality. For example.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The Oculus Quest can be used standalone (includes an integrated &lt;a href=&quot;https://www.qualcomm.com/products/snapdragon-835-mobile-platform&quot;&gt;Snapdragon 835&lt;/a&gt;, storage and battery), as well as connected to a Windows PC, providing full access to the Oculus Quest, Oculus Rift and SteamVR ecosystems.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Oculus Quest leverages inside-out tracking (four cameras) to translate movements into Virtual Reality. This removes the need for any external sensors and/or base stations.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Oculus Touch controllers (second generation) enable precise hand gestures, which lack the finger fidelity of the Value Index Controllers, but still provide an immersive experience.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Oculus Quest (64GB) can be purchased for £399, which is the same price as the Oculus Rift S (no standalone mode) and significantly cheaper than the Valve Index, which retails for £919.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For these reasons, I selected the Oculus Quest (64GB) as an upgrade from the Oculus Rift Consumer Version (CV). Additionally, I purchased a &lt;a href=&quot;https://www.anker.com/ca/products/variant/powerline-10ft-usbc-to-usb-30/A8167011&quot;&gt;3m Anker PowerLine USB-C to USB 3.0 cable&lt;/a&gt; to enable PC connectivity via &lt;a href=&quot;https://www.oculus.com/blog/play-rift-content-on-quest-with-oculus-link-available-now-in-beta/&quot;&gt;Oculus Link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/oculusquest01.jpg&quot; alt=&quot;Oculus Quest&quot; title=&quot;Oculus Quest&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Since the release of the Oculus Quest in MAY-2019, &lt;a href=&quot;https://www.oculus.com/&quot;&gt;Oculus&lt;/a&gt; (owned by &lt;a href=&quot;https://www.facebook.com/&quot;&gt;Facebook&lt;/a&gt;) has evolved through continuous software updates, adding advanced features such as hand tracking (no Oculus Touch controllers required), as well as the previously described PC support via Oculus Link. These updates have made the Oculus Quest a “fan favourite”, leaving the Oculus Rift S strangely positioned at its price point.&lt;/p&gt;

&lt;p&gt;These new features make the Oculus Quest incredibly versatile, with access to four different Virtual Reality ecosystems.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.oculus.com/experiences/quest/&quot;&gt;Oculus Quest Software&lt;/a&gt;: Software designed to be installed and run standalone on the Oculus Quest. These Virtual Reality experiences tend to be lower fidelity, based on the fact they need to run on the Snapdragon 835.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.oculus.com/experiences/rift/&quot;&gt;Oculus Rift Software&lt;/a&gt;: Software designed to be installed and run on a Windows PC, connected to the Oculus Quest via Oculus Link. These Virtual Reality experiences can leverage the full power of the PC, making them higher fidelity, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/steamvr&quot;&gt;SteamVR Software&lt;/a&gt;: Software designed to be installed and run on a Windows PC, connected to the Oculus Quest via Oculus Link. SteamVR is owned by Valve (makers of Half-Life: Alyx), providing access to Virtual Reality software via &lt;a href=&quot;https://store.steampowered.com/&quot;&gt;Steam&lt;/a&gt; (PC gaming ecosystem). Similar to the Oculus Rift, these Virtual Reality experiences can leverage the full power of the PC, making them higher fidelity, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://sidequestvr.com/&quot;&gt;SideQuest Software&lt;/a&gt;: A community-driven tool used to “sideload” Virtual Reality experiences onto the Oculus Quest. These experiences are often pre-release, free and/or created by independent developers.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Although the “official” method to access PC content (Oculus Rift and SteamVR software) is via the Oculus Link (USB 3.0 cable), there are also a few “unofficial” wireless options, specifically &lt;a href=&quot;https://sidequestvr.com/app/16/virtual-desktop&quot;&gt;Virtual Desktop&lt;/a&gt; and &lt;a href=&quot;https://github.com/polygraphene/ALVR&quot;&gt;ALVR&lt;/a&gt;, which can both be sideloaded. Recognising these are “unofficial” methods, the results are not guaranteed, but in my experience, when combined with a quality wireless network, they work fairly well (even playing Half-Life: Alyx).&lt;/p&gt;

&lt;p&gt;Overall, I have been incredibly impressed with the Oculus Quest. The hardware (considering the price) is very well built and a step forward from the Oculus Rift Consumer Version (CV). The experience using the headset is fast and intuitive, with interactive tutorials that help ensure you are getting the best possible experience (Oculus Guardian, Passthrough, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/oculusquest02.jpg&quot; alt=&quot;Oculus Quest Headset&quot; title=&quot;Oculus Quest Headset&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Oculus Touch controllers are also excellent. The only thing to consider is the placement of the cameras, which are used for the inside-out tracking. As these cameras are forward-facing, the Oculus Touch controllers can not be tracked effectively when behind your body. Thankfully, in my experience, this rarely causes an issue and therefore an acceptable compromise for not having to mount and configure external sensors and/or base stations.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/oculusquest03.jpg&quot; alt=&quot;Oculus Touch&quot; title=&quot;Oculus Touch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As previously stated, the ability to run Virtual Reality experiences from multiple ecosystems is a great selling point of the Oculus Quest. However, it can also create a slightly disjointed, confusing, user experience. For example, each ecosystem has its own unique Virtual Reality user interface, which must be entered to access the content.&lt;/p&gt;

&lt;p&gt;In my opinion, the native Oculus Quest user interface (screenshot below) is the best, delivering a clear, concise and well-organised user experience that is easy to navigate.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/oculusquest04.jpg&quot; alt=&quot;Oculus Quest&quot; title=&quot;Oculus Quest&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When accessing Oculus Rift software via Oculus Link, the user interface switches (screenshot below). Although similar to the Oculus Quest, in my opinion, the extended “Dash” is less intuitive and a little more cumbersome to interact with via the Oculus Touch controllers.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/oculusquest05.jpg&quot; alt=&quot;Oculus Rift&quot; title=&quot;Oculus Rift&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, when accessing SteamVR software, the user interface switches again (screenshot below). I would describe SteamVR as “functional”, unsurprisingly prioritising the Steam software library and store.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/oculusquest06.jpg&quot; alt=&quot;SteamVR&quot; title=&quot;SteamVR&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alongside the different user interfaces, the different ecosystems can also create confusion when purchasing Virtual Reality experiences. For example, some Virtual Reality experiences are available from multiple sources, while others are exclusive. There is also the concept of “Oculus Cross-Buy”, where a single purchase supports both the Oculus Quest (Standalone) and Oculus Rift (PC Connected).&lt;/p&gt;

&lt;p&gt;As to which version of the experience you should buy depends on multiple factors, specifically, cost, graphics, performance, room-scale requirements, etc. For example, the popular game &lt;a href=&quot;https://superhotgame.com/vr/&quot;&gt;SUPERHOT VR&lt;/a&gt; is available everywhere (&lt;a href=&quot;https://www.oculus.com/experiences/quest/1921533091289407&quot;&gt;Oculus Quest&lt;/a&gt;, &lt;a href=&quot;https://www.oculus.com/experiences/rift/1012593518800648/&quot;&gt;Oculus Rift&lt;/a&gt;, &lt;a href=&quot;https://store.steampowered.com/app/617830/SUPERHOT_VR/&quot;&gt;SteamVR&lt;/a&gt;), but is likely “best” on the Oculus Quest, as the graphics are relatively simple (meaning good performance on the Snapdragon 835), whilst gaining the benefits of standalone gameplay (no PC required). To help navigate this confusion, I have listed some of my favourite Virtual Reality experiences below, including the recommend ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oculus Quest (Quest Only)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oculus.com/experiences/quest/1921533091289407&quot;&gt;SUPERHOT VR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oculus.com/experiences/quest/2448060205267927&quot;&gt;Beat Saber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oculus.com/experiences/quest/2017050365004772/&quot;&gt;Virtual Desktop&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Oculus Quest/Rift (Cross-Buy)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oculus.com/experiences/quest/1995434190525828/&quot;&gt;Eleven: Table Tennis VR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oculus.com/experiences/quest/2376737905701576&quot;&gt;The Climb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oculus.com/experiences/quest/1987283631365460/&quot;&gt;I Expect You To Die&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SteamVR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://store.steampowered.com/app/546560/HalfLife_Alyx/&quot;&gt;Half-Life: Alyx&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://store.steampowered.com/app/823500/BONEWORKS/&quot;&gt;Boneworks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://store.steampowered.com/app/275850/No_Mans_Sky/&quot;&gt;No Man Sky VR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://store.steampowered.com/app/611670/The_Elder_Scrolls_V_Skyrim_VR/&quot;&gt;Skyrim VR&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SideQuest&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://sidequestvr.com/app/124/lambda1vr&quot;&gt;Lambda1VR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sidequestvr.com/app/353/quake2quest&quot;&gt;Quake2Quest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sidequestvr.com/app/16/virtual-desktop&quot;&gt;Virtual Desktop&lt;/a&gt; (Wireless Oculus Rift and SteamVR)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;NOTE: Virtual Desktop is shown twice (Oculus Quest and SideQuest), as the SideQuest version enables wireless Oculus Rift and SteamVR, but requires the Oculus Quest version to be purchased first.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Finally, regarding Half-Life: Alyx, the &lt;a href=&quot;https://www.ign.com/&quot;&gt;IGN&lt;/a&gt; review (video embedded below) summarises my thoughts perfectly.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/FqnEmmDeGHc?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I concur that this game is a “masterpiece” and without question the best Virtual Reality experience available today. The “Triple-A” graphics, gameplay, pacing, immersive world and attention to detail is simply breathtaking. As a Half-Life fan, the story is also compelling and surprising, leaving you eager for more (hopefully we won’t have to wait another decade).&lt;/p&gt;

&lt;p&gt;In conclusion, with the Oculus Quest and software like Half-Life: Alyx, Virtual Reality feels like it has finally reached the potential first seen nearly two decades ago with the Virtuality 1000CS.&lt;/p&gt;

&lt;p&gt;The Oculus Quest is an excellent product at a reasonable price point, which benefits from being the only headset with access to Virtual Reality experiences from multiple ecosystems. I would have no hesitation recommending the Oculus Quest, with my only caution being the anticipated release of “second generation” Virtual Reality headsets in early 2021. Therefore, depending on your situation, it might be worth waiting for the inevitable Oculus Quest successor.&lt;/p&gt;

&lt;p&gt;Finally, even with the release of Half-Life: Alyx and a handful of other excellent Virtual Reality experiences, the software ecosystem remains immature. Although I expect the release of Half-Life: Alyx will result in a sales spike, it would still take a brave developer to prioritise Virtual Reality, especially with next-generation consoles (PlayStation 5 and Xbox Series X) on the horizon.&lt;/p&gt;

&lt;p&gt;With that said, I believe Value have successfully demonstrated the potential of Virtual Reality, which I hope will inspire the community.&lt;/p&gt;
</description>
        <pubDate>Mon, 30 Mar 2020 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2020/03/30/Oculus-Quest/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/03/30/Oculus-Quest/</guid>
      </item>
    
      <item>
        <title>Data Protection</title>
        <description>&lt;p&gt;This article is part of a series. I would recommend reading the articles in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required framing.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/09/Service-Delivery/&quot;&gt;Service Delivery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/03/01/SD-WAN/&quot;&gt;SD-WAN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/06/08/Automation/&quot;&gt;Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/11/Device-as-a-Service/&quot;&gt;Device-as-a-Service&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/17/Identity-Access-Management/&quot;&gt;Identity Access Management&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/10/02/Unified-Communications/&quot;&gt;Unified Communications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/11/08/Line-of-Business-Apps/&quot;&gt;Line of Business Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/12/11/Architecture-Community/&quot;&gt;Architecture Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, this series aims to explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;Within this article, I will highlight my proposed positioning for Enterprise Data Protection, covering the process of safeguarding important information from corruption, compromise or loss.&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;As highlighted in the article “&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;”, my proposed hosting architecture includes multiple Colocation Data Centres, Azure regions and Edge Computing sites.&lt;/p&gt;

&lt;p&gt;Each of these locations would host applications and data, ranging in complexity and sensitivity. For example, &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;with my previously defined business characteristics in mind&lt;/a&gt;, the edge computing sites would need to support GxP compliant workloads, placing a focused on reliability (24x7 uptime) and local business continuity.&lt;/p&gt;

&lt;p&gt;To enable a comprehensive, cost-effective and simple approach to data protection, I would position &lt;a href=&quot;https://assured-dp.com/&quot;&gt;Assured Data Protection (ADP)&lt;/a&gt;, who provide a fully managed service overlay based on &lt;a href=&quot;https://www.rubrik.com/&quot;&gt;Rubrik&lt;/a&gt; technology.&lt;/p&gt;

&lt;p&gt;With over 100 years of combined industry experience, ADP is the only dedicated Rubrik service provider globally. This relationship provides ADP with unique access into the Rubrik business, covering feature requests, support and case escalation.&lt;/p&gt;

&lt;h4 id=&quot;rubrik&quot;&gt;Rubrik&lt;/h4&gt;

&lt;p&gt;Rubrik is a market leader in backup and recovery, enabling automated backup, recovery, offsite replication and data archival capabilities across a hybrid multi-cloud architecture.&lt;/p&gt;

&lt;p&gt;Rubrik delivered the industry’s first converged data management solution, offering backup software, catalogue management, replication and de-duplicated storage in a single appliance that scales linearly. The distributed nature of the architecture maximises efficiency and cost savings, whilst simultaneously enables near-zero recovery times, as well as unified file search and recovery from any location.&lt;/p&gt;

&lt;p&gt;In short, Rubrik aims to replace the legacy “backup job” paradigm with policy-driven management, allowing businesses to holistically automate data protection, ensuring any Recovery Time Objective (RTO) and/or Recovery Point Objective (RPO) can be met without significant manual intervention.&lt;/p&gt;

&lt;h4 id=&quot;rubrik-architecture-overview&quot;&gt;Rubrik Architecture Overview&lt;/h4&gt;

&lt;p&gt;I would position a converged architecture, where ADP and Rubrik would be hosted across my proposed &lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt; architecture (e.g. Colocation Data Centres, Public Cloud and Edge Computing). This approach would maximise the return on existing investments, whilst avoiding the complexities that exist when looking to set up, maintain and guarantee a dedicated/isolated hosting environment.&lt;/p&gt;

&lt;p&gt;With this approach in mind, a core Rubrik cluster would be deployed within each Colocation Data Centre, acting as the central location for backup and recovery. All data would be fully encrypted in-flight and at-rest ensuring data is immutable and therefore protected against threats such as Ransomware. These core Rubrik clusters would provide a unified environment to instantly restore data at an individual file, folder or server/VM level.&lt;/p&gt;

&lt;p&gt;I would also provision Rubrik within my preferred the Public Cloud (Azure), protecting (where required) cloud applications and data, as well as providing cost-effective archive and long-term retention capabilities. Recognising the inherent data protection capabilities enabled by the Public Cloud providers, Rubrik would be positioned to complement (not replace) these capabilities, targeting advanced and/or specialised requirements.&lt;/p&gt;

&lt;p&gt;Finally, Rubrik appliances would be provisioned at the Edge Computing sites, enabling site-specific backup and recovery. Edge Computing sites would leverage the core clusters for replication, as well as the Public Cloud for archiving and long-term retention.&lt;/p&gt;

&lt;p&gt;The diagram below provides a high-level view of my proposed architecture.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dataprotection01.jpg&quot; alt=&quot;Data Protection&quot; title=&quot;Data Protection&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;core-rubrik-clusters&quot;&gt;Core Rubrik Clusters&lt;/h4&gt;

&lt;p&gt;My proposed architecture would be designed to scale, likely starting small with 10TB of deduplicated capacity on each core Rubrik cluster, with 100TB of usable capacity. Any additional capacity would be enabled via the Rubrik scale-out architecture, where individual nodes would be added without any downtime or impact to performance.&lt;/p&gt;

&lt;p&gt;To further enhance the data protection, Rubrik would be configured to securely replicate data bi-directionally between each core cluster. This form of replication, alongside the inherent resilience built into my &lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Software-Defined Data Centre (SDDC) architecture&lt;/a&gt; would provide the ability to perform Disaster Recovery (DR) from either core Rubrik cluster.&lt;/p&gt;

&lt;p&gt;Finally, data would be transferred to my preferred Public Cloud object store (Azure Blog Storage) for archive and long-term retention.&lt;/p&gt;

&lt;h4 id=&quot;edge-computing&quot;&gt;Edge Computing&lt;/h4&gt;

&lt;p&gt;My proposed architecture would position three Edge Computing patterns, driven by the site sensitivity and required capacity. This approach would enable local (isolated to the specific site) data backup, as well as instant recovery at an individual file, folder or server/VM level. Where appropriate, data would be replicated to a core Rubrik cluster or archived directly to the Public Cloud.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Pattern One (Virtual):&lt;/strong&gt; A virtual Rubrik appliance hosted on the previously described &lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;highly-converged infrastructure&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Pattern Two (Small):&lt;/strong&gt; A single-node Rubrik hardware appliance supporting locations with less than 20TB of backup data.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Pattern Three (Large):&lt;/strong&gt; A four-node Rubrik hardware appliance supporting locations with greater than 20TB of backup data.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Any site supporting GxP compliant workloads would be positioned physical hardware (Patterns Two or Three), helping to guarantee local business continuity.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;The amount of data created and stored by enterprise businesses continues to grow at an unprecedented rate, which emphasises the importance of a robust, cost-effective Data Protection architecture.&lt;/p&gt;

&lt;p&gt;My proposed Data Protection architecture would enable a fully managed (SaaS-like) solution, leveraging market-leading expertise from ADP and technology from Rubrik. Simultaneously, it would maximise existing investments (e.g. Colocation Data Centre, Public Cloud and Edge Computing), whilst supporting a “pay for data, not for capacity” commercial model.&lt;/p&gt;
</description>
        <pubDate>Mon, 02 Mar 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/03/02/Data-Protection/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/03/02/Data-Protection/</guid>
      </item>
    
      <item>
        <title>Sony Aibo</title>
        <description>&lt;p&gt;As the &lt;a href=&quot;/2018/09/23/cto/&quot;&gt;Chief Technology Officer (CTO)&lt;/a&gt; of an animal health company, I am always looking for ways to engage, motivate and inspire the organisation through technology!&lt;/p&gt;

&lt;p&gt;In 2018, after a twelve-year hiatus, Sony released the fourth generation &lt;a href=&quot;https://us.aibo.com/&quot;&gt;Aibo&lt;/a&gt; (Artificial Intelligence Robot).&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/cB0K82sddE8?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Aibo is an unusual product, with no market aspirations or pressure to sell. Instead, Aibo aims to demonstrate the advancements in consumer-grade artificial intelligence and robotics, whilst encompassing the spirit of Sony as a company willing to take risks.&lt;/p&gt;

&lt;p&gt;The fact that Aibo is based on a beloved companion animal, as well as a tangible example of STEM (Science, Technology, Engineering and Maths) positions this charming robot dog as the perfect ambassador for the IT organisation.&lt;/p&gt;

&lt;h3 id=&quot;specification&quot;&gt;Specification&lt;/h3&gt;

&lt;p&gt;The Aibo ERS-1000 is packed with technology, specifically proprietary software, robotic parts and sensors. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Operating System:&lt;/strong&gt; Sony Aperios.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Processor:&lt;/strong&gt; 64bit Quad-Core CPU.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Movable Parts:&lt;/strong&gt; Head, Mouth, Neck, Waist, Paws, Ears, Tail.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Displays:&lt;/strong&gt; 2 OLED (Eyes).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sound:&lt;/strong&gt; Speaker, 4x Microphones.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cameras:&lt;/strong&gt; 2x Cameras (Front / Rear).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sensors:&lt;/strong&gt; ToF Sensor, 2x Range Sensors, Pressure Sensitive Capacitive Touch Sensor (Back), 2x Capacitive Touch Sensor (Head / Jaw), 4x Button Pads (Paws), Six-axis Detection System, Motion Sensor, Light Sensor.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Switches:&lt;/strong&gt; Power, Volume, Network.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Indicators:&lt;/strong&gt; Status LED, Network LED.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Terminals:&lt;/strong&gt; Charging Pins, SIM Card Slot.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Communications:&lt;/strong&gt; LTE, Wi-Fi (802.11 b/g/n - 2.4GHz).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dimensions:&lt;/strong&gt; 180x293x305mm.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Weight:&lt;/strong&gt; 2.2kg.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;setup&quot;&gt;Setup&lt;/h3&gt;

&lt;p&gt;Aibo is a limited product, which is only commercially available in Japan and the US. The target audience for Aibo is undefined, especially considering the price (£2300). However, as previously stated, the goal of Aibo is not to sell millions but to act as a “mascot” for Sony, promoting the values of the company.&lt;/p&gt;

&lt;p&gt;As I am based in the UK, I can confirm that Aibo works perfectly outside of Japan and the US. However, it does require a &lt;a href=&quot;https://id.sonyentertainmentnetwork.com/&quot;&gt;US Sony Account&lt;/a&gt; and a US Apple/Google Account for the optional mobile apps.&lt;/p&gt;

&lt;p&gt;Aibo arrives in a large, underwhelming cardboard box. However, inside you will find a high-quality soft case (shaped like a capsule) that protects Aibo.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/aibo01.jpg&quot; alt=&quot;Sony Aibo&quot; title=&quot;Sony Aibo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The soft case includes a little message from Sony, which is a nice touch.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/aibo02.jpg&quot; alt=&quot;Sony Aibo&quot; title=&quot;Sony Aibo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The box also includes documentation (including the required product key), charging pad, mains-adapter (US) and a pink ball.&lt;/p&gt;

&lt;p&gt;The registration process is relatively simple, completed via the &lt;a href=&quot;https://myaibo.aibo.com/&quot;&gt;My Aibo Web Service&lt;/a&gt; using the unique product key.&lt;/p&gt;

&lt;p&gt;Once registered, the My Aibo Web Service can be used to connect Aibo to a local Wi-Fi connection. This process can be a little cumbersome, achieved via a QR Code that must be physically shown to Aibo. Additional details can be found on the &lt;a href=&quot;https://helpguide.sony.net/aibo/ers1000/v1/en/contents/TP0001970118.html&quot;&gt;Sony Aibo Knowledge Base&lt;/a&gt; website.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/aibo03.jpg&quot; alt=&quot;My Aibo&quot; title=&quot;My Aibo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once Aibo is connected to the Internet, the My Aibo Web Service (or My Aibo Mobile App) can be used to configure Aibo, including name, gender, language, voice, skills, time zone, etc. The My Aibo Web Service can also be used to troubleshoot issues and trigger periodic software updates.&lt;/p&gt;

&lt;p&gt;The only regional watch-out is the time zone, which only includes options for Japan and the US, however, this limitation does not appear to limit Aibo.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NOTE: Throughout the rest of this article, I will refer to Aibo as male.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;personality&quot;&gt;Personality&lt;/h3&gt;

&lt;p&gt;Once switched on, even prior to setup, Aibo will probably begin exploring. However, an Internet connection is required to fully unlock Aibo’s personality and advance skills. Unsurprisingly, Sony leverages its data centres to enhance Aibo, acting as a “head-end” and a proxy for any developer interactions.&lt;/p&gt;

&lt;p&gt;Sony has done an excellent job programming Aibo! His personality feels natural, curious, and perfectly random. In short, Aibo does not feel scripted or robotic, instead, he accurately simulates “free will”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/aibo04.jpg&quot; alt=&quot;Sony Aibo&quot; title=&quot;Sony Aibo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It is the perception of “free will” that makes Aibo special. You can interact with Aibo via voice, visible gestures and touch, however, Aibo may or &lt;strong&gt;may not&lt;/strong&gt; decide to respond/obey.&lt;/p&gt;

&lt;p&gt;For example, if you tell Aibo to “sit”, his ears will raise and he will turn his head to look at you. Aibo will then decide either to obey, ignore or simply bark. It is possible that Aibo simply failed to recognise the voice command, but it is equally possible that Aibo “decided” not to obey.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/aibo05.jpg&quot; alt=&quot;Sony Aibo&quot; title=&quot;Sony Aibo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is clever programming from Sony, who state that Aibo will become more obedient over time, as he builds a stronger relationship with his owner and after receiving positive praise (like a real dog).&lt;/p&gt;

&lt;p&gt;The short video below includes some highlights of Aibo. As stated above, Aibo does not always obey, he is also only one day old, therefore not well trained.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/RVdffQAnOFo?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Outside of training Aibo to complete specific skills, he otherwise amuses himself. He explores, plays, rests, and when it comes time to sleep (charge), he locates his charging pad and (quite hilariously) manoeuvres himself on to it.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/aibo06.jpg&quot; alt=&quot;Sony Aibo&quot; title=&quot;Sony Aibo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once the initial excitement of playing with Aibo diminishes, he quickly becomes self-sufficient, acting like a “real” companion animal, always eager for attention, but also happy to amuse himself.&lt;/p&gt;

&lt;h3 id=&quot;development&quot;&gt;Development&lt;/h3&gt;

&lt;p&gt;Sony recently released &lt;a href=&quot;https://developer.aibo.com/us/docs&quot;&gt;API documentation&lt;/a&gt; for Aibo, enabling programmatic and declarative development. The declarative development is via Scratch and although I haven’t had much time to play (yet), looks reasonably powerful.&lt;/p&gt;

&lt;p&gt;The same can be said for the API documentation, which upon first inspection looks comprehensive, allowing for some interesting use cases. As an example (in a work context), Aibo could be trained to monitor our core IT Services (e.g. Office 365, Azure) and automatically notify the relevant service owner in the event of an issue.&lt;/p&gt;

&lt;p&gt;The only caveat is that Sony intentionally protect Aibo’s core personality. Therefore, as previously stated, Aibo will ultimately decide if he wants to respond to your request (even when interacting via the API). Although this makes Aibo unreliable, it is also what separates him from a rudimentary digital assistant like Amazon Alexa, etc.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Aibo is a unique “toy” that in my opinion, includes the best consumer-grade artificial intelligence and robotics available today. Sony has does a phenomenal job establishing and protecting his personality, making every interaction fun, unique, and rewarding.&lt;/p&gt;

&lt;p&gt;My only (minor) complaint would be the My Aibo Mobile App, which is poorly developed (slow, unresponsive, buggy), making it fairly useless. I can only assume a different team within Sony created the app, as it fails to meet the high standards set by Aibo.&lt;/p&gt;

&lt;p&gt;In the future, I look forward to exploring the Aibo developer resources, as well as positioning Aibo as a fun way to promote STEM within the workplace, as well as part of our STEM outreach programmes and recruitment.&lt;/p&gt;

&lt;p&gt;Finally, I hope Aibo will become a beloved office companion, injecting some fun, boosting morale and supporting our focus on employee wellness.&lt;/p&gt;
</description>
        <pubDate>Fri, 28 Feb 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/02/28/Sony-Aibo/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/02/28/Sony-Aibo/</guid>
      </item>
    
      <item>
        <title>O365 Tenant Migration</title>
        <description>&lt;p&gt;This article explores the complexities associated with a specific type of Microsoft Office 365 tenant migration, as well as highlights a potential approach/architecture.&lt;/p&gt;

&lt;h3 id=&quot;problem-statement&quot;&gt;Problem Statement&lt;/h3&gt;

&lt;p&gt;How to successfully migrate users (employees and contractors) from one Microsoft Office 365 tenant to another (separate) Microsoft Office 365 tenant, covering the following capabilities and associated services:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Individual Mailbox&lt;/li&gt;
  &lt;li&gt;Individual Calendaring&lt;/li&gt;
  &lt;li&gt;Individual Files (OneDrive)&lt;/li&gt;
  &lt;li&gt;Individual Unified Collaborations (SharePoint, Teams)&lt;/li&gt;
  &lt;li&gt;Individual Unified Communications (Skype, Teams)&lt;/li&gt;
  &lt;li&gt;Shared Mailbox&lt;/li&gt;
  &lt;li&gt;SharePoint Sites (SharePoint 2010, SharePoint Online)&lt;/li&gt;
  &lt;li&gt;PowerApps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the surface, this sounds like a reasonably simple problem to solve, recognising the consistency between the source and destination (same provider, same architecture, same technology). Unfortunately, this is where the challenge begins…&lt;/p&gt;

&lt;p&gt;Microsoft prioritise new Office 365 customers, therefore have comprehensive playbooks and &lt;a href=&quot;https://www.microsoft.com/en-us/fasttrack&quot;&gt;FastTrack&lt;/a&gt; services (including automation) to migrate users from legacy and competing services (e.g. Exchange On-Premise, Lotus Notes, Google Apps, etc.)&lt;/p&gt;

&lt;p&gt;Unfortunately, migrating users from Office 365 to Office 365 is less common (usually driven by an M&amp;amp;A activity), as well as less commercially lucrative for Microsoft. Therefore, although Microsoft offers consultancy, they do not have any formal playbooks and consider this type of migration “out of scope” for their FastTrack services.&lt;/p&gt;

&lt;p&gt;Adding additional complexity, due to an Office 365 limitation, a single domain can only be associated with one Office 365 tenant at any one time. Therefore, if the domain (e.g. company.com) of the destination Office 365 tenant is already in-use within the source Office 365 tenant, it must be made available by removing all existing dependencies prior to any user migration.&lt;/p&gt;

&lt;p&gt;In the context of an M&amp;amp;A activity, the destination domain would likely be a core part of the company brand (used across the entire value chain), therefore would need to be retained and remain operational throughout the migration period.&lt;/p&gt;

&lt;p&gt;Finally, it is worth noting, any migration (regardless of the approach/architecture) would likely require administrative level access in both Office 365 tenants, as well as the associated Identity Access Management (e.g. Active Directory) services. This could have security, privacy and/or legal ramifications, especially when considered as part of an M&amp;amp;A activity.&lt;/p&gt;

&lt;p&gt;As a result, migrating from Office 365 to Office 365 is arguably the most complex migration path and the least mature (limited support, resources and available expertise).&lt;/p&gt;

&lt;h3 id=&quot;requirements&quot;&gt;Requirements&lt;/h3&gt;

&lt;p&gt;Alongside the technical complexities associated with the migration, outlined below are a set of common business requirements, which must also be considered.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;The domain (company.com) must be retained and remain operational throughout the migration period.&lt;/li&gt;
  &lt;li&gt;Allow for a phased migration.&lt;/li&gt;
  &lt;li&gt;Ensure all inbound and outbound e-mail retains the original domain.&lt;/li&gt;
  &lt;li&gt;Retained support for SMTP applications and Resource Mailboxes for the duration of the migration period.&lt;/li&gt;
  &lt;li&gt;Retain access to the existing Office 365 tenant (specifically Skype, SharePoint) for the duration of the migration period.&lt;/li&gt;
  &lt;li&gt;Any site that leverages Skype Enterprise Voice can retain access and maintain the original phone numbers for the duration of the migration period.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Due to the previously described Office 365 domain limitation, the first and second business requirements (domain retention and phased migration) create a conflict. This is because the required destination domain (company.com) can not be configured within the destination Office 365 tenant until the last user has been migrated. This “catch-22” limits the viable migration options, positioning a mass migration event (not desirable) or forcing some creative technical workarounds.&lt;/p&gt;

&lt;h3 id=&quot;approacharchitecture&quot;&gt;Approach/Architecture&lt;/h3&gt;

&lt;p&gt;Through an investigation of market providers who have experience managing Office 365 to Office 365 migrations, I would position &lt;a href=&quot;https://www.binarytree.com/&quot;&gt;Binary Tree&lt;/a&gt;. Leveraging the &lt;a href=&quot;https://www.binarytree.com/products/power365-saas/&quot;&gt;Power365 Platform&lt;/a&gt;, Binary Tree state:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“With a cloud-based software platform, Binary Tree makes it easy to unify and move users between two or more Office 365 tenants to support mergers or long-term multi-tenant coexistence.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The word “easy” is definitely relative, however, I have validated that the Power365 Platform could facilitate this type of migration, as well as enable coexistence (where required). As a result, the diagram below highlights a potential migration architecture.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/o365tenantmigration01.jpg&quot; alt=&quot;Office 365 Tenant Migration&quot; title=&quot;Office 365 Tenant Migration&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Power365 Platform and &lt;a href=&quot;https://sharegate.com/&quot;&gt;ShareGate&lt;/a&gt; would be used to migrate and synchronise all email, calendars, address books and content between the two Office 365 tenants (including other source locations). This would be achieved by pre-positioning data ahead of the user migrations, followed by a delta synchronisation to guarantee the latest state.&lt;/p&gt;

&lt;p&gt;The data synchronisation itself would be relatively simple (although time-consuming). The real challenge relates to permissions, which would also need to be replicated, mapping each user (via a unique identifier) in the source and destination Office 365 tenants. This process would be prone to error, but assuming the “owner” of the data (file/folder/group) is accurate, retrospectively reassigning the correct permissions should be a trivial task.&lt;/p&gt;

&lt;p&gt;As highlighted in the diagram, the architecture would leverage two domains, the source Office 365 tenant retains the original domain (company.com). The destination Office 365 tenant would be configured with a new domain (newcompany.com). This approach would mitigate the Office 365 domain limitation, however, has ramifications for any user operating within the destination Office 365 tenant.&lt;/p&gt;

&lt;p&gt;To ensure a seamless experience for all users and the recipients of any email, a re-write service would be leveraged, which ensures all outbound email from the destination Office 365 tenant would be sent under the original domain (company.com). Additionally, any inbound email to the original domain (compnay.com) would be automatically forwarded to the destination Office 365 tenant. Therefore, the migration should be transparent to all users and the recipients of any emails, protecting the brand and ensuring business continuity.&lt;/p&gt;

&lt;p&gt;Collaboration would be achieved via federation between Skype for Business and/or Teams (source) and Teams (destination). This assumes Skype for Business would be fully replaced by Teams (as per the product direction from Microsoft). Therefore, regardless of the migration-state (pre/post-migration), users would still be able to interact via instant messaging, VoIP, etc.&lt;/p&gt;

&lt;p&gt;Finally, once the last user had been migrated, the required domain in the source Office 365 tenant could be released and transferred to the destination Office 365 tenant.&lt;/p&gt;

&lt;h3 id=&quot;considerations&quot;&gt;Considerations&lt;/h3&gt;

&lt;p&gt;Although I have great confidence that this proposed approach/architecture would meet the business requirements, any migration and/or coexistence between two Office 365 tenants remains very immature. Therefore, I would anticipate issues, bugs and user confusion. For example, outlined below are a few considerations.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Global Address List (GAL):&lt;/strong&gt; Ideally, the Global Address List (GAL) in the source and destination Office 365 tenants would need to be updated and synchronised ahead of any user migration. If not, users would be forced to manually look-up and input email addresses.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Personal Assistants:&lt;/strong&gt; Although the defined approach/architecture enables a phased migration, there would still be fixed dependencies between specific user groups. For example, if a personal assistant were to be migrated separately from their team, they would temporarily lose access to any delegated email, calendaring, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Orphaned Meetings:&lt;/strong&gt; Due to the nature in which data would be copied between Office 365 tenants, certain historical re-occurring meetings may become orphaned (no ability to update). In this scenario, if the meeting needed to be modified, it would need to be recreated. The impact of this consideration should naturally reduce over time.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Internal Email:&lt;/strong&gt; The previously described domain re-write service only impacts external email, therefore, any internal email sent from a migrated user would be under the temporary domain (newcompany.com). Considering this only impacts internal email, the brand impact should minimal.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;There are multiple options that could be considered when attempting to migrate between two Office 365 tenants. Unfortunately, though my analysis, I have concluded that there is no “perfect” option, each having their own list of positives, negatives and risks.&lt;/p&gt;

&lt;p&gt;As highlighted, the likely business requirement to support a phased migration results in a technically complex approach/architecture, requiring administrative level access to the source and destination (Office 365 and Active Directory), as well as introduces temporary middleware (adding cost).&lt;/p&gt;

&lt;p&gt;With that said, I remain confident that the proposed approach/architecture would be viable and likely the only way to effectively manage and support the previously describes technical complexities and business requirements.&lt;/p&gt;

&lt;p&gt;If you are planning or have experience migrating between two Office 365 tenants, I would be very interested to hear from you! I would also be happy to share my approach/architecture in more detail.&lt;/p&gt;
</description>
        <pubDate>Fri, 17 Jan 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/01/17/O365-Tenant-Migration/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/01/17/O365-Tenant-Migration/</guid>
      </item>
    
      <item>
        <title>My Setup (Q1 2020)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;h3 id=&quot;home-setup&quot;&gt;Home Setup&lt;/h3&gt;

&lt;p&gt;At home, I switch between three devices. My daily driver is a &lt;a href=&quot;/2019/11/18/Razer-Blade/&quot;&gt;Razer Blade 15 Advanced (Late-2019)&lt;/a&gt;. It’s primarily used for productivity tasks, software development, photo editing, virtual labs, gaming and game development (&lt;a href=&quot;/2017/03/09/GameMaker-Studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;). The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Razer Blade 15 Advanced (Late-2019)&lt;/li&gt;
  &lt;li&gt;2.6GHz 6-Core Intel i7-9750H (Turbo up to 4.5GHz)&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance Series 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 970 EVO Plus PCIe NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 2080 Max-Q 8GB GDDR6&lt;/li&gt;
  &lt;li&gt;15.6-inch 4K OLED Touch DCI-P3 HDR400 Display (3840x2160)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also have a 16-inch Apple MacBook Pro (NOV-2019), which is a secondary device providing native access to the Apple ecosystem for software development, video editing, etc. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;16-inch MacBook Pro with Retina Display (NOV-2019)&lt;/li&gt;
  &lt;li&gt;2.4GHz 8-Core Intel i9-9980HK (Turbo up to 5.0GHz)&lt;/li&gt;
  &lt;li&gt;32GB 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;1TB PCIe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;AMD Radeon Pro 5500M 8GB GDDR6&lt;/li&gt;
  &lt;li&gt;16-inch IPS P3 Display (3072x1920, 500nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alongside my notebooks, I have a custom-built PC. The specification (listed below) is a couple of years old but still provides excellent overall performance. Although released in 2018, the &lt;a href=&quot;2018/10/26/GeForce-RTX/&quot;&gt;GeForce RTX 2080 Ti&lt;/a&gt; is still a phenomenal graphics card, enabling high-performance Ray Tracing gaming.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus Maximus VIII Hero Alpha (Intel Z170)&lt;/li&gt;
  &lt;li&gt;Intel Core i7-6700K 4.0GHz @ 4.6GHz&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;32GB Corsair Vengeance LPX DDR4 PC4-24000C15 (15-17-17-35)&lt;/li&gt;
  &lt;li&gt;1TB Samsung PM981 M.2 PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;PNY GeForce RTX 2080 Ti 11GB XLR8 Gaming Overclocked Edition&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
  &lt;li&gt;Bowers &amp;amp; Wilkins MM-1 Speakers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Intel Core i7-6700K is four-years-old, however, Intel has provided little incentive to upgrade. For example, their upcoming 10th generation processors are still based on the Skylake microarchitecture, first released in 2015.&lt;/p&gt;

&lt;p&gt;I continue to watch AMD closely, who are now the clear performance leaders with their Zen 2 microarchitecture, but will probably delay any future upgrades until transformative technologies such as PCI-e 4.0 are mainstream.&lt;/p&gt;

&lt;p&gt;In total I have three displays, two 27-inch Dell U2718Q IPS HDR 4K monitors used for productivity and colour accurate work, as well as one 27-inch Dell 144Hz G-Sync monitor used for gaming. The exact model numbers are highlighted below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2x Dell U2718Q IPS HDR 4K (3840x2160 / 60Hz / 5ms / HDR10)&lt;/li&gt;
  &lt;li&gt;1x Dell S2716DG TN G-Sync (2560x1440 / 144Hz / 1ms)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is kept fairly minimal, with all monitors mounted on third-party stands to help maximise desk space. The Razer Blade 15 Advanced and MacBook Pro connects to the monitors via a &lt;a href=&quot;https://www.amazon.co.uk/StarTech-comThunderbolt-Dock-Windows-DisplayPort-Docking/dp/B07BJJX47G/&quot;&gt;StarTech Dual-DisplayPort to ThunderBolt 3 Adapter&lt;/a&gt;, which provides a single-cable solution.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup16.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, for peripherals, I primarily use the &lt;a href=&quot;https://www.logitech.com/en-gb/product/craft&quot;&gt;Logitech Craft&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/product/mx-anywhere-2s-flow&quot;&gt;Logitech MX Anywhere 2S&lt;/a&gt; and &lt;a href=&quot;https://www.logitech.com/en-gb/product/brio&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt;. The keyboard and mouse were selected as they include “Easy-Switch”, which makes it simple to toggle between multiple Bluetooth devices.&lt;/p&gt;

&lt;p&gt;The image below provides a closer look at the two Dell U2718Q IPS HDR 4K monitors and peripherals.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup17.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The far end of the desk provides access to the Dell S2716DG G-Sync monitor, which can be pushed flush against the wall. You can also see the Bowers &amp;amp; Wilkins MM-1 Speakers, which are connected to the PC and Mac. The flat desk edge provides a clean surface for additional peripherals, such as my flight controller (&lt;a href=&quot;https://www.flightsim.com/vbfs/content.php?16051-Review-Saitek-X-55-Rhino-HOTAS-System&quot;&gt;Saitek X-55&lt;/a&gt;) and steering wheel (&lt;a href=&quot;http://gaming.logitech.com/en-gb/product/g29-driving-force&quot;&gt;Logitech G29&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;As highlighted in the image below, the PC is hidden under the desk, with the case door exposed providing easy access to the components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup13.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk and matching pedestals are from &lt;a href=&quot;https://www.tcofficefurniture.co.uk&quot;&gt;Three Counties Office Furniture&lt;/a&gt;. They are designed for corporate use, therefore are hard-wearing and include integrated cable management. The dual-monitor arm is from &lt;a href=&quot;https://www.cmd-ltd.com/&quot;&gt;CMD&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/multi-use-guest-chairs/setu-chair.html&quot;&gt;Herman Miller Setu&lt;/a&gt; chair, which includes the Kinematic Spine to control resistance and automatically support your weight as you recline.&lt;/p&gt;

&lt;h3 id=&quot;work-setup&quot;&gt;Work Setup&lt;/h3&gt;

&lt;p&gt;At work, I use the Razer Blade and/or MacBook Pro (depending on the workload). To provide consistency with home, I leverage the same monitors (Dell U2718Q IPS HDR 4K), display adapter, and peripherals (e.g. Mouse, Keyboard, and Webcam).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/officesetup04.jpg&quot; alt=&quot;Office Setup&quot; title=&quot;Office Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk is very basic, with a simple dual-monitor stand. Similar to at home, I use a Herman Miller chair at work, however, due to the extended hours, it is the more robust &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/performance-work-chairs/mirra-2-chairs.html&quot;&gt;Mirra 2&lt;/a&gt;. This chair includes a phenomenal amount of adjustment, ensuring all-day comfort.&lt;/p&gt;
</description>
        <pubDate>Mon, 06 Jan 2020 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2020/01/06/My-Setup-Q1-2020/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2020/01/06/My-Setup-Q1-2020/</guid>
      </item>
    
      <item>
        <title>Architecture Community</title>
        <description>&lt;p&gt;This article is part of a series. I would recommend reading the articles in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required framing.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/09/Service-Delivery/&quot;&gt;Service Delivery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/03/01/SD-WAN/&quot;&gt;SD-WAN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/06/08/Automation/&quot;&gt;Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/11/Device-as-a-Service/&quot;&gt;Device-as-a-Service&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/17/Identity-Access-Management/&quot;&gt;Identity Access Management&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/10/02/Unified-Communications/&quot;&gt;Unified Communications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/11/08/Line-of-Business-Apps/&quot;&gt;Line of Business Apps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, this series aims to explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;The previous articles have focused on design, technology, positioning and delivery. This article will highlight my proposed enterprise architecture methodology, including the organisation structure and processes. The article builds upon concepts I explored in my 2016 series, focused on Enterprise IT Architecture.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/01/05/enterprise-it-architecture/&quot;&gt;Enterprise IT Architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/02/21/ea-principles/&quot;&gt;EA Principles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/04/03/ea-positioning/&quot;&gt;EA Positioning&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These articles are not required reading, simply shared for reference.&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;As per the 2011 Wall Street Journal article, “&lt;a href=&quot;https://www.wsj.com/articles/SB10001424053111903480904576512250915629460&quot;&gt;Software is Eating the World&lt;/a&gt;”. To some extent, every business, across every industry, must now consider itself a &lt;strong&gt;technology&lt;/strong&gt; business. Therefore, every business strategy must inherently prioritise a &lt;strong&gt;digital business model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;As referenced by &lt;a href=&quot;https://simonsinek.com/&quot;&gt;Simon Sinek&lt;/a&gt;, as part of the popular &lt;a href=&quot;https://simonsinek.com/commit/the-golden-circle&quot;&gt;The Golden Circle&lt;/a&gt; framework, Information Technology has the potential to have a profound impact on the “HOW” and “WHAT”, powering the business vision (WHY).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/thegoldencircle.jpg&quot; alt=&quot;The Golden Circle&quot; title=&quot;The Golden Circle&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Referencing my previously defined business characteristics&lt;/a&gt;, I believe that any business with an emerging digital business model must look to leverage the expertise and experience that undoubtedly exists within IT. In parallel, IT organisations must look to maximise their value contribution by proactively prioritising business outcomes. Therefore, a generic vision for IT could read:&lt;/p&gt;

&lt;p&gt;*“Partner to create value through innovative digital products, services and insights, that help to &lt;insert business=&quot;&quot; outcome=&quot;&quot;&gt;.&quot;*&lt;/insert&gt;&lt;/p&gt;

&lt;p&gt;To enable this vision, a direct and continuous connection must be established between the digital products/services/insights and the business outcome. I would position a “product mindset” as a key philosophical approach, evolving from the traditional “project mindset” that is common across IT.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Project Mindset:&lt;/strong&gt; A way of funding and organising the delivery of a specific output with a fixed end date.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Product Mindset:&lt;/strong&gt; Designed to continually create value throughout the lifecycle of a given product.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This philosophy would incorporate key industry concepts, such as product ownership, product teams, iterative planning, continuous improvement and continuous investment.&lt;/p&gt;

&lt;p&gt;In short, instead of focusing on a fixed output, a product mindset would focus on the outcome, which would have a profound impact on how the business organises, governs and funds IT.&lt;/p&gt;

&lt;p&gt;The diagram below highlights my proposed IT organisation design, supporting 170+ IT users.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/eac01.jpg&quot; alt=&quot;IT Organisation&quot; title=&quot;IT Organisation&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Enterprise prioritisation and a focus on maximising value would help ensure that resources were effectively utilised, directly and holistically supporting key business outcomes. Outlined below is a summary of each team, including the high-level roles and responsibilities.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Business Relationship Management (BRM):&lt;/strong&gt; Accountable for product ownership (including product vision, backlog, lifecycle, communications), as well as enterprise governance, prioritisation and budgeting. BRM would represent the “digital vision” as part of a given business outcome, fostering the required business relationships, expertise and context. This holistic enterprise approach supports my belief that IT must aim to maximise its value contribution, being positioned as a differentiator and driving competitive advantage.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;SolutionOps:&lt;/strong&gt; Accountable for application solution design, delivery and operations, across all business functions, supported by an enterprise Application Managed Services (AMS) provider. SolutionOps would incorporate purchased (Commercial of the Shelf) and custom-developed applications, following a “DevSecOps” culture, with a focus on Continuous Delivery, Testing and Quality. SolutionOps would also be accountable for maintaining &lt;a href=&quot;/2019/11/08/Line-of-Business-Apps/&quot;&gt;Line of Business Apps&lt;/a&gt; (commodity/highly-industrialised), allowing for the consolidation of common practices (e.g. release management, regression testing, data integrations and data obfuscation). In theory, this approach would drive economies of scale and efficiency, reducing the risk of duplication, as well as promoting standardisation and re-use through techniques such as innersourcing.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;DataOps:&lt;/strong&gt; Accountable for enabling an automated, process-oriented methodology that facilitates the design and delivery of Enterprise Data and Analytics. DataOps would include data architecture, engineering and stewardship, ensuring data is discoverable, consumable and reusable, as well as enabling advanced data concepts such as Predictive Analytics, Machine Learning and Artificial Intelligence. This dedicated focus on data respects the importance of data as a critical business asset.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;TechOps:&lt;/strong&gt; Accountable for the design, delivery and operations of enterprise IT foundations, including infrastructure, platforms and local site operations. TechOps services would be made consumable via the &lt;a href=&quot;/2019/06/08/Automation/&quot;&gt;Automation&lt;/a&gt; (e.g. Cloud Direct and Cloud Brokered), enabling autonomy for SolutionOps and DataOps. This approach would help to maximise investments, as well as embed consistent information security, quality and privacy controls.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;IT BusinessOps:&lt;/strong&gt; Accountable for the enterprise management of financials, suppliers, resources, organisational change and the portfolio. IT BusinessOps would work alongside representatives from each team (BRM, SolutionOps, DataOps, TechOps, Information Security), looking to measure and maximise value across processes, policies, investments, financial planning, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Information Security:&lt;/strong&gt; Accountable for establishing and governing information security requirements, as well as protecting enterprise confidentiality, integrity and availability. Similar to Privacy and Quality, Information Security would be positioned as an embedded practise, therefore, this dedicated team would focus on providing specific expertise and external council, supporting the implementation of the previously described Zero Trust IT security model.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although the organisation design highlights a horizontally split (enterprise teams), the actual work would occur vertically (product teams).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/eac02.jpg&quot; alt=&quot;IT Organisation - Product Teams&quot; title=&quot;IT Organisation - Product Teams&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Product teams would be formed organically, based on the enterprise backlog, prioritisation and budget.&lt;/p&gt;

&lt;p&gt;Each product team would include appropriate business expertise (split across Customer, Product, Operations and Corporate), as well as a cross-section of skills, covering product ownership (BRM), application (SolutionOps) and data (DataOps) engineering, as well as consultancy from domain experts (TechOps and Information Security).&lt;/p&gt;

&lt;p&gt;The ability to scale elastically would be achieved through the Application Managed Services (AMS) provider, providing access to engineer and specialist resources.&lt;/p&gt;

&lt;h3 id=&quot;architecture-community&quot;&gt;Architecture Community&lt;/h3&gt;

&lt;p&gt;Building on my 2016 article “&lt;a href=&quot;/2016/01/05/enterprise-it-architecture/&quot;&gt;Enterprise IT Architecture&lt;/a&gt;”, the Enterprise Architecture Community (emphasis on the community) would be a virtual team, including representation from across the organisation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/eac03.jpg&quot; alt=&quot;Enterprise Architecture Community&quot; title=&quot;Enterprise Architecture Community&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The community of architects, each with specific expertise (e.g. business, solution, data and domain architects), would ensure enterprise architecture remains relevant, practical and delivering against a clear value proposition. Each architect would represent their area of expertise, providing thought leadership and contributing towards the enterprise outcome. This approach positions architecture as a core part of the end-to-end product lifecycle (not a disconnected team and/or set of processes), which helps to ensure strong business continuity and situational awareness.&lt;/p&gt;

&lt;p&gt;The goal of the Enterprise Architecture Community (EAC) would be to provide a “north star” for the enterprise, through the creation of principles, declarations and clear technology positioning via an enterprise reference architecture. Each member of the community would be accountable for distributing the enterprise direction, recognising that architecture as an embedded process, not restricted to those with “architect” in their title. This approach would promote the strategic direction of IT and the business by proactively triggering the right architecture conversations.&lt;/p&gt;

&lt;p&gt;The diagram below highlights my proposed Enterprise Architecture methodology, with key components being owned by Enterprise Architecture Community, leveraged by a product team (specifically engineers) during the design and delivery of a new solution.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/eac04.jpg&quot; alt=&quot;EAC Methodology&quot; title=&quot;EAC Methodology&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As highlighted in the article “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, I have defined four IT principles for each architecture domain (e.g. Business, Information, Application and Technology). These IT principles have been designed to be easy to consume, remember and adopt, targeting all of IT. The &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;article&lt;/a&gt; also includes IT declarations, which build upon the IT principles, providing additional context.&lt;/p&gt;

&lt;p&gt;To help ensure a direct and continuous connection between IT and the business outcomes, business capability mapping would be positioned to highlight all required capabilities across the value chain (e.g. Research &amp;amp; Development, Manufacturing, Commercial and Global Services). Any enterprise capability (leveraged by multiple parts of the value chain) would be mapped to the Enterprise Reference Architecture and positioned against key technology investments. This process would help to maximise the return on investment, whilst enabling standardisation and promoting re-use.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/eac05.jpg&quot; alt=&quot;EAC Reference Architecture&quot; title=&quot;EAC Reference Architecture&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Recognising the number of enterprise capabilities, I have split them into the following categories to simplify consumption and maintenance.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Security / Risk&lt;/li&gt;
  &lt;li&gt;Customer Management&lt;/li&gt;
  &lt;li&gt;Employee Management&lt;/li&gt;
  &lt;li&gt;Supplier Management&lt;/li&gt;
  &lt;li&gt;Process Management&lt;/li&gt;
  &lt;li&gt;Document Management&lt;/li&gt;
  &lt;li&gt;Data Management&lt;/li&gt;
  &lt;li&gt;Asset Management&lt;/li&gt;
  &lt;li&gt;Engineering&lt;/li&gt;
  &lt;li&gt;Communications&lt;/li&gt;
  &lt;li&gt;Enterprise Infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, I have defined the following process to govern enterprise architecture, placing an emphasis on the previously described IT principles, IT decelerations and reference architecture.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/eac06.jpg&quot; alt=&quot;EAC Process&quot; title=&quot;EAC Process&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Enterprise Architecture Community would be positioned as an enabler, not a barrier (something that adds unnecessary bureaucracy). Therefore, the process promotes and incentivises architecture alignment, rewarding the product teams with autonomy (no review required), resulting in speed to value and agility.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I believe this lightweight/embedded approach to enterprise architecture promotes the right behaviours, avoiding the trap of creating an “Ivory Tower”, where the value proposition of architecture would be quickly lost.&lt;/p&gt;

&lt;p&gt;The approach does not follow a specific architecture methodology (e.g. &lt;a href=&quot;https://www.opengroup.org/togaf&quot;&gt;TOGAF&lt;/a&gt;, etc.) Instead, I have taken the best bits from multiple sources, rightsizing based on my &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;previously defined business characteristics&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Wed, 11 Dec 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/12/11/Architecture-Community/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/12/11/Architecture-Community/</guid>
      </item>
    
      <item>
        <title>VMware Workstation Pro</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2019/11/18/Razer-Blade/&quot;&gt;Since purchasing a Razer Blade 15 Advanced&lt;/a&gt;, I have been using Windows 10 Pro as my primary operating system. Although I am no stranger to Windows, it has been over sixteen years since I last used it as my daily driver.&lt;/p&gt;

&lt;p&gt;As highlighted in the article “&lt;a href=&quot;/2019/02/14/macos-and-windows/&quot;&gt;macOS and Windows&lt;/a&gt;”, the transition to Windows was fairly seamless. However, I have had a few challenges with my development workflow, which on macOS utilised a combination of &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt; and &lt;a href=&quot;https://www.vmware.com/products/fusion.html&quot;&gt;VMware Fusion&lt;/a&gt;. I would do the majority of my development locally, leveraging Docker natively installed on macOS, but also have a range of virtual machines (e.g. Fedora, Ubuntu, Windows 10) running to support specific activities.&lt;/p&gt;

&lt;p&gt;In theory, the same setup is viable on Windows 10. However, unfortunately &lt;a href=&quot;https://www.vmware.com/uk/products/workstation-pro.html&quot;&gt;VMware Workstation Pro&lt;/a&gt; (the Windows alternative to VMware Fusion) can only launch a Virtual Machine if &lt;a href=&quot;https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/&quot;&gt;Hyper-V&lt;/a&gt; is disabled. This would be fine, except the default install of Docker for Windows requires Hyper-V.&lt;/p&gt;

&lt;p&gt;This frustrating “catch-22” means that you cannot run Docker and VMware Workstation Pro simultaneously. If you attempt to do so, you will receive the error “VMware Player and Device/Credential Guard are not compatible”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vmwarehyperv01.jpg&quot; alt=&quot;VMware Workstation Pro - Issue&quot; title=&quot;VMware Workstation Pro - Issue&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Outlined below are three options to mitigate this issue.&lt;/p&gt;

&lt;h4 id=&quot;option-one-hyper-v-only&quot;&gt;Option One: Hyper-V Only&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/&quot;&gt;Hyper-V&lt;/a&gt; is the native Microsoft Hypervisor built into Windows 10 Pro. Knowing that &lt;a href=&quot;/2014/07/21/docker-containerisation-virtualisation/&quot;&gt;Docker is built on Linux Container technology&lt;/a&gt;, it leverages Hyper-V to run containers on Windows. This makes sense, as Hyper-V is performant, efficient and natively available, allowing Docker to focus on their code (instead of the Hypervisor). There are &lt;a href=&quot;https://github.com/pecigonzalo/docker-machine-vmwareworkstation&quot;&gt;third-party projects&lt;/a&gt; that attempt to make Docker run on a VMware Hypervisor, however, as these are community developed, I am not convinced they can be trusted for business workloads.&lt;/p&gt;

&lt;p&gt;Knowing that Hyper-V is a hypervisor, the first option would be to use Hyper-V to host all virtual machines? This would remove the need for VMware Workstation Pro and therefore avoid the conflict, mitigating the issue.&lt;/p&gt;

&lt;p&gt;Hyper-V is an excellent hypervisor, especially when acting as a backing service and/or managing server-side workloads. Unfortunately, the client experience has some frustrating limitations.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The initial setup and networking configuration for guest operating systems can be cumbersome.&lt;/li&gt;
  &lt;li&gt;Access to virtual machines will need to occur via RDP (or equivalent), which will impact some native features of the guest operating system (e.g. audio, video, graphics, etc.)&lt;/li&gt;
  &lt;li&gt;Installation of native drivers on a virtual machine is complex and in some cases, not possible.&lt;/li&gt;
  &lt;li&gt;Limitations associated with dynamically attaching and removing external devices from the virtual machine.&lt;/li&gt;
  &lt;li&gt;Specific limitations related to running Linux virtual machines, impacting core services (e.g. sound, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, Hyper-V on Windows 10 Pro is essentially a “free” embedded hypervisor, primarily used to facilitate specific Windows 10 tasks. VMware Workstation Pro is a paid, standalone product, focused exclusively on hosting virtual machines. Therefore, it should be no surprise that VMware offers the superior experience.&lt;/p&gt;

&lt;p&gt;With this in mind, although I could probably make Hyper-V work, I do not feel replacing VMware Workstation Pro with Hyper-V is the right option for me.&lt;/p&gt;

&lt;h4 id=&quot;option-two-vmware-only&quot;&gt;Option Two: VMware Only&lt;/h4&gt;

&lt;p&gt;The second option would be to leave Hyper-V disabled, enabling VMware Workstation Pro and installing Docker on a guest operating system running in a virtual machine.&lt;/p&gt;

&lt;p&gt;This option assumes that Hyper-V is not required for any other service, as well as places a higher emphasis on the virtual machine. For example, to maximise productivity, it would likely make sense to shift your entire development workflow to the virtual machine. This could bring some advantages (the use of native Linux), but would also impact performance and require you to perpetually maintain a second operating system.&lt;/p&gt;

&lt;p&gt;I prefer this option over option one, helped by the fact that I usually maintain a Fedora virtual machine for other purposes. However, there is something about working for long periods within a virtual machine that feels inefficient and cumbersome, likely caused by the additional  abstraction layer between the user input and underlying hardware (audio, video, etc.)&lt;/p&gt;

&lt;h4 id=&quot;option-three-hyper-v--vmware-switching&quot;&gt;Option Three: Hyper-V / VMware Switching&lt;/h4&gt;

&lt;p&gt;The final option would be to simply enable or disable Hyper-V depending on the situation.&lt;/p&gt;

&lt;p&gt;In my scenario, I would need to decide to run Docker or VMware Workstation Pro, but not both simultaneously. Although this would be frustrating, I rarely execute commands at the same time, therefore making the option viable.&lt;/p&gt;

&lt;p&gt;The most efficient way to disable Hyper-V is to run the following command as an administrator.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bcdedit /set hypervisorlaunchtype off
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once complete (image below), the system will need to be restarted.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vmwarehyperv02.jpg&quot; alt=&quot;Disable Hyper-V&quot; title=&quot;Disable Hyper-V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To reenable Hyper-V, simply run the following command as an administrator.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bcdedit /set hypervisorlaunchtype auto
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Again, once the command has completed (image below), the system must be restarted&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vmwarehyperv03.jpg&quot; alt=&quot;Enable Hyper-V&quot; title=&quot;Enable Hyper-V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;On a performant system, the overall process should only take a few minutes, but can still be inconvenient, especially if you have multiple applications open.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Today there is no perfect option. I prefer options two or three, however, they both have drawbacks.&lt;/p&gt;

&lt;p&gt;In the future, I hope that &lt;a href=&quot;/2019/04/12/WSL/&quot;&gt;Windows Subsystem for Linux (WSL)&lt;/a&gt; will permanently remediate this issue, allowing Docker to leverage WSL 2 as the backend. In theory, this would remove the need for Hyper-V, replaced by a native Linux kernel.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.docker.com/docker-for-windows/wsl-tech-preview/&quot;&gt;It would appear this capability is in development&lt;/a&gt; (which is great news), but currently only available as a “tech preview”, when combined with a Windows 10 Pro insider build (19018 or higher). I tend to avoid natively installing pre-release software on my primary system, therefore will wait for the general release to complete my testing (expected in April 2020).&lt;/p&gt;
</description>
        <pubDate>Sun, 08 Dec 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/12/08/VMware-Workstation-Pro/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/12/08/VMware-Workstation-Pro/</guid>
      </item>
    
      <item>
        <title>Razer Blade</title>
        <description>&lt;p&gt;In February 2019, I temporarily &lt;a href=&quot;/2019/02/06/ThinkPad-X1-Extreme/&quot;&gt;switched from a MacBook Pro to a Lenovo ThinkPad X1 Extreme as my daily driver&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Although partly driven by work, I was also growing increasingly frustrated by Apple and the direction they were taking the Mac and macOS. As stated in my &lt;a href=&quot;/2019/02/06/ThinkPad-X1-Extreme/&quot;&gt;previous article&lt;/a&gt;, I liked the ThinkPad X1 Extreme, especially the performance and keyboard. Unfortunately, the poor trackpad and subsequent release of the 16-inch MacBook Pro enticed me back to the Mac.&lt;/p&gt;

&lt;p&gt;Although the result of this experiment could be considered a failure, there was a lot to like about the Windows ecosystem, therefore I continued to hunt for a laptop that would better meet my expectations (which I appreciate are higher than most).&lt;/p&gt;

&lt;p&gt;This led me to &lt;a href=&quot;https://www.razer.com/gaming-laptops/razer-blade&quot;&gt;Razer Blade 15 Advanced&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It is fair to say that the Razer Blade is heavily inspired by the MacBook Pro, with a full unibody aluminium chassis, minimalist styling and large trackpad. However, arguably Razer has improved upon the design, delivering a 4K OLED touch display, a wider selection of ports (USB-A, Thunderbolt 3, HDMI, Mini-Display Port), upgradable components (Memory, SSD and Wireless), as well as NVIDIA graphics options (GeForce GTX 1660 Ti to Quadro RTX 5000).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/razerblade01.jpg&quot; alt=&quot;Razer Blade&quot; title=&quot;Razer Blade&quot; /&gt;&lt;/p&gt;

&lt;p&gt;These improvements would all count for nothing if the build quality was poor. Thankfully, this is not the case, as the Razer Blade delivers comparable build quality to Apple, with a ridged, dense construction and refined edges.&lt;/p&gt;

&lt;p&gt;Building on Razer’s heritage as a gaming company, the Razer Blade is still a “gaming” laptop at its core, but thankfully far better balanced than the competition, with a focus on subtle design, size, weight and battery life. I am not aware of any other gaming laptop on the market that I would consider viable for my workload.&lt;/p&gt;

&lt;h3 id=&quot;specification&quot;&gt;Specification&lt;/h3&gt;

&lt;p&gt;The Razer Blade series includes multiple models, with customisable options primarily focused on graphics, storage and display. I selected the RTX 2080 Max-Q, 512GB SSD and 4K OLED model. This premium selection commands a high retail price (£3149.99), however, following a few days of research, I was able to purchase one for £2249.00 (still expensive, but more in-line with my expectations).&lt;/p&gt;

&lt;p&gt;Although the factory-built Razer Blade specification is good, I took the opportunity to upgrade the memory and storage, selecting 64GB Corsair Vengeance Series 2666MHz RAM (£289.99) and a 1TB Samsung 970 EVO Plus PCIe NVMe SSD (£191.73).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/razerblade02.jpg&quot; alt=&quot;Razer Blade&quot; title=&quot;Razer Blade&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The installation of memory and storage was very simple, through the removal of ten Torx T5 screws, the bottom panel provides clear access to the components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/razerblade03.jpg&quot; alt=&quot;Razer Blade&quot; title=&quot;Razer Blade&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The full specification of my Razer Blade can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Razer Blade 15 Advanced (Late-2019)&lt;/li&gt;
  &lt;li&gt;2.6GHz 6-Core Intel i7-9750H (Turbo up to 4.5GHz)&lt;/li&gt;
  &lt;li&gt;64GB Corsair Vengeance Series 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;1TB Samsung 970 EVO Plus PCIe NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce RTX 2080 Max-Q 8GB GDDR6&lt;/li&gt;
  &lt;li&gt;15.6-inch 4K OLED Touch DCI-P3 HDR400 Display (3840x2160)&lt;/li&gt;
  &lt;li&gt;3x USB 3.2 Gen 2 (USB-A), 1x Thunderbolt 3 (USB-C)&lt;/li&gt;
  &lt;li&gt;1x HDMI, 1x Mini- Display Port&lt;/li&gt;
  &lt;li&gt;Intel Wireless-AX200 (802.11 a/b/g/n/ac/ax)&lt;/li&gt;
  &lt;li&gt;Bluetooth 5&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full price of the laptop (after the upgrades) was £2730.72, which is still cheaper than the retail price from Razer for this model. It is also favourable when compared against an equivalent Lenovo ThinkPad X1 Extreme (£2700.00) and 16-inch MacBook Pro (£3600.00).&lt;/p&gt;

&lt;h3 id=&quot;build-quality&quot;&gt;Build Quality&lt;/h3&gt;

&lt;p&gt;As previously stated, the Razer Blade is very well built, certainly the best I have seen in the Windows ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/razerblade04.jpg&quot; alt=&quot;Razer Blade&quot; title=&quot;Razer Blade&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thanks to the use of OLED technology, the display is something special! It is bright, with the iconic OLED deep blacks and “colour pop”. It is also factory calibrated and colour accurate, but the accuracy can be impacted by changes in peak brightness (which is disappointing).&lt;/p&gt;

&lt;p&gt;The keyboard is good (similar to the new 16-inch MacBook Pro) and the trackpad uses Windows precision drivers. Knowing that the trackpad was my main point of contention with the ThinkPad X1 Extreme, I am pleased to report that (in my opinion) the Razer Blade is much better. Not only is the trackpad bigger (similar to a 13-inch MacBook Pro), but also more responsive (although palm rejection is not perfect). Unfortunately, it still falls a long way short of an Apple trackpad, which remains the gold standard.&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;Unsurprisingly, the Razer Blade performs very well, offering more than enough power to support any workload (including modern games with &lt;a href=&quot;](2018/10/26/GeForce-RTX/)&quot;&gt;Ray Tracing&lt;/a&gt;). I have included a few benchmarks below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;PCMark 10:&lt;/strong&gt; 4279&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;3DMark Time Spy:&lt;/strong&gt; 7627&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;ATTO Disk Benchmark:&lt;/strong&gt; Average 2700MB Read / 2500MB Write&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It should be noted that these scores are real-world numbers, with no overclocking and all of my &lt;a href=&quot;/2019/02/14/macos-and-windows/&quot;&gt;default software&lt;/a&gt; loaded. The laptop is also BitLocker enabled, therefore the PCMark and ATTO scores include a &lt;a href=&quot;/2019/09/30/BitLocker/&quot;&gt;10% penalty due to the software-based full drive encryption&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Alongside the raw performance, battery life is respectable. When under heavy load (e.g. virtual machines, video editing, gaming), the battery life is obviously impacted (only achieving a few hours). However, I am pleased to report that when focused on productivity tasks and coding, I was able to use the device for the duration of an Atlantic flight (around seven hours). It is certainly no match for my 16-inch MacBook Pro, but the other benefits help to balance the equation.&lt;/p&gt;

&lt;p&gt;Connected to the battery, it is worth mentioning the charger, which is quite large (230W) and includes a braided lead which can be difficult to keep tidy. The charger also leverages a proprietary connector and the laptop cannot be charged via USB-C, which is both disappointing and restrictive. Therefore, although travelling with the laptop is easy, managing the charger can be cumbersome, making me miss the (aeroplane compatible) 96W 16-inch MacBook Pro USB-C charger.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I have been incredibly impressed with the Razer Blade. I would have never imagined I would purchase a “gaming” laptop as my daily driver.&lt;/p&gt;

&lt;p&gt;However, I believe Razer has achieved the impossible, delivering a laptop that includes a subtle, sophisticated design, portable, powerful and upgradable. I cannot state how great it felt to physically upgrade the laptop post-purchase, something that is rarely an option with modern technology (especially within the Apple ecosystem).&lt;/p&gt;

&lt;p&gt;In short, I would highly recommend the Razer Blade!&lt;/p&gt;
</description>
        <pubDate>Mon, 18 Nov 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/11/18/Razer-Blade/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/11/18/Razer-Blade/</guid>
      </item>
    
      <item>
        <title>Line of Business Apps</title>
        <description>&lt;p&gt;This article is part of a series. I would recommend reading the articles in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required framing.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/09/Service-Delivery/&quot;&gt;Service Delivery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/03/01/SD-WAN/&quot;&gt;SD-WAN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/06/08/Automation/&quot;&gt;Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/11/Device-as-a-Service/&quot;&gt;Device-as-a-Service&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/17/Identity-Access-Management/&quot;&gt;Identity Access Management&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/10/02/Unified-Communications/&quot;&gt;Unified Communications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, this series aims to explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;Within this article, I will highlight my proposed positioning for key Line of Business Applications, specifically Enterprise Resource Planning (ERP), Human Capital/Resourcing, Customer Relationship Management (CRM), Regulated Content and Data Management and Service Integration and Management (SIAM).&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;The terminology “Line of Business Application” is not consistently defined, in the context of this article, I will use the term to describe a “mission-critical” application that supports a key business capability.&lt;/p&gt;

&lt;p&gt;The typical business value chain includes many highly industrialised processes, covering Research &amp;amp; Development, Manufacturing, Commercial and Global Services. For example, Enterprise Resource Planning (ERP), Human Capital Management (HCM), Customer Relationship Management (CRM), etc. These are critical processes to any business, but could also be considered a commodity.&lt;/p&gt;

&lt;p&gt;With this in mind, my philosophy would be to prioritise highly scalable, efficient and reliable services, instead of looking to differentiate where there is minimal competitive advantage.&lt;/p&gt;

&lt;h3 id=&quot;enterprise-resource-planning-erp&quot;&gt;Enterprise Resource Planning (ERP)&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;With the previously defined business characteristics in mind&lt;/a&gt;, I would position &lt;a href=&quot;https://www.sap.com/products/s4hana-erp.html&quot;&gt;SAP S/4HANA&lt;/a&gt; as my Enterprise Resource Planning (ERP) solution, used to manage and track core business processes, resources (cash, materials, production capacity) and operations. The diagram below outlines which capabilities would be supported by SAP, highlighting core components (dark blue) and bolt-ons (light blue).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/lobapps01.jpg&quot; alt=&quot;SAP S/4HANA&quot; title=&quot;SAP S/4HANA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;SAP can be an incredibly complex beast, therefore my preference would be to embrace the capabilities found in S/4HANA, avoiding (where possible) custom configuration.&lt;/p&gt;

&lt;p&gt;My single instance of SAP would be hosted by &lt;a href=&quot;https://www.virtustream.com/&quot;&gt;Virtustream&lt;/a&gt;, who have a wealth of experience deploying and supporting SAP for large enterprise customers within their specialist (purpose-built) cloud.&lt;/p&gt;

&lt;p&gt;I did explore the use of a Public Cloud provider (e.g. Azure) for SAP hosting but prioritised Virtustream based on the following value positioning.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Hosting/Basis:&lt;/strong&gt; Virtustream deliver unified (one-vendor) SAP Hosting and Basis.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Full Stack:&lt;/strong&gt; Virtustream would be accountable for the full technology stack and therefore not reliant on a third-party Public Cloud (e.g. Azure).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Experience/Expertise:&lt;/strong&gt; Outside of SAP, Virtustream has the most experience deploying/supporting SAP.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cost Effective:&lt;/strong&gt; Virtustream leverage a unique consumption-based commercial model, delivered via fine-grained measurement of compute, memory, network and storage resources.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Hybrid Multi-Cloud:&lt;/strong&gt; Virtustream is Public Cloud agnostic (reducing lock-in and protecting against data transit costs).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Architecture Alignment:&lt;/strong&gt; Virtustream partner with &lt;a href=&quot;https://www.equinix.com/&quot;&gt;Equinix&lt;/a&gt;, who I have positioned as my &lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Colocation Data Centre&lt;/a&gt; provider.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Performance:&lt;/strong&gt; Virtustream would peer with the &lt;a href=&quot;https://www.equinix.co.uk/interconnection-services/cloud-exchange-fabric/&quot;&gt;Equinix ECX Fabric&lt;/a&gt;, enabling a cost-effective fibre cross-connect.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Dell Partnership:&lt;/strong&gt; Virtustream are part of &lt;a href=&quot;https://www.delltechnologies.com/&quot;&gt;Dell Technologies&lt;/a&gt;, maximising my previously described investments across Dell Server, Dell Client, VMware and RSA.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With Virtustream, the business would get a fully-managed SAP instance (SaaS-like) and the benefits of a cloud (utility compute) cost model, combined with cost-effective “LAN-like” performance, that would not penalise for data transit.&lt;/p&gt;

&lt;p&gt;The diagram below provides a high-level overview of my proposed Virtustream SAP Hosting architecture.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/lobapps02.jpg&quot; alt=&quot;Virtustream&quot; title=&quot;Virtustream&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As depicted, the proposed architecture includes multiple user interaction points, including traditional VPN/VDI via the Colocation Data Centre infrastructure, as well as Direct Internet Access (DIA) for Cloud-Native (Web/API) interactions (embracing &lt;a href=&quot;https://www.sap.com/uk/products/fiori.html&quot;&gt;SAP Fiori&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&quot;human-capitalresourcing&quot;&gt;Human Capital/Resourcing&lt;/h3&gt;

&lt;p&gt;I would position &lt;a href=&quot;https://www.workday.com/&quot;&gt;Workday&lt;/a&gt; as my unified platform for Human Capital/Resourcing, covering Human Capital Management (HCM), Human Resource Management (HRM) and Human Resource Planning (HRP).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Human Capital Management (HCM):&lt;/strong&gt;  A set of practices related to people resource management. These practices focus on the business need to provide specific competencies, covering workforce acquisition, workforce management and workforce optimisation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Human Resource Management (HRM):&lt;/strong&gt; The strategic approach to the effective management of people in a business, enabling a competitive advantage.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Human Resource Planning (HRP):&lt;/strong&gt; The process of forecasting the future human resource requirements of the business and optimising the existing human resource capacity to meet specific business requirements.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Workday would support the following key business capabilities:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Recruiting&lt;/li&gt;
  &lt;li&gt;Onboarding&lt;/li&gt;
  &lt;li&gt;Payroll&lt;/li&gt;
  &lt;li&gt;Timekeeping&lt;/li&gt;
  &lt;li&gt;Benefits&lt;/li&gt;
  &lt;li&gt;Compensation&lt;/li&gt;
  &lt;li&gt;Talent Management/Succession&lt;/li&gt;
  &lt;li&gt;Organisation Management (Joiners, Movers, Leavers)&lt;/li&gt;
  &lt;li&gt;Performance Management&lt;/li&gt;
  &lt;li&gt;Reporting (HR, Headcount, Trending Workforce data, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Workday is a SaaS platform, with a strong focus on integrations (&lt;a href=&quot;https://community.workday.com/api&quot;&gt;Workday API Documentation&lt;/a&gt;). Alongside SAP, it would become a primary source system of my proposed &lt;a href=&quot;(/2019/09/17/Identity-Access-Management/)&quot;&gt;Identify Access Management (IAM)&lt;/a&gt; architecture.&lt;/p&gt;

&lt;h3 id=&quot;customer-relationship-management-crm&quot;&gt;Customer Relationship Management (CRM)&lt;/h3&gt;

&lt;p&gt;I would position &lt;a href=&quot;https://www.veeva.com/products/multichannel-crm/crm/&quot;&gt;Veeva CRM&lt;/a&gt; and &lt;a href=&quot;https://www.veeva.com/products/network-customer-master/&quot;&gt;Veeva Network&lt;/a&gt; for Customer Relationship Management (CRM) and Customer Master Data Management.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.veeva.com/products/multichannel-crm/crm/&quot;&gt;Veeva CRM&lt;/a&gt; is a vertical built on &lt;a href=&quot;https://www.salesforce.com/&quot;&gt;Salesforce.com&lt;/a&gt;, delivering specific capabilities for life sciences (&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;the industry I selected as part of my previously defined business characteristics&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Over the years, Veeva CRM has become the “de facto” standard for Customer Relationship Management across life sciences, delivering advanced mobility, multichannel capabilities and real-time insights for sales teams. Looking outside of life sciences, if a clear market leader does not exist, I would explore &lt;a href=&quot;https://www.salesforce.com/products/sales-cloud/overview/&quot;&gt;Salesforce.com Sales Cloud&lt;/a&gt; and/or &lt;a href=&quot;https://dynamics.microsoft.com/&quot;&gt;Microsoft Dynamics&lt;/a&gt; (depending on the business requirements and wider investments).&lt;/p&gt;

&lt;p&gt;When combined with my proposed &lt;a href=&quot;/2019/09/11/Device-as-a-Service/&quot;&gt;endpoint architecture&lt;/a&gt;, Veeva CRM would provide an easy to use, rich user experience that would aim to improve productivity for field teams that have limited “office/admin” time.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.veeva.com/products/network-customer-master/&quot;&gt;Veeva Network&lt;/a&gt; provides a highly integrated Customer Master Data Management capability, enabling localised business applications and a global data model. When enabled alongside Veeva CRM, it would deliver a seamless end-to-end experience, with no third-party integrations to manage.&lt;/p&gt;

&lt;p&gt;Veeva Network also includes a wide range of standard integrations, for example, &lt;a href=&quot;https://www.concur.co.uk/&quot;&gt;SAP Concur&lt;/a&gt; for expense reporting, which would help to streamline key business processes, whilst improving quality and transparency.&lt;/p&gt;

&lt;p&gt;Veeva Network would form part of my wider Enterprise Data &amp;amp; Analytics architecture, which I plan to cover in a future article.&lt;/p&gt;

&lt;p&gt;Finally, &lt;a href=&quot;https://www.veeva.com/products/multichannel-crm/approved-email/&quot;&gt;Veeva Approved Email&lt;/a&gt; and &lt;a href=&quot;https://www.veeva.com/products/multichannel-crm/clm/&quot;&gt;Veeva Cloud Loop Marketing (CLM)&lt;/a&gt; would be positioned to facilitate multi-channel engagement.&lt;/p&gt;

&lt;h3 id=&quot;regulated-content-and-data-management&quot;&gt;Regulated Content and Data Management&lt;/h3&gt;

&lt;p&gt;Building on my Veeva CRM and Veeva Network investments, I would position &lt;a href=&quot;https://www.veeva.com/products/enterprise-content-management/&quot;&gt;Veeva Vault&lt;/a&gt; as my enterprise content management platform. Veeva Vault would manage both content and data, enabling end-to-end processes across commercial, medical, clinical, regulatory, quality and safety. &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;As per my previous defined business characteristics&lt;/a&gt;) these processes would be critical to help ensure regulatory compliance.&lt;/p&gt;

&lt;p&gt;The Veeva Vault Platform includes multiple applications, specifically:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/lobapps03.jpg&quot; alt=&quot;Veeva Vault&quot; title=&quot;Veeva Vault&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To maximise the return on investment, I would position the use of the following applications, supporting multiple business functions (R&amp;amp;D, Manufacturing, Commercial and Global Services).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.veeva.com/products/clinical-operations/&quot;&gt;Vault Clinical Operations&lt;/a&gt;:&lt;/strong&gt; Supporting the study process and method control, providing a single system of record for shared CTMS, TMF and study start-up content.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.veeva.com/products/vault-quality/&quot;&gt;Vault Quality Suite&lt;/a&gt;:&lt;/strong&gt; Supporting the Quality/Control processes, covering Quality Plan, Action Tracking, Change, Deviation, Complaint, Audit, Lab Investigation, Product Safety Assessment (PSA) and Notification to Management (NTM). Veeva Quality Suite would also act as the authoritative source for quality documentation/content (e.g. Procedures, Policies, Validation, Reports, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.veeva.com/products/vault-RIM/&quot;&gt;Vault RIM Suite&lt;/a&gt;:&lt;/strong&gt; Supporting the planning, execution and oversight of all regulatory activities within a single, unified Regulatory Information Management (RIM) application.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.veeva.com/products/vault-safety/&quot;&gt;Vault Safety&lt;/a&gt;:&lt;/strong&gt; Supporting the collection, management and real-time oversight of adverse events.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.veeva.com/products/content-management/vault-promomats/&quot;&gt;Vault PromoMats&lt;/a&gt;:&lt;/strong&gt; Supporting commercial and scientific disclosure, providing digital asset management, review and distribution capabilities.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Similar to Veeva CRM and Veeva Network, Veeva Vault is a SaaS platform (adhering to my previously defined &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;IT principles and IT declarations&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&quot;service-integration-and-management-siam&quot;&gt;Service Integration and Management (SIAM)&lt;/h3&gt;

&lt;p&gt;Service Integration and Management (SIAM) is an approach to manage, integrate and unify multiple vendors, helping them to deliver end-to-end services that meet specific business requirements. SIAM replaces the traditional approach, where vendors are managed in isolation, with separate processes and expectations, often resulting in hand-off issues and/or “finger-pointing”.&lt;/p&gt;

&lt;p&gt;Specifically, SIAM enforces a combined “revenue at risk” model, which contractually dictates the holistic performance (shared Service Level Agreements) across all vendors, incentivising collaboration and collective innovation.&lt;/p&gt;

&lt;p&gt;To enable effective Service Integration and Management (SIAM), the following IT capabilities would need to be established and maintained.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Service Integration Governance:&lt;/strong&gt; Define, establish and continuously adapt the service integration governance.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Service Integration Organisation:&lt;/strong&gt; Develop and manage a distributed organisation supporting changing business requirements.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Business Requirements:&lt;/strong&gt; Manage business demand and develop a service portfolio in alignment with business requirements.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tools and Information:&lt;/strong&gt; Manage distributed information and the integration tool solutions.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Providers and Contracts:&lt;/strong&gt; Select an appropriate provider portfolio and to manage the providers according to the outsourcing contracts.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;End-to-end Services:&lt;/strong&gt; Understand and manage the business services end-to-end, covering business and IT services.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Recognising the critical importance of IT Service Management (ITSM) as part of Service Integration and Management (SIAM), I would position &lt;a href=&quot;https://www.servicenow.com/&quot;&gt;ServiceNow&lt;/a&gt; as my unified ITSM/SIAM platform. ServiceNow would support the following key capabilities:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Configuration Management&lt;/li&gt;
  &lt;li&gt;Problem Management&lt;/li&gt;
  &lt;li&gt;Change Management&lt;/li&gt;
  &lt;li&gt;Incident Management&lt;/li&gt;
  &lt;li&gt;Knowledge Management&lt;/li&gt;
  &lt;li&gt;Request Fulfilment Management&lt;/li&gt;
  &lt;li&gt;IT Asset Reconciliation (Hardware and Software)&lt;/li&gt;
  &lt;li&gt;IT Cost Management&lt;/li&gt;
  &lt;li&gt;Business Process Tracking (IT Business Management)&lt;/li&gt;
  &lt;li&gt;User Effort/Satisfaction (KA Surveys)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As outlined above, leveraging the integrations provided by Workday, ServiceNow would compliment specific HR processes, providing workflow capabilities for HR/Ethics and Compliance Case Management, as well as host the &lt;a href=&quot;/2019/10/02/Unified-Communications/&quot;&gt;previously described Information Portal&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;As outlined in the article “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, my goal was to target SaaS providers for all highly-industrialised/commodity capabilities, regardless of business criticality.&lt;/p&gt;

&lt;p&gt;I believe the capabilities and positioning outlined in this article demonstrate how this could be achieved (even within a regulated industry), enabling “best in class” services, with a focus on the business requirements (not the underlying technology).&lt;/p&gt;

&lt;p&gt;Recognising the additional benefits of SaaS, specifically reduced implementation time, simplified support and continuous updates, I believe my “Cloud First” strategy would dramatically improve business agility, enabling a better outcome for the customer.&lt;/p&gt;
</description>
        <pubDate>Fri, 08 Nov 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/11/08/Line-of-Business-Apps/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/11/08/Line-of-Business-Apps/</guid>
      </item>
    
      <item>
        <title>Fedora 31</title>
        <description>&lt;p&gt;In October, &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora 31&lt;/a&gt; was officially released.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2011/02/12/linux-directory-guide/&quot;&gt;As long-time Linux user&lt;/a&gt;, I was eager to test the new release of Fedora (&lt;a href=&quot;/2018/05/01/fedora-28/&quot;&gt;my preferred Linux distribution&lt;/a&gt;), therefore I took the opportunity to install it as the primary operating system on a &lt;a href=&quot;https://www.dell.com/en-us/work/shop/workstations/precision-5540-mobile-workstation/spd/precision-15-5540-laptop&quot;&gt;Dell Precision 5540&lt;/a&gt;. At work, the &lt;a href=&quot;/2019/09/11/Device-as-a-Service/&quot;&gt;Dell Precision 5540 is positioned as our “high Performance” laptop&lt;/a&gt;, therefore Linux is a common requirement to support specialist workloads.&lt;/p&gt;

&lt;p&gt;The full specification of the Dell Precision 5540 can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dell.com/en-us/work/shop/workstations/precision-5540-mobile-workstation/spd/precision-15-5540-laptop&quot;&gt;Dell Precision 5540&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;15” 1920x1080 100% sRGB Non-Touch Display&lt;/li&gt;
  &lt;li&gt;2.6GHz 6-Core Intel Core i7-9850H (Turbo 4.6GHz)&lt;/li&gt;
  &lt;li&gt;32GB DDR4 RAM&lt;/li&gt;
  &lt;li&gt;512GB M.2 PCIe NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;NVIDIA Quadro T1000 4GB GDDR5 (ISV Certified)&lt;/li&gt;
  &lt;li&gt;Intel Dual Band (802.11ac) Wireless + Bluetooth 5.0&lt;/li&gt;
  &lt;li&gt;TPM 2.0 + Windows Hello&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Dell Precision 5540 is &lt;a href=&quot;https://certification.ubuntu.com/hardware/201904-26937&quot;&gt;officially certified to run Ubuntu&lt;/a&gt; and thankfully the installation of Fedora 31 went smoothly. The only change required was to switch the “SATA Operation” from “RAID to “AHCI” in the BIOS. Without this change, the Fedora installation wizard could not detect the internal SSD.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fedora3101.jpg&quot; alt=&quot;Fedora 31&quot; title=&quot;Fedora 31&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once complete, I began the process of installing my &lt;a href=&quot;/2019/07/02/Linux-Software/&quot;&gt;common software&lt;/a&gt;. As outlined in the article “&lt;a href=&quot;https://www.lifeintech.com/2019/09/22/Flatpak-and-Snappy/&quot;&gt;Flatpak and Snappy&lt;/a&gt;”, the majority of the applications I use support cross-distribution packages.&lt;/p&gt;

&lt;p&gt;The steps outlined below, highlight the commands I run to install my common software, making Fedora suitable for daily usage (personal and work).&lt;/p&gt;

&lt;p&gt;Before any additional software installation, I always ensure the current software catalogue is up to date. This can be completed via GNOME Software or using the following terminal command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf upgrade --refresh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The only Operating System customisation software that I install is “&lt;a href=&quot;https://wiki.gnome.org/Apps/Tweaks&quot;&gt;GNOME Tweaks&lt;/a&gt;”, which provides access to advance GNOME features and extensions. For example, the ability to modify the default appearance, keyboard and mouse, etc. To install “GNOME Tweaks”, run the following terminal command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install gnome-tweak-tool
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
For better or worse, I still use &lt;a href=&quot;https://www.google.com/chrome/&quot;&gt;Google Chrome&lt;/a&gt; as my primary browser. Due to some technical limitations, Chrome is not available as a cross-distribution package. However, it can be easily installed via the &lt;a href=&quot;https://www.lifeintech.com/2017/05/01/dnf-cheat-sheet/&quot;&gt;DNF package manager&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install fedora-workstation-repositories
sudo dnf config-manager --set-enabled google-chrome
sudo dnf install google-chrome-stable
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
When installed from the official Fedora repository, Google Chrome is automaticlly configured as a “Managed Browser”, meaning you will see the message “Your browser is managed by your organisation”. This is because Fedora  applies two Chrome policies that aim to mitigate specific SSO limitations. These policies can be reviewed by navigating to “&lt;a href=&quot;chrome://policy/&quot;&gt;chrome://policy/&lt;/a&gt;”. Although not required, I prefer to remove these policies using the following terminal command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf remove fedora-chromium-config
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;https://flatpak.org/&quot;&gt;Flatpak&lt;/a&gt; is installed by default with Fedora 31, however, it must be enabled before any software installation.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once enabled, I install the majority of my software via &lt;a href=&quot;https://flathub.org/&quot;&gt;flathub&lt;/a&gt;. For example, the command “flatpak install flathub com.slack.Slack” will install “&lt;a href=&quot;https://slack.com/&quot;&gt;Slack&lt;/a&gt;”.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;flatpak install flathub org.libreoffice.LibreOffice
flatpak install flathub com.wps.Office
flatpak install flathub io.atom.Atom
flatpak install flathub com.visualstudio.code
flatpak install flathub com.github.bcedu.vgrive
flatpak install flathub com.spotify.Client
flatpak install flathub org.videolan.VLC
flatpak install flathub com.slack.Slack
flatpak install flathub org.gimp.GIMP
flatpak install flathub fr.handbrake.ghb
flatpak install flathub org.openshot.OpenShot
flatpak install flathub org.kde.kdenlive
flatpak install flathub fr.natron.Natron
flatpak install flathub org.eclipse.Committers
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Unfortunately, not all of my software is available via Flatpak, therefore I also install and enable &lt;a href=&quot;https://snapcraft.io/&quot;&gt;Snappy&lt;/a&gt;. It is important to note that you must log out after running each command.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install snapd
# Log Out
sudo ln -s /var/lib/snapd/snap /snap
# Log Out
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
I install the &lt;a href=&quot;https://simplenote.com/&quot;&gt;SimpleNote&lt;/a&gt; snap, which is not currently available as a Flatpak.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo snap install simplenote
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
To ensure compatibility with Microsoft Office, I install the True Type font package (e.g. Arial, Georgia, Times New Roman, etc.) using the following terminal commands.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo su

sudo dnf install curl cabextract xorg-x11-font-utils fontconfig

sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once complete, Fedora 31 is ready to go!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fedora3102.jpg&quot; alt=&quot;Fedora 31&quot; title=&quot;Fedora 31&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, everything installed successfully and Fedora 31 is running well on the Dell Precision 5540. I have not had any issues with drivers and all core components (e.g. graphics, wireless) operate as designed, without any additional user intervention.  Although this is exactly what you would expect, it is not always the case with Linux.&lt;/p&gt;

&lt;p&gt;Stability has been good, without any major system crashes, but I do get occasional glitches. For example, mouse delays are not uncommon and I receive “kernel oops” upon boot (related to the graphics driver). These minor issues have not impacted my daily usage, but keep Fedora from feeling “polished”.&lt;/p&gt;

&lt;p&gt;Performance and Resource Management are both acceptable, but not exceptional. This has become a theme with Fedora, which is not the best performing Linux distribution. At idle, Fedora 31 consumes 4% CPU and 1.5GB of Memory, which is fine in a laptop with 6-cores/12-threads and 32GB, but something to consider if running on a lower specification.&lt;/p&gt;

&lt;p&gt;Overall, Fedora 31 is a little underwhelming as an update but delivers what I have come to expect from a new release. As a GNOME user, Fedora is still my preferred Linux distribution, something that I don’t anticipate changing any time soon.&lt;/p&gt;
</description>
        <pubDate>Sat, 02 Nov 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/11/02/Fedora-31/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/11/02/Fedora-31/</guid>
      </item>
    
      <item>
        <title>Unified Communications</title>
        <description>&lt;p&gt;This article is part of a series. I would recommend reading the articles in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required framing.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/09/Service-Delivery/&quot;&gt;Service Delivery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/03/01/SD-WAN/&quot;&gt;SD-WAN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/06/08/Automation/&quot;&gt;Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/11/Device-as-a-Service/&quot;&gt;Device-as-a-Service&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/17/Identity-Access-Management/&quot;&gt;Identity Access Management&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, this series aims to explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;Within this article, I will highlight my proposed Unified Communications and Collaboration (UCC) architecture, describing my philosophy, key technology decisions and positioning. In the interest of brevity, this article will reference “Unified Communications and Collaboration” as UCC.&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;In the broadest sense, UCC encompasses all forms of communication and collaboration across a network, ranging from one-to-one engagement to public broadcasts.&lt;/p&gt;

&lt;p&gt;Over the years, the techniques and technologies used to enable UCC have evolved dramatically, but the goal has remained largely unchanged.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Unify human and device communications, streamlining business processes and improving user productivity.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In 2014, like &lt;a href=&quot;https://www.jivesoftware.com/&quot;&gt;Jive&lt;/a&gt;, &lt;a href=&quot;https://www.salesforce.com/eu/products/chatter/overview/&quot;&gt;Chatter&lt;/a&gt; and &lt;a href=&quot;https://products.office.com/en-ie/yammer/yammer-overview&quot;&gt;Yammer&lt;/a&gt; before it, &lt;a href=&quot;https://slack.com/&quot;&gt;Slack&lt;/a&gt; was positioned as the technology that would “&lt;a href=&quot;https://www.theverge.com/2014/8/12/5991005/slack-is-killing-email-yes-really&quot;&gt;kill email&lt;/a&gt;”, enabling a true UCC experience. Inevitably, this has yet to happen…&lt;/p&gt;

&lt;p&gt;In my opinion, looking for “one technology to rule them all” is a futile task, recognising that UCC is very subjective and context-specific. For example.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Subjective:&lt;/strong&gt; One person may like email, while another may prefer instant messaging, it comes down to personal preference and working style. This is also influenced by the specific generation (Generation Z, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Context-Specific:&lt;/strong&gt; Different communication channels are effective in different scenarios. For example, a Webinar (live voice and video) is a more effective channel than email for a virtual event.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this in mind, my proposed architecture would not target a single technology. Instead, I would create a UCC brand, positioning multiple technologies that complement each other.&lt;/p&gt;

&lt;p&gt;I believe this approach would promote diversity within the workplace (encouraging different working styles), whilst still providing a framework for effective collaboration.&lt;/p&gt;

&lt;h3 id=&quot;architecture&quot;&gt;Architecture&lt;/h3&gt;

&lt;p&gt;To support my positioning, I have defined a model that groups the different forms of collaboration into four types.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Personal Collaboration:&lt;/strong&gt; Collaboration between a limited number (less than 10) of known participants. Collaboration could include Asynchronous Messaging, Synchronous Messaging, Voice, Video, Screen Sharing, Document Sharing and Document Co-authoring.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Team Collaboration:&lt;/strong&gt; Collaboration within a team or group (less than 50), where all participants are known. Collaboration could include Asynchronous Messaging, Synchronous Messaging, Voice, Video, Screen Sharing, Document Sharing and Document Co-authoring.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Community Collaboration:&lt;/strong&gt; Collaboration within a community (more than 50), where all participants are known. Collaboration could include Asynchronous Messaging, Live Video Streaming, Town Hall Meetings, Webinars, Digital Signage, Information Portal and Document Sharing.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Open Collaboration:&lt;/strong&gt; Collaboration with an open community of any size, where the participants are unknown. Collaboration could include Asynchronous Messaging, Synchronous Messaging, Live Video Streaming, Webinars and Call Centres.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The diagram below builds upon the model, mapping my proposed UCC architecture across the four types of collaboration.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ucc01.jpg&quot; alt=&quot;Unified Communications and Collaboration&quot; title=&quot;Unified Communications and Collaboration&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As depicted, I would position the following technologies.&lt;/p&gt;

&lt;h4 id=&quot;personal-collaboration&quot;&gt;Personal Collaboration&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://products.office.com/en-ww/outlook/email-and-calendar-software-microsoft-outlook&quot;&gt;Outlook&lt;/a&gt;:&lt;/strong&gt; Email.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://products.office.com/en-us/microsoft-teams/group-chat-software&quot;&gt;Teams&lt;/a&gt;:&lt;/strong&gt; Messaging, Voice, Video and Screen Sharing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://zoom.us/&quot;&gt;Zoom&lt;/a&gt;:&lt;/strong&gt; Voice, Video and Screen Sharing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://onedrive.live.com/about/en-us/business/&quot;&gt;OneDrive&lt;/a&gt;:&lt;/strong&gt; Document Sharing and Document Co-authoring.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;team-collaboration&quot;&gt;Team Collaboration&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://products.office.com/en-us/microsoft-teams/group-chat-software&quot;&gt;Teams&lt;/a&gt;:&lt;/strong&gt; Messaging, Voice, Video and Screen Sharing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://zoom.us/&quot;&gt;Zoom&lt;/a&gt;:&lt;/strong&gt; Voice, Video and Screen Sharing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://onedrive.live.com/about/en-us/business/&quot;&gt;OneDrive&lt;/a&gt;:&lt;/strong&gt; Document Sharing and Document Co-authoring.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;community-collaboration&quot;&gt;Community Collaboration&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.facebook.com/workplace&quot;&gt;Workplace&lt;/a&gt;:&lt;/strong&gt; Messaging and Live Video Streaming.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://zoom.us/&quot;&gt;Zoom&lt;/a&gt;:&lt;/strong&gt; Town Hall Meetings, Webinars and Digital Signage.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.servicenow.com/&quot;&gt;ServiceNow&lt;/a&gt;:&lt;/strong&gt; Information Portal.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://onedrive.live.com/about/en-us/business/&quot;&gt;OneDrive&lt;/a&gt;:&lt;/strong&gt; Document Sharing and Document Co-authoring.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;open-collaboration&quot;&gt;Open Collaboration&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Public Social Networks:&lt;/strong&gt; Messaging, Live Video Streaming and Webinars.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.genesys.com/en-gb/platform/purecloud&quot;&gt;Genesys Pure Cloud&lt;/a&gt;:&lt;/strong&gt; Call Centres.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;UCC can be a contentious area, as the technologies are widely used, but prone to error (specifically real-time voice and video). Therefore, outlined below are some of the key considerations that informed my architecture positioning.&lt;/p&gt;

&lt;h3 id=&quot;microsoft-office-365&quot;&gt;Microsoft Office 365&lt;/h3&gt;

&lt;p&gt;Building upon the investments highlighted in the article “&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;”, I have positioned Microsoft Office 365 (specifically Outlook, Teams and OneDrive) to enable a highly integrated experience, which would include the core productivity tools (e.g. Word, PowerPoint, Excel, etc.)&lt;/p&gt;

&lt;p&gt;Although the diagram does not specifically reference &lt;a href=&quot;https://products.office.com/en-us/sharepoint/collaboration&quot;&gt;SharePoint&lt;/a&gt;, it is important to recognise that many of the Office 365 services are powered by SharePoint, including Teams and OneDrive. Therefore, although I would not position the use of SharePoint directly, it would exist within the proposed architecture, enabling capabilities such as unified search, etc.&lt;/p&gt;

&lt;p&gt;Teams would be positioned as the primary technology for Messaging, Voice, Video and Screen Sharing. However, Microsoft has a “checkered past” when it comes to voice and video, with a history of poor execution (e.g. Office Communicator, Lync, Skype for Business, etc.)&lt;/p&gt;

&lt;p&gt;As a result, I would position &lt;a href=&quot;https://www.zoom.us&quot;&gt;Zoom&lt;/a&gt; as an alternative option for users who require the best possible voice and video experience. In my experience, Zoom offers a “best in class” user experience, prioritising performance, reliability and multi-platform support.&lt;/p&gt;

&lt;p&gt;To maximise this investment, Zoom would also be positioned for specialist capabilities, such as Town Hall Meetings (10,000 viewers), Webinars and Digital Signage.&lt;/p&gt;

&lt;h3 id=&quot;social-collaboration&quot;&gt;Social Collaboration&lt;/h3&gt;

&lt;p&gt;In 2012, Microsoft acquired &lt;a href=&quot;https://products.office.com/en-gb/yammer/yammer-overview&quot;&gt;Yammer&lt;/a&gt;, which is a social networking service designed for enterprise communication. Unfortunately, over the past seven-years, Microsoft has failed to capitalise on this acquisition, resulting in a disjointed user experience. With the new focus on Teams, it is unclear how Yammer will be positioned in the future, potentially remaining a standalone service or perhaps being merged into Teams (we might learn more in November at &lt;a href=&quot;https://www.microsoft.com/en-us/ignite&quot;&gt;Microsoft Ignite&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Due to this uncertainty, I would not position Yammer as a core service, instead I would position &lt;a href=&quot;https://facebook.com/workplace&quot;&gt;Workplace&lt;/a&gt; as a cost-effective alternative. Workplace is built by &lt;a href=&quot;https://www.facebook.com/&quot;&gt;Facebook&lt;/a&gt; and therefore delivers an intuitive/comfortable user experience for social collaboration. Thanks to Facebook’s estimated 2.45 billion active users, Workplace requires very little training, dramatically reducing the organisational change impact.&lt;/p&gt;

&lt;p&gt;The screenshot below highlights Workplace in action, providing a familiar experience for anyone that has used Facebook.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ucc02.jpg&quot; alt=&quot;Workplace&quot; title=&quot;Workplace&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although running on a separate technology-stack, Workplace and Facebook share the same DNA, enabling common capabilities such as News Feed, Groups, Live Video, etc. Also, Workplace enables specific enterprise capabilities, such as Single Sign-On, &lt;a href=&quot;https://en-gb.facebook.com/workplace/features/org-chart&quot;&gt;Org Charts&lt;/a&gt;, &lt;a href=&quot;https://en-gb.facebook.com/workplace/features/integrations&quot;&gt;OneDrive and Zoom Integrations&lt;/a&gt;, as well as &lt;a href=&quot;https://en-gb.facebook.com/workplace/features/safety-check&quot;&gt;Safety Check&lt;/a&gt; (supporting crisis communications).&lt;/p&gt;

&lt;h3 id=&quot;information-portal&quot;&gt;Information Portal&lt;/h3&gt;

&lt;p&gt;A traditional Information Portal (AKA Intranet) may be considered antiquated, but it is easy to overlook the power of a simple page that provides links to important resources (e.g. Help Desk, Payroll, HR, Training, etc.)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2019/06/08/Automation/&quot;&gt;I have previously positioned ServiceNow&lt;/a&gt; as my IT Service Management platform, therefore would look to maximise this investment by leveraging their “&lt;a href=&quot;https://www.servicenow.com/products/employee-self-service.html&quot;&gt;Employee Service Centre&lt;/a&gt;” as an Information Portal.&lt;/p&gt;

&lt;p&gt;The screenshot below is an example of an Information Portal built using ServiceNow, highlighting key capabilities such as Search, Service Requests, Case Management, Virtual Agents, etc.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ucc03.jpg&quot; alt=&quot;ServiceNow Employee Service Centre&quot; title=&quot;ServiceNow Employee Service Centre&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The ServiceNow Information Portal would be simple and cost-effective to implement, maintain and support. It would also provide direct access to all requests and knowledge articles stored in ServiceNow, as well as native integration with HR services such as &lt;a href=&quot;https://www.workday.com/&quot;&gt;Workday&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;onedrive-and-digital-assistant&quot;&gt;OneDrive and Digital Assistant&lt;/h3&gt;

&lt;p&gt;Positioned across all collaboration types (e.g. Personal, Team and Community) would be two key services, OneDrive and a Digital Assistant.&lt;/p&gt;

&lt;p&gt;OneDrive would provide unified content synchronisation and collaboration, tightly integrated with the wider productivity and UCC architecture (e.g. Teams, Workplace, etc.) It would also provide a consistent foundation for document sharing and document co-authoring, as well as central control pane for governance, security and data loss prevention.&lt;/p&gt;

&lt;p&gt;The Digital Assistant represents a vision of the future, enabled via an intelligent chatbot, which could be accessed from any of the UCC technologies (e.g. Teams, Workplace, ServiceNow, etc.) The goal of the Digital Assistant would be to streamline business processes, by providing answers to commonly asked questions, as well as automating daily tasks. For example, a user could ask “how many holiday days do I have left” or “submit a holiday request for Friday”.&lt;/p&gt;

&lt;h3 id=&quot;telephony&quot;&gt;Telephony&lt;/h3&gt;

&lt;p&gt;Although telephony is one of the most mature forms of network-based communication, it is often still the most complex and costly to implement at scale.&lt;/p&gt;

&lt;p&gt;As previously referenced, I have positioned Teams as my primary technology for Messaging, Voice, Video and Screen Sharing. Building upon this strategy, I would enhance the Microsoft 365 E5 Phone System feature by integrating with a Direct Routing service to enable a PSTN breakout at required sites.&lt;/p&gt;

&lt;p&gt;To facilitate the PSTN interconnection I would position &lt;a href=&quot;https://www.audiocodes.com/&quot;&gt;AudioCodes&lt;/a&gt; as the Session Border Controller (SBC) and Analogue Gateway supplier. The proposed SBC architecture would be hosted in Azure and/or turnkey appliances at the local sites (driven by in-country regulations for the provisioning of Direct Inbound Dial numbers).&lt;/p&gt;

&lt;p&gt;Finally, &lt;a href=&quot;/2019/03/01/SD-WAN/&quot;&gt;maximising my existing investment&lt;/a&gt;, I would position &lt;a href=&quot;https://www.centurylink.com/&quot;&gt;CenturyLink&lt;/a&gt; to integrate the telephony components, enabling a single dial plan across the enterprise, delivered to the business “as-a-Service”.&lt;/p&gt;

&lt;p&gt;This approach to telephony would compliment my winder UCC architecture, delivering a singular interface for all voice requirements.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, I believe my proposed UCC architecture supports my goal to enable personal preference, while still delivering a consistent, simple, user experience. This would be accomplished through a unified brand and carefully positioned technologies that complement each other, providing a cost-effective, reliable and extensible foundation.&lt;/p&gt;
</description>
        <pubDate>Wed, 02 Oct 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/10/02/Unified-Communications/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/10/02/Unified-Communications/</guid>
      </item>
    
      <item>
        <title>BitLocker</title>
        <description>&lt;p&gt;On 24th September, Microsoft released a software update for Windows 10 (KB4516071) which modified the default behaviour of BitLocker.&lt;/p&gt;

&lt;p&gt;BitLocker is the embedded full drive encryption technology built into Windows, offering protection against data loss if the physical hardware becomes compromised. I personally always enable BitLocker on portable Windows devices, as well as the equivalent full drive encryption technologies on macOS (Apple File Vault) and Linux.&lt;/p&gt;

&lt;p&gt;Historically, where available, Windows would enable hardware-based encryption, which offers better performance than the software-based equivalent. For example, when buying a Samsung SSD, Samsung provides the option to enable hardware-based encryption using its own method, designed specifically for the drive itself.&lt;/p&gt;

&lt;p&gt;Although more performant, this approach relies on the hardware provider to ensure the encryption method is secure. Unfortunately, security researchers have discovered that not all providers can be trusted, potentially putting the data at risk and voiding the value of full drive encryption.&lt;/p&gt;

&lt;p&gt;As a result, Microsoft has made the decision to make software-based encryption the default for BitLocker moving forward (existing drives will not be changed).&lt;/p&gt;

&lt;p&gt;Although I fully understand and respect the response from Microsoft (protecting the user should always be the first priority), it does mean that by default, anyone looking to leverage BitLocker will (by default) be sacrificing performance. When combined with the performance penalties associated with other vulnerabilities such as &lt;a href=&quot;/2018/01/14/meltdown-and-spectre/&quot;&gt;Meltdown and Spectre&lt;/a&gt;, this outcome is a little disappointing.&lt;/p&gt;

&lt;p&gt;As an example, in the article “&lt;a href=&quot;/2019/02/06/ThinkPad-X1-Extreme/&quot;&gt;ThinkPad X1 Extreme&lt;/a&gt;”, I benchmarked (&lt;a href=&quot;https://benchmarks.ul.com/pcmark10&quot;&gt;PCMark 10&lt;/a&gt; Windows 10 without drive encryption. Following the new update form Microsoft, I enabled BitLocker and re-ran the benchmark. The results can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;BitLocker Disabled:&lt;/strong&gt; 4716&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;BitLocker Enabled (Software-Based):&lt;/strong&gt; 4259&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although not completely scientific, the benchmark highlights a performance penalty of approximately 10%, which is in line with my expectation of software-based encryption.&lt;/p&gt;

&lt;p&gt;If you have enabled BitLocker, but unsure if hardware-based encryption has been enabled, simply run the following command as an administrator from the command line.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;manage-bde.exe -status
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
If hardware-based encryption is enabled, it will be clearly stated as part of the read-out. For example, the image below does not specifically state hardware-encryption.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/bitlocker01.jpg&quot; alt=&quot;BitLocker&quot; title=&quot;BitLocker&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, assuming you trust your hardware provider, it is possible to overwrite the default BitLocker setting. To achieve this outcome, I recommend referring to your hardware providers documentation, as the process may require third-party software. For example, Samsung drives can be managed using their “&lt;a href=&quot;https://www.samsung.com/semiconductor/minisite/ssd/product/consumer/magician/&quot;&gt;Samsung Magician&lt;/a&gt;” software.&lt;/p&gt;
</description>
        <pubDate>Mon, 30 Sep 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/09/30/BitLocker/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/09/30/BitLocker/</guid>
      </item>
    
      <item>
        <title>Flatpak and Snappy</title>
        <description>&lt;p&gt;Package managers provide a way of packaging, distributing, installing, maintaining, and removing applications. Packages contain metadata, such as the applications name, description, version, vendor, checksum, and a list of dependencies.&lt;/p&gt;

&lt;p&gt;In the Linux ecosystem, package management is very important, as applications are downloaded and installed from repositories, often requiring specific dependencies to run correctly.&lt;/p&gt;

&lt;p&gt;Unfortunately, package management on Linux can be confusing, as different Linux distributions prioritise different package managers. For example, Linux distributions based on Debian prioritise the Debian Package Management System (Dpkg), while Linux distributions from Red Hat prioritise the Red Hat Package Manager (RPM).&lt;/p&gt;

&lt;p&gt;To add additional complexity, there are multiple ways to interact with a package manager. For example:&lt;/p&gt;

&lt;h4 id=&quot;debian-package-management-system-dpkg&quot;&gt;Debian Package Management System (Dpkg)&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Advanced Packaging Tool (APT):&lt;/strong&gt; A front-end command line package management system for the Debian package manager.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aptitude Package Manager:&lt;/strong&gt; Another popular front-end command line package management system for the Debian package manager.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Synaptic Package Manager:&lt;/strong&gt; A GUI package management tool for the Advanced Packaging Tool (APT).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;red-hat-package-manager-rpm&quot;&gt;Red Hat Package Manager (RPM)&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Yellowdog Updater, Modified (YUM):&lt;/strong&gt; A command-line package manager, providing an interface to the Red Hat Package Manager (RPM).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dandified Yum (DNF):&lt;/strong&gt; A fork of the YUM package manager and the new default for Fedora (22 onwards).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am most familiar with YUM and DNF, but even after years of use, I still find managing packages cumbersome (hence I created a &lt;a href=&quot;https://www.lifeintech.com/2017/05/01/dnf-cheat-sheet/&quot;&gt;DNF Cheat Sheet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thankfully, over the past few years, package management across the Linux ecosystem has been slowly evolving, driven by the desire to deliver cross-distribution packages.&lt;/p&gt;

&lt;p&gt;Introducing &lt;a href=&quot;https://flatpak.org/&quot;&gt;Flatpak&lt;/a&gt; and &lt;a href=&quot;https://snapcraft.io/&quot;&gt;Snappy&lt;/a&gt;, which are both cross-distribution package managers.&lt;/p&gt;

&lt;h3 id=&quot;flatpak&quot;&gt;Flatpak&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://flatpak.org/&quot;&gt;Flatpak&lt;/a&gt; was developed as part of the &lt;a href=&quot;https://www.freedesktop.org/&quot;&gt;freedesktop.org&lt;/a&gt; project and was originally called xdg-app. Key features include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Containerised:&lt;/strong&gt; Software isolation, improving reliability and security.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cross-distribution:&lt;/strong&gt; Can be distributed across multiple Linux distributions.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Stable Platform:&lt;/strong&gt; Tightly coupled runtimes, providing a consistent foundation.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;System Permissions:&lt;/strong&gt; Granular control over system resources and permissions.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dependency Control:&lt;/strong&gt; Bundle all core-dependencies.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Unified Distribution:&lt;/strong&gt; Distribution via &lt;a href=&quot;https://flathub.org/home&quot;&gt;FlatHub&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Open-Source:&lt;/strong&gt; Flatpak is run as an independent and open-source project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Flatpak is supported by &lt;a href=&quot;https://flatpak.org/setup/&quot;&gt;21 Linux distributions&lt;/a&gt;, including &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;, &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora&lt;/a&gt;, &lt;a href=&quot;https://linuxmint.com/&quot;&gt;Mint&lt;/a&gt;, etc. Packages can be discovered, downloaded and installed from &lt;a href=&quot;https://flathub.org/home&quot;&gt;FlatHub&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;snappy&quot;&gt;Snappy&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://snapcraft.io/&quot;&gt;Snappy&lt;/a&gt; was developed by &lt;a href=&quot;https://canonical.com/&quot;&gt;Canonical&lt;/a&gt; (e.g. the developer of &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;). The packages are called snaps, enabled by the snapd tool. Key features include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Read-Only:&lt;/strong&gt; read-only, signed content, improving control and security.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Self Contained:&lt;/strong&gt; Decoupling applications from the underlying system.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cross-distribution:&lt;/strong&gt; Can be distributed across multiple Linux distributions.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Stable Platform:&lt;/strong&gt; Include a compressed filesystem that is mounted before execution.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;System Permissions:&lt;/strong&gt; Application communications occur via approved interfaces.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Desktop and IoT:&lt;/strong&gt; Support for desktop and IoT Linux use cases.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Simplified Distribution:&lt;/strong&gt; Distribution via &lt;a href=&quot;https://snapcraft.io/&quot;&gt;Snapcraft&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dependency Control:&lt;/strong&gt; Bundle all core-dependencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Snaps are supported by 41 Linux distributions, including &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt;, &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora&lt;/a&gt;, etc. Unsurprisingly, Snappy comes pre-installed on &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;. A popular source to discover, download and install snaps is &lt;a href=&quot;https://snapcraft.io/&quot;&gt;Snapcraft&lt;/a&gt;, as well as the &lt;a href=&quot;https://snapcraft.io/docs/installing-snap-store-app&quot;&gt;Snap Store&lt;/a&gt; app.&lt;/p&gt;

&lt;h3 id=&quot;my-applications&quot;&gt;My Applications&lt;/h3&gt;

&lt;p&gt;Earlier this year, &lt;a href=&quot;/2019/07/02/Linux-Software/&quot;&gt;I shared my list of commonly used Linux software&lt;/a&gt;. Building on that post, the table below highlights which applications are available via Flatpak and/or Snappy.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/flatpakandsnappy01.jpg&quot; alt=&quot;Flatpak and Snappy&quot; title=&quot;Flatpak and Snappy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, in the context of my workload, I have reasonably good coverage across Flatpak and Snappy. It is also worth mentioning that I found the search on FlatHub to be far more accurate/effective than Snapcraft.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;There are other cross-distribution package managers, for example, &lt;a href=&quot;https://appimage.org/&quot;&gt;AppImage&lt;/a&gt;. However, the majority of my usage has been with Flatpak and Snappy.&lt;/p&gt;

&lt;p&gt;It is a little ironic that multiple technologies have emerged in an attempt to reduce the fragmentation of package management across the Linux ecosystem. Personally, I prefer Flatpak, as I am predominantly a desktop user and believe their “independent” position better serves the Linux community.&lt;/p&gt;

&lt;p&gt;With that said, Flatpak and Snappy can be used simultaneously (which is what I do on Fedora), therefore, at least these new cross-distribution package managers do not conflict with each other.&lt;/p&gt;

&lt;p&gt;In summary, I am an advocate for the use of cross-distribution package managers, although ideally there would be one independent open-source option, instead of competing technologies. Over time, we might see consolidation or clearer positioning, where specific package managers are positioned for desktop, IoT, etc.) Finally, I am excited to see how features such as “application isolation” and “decoupling” can help enable new paradigms like immutable operating systems (e.g. &lt;a href=&quot;https://silverblue.fedoraproject.org/&quot;&gt;Fedora Silverblue&lt;/a&gt;).&lt;/p&gt;
</description>
        <pubDate>Sun, 22 Sep 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/09/22/Flatpak-and-Snappy/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/09/22/Flatpak-and-Snappy/</guid>
      </item>
    
      <item>
        <title>Identity Access Management</title>
        <description>&lt;p&gt;This article is part of a series. I would recommend reading the articles in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required framing.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/09/Service-Delivery/&quot;&gt;Service Delivery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/03/01/SD-WAN/&quot;&gt;SD-WAN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/06/08/Automation/&quot;&gt;Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/09/11/Device-as-a-Service/&quot;&gt;Device-as-a-Service&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, this series aims to explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;Within this article, I will highlight my proposed Identity Access Management (IAM) architecture, describing my philosophy, key technology decisions and positioning.&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;As previously described&lt;/a&gt;, I have positioned a Zero Trust IT security model. Zero Trust is a holistic approach to IT security, which goes beyond the traditional “trust but verify” and “moat/castle” strategies. Although these traditional strategies are still common within enterprise businesses, they primarily target environments where the business has end-to-end ownership, management and control of all IT services.&lt;/p&gt;

&lt;p&gt;In a modern IT ecosystem, it is very common for IT services to be distributed (e.g. SaaS Services, Cloud Hosting. etc.) Therefore, the users, services and data could be anywhere and everywhere, making the task of IT security increasingly complex.&lt;/p&gt;

&lt;p&gt;The answer to this challenge is not to perpetuate the inadequate strategies (e.g. moat/castle), but instead look to implement a new strategy, where the network is always assumed to be hostile, meaning internal and external threats exist at all times.&lt;/p&gt;

&lt;p&gt;With this in mind, Zero Trust implements new principles, techniques and technologies to help localise and isolate threats. For example, the following principles provide the foundation for a Zero Trust architecture.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The network is always assumed to be hostile, meaning external and internal threats exist on the network at all times.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Network locality (moat/castle) is not sufficient for deciding trust. No user or device is automatically trusted.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Micro-segmentation concepts create secure enclaves, limiting network and application flows between workloads, reducing the “blast radius” of an attack.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Every device, user and network flow is authenticated and authorised, preferably leveraging Multi-Factor Authentication (MFA).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A least-privilege access philosophy (need-to-known basis), where users are only granted the required access to complete their job (nothing more).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Policies must be dynamic and calculated from as many sources of data as possible, enabled via a central management control plane.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enabling these principles requires new technologies and techniques, such as Modern Identity Access Management, Microcore, Segmentation and Deep Visibility, which aim to provide a structured approach to threat identification, as well as limiting the impact of a breach.&lt;/p&gt;

&lt;p&gt;At the foundation, a Zero Trust architecture must be able to complete strict identity verification for every user and device trying to access a business resource, regardless of whether they exist within or outside of the network perimeter.&lt;/p&gt;

&lt;p&gt;Therefore, from an IT security perspective, Identity Access Management (IAM) becomes one of the most important and powerful technologies used to protect the business.&lt;/p&gt;

&lt;h3 id=&quot;architecture&quot;&gt;Architecture&lt;/h3&gt;

&lt;p&gt;Identity Access Management (IAM) aims to define and manage the role and access privileges of a user (e.g. employees, contractors, customers) and the circumstances in which they would be granted (or denied) specific privileges.&lt;/p&gt;

&lt;p&gt;The primary goal of Identity Access Management (IAM) is to create a single digital identity per user. Once that digital identity has been established, it must be maintained, modified and monitored throughout the user’s access lifecycle.&lt;/p&gt;

&lt;p&gt;The diagram below outlines my proposed Identity Access Management (IAM) architecture, including the provisioning flows.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/iam01.jpg&quot; alt=&quot;Identity Access Management&quot; title=&quot;Identity Access Management&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To enable this architecture, I would position the following technologies:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Workday, SAP:&lt;/strong&gt; Multiple decoupled source systems (specifically HR and ERP) synchronise data with the Master Identity Management System, providing flexibility and agility, specifically covering mergers, acquisitions, divestitures, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;RSA Identity Governance Lifecycle (IGL):&lt;/strong&gt; A unified Master Identity Management System, managing the lifecycle of identities, facilitating the Joiner/Mover/Leaver (JML) processes and providing continuous compliance capabilities.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Global Identity Repository:&lt;/strong&gt; A connected data source, providing secure/scalable access to user data via a RESTful API.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Active Directory:&lt;/strong&gt; Directory services, providing authentication and authorisation services for the Colocation Data Centres, Edge Computing and legacy federation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Azure Active Directory:&lt;/strong&gt; Directory services, providing authentication and authorisation services for applications in the cloud (SaaS, Public Cloud), as well as modern federation.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Positioning &lt;a href=&quot;https://www.rsa.com/&quot;&gt;RSA&lt;/a&gt; (part of Dell Technologies) and &lt;a href=&quot;https://www.microsoft.com/&quot;&gt;Microsoft&lt;/a&gt; complements my &lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt; and &lt;a href=&quot;/2019/09/11/Device-as-a-Service/&quot;&gt;Device-as-a-Service&lt;/a&gt; strategies, whilst also simplifying the Identity Access Management (IAM) architecture through capability consolidation. For example:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.rsa.com/en-us/products/rsa-securid-suite/rsa-identity-governance-and-lifecycle&quot;&gt;RSA IGL&lt;/a&gt; would focus on Access Certification, User Provisioning, Policy Automation and Role Management, whilst providing self-service capabilities and enterprise visibility across the access lifecycle.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Microsoft Active Directory and Azure Active Directory enable key authentication patterns, including SAML, OAuth 2.0, OpenID Connect, MAPI, WS-Federation, Kerberos, LDAP, etc.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As highlighted as part of my proposed &lt;a href=&quot;/2019/06/08/Automation/&quot;&gt;Automation&lt;/a&gt; architecture, I have positioned ServiceNow for IT Service Management (ITSM). Although not depicted, ServiceNow would also facilitate identity processes, specifically request fulfilment and change control (approvals), as well as support any workflow automation requirements.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NOTE: I plan to cover my proposed IT Service Management architecture in a future article, which will include additional details regarding the positioning of ServiceNow.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;authentication-patterns&quot;&gt;Authentication Patterns&lt;/h3&gt;

&lt;p&gt;The diagram below outlines a range of authentication patterns, including their preference based on the proposed architecture.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/iam02.jpg&quot; alt=&quot;Identity Access Management&quot; title=&quot;Identity Access Management&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the diagram, the user would have a single digital identity, with applications/services prioritising modern authentication.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;With the previously defined business characteristics in mind&lt;/a&gt;, traditional authentication patterns cannot be completely ignored (specialist applications in R&amp;amp;D and Manufacturing). In these scenarios, the user would have a non-standard username, which would conform to the least common denominator (e.g. numbers only). In theory, through applications modernisation, these traditional authentication patterns would reduce over time.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Local Authentication:&lt;/strong&gt; Local (decentralised) databases used for identity would not be supported within the ecosystem.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Kerberos:&lt;/strong&gt; Kerberos is an authentication protocol that works based on tickets to allow nodes communicating over a non-secure network to prove their identity to one another in a secure manner. Kerberos would not be preferred, but technically viable within the proposed architecture.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;LDAP:&lt;/strong&gt; The Lightweight Directory Access Protocol (LDAP) is an open protocol for accessing and maintaining distributed directory information services over a network. Similar to Kerberos, LDAP would not be preferred, but technically viable within the proposed architecture.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Direct Connect:&lt;/strong&gt; Specific services that require a direct connection, potentially via an insecure protocol. These services would not be directly accessible to the Internet and include an additional level of authentication before establishing a connection.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Modern Authentication:&lt;/strong&gt; Modern Authentication leverages tokens, sent to an authentication provider. This removes the need for the username and password to be sent over the network. For example, SAML, OAuth 2.0, OpenID Connect, MAPI, WS-Federation, etc. Preferred for all applications and services.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Endpoint Authentication:&lt;/strong&gt; Aligned with “Modern Authentication”, enabling password-less authentication via a gesture (e.g. facial recognition, iris scan, fingerprint, etc.) Preferred for all endpoints (clients/mobiles).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My holistic vision would be to enable a password-less ecosystem, where modern authentication patterns would be utilised by all applications, services and endpoints.&lt;/p&gt;

&lt;p&gt;Thanks to my positioning of &lt;a href=&quot;/2019/09/11/Device-as-a-Service/&quot;&gt;Microsoft Windows 10 and Apple iOS&lt;/a&gt; (Clients/Mobiles), password-less could be enabled by default, leveraging technologies such as Windows Hello and Apple Face ID/Touch ID.&lt;/p&gt;

&lt;p&gt;Windows Hello is compatible with any service that supports &lt;a href=&quot;https://fidoalliance.org/&quot;&gt;Fast Identity Online (FIDO)&lt;/a&gt;. Therefore, as Windows Hello matures, the use of password-less would increase over time.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, I feel strongly that any modern IT ecosystem must target a Zero Trust IT security model, where Identity Access Management (IAM) would play a critical role.&lt;/p&gt;

&lt;p&gt;This approach would help to ensure the ecosystem is protected, without limiting the ability to innovate and leverage cutting-edge technologies. The option to enable password-less authentication for the majority of use cases would be an exciting prospect, recognising that IT can rarely improve security and the user experience at the same time.&lt;/p&gt;
</description>
        <pubDate>Tue, 17 Sep 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/09/17/Identity-Access-Management/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/09/17/Identity-Access-Management/</guid>
      </item>
    
      <item>
        <title>Device-as-a-Service</title>
        <description>&lt;p&gt;This article is part of a series. I would recommend reading the articles in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required framing.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/09/Service-Delivery/&quot;&gt;Service Delivery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/03/01/SD-WAN/&quot;&gt;SD-WAN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/06/08/Automation/&quot;&gt;Automation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, this series aims to explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;Within this article, I will highlight my proposed Device-as-a-Service (endpoint) architecture, describing my philosophy, key technology decisions and positioning.&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;As described in the article “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, I have positioned a &lt;a href=&quot;https://go.forrester.com/government-solutions/zero-trust/&quot;&gt;Zero Trust&lt;/a&gt; security model, which aims to localise and isolate threats through microcore, segmentation and deep visibility.&lt;/p&gt;

&lt;p&gt;This model also extends to the endpoints (e.g. desktops, laptops, tablets, smartphones), which I would treat as a commodity (untrusted). To enable this outcome, the enterprise security controls would be layered throughout the end-to-end ecosystem, with solutions being secure by design (secured at the source), whilst complemented by a robust Identity Access Management architecture and a clear “least privilege access” strategy.&lt;/p&gt;

&lt;p&gt;As a result, my proposed endpoint architecture would prioritise productivity, delivering a “consumer-like” experience.&lt;/p&gt;

&lt;p&gt;For example, enterprise endpoints are commonly overloaded with third-party security software, generally resulting in multiple running agents. These agents continuously consume system resources (processor and memory), as well as often require kernel-level access, which (ironically) opens a high-risk attack vector.&lt;/p&gt;

&lt;p&gt;As an alternative, I would leverage the native capabilities of the specific device (no third-party software), looking to embrace the embedded security mechanisms and controls. Not only would this dramatically simplify the architecture, but it would also improve the end-user experience, making it comparable to a consumer purchase from Dell, Apple, etc.&lt;/p&gt;

&lt;p&gt;This approach also supports my goal of making the ecosystem device-agnostic, where any endpoint (e.g. Windows, macOS, Linux, ChromeOS, iOS Android) could be utilised with minimum effort. I feel this would be an important architecture tenant, recognising the rapid growth of connected devices (e.g. Sensors) and new forms of Human-Computer Interaction (e.g. Mixed Reality Headsets).&lt;/p&gt;

&lt;p&gt;Considering this security model and device-agnostic strategy, you might assume that I would position “Bring Your Own Device (BYOD)”. Over the past decade, BYOD has become a popular trend, however, the true value is often reduced/lost due to the inherent complexities regarding security, privacy and local law. As a result, many respected analysts have rebranded BYOD as “Bring Your Own Disaster”.&lt;/p&gt;

&lt;p&gt;Therefore, I would position a “Choose Your Own Device (CYOD)” strategy, where the enterprise retains ownership of the device itself (clear separation between personal and business), but still provides flexibility for users to personalise their experience.&lt;/p&gt;

&lt;h3 id=&quot;device-as-a-service&quot;&gt;Device-as-a-Service&lt;/h3&gt;

&lt;p&gt;As previously stated, I see the endpoint as a commodity. As a result, I would treat the processes (e.g. provisioning, lifecycle, break-fix) supporting the endpoint “as-a-Service”. The “as-a-Service” paradigm is well established with software (e.g. SaaS, Public Cloud), but is more complex when physical hardware is involved.&lt;/p&gt;

&lt;p&gt;Thankfully, the major personal computer providers (e.g. &lt;a href=&quot;https://www.dell.com/&quot;&gt;Dell&lt;/a&gt;, &lt;a href=&quot;https://www.lenovo.com/&quot;&gt;Lenovo&lt;/a&gt;) all offer Device-as-a-Service and/or PC-as-a-Service capabilities, where they aim to combine hardware, software, lifecycle, break-fix and financing as one all-encompassing service.&lt;/p&gt;

&lt;p&gt;In this scenario, the business simply provides the required specification (e.g. hardware, software) and configuration (e.g. settings, policies), with all other logistics being managed by the personal computer provider. The high-level diagram below outlines the process.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/daas01.jpg&quot; alt=&quot;Device-as-a-Service&quot; title=&quot;Device-as-a-Service&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A key enabler of this process would be the ability to configure the builds at the point of use. Historically, enterprise businesses would have to create and maintain a build (image), which would include a specific version of the operating system, as well as all base drivers, configuration and software. The provisioning and maintenance of this build (or builds) could be frustratingly complex, as well as resource-intensive and time-consuming.&lt;/p&gt;

&lt;p&gt;With Windows 10, Microsoft introduced a new capability known as Windows Autopilot, which removes the need to manage a traditional build, allowing devices to be automatically configured upon delivery.&lt;/p&gt;

&lt;h3 id=&quot;windows-autopilot&quot;&gt;Windows Autopilot&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/windows/deployment/windows-autopilot/windows-autopilot&quot;&gt;Windows Autopilot&lt;/a&gt; is a capability designed to pre-configure, provision, repurpose and recover devices. I would position the use of Windows AutoPiot, looking to simplify my end-to-end device lifecycle management process, supported by a certified personal computer provider.&lt;/p&gt;

&lt;p&gt;Windows Autopilot uses an OEM-optimised version of Windows 10, which comes pre-installed on the device. This removes the need for the enterprise to create and maintain a custom build (image).&lt;/p&gt;

&lt;p&gt;At the point of deployment, instead of re-imaging the device, the OEM-optimised version of Windows 10 is transformed into a “business-ready” state. This includes the required configuration (e.g. settings, policies) and software (e.g. Office 365, Chrome).&lt;/p&gt;

&lt;p&gt;Post-deployment, Windows Autopilot could be used to re-purpose the device by leveraging “Windows Autopilot Reset” or to support break-fix events.&lt;/p&gt;

&lt;p&gt;As the name suggests, Windows Autopilot is a Windows-only feature (targeting Windows 10). &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;However, recognising the framing of this series&lt;/a&gt;, I have assumed that 98% of the endpoints would be running Windows 10, with the remaining devices using a combination of macOS (1%) and a variant of Linux (1%).&lt;/p&gt;

&lt;h3 id=&quot;microsoft-intune-sccm-and-jamf&quot;&gt;Microsoft Intune, SCCM and JAMF&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/microsoft-365/enterprise-mobility-security/microsoft-intune&quot;&gt;Microsoft Intune&lt;/a&gt; is a unified endpoint management solution, covering Windows, macOS, iOS and Android. I would position Intune as my primary endpoint management solution, used to automate provisioning, policy management, application delivery and updates.&lt;/p&gt;

&lt;p&gt;Unfortunately, Intune is not yet feature-complete, especially when targeting legacy operating systems, as well as macOS and Linux. To ensure end-to-end compatibility, Microsoft System Center Configuration Manager (SCCM) and &lt;a href=&quot;https://www.jamf.com/products/jamf-pro/&quot;&gt;JAMF Pro&lt;/a&gt; would be positioned to compliment Intune.&lt;/p&gt;

&lt;p&gt;Across the ecosystem, the use of SCCM and JAMF should be very limited (less than 5%). As Intune matures, the reliance on SCCM and JAMF should reduce further.&lt;/p&gt;

&lt;h3 id=&quot;hardware-architecture&quot;&gt;Hardware Architecture&lt;/h3&gt;

&lt;p&gt;As previously stated, I would target a “Choose Your Own Device (CYOD)” strategy, positioning &lt;a href=&quot;https://www.dell.com/&quot;&gt;Dell&lt;/a&gt; as my Autopilot certified personal computer provider for Device-as-a-Service (&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;maximising the investments made as part of the Colocation Data Centre architecture&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;To simplify the deployment of hardware, I would leverage a set of user personas (e.g. Office, Sales Representative, etc.) Each persona would be assigned default hardware; however, users would have the option to update their hardware selection to better support their business requirements.&lt;/p&gt;

&lt;p&gt;Based on the current Dell range, I would position the following hardware, which would obviously evolve overtime:&lt;/p&gt;

&lt;h4 id=&quot;business-laptop&quot;&gt;Business Laptop&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dell.com/en-us/work/shop/laptops/latitude-5400-business-laptop/spd/latitude-14-5400-laptop&quot;&gt;Dell Latitude 5400&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;14” 1920x1080 Non-Touch Display&lt;/li&gt;
  &lt;li&gt;1.6GHz 4-Core Intel Core i5-8365U (Turbo 4.1GHz)&lt;/li&gt;
  &lt;li&gt;16GB DDR4 RAM&lt;/li&gt;
  &lt;li&gt;256GB M.2 PCIe NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 620&lt;/li&gt;
  &lt;li&gt;Intel Dual Band (802.11ac) Wireless + Bluetooth 5.0&lt;/li&gt;
  &lt;li&gt;TPM 2.0 + Windows Hello&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;2-in-1-laptop&quot;&gt;2-in-1 Laptop&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dell.com/en-us/work/shop/laptops/latitude-7400-business-laptop/spd/latitude-14-7400-laptop&quot;&gt;Dell Latitude 7400&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;12.3”/14” 1920x1280/1920x1080 Touch Display&lt;/li&gt;
  &lt;li&gt;1.6GHz 4-Core Intel Core i5-8365U (Turbo 4.1GHz)&lt;/li&gt;
  &lt;li&gt;16GB DDR4 RAM&lt;/li&gt;
  &lt;li&gt;512GB/512GB M.2 PCIe NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 620&lt;/li&gt;
  &lt;li&gt;Intel Dual Band (802.11ac) Wireless + Bluetooth 5.0&lt;/li&gt;
  &lt;li&gt;TPM 2.0 + Windows Hello&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;high-performance-laptop&quot;&gt;High-Performance Laptop&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dell.com/en-us/work/shop/workstations/precision-5540-mobile-workstation/spd/precision-15-5540-laptop&quot;&gt;Dell Precision 5540&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;15” 1920x1080 100% sRGB Non-Touch Display&lt;/li&gt;
  &lt;li&gt;2.6GHz 6-Core Intel Core i7-9850H (Turbo 4.6GHz)&lt;/li&gt;
  &lt;li&gt;32GB DDR4 RAM&lt;/li&gt;
  &lt;li&gt;512GB M.2 PCIe NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;NVIDIA Quadro T1000 4GB GDDR5 (ISV Certified)&lt;/li&gt;
  &lt;li&gt;Intel Dual Band (802.11ac) Wireless + Bluetooth 5.0&lt;/li&gt;
  &lt;li&gt;TPM 2.0 + Windows Hello&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;apple-mac&quot;&gt;Apple Mac&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.apple.com/macbook-pro/&quot;&gt;Apple MacBook Pro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;13” 2560×1600 P3 Colour Space Non-Touch Display&lt;/li&gt;
  &lt;li&gt;2.4GHz 4-Core Intel Core i5-8279U (Turbo 4.1GHz)&lt;/li&gt;
  &lt;li&gt;16GB DDR4 RAM&lt;/li&gt;
  &lt;li&gt;256GB NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel Iris Plus Graphics 655&lt;/li&gt;
  &lt;li&gt;802.11ac Wireless + Bluetooth 5.0&lt;/li&gt;
  &lt;li&gt;Apple T2 + Touch ID&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All devices come with a minimum 1920x1080 resolution display, 16GB RAM, NVMe SSD, as well as hardware security and biometric authentication. This would provide a very strong foundation, delivering performance, sustainability and security across the entire range. The positioned High-Performance laptop also includes ISV certified graphics (NVIDIA Quadro T1000), providing support for specialist workloads.&lt;/p&gt;

&lt;p&gt;Alongside the laptop range, I would also position two desktop computers (&lt;a href=&quot;https://www.dell.com/en-us/work/shop/desktop-and-all-in-one-pcs/micro-optiplex-3070/spd/optiplex-3070-micro&quot;&gt;Dell Optiplex 3070 micro&lt;/a&gt; and &lt;a href=&quot;https://www.dell.com/en-us/work/shop/workstations/precision-3431-desktop-workstation/spd/precision-3431-workstation&quot;&gt;Precision Workstation 3431&lt;/a&gt;). The use of desktop computers would be limited, but likely still a requirement for certain user personas. The Precision Workstation 3431 comes equipped with a Xeon Processor, ECC RAM and NVIDIA Quadro Graphics (ISV Certified), making it a very versatile computer, that could support the most demanding workloads.&lt;/p&gt;

&lt;p&gt;Finally, regarding mobility, I would position the &lt;a href=&quot;https://www.apple.com/iphone/&quot;&gt;Apple iPhone&lt;/a&gt; and &lt;a href=&quot;https://www.apple.com/ipad-air/&quot;&gt;Apple iPad Air&lt;/a&gt;. At this time, I would not position Google Android as a standard mobile offering, however, this might change as the market matures.&lt;/p&gt;

&lt;h3 id=&quot;software-architecture&quot;&gt;Software Architecture&lt;/h3&gt;

&lt;p&gt;As a result of the previously defined security approach (leveraging the native capabilities of the specific device), the initial client software configuration would be incredibly simple.&lt;/p&gt;

&lt;h4 id=&quot;windows-desktoplaptop&quot;&gt;Windows Desktop/Laptop&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Microsoft Windows 10 Enterprise 1903 (AKA 19H1)&lt;/li&gt;
  &lt;li&gt;Microsoft Office 365 (Word, PowerPoint, Excel, Outlook, Teams)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.com/chrome/&quot;&gt;Google Chrome&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.paloaltonetworks.com/cloud-security/prisma-access&quot;&gt;Palo Alto Networks Prisma Access&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;apple-mac-1&quot;&gt;Apple Mac&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Apple macOS 10.15.1 (Catalina)&lt;/li&gt;
  &lt;li&gt;Microsoft Office 365 (Word, PowerPoint, Excel, Outlook, Teams)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.com/chrome/&quot;&gt;Google Chrome&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.paloaltonetworks.com/cloud-security/prisma-access&quot;&gt;Palo Alto Networks Prisma Access&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With Microsoft releasing two major operating systems updates per year, I would aim to remain one version (six months) behind the current build (e.g. 1903 vs. 1909). This would help ensure the business remains current but also protected against unforeseen bugs via a short stabilisation period. The same philosophy would be applied to macOS, waiting for the release of 10.x.1, etc.&lt;/p&gt;

&lt;p&gt;As per the previous defined &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;IT principles and IT declarations&lt;/a&gt;, the majority of applications and services should be cloud-hosted (SaaS, Public Cloud), accessible over the Internet, via a browser or an API. I would position &lt;a href=&quot;https://www.google.com/chrome/&quot;&gt;Google Chrome&lt;/a&gt; as the default browser, complimented by Microsoft Edge (Chromium Edition). Any traditional application that requires installation would be downloaded via the web or through Intune.&lt;/p&gt;

&lt;p&gt;Only specialised applications running in a Colocation Data Centre would require direct network connectivity via the LAN/WLAN or client VPN. This is where &lt;a href=&quot;https://www.paloaltonetworks.com/cloud-security/prisma-access&quot;&gt;Palo Alto Networks Prisma Access&lt;/a&gt; would be utilised to provide full-tunnel encryption.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NOTE: I plan to cover my proposed security architecture in a future article, which will include additional details regarding the use of Palo Alto Networks.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, it is exciting to be able to propose an endpoint architecture that would prioritise productivity and user experience, whilst maintaining high standards regarding Information Security, Privacy and Quality. This is a rare combination, which demonstrates the value proposition of a modern IT ecosystem, helping to empower users, optimise operations and improve business agility.&lt;/p&gt;
</description>
        <pubDate>Wed, 11 Sep 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/09/11/Device-as-a-Service/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/09/11/Device-as-a-Service/</guid>
      </item>
    
      <item>
        <title>Linux Software</title>
        <description>&lt;p&gt;In a recent article, I shared my &lt;a href=&quot;/2019/02/14/macOS-and-Windows/&quot;&gt;philosophy to software selection&lt;/a&gt;, which supports my requirement to frequently switch between different operating systems.&lt;/p&gt;

&lt;p&gt;Recognising that &lt;a href=&quot;/2019/05/29/My-Setup-2019/&quot;&gt;my daily driver is a Mac&lt;/a&gt;, I shared a list of my most used macOS applications and the Windows alternatives.&lt;/p&gt;

&lt;p&gt;Thanks to the growth of web technologies and frameworks such as &lt;a href=&quot;https://electronjs.org/&quot;&gt;Electron&lt;/a&gt;, many applications are now cross-platform, providing a relatively seamless experience when working across multiple operating systems.&lt;/p&gt;

&lt;p&gt;Knowing that I am also a frequent user of Linux (specifically &lt;a href=&quot;/2018/05/01/fedora-28/&quot;&gt;Fedora&lt;/a&gt;), I felt it was worth expanding upon the previous list to include the equivalent Linux applications.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linuxsoftware01.jpg&quot; alt=&quot;Linux Software&quot; title=&quot;Linux Software&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although the Linux eco-system is still behind macOS and Windows, it continues to mature at a steady pace, including renewed support from major software providers such as Microsoft, as well as many active open-source projects.&lt;/p&gt;

&lt;p&gt;As I reflect on the application list, I am comfortable with the coverage provided by Linux. The open-source &lt;a href=&quot;https://electronjs.org/&quot;&gt;Electron&lt;/a&gt; framework, which is used for the development of desktop GUI applications using web technologies, has helped drive parity across operating systems. For example, &lt;a href=&quot;https://atom.io/&quot;&gt;Atom&lt;/a&gt;, &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Visual Studio Code&lt;/a&gt;, &lt;a href=&quot;https://slack.com/&quot;&gt;Slack&lt;/a&gt;, &lt;a href=&quot;https://products.office.com/en-gb/microsoft-teams/group-chat-software&quot;&gt;Teams&lt;/a&gt; are all Electron-based applications.&lt;/p&gt;

&lt;p&gt;Productivity software (Office) remains an area of frustration. Popular Linux options include &lt;a href=&quot;https://www.openoffice.org/&quot;&gt;OpenOffice&lt;/a&gt; and &lt;a href=&quot;https://www.libreoffice.org/&quot;&gt;LibreOffice&lt;/a&gt;, but if you need 100% Microsoft Office compatibility, you are forced to use Microsoft Office Online. In my experience, the most compatible Microsoft Office option on Linux is &lt;a href=&quot;https://www.wps.com/office/linux&quot;&gt;WPS Office&lt;/a&gt;, but is still far from perfect.&lt;/p&gt;

&lt;p&gt;Video editing and visual effects can also be challenging on Linux. Although &lt;a href=&quot;https://www.openshot.org/&quot;&gt;OpenShot&lt;/a&gt;, &lt;a href=&quot;https://kdenlive.org/en/&quot;&gt;Kdenlive&lt;/a&gt; and &lt;a href=&quot;https://natrongithub.github.io/&quot;&gt;NATRON&lt;/a&gt; are all very capable applications. I miss the simplicity, performance, and ecosystem of applications like Final Cut Pro and the Adobe Creative Suite. It should be noted that &lt;a href=&quot;https://natrongithub.github.io/&quot;&gt;Natron&lt;/a&gt; is reliant on the open-source community and has struggled in recent years, making new releases and patches very inconsistent. An application such as &lt;a href=&quot;https://www.blender.org/&quot;&gt;Blender&lt;/a&gt; is better supported but has a steeper learning curve (especially for simple 2D effects).&lt;/p&gt;

&lt;p&gt;The only gap in my workflow is 2D Game Development, driven by the fact that I use &lt;a href=&quot;https://www.yoyogames.com/get&quot;&gt;GameMaker Studio 2&lt;/a&gt;. Unfortunately, &lt;a href=&quot;https://forum.yoyogames.com/index.php?threads/will-we-ever-get-a-linux-ide-for-gms.11814/&quot;&gt;it does not look like we will ever receive a native version for Linux&lt;/a&gt;, which is a shame, but understandable based on the market share.&lt;/p&gt;

&lt;p&gt;Overall, I am confident I could use Linux as my daily driver, but due to my reliance on Microsoft Office, I suspect it would impact my overall productivity. Therefore, Linux remains an operating system that I use for specific tasks, such as software development, containerisation, etc.&lt;/p&gt;
</description>
        <pubDate>Tue, 02 Jul 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/07/02/Linux-Software/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/07/02/Linux-Software/</guid>
      </item>
    
      <item>
        <title>Automation</title>
        <description>&lt;p&gt;This article is part of a series. I would recommend reading the articles in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required framing.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/09/Service-Delivery/&quot;&gt;Service Delivery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/03/01/SD-WAN/&quot;&gt;SD-WAN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, this series aims to explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;In the article “&lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt;”, I shared my application/data hosting strategy, covering SaaS, Public Cloud, Colocation Data Centres and Edge Computing. This strategy emphasises modern application architecture but offers enough flexibility to support almost any workload.&lt;/p&gt;

&lt;p&gt;To unlock the value of this strategy, automation becomes a necessity, helping to streamline development and operations, improve the user experience, as well as guarantee security, quality and privacy.&lt;/p&gt;

&lt;p&gt;This article will highlight my proposed automation architecture, describing my philosophy, key technology decisions and positioning.&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;Historically, when dealing with legacy technologies, the effort to enable automation would often outweigh the value. Thankfully, due to advancements in Cloud, API-Centric Architecture and Software-Defined Infrastructure, automation has not only become simpler but also a prerequisite when looking to unlock the value of a modern IT ecosystem. This is highlighted by the value proposition outlined below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Improved Speed:&lt;/strong&gt; Reduce the reliance on manual intervention, streamlining the IT processes from ideation to production.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Improved Agility:&lt;/strong&gt; Ability to deliver continuous improvements, enhancements and issue resolution.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Improved Autonomy:&lt;/strong&gt; Self-service for IT provisioning, supporting multiple personas (e.g. Product Team, Engineering Team, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Improved Flexibility:&lt;/strong&gt; Ability to complete real-time, ad-hoc releases across the entire IT ecosystem (e.g. Cloud, Colocation DC, Edge Computing, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Enforced Best Practices:&lt;/strong&gt; Enforce consistent solution design and developer best practices (e.g. Style Guides, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Improved Information Security:&lt;/strong&gt; Centralised governance, including role-based access and monitoring. Proactively mandated and enforce security controls (e.g. Linter, Source Code Analysis, Package Analysis, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Improved Quality:&lt;/strong&gt; Proactive service discovery and CMDB Configuration Item creation. Proactively mandated and enforce quality controls, including testing (e.g. Application Scaffolding, Application Manifest, Unity Testing, UI Testing, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Improved Privacy:&lt;/strong&gt; Mandated and enforce privacy controls, including data encryption, obfuscation, residency, high-availability and backup.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cost Optimisation:&lt;/strong&gt; Removal of duplicate technologies (technical debt) to support IT provisioning, governance budgeting, discovery and change control. Removal of time-consuming manual tasks and associated resources.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To reinforce my position regarding automation, I have embedded key automation concepts and techniques as part of my &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;IT principles and IT decelerations&lt;/a&gt;. For example, the three statements below provide a clear direction regarding the desired approach to architecture.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Server Deployments:&lt;/strong&gt; By default, new IaaS deployments must target immutable infrastructure, including ephemeral (short-lived) and stateless (do not persist a session) servers.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Software-Defined:&lt;/strong&gt; By default, all cloud services (SaaS, Public Cloud), Colocation Data Centre and Edge Computing must be fully automated, leveraging Infrastructure-as-Code and Software-Defined techniques.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Automated:&lt;/strong&gt; By default, new application deployments must be automated, leveraging build tools and/or automation services.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A full description of my IT principles and IT decelerations can be found in the article &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;automation-requirements&quot;&gt;Automation Requirements&lt;/h3&gt;

&lt;p&gt;The word “automation” covers a very wide scope, therefore, &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;with the previously defined business characteristics in mind&lt;/a&gt;, I have created the following requirements, starting with three personas:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Product Team:&lt;/strong&gt; IT Users and/or Business Partners. Assume basic IT skills.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Engineering Team:&lt;/strong&gt; IT Users and/or Service Integrators. Assume moderate/advance IT and software development skills.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;IT Admins/Operations:&lt;/strong&gt; IT Users and/or Service Integrators. Assume moderate/advance IT and software development skills.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These personas would interact with the following automated capabilities, connecting back to the previously stated value proposition.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Provisioning:&lt;/strong&gt; The ability to create, modify and provision low-level (e.g. Server) and high-level (e.g. DNS) infrastructure, as well as software services.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Governance:&lt;/strong&gt; The ability to create, modify and maintain groups that control the user’s ability to provision, modify and remove infrastructure and services.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Budgeting:&lt;/strong&gt; The ability to proactively understand provisioning costs, as well as track the spend over time (based on defined groups).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Discovery:&lt;/strong&gt; The ability to identify, track and manage all provisioned infrastructure and services, including the creation and maintenance of CMDB Configuration Items.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Change Control:&lt;/strong&gt; The ability to track and manage change across all provisioned infrastructure and services.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Operations:&lt;/strong&gt; The ability to trigger housekeeping and maintenance activities, based on pre-defined criteria/events and/or predictive insights.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Testing:&lt;/strong&gt; The ability to proactively trigger pre-defined tests, covering Unit, Module, Integration, System and UI.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Standards Checks:&lt;/strong&gt; The ability to proactively trigger pre-defined security, quality and privacy checks.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Documentation:&lt;/strong&gt; The ability to generate and maintain quality (installation/configuration/change) documentation.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To achieve this outcome, new concepts, techniques and technologies would need to be implemented, including a paradigm shift to Immutable Infrastructure.&lt;/p&gt;

&lt;h3 id=&quot;immutable-infrastructure&quot;&gt;Immutable Infrastructure&lt;/h3&gt;

&lt;p&gt;In a traditional “mutable” infrastructure, services can be modified post-deployment, usually via a manual process. For example, a developer and/or administrator would log in to a server via RDP/SSH and complete a set of manual steps to modify configuration, packages, etc.&lt;/p&gt;

&lt;p&gt;Immutable infrastructure is a new infrastructure paradigm, where services cannot be modified post-deployment. If a modification is required, a new service is built from a common image, which inherently includes the required changes. This is only possible, if a modern application architecture is followed, for example, &lt;a href=&quot;https://12factor.net/&quot;&gt;The Twelve-Factor App&lt;/a&gt; methodology.&lt;/p&gt;

&lt;p&gt;The “&lt;a href=&quot;http://cloudscaling.com/blog/cloud-computing/the-history-of-pets-vs-cattle/&quot;&gt;Pets vs. Cattle&lt;/a&gt;” analogy is often used to describe this paradigm shift, where historically services would be treated like pets (one of kind, long life, managed by hand). Whereas modern (immutable) services would be treated like cattle (one of many, shorter life, managed at scale).&lt;/p&gt;

&lt;p&gt;To support the previously defined value proposition, I would prioritise immutable infrastructure, which inherently promotes the use of automation, enabled via technologies such as Infrastructure-as-Code (IaC).&lt;/p&gt;

&lt;h3 id=&quot;infrastructure-as-code&quot;&gt;Infrastructure-as-Code&lt;/h3&gt;

&lt;p&gt;Infrastructure-as-Code (IaC) is about writing code that describes the infrastructure, similar to writing a program in a high-level language. Once defined as code, infrastructure can be managed as if it were software, where resources can be created, removed, replaced, resized and migrated, leveraging automation.&lt;/p&gt;

&lt;p&gt;Building upon my &lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt; strategy, I would position &lt;a href=&quot;https://www.hashicorp.com/products/terraform/&quot;&gt;Terraform&lt;/a&gt; and &lt;a href=&quot;https://www.ansible.com/&quot;&gt;Ansible&lt;/a&gt; as part of my proposed automation architecture.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.hashicorp.com/products/terraform/&quot;&gt;Terraform&lt;/a&gt; is a cloud-agnostic Infrastructure-as-Code capability owned by &lt;a href=&quot;https://www.hashicorp.com/&quot;&gt;HashiCorp&lt;/a&gt;, written in &lt;a href=&quot;https://golang.org/&quot;&gt;Go&lt;/a&gt; using HashiCorp Config Language (HCL). It includes an open-source command-line tool, which can be used to provision (low-level and high-level) infrastructure to multiple hosting environments, including Azure, GCP, AWS, as well as VMWare.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.ansible.com/&quot;&gt;Ansible&lt;/a&gt; is an open-source Configuration Management, Deployment and Orchestration tool owned by &lt;a href=&quot;https://www.redhat.com/&quot;&gt;Red Hat&lt;/a&gt;. Ansible leverages Playbooks (YAML files), to execute specific tasks, often focused on server configuration. Similar to Terraform, Ansible is agent-less, supporting a wide range of platforms and hosting environments.&lt;/p&gt;

&lt;p&gt;In my proposed architecture, Terraform would be positioned to provision infrastructure, delegating configuration tasks to Ansible. The short video below from &lt;a href=&quot;https://www.vmware.com/&quot;&gt;VMware&lt;/a&gt; provides a good overview as to how/why Terraform and Ansible complement each other.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/AsPIKWF1y_M?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;These two technologies not only adhere to my &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;IT principles&lt;/a&gt; (open-source, decoupled, API-first) but also help to enable my &lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Hybrid Multi-Cloud&lt;/a&gt; strategy, meeting the requirement to deploy to multiple hosting environments (Public Cloud, Colocation DC and Edge Computing).&lt;/p&gt;

&lt;p&gt;Finally, it should be noted, as with any technology Terraform and Ansible have their own set of challenges (e.g. Timely Updates, State Management, Secret Management, etc.) With this in mind, the use of cloud provider-specific Infrastructure-as-Code (e.g. &lt;a href=&quot;https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/overview&quot;&gt;Microsoft ARM Templates&lt;/a&gt; would be positioned to mitigate any gaps.&lt;/p&gt;

&lt;h3 id=&quot;automation-architecture&quot;&gt;Automation Architecture&lt;/h3&gt;

&lt;p&gt;Alongside Terraform and Ansible, I would position the following technologies to support the wider automation requirements.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.embotics.com/&quot;&gt;Embotics&lt;/a&gt;:&lt;/strong&gt; SaaS-based Cloud Management Platform (CMP), which supports provisioning (via Terraform), governance (group management and change control), budgeting (proactive cost analysis and chargeback), as well as discovery (CI creation).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt;:&lt;/strong&gt; SaaS-based source code management, providing distributed version control for Terraform, Ansible Playbooks and application source code.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://azure.microsoft.com/en-us/services/devops/&quot;&gt;Azure DevOps&lt;/a&gt;:&lt;/strong&gt; &lt;a href=&quot;/2019/04/06/Hybrid-Multi-Cloud/&quot;&gt;Maximising the return on investment with Microsoft&lt;/a&gt;, Azure DevOps provides a suite of SaaS-based services covering CI/CD capabilities, as well as test tooling and package management.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.servicenow.com/&quot;&gt;ServiceNow&lt;/a&gt;:&lt;/strong&gt; SaaS-based IT Service Management (ITSM), providing change control and configuration management database (CMDB) capabilities.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Monitoring:&lt;/strong&gt; A suite of tools (e.g. Azure, VMware, Application Performance Management), which monitor the end-to-end infrastructure, applications and data, with the ability to predict and proactively trigger maintenance activities.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The decision to position a Cloud Management Platform (CMP) was driven by the desire to proactively manage governance and budgeting, providing enterprise-level visibility and control. The CMP would also enable autonomy for non-technical personas (e.g. Product Teams) by provisioning infrastructure and services to any hosting environment via the simplified service catalogue. However, behind the scenes, Terraform and Ansible would be doing the heavy lifting, ensuring that the CMP remains loosely coupled, enabling both “Cloud Direct” and “Cloud Brokered” provisioning approaches.&lt;/p&gt;

&lt;p&gt;The diagram below highlights how these technologies (alongside Terraform and Ansible) complement each other to enable my proposed automation architecture.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/automation01.jpg&quot; alt=&quot;Automation&quot; title=&quot;Automation&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As highlighted in the diagram, the Product Teams primary engagement would be via “user-centric” services, such as Embotics and ServiceNow. Embotics provides a service catalogue for standard services (e.g. Servers, Databases, Web Apps), covering all hosting environments (Public Cloud, Colocation Data Centres and Edge Computing). Where required, ServiceNow would manage all change control, including approvals.&lt;/p&gt;

&lt;p&gt;The engineering team would primarily work within GitHub, following the &lt;a href=&quot;https://datasift.github.io/gitflow/IntroducingGitFlow.html&quot;&gt;GitFlow&lt;/a&gt; branching model. As code is pushed to GitHub, automated tasks would be executed via Azure DevOps following a standard CI/CD practice. These tasks could cover a wide range of capabilities, including linters (e.g. &lt;a href=&quot;https://eslint.org/&quot;&gt;ESLint&lt;/a&gt;), testing (e.g. &lt;a href=&quot;https://mochajs.org/&quot;&gt;Mocha&lt;/a&gt;), security analysis (e.g. &lt;a href=&quot;https://www.checkmarx.com/&quot;&gt;Checkmarx&lt;/a&gt;), package analysis (e.g. &lt;a href=&quot;https://snyk.io/&quot;&gt;Snyk&lt;/a&gt;) and document generation (e.g. &lt;a href=&quot;https://pandoc.org/&quot;&gt;Pandoc&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Finally, IT admins and operations would support the hosting environments, leveraging native services (e.g. Azure Portal, VMware vSphere) and tooling (e.g. Azure PowerShell, CLI).&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, my automation strategy aims to facilitate a wider paradigm shift, where infrastructure would be defined and maintained as software. I believe this approach would unlock tremendous business value, specifically speed, agility, flexibility and cost optimisation, as well as promoting innovation.&lt;/p&gt;
</description>
        <pubDate>Sat, 08 Jun 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/06/08/Automation/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/06/08/Automation/</guid>
      </item>
    
      <item>
        <title>Swift Playgrounds</title>
        <description>&lt;p&gt;Over the years, I have explored a lot of different &lt;a href=&quot;/tag/programming/&quot;&gt;programming languages&lt;/a&gt;, specifically &lt;a href=&quot;/tag/javascript/&quot;&gt;JavaScript&lt;/a&gt;, &lt;a href=&quot;/tag/ruby/&quot;&gt;Ruby&lt;/a&gt;, &lt;a href=&quot;/tag/php/&quot;&gt;PHP&lt;/a&gt;, &lt;a href=&quot;/tag/python/&quot;&gt;Python&lt;/a&gt;, &lt;a href=&quot;/tag/salesforce.com/&quot;&gt;Apex&lt;/a&gt;, &lt;a href=&quot;/tag/gml/&quot;&gt;GML&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;In 2014, Apple released the &lt;a href=&quot;https://developer.apple.com/swift/&quot;&gt;Swift&lt;/a&gt; programming language. I have always been intrigued by Swift but lacked the reason and/or time to start the learning process.&lt;/p&gt;

&lt;p&gt;Conveniently, my son (aged 4) is now at an age where he can start to understand the basics of coding. Therefore, I thought I would use this as an excuse for us to explore the Swift programming language together, looking to validate Apple’s claim that Swift is easy to learn.&lt;/p&gt;

&lt;h3 id=&quot;what-is-swift&quot;&gt;What is Swift?&lt;/h3&gt;

&lt;p&gt;Swift is a general-purpose, multi-paradigm, compiled programming language.&lt;/p&gt;

&lt;p&gt;As the name suggests, Swift has a focus on speed, specifically the enablement of rapid application development, as well as code performance. For example, when compared against Objective-C, Swift is a clean, expressive and concise language with a simple syntax that makes it easy to read and write. It is also up to 40% faster than Objective-C, with clear community guidance on how to deliver highly-optimised code.&lt;/p&gt;

&lt;p&gt;Alongside speed, Swift targets safety, with a strong typing system and robust error handling. This further enables rapid application development, as errors can be identified in real-time, resulting in a shorter feedback loop, reducing the risk of production issues.&lt;/p&gt;

&lt;p&gt;In 2015, &lt;a href=&quot;https://developer.apple.com/swift/blog/?id=34&quot;&gt;Apple made Swift open-source&lt;/a&gt;, which alongside the continued growth of the Apple ecosystem (e.g. macOS, iOS, WatchOS, tvOS) has contributed to its &lt;a href=&quot;https://insights.stackoverflow.com/survey/2019#most-popular-technologies&quot;&gt;steady increase in popularity&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Therefore, alongside JavaScript and Python, I believe Swift is a viable programming language for anyone looking to learn to code.&lt;/p&gt;

&lt;h3 id=&quot;what-is-swift-playgrounds&quot;&gt;What is Swift Playgrounds?&lt;/h3&gt;

&lt;p&gt;Swift Playgrounds is a REPL (Read–Eval–Print–Loop) development environment for Mac and iPad. This development paradigm aims to enable a simple, interactive programming environment that takes single user inputs, evaluates them, and returns the result to the user in real-time.&lt;/p&gt;

&lt;p&gt;Therefore, Swift Playgrounds can be a powerful education and testing tool, which Apple has incentivised through a collection of highly interactive lessons (grouped as playgrounds).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/swiftplaygrounds01.jpg&quot; alt=&quot;Swift Playgrounds&quot; title=&quot;Swift Playgrounds&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Swift Playgrounds is available for free and includes a wide range of lessons, which can be completed offline.&lt;/p&gt;

&lt;h3 id=&quot;using-swift-playgrounds&quot;&gt;Using Swift Playgrounds&lt;/h3&gt;

&lt;p&gt;Recognising the interactive nature of Swift Playgrounds, it felt like the perfect environment for my son (aged 4) and I to learn Swift together.&lt;/p&gt;

&lt;p&gt;Alongside Swift Playgrounds, Apple has produced some excellent supporting materials, covering all ages and levels of experience. To get started, I would recommend reviewing the content found on “&lt;a href=&quot;https://www.apple.com/uk/education/teaching-code/&quot;&gt;Apple Education - Teaching Code&lt;/a&gt;” website. Specifically, the “&lt;a href=&quot;https://www.apple.com/education/docs/everyone-can-code-curriculum-guide.pdf&quot;&gt;Curriculum Guide&lt;/a&gt;”, which structures the leaning, providing useful tips and tricks.&lt;/p&gt;

&lt;p&gt;The curriculum states that the “Learn to Code” playground (created by Apple) targets ages 10+, which I feel is a fair guide. However, even at 4, my son and I were able to complete the “Learn to Code 1 (Fundamentals of Swift)” playground, which includes the following lessons.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Chapter 1 - Commands:&lt;/strong&gt; Students learn about the importance of clear, precise commands.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Chapter 2 - Functions:&lt;/strong&gt; Students explore the power of functions by grouping commands into a definition they can use over and over.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Chapter 3 - For Loops:&lt;/strong&gt; Students recognise patterns in the world around them and in their code, and learn how to write more efficient code using loops.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Chapter 5 - Conditional Code:&lt;/strong&gt; Students explore how Boolean logic helps us make decisions in our everyday lives and in code.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Chapter 6  - Logical Operators:&lt;/strong&gt; Students explore scenarios that require them to consider multiple factors before they make a decision.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Chapter 7  - While Loops:&lt;/strong&gt; Students explore the power of a while loop for repeating a section of code multiple times until a condition is met.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Chapter 8 - Algorithms:&lt;/strong&gt; Students learn how an algorithm is a set of rules and instructions used to solve a problem.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Like most children, my son will look for any opportunity to play with a smartphone or tablet. Therefore, it did not take a lot of convincing to get him involved.&lt;/p&gt;

&lt;p&gt;In my opinion, the best part about Swift Playgrounds is the fun and highly interactive visuals, which are structured as a set of increasingly difficult puzzles (like a game). Each puzzle adds a new element or concept, which progressively increase in complexity. For example, you start by issuing one command, before adding multiple commands.&lt;/p&gt;

&lt;p&gt;My son immediately understood the concept and (with some gentle guidance) was able to quickly move through the opening chapter, clearly building confidence as he completed each puzzle.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/swiftplaygrounds02.jpg&quot; alt=&quot;Swift Playgrounds&quot; title=&quot;Swift Playgrounds&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At 4, it is worth noting that my son has only just started school, therefore cannot read or write. When writing code, you would assume this would be a hindrance, however, Swift Playgrounds provides handy keyboard shortcuts (essentially making the puzzles multiple choice).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/swiftplaygrounds03.jpg&quot; alt=&quot;Swift Playgrounds&quot; title=&quot;Swift Playgrounds&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Therefore, although my son cannot read the words, he can identify key letters (helped by the use of camelCase). For example, with “moveForward()”, he would look for the “m” and “F” vs. turnLeft() where he would identify the “t” and “L”. I would provide support where required and verbalise the words and key concepts as we progressed.&lt;/p&gt;

&lt;p&gt;The video below is a short clip of my son working through one of the puzzles.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/M6f39V8VRrI?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Overall, we were able to progress through the first five chapters with relative ease, at which point the complexity did increase to a level that required a greater amount of support. Unsurprisingly, as the puzzles became more complex, my son’s interest and enthusiasm began to wane. He was perfectly capable of completing the challenge but lacked the patience to work through the problem. Therefore, I feel Apple’s 10+ age guidance is a good benchmark.&lt;/p&gt;

&lt;p&gt;The photo below is my son proudly showcasing his first “function” (excuse the crazy look).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/swiftplaygrounds04.jpg&quot; alt=&quot;Swift Playgrounds&quot; title=&quot;Swift Playgrounds&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Having reviewed the “Learn to Code 2 (Beyond the Basics)” playground, I do not believe this is viable for my son (yet), therefore we will continue to refine our skills by repeating the fundamentals.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, I commend Apple for their commitment to code and programming, especially their goal of making it fun, engaging and accessible to all ages.&lt;/p&gt;

&lt;p&gt;In my experience, the “Learn to Code” playgrounds successfully support the development of core coding skills and programming vocabulary (helped by the concise and expressive syntax of Swift). For example, my son cannot code, but he does now understand some of the basic concepts (even if it is unconsciously). These concepts are critical when looking to learn more advanced programming techniques, as well as support the growth of other core skills such as maths, reading and writing.&lt;/p&gt;

&lt;p&gt;The only area of improvement I have observed would be the jump from core coding concepts to real-world application development. For example, the first time a new programmer attempts to apply core concepts to develop a real application, using a full IDE like Xcode, can be very daunting.&lt;/p&gt;

&lt;p&gt;Apple provides resources to support application development, but they switch from fun and interactive learning to heavyweight documents and/or README files associated with code repositories. In my opinion, this can be a big jump, which I would like to see Apple attempt to mitigate (maybe via a simplified Xcode for iOS).&lt;/p&gt;

&lt;p&gt;Finally, it worth noting that Swift Playgrounds also supports third-party playgrounds, which is great to see! I have downloaded the &lt;a href=&quot;https://www.sphero.com/&quot;&gt;Sphero&lt;/a&gt; and &lt;a href=&quot;https://www.ryzerobotics.com/tello&quot;&gt;Tello&lt;/a&gt; playgrounds, which support direct interaction with physical hardware, allowing anyone to programme a drone, etc. My only criticism is that these playgrounds are not always well maintained (not the fault of Apple), meaning that certain functionality can stop working with newer released of iOS, etc.&lt;/p&gt;

&lt;p&gt;In conclusion, I am very impressed with Swift and Swift Playgrounds and would certainly recommend the programming language to anyone looking to learn to code.&lt;/p&gt;
</description>
        <pubDate>Sun, 02 Jun 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/06/02/Swift-Playgrounds/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/06/02/Swift-Playgrounds/</guid>
      </item>
    
      <item>
        <title>My Setup (2019)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Since writing this article I have upgraded to the 16-inch MacBook Pro (NOV-2019). As a result, this article has been updated to reflect the changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;h3 id=&quot;home-setup&quot;&gt;Home Setup&lt;/h3&gt;

&lt;p&gt;At home, I switch between three devices. My daily driver is a 16-inch MacBook Pro with Retina Display (NOV-2019). It’s primarily used for productivity tasks, software development, and photo editing. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;16-inch MacBook Pro with Retina Display (NOV-2019)&lt;/li&gt;
  &lt;li&gt;2.4GHz 8-Core Intel i9-9980HK (Turbo up to 5.0GHz)&lt;/li&gt;
  &lt;li&gt;32GB 2666MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;1TB PCIe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;AMD Radeon Pro 5500M 8GB GDDR6&lt;/li&gt;
  &lt;li&gt;16-inch IPS P3 Display (3072x1920, 500nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also have a 15-inch Lenovo ThinkPad X1 Extreme, which is a secondary device and primarily used for work, allowing me to natively interact with the Windows eco-system. I have previously shared my experience using the &lt;a href=&quot;/2019/02/06/ThinkPad-X1-Extreme/&quot;&gt;ThinkPad X1 Extreme&lt;/a&gt;, as well as techniques I use to co-exist across &lt;a href=&quot;/2019/02/14/macOS-and-Windows/&quot;&gt;macOS and Windows&lt;/a&gt;. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Lenovo ThinkPad X1 Extreme&lt;/li&gt;
  &lt;li&gt;2.6GHz 6-Core Intel Core i7-8850H (Turbo up to 4.30GHz)&lt;/li&gt;
  &lt;li&gt;32GB DDR4 2666MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB M.2 NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce GTX 1050 Ti Max-Q 4GB GDDR5&lt;/li&gt;
  &lt;li&gt;15.6” 4K UHD Touch IPS Display (3840x2160, 400nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alongside my notebooks, I have a custom-built PC. The specification (listed below) is a couple of years old but still provides excellent overall performance. It is used for gaming (including VR), game development (&lt;a href=&quot;/2017/03/09/GameMaker-Studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;), video editing, after effects and virtual labs.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus Maximus VIII Hero Alpha (Intel Z170)&lt;/li&gt;
  &lt;li&gt;Intel Core i7-6700K 4.0GHz @ 4.6GHz&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;32GB Corsair Vengeance LPX DDR4 PC4-24000C15 (15-17-17-35)&lt;/li&gt;
  &lt;li&gt;512GB Samsung 950 Pro M.2 PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;PNY GeForce RTX 2080 Ti 11GB XLR8 Gaming Overclocked Edition&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
  &lt;li&gt;Bowers &amp;amp; Wilkins MM-1 Speakers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In total I have three displays, two 27-inch Dell U2718Q IPS HDR 4K monitors used for productivity and colour accurate work, as well as one 27-inch Dell 144Hz G-Sync monitor used for gaming. The exact model numbers are highlighted below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2x Dell U2718Q IPS HDR 4K (3840x2160 / 60Hz / 5ms / HDR10)&lt;/li&gt;
  &lt;li&gt;1x Dell S2716DG TN G-Sync (2560x1440 / 144Hz / 1ms)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is kept fairly minimal, with all monitors mounted on third-party stands to help maximise desk space. The MacBook Pro and Lenovo ThinkPad X1 Extreme connect to the monitors via a &lt;a href=&quot;https://www.amazon.co.uk/SoNNeT-Technologies-Computer-Screw-silber/dp/B073H78ZZP/&quot;&gt;SoNNeT Technologies Dual-DisplayPort to ThunderBolt 3 Adapter&lt;/a&gt;, which provides a single-cable solution.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup11.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, for peripherals, I primarily use the &lt;a href=&quot;https://www.logitech.com/en-gb/product/craft&quot;&gt;Logitech Craft&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/product/mx-anywhere-2s-flow&quot;&gt;Logitech MX Anywhere 2S&lt;/a&gt; and &lt;a href=&quot;https://www.logitech.com/en-gb/product/brio&quot;&gt;Logitech Brio Ultra HD Pro&lt;/a&gt;. The keyboard and mouse were selected as they include “Easy-Switch”, which makes it simple to toggle between multiple Bluetooth devices.&lt;/p&gt;

&lt;p&gt;The image below provides a closer look at the two Dell U2718Q IPS HDR 4K monitors and peripherals.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup12.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The far end of the desk provides access to the Dell S2716DG G-Sync monitor, which can be pushed flush against the wall. You can also see the Bowers &amp;amp; Wilkins MM-1 Speakers, which are connected to the PC and Mac. The flat desk edge provides a clean surface for additional peripherals, such as my flight controller (&lt;a href=&quot;https://www.flightsim.com/vbfs/content.php?16051-Review-Saitek-X-55-Rhino-HOTAS-System&quot;&gt;Saitek X-55&lt;/a&gt;) and steering wheel (&lt;a href=&quot;http://gaming.logitech.com/en-gb/product/g29-driving-force&quot;&gt;Logitech G29&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;As highlighted in the image below, the PC is hidden under the desk, with the case door exposed providing easy access to the components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup13.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk itself and matching pedestal is from &lt;a href=&quot;https://www.tcofficefurniture.co.uk&quot;&gt;Three Counties Office Furniture&lt;/a&gt;. They are both designed for corporate use, therefore are hard-wearing and include integrated cable management.&lt;/p&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/multi-use-guest-chairs/setu-chair.html&quot;&gt;Herman Miller Setu&lt;/a&gt; chair, which includes the Kinematic Spine to control resistance and automatically support your weight as you recline.&lt;/p&gt;

&lt;h3 id=&quot;work-setup&quot;&gt;Work Setup&lt;/h3&gt;

&lt;p&gt;At work, I use the MacBook Pro and Lenovo ThinkPad X1 Extreme (depending on the workload). To provide consistency with home, I leverage the same monitors (Dell U2718Q IPS HDR 4K), display adapter, and peripherals (e.g. Mouse, Keyboard, and Webcam).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/officesetup03.jpg&quot; alt=&quot;Office Setup&quot; title=&quot;Office Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk is very basic, with a simple dual-monitor stand. Similar to at home, I use a Herman Miller chair at work, however, due to the extended hours, it is the more robust &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/performance-work-chairs/mirra-2-chairs.html&quot;&gt;Mirra 2&lt;/a&gt;. This chair includes a phenomenal amount of adjustment, ensuring all-day comfort.&lt;/p&gt;
</description>
        <pubDate>Wed, 29 May 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/05/29/My-Setup-2019/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/05/29/My-Setup-2019/</guid>
      </item>
    
      <item>
        <title>BMW 335d M-Sport</title>
        <description>&lt;p&gt;Alongside tech, health, and fitness, I am passionate about motorsport.&lt;/p&gt;

&lt;p&gt;I was recently in the market for a new car, replacing a &lt;a href=&quot;https://www.mercedes-benz.co.uk/passengercars/mercedes-benz-cars/c-class-range.html/&quot;&gt;Mercedes C-Class&lt;/a&gt; that had served me well for the past three years. The C-Class was purchased after the arrival of my first child, which replaced a less practical BMW 1-Series M-Sport Coupe (E82). There was nothing inherently wrong with the C-Class, but it lacked poise and was not very exciting to drive.&lt;/p&gt;

&lt;p&gt;I now have two children under the age of five, therefore my goal was to find a car that would be fun to drive, reasonably economical, as well as practical for daily use with a young family (must fit two car seats and one pushchair). My previous two cars were purchased from new, but I am always open to other options, including second-hand (anything to reduce the depreciation impact).&lt;/p&gt;

&lt;p&gt;My research led me to the BMW 335d xDrive M-Sport. Specifically, the 2016 F30 model, which can be found for around £22,000 (RRP £42,000). Recognising the age of my target vehicle, I would be purchasing second-hand, which can be a time-consuming and frustrating process.&lt;/p&gt;

&lt;p&gt;To reduce the burden, I engaged &lt;a href=&quot;https://www.prestigedieselsportsmouth.co.uk/&quot;&gt;Prestige Diesels and Sports Limited&lt;/a&gt;, based in Portsmouth. I discussed my desired specification with the team, who used their network (and industry knowledge) to locate a viable option. Once found, they completed a thorough inspection (internal, external and mechanical), before purchasing the vehicle. At which point, I was contacted for a test drive (I had not made any commitment up to this point).&lt;/p&gt;

&lt;p&gt;Needless to say, the team had done a great job and the following week I purchased a 2016 BMW 335d xDrive M-Sport Plus in Black Sapphire. It should be noted that Prestige Diesels and Sports only target specific vehicles, usually with “fully-loaded” and/or a rare specification.&lt;/p&gt;

&lt;p&gt;I won’t claim to be a photographer, but I have included a few photos below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/bmw01.jpg&quot; alt=&quot;BMW 335d M-Sport Plus&quot; title=&quot;BMW 335d M-Sport Plus&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The 335d is a four-door saloon, with a reasonable size boot/trunk (480 litres), which is comparable to the C-Class it replaced.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/bmw02.jpg&quot; alt=&quot;BMW 335d M-Sport Plus&quot; title=&quot;BMW 335d M-Sport Plus&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Taken from the “Shadow Edition”, the 335d includes 19-inch Bicolour Orbit Grey 704 M alloy wheels, as well as &lt;a href=&quot;https://www.bridgestone.co.uk/car-tyres/summer-tyres-potenza/s001/&quot;&gt;Bridgestone Potenza S001&lt;/a&gt; run-flat tyres. It should be noted, run-flat tyres can be expensive, costing up to £240 per tyre (including fitting).&lt;/p&gt;

&lt;p&gt;The specification of the BMW 335d xDrive M-Sport can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Layout:&lt;/strong&gt; Front Engine, All Wheel Drive&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Transmission:&lt;/strong&gt; Eight Speed-Sport Automatic&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Engine:&lt;/strong&gt; N57D30T1 6-cylinder Turbo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The BMW N57 is a family of aluminium, twin-turbocharged straight-6 common rail diesel engines. The engines utilise variable geometry turbochargers and Bosch piezo-electric injectors, producing the following performance results.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Power:&lt;/strong&gt; 308BHP&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Torque:&lt;/strong&gt; 630 Nm&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;0 - 60MPH:&lt;/strong&gt; 4.6 Seconds&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Top Speed:&lt;/strong&gt; 155MPH (Electronically Limited)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Economy:&lt;/strong&gt; 42MPG (BMW Reference: 52.3MPG)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It was the car’s performance characteristics that intrigued me the most, specifically the compelling performance vs. fuel economy. For example, the table below compares the 335d against the 340i (F30) and M3 (F80).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/bmw03.jpg&quot; alt=&quot;BMW 335d M-Sport Plus Comparison&quot; title=&quot;BMW 335d M-Sport Plus Comparison&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In short, I believe the 335d hits the sweet spot, offering close to M3 levels of performance, whilst being far more practical (fuel economy, running costs, etc.) Recognising that the 335d is xDrive (all-wheel drive), it is also comparatively easier to drive is varied weather conditions, allowing a less experienced driver to maximise the performance.&lt;/p&gt;

&lt;p&gt;The standard “M-Sport” model includes a reasonable base specification. The “Plus” package aims to improve the value by adding Xenon Headlights, &lt;a href=&quot;https://harmankardon.com/&quot;&gt;Harman/Kardon Speaker System&lt;/a&gt;, M-Sport Braking System, etc. My car also includes the “Premium”, “Technology”, and “Media (Professional)” packages. Noteworthy equipment includes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Active Cruise Control&lt;/li&gt;
  &lt;li&gt;Auto Stop/Start&lt;/li&gt;
  &lt;li&gt;Brake Energy Regeneration&lt;/li&gt;
  &lt;li&gt;Heads-up Display&lt;/li&gt;
  &lt;li&gt;Speed Limit Display&lt;/li&gt;
  &lt;li&gt;Lane Assist&lt;/li&gt;
  &lt;li&gt;Collision Warning&lt;/li&gt;
  &lt;li&gt;Rain Sensor&lt;/li&gt;
  &lt;li&gt;Automatic Headlight Activation&lt;/li&gt;
  &lt;li&gt;Park Distance Control (Front/Rear)&lt;/li&gt;
  &lt;li&gt;Reversing Assist Camera (Rear)&lt;/li&gt;
  &lt;li&gt;Professional Multimedia Navigation System&lt;/li&gt;
  &lt;li&gt;Harman/Kardon Speaker System&lt;/li&gt;
  &lt;li&gt;Enhanced Bluetooth with Wireless Charging&lt;/li&gt;
  &lt;li&gt;Wireless Apple CarPlay&lt;/li&gt;
  &lt;li&gt;Electric Seats and Driver Memory (Front)&lt;/li&gt;
  &lt;li&gt;Lumbar Support (Front)&lt;/li&gt;
  &lt;li&gt;Seat Heating (Front)&lt;/li&gt;
  &lt;li&gt;Split-Folding Seat (Rear)&lt;/li&gt;
  &lt;li&gt;19-inch Bicolour Orbit Grey 704 M Allow Wheels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the first car I have owned to include wireless Apple CarPlay.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/bmw04.jpg&quot; alt=&quot;Apple CarPlay&quot; title=&quot;Apple CarPlay&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The ability to connect and charge wirelessly is a nice benefit. For short journeys, my iPhone never leaves my pocket, connecting automatically a few seconds after starting the car. Once connected, CarPlay is available from the BMW Multimedia system, including access to applications such as Contacts, Messages, &lt;a href=&quot;https://www.waze.com/&quot;&gt;Waze&lt;/a&gt;, &lt;a href=&quot;https://www.spotify.com/&quot;&gt;Spotify&lt;/a&gt;, &lt;a href=&quot;https://music.youtube.com/&quot;&gt;YouTube Music&lt;/a&gt;, etc. Conveniently, CarPlay applications can also be viewed and controlled from the Heads-up Display. In my opinion, this is the future of in-car entertainment.&lt;/p&gt;

&lt;p&gt;Overall the 335d is everything I had hoped it would be! However, as with all things in life, there are a few considerations…&lt;/p&gt;

&lt;p&gt;The BMW 3-Series has always been known for its legendary handling. However, the F30 includes electronic (not hydraulic) power steering, which in “comfort” mode can feel a little soft and artificial. Thankfully, “sport” mode is much better, delivering a harder, more connected feel that is closer to what I would expect from a BMW.&lt;/p&gt;

&lt;p&gt;Regarding looks, the 335d (even the M-Sport model) is very understated. If de-badged, it would be difficult to identify it against any other F30 3-Series. In general, I like the default style, but feel the duel exhaust design is a little lacklustre. In a perfect world, I would have liked for BMW to take inspiration from the M3 (F80), delivering a duel exhaust design that highlights the cars performance. Another very minor criticism is the height of the car, which (due to the xDrive) rides a little higher than a standard M-Sport 3-Series.&lt;/p&gt;

&lt;p&gt;Finally, the &lt;a href=&quot;http://www.tyrereviews.co.uk/Tyre/Bridgestone/Potenza-S001.htm&quot;&gt;Bridgestone Potenza S001 tyres have received mixed reviews online&lt;/a&gt;. Although I have not had any major issues with the grip, I have experienced pressure drops, noise and tramlining (which is possibly compounded by the electronic power steering). Replacing all four tyres is a fairly expensive process, but likely a requirement to ensure comparable tread depths (within 2mm) between the front and rear.&lt;/p&gt;

&lt;p&gt;In conclusion, I have been incredibly impressed with the BMW 335d xDrive M-Sport Plus. It offers lively performance, whilst still being practical as a family car. Targeting better performance would likely enter “supercar” territory and/or compromise fuel economy, space, etc.&lt;/p&gt;
</description>
        <pubDate>Tue, 07 May 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/05/07/BMW-335d-M-Sport/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/05/07/BMW-335d-M-Sport/</guid>
      </item>
    
      <item>
        <title>WSL</title>
        <description>&lt;p&gt;Web development on Windows can be a frustrating experience, mainly because Windows is not &lt;a href=&quot;https://en.wikipedia.org/wiki/POSIX&quot;&gt;POSIX&lt;/a&gt; compliant. As a result, web developers often favour macOS or Linux, which are POSIX compatible (even if Linux is not fully certified).&lt;/p&gt;

&lt;p&gt;Since February, &lt;a href=&quot;/2019/02/06/ThinkPad-X1-Extreme/&quot;&gt;I have increased my usage of Windows&lt;/a&gt;, which has forced me to explore alternative approaches to support my common workloads (which includes web development). Historically, I have used a hypervisor and/or Docker to provide a viable development environment on Windows. However, each of these options can be frustrating, recognising that they are both reliant on virtualisation.&lt;/p&gt;

&lt;p&gt;Therefore, I decided to explore Windows Subsystem for Linux (WSL), which is a compatibility layer for running Linux binary executables (in ELF format) natively on Windows 10.&lt;/p&gt;

&lt;p&gt;WSL provides a Linux-compatible kernel interface (containing no Linux kernel code), which supports a GNU userspace, such as &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;, &lt;a href=&quot;https://www.opensuse.org/&quot;&gt;openSUSE&lt;/a&gt;, &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt;, etc. The userspace provides access to a Bash shell, native GNU/Linux command-line tools and programming language interpreters (e.g. Ruby, Python. etc.) Microsoft does not promote the use of graphical applications, however, this can be partially accomplished using an X11 server running on Windows 10 (e.g. &lt;a href=&quot;http://x.cygwin.com/&quot;&gt;Cygwin X&lt;/a&gt;, &lt;a href=&quot;https://sourceforge.net/projects/xming/&quot;&gt;Xming&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;p&gt;Due to the use of a compatibility layer (instead of a real Linux kernel), WSL has several limitations. For example, it is not capable of running all Linux software, specifically 32-bit binaries. It is also not possible to install kernel modules and device drivers.&lt;/p&gt;

&lt;p&gt;The WSL architecture can be summarised into two parts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;LXSS Manager Service:&lt;/strong&gt; The LXSS Manager Service interacts with the Windows Subsystem for Linux (via the drivers lxss.sys and lxcore.sys), allowing Windows to launch Linux processes, as well as handle Linux system calls and binary locks during execution.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;wsl.exe:&lt;/strong&gt; The wsl.exe command is used to manage distributions on the command-line. The command can also be used to run Linux binaries from the Windows Command Prompt or Windows PowerShell.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my experience, WSL works reasonably well. Being able to access the Bash shell from within Windows feels a little strange, but is a step in the right direction for web developers. Unfortunately, due to the use of the “compatibly layer”, WSL is not perfect, limited system call compatibility and the relatively poor IO performance can quickly become a point of frustrating when working with complex web applications.&lt;/p&gt;

&lt;p&gt;Recognising WSL is still fairly immature, I hope Microsoft continues to iterate on the architecture, potentially looking to include a full Linux kernel in a future release. This outcome would likely be seen as blasphemy by some Windows evangelists but would overcome the current limitations and potentially provide the best of both worlds (Windows + Linux). If successful, I could see Windows becoming a more popular/common option for web developers, providing a viable (and cheaper) alternative to macOS.&lt;/p&gt;

&lt;h3 id=&quot;getting-started-with-wsl&quot;&gt;Getting Started with WSL&lt;/h3&gt;

&lt;p&gt;The steps outlined below, highlight how to install Windows Subsystem for Linux (WSL) using Ubuntu 18.04, without the use of a Microsoft Account or the Microsoft Store.&lt;/p&gt;

&lt;p&gt;Open “Control Panel” and search for “Developers”. Enable “Developer Mode” by checking the box highlighted in the image below:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wsl01.jpg&quot; alt=&quot;WSL&quot; title=&quot;WSL&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Open Windows PowerShell, ensuring that you select “Run as Administrator”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wsl02.jpg&quot; alt=&quot;WSL&quot; title=&quot;WSL&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Run the following command, which enables WSL.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;img src=&quot;/images/posts/wsl03.jpg&quot; alt=&quot;WSL&quot; title=&quot;WSL&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Download the approved Ubuntu installation file from Microsoft, using the following URL:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;https://aka.ms/wsl-ubuntu-1804&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once downloaded, install Ubuntu.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wsl04.jpg&quot; alt=&quot;WSL&quot; title=&quot;WSL&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Open the newly installed Ubuntu application.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wsl05.jpg&quot; alt=&quot;WSL&quot; title=&quot;WSL&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Complete the installation by creating a username and password.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wsl06.jpg&quot; alt=&quot;WSL&quot; title=&quot;WSL&quot; /&gt;&lt;/p&gt;

&lt;p&gt;WSL is now fully installed and available for use. For more information regarding WSL, I recommend referring to the &lt;a href=&quot;https://github.com/michaeltreat/Windows-Subsystem-For-Linux-Setup-Guide&quot;&gt;WSL Setup Guide&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 12 Apr 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/04/12/WSL/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/04/12/WSL/</guid>
      </item>
    
      <item>
        <title>Hybrid Multi-Cloud</title>
        <description>&lt;p&gt;This article is part of a series. I would recommend reading the articles in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required framing.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/09/Service-Delivery/&quot;&gt;Service Delivery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/03/01/SD-WAN/&quot;&gt;SD-WAN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, this series aims to explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;This article will focus on my proposed cloud architecture, highlighting my philosophy, key technology decisions and positioning.&lt;/p&gt;

&lt;h3 id=&quot;public-cloud&quot;&gt;Public Cloud&lt;/h3&gt;

&lt;p&gt;Over the past ten years, the Public Cloud market has seen massive growth. I wrote a short article in 2013, highlighting the &lt;a href=&quot;/2013/07/01/aws-the-cloud-king/&quot;&gt;dominance of Amazon Web Services (AWS)&lt;/a&gt;. At the time, AWS was a clear leader, however, the market has matured, resulting in three key players: &lt;a href=&quot;https://aws.amazon.com/&quot;&gt;Amazon Web Services (AWS)&lt;/a&gt;, &lt;a href=&quot;https://azure.microsoft.com/&quot;&gt;Microsoft Azure&lt;/a&gt; and &lt;a href=&quot;https://cloud.google.com/&quot;&gt;Google Cloud Platform (GCP)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As to which Public Cloud provider is “best” depends on multiple factors, specifically, business requirements, user-base, budget, existing investments and supporting architecture. To simplify the landscape, I often use the &lt;a href=&quot;https://www.lego.com/aboutus/lego-group/&quot;&gt;LEGO Group&lt;/a&gt; as a way of describing the differences between the providers.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.lego.com/&quot;&gt;LEGO&lt;/a&gt; = &lt;a href=&quot;https://aws.amazon.com/&quot;&gt;AWS&lt;/a&gt;:&lt;/strong&gt; Like LEGO, AWS is the most popular, with the largest eco-system, highest-rate of innovation and customer engagement. AWS is incredibly versatile, with thousands of services that can be connected to create/support a wide range of solutions. Similar to LEGO, AWS has a strong focus on the eco-system (via its &lt;a href=&quot;https://apievangelist.com/2012/01/12/the-secret-to-amazons-success-internal-apis/&quot;&gt;API-Centric strategy&lt;/a&gt;), therefore, services tend to target technology-centric customers with software engineering expertise.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.lego.com/themes/duplo&quot;&gt;DUPLO&lt;/a&gt; = &lt;a href=&quot;https://azure.microsoft.com/&quot;&gt;Azure&lt;/a&gt;:&lt;/strong&gt; Building on their history as an enterprise-focused company, Microsoft often complement their services with enterprise-specific features. Like DUPLO, the “building blocks” tend to be “larger” and therefore, easier to consume for business-centric customers with limited software engineering expertise. Finally, similar to the connection between DUPLO and LEGO, Azure services are often tightly integrated into the wider Microsoft eco-system (e.g. Office 365).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.lego.com/themes/technic&quot;&gt;LEGO Technic&lt;/a&gt; = &lt;a href=&quot;https://cloud.google.com/&quot;&gt;GCP&lt;/a&gt;:&lt;/strong&gt; Google is very much about engineering excellence, with a strong emphasis on custom/proprietary compute, storage and networking architecture (e.g. &lt;a href=&quot;https://cloud.google.com/blog/products/gcp/google-supercharges-machine-learning-tasks-with-custom-chip&quot;&gt;TPU&lt;/a&gt;). Similar to LEGO Technic, Google is often the first to pioneer new/innovative services (e.g. &lt;a href=&quot;https://kubernetes.io/&quot;&gt;Kubernetes&lt;/a&gt;), allowing for the creation of more “exotic” solutions. In regards to market share, Google is in third place, resulting in a more tightly defined eco-system, which attracts customers with a strong appreciation for engineering excellence.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This analogy is far from perfect and is not designed to articulate the value of each provider. It does, however, recognise the different philosophy, target audience and market size, highlighting that a one-to-one comparison does not tell the full story.&lt;/p&gt;

&lt;h3 id=&quot;cloud-strategy&quot;&gt;Cloud Strategy&lt;/h3&gt;

&lt;p&gt;As part of my &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;previously described IT principles and IT declarations&lt;/a&gt;, I have positioned a clear direction regarding a “Cloud First” strategy, prioritising Public Cloud for applications and data, with a focus on Cloud Native architecture.&lt;/p&gt;

&lt;p&gt;The words “Cloud First”, not “Cloud Only”, are important, as they start to promote the idea of a hybrid architecture, with clear prioritisation. &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Acknowledging the previously defined business characteristics&lt;/a&gt;, I specified an established traditional business model, likely resulting in workloads that would not be commercially or architecturally a good fit for Public Cloud. As a result, as part of my modern IT ecosystem, I have positioned multiple highly-converged Colocation Data Centres, alongside Edge Computing at specific sites (primarily R&amp;amp;D and Manufacturing).&lt;/p&gt;

&lt;p&gt;Regarding the Public Cloud itself, I anticipate the need for workloads to run across multiple clouds, unlocking innovation and ensuring healthy cost competition. With this in mind, my proposed cloud strategy would be considered “&lt;strong&gt;Hybrid Multi-Cloud&lt;/strong&gt;”.&lt;/p&gt;

&lt;p&gt;To facilitate this outcome, I would position a Cloud agnostic, decoupled, automation layer, supported by techniques and technologies such as Software Defined, Infrastructure-as-Code and Immutable Infrastructure, etc. Due to the importance of this area, I plan to describe my proposed automation architecture in a future article.&lt;/p&gt;

&lt;p&gt;The philosophy behind “Multi-Cloud” is certainly compelling, however, as with any commercial investment, the value of standardisation should not be underestimated. As a result, I would position &lt;a href=&quot;https://azure.microsoft.com/&quot;&gt;Microsoft Azure&lt;/a&gt; as my &lt;strong&gt;preferred&lt;/strong&gt; Public Cloud provider. The following two factors have driven this decision:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Although this series assumes no legacy from a technology standpoint, all businesses have a human legacy, with many users (and partners) having a long history consuming Microsoft productivity and collaboration services. Therefore, positioning Microsoft Office 365 would be a logical decision to ensure business continuity and to help reduce the organisation change impact. The use of Office 365 opens the door to a wider commercial deal with Microsoft, allowing the business to maximise the investment across productivity, collaborations and cloud.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;With the previously defined business characteristics in mind&lt;/a&gt;, I highlighted an established traditional business model and growing digital business model. Therefore, I would aim to capitalise on a business-centric skill-set. For example, businesses operating a traditional business model commonly lack Solution Architect and Software Developer expertise, becoming dependant on service integrators for solution delivery. As outlined above, I believe Azure is best positioned for business-centric customers with emerging software engineering expertise.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With this positioning in mind, the diagram below highlights my proposed application/data hosting strategy, covering SaaS, Public Cloud, Colocation Data Centres and Edge Computing.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hybridmulticloud01.jpg&quot; alt=&quot;Hybrid Multi-Cloud&quot; title=&quot;Hybrid Multi-Cloud&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Highly-industrialised/commodity workloads would be positioned for SaaS. Examples would include Productivity, Collaboration, Service Management, Customer Relationship Management (CRM), etc.&lt;/p&gt;

&lt;p&gt;Public Cloud would be prioritised for all application/data hosting, emphasising “up the stack” services. For example, FaaS and PaaS would be prioritised over IaaS.&lt;/p&gt;

&lt;p&gt;I would position &lt;a href=&quot;https://www.equinix.com/&quot;&gt;Equinix&lt;/a&gt; as my Colocation Data Centre host, providing support for workloads that would not be commercially or architecturally a good fit for Public Cloud. For example, specialised capabilities from R&amp;amp;D and Manufacturing, which commonly require proprietary software/hardware. As highlighted in the article “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;, the proposed Colocation Data Centre architecture would be highly-converged, where I would position &lt;a href=&quot;https://www.delltechnologies.com/en-gb/servers/modular-infrastructure/poweredge-mx/index.htm&quot;&gt;Dell EMC PowerEdge MX&lt;/a&gt; modular servers running &lt;a href=&quot;https://www.vmware.com/uk/solutions/software-defined-datacenter.html&quot;&gt;VMware Software-Defined Data Centre (SDDC)&lt;/a&gt; technologies. This combination would help to maximise the investment (both part of &lt;a href=&quot;https://www.delltechnologies.com/&quot;&gt;Dell Technologies&lt;/a&gt;), as well as provide flexibility to scale compute, storage and network independently.&lt;/p&gt;

&lt;p&gt;Edge Computing would support latency-sensitive applications, predominantly at R&amp;amp;D and Manufacturing sites. Where possible, these sites would complement the proposed Colocation Data Centre architecture, leveraging Dell servers (potentially hyper-converged) and &lt;a href=&quot;https://www.vmware.com/uk/solutions/software-defined-datacenter.html&quot;&gt;VMware SDDC&lt;/a&gt; technologies.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, I believe my proposed Hybrid Multi-Cloud strategy would provide a strong foundation for an enterprise business, emphasising modern architecture, whilst being pragmatic, providing options for almost any workload.&lt;/p&gt;

&lt;p&gt;This balance would provide ultimate business flexibility, whilst continuing to promote modern application architecture, which could be further incentivised via a streamlined governance and custom charge-back model.&lt;/p&gt;
</description>
        <pubDate>Sat, 06 Apr 2019 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2019/04/06/Hybrid-Multi-Cloud/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/04/06/Hybrid-Multi-Cloud/</guid>
      </item>
    
      <item>
        <title>SD-WAN</title>
        <description>&lt;p&gt;This article is part of a series. I would recommend reading the articles in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required framing.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2019/02/09/Service-Delivery/&quot;&gt;Service Delivery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a brief reminder, this series aims to explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;Alongside many other critical decisions (e.g. ERP, HRP), I have prioritised the infrastructure foundations, covering the Network, Hosting and Identity Access Management (IAM). This article will aim to provide a high-level overview of my proposed Wide Area Network (WAN) architecture, which I believe presents an interesting opportunity to innovate.&lt;/p&gt;

&lt;p&gt;Over the past decade, Multi-Protocol Label Switching (MPLS) has been the standard for enterprise businesses, providing scalable, protocol-independent, any-to-any connectivity. The “magic” behind MPLS is that packets are assigned labels, which are used to make packet-forwarding decisions, without needing to interrogate the packet itself. This approach is very versatile, allowing businesses to implement end-to-end connectivity, across multiple protocols.&lt;/p&gt;

&lt;p&gt;MPLS is a service that must be purchased from a carrier (e.g. &lt;a href=&quot;https://www.att.com/&quot;&gt;AT&amp;amp;T&lt;/a&gt;, &lt;a href=&quot;https://www.centurylink.com/&quot;&gt;CenturyLink&lt;/a&gt;, &lt;a href=&quot;https://www.verizonwireless.com/&quot;&gt;Verizon&lt;/a&gt;, etc.) Depending on the specific network requirements, MPLS services could be very expensive, especially when compared against commodity Internet connections.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;With the previously defined business characteristics in mind&lt;/a&gt;, I have positioned 50+ physical sites across the globe, including 10+ critical sites that support highly sensitive business processes (e.g. R&amp;amp;D, Manufacturing, etc.) My vision of a modern IT ecosystem places a heavy emphasis on cloud services, covering SaaS (e.g. &lt;a href=&quot;https://www.workday.com/&quot;&gt;Workday&lt;/a&gt;) and Public Cloud (e.g. &lt;a href=&quot;https://azure.microsoft.com/&quot;&gt;Microsoft Azure&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;p&gt;Although MPLS remains a viable option for the WAN, a new technology known as Software-Defined WAN (SD-WAN) has been gaining market momentum.&lt;/p&gt;

&lt;p&gt;SD-WAN is not directly comparable to MPLS, as it is an overlay technology. However, it has the potential to indirectly impact MPLS adoption, due to its ability to aggregate several WAN connections into one software-defined network (SDN).&lt;/p&gt;

&lt;p&gt;For example, SD-WAN enables businesses to select inexpensive commodity Internet connections, whilst still maintaining (and even improving) enterprise-grade performance, service delivery and availability. This approach could dramatically lower the total cost of ownership.&lt;/p&gt;

&lt;p&gt;SD-WAN achieves this outcome by measuring network traffic metrics (application-aware), such as latency, packet loss, jitter and availability, proactively selecting the optimal path (dynamic link assessment) for each data packet in real-time.&lt;/p&gt;

&lt;p&gt;This approach, alongside centralised management for enterprise-wide policy creation/maintenance, makes SD-WAN a natural fit for businesses looking to embrace a multi-cloud strategy. For example, it removes the need for Internet-based traffic to be back-hauled via a central location and/or a data centre.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sd-wan01.jpg&quot; alt=&quot;SD-WAN&quot; title=&quot;SD-WAN&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As with any new technology, the SD-WAN market is highly energised, including multiple startups, as well as the usual suspects such as &lt;a href=&quot;https://www.cisco.com/&quot;&gt;Cisco&lt;/a&gt;, &lt;a href=&quot;https://www.juniper.net/&quot;&gt;Juniper&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;I would position &lt;a href=&quot;https://www.cisco.com/c/en_uk/solutions/enterprise-networks/sd-wan/index.html&quot;&gt;Viptela&lt;/a&gt; as my SD-WAN provider, who (in my opinion) have the most mature and reliable service offering, as well as the added benefit of being recently (AUG-2017) acquired by Cisco. I fully expect the SD-WAN market to evolve quickly over the coming years, therefore the Cisco acquisition should help provide stability, as well as complement a Cisco-based LAN/WLAN architecture.&lt;/p&gt;

&lt;p&gt;Alongside Viptela, I would target commodity Internet connections as my primary transport for all global sites, positioning &lt;a href=&quot;https://www.centurylink.com/&quot;&gt;CenturyLink&lt;/a&gt; for centralised circuit provisioning, support and billing. Through their acquisition of Level 3 Communications, &lt;a href=&quot;https://www.centurylink.com/&quot;&gt;CenturyLink&lt;/a&gt; operate a tier-one network, with a strong presence across the Americas and EMA. APAC would likely present an additional challenge, but I am confident that any gaps could be filled through CenturyLink via local provider partnerships.&lt;/p&gt;

&lt;p&gt;Alongside the benefits previously described, my decision to position SD-WAN can be summarised based on the following value proposition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flexibility:&lt;/strong&gt; SD-WAN is incredibly flexible, for example, it is easy to increase, reduce and even combine bandwidth across multiple connection types, including fixed-line and cellular. Therefore, it is now perfectly viable to have cellular (4G/5G) as a core part of the WAN architecture, providing an additional level of on-demand resilience for critical sites. Thanks to the centralised management, SD-WAN is also very quick to deploy, without the need for local (on the ground) engagement. This improved flexibility is especially important for modern businesses, that may need to grow (mergers and acquisitions) and contract (divestitures) based on market conditions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance:&lt;/strong&gt; SD-WAN removes the need to backhaul traffic via a central location and/or data centre, ensuring that traffic routing is optimised across all scenarios, including cloud services (SaaS, Public Cloud, etc.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reliability:&lt;/strong&gt; Thanks to the application-aware routing and dynamic link assessment, it is possible to deliver a highly reliable architecture at low cost, through the use of multiple commodity Internet connections. This approach could dramatically improve service availability, through automated “failover” in the event of a network outage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; SD-WAN inherently includes advanced security capabilities, covering end-to-end traffic encryption and network segmentation. Supported by centralised management, any potential breach and/or vulnerability could be quickly identified and contained (supporting a Zero Trust security model).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost:&lt;/strong&gt; A traditional MPLS architecture could be expensive, driven by a need to procure from a carrier, often resulting in fixed (multi-year) contracts and long provisioning times. It is also common for MPLS networks to have dedicated backup circuits, which only get utilised during an outage. SD-WAN supports multiple connection types (including MPLS), allowing businesses to prioritise inexpensive commodity Internet connections. SD-WAN also aims to optimise traffic across all connections simultaneously, improving efficiency and therefore ensuring a higher return on investment.&lt;/p&gt;

&lt;p&gt;In conclusion, I believe the positioning of SD-WAN and the use of commodity Internet connections would unlock a wide range of operational and financial benefits, as well as add flexibility, improving business agility.&lt;/p&gt;
</description>
        <pubDate>Fri, 01 Mar 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/03/01/SD-WAN/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/03/01/SD-WAN/</guid>
      </item>
    
      <item>
        <title>macOS and Windows</title>
        <description>&lt;p&gt;I recently shared my experience &lt;a href=&quot;/2019/02/06/ThinkPad-X1-Extreme/&quot;&gt;switching from a 15-inch MacBook Pro to a Lenovo ThinkPad X1 Extreme&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In the previous article, I focused on the hardware differences, however, another area of consideration is the software (specifically the “ecosystem” and associated lock-in). For example, if you use a lot of Apple devices and software (e.g. Mac, iPhone, iPad, iMessage, Apple Music) the thought of switching to Windows can be daunting, especially if you have also purchased a lot of third-party software.&lt;/p&gt;

&lt;p&gt;As a result, this article will share my journey from macOS to Windows, including the software I use.&lt;/p&gt;

&lt;p&gt;It should be noted that as part of my work, I switch between operating systems a lot. On a regular basis, I will use macOS, Windows, Linux, iOS, and Android. Therefore, I have likely been more careful than most in selecting software and services that do not tie me into a specific ecosystem.&lt;/p&gt;

&lt;p&gt;With this philosophy in mind, my transition to Windows was fairly painless. Outlined below are the applications I use on a regular basis on macOS, including the Windows equivalent.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/macosandwindows01.jpg&quot; alt=&quot;macOS and Windows&quot; title=&quot;macOS and Windows&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, thanks to the growth of web technologies and frameworks such as &lt;a href=&quot;https://electronjs.org/&quot;&gt;Electron&lt;/a&gt;, many applications are now cross-platform. Therefore, the transition to Windows can be achieved with minimal disruption or additional cost.&lt;/p&gt;

&lt;p&gt;A few minor pain areas include photo editing and vector editing, where I use Pixelmator and Sketch on the Mac. Thankfully, the &lt;a href=&quot;https://affinity.serif.com/&quot;&gt;Serif Affinity&lt;/a&gt; suite of software has gained a lot of momentum in recent years, offering a compelling feature-set at a reasonable price-point. My only frustration is that Serif do not offer a transferable license between Mac and Windows (which would likely make me switch on the Mac side).&lt;/p&gt;

&lt;p&gt;Software Development can also be a little tricky, specifically when looking to develop native applications for macOS or iOS. The Xcode Integrated Development Environment (IDE) requires macOS and although there are workarounds, most macOS/iOS developers will likely prefer to remain on a Mac. Thankfully, most of my development is web-based, which, thanks to Docker and other supporting build-tools is easily transferred between macOS and Windows.&lt;/p&gt;

&lt;p&gt;The most frustrating gap for me is &lt;a href=&quot;https://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt;, which I use on the Mac to launch applications/files, as well as &lt;a href=&quot;/2017/05/12/alfred-snippets/&quot;&gt;automate my workflow&lt;/a&gt;. There have been attempts to “port” Alfred to Windows, specifically &lt;a href=&quot;https://www.launchy.net/&quot;&gt;Launchy&lt;/a&gt; and &lt;a href=&quot;http://www.wox.one/&quot;&gt;Wox&lt;/a&gt;. However, in my experience, these tools are very immature and lack the polish offered by Alfred (which is bulletproof). Therefore, I find myself using the native Windows search (by hitting the Windows Key). It is a poor comparison to Alfred, lacking any native workflow support, but is at least reliable for basic application/file launching.&lt;/p&gt;

&lt;p&gt;Regarding which software ecosystem,  I sill favour macOS, where there are a lot of independent, high-quality, low-cost applications such as Alfred, Pixelmator, Sketch. However, over recent years, I feel cross-platform applications have become increasingly impressive, something I expect to continue with &lt;a href=&quot;/2017/07/27/progressive-web-apps/&quot;&gt;Progressive Web Apps (PWA)&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;In conclusion, I still prefer macOS as an operating system (I am more comfortable using a &lt;a href=&quot;https://www.opengroup.org/openbrand/register/apple.htm&quot;&gt;UNIX-like&lt;/a&gt; environment). However, I have been very impressed with Windows 10 (specifically v1809), which has proven to be fast and reliable. Outside of a few notable exceptions (v1803), Microsoft has also done a good job of delivering continuous improvements (including new end-user features), which cannot be said about Apple and macOS (although this might begin to change with the public release of &lt;a href=&quot;https://9to5mac.com/2019/02/20/marzipan-mac/&quot;&gt;Marzipan&lt;/a&gt;).&lt;/p&gt;
</description>
        <pubDate>Thu, 14 Feb 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/02/14/macOS-and-Windows/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/02/14/macOS-and-Windows/</guid>
      </item>
    
      <item>
        <title>Tank Arena</title>
        <description>&lt;p&gt;In 2017, &lt;a href=&quot;/2017/03/09/GameMaker-Studio-2/&quot;&gt;I wrote a short article regarding GameMaker Studio 2&lt;/a&gt;, which I use to develop simple cross-platform, multi-genre video games.&lt;/p&gt;

&lt;p&gt;My most recent project is a simple top-down shooter, incorporating “&lt;a href=&quot;https://en.wikipedia.org/wiki/Battle_royale_game&quot;&gt;Battle Royale&lt;/a&gt;” elements, where the enemies spawn randomly across a battlefield that decreases in size based on a time interval.&lt;/p&gt;

&lt;p&gt;The game targets my son, who is only four years old, therefore it must be simple to understand and play, as well short (targeting less than 3mins per play session).&lt;/p&gt;

&lt;p&gt;Outlined below are a few high-level requirements:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Minimum of five levels, the final level will continue to spawn enemies until the player tank is destroyed.&lt;/li&gt;
  &lt;li&gt;Minimum of five enemy types, each with unique abilities, including tank design, strength, and speed.&lt;/li&gt;
  &lt;li&gt;Each level will increase in difficulty, including different terrain/obstacles, number of enemies, battlefield reduction rate.&lt;/li&gt;
  &lt;li&gt;Multiple “power-up” items, providing access to new player abilities, including speed, weapons, etc.&lt;/li&gt;
  &lt;li&gt;Simple scoring system and leaderboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to the simplicity of GameMaker Studio 2, I was able to develop the basic foundations in just a few hours. The video below showcases the first two levels, highlighting the basic movement/shooting mechanics, multiple enemy types, power-up items, scoring and a basic menu system.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/j3V5lQUXo1w?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;At this time, I have not implemented return fire from the enemies, instead, the player is defeated when physically hit by an enemy. I make actually retain this game dynamic for the opening two levels, helping to support a gradual complexity curve for the player.&lt;/p&gt;

&lt;p&gt;Thanks to the simplicity and power of the Drop and Drag (DnD) capabilities within GameMaker Studio 2, I often start with DnD, using the “&lt;a href=&quot;http://docs2.yoyogames.com/source/_build/3_scripting/2_drag_and_drop_reference/common_actions/execute_code.html&quot;&gt;Execute Code&lt;/a&gt;” action where required. An example can be seen below, where the basic enemy characteristics have been defined using DnD.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/tankarena01.jpg&quot; alt=&quot;Tank Arena&quot; title=&quot;Tank Arena&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Regarding assets, I often leverage open asset packs as a starting point (my favourite are from &lt;a href=&quot;https://www.kenney.nl/&quot;&gt;Kenney&lt;/a&gt;), tweaking the individual assets to meet our personal requirements.&lt;/p&gt;

&lt;p&gt;The image below is an example of two enemy tanks, highlighting the collision masks.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/tankarena02.jpg&quot; alt=&quot;Tank Arena&quot; title=&quot;Tank Arena&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The image below depicts the room created for level one, which starts incredibly basic (no obstacles) to help with the learning curve (recognising my target audience).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/tankarena03.jpg&quot; alt=&quot;Tank Arena&quot; title=&quot;Tank Arena&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The next phase is to implement the variable battlefield and leaderboard, followed by the creation of the additional levels and enemies. Thankfully, the additional levels and enemies leverage the existing logic, with new assets and variables (e.g. hit damage, speed, weapon strength, etc.)&lt;/p&gt;

&lt;p&gt;Tank Arena can be found on &lt;a href=&quot;https://github.com/mswbull/Tank_Arena&quot;&gt;GitHub&lt;/a&gt;, all source code and assets are open-source covered under the &lt;a href=&quot;https://creativecommons.org/publicdomain/zero/1.0/&quot;&gt;CC0 1.0 Universal&lt;/a&gt; license.&lt;/p&gt;
</description>
        <pubDate>Mon, 11 Feb 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/02/11/Tank-Arena/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/02/11/Tank-Arena/</guid>
      </item>
    
      <item>
        <title>Service Delivery</title>
        <description>&lt;p&gt;This article is part of a series. I would recommend reading the articles in order, starting with “&lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;Modern IT Ecosystem&lt;/a&gt;”, which provides the required framing.&lt;/p&gt;

&lt;p&gt;As a brief reminder, this series aims to explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;As a technologist, I am eager to start proposing the architecture and associated technologies. However, to ensure the series is credible, I felt it was important to first outline my approach to service delivery.&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;To help ensure quality and consistency, I have defined a service delivery plan, which highlights the key deliverables associated with the implementation of any new service. Depending on the services, the deliverables could be rightsized, helping to promote innovation and agility, except for services that support regulated workloads, where the ability to demonstrate a state of control would be a critical requirement.&lt;/p&gt;

&lt;p&gt;For example, as part of this series, &lt;a href=&quot;/2019/01/21/Modern-IT-Ecosystem/&quot;&gt;I defined a set of business characteristics&lt;/a&gt;, where I selected a regulated industry (Food and Drug). Therefore, any service supporting a “GxP” workload would need to adhere to the principles and procedures outlined by &lt;a href=&quot;https://ispe.org/publications/guidance-documents/gamp-5&quot;&gt;Good Automated Manufacturing Practice (GAMP)&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;service-delivery-plan&quot;&gt;Service Delivery Plan&lt;/h3&gt;

&lt;p&gt;Outlined below is the service delivery plan, which includes the phase, item and decision making authorities (RACI).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/servicedelivery01.jpg&quot; alt=&quot;Service Delivery&quot; title=&quot;Service Delivery&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although “Delivery”, “Ops” and “IS” are separate RACI roles, the service delivery plan assumes a “DevSecOps” philosophy. Therefore, security practices should be integrated within the DevOps process, meaning that “Delivery”, “Ops” and “IS” would all be actively engaged as part of the design.&lt;/p&gt;

&lt;p&gt;The “Automation” column highlights which items would be viable for automation or facilitate application/data automation. For example, “Application Manifest and/or Infrastructure-as-Code” would be an enabler of future automation.&lt;/p&gt;

&lt;p&gt;Where required, the Design Qualification (DQ), Installation Qualification (IQ), Operational Qualification (OQ) and Performance Qualification (PQ) would be embedded as part of the associated phases.&lt;/p&gt;

&lt;p&gt;Finally, the service delivery plan is not limited to any specific project management methodology (e.g. Waterfall, Agile, etc.) This would allow for flexibility, depending on the characteristics and/or requirements of the specific service.&lt;/p&gt;

&lt;h3 id=&quot;continuous-quality&quot;&gt;Continuous Quality&lt;/h3&gt;

&lt;p&gt;When operating within a regulated industry, all roles must have an understanding of the associated regulations and guidelines. For example, in the context of “Food and Drug”, it would be important to have a clearly defined process that facilitates Qualification and Validation.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Qualification:&lt;/strong&gt; The act of proving that equipment or ancillary systems are properly installed, working as designed and comply with the specified requirements.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Validation:&lt;/strong&gt; A documented objective evidence that provides a high degree of assurance that a specific process consistently produces a product meeting its predetermined specifications.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Qualification is part of the validation, but the individual qualification steps alone do not constitute process validation. For example, the infrastructure must be qualified, while the software running the processes on the infrastructure must be validated.&lt;/p&gt;

&lt;p&gt;Many perceive achieving this outcome as a time-consuming process, however, I believe modern technologies and techniques could help streamline the process, whilst simultaneously improving quality.&lt;/p&gt;

&lt;h4 id=&quot;continuous-qualification&quot;&gt;Continuous Qualification&lt;/h4&gt;

&lt;p&gt;Software-Defined techniques and the use of Infrastructure-as-Code have a profound impact on the provisioning and maintenance of infrastructure. The four steps outlined below are an example of how these techniques could help to enable and maintain a Qualified State (QS).&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;As outlined in the service delivery plan, infrastructure requirements must be substantiated as code (Infrastructure-as-Code). This code becomes a blueprint, accurately reflecting the state of the infrastructure.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A “continuous” qualification framework (following standard CI/CD practices), consistently deploys the infrastructure based on a specific blueprint in NON-PRD (DEV, TEST, QA) environments. At which point, automated testing could be performed, resulting in test execution reports.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;IT Quality reviews and certifies the blueprints and test execution reports.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The qualified blueprints could be published as a Service Catalogue item, enabling enterprise re-use.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To ensure end-to-end quality, all associated Automation and Monitoring tools must also be qualified, empowering them to proactively deploy and maintain the Qualified State (QS).&lt;/p&gt;

&lt;h4 id=&quot;continuous-validation&quot;&gt;Continuous Validation&lt;/h4&gt;

&lt;p&gt;Similar modern software development techniques could be applied to validation. The three steps outlined below are an example of how continuously validation could be achieved.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Automated testing and test-driven development (TDD) must be a core part of the software development lifecycle.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Functional tests become the backbone of the validation process, where product teams simultaneously write the validation scripts along with the code, executing the tests at regular intervals.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The regular execution of automated tests (before and after implementation) would result in an application that is continuously validated.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A common misconception is that regulators require tests to be executed by a human and physically signed. Using the FDA as an example, the requirement states that “objective evidence that software requirements describe the intended use and that the system meets those needs of the user.” Objective evidence could be achieved through a variety of techniques, including automation.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Regardless of the defined compliance and/or regulatory requirements, I believe every business should aim to proactively embed quality (Quality by Design), making it a continuous part of the service delivery approach. Where viable, software-defined techniques and automation could significantly improve quality, helping to drive higher accuracy and consistency, whilst also unlocking business agility.&lt;/p&gt;
</description>
        <pubDate>Sat, 09 Feb 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/02/09/Service-Delivery/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/02/09/Service-Delivery/</guid>
      </item>
    
      <item>
        <title>ThinkPad X1 Extreme</title>
        <description>&lt;p&gt;I first used a Mac in 1996, a Power Macintosh 6000 Series, based on the Quadra 630 form factor. As this hardware pre-dated Mac OS X, I initially favoured my &lt;a href=&quot;/2011/12/12/first-pc/&quot;&gt;Windows PC, running Windows 95&lt;/a&gt;. This changed in 2003 when I purchased a Powerbook G4 running Mac OS X 10.3, which served as my primary computer at university.&lt;/p&gt;

&lt;p&gt;Since the launch of the iPhone in 2007, Apple has shifted its focus away from the Mac, looking to maintain its market dominance in mobile computing. As a result, the Mac and macOS have felt a little neglected, with extended product lifecycles and inconsequential updates.&lt;/p&gt;

&lt;p&gt;The most significant update in recent years was the release of &lt;a href=&quot;/2016/11/28/macbook-pro-late-2016/&quot;&gt;2016 MacBook Pro&lt;/a&gt;, which included the infamous butterfly mechanism keyboard and Touch Bar. Although this release was a departure from the previous design, the new features were not well received and have since been a point of frustration (Keyboard) and neglect (Touch Bar).&lt;/p&gt;

&lt;p&gt;Although I have used a Mac as my daily driver for the past fifteen years, I have also had regular access to Windows PCs, including my &lt;a href=&quot;/2018/02/16/my-setup-2018/&quot;&gt;custom-built PC and (most recently) a Surface Book 2&lt;/a&gt;. However, partly due to my &lt;a href=&quot;/2018/09/23/CTO/&quot;&gt;new role&lt;/a&gt;, I recently made the switch to a Windows laptop as my daily driver.&lt;/p&gt;

&lt;p&gt;I wanted a laptop that would be the equivalent of my 15-inch MacBook Pro, therefore I selected &lt;a href=&quot;https://www.lenovo.com/gb/en/laptops/thinkpad/x-series/ThinkPad-X1-Extreme/p/22TP2TXX1E1&quot;&gt;Lenovo ThinkPad X1 Extreme&lt;/a&gt;, with the following specification:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Lenovo ThinkPad X1 Extreme&lt;/li&gt;
  &lt;li&gt;2.6GHz 6-Core Intel Core i7-8850H (Turbo up to 4.30GHz)&lt;/li&gt;
  &lt;li&gt;32GB DDR4 2666MHz RAM&lt;/li&gt;
  &lt;li&gt;1TB M.2 NVMe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce GTX 1050 Ti Max-Q 4GB GDDR5&lt;/li&gt;
  &lt;li&gt;15.6” 4K UHD Touch IPS Display (3840x2160, 400nits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article is not intended to be a detailed review of the ThinkPad X1 Extreme, for that, I would recommend &lt;a href=&quot;https://youtu.be/vOPeXe1ZE74&quot;&gt;Engadget&lt;/a&gt; or &lt;a href=&quot;https://youtu.be/JgWyGKf_WlM&quot;&gt;MobileTechReview&lt;/a&gt;. Instead, I thought I would share my initial thoughts, comparing the primary differences between the ThinkPad X1 Extreme and 15-inch MacBook Pro (specifically the hardware, not the software).&lt;/p&gt;

&lt;p&gt;To keep things simple, the article is split into two parts: Positives and Negatives.&lt;/p&gt;

&lt;h3 id=&quot;thinkpad-x1-extreme---positives&quot;&gt;ThinkPad X1 Extreme - Positives&lt;/h3&gt;

&lt;h4 id=&quot;port-selection&quot;&gt;Port Selection&lt;/h4&gt;

&lt;p&gt;The port selection on the Lenovo ThinkPad is exceptional.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2x USB-C Thunderbolt 3&lt;/li&gt;
  &lt;li&gt;2x USB-A 3.1&lt;/li&gt;
  &lt;li&gt;1x HDMI 2.0&lt;/li&gt;
  &lt;li&gt;1x Network Extension Connector&lt;/li&gt;
  &lt;li&gt;1x SD Card Reader&lt;/li&gt;
  &lt;li&gt;1x Headphone Jack (Audio/Microphone)&lt;/li&gt;
  &lt;li&gt;1x Rapid Charge Port&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When compared with the MacBook Pro (4x ThunderBolt 3 ports), it is refreshing to be able to use traditional USB devices and connect to a TV/Projector via HDMI, without needing to locate a dongle.&lt;/p&gt;

&lt;p&gt;Lenovo has also managed to deliver this wide range of ports, without negatively impacting the size or weight of the laptop. In my opinion, the ThinkPad feels no more cumbersome than the MacBook Pro.&lt;/p&gt;

&lt;h4 id=&quot;keyboard&quot;&gt;Keyboard&lt;/h4&gt;

&lt;p&gt;The ThinkPad keyboard is a dream to use, it has excellent key travel (1.7 millimetres) and large, well-spaced keys. Although I have not been able to test over a prolonged period, I feel it is safe to state that ThinkPad keyboard will be more durable than the MacBook Pro, as it leverages a traditional (tried and tested) mechanism.&lt;/p&gt;

&lt;p&gt;Although I personally do not mind the butterfly mechanism keyboard used on the MacBook Pro, I do believe the ThinkPad includes a better overall design, allowing for a more comfortable and accurate typing experience.&lt;/p&gt;

&lt;h4 id=&quot;display&quot;&gt;Display&lt;/h4&gt;

&lt;p&gt;The 4K UHD Touch Display on the ThinkPad is also a highlight, delivering 186% of the sRGB colour gamut, which is an improvement over the 117% offered by the MacBook Pro. In short, the display is detailed and vivid, making text and photos look great. It also natively supports High Dynamic Range (HDR) for video playback, which is a nice feature, but let down by the poor software support in Windows.&lt;/p&gt;

&lt;p&gt;Windows is also not great at scaling to high resolutions, resulting in some occasional visual anomalies such as text blurring. By default, Windows recommends 250% scaling, but personally, I prefer more real-estate, therefore I select 150%. This can make the text quite small but is closer to my experience using the MacBook Pro.&lt;/p&gt;

&lt;p&gt;The display is also “touch” compatible, which technically works well, but in my opinion, is fairly useless on a traditional laptop. As the ThinkPad is not a convertible device (does not have a tablet mode), using touch requires you to lean over the keyboard, tapping against the wobbly display hinge. With that said, the display does open flat (unlike the MacBook Pro), which can be useful when working in a confined space.&lt;/p&gt;

&lt;h4 id=&quot;performance&quot;&gt;Performance&lt;/h4&gt;

&lt;p&gt;Recognising the specification, the ThinkPad is unsurprisingly a great performer. The 6-core (12-thread) processor provides plenty of horsepower, supported by up to 64GB of RAM, a fast NVMe SSD and an NVIDIA GPU.&lt;/p&gt;

&lt;p&gt;When compared with the MacBook Pro, Apple has a higher specification CPU (Intel i9), however, it is thermally constrained. As a result, the Intel i7 included in the ThinkPad is actually quicker for real-world tasks. The memory in the ThinkPad is also quicker (2666MHz vs. 24000MHz) and supports up to 64GB. Apple continues to be the market leader when it comes to storage speed (2700MB/s Read/Write), however, as highlighted below, the ThinkPad still delivers strong performance in excess of 2000MB/s Read/Write.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/thinkpad01.jpg&quot; alt=&quot;ThinkPad X1 Extreme&quot; title=&quot;ThinkPad X1 Extreme&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The ThinkPad includes the GeForce GTX 1050 Ti Max-Q, which is fairly old, but still a popular choice as it provides good performance, with respectable power consumption and thermals. Personally, I prefer NVIDIA graphics over AMD, which is what Apple has chosen to include in the MacBook Pro. In my opinion, NVIDIA continues to deliver more innovation and higher overall performance, including proprietary features such as &lt;a href=&quot;https://www.geforce.co.uk/hardware/technology/cuda&quot;&gt;CUDA&lt;/a&gt; (parallel computing platform and programming model), &lt;a href=&quot;https://www.nvidia.com/en-gb/geforce/products/g-sync-monitors/&quot;&gt;G-Sync&lt;/a&gt;, &lt;a href=&quot;https://www.geforce.com/hardware/technology/physx&quot;&gt;PhysX&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;The screenshot below highlights the PCMark 10 result, which easily outperformed my &lt;a href=&quot;/2018/05/03/Surface-Book-2/&quot;&gt;Surface Book 2&lt;/a&gt; that scored 3946. As the ThinkPad is not a dedicated gaming laptop, I did not include a 3DMark result, although the NVIDIA GeForce GTX 1050 Ti Max-Q will play most modern games at 1920x1080 (medium settings).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/thinkpad02.jpg&quot; alt=&quot;ThinkPad X1 Extreme&quot; title=&quot;ThinkPad X1 Extreme&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although not yet confirmed, I suspect Lenovo will announce an updated ThinkPad X1 Extreme in June/July 2019. This will likely include the newer NVIDIA GeForce GTX 1650 Max-Q, offering up to a 20% performance boost.&lt;/p&gt;

&lt;p&gt;On paper, the ThinkPad and MacBook Pro are fairly equal, however, as the ThinkPad offers better thermals, it will likely outperform the MacBook Pro when completing CPU/GPU intensive tasks. The added features (specifically CUDA) provided by the NVIDIA GPU are also beneficial when using applications such as Adobe Premier, etc.&lt;/p&gt;

&lt;h3 id=&quot;thinkpad-x1-extreme---negatives&quot;&gt;ThinkPad X1 Extreme - Negatives&lt;/h3&gt;

&lt;h4 id=&quot;trackpad&quot;&gt;Trackpad&lt;/h4&gt;

&lt;p&gt;The trackpad on the ThinkPad is my single biggest pain point. In fairness, this is really a failing of Windows laptops, but coming from a MacBook Pro, the Thinkpad trackpad is almost unusable (I now carry a mouse everywhere I go). It is well known that Apple makes the best trackpads, but it is only when you are forced to use a Windows laptop that the difference is fully understood. The MacBook Pro trackpad is incredible, it almost anticipates your movement and never feels sluggish or unresponsive.&lt;/p&gt;

&lt;p&gt;On the ThinkPad, I frequently find the trackpad to be unresponsive or difficult to use with any level of accuracy. I have tweaked every possible setting in Windows (including the use of different drivers), hoping to “tune” a better experience, but I have yet to find an outcome that meets my expectations.&lt;/p&gt;

&lt;p&gt;Recognising that the trackpad is the primary input mechanism on a laptop, the poor quality offered on the ThinkPad makes using the laptop infuriating.&lt;/p&gt;

&lt;h4 id=&quot;build-quality&quot;&gt;Build Quality&lt;/h4&gt;

&lt;p&gt;You might be surprised to see build quality as a negative for the ThinkPad. To be clear, this is a well-built laptop, with a carbon fibre body and soft-touch finish (which is great when typing). Unfortunately, it simply does not compare to the build quality of the MacBook Pro, which (in my opinion) continues to be the best on the market.&lt;/p&gt;

&lt;p&gt;As an example, I order a lot of MacBook Pro notebooks at work and can confirm that the level of precision and craftsmanship is always perfectly consistent. I also have access to a lot of ThinkPad laptops, where I have witnessed subtle inconsistencies between identical models.&lt;/p&gt;

&lt;p&gt;In summary, the ThinkPad is well built, but I feel lacks the final quality assurance guaranteed by the Apple manufacturing process.&lt;/p&gt;

&lt;h4 id=&quot;battery-life&quot;&gt;Battery Life&lt;/h4&gt;

&lt;p&gt;Lenovo state that the ThinkPad will achieve twelve hours of battery life. Unfortunately, I can only assume this result was achieved on the lowest specification (no 4K display), running a very light workload. In my experience, I have been getting closer to five hours of battery life, which can be restrictive.&lt;/p&gt;

&lt;p&gt;For example, I travel from the UK to the US a lot and do not always have access to power whilst in the air. With my MacBook Pro, I will easily get nine hours of battery life, running a combination of Atom, Pixelmator, Docker and GameMaker Studio 2 at 50% display brightness. This is simply not possible with the ThinkPad.&lt;/p&gt;

&lt;p&gt;On a positive note, the ThinkPad does include a 135W quicker charger (80% battery life in thirty minutes) and can be charged at a slower rate using USB-C. Therefore, assuming you have access to power, the battery life limitation is manageable.&lt;/p&gt;

&lt;h4 id=&quot;aesthetics&quot;&gt;Aesthetics&lt;/h4&gt;

&lt;p&gt;This is completely superficial and also subjective, however, I would describe the ThinkPad style as understated, maybe even anonymous. In some respects, I like this “no thrills” design approach, as it clearly positions the laptop as a utility, focused on getting work done.&lt;/p&gt;

&lt;p&gt;However, I suspect style conscious individuals will find the ThinkPad design to be a little uninspired, lacking any real unique design identity (outside of the iconic TrackPoint button). This is especially true when compared against the MacBook Pro and even PC competitors such as the Dell XPS line.&lt;/p&gt;

&lt;h3 id=&quot;thinkpad-x1-extreme---conclusion&quot;&gt;ThinkPad X1 Extreme - Conclusion&lt;/h3&gt;

&lt;p&gt;In summary, the ThinkPad X1 Extreme is a great laptop! It is fast, functional and (in the majority of cases) a pleasure to use.&lt;/p&gt;

&lt;p&gt;Likely helped by the fact that I still use Windows on a regular basis, but I was pleased with how quickly I was able to adapt to using the ThinkPad as my daily driver. There are even areas I prefer over my MacBook Pro, specifically the keyboard and access to an NVIDIA GPU.&lt;/p&gt;

&lt;p&gt;Unfortunately, as crazy as it sounds, the trackpad is a potential deal-breaker for me. Although I use a lot of keyboard shortcuts, I still rely heavily on the trackpad, therefore, to have such an important part of the laptop be this unreliable is unacceptable. I appreciate the ThinkPad includes the TrackPoint and touch display, however, in my opinion, these are simply not a viable replacement for a good trackpad. Therefore, if I end up switching back to a MacBook Pro as my daily driver, I suspect it will be the trackpad that pushes me over the edge.&lt;/p&gt;

&lt;p&gt;Finally, it is worth highlighting the price of ThinkPad when compared to an equivalent MacBook Pro.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;ThinkPad X1 Extreme (6-Core, 32GB, 1TB, 4GB GPU) = £2773.19&lt;/li&gt;
  &lt;li&gt;15-inch MacBook Pro (6-Core, 32GB, 1TB, 4GB GPU) = £4004.00&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is difficult to ignore that price difference. A saving of £1230.81 is a lot to pay for a better trackpad!&lt;/p&gt;
</description>
        <pubDate>Wed, 06 Feb 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/02/06/ThinkPad-X1-Extreme/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/02/06/ThinkPad-X1-Extreme/</guid>
      </item>
    
      <item>
        <title>Modern IT Ecosystem</title>
        <description>&lt;p&gt;The desire to modernise an enterprise business is often a familiar battle with legacy and technical debt. This article is the first in a series, which will explore the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up.&lt;/p&gt;

&lt;p&gt;Over the coming months, I will share my thoughts regarding the creation of a modern IT ecosystem. I will take on the persona of an enterprise architect, therefore the articles will predominantly focus on the architecture, technologies and positioning, however, I will also highlight key processes and methodologies.&lt;/p&gt;

&lt;p&gt;Recognising that all good IT decisions must include business context, with a clear value proposition. I have defined the following hypothetical business characteristics.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Global Business (Americas, EMA, APAC)&lt;/li&gt;
  &lt;li&gt;Regulated Industry (Food and Drug)&lt;/li&gt;
  &lt;li&gt;Customers in 90+ Countries&lt;/li&gt;
  &lt;li&gt;Value Chain includes R&amp;amp;D, Manufacturing, Commercial and Global Services&lt;/li&gt;
  &lt;li&gt;15,000+ Total Users (Employees and Contractors)&lt;/li&gt;
  &lt;li&gt;170+ IT Users (Employees and Contractors)&lt;/li&gt;
  &lt;li&gt;50+ Physical Sites Globally&lt;/li&gt;
  &lt;li&gt;10+ R&amp;amp;D and Manufacturing Sites (24x7 Operation)&lt;/li&gt;
  &lt;li&gt;Established Traditional Business Model&lt;/li&gt;
  &lt;li&gt;Emerging Digital Business Model&lt;/li&gt;
  &lt;li&gt;$5Billion Revenue&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Selecting a regulated industry (Food and Drug) enforces a set of rules, regulations and guidelines. This decision will impact the design of the ecosystem, but also hopefully add credibility to the analysis, recognising that the proposed architecture must meet a minimum set of standards, governing safety, efficacy, quality, privacy and security.&lt;/p&gt;

&lt;p&gt;Throughout this series, I will use these business characteristics to inform my proposed architecture, as well as take into consideration other key business drivers such as maximising the return on investment.&lt;/p&gt;

&lt;h3 id=&quot;it-principles&quot;&gt;IT Principles&lt;/h3&gt;

&lt;p&gt;Prior to any architecture decisions, I believe it is important to baseline the approach by defining a set of IT principles. These IT principles aim to drive better strategic decision making, by proactively triggering the right architecture conversations.&lt;/p&gt;

&lt;p&gt;I have established four principles assigned to the “classic” enterprise architecture domains, covering Business Process, Information, Application and Technology.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/itprinciples.jpg&quot; alt=&quot;IT Principles&quot; title=&quot;IT Principles&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The rationale behind having only four principles is to ensure that they could be easily consumed and remembered. As highlighted in my 2016 article “&lt;a href=&quot;/2016/01/05/enterprise-it-architecture/&quot;&gt;Enterprise IT Architecture&lt;/a&gt;”, architects tend to overanalyse, resulting in unnecessary complexity which could limit adoption and adherence.&lt;/p&gt;

&lt;h3 id=&quot;it-declarations&quot;&gt;IT Declarations&lt;/h3&gt;

&lt;p&gt;Although the IT principles provide a high-level direction, they could be difficult to translate into a tangible outcome. As a result, I have created a corresponding set of IT declarations, which aim to add additional context, reinforcing the target-state architecture.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Hybrid-Cloud:&lt;/strong&gt; By default, Public Cloud must be prioritised over Colocation Data Centres and Edge Computing.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Open Source:&lt;/strong&gt; By default, new applications must prioritise open-source technologies, with any proprietary technologies looking to maximise strategic investments.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Custom Developed:&lt;/strong&gt; By default, new custom-developed applications must embrace a Cloud Native architecture (Twelve-Factor App and FAIR), prioritising FaaS and PaaS.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Commercial of the Shelf (CotS):&lt;/strong&gt; By default, new Commercial of the Shelf (CotS) applications must embrace a Cloud Native architecture, prioritising SaaS.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Server Deployment:&lt;/strong&gt; By default, new IaaS deployments must target immutable infrastructure, including ephemeral (short-lived) and stateless (do not persist a session) servers.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Automation:&lt;/strong&gt; By default, new application deployments must be automated, leveraging build tools and/or automation services.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Datastores:&lt;/strong&gt; By default, new managed datastores must prioritise open-source technologies, avoiding proprietary/licensed technologies.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Integrations:&lt;/strong&gt; By default, new system-to-system integrations must leverage the approved Enterprise Integration Fabric.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;API-First:&lt;/strong&gt; By default, new applications must leverage open and documented web service APIs and/or Webhooks.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Client Plugins:&lt;/strong&gt; By default, new client-side applications must be browser-based, avoiding the use of proprietary plugins (e.g. .Net Framework, Java, Flash, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Internet Accessible:&lt;/strong&gt; By default, new applications must be accessible via the Internet, secured at source and in transit, removing the need for a VPN/VDI.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I would not anticipate 100% adherence to the IT principles and/or IT declarations.  For example, specialised capabilities from R&amp;amp;D and Manufacturing, which commonly require proprietary software/hardware.&lt;/p&gt;

&lt;h3 id=&quot;modern-it-ecosystem&quot;&gt;Modern IT Ecosystem&lt;/h3&gt;

&lt;p&gt;With the previously stated business characteristics in mind, the diagram below highlights my vision of a modern IT ecosystem. It is purposely “marchitecture” (a combination of marketing and architecture), used to communicate the desired end-state to a non-technical audience.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/itecosystem.jpg&quot; alt=&quot;IT Ecosystem&quot; title=&quot;IT Ecosystem&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The bullets below provide context to the diagram, describing the philosophy and intended direction for each area. As part of this series, I plan to analyse these areas (among others) in greater detail.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;SaaS:&lt;/strong&gt; Recognising the limited competitive advantage, all highly-industrialised/commodity capabilities would be positioned as SaaS. Examples include Productivity, Collaboration, Service Management, Customer Relationship Management (CRM), Human Resource Planning (HRP), etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Public Cloud:&lt;/strong&gt; Public Cloud would be prioritised for all application/data hosting, emphasising “up the stack” services. For example, FaaS and PaaS would be prioritised over IaaS. The underlying architecture would strive to be cloud-agnostic, embracing a hybrid multi-cloud strategy.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Colocation Data Centres:&lt;/strong&gt; Multiple Colocation Data Centres would provide support for capabilities that would not be commercially or architecturally a good fit for Public Cloud. For example, the previously mentioned, specialised capabilities from R&amp;amp;D and Manufacturing. The Colocation Data Centres would securely and dynamically connect to each other via a managed network backbone, which would also provide high-performance connectivity with key partners and Public Cloud providers.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;SDDC:&lt;/strong&gt; The infrastructure deployed within the Colocation Data Centres would be highly-converged, leveraging modular (blade-based) hardware that would allow compute, storage and network to be scaled independently (providing flexibility). All Data Centre resources and services would be software-defined, following modern Software-Defined Data Centre (SDDC) techniques.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;ERP:&lt;/strong&gt; Enterprise Resource Planning (ERP) would be fully managed (SaaS-like), but hosted in a specialised cloud that would ideally interconnect with managed network backbone provided by the Colocation Data Centres. Recognising the importance of ERP, this approach would aim to exploit the benefits of a fully managed service, whilst offering “LAN-like” performance, reliability and consistency. It would also help avoid unnecessary lock-in with a specific Public Cloud provider (AKA Hyperscaler), which could become a costly investment based on ingress/egress charges.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;IAM:&lt;/strong&gt; Identity Access Management (IAM) would support the Cloud (SaaS, Public Cloud), Colocation Data Centres and Edge Computing, providing flexibility and resilience for any application. Modern authentication and authorisation mechanisms would be prioritised, enabling single sign-on and password-less capabilities for users.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Automation:&lt;/strong&gt; All cloud services (SaaS, Public Cloud), Colocation Data Centre and Edge Computing would be fully automated, leveraging Software-Defined techniques. As depicted by the “DevOps” cloud, the automation would be delivered via a unified suite of services, covering provisioning, governance, budgeting, discovery, testing, security analysis, quality assurance, documentation and change control.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;WAN:&lt;/strong&gt; The Wide Area Network (WAN) would utilise an SD-WAN architecture, simplifying management and operations, whilst enabling the use of commodity Internet circuits instead of traditional MPLS.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;User Endpoints:&lt;/strong&gt; Applications and services would be Internet-accessible, via the web and/or an API. This approach would simplify the endpoints architecture, removing the need for specialist hardware and/or software, whilst promoting a “consumer-like” experience covering any operating system (e.g. Windows, macOS, Linux, ChromeOS, iOS, Android, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;LAN:&lt;/strong&gt; Wireless technologies would be prioritised at the local sites, made available via a unified SSID that would dynamically provision access based on the endpoint conditions. R&amp;amp;D and Manufacturing would include strict segmentation policies, following the &lt;a href=&quot;https://en.wikipedia.org/wiki/Purdue_Enterprise_Reference_Architecture&quot;&gt;Purdue Reference Architecture&lt;/a&gt;, allowing for a clear separation of concerns and ensuring sensitive workloads could run autonomously.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Edge Computing:&lt;/strong&gt; To support latency-sensitive applications at R&amp;amp;D and Manufacturing sites, edge compute and storage would be made available. Similar to the Colocation Data Centre architecture, Edge Computing would target a highly-converged (possibly hyper-converged) infrastructure, supported by software-defined techniques.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Information Security:&lt;/strong&gt; A &lt;a href=&quot;https://go.forrester.com/government-solutions/zero-trust/&quot;&gt;Zero Trust&lt;/a&gt; security model would be followed, localising and isolating threats through microcore, segmentation and deep visibility. To achieve this outcome, multiple technologies would be embedded as part of the wider architecture, including Layer 7 Firewalls, Network Segmentation, Agent-less Network Access Control, Data Loss Prevention, Privileged Access Management and a dedicated Security Operations Centre (SOC). These technologies would be complemented by a clear “least privilege access” strategy and appropriate governance, monitoring, auditing, etc.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Over the coming months, I plan to build upon this initial article, incrementally detailing the capabilities associated with my vision of a modern IT ecosystem. As highlighted in the framing, these articles will reference the previously defined business characteristics, predominantly focused on the architecture, technologies and positioning.&lt;/p&gt;
</description>
        <pubDate>Mon, 21 Jan 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/01/21/Modern-IT-Ecosystem/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/01/21/Modern-IT-Ecosystem/</guid>
      </item>
    
      <item>
        <title>Career Planning</title>
        <description>&lt;p&gt;In September, I transitioned from my role as an Enterprise IT Architect to &lt;a href=&quot;/2018/09/23/cto/&quot;&gt;Chief Technology Officer (CTO)&lt;/a&gt;. This change marked a major milestone in my career, something I had been working towards for over a decade.&lt;/p&gt;

&lt;p&gt;This article highlights my approach to career planning, covering the high-level methodology and some key techniques.&lt;/p&gt;

&lt;p&gt;As a general rule, embracing stoic philosophy, I attempt to identify, prioritise, and own the choices that are clearly within my direct control, whilst accepting external events that are beyond my direct control.&lt;/p&gt;

&lt;p&gt;This mindset has been important throughout my career, helping me to prioritise actions that can contribute to a positive outcome, disregarding external factors that are impossible to change or avoid.&lt;/p&gt;

&lt;p&gt;It should be noted that this approach can be perceived as lacking empathy, as acceptance, without context, can appear “heartless”. However, I believe focus and discipline are key behaviours that promote success, recognising that external events are a common distraction that can derail progression towards a specific goal.&lt;/p&gt;

&lt;p&gt;With this in mind, I consider my career a strategy, which must be effectively planned and methodically executed. To help, I have defined a simple five-step career planning methodology.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Mission Statement&lt;/li&gt;
  &lt;li&gt;North Star&lt;/li&gt;
  &lt;li&gt;Career Plan&lt;/li&gt;
  &lt;li&gt;Education Plan&lt;/li&gt;
  &lt;li&gt;Community Network&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This article will cover each step, providing examples from my career.&lt;/p&gt;

&lt;p&gt;It is important to note that every career plan is unique to the individual and the methodology described in this article compliments my style and therefore may not resonate with everyone.&lt;/p&gt;

&lt;h3 id=&quot;mission-statement&quot;&gt;Mission Statement&lt;/h3&gt;

&lt;p&gt;A mission statement is a formal summary of the aims and values of a company, organisation, or individual.&lt;/p&gt;

&lt;p&gt;As with any strategy, I believe it is critical to establish a clear outcome. In the context of career planning, a mission statement can help establish your personal brand, whilst communicating your purpose.&lt;/p&gt;

&lt;p&gt;For example, my mission statement reads:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Apply technology to improve the wellbeing of people and our planet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There is no right or wrong answer when defining a mission statement. However, I believe it should focus on an area of passion, which will encourage resilience and perseverance during times of stress and/or hardship. For example, my mission statement attempts to articulate three points:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I am passionate about “technology”.&lt;/li&gt;
  &lt;li&gt;I am passionate about how to “apply” technology, not invent/create it.&lt;/li&gt;
  &lt;li&gt;I am passionate about health and “wellbeing”, specifically people and our planet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I use my mission statement as an anchor to ground my career, ensuring I stay true to my passion area and purpose.&lt;/p&gt;

&lt;h3 id=&quot;north-star&quot;&gt;North Star&lt;/h3&gt;

&lt;p&gt;With a mission statement established, identifying a position/role that best supports the outcomes of the mission statement can help solidify the direction.&lt;/p&gt;

&lt;p&gt;For me, that would be a position/role that includes the highest level of influence and accountability over key decisions, however, this might not be desired by everyone. For example, not everyone desires a leadership position, which is perfectly acceptable.&lt;/p&gt;

&lt;p&gt;It was this reflection, over a decade ago, that led me to the role of Chief Technology Officer (CTO), ideally, as part of an organisation focused on the wellbeing of people and our planet.&lt;/p&gt;

&lt;p&gt;In addition to the position/role, establishing a set of principles can help provide scope to your career plan, serving as guardrails or system of belief (e.g. morals, ethics, etc.)&lt;/p&gt;

&lt;p&gt;At a minimum, these principles should cover five key areas.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Self (Physical/Mental Health)&lt;/li&gt;
  &lt;li&gt;Family (Parents, Children, etc.)&lt;/li&gt;
  &lt;li&gt;Friends&lt;/li&gt;
  &lt;li&gt;Social (Work/Life Balance)&lt;/li&gt;
  &lt;li&gt;Financials (Commitments, Protections, etc.)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The principles should describe ideals, which can be malleable and (in certain scenarios) even compromised, but should stay ultimately true for sustained personal wellbeing. For example, if you have goals related to family, these must be protected/balanced alongside your career.&lt;/p&gt;

&lt;h3 id=&quot;career-plan&quot;&gt;Career Plan&lt;/h3&gt;

&lt;p&gt;Once a north star (position/role) and supporting principles have been defined, I document the expertise, experience and behaviours required by the target position/role. This can be subjective, especially if the position/role is not well defined, but still an important exercise to help plot a path forward.&lt;/p&gt;

&lt;p&gt;The list outlined below includes a few example behaviours that I deem critical to be a successful Chief Technology Officer (CTO).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Technical Depth and Breadth&lt;/li&gt;
  &lt;li&gt;Business Context and Credibility&lt;/li&gt;
  &lt;li&gt;Strategic Mindset&lt;/li&gt;
  &lt;li&gt;Communications and Influence&lt;/li&gt;
  &lt;li&gt;Proven Record of Enterprise Delivery&lt;/li&gt;
  &lt;li&gt;Quality External Network&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once understood, you can start to chart a career plan, which could include multiple paths, roles, and organisations. It is also worth including any previous experience, as this can help highlight gaps and inform future decisions.&lt;/p&gt;

&lt;p&gt;The goal is to construct a plan that incorporates opportunities that enable you to learn and demonstrate mastery of the previously defined expertise, experience and behaviours, always pushing towards your desired outcome (north star). The diagram below is an example of my career plan.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/careerplanning01.jpg&quot; alt=&quot;Career Planning&quot; title=&quot;Career Planning&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the example, my career plan includes multiple milestones, which come in the form of new roles, short-term assignments and/or opportunities. Ideally, each should have a specific purpose, tangibly contributing towards your personal development.&lt;/p&gt;

&lt;p&gt;To help support healthy progression throughout the career plan, I follow a simple methodology that I affectionately call “The Bourne Engagement”.&lt;/p&gt;

&lt;p&gt;When starting something new, either a role, project, or a programme, I follow a three-phase engagement approach, which coincidently matches the titles of the popular Bourne series of movies. For example.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/careerplanning02.jpg&quot; alt=&quot;Career Planning&quot; title=&quot;Career Planning&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Starting with “Identity”, I believe it is critical, when starting something new, to spend time establishing a strong relationship with the team, whilst seeking to understand any relevant business context, and/or business politics/bureaucracy.&lt;/p&gt;

&lt;p&gt;In theory, this approach helps to form a strong foundation, established in trust, whilst also ensuring the team has a clear understanding of your personal brand, areas of passion, etc.&lt;/p&gt;

&lt;p&gt;Only once your identity has been established, you can transition to “Supremacy”, which is where you demonstrate your strengths and influence, seizing opportunities and positioning yourself as a high performer and thought leader.&lt;/p&gt;

&lt;p&gt;Finally, with an established identity and sustained/consistent high-performance, you can transition to “Ultimatum”, where you prepare for career progression, through clear accountability and by leveraging your established credibility and people network.&lt;/p&gt;

&lt;p&gt;Although slightly “cringe-worthy”, this three-phase approach has always served me well, regardless of situation or level. The speed at which you can transition through each phase is dependent on the specific scenario, but I would caution attempting to proceed too quickly, as trust and credibility can not be cheated, it requires “time in the trenches”.&lt;/p&gt;

&lt;h3 id=&quot;education-plan&quot;&gt;Education Plan&lt;/h3&gt;

&lt;p&gt;In parallel to the career path, I also produce an education plan. It is easy to assume that formal education concludes at the end of school/college/university, but I believe it must be seen as a continuous process, especially when working in a fast-moving industry such as IT.&lt;/p&gt;

&lt;p&gt;As with the career plan, the education plan should connect to the previously defined required expertise, experience and behaviours. It can be used to enrich and accelerate career progression, whilst also bringing a valuable “external perspective”, ensuring diversity of thought, which can be lost when working within a single organisation for a prolonged period.&lt;/p&gt;

&lt;p&gt;Outlined below is an example of my education plan, which includes multiple channels, covering formal education, courses, conferences, speaking opportunities, etc.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/careerplanning03.jpg&quot; alt=&quot;Career Planning&quot; title=&quot;Career Planning&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alongside the value of continuous learning, the education plan can help establish a strong external people network, which can act as a differentiator as you progress through your career.&lt;/p&gt;

&lt;p&gt;I have found speaking at (not just attending) events (e.g. conferences, meet-ups, etc.) to be an excellent way to engage the community and establish external relationships.&lt;/p&gt;

&lt;h3 id=&quot;community-network&quot;&gt;Community Network&lt;/h3&gt;

&lt;p&gt;The final area formalises the importance of the people network. As it relates to career, there is certainly truth to the common saying “it’s not what you know, but who you know”, however, I would argue both are equally important.&lt;/p&gt;

&lt;p&gt;With that said, a strong people network can help ensure your personal development is diverse and inclusive, whilst also revealing new opportunities that might otherwise be hidden. Therefore, I take time to establish and nurture a robust people network, supported by a simple stakeholder map.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/careerplanning04.jpg&quot; alt=&quot;Career Planning&quot; title=&quot;Career Planning&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The goal is to identify key individuals (internal to your organisation and external) that can support your personal development, aligned with your career plan and defined expertise, experience and behaviours. A stakeholder network can be quite large, which is why categorisation is useful, as it provides a simple framework to help coordinate engagement (type of engagement, frequency, etc.)&lt;/p&gt;

&lt;p&gt;In parallel, key individuals should be positioned as formal mentors. A strong, trusted mentor can have a profound impact on your career, however, it is the mentee that must drive this value. For example, I identify mentors that can directly support my personal development, focusing the conversations on specific topics vs. generic chat.&lt;/p&gt;

&lt;p&gt;As you progress in your career, the concept of a “reverse-mentor” becomes equally important, targetting an early career professional who can help provide a generational perspective, alongside future trends that may not be obvious in leadership positions.&lt;/p&gt;

&lt;p&gt;In short, I consider a strong people network a critical asset that must be proactively maintained, with specific goals, to ensure the value is maximised.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;As stated during the framing of this article, every career plan is unique to the individual and the methodology described in this article may not resonate with everyone.&lt;/p&gt;

&lt;p&gt;Regardless of your approach, one thing is true, you must own your career! Therefore, be proactive, get organised and start working towards your personal outcome!&lt;/p&gt;
</description>
        <pubDate>Sat, 12 Jan 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/01/12/Career-Planning/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/01/12/Career-Planning/</guid>
      </item>
    
      <item>
        <title>Thriva</title>
        <description>&lt;p&gt;My two primary passions in life are Technology and Health, therefore I am always interested when these two areas converge.&lt;/p&gt;

&lt;p&gt;Over the years, I have written a number of articles focused on improving health outcomes through the use of technology (see below). I have also experimented with new concepts and services, such as the Quantified Self, &lt;a href=&quot;https://www.23andme.com/&quot;&gt;23andMe&lt;/a&gt;, and &lt;a href=&quot;https://www.babylonhealth.com/&quot;&gt;Babylon Health&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/12/30/The-Healthcare-Revolution/&quot;&gt;The Healthcare Revolution (2014)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/03/04/Forward-Healthcare/&quot;&gt;Forward Healthcare (2017)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/04/01/The-Quantified-Self/&quot;&gt;The-Quantified-Self&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/07/20/23andMe-Part-One/&quot;&gt;23andMe - Part One (2017)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/08/23/23andMe-Part-Two/&quot;&gt;23andMe - Part Two (2017)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/03/05/Babylon-Health/&quot;&gt;Babylon Health (2018)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/03/09/The-Healthcare-Reality/&quot;&gt;The Healthcare Reality (2018)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/06/28/Babylon-AI/&quot;&gt;Babylon AI (2018)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://thriva.co/&quot;&gt;Thriva&lt;/a&gt;, which launched in 2016, &lt;a href=&quot;/2018/03/09/the-healthcare-reality/&quot;&gt;has always been on my radar&lt;/a&gt;. The service aims to take health tracking to the next level, through a regular blood test which can be completed at home. Although this mission sounds similar to the ill-fated &lt;a href=&quot;https://en.wikipedia.org/wiki/Theranos&quot;&gt;Theranos&lt;/a&gt;, Thriva targets a limited set of tests, enabled through traditional lab testing techniques.&lt;/p&gt;

&lt;p&gt;I like the concept a lot, as it shifts the focus from reactive to proactive (preventative) health, which is an area &lt;a href=&quot;/2014/12/30/The-Healthcare-Revolution/&quot;&gt;I have always promoted&lt;/a&gt;. As highlighted on their website, Thriva state:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“By increasing convenience, ease, and insightfulness, we’re providing the products and services that will empower people to proactively manage their health. Once you know what’s going on inside your body, you can understand the impact of your lifestyle on your health and start to make small changes that add up to a healthier you.”&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;my-experience&quot;&gt;My Experience&lt;/h3&gt;

&lt;p&gt;The ordering process is very easy, simply sign-up for an account on the &lt;a href=&quot;https://thriva.co/&quot;&gt;Thriva website&lt;/a&gt; and select your subscription level, covering Essential, Baseline, and Advanced. I selected “Advanced”, which costs £69.00 and includes the following tests:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Cholesterol&lt;/li&gt;
  &lt;li&gt;Liver Function&lt;/li&gt;
  &lt;li&gt;Iron Profile&lt;/li&gt;
  &lt;li&gt;Vitamin D&lt;/li&gt;
  &lt;li&gt;Vitamin B12&lt;/li&gt;
  &lt;li&gt;Vitamin B9 (Folate)&lt;/li&gt;
  &lt;li&gt;Diabetes (HbA1c)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I was a little suspicious about how easy the process would be to collect the blood, especially the size of the sample (which is not clearly highlighted on the homepage). It does however state:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Your kit contains everything you need for your simple finger-prick blood test.”&lt;/em&gt; and &lt;em&gt;“The whole process is straightforward and takes just a few minutes.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The sample collection box arrived in the post very quickly, which is compact and therefore should fit through a standard letterbox.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/thriva01.jpg&quot; alt=&quot;Thriva&quot; title=&quot;Thriva&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Upon opening, the box is clearly marked, with focus placed on the instructions and three phases (prepare, sample, send).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/thriva02.jpg&quot; alt=&quot;Thriva&quot; title=&quot;Thriva&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The sample collection box included:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2x Sample Collection Tube&lt;/li&gt;
  &lt;li&gt;1x Alcohol Swab&lt;/li&gt;
  &lt;li&gt;1x Moist Wipe&lt;/li&gt;
  &lt;li&gt;2x Plasters&lt;/li&gt;
  &lt;li&gt;3x Spring Loaded Lancets&lt;/li&gt;
  &lt;li&gt;1x Plastic Protective Casing&lt;/li&gt;
  &lt;li&gt;1x Return Form&lt;/li&gt;
  &lt;li&gt;1x Return Envelope&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where I encountered my first challenge, as the website and instructions state that there should be only one Sample Collection Tube, but I had received two. The Sample Collection Tubes were also a little larger than I had anticipated, especially as the only way to fill them is to drip blood from a finger-prick created by the lancet.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/thriva03.jpg&quot; alt=&quot;Thriva&quot; title=&quot;Thriva&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Even with the confusion, I decided to start the process, with the aim to fill both tubes. The step-by-step instructions were reasonably clear and I followed them to the letter.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/thriva04.jpg&quot; alt=&quot;Thriva&quot; title=&quot;Thriva&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, no matter how many times I pricked my finger, I simply could not get a constant flow of blood. After 15 minutes of trying, the prospect of filling two tubes had become daunting.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/thriva05.jpg&quot; alt=&quot;Thriva&quot; title=&quot;Thriva&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Eventually, I decided to give up, the process (in my experience) had not lived up to the “simple” and “straightforward” marketing.&lt;/p&gt;

&lt;p&gt;My next step was to contact Thriva via the &lt;a href=&quot;https://intercom.help/thrivahelpcenter&quot;&gt;FAQ&lt;/a&gt; section on their website. This led me to the article “&lt;a href=&quot;https://intercom.help/thrivahelpcenter/the-thriva-kit/im-having-trouble-collecting-a-blood-sample&quot;&gt;I’m having trouble collecting a blood sample&lt;/a&gt;”, which states the following on the opening line:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Collecting your sample for the first time can be tricky.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This was the first time the process had been described as “tricky”, which in my opinion makes the homepage statements a little misleading.&lt;/p&gt;

&lt;p&gt;Thankfully, the knowledge article itself was useful, clearly stating that Thriva will provide a free replacement kit, in the event the first attempt fails to achieve a usable sample. I can also confirm that if you decide not to proceed, Thriva will offer a refund (excluding a £7 fee for the kit itself).&lt;/p&gt;

&lt;p&gt;At this time I have not decided if I plan to re-try the process, questioning if the benefit is worth the effort.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In conclusion, I remain excited by the prospect of a service that enables individuals to proactively manage their health, especially with the high level of accuracy that can be achieved through a blood sample.&lt;/p&gt;

&lt;p&gt;However, in my experience, the Thriva process is uncomfortable and cumbersome and the statement “simple finger-prick blood test” does not accurately describe the multi-minute blood dripping exercise that is required to fill the two tubes. I believe this process would be enough to deter most people, especially for anyone who is uncomfortable around blood.&lt;/p&gt;

&lt;p&gt;Due to the complexity of the process, I see Thriva as a service that would only be accepted by “health enthusiasts”, not the general public. This is a problem for Thriva, as their mission is only achievable if the data provided by their service can produce actionable insights for the demographic most at risk (e.g. General Public).&lt;/p&gt;

&lt;p&gt;With that said, every revolution must start somewhere and I appreciate the pragmatic approach taken by Thriva, delivering a service that places a focus on accuracy (leveraging mature techniques and accredited labs), even if the sample collection process is cumbersome. Hopefully, through technology advances, they can continue to simplify the process and therefore attract a wider audience.&lt;/p&gt;
</description>
        <pubDate>Thu, 03 Jan 2019 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2019/01/03/Thriva/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2019/01/03/Thriva/</guid>
      </item>
    
      <item>
        <title>Amazon Go</title>
        <description>&lt;p&gt;I was recently in Seattle meeting Microsoft but took the opportunity to visit an &lt;a href=&quot;https://www.amazon.com/b?ie=UTF8&amp;amp;node=16008589011&quot;&gt;Amazon Go&lt;/a&gt; (&lt;a href=&quot;https://goo.gl/maps/fkZMumEC29D2&quot;&gt;7th &amp;amp; Blanchard&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/amazongo01.jpg&quot; alt=&quot;Amazon Go&quot; title=&quot;Amazon Go&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Amazon Go is an automated grocery store, allowing you to purchase items without any human intervention. You simply enter the store by scanning a QR code on the &lt;a href=&quot;https://www.amazon.com/b?ie=UTF8&amp;amp;node=16008589011&quot;&gt;Amazon Go&lt;/a&gt; app. Once inside, you are free to fill your bag with items and leave when finished.&lt;/p&gt;

&lt;p&gt;The two images below are from my smartphone, showing the key (I have removed the QR code) and receipt for my purchase. The receipt appears within the app after a few minutes of leaving the store.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/amazongo02.jpg&quot; alt=&quot;Amazon Go&quot; title=&quot;Amazon Go&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unsurprisingly, the store is packed with technology to support the purchase, checkout, and payment processes. This includes computer vision, deep learning, and sensors, specifically a camera array on the ceiling (see image below) and weight sensors under specific items.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/amazongo03.jpg&quot; alt=&quot;Amazon Go&quot; title=&quot;Amazon Go&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The combination of these technologies allows for each customer to be tracked whilst in the store, including what items they take (and return) from the shelves.&lt;/p&gt;

&lt;p&gt;I cannot speak to the accuracy of the process, but it did work flawlessly for my purchase. This included multiple people entering the store under my QR code, each removing and returning multiple items on different shelves.&lt;/p&gt;

&lt;p&gt;Overall, I was impressed with the process and admire Amazon for trialing a radically different and innovative approach to grocery shopping. As a customer, it was certainly a strange experience, entering and exiting a store without any obvious payment process.&lt;/p&gt;

&lt;p&gt;I do have questions about the scalability of the approach, as I assume the technology (today) is far more expensive than simply having a couple of staff support the checkout process. It also has specific limitations, for example, due to local laws, human intervention is still required when purchasing alcohol, etc.&lt;/p&gt;

&lt;p&gt;With that said, I hope Amazon continues to refine the process and opens more stores around the world.&lt;/p&gt;
</description>
        <pubDate>Mon, 12 Nov 2018 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2018/11/12/Amazon-Go/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/11/12/Amazon-Go/</guid>
      </item>
    
      <item>
        <title>Samsung Q7FN</title>
        <description>&lt;p&gt;In 2016, I shared my &lt;a href=&quot;/2016/05/19/entertainment-setup/&quot;&gt;entertainment setup&lt;/a&gt;, including my TV, Sound, AV Receiver, and Universal Remote.&lt;/p&gt;

&lt;p&gt;I recently upgraded my TV to a &lt;a href=&quot;https://www.samsung.com/uk/tvs/qledtv-q7fn/QE55Q7FNATXXU/&quot;&gt;Samsung Q7FN QLED&lt;/a&gt;. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Samsung Q7FN QLED (55-inch)&lt;/li&gt;
  &lt;li&gt;3840×2160 Resolution&lt;/li&gt;
  &lt;li&gt;240Hz Refresh Rate (120Hz Measured)&lt;/li&gt;
  &lt;li&gt;1500nits Peak Brightness&lt;/li&gt;
  &lt;li&gt;10bit Colour Support&lt;/li&gt;
  &lt;li&gt;HDR 10+ Compatible&lt;/li&gt;
  &lt;li&gt;100% DCI-P3 Coverage&lt;/li&gt;
  &lt;li&gt;4k Variable Refresh Rate (48Hz to 60Hz)&lt;/li&gt;
  &lt;li&gt;1080p Variable Refresh Rate (20Hz to 120Hz)&lt;/li&gt;
  &lt;li&gt;12.6ms Response Time&lt;/li&gt;
  &lt;li&gt;Edge LED Backlight&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As highlighted in my &lt;a href=&quot;/2016/05/19/entertainment-setup/&quot;&gt;previous article&lt;/a&gt;, I wall mount my TV, with all AV equipment located in a cupboard under the stairs. Thankfully, the Samsung Q7FN is compatible with my existing VESA wall mount, therefore the upgrade was fairly painless.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/entertainmentsetup06.jpg&quot; alt=&quot;Samsung One Connect&quot; title=&quot;Samsung One Connect&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I often get asked, why did I not purchase an OLED?&lt;/p&gt;

&lt;p&gt;My usage pattern includes sport, games, and music. Each of these includes static content, which can often remain fixed on the display for many hours at a time (especially music, when streaming from Spotify). OLED is the gold standard when it comes to picture quality, however, it does suffer from burn-in when displaying static content for prolonged periods.&lt;/p&gt;

&lt;p&gt;If you are interested in learning more about OLED burn-in, &lt;a href=&quot;https://www.rtings.com/tv/learn/real-life-oled-burn-in-test&quot;&gt;Rtings have completed a very comprehensive test&lt;/a&gt; across six LG  TVs and 5000+ hours. I have also captured their recommendation below:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Those who display the same static content over long periods of time should consider the risk of burn-in (such as those who watch lots of news, use the TV as a PC monitor, or play the same game with a bright static HUD). Those who are concerned about the risk of burn-in should go with an LCD TV for the peace of mind.”&lt;/em&gt; - &lt;a href=&quot;https://www.rtings.com/tv/learn/real-life-oled-burn-in-test&quot;&gt;Rtings&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another reason for selecting a Samsung is the inclusion of the One Connect box, which enables a very clean and minimal setup. The Samsung Q7FN comes with an upgraded One Connect box, which not only includes all input/output connections but also power. Therefore, I simply need to route one (very thin) cable through the wall to my AV equipment.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/entertainmentsetup07.jpg&quot; alt=&quot;Entertainment Setup&quot; title=&quot;Entertainment Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It is worth noting that although the Samsung Q8FN includes local dimming (40 zones), it does not support the One Connect box, therefore my purchasing decision was between the Q7FN (RRP £1509) and Q9FN (RRP £2119). I decided to go with the Q7FN as I expect I will upgrade again within a few years, however, if you want the very best on offer from Samsung, you should target the Q9FN.&lt;/p&gt;

&lt;p&gt;Overall, I have been very impressed with the Samsung Q7FN, specifically the improved HDR quality, as well as advanced gaming features such as Variable Refresh Rate (FreeSync 2). The Edge LED Backlight still results in some blooming, but overall black uniformity is very good (especially when compared against my old Samsung KS8000).&lt;/p&gt;

&lt;p&gt;As with any new TV, to achieve the best results it must first be calibrated. As an example, Tom Cruise and Christopher McQuarrie recently released a video (embedded below) highlighting the impact of motion interpolation (soap opera effect), which is often enabled by default and can distort the content.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/1J0Dan0WaZk?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Outlined below are my calibration settings.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NOTE: I would always recommend professional TV calibration, however, this requires specific tools and a detailed understanding of colour space, etc. As a result, the calibration settings outlined below should be used as a reference only.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;samsung-q7fn-calibration&quot;&gt;Samsung Q7FN Calibration&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Eco Solution&lt;/strong&gt; = Off&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Picture Mode&lt;/strong&gt; = Movie&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Backlight&lt;/strong&gt; = 25&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness&lt;/strong&gt; = 0&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Contrast&lt;/strong&gt; = 45&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sharpness&lt;/strong&gt; = 0&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Color&lt;/strong&gt; = 25&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tint (G/R)&lt;/strong&gt; = G0/R0&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Digital Clean View&lt;/strong&gt; = Off&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Contrast Enhancer&lt;/strong&gt; = Off&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Local Dimming&lt;/strong&gt; = High&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Auto Motion Plus&lt;/strong&gt; = Custom&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Blur Reduction&lt;/strong&gt; = 0&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Judder Reduction&lt;/strong&gt; = 0&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;LED Clear Motion&lt;/strong&gt; = Off&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Color Tone&lt;/strong&gt; = Warm2&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Gamma&lt;/strong&gt; = +2&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Color Space&lt;/strong&gt; = Auto&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;HDMI UHD Color&lt;/strong&gt; = On (All Sources)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The settings outlined above are configured for all modes (including HDR, Gaming, etc.)&lt;/p&gt;

&lt;p&gt;However, when displaying HDR content, I ensure the “backlight” is set to maximum, allowing for the highest possible peak brightness (1000-4000 cd/m²). When gaming, “Game Mode” should be enabled to ensure the lowest possible input latency (12.6ms).&lt;/p&gt;
</description>
        <pubDate>Sat, 10 Nov 2018 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2018/11/10/Samsung-Q7FN/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/11/10/Samsung-Q7FN/</guid>
      </item>
    
      <item>
        <title>GeForce RTX vs. 3DMark</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://www.3dmark.com&quot;&gt;3DMark&lt;/a&gt; is a popular computer benchmarking tool targeting 3D graphics and CPU performance. It produces a normalised score (higher is better) for comparing different PC hardware configurations.&lt;/p&gt;

&lt;p&gt;I joined the 3DMark community (known then as MadOnion) in 2000, just after the launch of 3DMark2000. My small claim to fame, in 2002, I gained early access to an NVIDIA GeForce Ti 4600, which I modified with a custom cooler and voltmod. This resulted in a short period near the top of the 3DMark2001 SE global leaderboard.&lt;/p&gt;

&lt;p&gt;Earlier this month, I gained access to an &lt;a href=&quot;/2018/10/26/GeForce-RTX/&quot;&gt;NVIDIA GeForce RTX 2080 Ti&lt;/a&gt;. As part of my testing, I thought I would take a trip down memory lane, running all compatible versions of 3DMark.&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;As outlined in the article “&lt;a href=&quot;/my-setup-2018/&quot;&gt;my setup&lt;/a&gt;”, the GeForce RTX 2080 Ti was added to my custom-built PC. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus Maximus VIII Hero Alpha (Intel Z170)&lt;/li&gt;
  &lt;li&gt;Intel Core i7-6700K 4.0GHz @ 4.6GHz&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;Corsair Vengeance LPX 32GB DDR4 PC4-24000C15 (15-17-17-35)&lt;/li&gt;
  &lt;li&gt;PNY GeForce RTX 2080 Ti 11GB XLR8 Gaming Overclocked Edition&lt;/li&gt;
  &lt;li&gt;Samsung 950 Pro 512GB M.2 PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;NOTE: The GeForce RTX 2080 TI is obviously not optimised to run legacy benchmarks. Therefore, these results are for reference only and should not be used to compare hardware.&lt;/em&gt;&lt;/p&gt;

&lt;h4 id=&quot;3dmark-2013-to-2018&quot;&gt;3DMark (2013 to 2018)&lt;/h4&gt;

&lt;p&gt;3DMark is a DirectX 12 benchmark for Windows 10, supporting multi-core processors and 4K resolution. 3DMark is the only fully supported benchmark, therefore the result below can be used for comparison.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/rtx3dmark01.jpg&quot; alt=&quot;GeForce RTX vs. 3DMark&quot; title=&quot;GeForce RTX vs. 3DMark&quot; /&gt;&lt;/p&gt;

&lt;p&gt;3DMark will be updated in January 2019 to include a &lt;a href=&quot;https://benchmarks.ul.com/news/new-ray-tracing-benchmark-coming-to-3dmark-in-january-2019&quot;&gt;ray-tracing benchmark&lt;/a&gt;, allowing for more thorough testing of the GeForce RTX series. This new suite of tests will become increasingly important as ray tracing and hybrid rendering (ray tracing + rasterisation) matures.&lt;/p&gt;

&lt;h4 id=&quot;3dmark-11&quot;&gt;3DMark 11&lt;/h4&gt;

&lt;p&gt;3DMark 11 is a DirectX 11 benchmark, including features such as tessellation, compute shaders and multi-threading.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/rtx3dmark02.jpg&quot; alt=&quot;GeForce RTX vs. 3DMark&quot; title=&quot;GeForce RTX vs. 3DMark&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As a relatively modern benchmark, the GeForce RTX 2080 Ti produces an impressive result. By comparison, in 2016 my &lt;a href=&quot;/2016/04/01/skylake-build/&quot;&gt;GeForce GTX 980 achieved a score of P18063&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;3dmark-vantage&quot;&gt;3DMark Vantage&lt;/h4&gt;

&lt;p&gt;3DMark Vantage is a DirectX 10 benchmark for Windows Vista. It includes the Jane Nash and New Calico graphics tests, an AI test, a physics test and six feature tests.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/rtx3dmark03.jpg&quot; alt=&quot;GeForce RTX vs. 3DMark&quot; title=&quot;GeForce RTX vs. 3DMark&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Jane Nash test achieved an average of 201 FPS, followed by 308 FPS for the New Calico test.&lt;/p&gt;

&lt;h4 id=&quot;3dmark06&quot;&gt;3DMark06&lt;/h4&gt;

&lt;p&gt;3DMark06 is a DirectX 9.0c benchmark, adding support for Shader Model 3.0 and new CPU tests using &lt;a href=&quot;https://www.geforce.com/hardware/technology/physx&quot;&gt;PhysX&lt;/a&gt;. The graphics tests are Return to Proxycon, Firefly Forest, Canyon Flight, and Deep Freeze.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/rtx3dmark04.jpg&quot; alt=&quot;GeForce RTX vs. 3DMark&quot; title=&quot;GeForce RTX vs. 3DMark&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The GeForce RTX made short work of the game tests, hitting an average of 128 FPS in Return to Proxycon and 275 FPS in Canyon Flight. Even though the benchmark is over a decade old, the CPU tests remain incredibly intensive, with my quad-core/eight-thread Intel i7 only achieving an average of 5 FPS.&lt;/p&gt;

&lt;h4 id=&quot;3dmark05&quot;&gt;3DMark05&lt;/h4&gt;

&lt;p&gt;3DMark05 is a DirectX 9.0c benchmark, providing support for Shader Model 2.0. Game tests include Return to Proxycon, Firefly Forest and Canyon Flight.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/rtx3dmark05.jpg&quot; alt=&quot;GeForce RTX vs. 3DMark&quot; title=&quot;GeForce RTX vs. 3DMark&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Return to Proxycon test achieved an average of 146 FPS, with Canyon Flight averaging 320 FPS. Interestingly, the CPU tests in 3DMark05 performed worse than 3DMark06, achieving an average of 1.3 FPS.&lt;/p&gt;

&lt;h4 id=&quot;3dmark03&quot;&gt;3DMark03&lt;/h4&gt;

&lt;p&gt;3DMark03 is a DirectX 9 benchmark. It was the first 3DMark to include CPU tests. The graphics tests are Wings of Fury, Battle of Proxycon, Troll’s Lair and Mother Nature.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/rtx3dmark06.jpg&quot; alt=&quot;GeForce RTX vs. 3DMark&quot; title=&quot;GeForce RTX vs. 3DMark&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It was impressive to see Battle of Proxycon hit an average of 1462 FPS and the Pixel Shader 2.0 performance exceed 3300 FPS. Based on the numbers, 3DMark03 game tests resulted in the highest overall performance.&lt;/p&gt;

&lt;h4 id=&quot;3dmark2001-se&quot;&gt;3DMark2001 SE&lt;/h4&gt;

&lt;p&gt;3DMark2001 SE is a DirectX 8.1 benchmark. The Car Chase, Dragothic, Lobby, and Nature tests feature vertex and pixel shaders and full scene anti-aliasing.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/rtx3dmark07.jpg&quot; alt=&quot;GeForce RTX vs. 3DMark&quot; title=&quot;GeForce RTX vs. 3DMark&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The user interface of 3DMark2001 SE is restricted to 999 FPS, therefore it is more difficult to understand the true performance. However, using &lt;a href=&quot;http://www.fraps.com&quot;&gt;FRAPS&lt;/a&gt; revealed and an average of 1300 FPS for the opening three (low detail) graphics tests.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I was also able to run 3DMark2000 (DirectX 7.0), however, this required  “Windows XP Compatibility Mode” to be enabled, as well as a modified “SystemInfo.dll”. Although the benchmark did run clean, the score was drastically low (4295), clearly highlighting the impact of unoptimised hardware/software.&lt;/p&gt;

&lt;p&gt;As a long-time user of 3DMark, it was fun to watch the GeForce RTX 2080 Ti tackle these legacy benchmarks. It was also surprising how well all of the benchmarks performed, considering the lack of support and optimisation.&lt;/p&gt;
</description>
        <pubDate>Sat, 03 Nov 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/11/03/GeForce-RTX-vs-3DMark/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/11/03/GeForce-RTX-vs-3DMark/</guid>
      </item>
    
      <item>
        <title>UK EA Forum - Part VI</title>
        <description>&lt;p&gt;In 2017, I launched a UK Enterprise Architecture Forum, which supports an open community of architects, allowing them to share ideas, experiences, and challenges.&lt;/p&gt;

&lt;p&gt;The forum aims to meet once per quarter, however, we also collaborate throughout the year via digital channels. Details of the previous meetings can be found linked below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/03/31/UK-EA-Forum-Part-One/&quot;&gt;UK EA Forum - Part I&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/06/16/UK-EA-Forum-Part-Two/&quot;&gt;UK EA Forum - Part II&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/09/29/UK-EA-Forum-Part-Three/&quot;&gt;UK EA Forum - Part III&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/01/19/UK-EA-Forum-Part-Four/&quot;&gt;UK EA Forum - Part IV&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/05/26/UK-EA-Forum-Part-Five/&quot;&gt;UK EA Forum - Part V&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today, we held the sixth forum, where we covered the following topics:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;IT4IT - IT Service Management&lt;/li&gt;
  &lt;li&gt;Architect Skills / Behaviours&lt;/li&gt;
  &lt;li&gt;Enterprise Architecture Principles&lt;/li&gt;
  &lt;li&gt;Greenfield Opportunity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Outlined below are my notes from the meeting.&lt;/p&gt;

&lt;h3 id=&quot;it4it---it-service-management&quot;&gt;IT4IT - IT Service Management&lt;/h3&gt;

&lt;p&gt;IT Service Management has always been a challenge for businesses with a decentralised operating model.&lt;/p&gt;

&lt;p&gt;Technologies such as &lt;a href=&quot;https://www.servicenow.com&quot;&gt;ServiceNow&lt;/a&gt; can help, through the use of self-service, workflows, approvals, etc. However, the service is only as good as the business process, which is not inherently defined.&lt;/p&gt;

&lt;p&gt;BP shared an update regarding their digital modernisation initiative, which included a new framework to support IT Service Management.
The easiest way to understand the framework is to watch the session they recently delivered at the &lt;a href=&quot;https://www.servicenow.com/nowforum-nowsummit.html&quot;&gt;Now Summit&lt;/a&gt; in London.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/u4QXwbz5P7E?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The framework de-emphasises centralised IT, by embracing an “Agile-like” approach, where any team (decentralised) can create a service and make it available for consumption via an internal marketplace. A key ramification of this change is accountability, which now sits with the team that created the service (including lifecycle, change management, security, quality, privacy, etc.)&lt;/p&gt;

&lt;p&gt;The framework is split into three parts.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;A Service (A group of resources).&lt;/li&gt;
  &lt;li&gt;A Service Offering (What people consume).&lt;/li&gt;
  &lt;li&gt;A Resource (What makes up the service).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To ensure the framework can scale naturally, with minimal governance, the following constraints are applied.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;A resource must be in one and only one service.&lt;/li&gt;
  &lt;li&gt;No direct relationship between a resource and a product.&lt;/li&gt;
  &lt;li&gt;Users inherit roles only from the groups they are in.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The goal for BP is to enable an internal marketplace (an API ecosystem), where teams can create, share, reuse and update services, without manual intervention or unnecessary bureaucracy. In a perfect world, these services become highly automated (improving agility), easy to manage (clear dependency mapping), as well as continuously maintained (clear accountability).&lt;/p&gt;

&lt;p&gt;The framework does not replace the need for an overarching governance. For example, Enterprise Architecture must still help to define strategic technologies, positioning, etc. It is also not a “silver bullet”, meaning that it might not be the right fit for every company (depending on the size, organisational structure, culture, etc.)&lt;/p&gt;

&lt;p&gt;BP is looking to build an open community around the framework, therefore, if you are in the process of enabling a new IT Service Management capability, I would recommend connecting via our &lt;a href=&quot;https://www.linkedin.com/groups/13576113&quot;&gt;LinkedIn Group&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;architect-skills--behaviours&quot;&gt;Architect Skills / Behaviours&lt;/h3&gt;

&lt;p&gt;The forum discussed the evolving role, skills, and behaviours of an architect. The following quote was highlighted from “&lt;a href=&quot;https://www.amazon.co.uk/Accelerate-Software-Performing-Technology-Organizations-ebook/dp/B07B9F83WM/ref=sr_1_1?ie=UTF8&amp;amp;qid=1542292540&amp;amp;sr=8-1&amp;amp;keywords=accelerate&quot;&gt;Accelerate&lt;/a&gt;” (Forsgren, Humble, Kim).&lt;/p&gt;

&lt;p&gt;*High performance is possible with all kinds of systems, provided that the systems - and the teams that build and maintain - them are loosely coupled.&lt;/p&gt;

&lt;p&gt;Testability and deployability are important characteristics.&lt;/p&gt;

&lt;p&gt;Architects should focus on engineers and outcomes, not tools and technologies.*&lt;/p&gt;

&lt;p&gt;Everyone agreed that Enterprise Architecture must drive a clear value proposition and act as an enabler (not a barrier or an inconvenience). To achieve this outcome, architects must be an embedded part of the business process, supporting the design and delivery of IT solutions to meet business outcomes.&lt;/p&gt;

&lt;p&gt;I shared the following behaviours, which I have used to help set clear expectations across the architecture community at my company. It is worth noting that not all of these expectations will apply to everyone business.&lt;/p&gt;

&lt;h4 id=&quot;business-outcomes&quot;&gt;Business Outcomes&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;All architecture decisions must enable the business, with a clear purpose and value proposition.&lt;/li&gt;
  &lt;li&gt;Best in class technology, may not be best for our business. Focus on the business requirements, not the technology.&lt;/li&gt;
  &lt;li&gt;Maximise investments, delivering IT solutions at the highest quality, with lowest cost and risk.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;accountable&quot;&gt;Accountable&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Industry analysts and vendors can provide valuable insight, but you own the decision.&lt;/li&gt;
  &lt;li&gt;Include business continuity into planning and decision-making.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;inclusive&quot;&gt;Inclusive&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Ensure all architecture decisions support the broader strategy, with a clear understanding of all dependencies. This must include security, quality, and privacy by design, following a risk-based approach.&lt;/li&gt;
  &lt;li&gt;Consider global and regional requirements, specifically related to security, privacy, and regulatory constraints.&lt;/li&gt;
  &lt;li&gt;Focus on relationships, partnering to translate technology into business outcomes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;community&quot;&gt;Community&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Challenge each other with respect and always assume good intentions.&lt;/li&gt;
  &lt;li&gt;Be an enabler, not a barrier. Directly contribute to enabling positive outcomes through collaboration.&lt;/li&gt;
  &lt;li&gt;Leverage the community, thinking reuse before buy, buy before build.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In many respects, the role of an architect is no longer a dedicated discipline. Instead, like Security, Quality, and Privacy, everyone must be accountable for architecture. With this in mind, the evolving role of an architect is to help enable this mindset.&lt;/p&gt;

&lt;h3 id=&quot;enterprise-architecture-principles&quot;&gt;Enterprise Architecture Principles&lt;/h3&gt;

&lt;p&gt;Unsurprisingly, Enterprise Architecture is a common topic at the forum. Generally speaking, most forum members follow their own methodology, taking the best parts from established frameworks such as &lt;a href=&quot;http://www.opengroup.org/subjectareas/enterprise/togaf&quot;&gt;TOGAF&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;I have previously shared my work regarding &lt;a href=&quot;/2016/01/05/enterprise-it-architecture/&quot;&gt;Enterprise IT Architecture&lt;/a&gt;, including  &lt;a href=&quot;/2016/02/21/EA-Principles/&quot;&gt;Principles&lt;/a&gt;, &lt;a href=&quot;/2016/04/03/EA-Positioning/&quot;&gt;Positioning and Patterns&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This agenda topic focused specifically on principles. I shared the following slide, summarising principles across four domains (Business Process, Information, Application, and Technology).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum13.jpg&quot; alt=&quot;UK EA Forum&quot; title=&quot;UK EA Forum&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although every business is unique, the continued impact of digitisation has resulted in a lot of common themes (e.g. API-Centric, etc.)&lt;/p&gt;

&lt;h3 id=&quot;greenfield-opportunity&quot;&gt;Greenfield Opportunity&lt;/h3&gt;

&lt;p&gt;As a thought experiment, the group discussed the “art of the possible” if an enterprise business could hypothetically rebuild IT from the ground up, creating a modern IT ecosystem. As part of this discussion, I took the opportunity (using the slide below) to share my vision of a modern IT ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum14.jpg&quot; alt=&quot;UK EA Forum&quot; title=&quot;UK EA Forum&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This topic highlights the power of the UK Enterprise Architecture Forum, where I was able to position a topic for discussion, without fear of bias, and leverage the collective expertise and experience of the group.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;If you are interested in the joining the UK Enterprise Architecture Forum, please request access via our &lt;a href=&quot;https://www.linkedin.com/groups/13576113&quot;&gt;LinkedIn Group&lt;/a&gt;. All architects are welcome, covering start-up and enterprise businesses.&lt;/p&gt;
</description>
        <pubDate>Fri, 02 Nov 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/11/02/UK-EA-Forum-Part-Six/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/11/02/UK-EA-Forum-Part-Six/</guid>
      </item>
    
      <item>
        <title>GeForce RTX</title>
        <description>&lt;p&gt;On 20th August, NVIDIA revealed their next generation consumer graphics hardware, known as the &lt;a href=&quot;https://www.nvidia.com/en-us/geforce/20-series/&quot;&gt;GeForce RTX 20 series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The series launched with three consumer graphics cards, the GeForce RTX 2070, GeForce RTX 2080, and the flagship GeForce RTX 2080 Ti. These cards started to hit the market in September, but are likely to remain in short supply throughout 2018.&lt;/p&gt;

&lt;p&gt;The GeForce RTX 20 series introduced the Turing architecture, fabricated by TSMC on their 12nm FFN (FinFET NVIDIA) process. The series will eventually supersede the current Pascal architecture found in the popular GeForce GTX 10 series. Therefore, if you are interested in a GeForce GTX 10 series graphics card (e.g. Geforce GTX 1080), now would be a good time to purchase.&lt;/p&gt;

&lt;p&gt;NVIDIA state that the Turing architecture represents the biggest technical leap in over a decade, enabling major advances in efficiency and performance for PC gaming, professional graphics applications, and deep learning inferencing.&lt;/p&gt;

&lt;p&gt;The Turing architecture has similar clock-speeds to the previous generation but includes an increase in the CUDA core count (average of 15% across the series), as well as a redesigned Streaming Multiprocessor (SM) architecture. These changes should enable greater shading efficiency, resulting in up to a 50% performance improvement per CUDA Core.&lt;/p&gt;

&lt;p&gt;However, the real headline of the Turing architecture is the inclusion of RT and Tensor Cores.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;RT Cores&lt;/strong&gt; are accelerator units that are dedicated to performing ray tracing operations. They can be leveraged by systems and interfaces such as NVIDIA’s RTX ray tracing technology, and APIs such as Microsoft DXR, NVIDIA OptiX, and Vulkan ray tracing.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tensor Cores&lt;/strong&gt; power a suite of new deep learning-based neural services for games and professional graphics, in addition to providing fast AI inferencing for cloud-based systems. An example of this technology is the new Deep Learning Super Sampling (DLSS) capability, which aims to improve gaming image quality, whilst reducing the performance impact when compared against existing techniques.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NVIDIA believes the inclusion of RT and Tensor Cores will enable hybrid rendering, where ray tracing is combined with traditional rasterisation to exploit the strengths of both technologies.&lt;/p&gt;

&lt;p&gt;The rest of this article will provide more detail regarding the potential impact of the RT and Tensor Cores, as well as my initial thoughts of the &lt;a href=&quot;https://www.pny.com/RTX-2080-Ti-Overclocked-XLR8-Edition&quot;&gt;PNY GeForce RTX 2080 Ti 11GB XLR8 Gaming Overclocked Edition&lt;/a&gt; graphics card.&lt;/p&gt;

&lt;p&gt;If you are interested in the technical details of the Turing architecture, I would recommend reviewing the following two sources:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://devblogs.nvidia.com/nvidia-turing-architecture-in-depth/&quot;&gt;NVIDIA Turing Architecture - Blog Post&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nvidia.com/content/dam/en-zz/Solutions/design-visualization/technologies/turing-architecture/NVIDIA-Turing-Architecture-Whitepaper.pdf&quot;&gt;NVIDIA Turing GPU Architecture - Whitepaper&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;rt-cores&quot;&gt;RT Cores&lt;/h3&gt;

&lt;p&gt;Real-time computer graphics have long used a technique known as rasterisation, where objects on the screen are created from a mesh of virtual triangles, or polygons, that create 3D models of objects.&lt;/p&gt;

&lt;p&gt;Over the years, developers have become very efficient at rasterisation, achieving some incredible results as demonstrated in modern Triple-A games such as &lt;a href=&quot;https://www.rockstargames.com/reddeadredemption2/&quot;&gt;Red Dead Redemption 2&lt;/a&gt;, &lt;a href=&quot;https://thewitcher.com/en/witcher3&quot;&gt;The Witcher 3&lt;/a&gt;, &lt;a href=&quot;https://far-cry.ubisoft.com/game/en-us/home/&quot;&gt;Far Cry 5&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;Unfortunately, rasterisation does have limitations. For example, due to the way rasterisation draws a scene, it can not correctly model the behaviour of a mirror or glass. This is because it only draws objects, it does not track the light itself.&lt;/p&gt;

&lt;p&gt;In 1969, Arthur Appel (IBM) wrote the whitepaper “&lt;a href=&quot;https://dl.acm.org/citation.cfm?id=1468082&quot;&gt;Some Techniques for Shading Machine Renderings of Solids&lt;/a&gt;”, which described a technique to use ray tracing to synthesise images in computer graphics.&lt;/p&gt;

&lt;p&gt;Ray tracing is a rendering technique that can produce incredibly realistic lighting effects. In short, an algorithm can trace the path of light and then simulate the way that the light interacts with virtual objects in a computer-generated world.&lt;/p&gt;

&lt;p&gt;This level of accuracy is considered by many as the “holy grail” of computer-generated images, producing results that are nearly indistinguishable from the real world.&lt;/p&gt;

&lt;p&gt;Unfortunately, ray tracing is computationally expensive and (up until now) has been considered unfeasible for consumer hardware. The Turing architecture aims to change this, which (if successful) would have a profound impact on game development.&lt;/p&gt;

&lt;p&gt;The video below is an example of ray tracing being used for reflections, powered by the &lt;a href=&quot;https://www.unrealengine.com/&quot;&gt;Unreal Engine 4&lt;/a&gt;.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/J3ue35ago3Y?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;NVIDIA has a number of additional ray tracing video demonstrations available on their &lt;a href=&quot;https://www.nvidia.com/en-us/geforce/20-series/rtx/&quot;&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;tensor-cores&quot;&gt;Tensor Cores&lt;/h3&gt;

&lt;p&gt;As you might be aware, Tensor Cores are a key technology to a number of NVIDIA initiatives, specifically the &lt;a href=&quot;https://www.nvidia.com/en-us/data-center/volta-gpu-architecture/&quot;&gt;Volta&lt;/a&gt; architecture used for Artificial Intelligence (AI).&lt;/p&gt;

&lt;p&gt;The Turing architecture carries over the Tensor Cores from Volta, helping to speed up ray tracing by reducing the number of rays required in a scene by using AI denoising (a strength area of Tensor Cores).&lt;/p&gt;

&lt;p&gt;Tensor Cores are also used to enable other capabilities, for example, Deep Learning Super Sampling (DLSS).&lt;/p&gt;

&lt;p&gt;DLSS is a proprietary technology that uses deep learning to deliver better image quality at a lower cost than traditional Anti-Aliasing (AA) techniques, such as Temporal Anti-Aliasing (TAA).&lt;/p&gt;

&lt;p&gt;The video below provides a good example of the DLSS vs. TAA.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/0oa5s0RI-dQ?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Arguably TAA still produces a sharper image, however, the performance differences are certainly compelling (up to 33%).&lt;/p&gt;

&lt;h3 id=&quot;pny-geforce-rtx-2080-ti&quot;&gt;PNY GeForce RTX 2080 Ti&lt;/h3&gt;

&lt;p&gt;Similar to the Geforce GTX 10 series launch, NVIDIA has released “founders editions” of the Geforce RTX 20 series. Unlike the Geforce GTX 10 series, each card includes a modest factory overclock. For example, the GeForce RTX 2080 Ti includes a boost clock of 1635MHz (up from the reference 1545MHz).&lt;/p&gt;

&lt;p&gt;I have been testing the &lt;a href=&quot;https://www.pny.com/RTX-2080-Ti-Overclocked-XLR8-Edition&quot;&gt;PNY GeForce RTX 2080 Ti 11GB XLR8 Gaming Overclocked Edition&lt;/a&gt; graphics card, which includes the same factory overclock as the founders edition. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;PNY Part Number:&lt;/strong&gt; VCG2080T11TFMPB-O&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Card Dimensions:&lt;/strong&gt; 1.50” × 11.88” × 4.50”&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;CUDA Cores:&lt;/strong&gt; 4352&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Clock Speed:&lt;/strong&gt; 1350MHz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Boost Speed:&lt;/strong&gt; 1635MHz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Memory Speed:&lt;/strong&gt; 14Gbps&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Memory Size:&lt;/strong&gt; 11GB GDDR6&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Memory Interface:&lt;/strong&gt; 352-bit&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Memory Bandwidth:&lt;/strong&gt; 616GB/sec&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;I/O:&lt;/strong&gt; 3x DisplayPort 1.4, 1x HDMI 2.0b, 1x USB Type-C&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Power Input:&lt;/strong&gt; 2x 8-Pin&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;TDP:&lt;/strong&gt; 260W (Minimum 650W PSU)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The PNY card includes dual-slot cooling and is configured with two heatsinks and three fans. The cooling is 30cm in length, which is fairly large, extending 3cm past the PCB.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx01.jpg&quot; alt=&quot;PNY GeForce RTX 2080 Ti&quot; title=&quot;PNY GeForce RTX 2080 Ti&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Common across all GeForce RTX cards, the PNY card includes an aluminium backplate. The card itself has a very subtle design, with no flashy extras such as RGB lighting (which I prefer).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx02.jpg&quot; alt=&quot;PNY GeForce RTX 2080 Ti&quot; title=&quot;PNY GeForce RTX 2080 Ti&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The PNY card includes two 8-Pin power inputs, supporting the standard 260W TDP. However, expect the TDP to be higher when overclocking.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx03.jpg&quot; alt=&quot;PNY GeForce RTX 2080 Ti&quot; title=&quot;PNY GeForce RTX 2080 Ti&quot; /&gt;&lt;/p&gt;

&lt;p&gt;PNY decided to match the NVIDIA reference design for I/O, specifically 3x DisplayPort 1.4, 1x HDMI 2.0b, 1x USB Type-C. The USB Type-C can be used to simplify the use of VR Headsets.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx04.jpg&quot; alt=&quot;PNY GeForce RTX 2080 Ti&quot; title=&quot;PNY GeForce RTX 2080 Ti&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, the PNY card is very well built but lacks any unique selling point. PNY have chosen not to stray far from the NVIDIA reference design, even matching the modest overlock of the founders edition.&lt;/p&gt;

&lt;p&gt;The two heatsink, three fan cooling design is definitely a benefit, which should result in greater overclocking potential. However, I suspect the results will be in line with other third-party cards that have chosen the same cooling configuration.&lt;/p&gt;

&lt;p&gt;The RRP of the PNY card is £1299.99. At this price, I am not sure PNY have done enough to make their GeForce RTX 2080 Ti standout from the crowd. However, &lt;a href=&quot;https://www.ebuyer.com/857843-pny-geforce-rtx-2080-ti-xlr8-graphics-card-at-ebuyer-vcg2080t11tfmpb-o&quot;&gt;I have seen it on sale for £1199.99&lt;/a&gt;, which is more competitive when compared against other equivalent third-party cards.&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;I do not have a comprehensive test environment for graphics cards, therefore I would recommend referring to reviews from &lt;a href=&quot;https://www.pcper.com/reviews/Graphics-Cards/NVIDIA-GeForce-RTX-2080-and-RTX-2080-Ti-Review&quot;&gt;PC Perspective&lt;/a&gt; and &lt;a href=&quot;https://www.anandtech.com/show/13346/the-nvidia-geforce-rtx-2080-ti-and-2080-founders-edition-review&quot;&gt;Anandtech&lt;/a&gt; for a detailed analysis of the GeForce RTX 20 series.&lt;/p&gt;

&lt;p&gt;With that said, I can confirm the GeForce RTX 2080 Ti is a beast! At 1440p and even 4K, it breezes through my modern game collection, generally above 100FPS at maximum image quality.&lt;/p&gt;

&lt;p&gt;When added to my &lt;a href=&quot;/2018/02/16/my-setup-2018/&quot;&gt;custom-built PC&lt;/a&gt;, the GeForce RTX 2080 Ti achieved a &lt;a href=&quot;https://www.3dmark.com&quot;&gt;3DMark&lt;/a&gt; score of 12137 (image below).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx05.jpg&quot; alt=&quot;GeForce RTX - 3DMark Score&quot; title=&quot;GeForce RTX - 3DMark Score&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is a healthy 71% performance improvement over the Gigabyte GeForce GTX 1080 it replaced. For reference, the GeForce GTX 1080 scored 7088.&lt;/p&gt;

&lt;p&gt;Alongside the GeForce RTX 20 series release, NVIDIA also introduced the NVIDIA OC Scanner, which enables automatic overclocking and stress testing.&lt;/p&gt;

&lt;p&gt;The NVIDIA OC Scanner takes approximately 20 minutes to complete and produces a result that NVIDIA state will be stable for daily usage. This is a welcome inclusion, allowing for “one-click” overclocking that will likely meet the needs of all but the most hardcore overclockers.&lt;/p&gt;

&lt;p&gt;To access the NVIDIA OC Scanner, you will need a compatible overclocking utility. At the time of writing, only &lt;a href=&quot;https://www.msi.com/page/afterburner&quot;&gt;MSI Afterburner&lt;/a&gt; had been updated to include the new feature. Thankfully, overclocking utilities are not vendor specific, therefore I expect a lot of options to become available over the coming months.&lt;/p&gt;

&lt;p&gt;Outlined below are the results of the NVIDIA OC Scanner, producing a new power curve and a new maximum reported boost clock of 2070MHz (up from the factory 1635MHz).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/geforcertx06.jpg&quot; alt=&quot;NVIDIA OC Scanner&quot; title=&quot;NVIDIA OC Scanner&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, it was not possible to test ray tracing or DLSS outside of controlled or synthetic benchmarks. As a result, I can not comment on the touted quality or performance benefits. In theory, some games (e.g. &lt;a href=&quot;https://www.origin.com/usa/en-us/store/battlefield/battlefield-v&quot;&gt;Battlefield V&lt;/a&gt;, &lt;a href=&quot;https://tombraider.square-enix-games.com/en-gb&quot;&gt;Shadow of the Tomb Raider&lt;/a&gt;) will start gaining support for these features later in 2018 via software patches.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;The GeForce RTX 20 series is an interesting release from NVIDIA. I commend them for continuing to push the boundaries of technology, especially considering the lack of competition from AMD. For example, it would have been very easy for NVIDIA to become complacent, essentially re-badging the GeForce GTX 10 series, knowing that their market position would remain secure.&lt;/p&gt;

&lt;p&gt;The impact of hybrid rendering (ray tracing and rasterisation) is significant, however, developers will need to embrace and mature the techniques before we start to see tangible results. This is a concern, as the GeForce RTX 20 series will likely be reserved for a small percentage of the gaming population, recognising the high cost of entry and the relatively small market share of PC gaming, when compared against console gaming (e.g. PlayStation, Xbox, etc.)&lt;/p&gt;

&lt;p&gt;As a result, the incentive for developers to prioritise techniques such as ray tracing feels like a stretch in 2018 and maybe 2019. Instead, they will likely focus on techniques that target the mass market and remain compatible with the current generation of consoles (e.g. PlayStation 4 Pro, etc.) This was evident from the launch of the GeForce RTX 20 series, as there was no game support for ray tracing or DLSS.&lt;/p&gt;

&lt;p&gt;In conclusion, I believe the GeForce RTX 20 series has the potential to be a “game-changer” (literally). However, the high price and lack of software support will likely frustrate most consumers, especially considering the tangible benefits are likely multiple years away from maturity.&lt;/p&gt;

&lt;p&gt;With this in mind, the GeForce GTX 10 series starts to look like a better deal (today), especially now that the cryptocurrency bubble has burst, resulting in more competitive pricing. The question is how long the stock will last, therefore, if you are in the market for a new graphics card, I would recommend moving quickly on a GeForce GTX 1070, 1080 or 1080 Ti.&lt;/p&gt;
</description>
        <pubDate>Fri, 26 Oct 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/10/26/GeForce-RTX/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/10/26/GeForce-RTX/</guid>
      </item>
    
      <item>
        <title>Autonomous Vehicles</title>
        <description>&lt;p&gt;I recently completed a short residency at &lt;a href=&quot;https://www.stanford.edu/&quot;&gt;Stanford University&lt;/a&gt; as part of my executive education (see articles below).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/10/02/stanford-university/&quot;&gt;Stanford University&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/08/06/Stanford-GSB/&quot;&gt;Stanford GSB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/08/08/The-Innovative-Leader/&quot;&gt;The Innovative Leader&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As part of the residency, I took the opportunity to visit the &lt;a href=&quot;https://cars.stanford.edu/about/volkswagen-automotive-innovation-lab&quot;&gt;Volkswagen Automotive Innovation Laboratory (VAIL)&lt;/a&gt;, which is a research facility for students and researchers who are focused on developing vehicles of the future. Active projects include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Research on drive-by-wire and driver assistance systems.&lt;/li&gt;
  &lt;li&gt;Research vehicles from the Stanford Artificial Intelligence Lab that use deep learning and computer vision to automate the driving process.&lt;/li&gt;
  &lt;li&gt;Research on the interaction of drivers with vehicles in the driving simulator.&lt;/li&gt;
  &lt;li&gt;Stanford Solar Car Project that designs, builds and races the latest vehicle competing in the World Solar Challenge.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although the photo below looks like a standard Audi TTS, it is actually a fully autonomous vehicle, known as Shelley. The team shared how they have developed a neural network that allows Shelley to learn specific routes and adapt to different terrain (e.g. low friction, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/autonomouscar01.jpg&quot; alt=&quot;Autonomous Car&quot; title=&quot;Autonomous Vehicles&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As highlighted in the video below, the team tested Shelley at &lt;a href=&quot;https://www.thunderhill.com/&quot;&gt;Thunderhill Raceway&lt;/a&gt; in the Sacramento Valley, where it successfully navigated the race track autonomously at speeds of 120mph.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/joIsgP9StAY?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;To achieve this outcome, the Stanford team trained their neural network with data from 200,000 motion samples, controlled by high-performance graphics processors stored in the boot of the vehicle.&lt;/p&gt;

&lt;p&gt;Recognising that 94% of crashes are caused by human error, autonomous cars have tremendous opportunity to improve safety, however, they must first be able to operate in unpredictable situations. The photo below highlights a student-built test bed, which is used to explore the limits of handling and grip in extreme scenarios.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/autonomouscar02.jpg&quot; alt=&quot;Autonomous Car&quot; title=&quot;Autonomous Vehicles&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The video below provides an overview of the test bed in use, navigating a track that is complicated by unexpected obstacles.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/NNIFNmpB6Oo?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Finally, I took a quick photo of the VAIL driving simulator, which is similar to what is used by Formula One teams, but in this scenario focused on driver/vehicle interactions. I took it for a spin around a simulated city, which felt surprisingly accurate, considering the vehicle itself was stationary.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/autonomouscar03.jpg&quot; alt=&quot;Autonomous Car&quot; title=&quot;Autonomous Vehicles&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In conclusion, I remain incredibly excited about the future of autonomous vehicles and am eager to see who will be the first to go beyond the “driver assisted” capabilities (e.g. &lt;a href=&quot;https://www.tesla.com/en_GB/autopilot&quot;&gt;Tesla Autopilot&lt;/a&gt;) found in vehicles today.&lt;/p&gt;
</description>
        <pubDate>Mon, 24 Sep 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/09/24/Autonomous-Vehicles/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/09/24/Autonomous-Vehicles/</guid>
      </item>
    
      <item>
        <title>CTO</title>
        <description>&lt;p&gt;In September 2018, &lt;a href=&quot;https://www.linkedin.com/in/mswbull/&quot;&gt;I transitioned from my role as an Enterprise IT Architect to Chief Technology Officer (CTO)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As part of this major life event, I wanted to share my rationale and perspective on the new role.&lt;/p&gt;

&lt;h3 id=&quot;why-cto&quot;&gt;Why CTO?&lt;/h3&gt;

&lt;p&gt;I have always been passionate about technology, both software, and hardware.&lt;/p&gt;

&lt;p&gt;As a child, I would spend my time learning about every technology I could get my hands on and would dream about working for a company like &lt;a href=&quot;https://www.sony.com&quot;&gt;Sony&lt;/a&gt;, helping to create the next great consumer product.&lt;/p&gt;

&lt;p&gt;This ambition remained consistent until I reached high school, where I studied Business. This subject opened my eyes to other industries, where technology is not necessarily created, but applied to achieve specific outcomes. For example, taking the latest technology buzzword (e.g. Blockchain) and making it do something useful.&lt;/p&gt;

&lt;p&gt;I quickly discovered that the “applied use of technology” was more exciting to me than the creation process, as it enabled me to explore many different technologies, whilst still in the pursuit of a specific outcome.&lt;/p&gt;

&lt;p&gt;Alongside my passion for technology, I have always been goal orientated and highly competitive. I am attracted to complex, large-scale, high-pressure opportunities, even when I know it will likely lead to stress and anxiety. In short, being told something is impossible, only motivates me to work harder.&lt;/p&gt;

&lt;p&gt;When I started my career (eleven years ago), I asked myself what role would best enable me to embrace my passion, providing me with the highest level of influence and accountability over key decisions.&lt;/p&gt;

&lt;p&gt;It was at this point I first set my sights on the role of Chief Technology Officer (CTO).&lt;/p&gt;

&lt;h3 id=&quot;what-is-a-cto&quot;&gt;What is a CTO?&lt;/h3&gt;

&lt;p&gt;The roles and responsibilities of a CTO are not consistently defined, covering everything from technology operations management to technology innovation (and sometimes both).&lt;/p&gt;

&lt;p&gt;At the recent &lt;a href=&quot;https://www.gartner.com/events/emea/enterprise-architecture&quot;&gt;Gartner EA Summit&lt;/a&gt;, it was stated that 51% of today’s Fortune 500 CTOs are operationally focused, with the remaining 49% prioritising innovation. On average it takes twenty-four years for an IT Professional to become a CTO, covering eight different positions.&lt;/p&gt;

&lt;p&gt;In my opinion, it is important to split operational and strategic roles, recognising that the required skill set and behaviours are very different. For example, I have observed phenomenal operational leaders, who have struggled to define and embed a coherent strategy (often impacting the long-term growth of the business).&lt;/p&gt;

&lt;p&gt;Alongside the different behaviours, operational and strategic roles include intense, continuous responsibilities. If combined, the strategy is often neglected, as business-impacting operational issues must always take priority.&lt;/p&gt;

&lt;p&gt;As a result, I believe the role of CTO is strategic, sitting at the intersection of business and technology. It requires a detailed understanding of the customer, technical breadth, and depth, as well as a proven record of enterprise delivery.&lt;/p&gt;

&lt;p&gt;With this in mind, key responsibilities include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Vision&lt;/li&gt;
  &lt;li&gt;Strategy&lt;/li&gt;
  &lt;li&gt;Enterprise Architecture&lt;/li&gt;
  &lt;li&gt;Innovation&lt;/li&gt;
  &lt;li&gt;Technology Investments&lt;/li&gt;
  &lt;li&gt;External Engagement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The role must cover the entire business value cycle (not limited to global services or infrastructure), partnering closely with the business function leaders.&lt;/p&gt;

&lt;p&gt;Regardless of the industry, technology is now a core part of every business. This is evident from the “&lt;a href=&quot;https://www.wsj.com/articles/SB10001424053111903480904576512250915629460&quot;&gt;software is eating the world&lt;/a&gt;” revolution, where technology has been used as a catalyst to disrupt industries (e.g. Amazon, Uber, Airbnb, etc.)&lt;/p&gt;

&lt;p&gt;As a result, I believe the role of CTO as a strategic leader is more critical now than ever before.&lt;/p&gt;
</description>
        <pubDate>Sun, 23 Sep 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/09/23/CTO/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/09/23/CTO/</guid>
      </item>
    
      <item>
        <title>The Innovative Leader</title>
        <description>&lt;p&gt;This article builds upon the following two articles, summarising my experience at Stanford University.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/10/02/stanford-university/&quot;&gt;Stanford University&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/08/06/Stanford-GSB/&quot;&gt;Stanford GSB&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my &lt;a href=&quot;/2018/08/06/Stanford-GSB/&quot;&gt;previous article&lt;/a&gt;, I shared an overview of the Curriculum, Facilities, Professors, Participants, and Graduates. This article will focus on my key learnings.&lt;/p&gt;

&lt;p&gt;NOTE: It would be very difficult to summarise the entire program, as a result, I have attempted to target specific areas that I believe offer tangible, real-world value.&lt;/p&gt;

&lt;h3 id=&quot;data-vs-intelligence&quot;&gt;Data vs. Intelligence&lt;/h3&gt;

&lt;p&gt;I often hear vendors and analysts state “data is the new currency”. However, data is only valuable when it enables insights and intelligence. By comparison, data is oil and insights are the petrol (gasoline).&lt;/p&gt;

&lt;p&gt;As part of the session “Operational Excellence Through Flow Coordination”, &lt;a href=&quot;https://www.gsb.stanford.edu/faculty-research/faculty/hau-l-lee&quot;&gt;Hau Lee&lt;/a&gt; discussed three flows that are key to operational excellence, specifically:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford08.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Re-engineering or redesigning these flows can lead to drastic improvements in operational excellence.&lt;/p&gt;

&lt;p&gt;Hau Lee shared a number of interesting case studies, where companies have successfully leveraged or manipulated flows.&lt;/p&gt;

&lt;p&gt;For example, &lt;a href=&quot;http://www.sej.co.jp/&quot;&gt;7-Eleven Japan&lt;/a&gt; is the number one seller of stockings in Japan.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford09.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Based on this information, the commercial team recommended that 7-Eleven expand their range into cosmetics, placing them next to the stockings. Without any additional information, this recommendation feels appropriate, as it is easy to assume that the primary customer of stockings would be female and therefore interested in cosmetics.&lt;/p&gt;

&lt;p&gt;However, the CEO of 7-Eleven asked for additional information to be collected from the consumer, prior to any business decision. Specifically, he asked to understand the gender, approximate age and time of purchase. This additional information exposed that the primary customer of stockings was actually middle-aged men, purchasing at two specific times in the evening. The times were important, as it highlighted that these purchases were happening during peak commuting hours.&lt;/p&gt;

&lt;p&gt;In summary, stockings in Japan are predominantly purchased by middle-aged men on behalf of their wives, during their commute home from work. Therefore, expanding into cosmetics would likely be a bad business decision.&lt;/p&gt;

&lt;p&gt;I like this example, as it highlights how information reviewed in isolation, without context, is useless. Only when additional information is collected, can an intelligent business decision be achieved.&lt;/p&gt;

&lt;h3 id=&quot;premortem&quot;&gt;Premortem&lt;/h3&gt;

&lt;p&gt;One of the most powerful concepts I took away from the program was something called a premortem.&lt;/p&gt;

&lt;p&gt;A premortem is a thought experiment for teams, which can be accomplished in a single meeting. At the point in which a key decision is about to be made, a premortem forces the team to look ahead one year and assume the deliverable has catastrophically failed. The team must then uncover what contributed to the failure.&lt;/p&gt;

&lt;p&gt;The concept of a premortem was invented by &lt;a href=&quot;https://en.wikipedia.org/wiki/Gary_A._Klein&quot;&gt;Gary Klein&lt;/a&gt; and (as outlined in the video below) is backed by Economics Nobel Laureate &lt;a href=&quot;https://en.wikipedia.org/wiki/Daniel_Kahneman&quot;&gt;Daniel Kahneman&lt;/a&gt;.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/MzTNMalfyhM?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The process to complete a premortem can be summarised into five points.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;When:&lt;/strong&gt; A premortem must be completed just prior to a final decision being made. The decision could relate to a product, project, company, service, etc. The timing for the premortem is very important, as to early could result in incomplete information and demotivation, while too late may impact the ability to mitigate concerns.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Who:&lt;/strong&gt; A premortem must be holistic, including representation from multiple teams and different levels across the organisation, helping to ensure a comprehensive analysis is completed. It also critical that all core team members are included in the exercise.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; A premortem must start by assuming that one year has passed since the deliverable and it has resulted in failure. Although the process sounds very negative, it is actually very cathartic, allowing the team to express their concerns, rather than simply ignoring them or relying on hope.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;How:&lt;/strong&gt; To ensure the analysis is balanced, every member of the group must start by independently capturing the reasons that contributed to the failure (similar to brainstorming). Once complete, the group can discuss and look to consolidate and refine the output, including key factors such as the likelihood and significance of the impact.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Next Steps:&lt;/strong&gt; Once the group has a consolidated list of concerns, the discussion must switch to mitigation. Leveraging the &lt;a href=&quot;https://en.wikipedia.org/wiki/Pareto_principle&quot;&gt;Pareto principle&lt;/a&gt; (for many events, roughly 80% of the effects come from 20% of the causes), can help streamline the process.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In conclusion, a premortem is powerful as it tackles the risk of failure proactively and at multiple levels. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;It increases the likelihood of success by proactively identifying and mitigating concerns.&lt;/li&gt;
  &lt;li&gt;The process is cathartic, allowing everyone to vocalise their fears.&lt;/li&gt;
  &lt;li&gt;Promotes holistic transparency and alignment, covering multiple stakeholders and levels.&lt;/li&gt;
  &lt;li&gt;Improves teamwork by overcoming adversity, essentially giving the team an early (hypothetical) win.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Over the week, the professors shared a number of interesting premortem success stories.&lt;/p&gt;

&lt;p&gt;For example, an airline completed a premortem on the company itself, looking twenty years ahead. The results highlighted that business travel (their primary revenue stream) would see a significant decline over the twenty-year timeframe. As a result, the Airline made the strategic decision to evolve their vision, focusing on “high fidelity meetings”, not specifically air travel.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford10.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although subtle, this change is important, as it signifies to all stakeholders that the company will start to explore and invest in technologies outside of air travel, to support their long-term vision of delivering high fidelity meetings.&lt;/p&gt;

&lt;h3 id=&quot;design-thinking&quot;&gt;Design Thinking&lt;/h3&gt;

&lt;p&gt;As part of the program, we completed a &lt;a href=&quot;https://dschool.stanford.edu/programs/executive-education&quot;&gt;bootcamp&lt;/a&gt; at the Hasso-Plattner Institute of Design (known as the &lt;a href=&quot;https://dschool.stanford.edu&quot;&gt;d.school&lt;/a&gt;), which aims to build on methods from across the field of design to create learning experiences that help people unlock their creative potential.&lt;/p&gt;

&lt;p&gt;The d.school is the leading university for teaching Design Thinking, which encourages organisations to focus on the people they are creating for and leads to human-centered products, services, and internal processes. A key resource is the &lt;a href=&quot;https://dschool.stanford.edu/resources/design-thinking-bootleg&quot;&gt;Design Thinking Bootleg&lt;/a&gt;, which is a curated set of tools and methods to support Design Thinking.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford11.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As outlined in the image above, Design Thinking can be summarised into five stages.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Empathise:&lt;/strong&gt; Gain an empathic understanding of the problem you are trying to solve by immersing yourself in the environment.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Define:&lt;/strong&gt; Analyse your observations and synthesise them in order to define the core problems that you have identified. You should seek to define the problem as a problem statement in a human-centred manner.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Ideate:&lt;/strong&gt; Start to “think outside the box” to identify new solutions to the problem statement you have created. Proactively look for alternative ways of viewing the problem.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Prototype:&lt;/strong&gt; Produce a number of inexpensive, scaled down versions of the product or specific features. Investigate the problem solutions generated in the previous stage.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Test:&lt;/strong&gt; Rigorously test the complete product using the best solutions identified during the prototyping phase.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It is important to note that the five stages are not always sequential, they do not have to follow any specific order and they can often occur in parallel and be repeated iteratively.&lt;/p&gt;

&lt;p&gt;During the bootcamp, we practiced the techniques outlined in Design Thinking, following a prescribed scope focused on a wallet. The image below is an example of my work during the “Prototype” phase.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford12.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, to demonstrate the potential impact of Design Thinking, the video below highlights how GE Healthcare embraced empathy to better understand how children experience an MRI scan.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/jajduxPD6H4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;In short, the negative, scary process of receiving an MRI scan (that often required sedation), was transformed into a positive, magical experience that promotes childlike wonder.&lt;/p&gt;

&lt;h3 id=&quot;emotional-brain&quot;&gt;Emotional Brain&lt;/h3&gt;

&lt;p&gt;In the session “Decision Making: A Neuroscience Perspective” led by &lt;a href=&quot;https://www.gsb.stanford.edu/faculty-research/faculty/baba-shiv&quot;&gt;Baba Shiv&lt;/a&gt;, the group discussed how the rational brain is a slave to the emotional brain.&lt;/p&gt;

&lt;p&gt;This is important to understand because when decisions are in inherently driven by emotion, if the emotion starts positive, the brain will rationalise the outcome regardless of the data points. With this in mind, it is possible to either manipulate outcomes or protect against emotional bias.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford13.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As outlined in the image above, the “X Framework” describes two types:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Type 1:&lt;/strong&gt; Serotonin (Comforted) / Cortisol (Stressed)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Type 2:&lt;/strong&gt; Low Dopamine (Bored) / High Dopamine (Excited)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Type 1 individuals are often the late adopters, very happy with the status quo, legacy systems, processes. Type 2 individuals are the early adopters, open to greater risk. It is also possible to be a hybrid, which includes individuals who are inherently excited about taking chances but need a nudge of reassurance.&lt;/p&gt;

&lt;p&gt;It is important to note that context, not personality, determines the mindset (e.g. Type). For example, only when an individual has a stable level of comfort (Type 1), can they reach excitement (Type 2).&lt;/p&gt;

&lt;p&gt;Apple understands the importance of the emotional brain. For example, at Apple Keynotes, they lead with “comfortable” information and customer stories, highlighting the success and stability of the company. This triggers comfort amongst the audience, which can then lead to excitement as they make new announcements. To ensure they also capture the “hybrid” individuals, they often close with reassurance, for example, a testimonial from a well respected individual such as &lt;a href=&quot;https://en.wikipedia.org/wiki/Walt_Mossberg&quot;&gt;Walt Mossberg&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In contrast, if Apple were to lead with the price of their products, they would likely trigger anxiety, resulting in a negative outcome.&lt;/p&gt;

&lt;p&gt;Understanding the neuroscience behind decisions can enable better outcomes, recognising that at the individual or company-level, comfort is an important starting point.&lt;/p&gt;

&lt;h3 id=&quot;common-knowledge-effect&quot;&gt;Common Knowledge Effect&lt;/h3&gt;

&lt;p&gt;It is widely believed that bringing diverse people together will result in diverse (better) outcomes. In reality, laboratory studies have shown that information known to everyone prior to a discussion has a more powerful influence on decisions (compared to information that is not shared by everyone). This is known as the common knowledge effect and builds upon the human desire to “fit in”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford14.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As highlighted in the image above, the diverse and/or individual thoughts are often lost or not openly represented.&lt;/p&gt;

&lt;p&gt;To help combat the common knowledge effect, the following techniques should be considered.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Suspend initial judgment, do not complete open straw polls, etc.&lt;/li&gt;
  &lt;li&gt;Have everyone individually fill out a balance sheet (known facts and issues) prior to the meeting.&lt;/li&gt;
  &lt;li&gt;Focus on the problem to be solved, not a judgment.&lt;/li&gt;
  &lt;li&gt;Include a challenge team, someone who can play devil’s advocate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Techniques that have been proven not to help include larger teams and/or more time.&lt;/p&gt;

&lt;p&gt;The common knowledge effect is one of the reasons why Jeff Bezos (Amazon CEO) requires employees to individually create a story that can be reviewed prior to a meeting (replacing traditional slides).&lt;/p&gt;

&lt;p&gt;Personally, I can recall multiple occasions where the common knowledge effect has likely impacted the outcome of a decision. This is certainly something I will be monitoring in the future and looking to combat with the techniques outlined above.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, The Innovative Leader program at Stanford University was incredibly thought-provoking. The quality of the content, professors, facilities and peer group was world class and I relished the opportunity to learn and collaborate in this environment.&lt;/p&gt;

&lt;p&gt;My goal now is to take this learning and put it into practice, starting with the areas I have outlined in this article.&lt;/p&gt;
</description>
        <pubDate>Wed, 08 Aug 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/08/08/The-Innovative-Leader/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/08/08/The-Innovative-Leader/</guid>
      </item>
    
      <item>
        <title>MacBook Pro (2018)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update - At the 30-OCT media event, Apple quietly announced an updated MacBook Pro with AMD Radeon Pro Vega graphics. This is a positive update (mitigating the concern I highlighted in this article), however, it was a little disappointing to see this update just three-months after the initial release of the 2018 model.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This article is a summary of my initial impressions using the 2018 15-inch MacBook Pro. The article is not intended to be a review, for that please refer to &lt;a href=&quot;https://www.theverge.com/2018/7/25/17611266/apple-macbook-pro-review-2018-core-i9-15-inch&quot;&gt;The Verge&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As &lt;a href=&quot;/2018/02/16/My-Setup-2018/&quot;&gt;previously highlighted&lt;/a&gt;, this device is my daily driver, supporting a diverse workload.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Productivity (&lt;a href=&quot;https://www.office.com&quot;&gt;O365&lt;/a&gt;, &lt;a href=&quot;https://atom.io&quot;&gt;Atom&lt;/a&gt;, &lt;a href=&quot;https://www.sketchapp.com&quot;&gt;Sketch&lt;/a&gt;, &lt;a href=&quot;https://www.omnigroup.com/omnigraffle&quot;&gt;OmniGraffle&lt;/a&gt;, &lt;a href=&quot;https://www.archimatetool.com&quot;&gt;ArchiMate&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Web Development (&lt;a href=&quot;https://nodejs.org&quot;&gt;Node.js&lt;/a&gt;, &lt;a href=&quot;https://www.docker.com&quot;&gt;Docker&lt;/a&gt;, &lt;a href=&quot;https://kubernetes.io&quot;&gt;Kubernetes&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Mobile Development (&lt;a href=&quot;https://developers.google.com/web/progressive-web-apps/&quot;&gt;PWA&lt;/a&gt; and &lt;a href=&quot;https://developer.apple.com/xcode/&quot;&gt;Xcode&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Game Development (&lt;a href=&quot;http://www.yoyogames.com&quot;&gt;GameMaker Studio 2&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Administration and Testing (&lt;a href=&quot;https://www.vmware.com/uk/products/fusion.html&quot;&gt;VMware Fusion&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Photo Editing (&lt;a href=&quot;https://www.pixelmator.com&quot;&gt;Pixelmator&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Video Editing (&lt;a href=&quot;https://www.apple.com/final-cut-pro/&quot;&gt;Final Cut Pro&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Video Effects (&lt;a href=&quot;https://www.adobe.com/uk/products/aftereffects.html&quot;&gt;After Effects&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Recognising the demands of software development (Docker, Kubernetes), as well as the need to run multiple virtual machines, I always target a high-performance processor, dedicated graphics and the maximum amount of supported memory. The full specification of my device can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;15-inch MacBook Pro with Retina Display (2018)&lt;/li&gt;
  &lt;li&gt;2.9GHz 6-Core Intel i9 (Turbo up to 4.8GHz)&lt;/li&gt;
  &lt;li&gt;32GB 2400MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;1TB PCIe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630 and AMD Radeon Pro 560X 4GB GDDR5&lt;/li&gt;
  &lt;li&gt;15.4-inch IPS Display (2880x1800, 220PPI)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have split this article into four parts: hardware, performance, thermals and a conclusion.&lt;/p&gt;

&lt;h3 id=&quot;hardware&quot;&gt;Hardware&lt;/h3&gt;

&lt;p&gt;On the surface, the 2018 15-inch MacBook Pro is largely unchanged from previous generations (2016/2017), with four Thunderbolt 3 ports and a 3.5mm headphone jack.&lt;/p&gt;

&lt;p&gt;The controversial butterfly mechanism keyboard has been upgraded to version three, which includes a new membrane (image below) to help prevent debris from impacting the long-term usability.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/macbookpro201801.jpg&quot; alt=&quot;MacBook Pro&quot; title=&quot;MacBook Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have personally experienced multiple issues with previous versions of the butterfly mechanism, including unresponsive keys and double typing. As a result, I am hopeful that the new membrane will improve the reliability.&lt;/p&gt;

&lt;p&gt;Regarding the actual typing experience, I would state that it feels very similar to previous versions, with a slight reduction in the noise. Although many people dislike the butterfly mechanism due to the short key travel, I have never found it to be an issue.&lt;/p&gt;

&lt;p&gt;Alongside the keyboard, Apple also updated the Thunderbolt 3 controller, which now uses the new &lt;a href=&quot;https://ark.intel.com/products/97400/Intel-JHL7540-Thunderbolt-3-Controller&quot;&gt;Intel JHL7540&lt;/a&gt; chip, known as Titan Ridge.&lt;/p&gt;

&lt;p&gt;This brings support for High-Bit-Rate 3 (HBR3), which is the signal standard for both DisplayPort 1.3 and DisplayPort 1.4. Therefore, the Radeon Pro 560X can drive up to two 5K displays at 60Hz (single stream) and theoretically supports an 8K display over a single cable.&lt;/p&gt;

&lt;p&gt;Finally, Apple added the T2 chip, which was first introduced with the &lt;a href=&quot;https://www.apple.com/imac-pro/&quot;&gt;iMac Pro&lt;/a&gt;. The T2 chip consolidates a number of system components, specifically the System Management Controller (SMC), Touch ID, Image Signal Processor, Ambient Light Sensor, Audio Controller and the Mass Storage Controller.&lt;/p&gt;

&lt;p&gt;The inclusion of T2 chip brings performance and security benefits, specifically a secure enclave that provides the foundation for encrypted storage (AES) and secure boot capabilities. It also adds native support for “Hey, Siri”, similar to what is found on the iPhone.&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;Unsurprisingly, performance is excellent. The upgrade from a 4-Core to 6-Core processor provides a healthy jump in performance for any software that can utilise multi-threading. This is validated by the impressive &lt;a href=&quot;https://www.geekbench.com&quot;&gt;Geekbench&lt;/a&gt; scores.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/macbookpro201802.jpg&quot; alt=&quot;MacBook Pro&quot; title=&quot;MacBook Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Regarding memory, Apple has finally upgraded to DDR4, enabling a custom configuration up to 32GB. Knowing that DDR4 is more power hungry, Apple has also increased the battery capacity to ensure they still achieve a ten-hour estimate. In daily usage, I rarely utilise more than 16GB, however, I am pleased to see a 32GB option, as I occasionally work with multiple virtual machines for lab testing, etc. As an early observation, I have not seen a significant impact on the battery life, therefore I believe Apple has successfully offset the impact of the higher performance components.&lt;/p&gt;

&lt;p&gt;Finally, it is worth highlighting the storage performance, which continues to be market leading. This is often an overlooked area, with devices like the &lt;a href=&quot;/2018/05/03/Surface-Book-2/&quot;&gt;Microsoft Surface Book 2&lt;/a&gt; delivering dismal performance (600MB/s write). As a general rule, the overall performance of a computer is only as good as its slowest component (CPU, Memory, Storage, etc.)&lt;/p&gt;

&lt;p&gt;As highlighted by the &lt;a href=&quot;https://www.blackmagicdesign.com/&quot;&gt;Blackmagic Disk Speed Test&lt;/a&gt;, the MacBook Pro storage performance is incredible, hitting 2700MB/s read and write (an increase of 500MB/s over the previous generation). I suspect this improvement is achieved through the T2 chip, which includes a new integrated Mass Storage Controller.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/macbookpro201803.jpg&quot; alt=&quot;MacBook Pro&quot; title=&quot;MacBook Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, the 2018 15-inch MacBook Pro provides a healthy performance increase over previous generations. The one area that is a little disappointing is the dedicated graphics, which has not seen a significant upgrade since 2016. They have managed to deliver a minor performance increase through an improved 14nm FinFET process, however, the underlying architecture (Polaris) remains unchanged.&lt;/p&gt;

&lt;h3 id=&quot;thermals&quot;&gt;Thermals&lt;/h3&gt;

&lt;p&gt;Upon release, there was some controversy regarding the thermal performance of the Intel i9 processor. In short, it was unable to sustain base clock speeds (2.9GHz) under certain workloads. This issue was originally discovered by the &lt;a href=&quot;https://www.youtube.com/channel/UCVYamHliCI9rw1tHR1xbkfw&quot;&gt;Dave Lee (DAVE2D)&lt;/a&gt;, who posted the following video:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Dx8J125s4cg?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Thankfully, Apple responded quickly and pushed a software patch to resolve the issue. Dave Lee posted a follow-up video (below), highlighting the improvements.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/UTguywiC9aw?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Thankfully, I received my MacBook Pro post-patch, therefore I did not personally experience the issue. However, it is worth recognising that Apple has always prioritised “thin and light” over raw performance. Therefore, high-performance components such as the Intel i9 processor will likely never operate to their maximum potential. Many people find this frustrating and even describe it as a design flaw. In my opinion, this is not a design flaw, it is a design decision.&lt;/p&gt;

&lt;p&gt;As a result, if you plan to buy Apple hardware (specifically the MacBook range) you must accept that design will probably always be prioritised over raw performance.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, I have been impressed with the 2018 15-inch MacBook Pro. The hardware feels more refined (third generation keyboard) and the inclusion of a 6-core processor, as well as a 32GB option, helps support the “Pro” designation.&lt;/p&gt;

&lt;p&gt;Arguably, this is the device I had hoped would be released in 2016, when Apple first introduced the MacBook Pro with Touch Bar.&lt;/p&gt;

&lt;p&gt;Finally, it is worth mentioning that the MacBook Pro remains a very expensive notebook. Therefore, I would argue that the “low end” MacBook Pro (2.2GHz i7, 16GB, Radeon 555X), with a 512GB Storage upgrade, would be the sweet spot for most people.&lt;/p&gt;
</description>
        <pubDate>Tue, 07 Aug 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/08/07/MacBook-Pro-2018/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/08/07/MacBook-Pro-2018/</guid>
      </item>
    
      <item>
        <title>Stanford GSB</title>
        <description>&lt;p&gt;Last week, I completed a short residency at Stanford University as part of my executive education.&lt;/p&gt;

&lt;p&gt;As highlighted in my &lt;a href=&quot;/2017/10/02/stanford-university/&quot;&gt;previous article&lt;/a&gt;, I have been participating in the &lt;a href=&quot;https://www.gsb.stanford.edu/exec-ed/programs/innovative-technology-leader/&quot;&gt;The Innovative Leader&lt;/a&gt; program at &lt;a href=&quot;https://www.gsb.stanford.edu&quot;&gt;Stanford University Graduate School of Business&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The program targets executives who are in full-time employment, therefore, includes an intensive week on campus to connect, learn and collaborate.&lt;/p&gt;

&lt;p&gt;Over two articles, I will attempt to summarise my experience, providing an insight into the program itself, the facilities and my learning. This first article will focus on the Curriculum, Facilities, Professors, Participants, and Graduates.&lt;/p&gt;

&lt;h3 id=&quot;curriculum&quot;&gt;Curriculum&lt;/h3&gt;

&lt;p&gt;Outlined below is an example of the curriculum schedule.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford02.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, each day was fairly intense, with a combination of lectures, collaboration, assignments, and external engagement.&lt;/p&gt;

&lt;p&gt;The program also included a comprehensive reading list (outlined below), with many of the books being written by the lecturers. Specific curriculum sessions build upon use cases and/or themes outlined in the reading list.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://amzn.eu/hksUof7&quot;&gt;Strategy is Destiny: How Strategy-Making Shapes a Company’s Future&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://amzn.eu/c6NLBla&quot;&gt;Strategic Management of Technology and Innovation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://amzn.eu/6qpjC43&quot;&gt;Becoming Hewlett Packard: Why Strategic Leadership Matters&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://amzn.eu/f4KqeNv&quot;&gt;Scaling up Excellence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://amzn.eu/btSDggR&quot;&gt;On Grand Strategy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://amzn.eu/dBUyZLp&quot;&gt;Thinking Fast and Slow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://amzn.eu/bpwpnbn&quot;&gt;Lead and Disrupt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://amzn.eu/2zUDPAP&quot;&gt;The Lean Startup&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://amzn.eu/eVRJw0T&quot;&gt;Creative Confidence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of these books are very well known, specifically “&lt;a href=&quot;http://amzn.eu/2zUDPAP&quot;&gt;The Lean Startup&lt;/a&gt;”, “&lt;a href=&quot;http://amzn.eu/dBUyZLp&quot;&gt;Thinking Fast and Slow&lt;/a&gt;”, etc. However, having personally helped to launch an emerging technologies group with my company, I found the book “Strategic Management of Technology and Innovation” very interesting, especially the examples outlined in the chapter “Managing Internal Corporate Venturing Cycles”.&lt;/p&gt;

&lt;h3 id=&quot;facilities&quot;&gt;Facilities&lt;/h3&gt;

&lt;p&gt;Stanford University is a private research university, currently &lt;a href=&quot;https://www.topuniversities.com/university-rankings/world-university-rankings/2018&quot;&gt;positioned second in the world rankings&lt;/a&gt;. As a result, the facilities are incredible!&lt;/p&gt;

&lt;p&gt;The campus itself is very large, as highlighted by the map below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford03.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The majority of my time was spent at the Graduate School of Business, Knight Management Center (blue circle on the map).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford04.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Knight Management Center is named after &lt;a href=&quot;https://en.wikipedia.org/wiki/Phil_Knight&quot;&gt;Philip Knight&lt;/a&gt; (co-founder of Nike), who earned his MBA at the school in 1962. It includes eight buildings and over one hundred classrooms, supporting a range of different learning styles (lecture theatres, flexible learning spaces, etc.)&lt;/p&gt;

&lt;p&gt;The campus feels very “California”, embracing outdoor space, collaborative areas and art to inspire creative thinking. The business school’s slogan, “Change Lives. Change Organisations. Change the World.” is also prominently displayed throughout the campus.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford05.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I stayed in the &lt;a href=&quot;https://www.gsb.stanford.edu/visit/accommodations&quot;&gt;Schwab Residential Center&lt;/a&gt; (red circle on the previous map), which is located across the street from the Knight Management Center and near the athletic facilities.&lt;/p&gt;

&lt;p&gt;The Schwab Residential Center was rated first by the &lt;a href=&quot;http://rankings.ft.com/businessschoolrankings/executive-education-open-2018&quot;&gt;Financial Times&lt;/a&gt; for executive education food and accommodation. Personally, I would describe the accommodation as a cross between university halls and a hotel, meaning it was fairly basic. However, I can confirm that the staff and food were both excellent!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford06.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Due to the intensity of the week, I would highly recommend staying on campus, allowing for an immersive experience and providing the opportunity to engage in the extra-curricular activities, such as boot camps, campus tours, networking events, etc.&lt;/p&gt;

&lt;h3 id=&quot;professors&quot;&gt;Professors&lt;/h3&gt;

&lt;p&gt;The Stanford faculty were world class, including accomplished business leaders, authors, and future Nobel laureates. The list of professors and their profiles can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gsb.stanford.edu/faculty-research/faculty/baba-shiv&quot;&gt;Baba Shiv&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dschool.stanford.edu/about&quot;&gt;Scott Doorley&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gsb.stanford.edu/faculty-research/faculty/robert-burgelman&quot;&gt;Robert Burgelman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.gsb.stanford.edu/faculty-research/faculty/hayagreeva-rao&quot;&gt;Hayagreeva Rao&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gsb.stanford.edu/faculty-research/faculty/hau-l-lee&quot;&gt;Hau Lee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gsb.stanford.edu/faculty-research/faculty/susan-athey&quot;&gt;Susan Athey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gsb.stanford.edu/faculty-research/faculty/dan-m-klein&quot;&gt;Daniel Klein&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gsb.stanford.edu/faculty-research/faculty/benoit-monin&quot;&gt;Benoit Monin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gsb.stanford.edu/faculty-research/faculty/charles-oreilly&quot;&gt;Charles O’Reilly&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alongside the Stanford faculty, there were a number of guest speakers from start-ups, government agencies, venture capitalists and innovation incubators (e.g. &lt;a href=&quot;https://cars.stanford.edu/about/volkswagen-automotive-innovation-lab&quot;&gt;Volkswagen Automotive Innovative Laboratory&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;All of the Stanford faculty were excellent, however, I was specifically impressed by Baba Shiv (Program Director), Hayagreeva (Huggy) Rao, Hau Lee and Charles O’Reilly. Their expertise, experience and presentation style was very engaging, with thought-provoking topics and tangible outcomes.&lt;/p&gt;

&lt;h3 id=&quot;participants&quot;&gt;Participants&lt;/h3&gt;

&lt;p&gt;In 2018, there were a total 64 executives completing the program, down-selected from 165 viable submissions.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford07.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The program was very diverse, with global representation (US, Germany, China, Australia) from enterprise companies (Google, Microsoft, Amazon), start-ups, government agencies and the military. For example, during lunch on the first day, I sat between a US Navy SEAL and a Lawyer, demonstrating that technology disruption can impact any industry.&lt;/p&gt;

&lt;p&gt;As is often the case, one of the best parts of the program was the peer collaboration, allowing the group to compare stories, brainstorm ideas and discuss common barriers. My only regret would be the limited time available to engage with the peer community, which due to the intense schedule, was usually limited to lunch and dinner.&lt;/p&gt;

&lt;h3 id=&quot;graduates&quot;&gt;Graduates&lt;/h3&gt;

&lt;p&gt;During the week at Stanford, we also had the opportunity to meet with current Stanford graduates. Unsurprisingly, the quality of the research being completed was very impressive.&lt;/p&gt;

&lt;p&gt;Outlined below are nine research topics that were presented to the group.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linkedin.com/in/ermelindaporpiglia/&quot;&gt;Ermelinda Porpiglia&lt;/a&gt;:&lt;/strong&gt; High-resolution lineage mapping of myogenesis in vivo by single-cell mass cytometry.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linkedin.com/in/hojoonlee/&quot;&gt;HoJoon Lee&lt;/a&gt;:&lt;/strong&gt; Analysis of cancer genomes for personalised immunotherapy in clinical phase 1 trail.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linkedin.com/in/ssketch/&quot;&gt;Sean Sketch&lt;/a&gt;:&lt;/strong&gt; Simulating the impact of sensorimotor deficits on reaching performance.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linkedin.com/in/verjlin/&quot;&gt;Veronica Lin&lt;/a&gt;:&lt;/strong&gt; Affordances and Challenges of &lt;a href=&quot;https://projectbloks.withgoogle.com&quot;&gt;Project Bloks&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Chuanxun Su:&lt;/strong&gt; Construction of crystal structure prototype database.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linkedin.com/in/ndehaibi/&quot;&gt;Nasreddine El Dehaibi&lt;/a&gt;:&lt;/strong&gt; Semantic classification for identifying sustainable content from Amazon product reviews.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linkedin.com/in/amr-shaltout-3b3b49148/&quot;&gt;Amr Shaltout&lt;/a&gt;:&lt;/strong&gt; Spatiotemporal laser bean steering using frequency-arrayed optics in silicon metasurfaces.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linkedin.com/in/viveksunkari/&quot;&gt;Vivek Sunkari&lt;/a&gt;:&lt;/strong&gt; Innovative formulations for prevention of chronic foot ulcers in diabetic patients.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linkedin.com/in/peng-si-79443458/&quot;&gt;Peng Si&lt;/a&gt;:&lt;/strong&gt; Contrast-enhanced optical coherence tomography of tumour microvasculatures in vivo.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With my background in healthcare, I was specifically impressed with the work being completed by HoJoon Lee and Peng Si.&lt;/p&gt;

&lt;p&gt;HoJoon Lee highlights the fact that certain somatic mutations in cancer genomes result in amino acid alterations. These mutations are unique to the individual patient, highlighting the need for personalised approaches to explore the interactions between T cell and mutation-derived tumour neoantigens. The research explored the advancements in immunotherapy and Next Generation Sequencing (NGS) technologies to enable precision cancer medicines.&lt;/p&gt;

&lt;p&gt;Amr Shaltout is exploring the use of Optical Coherence Tomography Angiography (OCTA) to produce a three-dimensional image of human tissue by detecting the dynamic scattering produced by flowing red blood cells (RBCs). Due to the micrometer spatial resolution and millimetre tissue penetration depth, this approach could lead to a better understanding of tumour microenvironment, as well as improved monitoring of tumour progression and therapeutic response.&lt;/p&gt;

&lt;p&gt;As you can probably tell from the topics, the ambition of the research happening at Stanford was very high. All of the research topics presented were very innovative, however, due to their specialist focus and complexity, I would challenge that additional time should be spent to ensure the premise and value proposition can be easily consumed (helping to secure future funding, etc.)&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Hopefully, this first article has provided a good overview of Curriculum, Facilities, Professors, Participants, and Graduates. Overall, I was incredibly impressed with my Stanford University experience and feel fortunate to have had the opportunity to work alongside some of the worlds leading talent.&lt;/p&gt;

&lt;p&gt;The next article will focus on my learnings.&lt;/p&gt;
</description>
        <pubDate>Mon, 06 Aug 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/08/06/Stanford-GSB/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/08/06/Stanford-GSB/</guid>
      </item>
    
      <item>
        <title>Quantum Problems</title>
        <description>&lt;p&gt;Over the past couple of years, I’ve been investigating Quantum Computing. I have previously written two articles, covering an overview or the technology, hardware requirements, value proposition and the commercial model.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/12/10/quantum-computing/&quot;&gt;Quantum Computing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/12/18/quantum-advantage/&quot;&gt;Quantum Advantage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Similar to &lt;a href=&quot;/tag/blockchain/&quot;&gt;Blockchain&lt;/a&gt;, Quantum Computing is a complex technology that is largely misunderstood. As a result, I am always looking for new resources that tangibly explain its potential.&lt;/p&gt;

&lt;p&gt;Earlier this week, &lt;a href=&quot;https://www.seeker.com&quot;&gt;Seeker&lt;/a&gt; published a new eight-minute video, which does a great job of explaining the technology and highlights the drug discovery opportunity.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/6yaY4Fw-ovM?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;One common misconception is that Quantum Computing will outperform Classical Computing at every task. In reality, Quantum Computing targets a specific set of tasks, which are categorized on the diagram below:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.quantamagazine.org/finally-a-problem-that-only-quantum-computers-will-ever-be-able-to-solve-20180621/&quot;&gt;&lt;img src=&quot;/images/posts/quantumproblems01.jpg&quot; alt=&quot;Quantum Problems&quot; title=&quot;Quantum Problems&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, scientists have identified a class of problem known as Bounded-error Quantum Polynomial (BQP), which can only be solved by Quantum Computing.&lt;/p&gt;

&lt;p&gt;To better understand BQP, it is important to recognise the different complexity classes. &lt;a href=&quot;https://www.quantamagazine.org&quot;&gt;Quantum Magazine&lt;/a&gt; recently posted a good &lt;a href=&quot;https://www.quantamagazine.org/a-short-guide-to-hard-problems-20180716/&quot;&gt;article&lt;/a&gt;, which provides a high-level overview of the complexity classes. I have attempted to summarise the key points below.&lt;/p&gt;

&lt;h3 id=&quot;complexity-classes&quot;&gt;Complexity Classes&lt;/h3&gt;

&lt;p&gt;A basic task of theoretical computer science is to sort problems into complexity classes. A complexity class contains all problems that can be solved within a given resource budget, where the resource is something like time or memory.&lt;/p&gt;

&lt;h4 id=&quot;p--polynomial&quot;&gt;P = Polynomial&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Short Description:&lt;/strong&gt; All problems that are easy for a Classical Computer to solve.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Typical problems include, identifying the shortest path between two points.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;np--nondeterministic-polynomial&quot;&gt;NP = Nondeterministic Polynomial&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Short Description:&lt;/strong&gt; All problems that can be quickly verified by a Classical Computer once a solution is given.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; The “&lt;a href=&quot;https://en.wikipedia.org/wiki/Travelling_salesman_problem&quot;&gt;Traveling Salesman Problem&lt;/a&gt;”. Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city and returns to the origin city?&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;ph--polynomial-hierarchy&quot;&gt;PH = Polynomial Hierarchy&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Short Description:&lt;/strong&gt; A generalisation of NP. It contains all the problems you get if you start with a problem in NP and add additional layers of complexity.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Determine if there exists a clique of size 50 but no clique of size 51.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;pspace--polynomial-space&quot;&gt;PSPACE = Polynomial Space&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Short Description:&lt;/strong&gt; Does not place a focus on time, instead it contains all the problems that can be solved with a reasonable amount of memory.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Every problem in P, NP, PH, and PS.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;bqp--bounded-error-quantum-polynomial-time&quot;&gt;BQP = Bounded-error Quantum Polynomial Time&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Short Description:&lt;/strong&gt; All problems that are easy for a Quantum Computer to solve.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Identify the prime factors of an integer.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;exp--exponential&quot;&gt;EXP = Exponential&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Short Description:&lt;/strong&gt; All the problems that can be solved in an exponential amount of time by a Classical Computer.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Contains all the previous classes (e.g. P, NP, PH, PSPACE, and BQP), however, problems categorised as EXP are not in P.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;bpp--bounded-error-probabilistic-polynomial-time&quot;&gt;BPP = Bounded-error Probabilistic Polynomial Time&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Short Description:&lt;/strong&gt; Problems that can be quickly solved by algorithms that include an element of randomness.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;  Two different formulas that each produce P, that have many variables. Do the formulas compute the exact same P? This is called the “&lt;a href=&quot;https://en.wikipedia.org/wiki/Polynomial_identity_testing&quot;&gt;Polynomial Identity Testing&lt;/a&gt;” problem.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Quantum Computing remains a fascinating area, which continues to challenge human understanding and therefore is in a constant state of evolution.&lt;/p&gt;

&lt;p&gt;For example, BQP was first defined in 1993, encompassing all problems that can be solved by Quantum Computing.&lt;/p&gt;

&lt;p&gt;Since then, computer scientists have hoped to contrast BQP with a class of problems known as PH, which encompasses all problems that can be solved by a Classical Computer. This required finding a problem that could be proven to be in BQP, but not in PH.&lt;/p&gt;

&lt;p&gt;This breakthrough was achieved in May 2018, by computer scientists Ran Raz and Avishay Tal. Their findings were documented in the paper “&lt;a href=&quot;https://eccc.weizmann.ac.il/report/2018/107/&quot;&gt;Oracle Separation of BQP and PH&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;In my opinion, further breakthroughs in Quantum Mechanics are limited by the current level of software abstraction, which itself is limited by the hardware.&lt;/p&gt;

&lt;p&gt;For example, future Quantum Computing hardware breakthroughs, such as Fault Tolerance and Coherence, will be followed quickly by greater software abstraction. This will result in scientists being able to identify and address increasingly complex problems.&lt;/p&gt;

&lt;p&gt;This can be compared with the field of astronomy, which did not see major breakthroughs until after the creation of the telescope.&lt;/p&gt;
</description>
        <pubDate>Thu, 19 Jul 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/07/19/Quantum-Problems/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/07/19/Quantum-Problems/</guid>
      </item>
    
      <item>
        <title>Babylon AI</title>
        <description>&lt;p&gt;&lt;strong&gt;UPDATE: Unsurprisingly, the statements made by Babylon Health (documented in this article) were considered highly controversial, trigging a passionate response from the medical community. As a result, the event video (embedded below) was made private. I have retained the embedded link, in the hope that it is republished.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.babylonhealth.com&quot;&gt;Babylon Health&lt;/a&gt; aims to combine Artificial Intelligence (AI) with the medical expertise of humans to create a comprehensive, immediate and personalised health service that is universally available.&lt;/p&gt;

&lt;p&gt;I recently shared &lt;a href=&quot;/2018/03/05/Babylon-Health/&quot;&gt;my personal experience using Babylon Health&lt;/a&gt;, which enabled me to receive medical attention within hours, instead of days. This was achieved through the use of an AI-powered chatbot that triaged my symptoms, before automatically referring me to a GP via video messaging. The interaction was concluded through the creation of an online prescription that was made available for local pickup within the hour.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/babylonhealth02.jpg&quot; alt=&quot;Babylon App&quot; title=&quot;Babylon App&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The experience was also a tangible example of the &lt;a href=&quot;/2014/12/30/The-Healthcare-Revolution/&quot;&gt;Healthcare Vision&lt;/a&gt; that I outlined in 2014, where technology is an embedded part of the healthcare ecosystem.&lt;/p&gt;

&lt;p&gt;Yesterday, Babylon hosted an event at the Royal College of Physicians to reveal their latest advancements in AI. The full event (1h 30mins) can be viewed below.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/o3AdAVUKFW0?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;At &lt;a href=&quot;https://youtu.be/o3AdAVUKFW0?t=35m35s&quot;&gt;35:35&lt;/a&gt;, Dr. Mobasher Butt shared how Babylon Health set the clinical standard for their AI, which incorporates the &lt;a href=&quot;http://www.rcgp.org.uk/training-exams/mrcgp-exams-overview.aspx&quot;&gt;Membership of the Royal College of General Practitioners (MRCGP)&lt;/a&gt; curriculum and exam. They revealed that using a representative set of questions, their AI achieved a score of 81%, which can be compared to the average mark of 72% for a GP.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/babylonai01.jpg&quot; alt=&quot;Babylon AI&quot; title=&quot;Babylon AI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is clearly an impressive feat, but &lt;a href=&quot;https://www.bbc.co.uk/news/technology-44635134&quot;&gt;was also met with scepticism&lt;/a&gt;, as the MRCGP exam questions are not publicly available. In response, Babylon Health highlighted that they used example questions, which are made available as a learning aid. They also encouraged the &lt;a href=&quot;http://www.rcgp.org.uk&quot;&gt;RCGP&lt;/a&gt; to share the full set of questions for future testing.&lt;/p&gt;

&lt;p&gt;Babylon Health also &lt;a href=&quot;https://youtu.be/o3AdAVUKFW0?t=46m5s&quot;&gt;touted the accuracy of their AI&lt;/a&gt;, using a set of vignettes (real-world scenarios). This included testing the AI against independent MRCGP qualified GPs. The results (outlined below) highlighted that the AI performed on par with the GPs included in the test, with an average of 80% accuracy.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/babylonai02.jpg&quot; alt=&quot;Babylon AI&quot; title=&quot;Babylon AI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alongside the patient-facing results, Babylon Health shared a number of updates regarding their GP experience. This included the GP Portal, which is used during a patient interaction.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/babylonai03.jpg&quot; alt=&quot;Babylon AI&quot; title=&quot;Babylon AI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Not only does the GP Portal provide a comprehensive view of the patient’s history, but it also captures the conversation in real-time, looking to identify keywords to help support the diagnosis. This information can improve the speed and accuracy of the outcome, as well as significantly reduce the amount of time a GP must spend on documentation.&lt;/p&gt;

&lt;p&gt;Another interesting demonstration was the use of Machine Learning (ML) to provide the GP with a real-time readout of a patient’s emotional state, which was achieved through analysis of the patents facial expressions. For example, a patient may express confusion or fear, but may not feel comfortable to share their feelings verbally.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/babylonai04.jpg&quot; alt=&quot;Babylon AI&quot; title=&quot;Babylon AI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As I reflect on the &lt;a href=&quot;/2014/12/30/The-Healthcare-Revolution/&quot;&gt;Healthcare Vision&lt;/a&gt; I outlined in 2014, I believe the advancements presented by Babylon Health demonstrate how this vision is rapidly becoming a reality.&lt;/p&gt;

&lt;p&gt;For example, I predicted a world where a virtual assistant would be used to analyse health data, providing real-time recommendations. If a health issue was identified the virtual assistant would take one of the following actions:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;If the condition is known, the virtual assistant would automatically order the required medication. This medication would be delivered via the Amazon logistics network.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;If the condition is unknown or non-critical but requires consultancy, the virtual assistant would schedule a video meeting with a GP.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Babylon Health has clearly demonstrated that their virtual assistant (which can be integrated with Amazon Alexa) can accurately diagnose a set of symptoms. They also provide a fast and simple way to engage a GP via video messaging, with the potential to automatic prescribe medication as their AI gains credibility. When combined with the recent acquisition of &lt;a href=&quot;https://www.pillpack.com&quot;&gt;PillPack&lt;/a&gt; by Amazon, the potential for rapid home delivery also becomes a reality.&lt;/p&gt;

&lt;p&gt;In short, I am excited about the future of healthcare and see a tremendous opportunity for technology to enable better health outcomes, which are faster, more accurate and more accessible.&lt;/p&gt;
</description>
        <pubDate>Thu, 28 Jun 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/06/28/Babylon-AI/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/06/28/Babylon-AI/</guid>
      </item>
    
      <item>
        <title>UK EA Forum - Part V</title>
        <description>&lt;p&gt;Yesterday, I facilitated the fifth UK EA Forum, which currently includes thirty-five people, across twenty-five companies.&lt;/p&gt;

&lt;p&gt;The forum is open to any company in the UK and meets once per quarter to discuss common interests, opportunities and barriers. The details of past four meetings can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/03/31/UK-EA-Forum-Part-One/&quot;&gt;UK EA Forum - Part I&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/06/16/UK-EA-Forum-Part-Two/&quot;&gt;UK EA Forum - Part II&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/09/29/UK-EA-Forum-Part-Three/&quot;&gt;UK EA Forum - Part III&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2018/01/19/UK-EA-Forum-Part-Four/&quot;&gt;UK EA Forum - Part IV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agenda for each meeting is crowdsourced, ensuring the most relevant and topical areas are prioritised. Yesterday, the group discussed the following.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Enterprise Architecture&lt;/li&gt;
  &lt;li&gt;Multi-Cloud Positioning&lt;/li&gt;
  &lt;li&gt;Robotic Process Automation (RPA)&lt;/li&gt;
  &lt;li&gt;Microsoft Office 365 Positioning&lt;/li&gt;
  &lt;li&gt;General Data Protection Regulation (GDPR)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My notes from the meeting can be found below.&lt;/p&gt;

&lt;h3 id=&quot;enterprise-architecture&quot;&gt;Enterprise Architecture&lt;/h3&gt;

&lt;p&gt;To launch the session, I shared our Enterprise Architecture &lt;a href=&quot;/2016/01/05/Enterprise-IT-Architecture/&quot;&gt;structure&lt;/a&gt;, including &lt;a href=&quot;/2016/02/21/EA-Principles/&quot;&gt;principles&lt;/a&gt; and &lt;a href=&quot;/2016/04/03/EA-Positioning/&quot;&gt;positioning&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum10.jpg&quot; alt=&quot;UK EA Forum&quot; title=&quot;UK EA Forum&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Every company had a slightly different structure and level of maturity, however, there were many common themes, including the importance of placing architecture close to the business and ensuring strong sponsorship to enable strategic decision making.&lt;/p&gt;

&lt;p&gt;The group also discussed the use of Enterprise Architecture tools to facilitate key processes. Some companies had no formal tool positioned, instead leveraging Visio and PowerPoint, while others had invested in a commercial offering. One company had custom-built a tool (&lt;a href=&quot;http://www.waltz-technology.com&quot;&gt;Waltz&lt;/a&gt;, which is available on &lt;a href=&quot;https://github.com/khartec/waltz&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The specific Enterprise Architecture tools discussed can be found listed below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.softwareag.com/corporate/products/aris_alfabet/eam/default.html&quot;&gt;Alfabet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.leanix.net/en/&quot;&gt;LeanIX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.adoit-community.com&quot;&gt;ADOIT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.avolutionsoftware.com/enterprise-architecture/&quot;&gt;ABACUS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.waltz-technology.com&quot;&gt;Waltz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The companies that were leveraging a tool described the importance of integration with service/portfolio management and highlighted the discipline required to maintain the data captured by the tool. As a result, an Enterprise Architecture tool should only be considered if the underlying processes are mature.&lt;/p&gt;

&lt;p&gt;We also discussed the connection between Enterprise Architecture and Software Development. I shared our focus on standardisation (enforced by Continuous Integration) and accelerators (reusable code modules).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum11.jpg&quot; alt=&quot;UK EA Forum&quot; title=&quot;UK EA Forum&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, I demonstrated our dedicated Developer Portal, which is used educate the developer community (including service integrators, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum05.jpg&quot; alt=&quot;UK EA Forum&quot; title=&quot;UK EA Forum&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;multi-cloud-positioning&quot;&gt;Multi-Cloud Positioning&lt;/h3&gt;

&lt;p&gt;With the recent release of the 2018 Gartner Magic Quadrant for Cloud Infrastructure as Service (image below), the group discussed multi-cloud.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.zdnet.com/article/google-cloud-platform-breaks-into-leader-category-in-gartners-magic-quadrant/&quot;&gt;&lt;img src=&quot;/images/posts/ukeaforum12.jpg&quot; alt=&quot;UK EA Forum&quot; title=&quot;UK EA Forum&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source: &lt;a href=&quot;(https://www.zdnet.com/article/google-cloud-platform-breaks-into-leader-category-in-gartners-magic-quadrant/)&quot;&gt;ZDNet&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It should be noted that Gartner made a significant change to the Cloud IaaS criteria in 2018, with a new focus on global vendors that currently have hyper-scale integrated IaaS and PaaS offerings. As a result, the number of vendors went from fourteen in 2017 to just six in 2018.&lt;/p&gt;

&lt;p&gt;The group discussed the merits of cloud abstraction, using open-source Infrastructure as Code capabilities such as &lt;a href=&quot;https://www.terraform.io&quot;&gt;Terraform&lt;/a&gt; to enable a multi-cloud strategy. On paper this approach makes a lot of sense, reducing lock-in and duplication, whilst promoting “utility compute”. However, the reality can be more complex, due to the speed in which cloud providers are innovating, resulting in API gaps.&lt;/p&gt;

&lt;p&gt;Therefore, most companies had strategically positioned &lt;a href=&quot;https://aws.amazon.com&quot;&gt;AWS&lt;/a&gt; and/or &lt;a href=&quot;https://azure.microsoft.com&quot;&gt;Azure&lt;/a&gt; for commodity services (e.g. Compute), with &lt;a href=&quot;https://cloud.google.com&quot;&gt;Google Cloud&lt;/a&gt; reserved for specialist capabilities (e.g. &lt;a href=&quot;https://cloud.google.com/tpu/&quot;&gt;Cloud TPU&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Each cloud was supported using native tools (e.g. &lt;a href=&quot;https://aws.amazon.com/cloudformation/&quot;&gt;AWS CloudFormation&lt;/a&gt;), with the exception of container management, where a platform such as &lt;a href=&quot;https://www.openshift.com&quot;&gt;OpenShift&lt;/a&gt; or &lt;a href=&quot;https://www.cloudfoundry.org&quot;&gt;Cloud Foundry&lt;/a&gt; remains a popular choices due to the maturity over native &lt;a href=&quot;https://kubernetes.io&quot;&gt;Kubernetes&lt;/a&gt; (likely to change in the next three years).&lt;/p&gt;

&lt;h3 id=&quot;robotic-process-automation-rpa&quot;&gt;Robotic Process Automation (RPA)&lt;/h3&gt;

&lt;p&gt;Robotic Process Automation (RPA) is another hot topic for enterprise customers, with the promise to drive significant cost savings through the automation of highly repeatable tasks.&lt;/p&gt;

&lt;p&gt;The use of the word “Robotic” makes the technology sound very futuristic. However, RPA tools are actually very “traditional” and comparable to GUI testing tools such as &lt;a href=&quot;https://www.seleniumhq.org&quot;&gt;Selenium&lt;/a&gt;, where a simple script is created to automate GUI interactions.&lt;/p&gt;

&lt;p&gt;The video below highlights &lt;a href=&quot;https://www.automationanywhere.com&quot;&gt;Automation Anywhere&lt;/a&gt;, arguably the most comprehensive RPA tool on the market.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/PSYPegTx-uI?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The group discussed the importance of positioning, specifically when to use RPA vs Application/Business Process Modernisation.&lt;/p&gt;

&lt;p&gt;The recent Forrester Podcast “&lt;a href=&quot;https://go.forrester.com/what-it-means/ep63-rpa-building-block-transformative-automation/&quot;&gt;RPA: A Building Block of Transformative Automation&lt;/a&gt;” provides a great summary of RPA and highlights a number of frameworks to help with positioning.&lt;/p&gt;

&lt;h3 id=&quot;microsoft-office-365-positioning&quot;&gt;Microsoft Office 365 Positioning&lt;/h3&gt;

&lt;p&gt;Microsoft has made a lot of progress with &lt;a href=&quot;https://transform.microsoft.com&quot;&gt;Office 365&lt;/a&gt;, successfully migrating the majority of their existing enterprise customers.&lt;/p&gt;

&lt;p&gt;Although the positioning of the core capabilities (e.g. Email, Calendaring, Productivity) is clear, Office 365 includes a lot of additional services, which often results in duplication. For example, &lt;a href=&quot;https://products.office.com/en-us/microsoft-teams/&quot;&gt;Teams&lt;/a&gt; vs &lt;a href=&quot;https://slack.com&quot;&gt;Slack&lt;/a&gt;, &lt;a href=&quot;https://onedrive.live.com/&quot;&gt;OneDrive&lt;/a&gt; vs &lt;a href=&quot;https://www.box.com/&quot;&gt;Box&lt;/a&gt;, &lt;a href=&quot;https://tasks.office.com&quot;&gt;Planner&lt;/a&gt; vs &lt;a href=&quot;https://trello.com&quot;&gt;Trello&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;As a result, each enterprise will need to define a process for positioning, recognising that Microsoft will continue to add new services to further enrich their ecosystem.&lt;/p&gt;

&lt;p&gt;Support can also be a challenge, as traditionally, Microsoft services have been supported by “workplace” teams. However, many of these new services (e.g. PowerApps) require a different set of skills, which are often found in other teams.&lt;/p&gt;

&lt;p&gt;The group did not have specific answers to these challenges but recognised the importance of maintaining proactive control, instead of letting Microsoft services virally grow without appropriate positioning (which is obviously part of the Microsoft growth strategy).&lt;/p&gt;

&lt;h3 id=&quot;general-data-protection-regulation-gdpr&quot;&gt;General Data Protection Regulation (GDPR)&lt;/h3&gt;

&lt;p&gt;Coincidently, the &lt;a href=&quot;http://www.eugdpr.org&quot;&gt;GDPR&lt;/a&gt; enforcement date was also 25-MAY, therefore, the group spent a few minutes sharing updates regarding their status, covering people, process, and technology.&lt;/p&gt;

&lt;p&gt;GDPR has been a long-running topic as part of the UK EA Forum and I expect approaches such as “Privacy by Design” to remain highly relevant over the coming months.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;The next UK EA Forum is scheduled for August 2018. If you are interested in joining, please connect via our &lt;a href=&quot;https://www.linkedin.com/groups/13576113&quot;&gt;LinkedIn Group&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sat, 26 May 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/05/26/UK-EA-Forum-Part-Five/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/05/26/UK-EA-Forum-Part-Five/</guid>
      </item>
    
      <item>
        <title>Surface Book 2</title>
        <description>&lt;p&gt;Over the past couple of months, &lt;a href=&quot;/2018/02/16/My-Setup-2018/&quot;&gt;I have been using the Surface Book 2 alongside my MacBook Pro&lt;/a&gt;. Although I have no intention of giving up my Mac, I do occasionally require a device that allows me to natively interact with the Windows eco-system.&lt;/p&gt;

&lt;p&gt;With this in mind, I thought I would share a few observations, specifically focused on Performance and Build Quality.&lt;/p&gt;

&lt;p&gt;Please note, this article is not designed to be a detailed review, for that, I would recommend &lt;a href=&quot;https://www.pcper.com/reviews/Mobile/Microsoft-Surface-Book-2-135-Review-Much-Needed-Refinement&quot;&gt;PC Perspective&lt;/a&gt;, &lt;a href=&quot;https://www.theverge.com/2017/11/16/16658466/microsoft-surface-book-2-review&quot;&gt;The Verge&lt;/a&gt; and/or &lt;a href=&quot;https://www.techradar.com/reviews/microsoft-surface-book-2-13-inch&quot;&gt;TechRadar&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;p&gt;On paper, the Surface Book 2 is impressive, especially when compared to the MacBook Pro. The specification of my device can be found below, costing £2499.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;13-inch Surface Book 2&lt;/li&gt;
  &lt;li&gt;1.90GHz Quad-Core Intel i7-8650U (Turbo up to 4.2GHz)&lt;/li&gt;
  &lt;li&gt;16GB 1866MHz LPDDR3 RAM&lt;/li&gt;
  &lt;li&gt;512GB PCIe SSD (Samsung PM961)&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 620 and NVIDIA GTX 1050 2GB GDDR5&lt;/li&gt;
  &lt;li&gt;13.5-inch PixelSense Display (3000x2000, 267PPI)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Having access to a quad-core processor in a 13-inch device is great, especially when combined with dedicated graphics from NVIDIA.&lt;/p&gt;

&lt;p&gt;This combination is made possible by the unique design of the Surface Book 2, where the CPU, Memory, and Storage are located in the display, leaving plenty of room for the dedicated graphics and additional battery in the base.&lt;/p&gt;

&lt;p&gt;As a result, it is possible to detach the display and use it as a standalone tablet (sacrificing battery life and graphics performance). Although this 2-in-1 feature acts as a good differentiator, I have not found a practical use for the standalone tablet mode. It is simply too large and heavy when compared to a dedicated tablet, such as the Apple iPad.&lt;/p&gt;

&lt;p&gt;Overall performance is good, especially from the CPU and GPU, which is validated by the strong &lt;a href=&quot;https://benchmarks.ul.com/pcmark10&quot;&gt;PCMark 10&lt;/a&gt; results.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/surfacebook201.jpg&quot; alt=&quot;Surface Book 2&quot; title=&quot;Surface Book 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;However, like so many Windows devices, there are a few frustrating limitations.&lt;/p&gt;

&lt;p&gt;For example, storage performance is disappointing. As highlighted below, the maximum write performance of the Surface Book 2 is 600MB/s, compared to 2200MB/s on my MacBook Pro.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/surfacebook202.jpg&quot; alt=&quot;Surface Book 2&quot; title=&quot;Surface Book 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I suspect this limitation is artificially imposed by Microsoft to protect battery life. The evidence being that performance has actually improved dramatically since launch through firmware updates, as a previous review from &lt;a href=&quot;https://www.pcper.com/reviews/Mobile/Microsoft-Surface-Book-2-Review/CPU-and-Storage-Performance&quot;&gt;PC Perspective&lt;/a&gt; reported a write performance of just 300MB/s.&lt;/p&gt;

&lt;p&gt;It is interesting that Microsoft has chosen to compromise in this area, recognising that storage performance is not generally disclosed as part of the marketing material, but does play a key role in overall device performance.&lt;/p&gt;

&lt;p&gt;Another disappointing area is I/O, where Microsoft has decided not to include Thunderbolt 3. They have at least added USB-C, but this is limited to 5Gb/s and therefore can not be used to add an external GPU, etc.&lt;/p&gt;

&lt;p&gt;You could argue that Thunderbolt 3 is not critical, however, on a device that costs £2499, I would expect to have modern I/O options, especially as the equivalent MacBook Pro includes four Thunderbolt 3 ports.&lt;/p&gt;

&lt;h3 id=&quot;build-quality&quot;&gt;Build Quality&lt;/h3&gt;

&lt;p&gt;The build quality of the Surface Book 2 is excellent. In 2016, &lt;a href=&quot;/2016/11/28/macbook-pro-late-2016/&quot;&gt;I made the following statement about the MacBook Pro&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“The chassis is both rigid and dense, whilst at the same time feeling incredibly refined. I honestly believe this is the best-manufactured notebook ever, delivering an unparalleled level of precision.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Although not quite to the same extent, I believe the Surface Book 2 achieves a similar level of precision. One area where I would commend Microsoft is the keyboard, which is without question more durable than the MacBook Pro.&lt;/p&gt;

&lt;p&gt;Other nice touches include the reassuring mechanical click that occurs when detaching the display and the subtle keyboard curve, which is designed to improve ergonomics. These small details provide a feeling of quality and I have seen no evidence (yet) that the hardware will degrade over time.&lt;/p&gt;

&lt;p&gt;The controversial “hinge” is certainly unique and I would personally prefer the device to close fully, without leaving a gap.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/surfacebook203.jpg&quot; alt=&quot;Surface Book 2&quot; title=&quot;Surface Book 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;However, I can not fault the functionality and it does give the device character, helping it stand out from the massive number of Windows laptops on the market.&lt;/p&gt;

&lt;p&gt;My only criticism would be the top-heavy nature of the device, due to the majority of the hardware (CPU, Memory, Storage) being located in the display. This can result in a slight wobble when using the device on an uneven surface or when interacting with the touch-screen in laptop mode.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, the Surface Book 2 is a good device, that could be great, if not for a few frustrating limitations.&lt;/p&gt;

&lt;p&gt;Depending on your usage, you might be able to forgive the disappointing storage performance and lack of Thunderbolt 3, however, when combined with the £2499 price, it becomes a difficult device to recommend.&lt;/p&gt;

&lt;p&gt;With that said, if you are looking for a true 2-in-1, the Surface Book 2 remains one of your only options and therefore you might be able to better justify the price premium. I, however, urge you to use the device as a 2-in-1 before purchasing, as I was unimpressed with the standalone tablet mode.&lt;/p&gt;

&lt;p&gt;In conclusion, if you have any interest in the Surface Book 2, I would first explore the Lenovo ThinkPad X1 Carbon, Dell XPS 13, or even a MacBook Pro.&lt;/p&gt;
</description>
        <pubDate>Thu, 03 May 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/05/03/Surface-Book-2/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/05/03/Surface-Book-2/</guid>
      </item>
    
      <item>
        <title>Fedora 28</title>
        <description>&lt;p&gt;I first started using Linux in 2001 (I was 16), driven by curiosity and the desire to further embrace the open-source community.&lt;/p&gt;

&lt;p&gt;Over the years I have used many different Linux distributions, starting with &lt;a href=&quot;https://distrowatch.com/?newsid=00044&quot;&gt;Mandrake Linux 8.1&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unfortunately, Mandrake Linux is no longer officially available, which is a shame, as it was an excellent choice for beginners, thanks to its incredibly comprehensive documentation.&lt;/p&gt;

&lt;p&gt;Mandrake Linux 8.1 also supported a wide range of desktops, including KDE 2.2.1 and GNOME 1.4.1 (images below), which made experimentation easy and fun.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linux01.jpg&quot; alt=&quot;Linux&quot; title=&quot;Linux&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I initially favoured KDE (left image), but over the years transitioned to GNOME (right image).&lt;/p&gt;

&lt;p&gt;Although I will always look back on Mandrake Linux with fond memories, I eventually switched to &lt;a href=&quot;https://www.ubuntu.com&quot;&gt;Ubuntu&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For many years, Ubuntu was everything I wanted from a Linux distribution, with strong sponsorship, frequent updates, and an active community.&lt;/p&gt;

&lt;p&gt;Unfortunately, in April 2011, Ubuntu made the decision to introduce Unity as a replacement for GNOME. Although I believe Ubuntu had good intentions with Unity, I was not impressed by the early builds and personally felt the community would be better served by continuing to mature GNOME.&lt;/p&gt;

&lt;p&gt;Thankfully, one of the best things about Linux is its flexibility. Therefore, instead of continuing to use Ubuntu, I simply switched (again) to &lt;a href=&quot;https://getfedora.org&quot;&gt;Fedora&lt;/a&gt;, which (thankfully) had abandoned its early efforts to implement Unity.&lt;/p&gt;

&lt;p&gt;Since switching to Fedora, I have been impressed with its speed and reliability, as well as the focus on cloud, development, security, and virtualisation (all things I value within my workflow). I have also learned to use Fedora “out of the box” with very little customisation, which makes rebuilding a machine very quick and easy.&lt;/p&gt;

&lt;p&gt;With the recent release of &lt;a href=&quot;https://getfedora.org/en_GB/workstation/&quot;&gt;Fedora 28&lt;/a&gt;, I thought I would share the process I follow to set up a new machine.&lt;/p&gt;

&lt;h3 id=&quot;fedora-setup&quot;&gt;Fedora Setup&lt;/h3&gt;

&lt;p&gt;Outside of the pre-installed applications, I really only install a handful of third-party applications, specifically &lt;a href=&quot;https://www.google.com/chrome/&quot;&gt;Chrome&lt;/a&gt;, &lt;a href=&quot;https://atom.io&quot;&gt;Atom&lt;/a&gt;, &lt;a href=&quot;https://www.docker.com&quot;&gt;Docker&lt;/a&gt;, &lt;a href=&quot;https://nodejs.org/en/&quot;&gt;Node.js&lt;/a&gt;, &lt;a href=&quot;http://nixnote.org/NixNote-Home/&quot;&gt;NixNote&lt;/a&gt;, &lt;a href=&quot;https://1password.com&quot;&gt;1Password&lt;/a&gt;, and &lt;a href=&quot;https://flatpak.org&quot;&gt;Flatpak&lt;/a&gt; (which adds support for &lt;a href=&quot;https://www.dropbox.com/&quot;&gt;Dropbox&lt;/a&gt;, &lt;a href=&quot;https://slack.com&quot;&gt;Slack&lt;/a&gt;, &lt;a href=&quot;https://www.spotify.com&quot;&gt;Spotify&lt;/a&gt;, and &lt;a href=&quot;https://www.videolan.org/vlc/&quot;&gt;VLC&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Finally, I install &lt;a href=&quot;https://www.folkswithhats.org&quot;&gt;Fedy&lt;/a&gt; and the GNOME Tweak Tool (AKA Tweaks), which both provide easy access to popular operating system themes, extensions, and advanced configuration.&lt;/p&gt;

&lt;p&gt;The majority of the applications are installed using Dandified Yum (DNF), which is a software package manager for RPM-based Linux distributions.&lt;/p&gt;

&lt;h4 id=&quot;chrome&quot;&gt;Chrome&lt;/h4&gt;

&lt;p&gt;Although I have been impressed with the latest builds of Firefox, having &lt;a href=&quot;https://www.google.com/chrome/&quot;&gt;Chrome&lt;/a&gt; available is still valuable (especially when using third-party extensions and Google services).&lt;/p&gt;

&lt;p&gt;To install, run the following terminal command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install fedora-workstation-repositories
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once complete, Chrome will be available to install from the Software store.&lt;/p&gt;

&lt;h4 id=&quot;atom&quot;&gt;Atom&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://atom.io&quot;&gt;Atom&lt;/a&gt; is my preferred text editor. To install, simply head to the &lt;a href=&quot;https://atom.io&quot;&gt;Atom website&lt;/a&gt; and &lt;a href=&quot;https://github.com/atom/atom/releases/latest&quot;&gt;download the latest RPM version&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once complete, navigate the download directory and run the following terminal command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install ./atom.x86_64.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once installed, Atom will be available for use.&lt;/p&gt;

&lt;h4 id=&quot;docker&quot;&gt;Docker&lt;/h4&gt;

&lt;p&gt;Over the past few years, &lt;a href=&quot;/2014/07/21/docker-containerisation-virtualisation/&quot;&gt;Docker has become an integral part of my development workflow&lt;/a&gt;. To install, run the following terminal commands:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf -y install dnf-plugins-core

sudo dnf config-manager \
  --add-repo \
  https://download.docker.com/linux/fedora/docker-ce.repo

sudo dnf install docker-ce
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
You can check Docker is working by running the following two terminal commands:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo systemctl start docker
sudo docker run hello-world
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
If successful, you should receive the message “Hello from Docker!”&lt;/p&gt;

&lt;h4 id=&quot;node&quot;&gt;Node&lt;/h4&gt;

&lt;p&gt;Occasionally, I still have a need to run &lt;a href=&quot;https://nodejs.org/en/&quot;&gt;Node.js&lt;/a&gt; locally. To install, run the following command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install nodejs
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
To confirm the installation, run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;node -v&lt;/code&gt; to display the version number.&lt;/p&gt;

&lt;h4 id=&quot;nixnote&quot;&gt;NixNote&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;http://nixnote.org/NixNote-Home/&quot;&gt;NixNote&lt;/a&gt; is a free, open-source note-taking application that natively synchronises with &lt;a href=&quot;https://evernote.com&quot;&gt;Evernote&lt;/a&gt;. To install, run the following terminal commands:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf copr enable nunodias/nixnote2
sudo dnf update -y
sudo dnf install nixnote2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once installed, click “Sync” to login to Evernote.&lt;/p&gt;

&lt;h4 id=&quot;1password&quot;&gt;1Password&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://1password.com&quot;&gt;1Password&lt;/a&gt; is a popular and comprehensive password manager, available across all platforms (Windows, macOS, Linux, ChromeOS, iOS, Android, etc.)&lt;/p&gt;

&lt;p&gt;The easiest way to install 1Password on Linux is via the &lt;a href=&quot;https://1password.com/downloads/&quot;&gt;Chrome Extension&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To install, simply &lt;a href=&quot;https://chrome.google.com/webstore/detail/1password-x-–-password-ma/aeblfdkhhhdcdjpifhhbdiojplfjncoa&quot;&gt;download&lt;/a&gt;, run and login.&lt;/p&gt;

&lt;h4 id=&quot;flatpak&quot;&gt;Flatpak&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://flatpak.org&quot;&gt;Flatpak&lt;/a&gt; is packaging technology, allowing for applications to be installed on any Linux distribution. The current list of compatible applications can be found on &lt;a href=&quot;https://flathub.org/home&quot;&gt;FlatHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Flatpak has been pre-installed since Fedora 24. Therefore, installation is as simple as downloading and running the &lt;a href=&quot;https://flatpak.org/setup/Fedora/&quot;&gt;Flatpak Repository File&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linux02.jpg&quot; alt=&quot;Flatpak&quot; title=&quot;Flatpak&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once installed, compatible applications (&lt;a href=&quot;https://www.dropbox.com/&quot;&gt;Dropbox&lt;/a&gt;, &lt;a href=&quot;https://slack.com&quot;&gt;Slack&lt;/a&gt;, &lt;a href=&quot;https://www.spotify.com&quot;&gt;Spotify&lt;/a&gt;, and &lt;a href=&quot;https://www.videolan.org/vlc/&quot;&gt;VLC&lt;/a&gt;) can be installed directly from &lt;a href=&quot;https://flathub.org/home&quot;&gt;FlatHub&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;fedy&quot;&gt;Fedy&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://www.folkswithhats.org&quot;&gt;Fedy&lt;/a&gt; is a post-installation script written in bash specifically for Fedora. It provides simple access to additional applications, utilities, and codecs that do not come pre-installed with Fedora.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install https://dl.folkswithhats.org/fedora/$(rpm -E %fedora)/RPMS/fedy-release.rpm

sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install fedy
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once installed, Fedy will be available for use.&lt;/p&gt;

&lt;h4 id=&quot;gnome-tweak-tool&quot;&gt;GNOME Tweak Tool&lt;/h4&gt;

&lt;p&gt;The GNOME Tweak Tool can be installed from the Software store (simply called Tweaks).&lt;/p&gt;

&lt;p&gt;Once complete, I would recommend installing the Shell integration for Chrome, which will make installing extensions very simple. To install, run the following terminal commands:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install chrome-gnome-shell

sudo dnf copr enable region51/chrome-gnome-shell

sudo dnf install chrome-gnome-shell
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Open Chrome and browse to the &lt;a href=&quot;https://extensions.gnome.org&quot;&gt;GNOME Shell Extensions&lt;/a&gt; website. You will be prompted to install a Chrome extension.&lt;/p&gt;

&lt;p&gt;Once complete, you can simply search and enable GNOME Shell Extensions directly from Chrome. I always install “&lt;a href=&quot;https://extensions.gnome.org/extension/307/dash-to-dock/&quot;&gt;Dash to Dock&lt;/a&gt;”, which includes advanced settings to customise the dock.&lt;/p&gt;
</description>
        <pubDate>Tue, 01 May 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/05/01/Fedora-28/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/05/01/Fedora-28/</guid>
      </item>
    
      <item>
        <title>Cloudflare DNS</title>
        <description>&lt;p&gt;The Domain Name System (DNS) is the phone book of the Internet. It maintains a directory of domain names and translates them to Internet Protocol (IP) addresses. As a result, nearly everything that happens on the Internet starts with a DNS request.&lt;/p&gt;

&lt;p&gt;By default, consumer DNS is delivered via an Internet Service Provider (ISP). For example, &lt;a href=&quot;https://www.productsandservices.bt.com/broadband/&quot;&gt;BT&lt;/a&gt;, &lt;a href=&quot;http://www.sky.com/shop/broadband-talk&quot;&gt;Sky&lt;/a&gt;, &lt;a href=&quot;http://www.virginmedia.com/shop/broadband.html&quot;&gt;Virgin&lt;/a&gt;, &lt;a href=&quot;https://www.plus.net&quot;&gt;Plusnet&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;Unfortunately, these providers are usually slow, insecure and lack robust privacy controls, meaning anyone can see the sites being accessed, even if the content is encrypted. Worse still, some providers sell data about user Internet activity and/or use it to target ads.&lt;/p&gt;

&lt;p&gt;An easy solution is to use a public DNS provider, for example &lt;a href=&quot;https://www.opendns.com&quot;&gt;Cisco OpenDNS&lt;/a&gt; (208.67.222.222 / 208.67.220.220) or &lt;a href=&quot;https://developers.google.com/speed/public-dns/&quot;&gt;Google Public DNS&lt;/a&gt; (8.8.8.8 / 8.8.4.4). These providers are generally faster, more secure and likely more trustworthy than an ISP.&lt;/p&gt;

&lt;p&gt;I have been a long-time user of OpenDNS (pre-dating the &lt;a href=&quot;https://newsroom.cisco.com/press-release-content?type=webcontent&amp;amp;articleId=1713134&quot;&gt;Cisco acquisition in 2015&lt;/a&gt;), however it is worth acknowledging that both Cisco and Google are not completely unbiased, for example, 80% of Google’s revenue comes from advertising (although I’m not suggesting this impacts their public DNS).&lt;/p&gt;

&lt;h3 id=&quot;introducing-cloudflare-dns&quot;&gt;Introducing Cloudflare DNS&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://www.cloudflare.com&quot;&gt;Cloudflare&lt;/a&gt; runs one of the world’s largest, fastest networks. &lt;a href=&quot;https://www.apnic.net&quot;&gt;APNIC&lt;/a&gt; is a non-profit organisation managing IP address allocation for the Asia Pacific and Oceania regions.&lt;/p&gt;

&lt;p&gt;Today, Cloudflare and APNIC have launched a new public DNS service, with a focus on speed, security, and privacy.&lt;/p&gt;

&lt;h4 id=&quot;performance&quot;&gt;Performance&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://www.dnsperf.com&quot;&gt;DNSPerf&lt;/a&gt; is an independent service for DNS performance analytics. As you can see from the image below, Cloudflare DNS is currently rated the fastest in the world, with a query speed of just 14.24ms.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/cloudflaredns01.jpg&quot; alt=&quot;Cloudflare DNS&quot; title=&quot;Cloudflare DNS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The average ISP query speed is 65ms+.&lt;/p&gt;

&lt;h4 id=&quot;security&quot;&gt;Security&lt;/h4&gt;

&lt;p&gt;Even if you are visiting a site using HTTPS, your DNS query is sent over an unencrypted connection. This limitation also increases the risk of a “Man-In-The-Middle” attack, inadvertently directing traffic to a phishing, malware or surveillance site.&lt;/p&gt;

&lt;p&gt;As a result, Cloudflare DNS supports HTTPS. Therefore, compatible operating systems, browsers, mobile applications, and network equipment (e.g. home router) can use the DNS over HTTPS endpoint instead of sending DNS requests in plaintext.&lt;/p&gt;

&lt;h4 id=&quot;privacy&quot;&gt;Privacy&lt;/h4&gt;

&lt;p&gt;Cloudflare DNS does not log user IP addresses (the way other providers do). As outlined below, their privacy policy is clear and very customer-centric.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Cloudflare will never sell your data or use it to target ads. Period.&lt;/li&gt;
  &lt;li&gt;All debug logs, which we keep just long enough to ensure no one is using the service to cause harm, of are purged within 24 hours.&lt;/li&gt;
  &lt;li&gt;Cloudflare will not retain any personal data / personally identifiable information, including information about the client IP and client port.&lt;/li&gt;
  &lt;li&gt;Cloudflare will retain only limited transaction data for legitimate operational and research purposes, but in no case will such transaction data be retained by Cloudflare for more than 24 hours.&lt;/li&gt;
  &lt;li&gt;Cloudflare will only retain or use what is being asked, not who is asking it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cloudflare has also partnered with &lt;a href=&quot;https://kpmg.com&quot;&gt;KPMG&lt;/a&gt; to independently audit their systems annually to validate their privacy controls.&lt;/p&gt;

&lt;h3 id=&quot;setup-cloudflare-dns&quot;&gt;Setup Cloudflare DNS&lt;/h3&gt;

&lt;p&gt;Setting up CloudFlare DNS is easy. Simply, update the DNS configuration on your device (e.g. Laptop, Smartphone, Router) with the following IPv4 or IPv6 addresses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IPv4:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;1.1.1.1&lt;/li&gt;
  &lt;li&gt;1.0.0.1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;IPv6:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;2606:4700:4700:: 1111&lt;/li&gt;
  &lt;li&gt;2606:4700:4700:: 1001&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once complete, your DNS requests will be sent to Cloudflare DNS. To enable DNS over HTTPS, refer to the &lt;a href=&quot;https://developers.cloudflare.com/1.1.1.1/dns-over-https/&quot;&gt;Cloudflare DNS documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Cloudflare and APNIC state they were motivated to create a public DNS by their shared mission to “help build a better Internet”. This is certainly an admirable cause, although it is fair to state that Cloudflare could be accused of being biased (supporting their own network). As a result, it is great to see they are willing to be independently audited.&lt;/p&gt;

&lt;p&gt;Although Cloudflare DNS was officially launched today, I did have some early access and can confirm it is working as designed. As a result, Cloudflare DNS is now my primary DNS provider.&lt;/p&gt;

&lt;p&gt;More information about Cloudflare DNS can be found in the &lt;a href=&quot;https://blog.cloudflare.com/announcing-1111/&quot;&gt;announcement blog post&lt;/a&gt; and by accessing &lt;a href=&quot;https://1.1.1.1&quot;&gt;1.1.1.1&lt;/a&gt; directly.&lt;/p&gt;
</description>
        <pubDate>Sun, 01 Apr 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/04/01/Cloudflare-DNS/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/04/01/Cloudflare-DNS/</guid>
      </item>
    
      <item>
        <title>Ryze Tello Development</title>
        <description>&lt;p&gt;Earlier this month I purchased the &lt;a href=&quot;https://www.ryzerobotics.com/tello&quot;&gt;Ryze Tello&lt;/a&gt;, which is low-cost drone (£99) that includes DJI Flight Technology and an Intel Image Processor for photos and video.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/tello01.jpg&quot; alt=&quot;Ryze Tello&quot; title=&quot;Ryze Tello&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have previously used the &lt;a href=&quot;https://www.dji.com/mavic&quot;&gt;DJI Mavic Pro&lt;/a&gt;, which is a serious drone, at a serious price (£899). Although the Tello is obviously no match for the Mavic Pro, it definitely punches above its weight (and price).&lt;/p&gt;

&lt;p&gt;The Tello is incredibly small, very well built and boasts an impressive specification. If you are familiar with DJI drones, the Tello looks like a smaller version of the &lt;a href=&quot;https://www.dji.com/spark&quot;&gt;DJI Spark&lt;/a&gt; (£449), with similar build quality.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/tello02.jpg&quot; alt=&quot;Ryze Tello&quot; title=&quot;Ryze Tello&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The full specification of the Tello can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Weight:&lt;/strong&gt; 80g&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dimensions:&lt;/strong&gt; 98×92.5×41mm&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Propellers:&lt;/strong&gt; 3inches&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Functions:&lt;/strong&gt; Range Finder, Barometer, Vision System, Wi-Fi&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Camera:&lt;/strong&gt; 5MP (2592x1936), 720p 30FPS&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Battery:&lt;/strong&gt; 1.1Ah/3.8V&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Flight Distance:&lt;/strong&gt; 100m&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Flight Speed:&lt;/strong&gt; 8m/s&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Flight Time:&lt;/strong&gt; 13min&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Flight Height:&lt;/strong&gt; 10m&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Considering the price, the Tello includes an impressive number of features, which are usually reserved for high-end drones:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://itunes.apple.com/us/app/tello/id1330559633?mt=8&quot;&gt;iOS&lt;/a&gt;/&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.ryzerobotics.tello&amp;amp;hl=en_GB&quot;&gt;Android&lt;/a&gt; App&lt;/li&gt;
  &lt;li&gt;Bluetooth Controller Compatibility&lt;/li&gt;
  &lt;li&gt;VR Headset Compatibility&lt;/li&gt;
  &lt;li&gt;Electronic Image Stabilisation Video&lt;/li&gt;
  &lt;li&gt;Auto Takeoff/Landing&lt;/li&gt;
  &lt;li&gt;Low Battery Protection&lt;/li&gt;
  &lt;li&gt;Failsafe Protection (Auto Land)&lt;/li&gt;
  &lt;li&gt;Collision Detection&lt;/li&gt;
  &lt;li&gt;Vision Positioning System (Stabilisation)&lt;/li&gt;
  &lt;li&gt;Auto Flight Modes (Throw and Go, 8D Flips)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Tello is great fun to fly and thanks to the Vision Positioning System, is incredibly stable for a drone for its size (either inside or outside).&lt;/p&gt;

&lt;p&gt;It also supports &lt;a href=&quot;https://scratch.mit.edu&quot;&gt;Scratch&lt;/a&gt;, which is an MIT-developed visual coding system that aims to help anyone learn the basics of programming.&lt;/p&gt;

&lt;p&gt;Programming autonomous routines for the Tello is great fun, however, does require some setup.&lt;/p&gt;

&lt;h3 id=&quot;getting-started-with-scratch-development&quot;&gt;Getting Started with Scratch Development&lt;/h3&gt;

&lt;p&gt;These instructions were written for macOS, but should also work for Windows.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://get.adobe.com/air/&quot;&gt;Download&lt;/a&gt; and install Adobe Air.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://scratch.mit.edu/download&quot;&gt;Download&lt;/a&gt; and install the Scratch 2.0 Offline Editor.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/&quot;&gt;Download&lt;/a&gt; an install node.js.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://dl-cdn.ryzerobotics.com/downloads/tello/20180222/Scratch.zip&quot;&gt;Download&lt;/a&gt; and unzip the “Tello.js” and “Tello.s2e” configuration files.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Open “Terminal” (or Command Prompt), navigate to the folder location that includes the “Tello.js” file and run the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;node Tello.js&lt;/code&gt;.&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/images/posts/tello03.jpg&quot; alt=&quot;Ryze Tello&quot; title=&quot;Ryze Tello&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Open Scratch and whilst holding the “Shift” key, click “File &amp;gt; Import Experimental HTTP Extension”. Select the previously downloaded “Tello.s2e” file.&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/images/posts/tello04.jpg&quot; alt=&quot;Ryze Tello&quot; title=&quot;Ryze Tello&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;All Tello development blocks will be found under “More Blocks”.&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/images/posts/tello05.jpg&quot; alt=&quot;Ryze Tello&quot; title=&quot;Ryze Tello&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Connect to your Tello via Wifi, similar to what you would do with your iOS or Android device.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You are now ready to run your program, using an event (when space key pressed) programmed in Scratch.&lt;/p&gt;
</description>
        <pubDate>Fri, 23 Mar 2018 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2018/03/23/Ryze-Tello-Development/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/03/23/Ryze-Tello-Development/</guid>
      </item>
    
      <item>
        <title>The Healthcare Reality</title>
        <description>&lt;p&gt;In 2014, I wrote the article “&lt;a href=&quot;/2014/12/30/the-healthcare-revolution/&quot;&gt;The Healthcare Revolution&lt;/a&gt;”, which outlined my vision for the future of healthcare.&lt;/p&gt;

&lt;p&gt;In this article (four years later), I will review the key technologies, looking to understand if they have become a consumer reality.&lt;/p&gt;

&lt;h3 id=&quot;vision-vs-reality&quot;&gt;Vision vs Reality&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;“The floor measures your weight, body composition, including the percentage of bone mass, fat mass, muscle mass, and water mass, in addition to heart rate and pulse wave velocity (arterial stiffness).”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Although not yet embedded into your bathroom floor, the &lt;a href=&quot;https://health.nokia.com/uk/en/body-cardio&quot;&gt;Nokia Body Cardio&lt;/a&gt;, which can be purchased for £149.95, is a consumer product that measures Weight, Fat Mass, Muscle Mass, Water Mass, Bone Mass and Heart Rate. It can also automatically detect multiple users.&lt;/p&gt;

&lt;p&gt;Paired with the &lt;a href=&quot;https://health.nokia.com/uk/en/blood-pressure-monitor&quot;&gt;Nokia BPM+&lt;/a&gt; and &lt;a href=&quot;https://health.nokia.com/uk/en/sleep&quot;&gt;Nokia Sleep&lt;/a&gt; (coming soon), you have Blood Pressure and Sleep Quality (covering Heart Rate and Breathing).&lt;/p&gt;

&lt;p&gt;This data can be easily complemented by more traditional health tracking mechanisms, such as a Fitness Tracker (e.g. FitBit) and/or SmartWatch (e.g. Apple Watch).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“You then use the toilet, providing instant analysis of your urine, which is screened for disease and infection.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Home urine tests do exist, however, I haven’t seen anyone attempt to make this process “appealing” to consumers.&lt;/p&gt;

&lt;p&gt;However, &lt;a href=&quot;https://thriva.co/&quot;&gt;Thriva&lt;/a&gt;, a UK startup, have launched a consumer blood analysis service (costing between £24.00 and £69.00), which can provide a comprehensive picture of your overview health, including Cholesterol, Liver Function, Vitamin D, Iron Profile, B12, Diabetes, and Folate.&lt;/p&gt;

&lt;p&gt;I have not personally used the service, but early reviews highlight that the process is quick and simple, whilst leveraging pre-existing, heavily validated and CE accredited partners and equipment (helping to ensure safety, quality, and privacy).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Next, you shower, where a full body analysis is completed. For example, mole mapping via digital photo-dermoscopy surveillance.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, I am not aware of any consumer-grade digital photo-dermoscopy surveillance services, which still require specialist equipment and expertise. However, you can only assume that as consumer cameras become increasingly sophisticated and widely available, that this type of service will become a possibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“You then brush your teeth, where your saliva is analysed to identify markers of endocrine, immunologic, inflammatory and infectious conditions.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In 2017, a number of companies released smart toothbrushes, including established dental hygiene companies such as &lt;a href=&quot;https://www.oralb.co.uk/en-gb/products/electric-toothbrushes/oral-b-genius&quot;&gt;Oral-B&lt;/a&gt; and &lt;a href=&quot;https://www.colgate.com/en-us/products/toothbrush/e1&quot;&gt;Colgate&lt;/a&gt;, as well as startups such as &lt;a href=&quot;https://www.playbrush.com/&quot;&gt;Playbrush&lt;/a&gt;. However, the primary focus is improved dental hygiene through more effective cleaning, not health screening.&lt;/p&gt;

&lt;p&gt;With that said, when reviewed alongside consumer genetic testing services (such as &lt;a href=&quot;http://23andme.com&quot;&gt;23andMe&lt;/a&gt;), which can identify genetic markers related to specific health conditions, it is easy to see how these technologies could be combined to provide a more holistic and continuous health service.&lt;/p&gt;

&lt;p&gt;Today, genetic testing services are a one-time process, focused on DNA, however, the end-to-end procedure of collecting saliva and screening the results is certainly transferable, which, if automated as part of a daily activity could enable the type of outcomes highlighted in the vision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“While brushing your teeth, your eyes are checked by your mirror, via retinal-scan analysis.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://verily.com&quot;&gt;Verily&lt;/a&gt;, a Google subsidiary, recently announced the ability to analyse the fundus (rear interior wall of the eye), enabling them to deduce an individual’s age, blood pressure, and whether or not they smoke. This data can then be used to predict health issues, such as the risk of suffering a cardiac event.&lt;/p&gt;

&lt;p&gt;Although likely many years away from a consumer service, the technology is clearly maturing and could feasibly be integrated into a smart mirror.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“All of this data is securely and privately stored in the cloud, where your virtual assistant can analyse the results and provide recommendations.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At CES 2018, virtual assistants such as Amazon Alexa and Google Assistant hit the prime time, being integrated into many different products. Apple has also entered the market with the &lt;a href=&quot;https://www.apple.com/uk/homepod/&quot;&gt;HomePod&lt;/a&gt;, however, it currently lacks the mature, open eco-system of Amazon Alexa and Google Assistant.&lt;/p&gt;

&lt;p&gt;I can easily see these virtual assistants becoming commonplace at home and work, acting as the central point for a wide range of services (including health). A key limitation will be security and privacy, which can hopefully be overcome through voice authentication and tight integration with other smart devices (smartphones, tablets, etc.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Automatically prescribe and order the required medication. If the condition is unknown or non-critical, but requires consultancy, your virtual assistant will schedule a telemedicine meeting with your defined health care professional.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2018/03/05/babylon-health/&quot;&gt;I recently experienced Babylon Health&lt;/a&gt;, a UK start-up focused on artificial intelligence, virtual consultations, and prescriptions. Their AI-powered chatbot already acts as an autonomous triage service and is being trialed by the NHS as an alternative to the “111” telephone helpline. However, their vision is to enable full diagnosis without any human intervention. As a result, Combining the AI-powered chatbot with a virtual assistant could be incredibly powerful.&lt;/p&gt;

&lt;p&gt;Babylon Health can also already deliver prescriptions electronically, which, if integrated with &lt;a href=&quot;https://primenow.amazon.co.uk&quot;&gt;Amazon Prime Now&lt;/a&gt;, could completely remove the need for the patient to leave their home, allowing them to focus on getting better.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“If the condition is known and requires immediate attention, an Uber will be requested with an “SOS” flag.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Uber &lt;a href=&quot;https://www.uber.com/newsroom/uber-health/&quot;&gt;recently announced Uber Health&lt;/a&gt;, which will partner with healthcare organisations to provide reliable, comfortable transportation for patients.&lt;/p&gt;

&lt;p&gt;This new service is almost exactly what I had predicted and is already available across 100+ healthcare organisations in the US.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, many of the technologies I outlined in 2014 are now commonplace, some are delivered as consumer products (e.g. &lt;a href=&quot;https://health.nokia.com/uk/en/body-cardio&quot;&gt;Nokia Body Cardio&lt;/a&gt;) and provide real-time output, while others are services (e.g. &lt;a href=&quot;https://thriva.co/&quot;&gt;Thriva&lt;/a&gt;) that still require a level of human engagement, resulting in longer lead-times.&lt;/p&gt;

&lt;p&gt;It is fair to say that none of the technologies have been tightly integrated into home life and very few successfully provide meaningful insights from the data they collect. However, I predict these areas will improve quickly as each technology becomes a commodity and new open ecosystems start to emerge.&lt;/p&gt;
</description>
        <pubDate>Fri, 09 Mar 2018 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2018/03/09/The-Healthcare-Reality/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/03/09/The-Healthcare-Reality/</guid>
      </item>
    
      <item>
        <title>Regulatory Change</title>
        <description>&lt;p&gt;I was recently a guest speaker as part of an industry &lt;a href=&quot;https://vimeo.com/258624114&quot;&gt;webinar&lt;/a&gt; on regulatory change.&lt;/p&gt;

&lt;p&gt;The webinar was triggered by the impending &lt;a href=&quot;https://www.eugdpr.org&quot;&gt;General Data Protection Regulation (GDPR)&lt;/a&gt; enforcement date (25-MAY-2018), which is considered to be the most significant change to data privacy in past twenty years.&lt;/p&gt;

&lt;p&gt;The webinar itself did not specifically focus on GDPR, but used it as an example of why companies must evolve and become comfortable operating in a state of continuous change.&lt;/p&gt;

&lt;p&gt;My section covered architecture, where I shared our methodology and technology foundation, which aims to provide us with increased flexibility, agility and inherently embed privacy, security, and quality.&lt;/p&gt;

&lt;p&gt;The full webinar description is outlined below:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Regulatory change is one of the few constants in the pharmaceutical industry and with market forces pushing pharmaceutical companies “beyond the pill”, the stakes have never been higher.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Join Mavens for a webinar focused on how we are helping pharmaceutical organisations shift their perspective from viewing regulatory as a barrier to viewing regulatory as a potential competitive advantage.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Learn how we are helping clients like Eli Lilly rearchitect their business processes and information systems to meet the demands of the next GDPR; getting them to market faster with compliant digital solutions that build user trust and deliver amazing value.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The webinar is 55 minutes and my section starts at 29:30.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://vimeo.com/258624114&quot;&gt;&lt;img src=&quot;/images/posts/regulatorychange01.jpg&quot; alt=&quot;Regulatory Change&quot; title=&quot;Regulatory Change&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you would like more information regarding the content that I shared, please refer to the blog posts “&lt;a href=&quot;/2016/01/05/Enterprise-IT-Architecture/&quot;&gt;Enterprise IT Architecture&lt;/a&gt;”, “&lt;a href=&quot;/2016/02/21/EA-Principles/&quot;&gt;Principles&lt;/a&gt;”, “&lt;a href=&quot;/2016/04/03/EA-Positioning/&quot;&gt;Positioning and Patterns&lt;/a&gt;”.&lt;/p&gt;
</description>
        <pubDate>Tue, 06 Mar 2018 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2018/03/06/Regulatory-Change/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/03/06/Regulatory-Change/</guid>
      </item>
    
      <item>
        <title>Babylon Health</title>
        <description>&lt;p&gt;The average wait time for a GP appointment in the UK is 13 days and unfortunately, the trend is only getting worse, with a 30% annual increase between 2016 and 2017.&lt;/p&gt;

&lt;p&gt;Predicting illness is still unreliable, therefore when you are taken ill, you are already operating reactively, fighting to get better. In the majority of non-serious cases, you are advised to only speak to a GP if your symptoms do not improve after one week. At which point, a GP consultation is important to rule out anything more serious and (if required) be prescribed medication.&lt;/p&gt;

&lt;p&gt;However, knowing that a GP appointment can take up to 13 days, you may actually end up suffering for several more weeks. This issue is compounded by the fact that the successful treatment of more serious conditions is often time sensitive.&lt;/p&gt;

&lt;h3 id=&quot;babylon-health&quot;&gt;Babylon Health&lt;/h3&gt;

&lt;p&gt;I was recently a little unwell, which resulted in me needing a GP appointment. I decided to make the appointment on Saturday evening, after feeling that my symptoms were not improving. However, my local GP only operates between 08:00 and 17:00 weekdays, therefore I would need to wait until the following Monday morning to make the phone call. At which point, I would join the GP appointment lottery.&lt;/p&gt;

&lt;p&gt;However, I decided to try a different option…&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.babylonhealth.com&quot;&gt;Babylon Health&lt;/a&gt; is a health service provider (founded in 2013) that enables users to have virtual consultations with doctors and health care professionals via text and video messaging through its mobile app. It also supports drug prescriptions, referrals to health specialists, and health exams leveraging local facilities.&lt;/p&gt;

&lt;p&gt;Babylon Health has also invested heavily in Artificial Intelligence (AI), starting with a chatbot that can act as an autonomous triage service, with the goal to eventually offer a full diagnosis.&lt;/p&gt;

&lt;p&gt;The AI-powered chatbot is already gaining credibility, resulting in a number of health authorities looking to partner with Babylon Health. For example, the NHS is already exploring the technology as an alternative to the “111” telephone helpline, which patients call to get healthcare advice and out-of-hours medical services.&lt;/p&gt;

&lt;h3 id=&quot;my-experience&quot;&gt;My Experience&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;NOTE: I have been researching Babylon Health for several years, but had never actually used the service. Therefore, I already had a verified account and the app downloaded on my iPhone.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At 19:06 on Saturday evening, I launched the Babylon app, where I was immediately greeted by the AI-powered chatbot. It politely asked me to complete nine questions, prior to making the suggestion that I book a GP appointment (validating my own suspicion).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/babylonhealth01.jpg&quot; alt=&quot;Babylon App&quot; title=&quot;Babylon App&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This outcome automatically triggered the “book an appointment” form, which provides the option to select a time and (if required) add some notes, as well as images. At this point, the time was 19:12 and the next appointment was 19:20.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/babylonhealth02.jpg&quot; alt=&quot;Babylon App&quot; title=&quot;Babylon App&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As soon as I booked the appointment, I received an onscreen confirmation (and e-mail), which included details about the GP, specifically her photo, location and medical background. The actual booking experience can be compared to booking an Uber, very intuitive.&lt;/p&gt;

&lt;p&gt;At 19:20, my iPhone started to ring, asking me to join a video conference via the Babylon app. The GP introduced herself and had already reviewed my notes. The conversation lasted approximately 8 minutes and felt just like Apple’s FaceTime, with picture-in-picture video.&lt;/p&gt;

&lt;p&gt;The conclusion of the appointment was a prescription for antibiotics. By 19:30, I had a message in my Babylon app, asking me to confirm my prescription details and provide a pick-up location. It used the iPhone GPS to locate my nearest pharmacy (Tesco) and informed me that the prescription would be ready within the hour.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/babylonhealth03.jpg&quot; alt=&quot;Babylon App&quot; title=&quot;Babylon App&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At 20:30, I had taken my first dose of antibiotics, less than 1hour 30mins after deciding to book the GP appointment!&lt;/p&gt;

&lt;p&gt;I was also able to review all of the GP notes, a full video recording of our conversation and the prescription (including dosage information) instantly from within the app.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;1hour 30mins compared to anything from 3 to 13 days!&lt;/p&gt;

&lt;p&gt;Overall, I have been incredibly impressed with Babylon Health. It successfully transformed a frustrating, old-fashioned and time-consuming process, into a seamless, modern and almost instant experience.&lt;/p&gt;

&lt;p&gt;As a result, I would highly recommend Babylon Health to anyone. It is important to note that there is a &lt;a href=&quot;https://www.babylonhealth.com/pricing&quot;&gt;cost&lt;/a&gt; (£50 per year for unlimited appointments), however, they are partnering with the NHS to trial free services for people living or working in London.&lt;/p&gt;

&lt;p&gt;I truly believe I have experienced the future of GP interactions, which I suspect will only get better as the technology continues to mature.&lt;/p&gt;
</description>
        <pubDate>Mon, 05 Mar 2018 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2018/03/05/Babylon-Health/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/03/05/Babylon-Health/</guid>
      </item>
    
      <item>
        <title>My Setup (2018)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Since writing this article I have made several hardware upgrades, specifically the &lt;a href=&quot;/2018/08/07/MacBook-Pro-2018/&quot;&gt;MacBook Pro&lt;/a&gt; (including Radeon Pro Vega graphics) and my &lt;a href=&quot;/2018/10/26/GeForce-RTX/&quot;&gt;custom-built PC&lt;/a&gt;. As a result, this article has been updated to reflect the changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;h3 id=&quot;home-setup&quot;&gt;Home Setup&lt;/h3&gt;

&lt;p&gt;At home, I switch between three devices. My daily driver is a 15-inch MacBook Pro with Retina Display (OCT-2018). It’s primarily used for productivity tasks, software development, and photo editing. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;15-inch MacBook Pro with Retina Display (OCT-2018)&lt;/li&gt;
  &lt;li&gt;2.9GHz 6-Core Intel i9 (Turbo up to 4.8GHz)&lt;/li&gt;
  &lt;li&gt;32GB 2400MHz DDR4 RAM&lt;/li&gt;
  &lt;li&gt;1TB PCIe SSD&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 630 and AMD Radeon Pro Vega 20 4GB HBM2&lt;/li&gt;
  &lt;li&gt;15.4-inch IPS Display (2880x1800, 220PPI)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also have a 13-inch Surface Pro 2, which is a secondary device and primarily used for work, allowing me to natively interact with the Windows eco-system. The Surface Book 2 is a nice device, with great build quality, but limited by the surprisingly poor storage performance (300MB/s sequential write) and lack of Thunderbolt 3. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;13-inch Surface Book 2&lt;/li&gt;
  &lt;li&gt;1.90GHz Quad-Core Intel i7-8650U (Turbo up to 4.2GHz)&lt;/li&gt;
  &lt;li&gt;16GB 1866MHz LPDDR3 RAM&lt;/li&gt;
  &lt;li&gt;512GB PCIe SSD (Samsung PM961)&lt;/li&gt;
  &lt;li&gt;Intel UHD Graphics 620 and NVIDIA GTX 1050 2GB GDDR5&lt;/li&gt;
  &lt;li&gt;13.5-inch PixelSense Display (3000x2000, 267PPI)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alongside my notebooks, I have a custom-built PC. The specification (listed below) is a couple of years old but still provides excellent overall performance. It is used for gaming (including VR), game development (&lt;a href=&quot;/2017/03/09/GameMaker-Studio-2/&quot;&gt;GameMaker Studio 2&lt;/a&gt;), video editing, after effects and virtual labs.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus Maximus VIII Hero Alpha (Intel Z170)&lt;/li&gt;
  &lt;li&gt;Intel Core i7-6700K 4.0GHz @ 4.6GHz&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;Corsair Vengeance LPX 32GB DDR4 PC4-24000C15 (15-17-17-35)&lt;/li&gt;
  &lt;li&gt;PNY GeForce RTX 2080 Ti 11GB XLR8 Gaming Overclocked Edition&lt;/li&gt;
  &lt;li&gt;Samsung 950 Pro 512GB M.2 PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
  &lt;li&gt;Bowers &amp;amp; Wilkins MM-1 Speakers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In total I have three displays, two 27-inch Dell U2718Q IPS HDR 4K monitors used for productivity and colour accurate work, as well as one 27-inch Dell 144Hz G-Sync monitor used for gaming. The exact model numbers are highlighted below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2x Dell U2718Q IPS HDR 4K (3840x2160 / 60Hz / 5ms / HDR10)&lt;/li&gt;
  &lt;li&gt;1x Dell S2716DG TN G-Sync (2560x1440 / 144Hz / 1ms)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is kept fairly minimal, with all monitors mounted on third-party stands to help maximise desk space.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup08.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, for input, I primarily use the &lt;a href=&quot;https://www.logitech.com/en-gb/product/craft&quot;&gt;Logitech Craft&lt;/a&gt; and &lt;a href=&quot;https://www.logitech.com/en-gb/product/mx-anywhere-2s-flow&quot;&gt;Logitech MX Anywhere 2S&lt;/a&gt;. These peripherals were selected as they include “Easy-Switch”, which makes it simple to toggle between multiple Bluetooth devices.&lt;/p&gt;

&lt;p&gt;The image below provides a closer look at the two Dell U2718Q IPS HDR 4K monitors and peripherals.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup09.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The far end of the desk provides access to the Dell S2716DG G-Sync monitor, which can be pushed flush against the wall. You can also see the Bowers &amp;amp; Wilkins MM-1 Speakers, which are connected to the PC and Mac. The flat desk edge provides a clean surface for additional peripherals, such as my flight controller (&lt;a href=&quot;https://www.flightsim.com/vbfs/content.php?16051-Review-Saitek-X-55-Rhino-HOTAS-System&quot;&gt;Saitek X-55&lt;/a&gt;) and steering wheel (&lt;a href=&quot;http://gaming.logitech.com/en-gb/product/g29-driving-force&quot;&gt;Logitech G29&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;As highlighted in the image below, the PC is hidden under the desk, with the case door exposed providing easy access to the components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup10.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk itself and matching pedestal is from &lt;a href=&quot;https://www.tcofficefurniture.co.uk&quot;&gt;Three Counties Office Furniture&lt;/a&gt;. They are both designed for corporate use, therefore are hard-wearing and include integrated cable management.&lt;/p&gt;

&lt;p&gt;Finally, I use a &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/multi-use-guest-chairs/setu-chair.html&quot;&gt;Herman Miller Setu&lt;/a&gt; chair, which includes the Kinematic Spine to control resistance and automatically support your weight as you recline.&lt;/p&gt;

&lt;h3 id=&quot;work-setup&quot;&gt;Work Setup&lt;/h3&gt;

&lt;p&gt;At work, I use the 15-inch MacBook Pro and 13-inch Surface Book 2 (depending on the workload). The MacBook Pro connects to two 27-inch LG UltraFine 5K Monitors, offering an impressive 5120x2880 resolution and P3 wide colour gamut.&lt;/p&gt;

&lt;p&gt;The Surface Book 2 is generally used independently, as Windows support for high-DPI scaling and wide colour gamut remains frustratingly poor.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/officesetup02.jpg&quot; alt=&quot;Office Setup&quot; title=&quot;Office Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk is electric height adjustable and therefore can be used from a seated or standing position. Similar to home, it is kept very minimal.&lt;/p&gt;

&lt;p&gt;I also use a Herman Miller chair at work, however, due to the long hours, it is the more robust &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/performance-work-chairs/mirra-2-chairs.html&quot;&gt;Mirra 2&lt;/a&gt;. This chair includes a phenomenal amount of adjustment, ensuring all-day comfort.&lt;/p&gt;
</description>
        <pubDate>Fri, 16 Feb 2018 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2018/02/16/My-Setup-2018/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/02/16/My-Setup-2018/</guid>
      </item>
    
      <item>
        <title>The Linux Foundation</title>
        <description>&lt;p&gt;In recent months, my team and I have been working closely with the &lt;a href=&quot;http://www.linuxfoundation.org&quot;&gt;Linux Foundation&lt;/a&gt;, specifically the &lt;a href=&quot;https://www.hyperledger.org&quot;&gt;Hyperledger Project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Our focus has been on a multi-party business process that tracks a list of reagents, solvents, and excipients in a GMP sequence from the starting materials to the drug product. The current process is inefficient, lacks transparency and is cost prohibitive, due to legacy license-based technologies. Therefore, we have been exploring Blockchain as a technology to help overcome these existing challenges.&lt;/p&gt;

&lt;p&gt;Specifically, we have been testing our use case against technologies such as &lt;a href=&quot;https://www.hyperledger.org/projects/fabric&quot;&gt;Hyperledger Fabric&lt;/a&gt; and &lt;a href=&quot;https://www.hyperledger.org/projects/sawtooth&quot;&gt;Hyperledger Sawtooth&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We chose to work with the Linux Foundation to reinforce our commitment to open source, access their broad and influential ecosystem, as well leverage their expertise and experience.&lt;/p&gt;

&lt;p&gt;Today, as a direct result of this work, we officially become a member of the Linux Foundation and the first pharmaceutical company to join the Hyperledger Project.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Eli Lilly and Company is a global healthcare leader that discovers and develops medicines to help people live longer, healthier, more active lives,”&lt;/em&gt; said Mike Meadows, CTO, Eli Lilly &amp;amp; Company. &lt;em&gt;“We believe healthcare is on the verge of a technology revolution. As a result, we are excited to join The Linux Foundation and Hyperledger, reinforcing our commitment to the open-source community and partnering on the potential for blockchain technologies within healthcare.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Additional details regarding the membership can be found in the full &lt;a href=&quot;https://www.linuxfoundation.org/press-release/hyperledger-kicks-off-2018-27-new-members/&quot;&gt;Linux Foundation Press Release&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Due to the sensitivity of the use case, I am unable to share additional details at this time. However, we are keen to contribute to the open source community, therefore plan to share our technical experiences, feedback, and recommendations on Hyperledger over the coming months.&lt;/p&gt;
</description>
        <pubDate>Thu, 25 Jan 2018 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2018/01/25/The-Linux-Foundation/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/01/25/The-Linux-Foundation/</guid>
      </item>
    
      <item>
        <title>Jekyll PWA</title>
        <description>&lt;p&gt;I have previously written about &lt;a href=&quot;/2017/07/27/Progressive-Web-Apps/&quot;&gt;Progressive Web Apps (PWA)&lt;/a&gt;, which aim to combine the flexibility of the web, with the rich user experience of native apps.&lt;/p&gt;

&lt;p&gt;LifeinTECH leverages the &lt;a href=&quot;/2017/12/20/jamstack/&quot;&gt;JAMstack&lt;/a&gt; web architecture, which promotes the use of JavaScript, APIs, and Markup. The goal is to remove the server-side runtime and CMS dependencies, shifting the focus to the client and services.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/jamstack01.jpg&quot; alt=&quot;JAMstack&quot; title=&quot;JAMstack&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The specific architecture components of LifeinTECH are outlined below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.docker.com&quot;&gt;Docker&lt;/a&gt; (Automated Build)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt; (Source Code Management)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt; (Static Site Generator)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jquery.com&quot;&gt;jQuery&lt;/a&gt; (JS Library)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://sass-lang.com&quot;&gt;Sass&lt;/a&gt; (CSS Preprocessor)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://disqus.com&quot;&gt;Disqus&lt;/a&gt; (Comments)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netlify.com&quot;&gt;Netlify&lt;/a&gt; (Web Host and CDN)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://letsencrypt.org&quot;&gt;Let’s Encrypt&lt;/a&gt; (Certificate Authority)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, Docker is used to run the &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt; build process, producing the static assets that are then pushed to &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt; and automatically deployed to &lt;a href=&quot;https://www.netlify.com&quot;&gt;Netlify&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To support my understanding of Progressive Web Apps, I set myself the challenge to upgrade LifeinTECH, aiming to achieve 100% compliance with the &lt;a href=&quot;https://developers.google.com/web/tools/lighthouse/&quot;&gt;Google Lighthouse&lt;/a&gt; PWA audit.&lt;/p&gt;

&lt;p&gt;Alongside the learning, I hope this upgrade will improve the end user experience of LifeinTECH, resulting in faster performance, offline access and native mobile features (push notifications, etc.)&lt;/p&gt;

&lt;p&gt;I have documented the process I followed below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE: Prior to any development, it is important to note that Progressive Web Apps require SSL. This was a primary driver for my recent migration to  &lt;a href=&quot;/2017/12/12/netlify/&quot;&gt;Netlify&lt;/a&gt;, which simplifies the use of &lt;a href=&quot;https://letsencrypt.org&quot;&gt;Let’s Encrypt&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;service-worker&quot;&gt;Service Worker&lt;/h3&gt;

&lt;p&gt;As my build process is currently fully automated, I wanted to ensure I reduced the need for any manual steps. As a result, I found an excellent “&lt;a href=&quot;https://github.com/lavas-project/jekyll-pwa&quot;&gt;Jekyll-PWA-Plugin&lt;/a&gt;” on GitHub, which installs as a &lt;a href=&quot;https://rubygems.org&quot;&gt;RubyGem&lt;/a&gt; and automatically generates a Service Worker that provides pre-cache and runtime cache using &lt;a href=&quot;https://developers.google.com/web/tools/workbox/&quot;&gt;Google Workbox&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The advantage of this plugin is that it has been designed to support the Jekyll workflow, therefore it can be easily configured to cache recent blog posts, etc.&lt;/p&gt;

&lt;p&gt;To install the plugin, simply add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;jekyll-pwa-plugin&lt;/code&gt; to your Gemfile. You may also need to update your “_config.yml”, as outlined below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;gems:
  - jekyll-paginate
  - jekyll/tagging
  - jekyll-pwa-plugin
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once complete, the following configuration needs to be added to the “_config.yml” file:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pwa:
  sw_filename: sw.js
  dest_js_directory: js
  cache_name: pwa-cache
  precache_recent_posts_num: 12
  precache_glob_directory: /
  precache_glob_patterns:
    - &quot;{js,css,fonts}/**/*.{js,css,woff,woff2}&quot;
    - /index.html
    - /about.html
  precache_glob_ignores:
    - sw-register.js
  runtime_cache:
    - route: /^api\/getdata/
  strategy: networkFirst
    - route: &quot;'/api/pic'&quot;
  strategy: cacheFirst
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This configuration prepares the Service Worker (sw.js), as well as copies the required “workbox-sw.prod.js” dependency into your JS directory.&lt;/p&gt;

&lt;p&gt;Key configuration items include the number of posts to cache (in my case twelve), as well as the &lt;a href=&quot;https://developers.google.com/web/tools/workbox/get-started/webpack#optional-config&quot;&gt;pre-cache glob pattern&lt;/a&gt;, where you can specify files, including images, etc.&lt;/p&gt;

&lt;p&gt;Once configured, it is as simple as running the build process, which will automatically produce three files: “workbox-sw.prod.js”, “sw-register.js” and “sw.js”.&lt;/p&gt;

&lt;p&gt;The “workbox-sw.prod.js” file will be located in your JS directory, while “sw-register.js” and “sw.js” will be located in your web root.&lt;/p&gt;

&lt;p&gt;The produced “sw-register.js” file is outlined below. You can essentially ignore this file, as the code is largely generic and simply registers the Service Worker.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('/sw.js?v=1518012075').then(function(reg) {
        reg.onupdatefound = function() {
            var installingWorker = reg.installing;
            installingWorker.onstatechange = function() {
                switch (installingWorker.state) {
                    case 'installed':
                        if (navigator.serviceWorker.controller) {
                            var event = document.createEvent('Event');
                            event.initEvent('sw.update', true, true);
                            window.dispatchEvent(event);
                        }
                        break;
                }
            };
        };
    }).catch(function(e) {
        console.error('Error during service worker registration:', e);
    });
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The “sw.js” file outlined below is more interesting, as it includes your custom configuration.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;importScripts('/js/workbox-sw.prod.v2.1.1.js');

const workboxSW = new WorkboxSW({
cacheId: 'pwa-cache',
ignoreUrlParametersMatching: [/^utm_/],
skipWaiting: true,
clientsClaim: true
});
workboxSW.precache([{&quot;url&quot;:&quot;/js/jquery.fitvids.min.js&quot;,&quot;revision&quot;:&quot;933ee1ba75e70b792d6d49d237cb620b&quot;},{&quot;url&quot;:&quot;/js/jquery.ghostHunter.min.js&quot;,&quot;revision&quot;:&quot;50ff499db8da8d530d813ff6f4f099ef&quot;},{&quot;url&quot;:&quot;/js/script.min.js&quot;,&quot;revision&quot;:&quot;f839794bc07ed5681695843c390e3f3f&quot;},{&quot;url&quot;:&quot;/js/evil-icons.min.js&quot;,&quot;revision&quot;:&quot;b77de0fe89ad34da6027b34963cb7c73&quot;},{&quot;url&quot;:&quot;/js/jquery-2.1.4.min.js&quot;,&quot;revision&quot;:&quot;f9c7afd05729f10f55b689f36bb20172&quot;},{&quot;url&quot;:&quot;/fonts/Born/Born.woff&quot;,&quot;revision&quot;:&quot;2d11011b3ebe66fbc7123e0f4e1a310a&quot;},{&quot;url&quot;:&quot;/index.html&quot;,&quot;revision&quot;:&quot;ccc8e26d2124603086b44a6fabfc00f6&quot;},{&quot;url&quot;:&quot;/2018/01/25/The-Linux-Foundation/&quot;,&quot;revision&quot;:&quot;aff5d2a51a3328e83d41379fa385851d&quot;},{&quot;url&quot;:&quot;/2018/01/19/UK-EA-Forum-Part-Four/&quot;,&quot;revision&quot;:&quot;05966de21a6763478073a83de9259105&quot;},{&quot;url&quot;:&quot;/2018/01/14/Meltdown-and-Spectre/&quot;,&quot;revision&quot;:&quot;ed58f70e47129c5339a965819d8eb1f9&quot;}]);
workboxSW.router.registerRoute(/^api\/getdata/,
workboxSW.strategies.networkFirst());

workboxSW.router.registerRoute('/api/pic',
workboxSW.strategies.cacheFirst());
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Here you can see the pre-cache, which for simplicity I have reduced to three blog posts. It includes the specific asset (article URL), as well as a hash value, which is used to ensure the cache remains current.&lt;/p&gt;

&lt;p&gt;Finally, the Service Worker triggers a custom event (sw.update), when it has finished updating. This provides a simple mechanism to notify active users of any changes (via a toast notification, etc.)&lt;/p&gt;

&lt;p&gt;This completes the Service Worker setup, however, you may need to spend some time tuning your cache, finding the right balance between user experience, performance, and storage.&lt;/p&gt;

&lt;h3 id=&quot;web-app-manifest&quot;&gt;Web App Manifest&lt;/h3&gt;

&lt;p&gt;The Web App Manifest is a simple JSON file (manifest.json), which is used to control how the app appears and how it is launched. The file itself is easy to create manually, however, you can also use a tool, such as the &lt;a href=&quot;https://tomitm.github.io/appmanifest/&quot;&gt;Web App Manifest Generator&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;{
  &quot;name&quot;: &quot;LifeinTECH&quot;,
  &quot;short_name&quot;: &quot;LifeinTECH&quot;,
  &quot;description&quot;: &quot;Technology and Development&quot;,
  &quot;lang&quot;: &quot;en-GB&quot;,
  &quot;start_url&quot;: &quot;/&quot;,
  &quot;display&quot;: &quot;standalone&quot;,
  &quot;orientation&quot;: &quot;any&quot;,
  &quot;theme_color&quot;: &quot;#fff&quot;,
  &quot;icons&quot;: [
    {
      &quot;src&quot;: &quot;images/icons/android-icon-36x36.png&quot;,
      &quot;sizes&quot;: &quot;36x36&quot;,
      &quot;type&quot;: &quot;image/png&quot;
    },
    {
      &quot;src&quot;: &quot;images/icons/android-icon-48x48.png&quot;,
      &quot;sizes&quot;: &quot;48x48&quot;,
      &quot;type&quot;: &quot;image/png&quot;
    },
    {
      &quot;src&quot;: &quot;images/icons/android-icon-72x72.png&quot;,
      &quot;sizes&quot;: &quot;72x72&quot;,
      &quot;type&quot;: &quot;image/png&quot;
    },
    {
      &quot;src&quot;: &quot;images/icons/android-icon-96x96.png&quot;,
      &quot;sizes&quot;: &quot;96x96&quot;,
      &quot;type&quot;: &quot;image/png&quot;
    },
    {
      &quot;src&quot;: &quot;images/icons/android-icon-144x144.png&quot;,
      &quot;sizes&quot;: &quot;144x144&quot;,
      &quot;type&quot;: &quot;image/png&quot;
    },
    {
      &quot;src&quot;: &quot;images/icons/android-icon-192x192.png&quot;,
      &quot;sizes&quot;: &quot;192x192&quot;,
      &quot;type&quot;: &quot;image/png&quot;
    },
    {
      &quot;src&quot;: &quot;images/icons/android-icon-512x512.png&quot;,
      &quot;sizes&quot;: &quot;512x512&quot;,
      &quot;type&quot;: &quot;image/png&quot;
    }
  ],
  &quot;background_color&quot;: &quot;#fff&quot;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Unfortunately, not every browser supports the Web App Manifest. As a result, some gaps need to be closed using traditional meta tags. Outlined below are the tags I included, as well as the link to the “manifest.json” file itself.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;link rel=&quot;manifest&quot; href=&quot;/manifest.json&quot;&amp;gt;

&amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, shrink-to-fit=no&quot;&amp;gt;
&amp;lt;meta name=&quot;mobile-web-app-capable&quot; content=&quot;yes&quot;&amp;gt;
&amp;lt;meta name=&quot;apple-mobile-web-app-capable&quot; content=&quot;yes&quot;&amp;gt;
&amp;lt;meta name=&quot;application-name&quot; content=&quot;LifeinTECH&quot;&amp;gt;
&amp;lt;meta name=&quot;apple-mobile-web-app-title&quot; content=&quot;LifeinTECH&quot;&amp;gt;
&amp;lt;meta name=&quot;theme-color&quot; content=&quot;#fff&quot;&amp;gt;
&amp;lt;meta name=&quot;msapplication-navbutton-color&quot; content=&quot;#fff&quot;&amp;gt;
&amp;lt;meta name=&quot;apple-mobile-web-app-status-bar-style&quot; content=&quot;black-translucent&quot;&amp;gt;
&amp;lt;meta name=&quot;msapplication-starturl&quot; content=&quot;/&quot;&amp;gt;

&amp;lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;180x180&quot; href=&quot;/images/icons/apple-icon-180x180.png&quot;&amp;gt;
&amp;lt;link rel=&quot;icon&quot; type=&quot;image/png&quot; sizes=&quot;512x512&quot;  href=&quot;/images/icons/android-icon-512x512.png&quot;&amp;gt;
&amp;lt;link rel=&quot;icon&quot; type=&quot;image/png&quot; sizes=&quot;16x16&quot; href=&quot;/images/icons/favicon-16x16.png&quot;&amp;gt;
&amp;lt;meta name=&quot;msapplication-TileColor&quot; content=&quot;#fff&quot;&amp;gt;
&amp;lt;meta name=&quot;msapplication-TileImage&quot; content=&quot;/images/icons/ms-icon-144x144.png&quot;&amp;gt;
&amp;lt;meta name=&quot;theme-color&quot; content=&quot;#fff&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
In the above example, I have not included multiple sizes for each icon. However, this might be advisable, depending on your target audience.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;That’s it! Once you have created and configured a Service Worker and Web App Manifest, you should be well positioned to support the key features of a Progressive Web App. This can be confirmed by running the &lt;a href=&quot;https://developers.google.com/web/tools/lighthouse/&quot;&gt;Google Lighthouse&lt;/a&gt; PWA audit from the &lt;a href=&quot;https://developer.chrome.com/devtools&quot;&gt;Chrome DevTools&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/lighthouse01.jpg&quot; alt=&quot;Lighthouse&quot; title=&quot;Lighthouse&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the results, LifeinTECH successfully passes the PWA audit, achieving 100% compliance. The Chrome DevTools also allow you to test and validate the individual improvements, such as performance, offline mode and push notifications, as well as interrogate the local storage.&lt;/p&gt;

&lt;p&gt;In my opinion, the local storage (specifically pre-cache) was the most complex part of the process, attempting to find the right balance between experience, performance, and storage. In the end, I managed to achieve a pre-cache state of approximately 5MB, covering the “home” and “about” pages, as well as the most recent twelve posts (including all images).&lt;/p&gt;
</description>
        <pubDate>Mon, 22 Jan 2018 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2018/01/22/Jekyll-PWA/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/01/22/Jekyll-PWA/</guid>
      </item>
    
      <item>
        <title>UK EA Forum - Part IV</title>
        <description>&lt;p&gt;The UK Enterprise Architecture Forum is an open community for IT Architects, which is coordinated and facilitated by the community (without vendor bias).&lt;/p&gt;

&lt;p&gt;The forum launched in early 2017 and meets once per quarter. As a result, we have had three previous meetings:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/03/31/UK-EA-Forum-Part-One/&quot;&gt;UK EA Forum - Part I&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/06/16/UK-EA-Forum-Part-Two/&quot;&gt;UK EA Forum - Part II&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/09/29/UK-EA-Forum-Part-Three/&quot;&gt;UK EA Forum - Part III&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today, we completed the fourth forum, where the following topics were discussed:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Digital Transformation&lt;/li&gt;
  &lt;li&gt;DevOps Roundtable&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.eugdpr.org&quot;&gt;General Data Protection Regulation (GDPR)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cdata.com/odata/&quot;&gt;CData&lt;/a&gt; - OData Enablement&lt;/li&gt;
  &lt;li&gt;Enterprise Blockchain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My notes from each topic can be found below.&lt;/p&gt;

&lt;h3 id=&quot;digital-transformation--devops-roundtable&quot;&gt;Digital Transformation &amp;amp; DevOps Roundtable&lt;/h3&gt;

&lt;p&gt;In 2017, “Digital Transformation” was a common buzzword, therefore the group spent some time discussing the topic and reviewing progress. There were certainly a lot of common themes (even across industries), with a focus on software development, automation, data insights and open-source technologies.&lt;/p&gt;

&lt;p&gt;This topic led nicely into a DevOps roundtable. When discussing DevOps, it is easy to focus on the tools, however the group was more interested in the culture, specifically education, adoption and barriers.&lt;/p&gt;

&lt;p&gt;I shared our journey, which has included a strong focus on education, through internal hackathons and the creation of a dedicated developer portal (known as LillyDev). The goal of LillyDev was to provide a central location for all content related to modern software development (including DevOps). We have found this to be a powerful way to structure the information, providing a consistent channel for self-education, as well as reinforcing our best practices.&lt;/p&gt;

&lt;p&gt;As you can see from the screenshot below, LillyDev is a “search first” experience, but also puts an emphasis on patterns and accelerators. This follows our Enterprise IT Architecture methodology, which I outlined in the article “&lt;a href=&quot;/2016/04/03/ea-positioning/&quot;&gt;EA Positioning&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum05.jpg&quot; alt=&quot;LillyDev&quot; title=&quot;LillyDev&quot; /&gt;&lt;/p&gt;

&lt;p&gt;LillyDev specifically targets a technical audience (primarily IT Architects and Software Developers), therefore it provides a lot of detail on each service, including developer standards, code snippets, etc. The screenshot below highlights the section focused on &lt;a href=&quot;https://heroku.com&quot;&gt;Heroku&lt;/a&gt;, with similar sections dedicated to complimentary platforms, backing services and tools.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum06.jpg&quot; alt=&quot;LillyDev&quot; title=&quot;LillyDev&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, a member of the forum presented their experience of &lt;a href=&quot;https://provartesting.com&quot;&gt;Provar&lt;/a&gt;, which is a code-free, integrated automation testing tool for Salesforce.com. The video below provides a brief overview Provar in action.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/3zFqdurcJFk?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;As a big Salesforce.com customer, I can relate to the challenges associated with automated testing on a multi-tenant platform. As a result, Provar certainly looks like an interesting solution that is worth further investigation.&lt;/p&gt;

&lt;h3 id=&quot;general-data-protection-regulation-gdpr&quot;&gt;General Data Protection Regulation (GDPR)&lt;/h3&gt;

&lt;p&gt;The morning concluded with an update on &lt;a href=&quot;http://www.eugdpr.org&quot;&gt;General Data Protection Regulation (GDPR)&lt;/a&gt;, which is arguably one of the most impactful changes to data privacy in the past two decades. With the enforcement date (25-MAY-2018) rapidly approaching, companies should be in the final phase of their planning to ensure compliance.&lt;/p&gt;

&lt;p&gt;It was great to see our hosts taking GDPR seriously, with clear messaging visible in the reception area.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum07.jpg&quot; alt=&quot;GDPR&quot; title=&quot;GDPR&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my opinion, companies operating in highly regulated industries should have a strong foundation to build from, however, this advantage might be reduced if the company has a large legacy portfolio or has grown through acquisition.&lt;/p&gt;

&lt;h3 id=&quot;cdata---odata-enablement&quot;&gt;CData - OData Enablement&lt;/h3&gt;

&lt;p&gt;Legacy data architecture is a common challenge for many companies, which often results in inertia and increased technology debt. As a result, a forum member shared their experience using the &lt;a href=&quot;https://www.cdata.com/apiserver/&quot;&gt;CData API Server&lt;/a&gt;, which provides a simple way to expose data through modern APIs and protocols, such as OData, JSON, REST, etc.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum08.jpg&quot; alt=&quot;CData&quot; title=&quot;CData&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In short, you connect any SQL or NoSQL database and the API Server instantly generates flexible, comprehensive, and fully documented APIs. This provides a simplified migration path for legacy architecture, allowing the original data store to be consumed by modern applications and services.&lt;/p&gt;

&lt;h3 id=&quot;enterprise-blockchain&quot;&gt;Enterprise Blockchain&lt;/h3&gt;

&lt;p&gt;To conclude the forum, I led a discussion on blockchain, providing an overview of our current positioning and strategic direction.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum09.jpg&quot; alt=&quot;Enterprise Blockchain&quot; title=&quot;Enterprise Blockchain&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The session covered (at a high-level) the content outlined in the four articles below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/09/28/Enterprise-Blockchain-Part-One/&quot;&gt;Enterprise Blockchain - Part One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/10/18/enterprise-blockchain-part-two/&quot;&gt;Enterprise Blockchain - Part Two&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/07/16/blockchain-playground/&quot;&gt;Blockchain Playground&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/10/23/blockchain-playground-ui/&quot;&gt;Blockchain Playground UI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, I shared our recent engagement with the &lt;a href=&quot;https://www.linuxfoundation.org&quot;&gt;Linux Foundation&lt;/a&gt;, specifically the &lt;a href=&quot;https://www.hyperledger.org&quot;&gt;Hyperledger Project&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Up to now, the UK Enterprise Architecture Forum has been coordinated via a &lt;a href=&quot;https://ukarchitecture.slack.com/&quot;&gt;Slack Team&lt;/a&gt;, however this channel was not readily accessible to everyone. As a result, we recently added a &lt;a href=&quot;https://www.linkedin.com/groups/13576113&quot;&gt;LinkedIn Group&lt;/a&gt;, which anyone is welcome to join (new requests will be reviewed weekly).&lt;/p&gt;

&lt;p&gt;The next UK Enterprise Architecture Forum is scheduled for May 2018.&lt;/p&gt;
</description>
        <pubDate>Fri, 19 Jan 2018 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2018/01/19/UK-EA-Forum-Part-Four/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/01/19/UK-EA-Forum-Part-Four/</guid>
      </item>
    
      <item>
        <title>Meltdown and Spectre</title>
        <description>&lt;p&gt;In early January, &lt;a href=&quot;https://googleprojectzero.blogspot.co.uk/2018/01/reading-privileged-memory-with-side.html&quot;&gt;Google Project Zero researchers publicly disclosed&lt;/a&gt; a pair of security vulnerabilities known as Meltdown and Spectre, which impact almost every system across the world.&lt;/p&gt;

&lt;p&gt;Meltdown and Spectre exploit vulnerabilities related to speculative execution in common processors (e.g. Intel Core Processors, etc.) The vulnerabilities affect the isolation between user applications and the operating system, and between different applications respectively.&lt;/p&gt;

&lt;p&gt;As a result, an attacker can gain access to data processed by the underlying hardware, potentially including passwords, etc. This is especially concerning in multi-tenant environments with shared virtualised / containerised infrastructure (e.g. Cloud), where it might be possible to access data from other customers.&lt;/p&gt;

&lt;p&gt;Although related, Meltdown and Spectre are separate vulnerabilities.&lt;/p&gt;

&lt;h3 id=&quot;meltdown&quot;&gt;Meltdown&lt;/h3&gt;

&lt;p&gt;Meltdown breaks the isolation between user applications and the operating system, allowing a rogue process to read all memory without prior authorisation.&lt;/p&gt;

&lt;p&gt;All Intel processors which implement out-of-order execution are likely affected by Meltdown, which essentially includes every processor since 1995 (excluding Intel Itanium and Intel Atom before 2013).&lt;/p&gt;

&lt;p&gt;The name “Meltdown” highlights the fact that the vulnerability “melts” the security boundaries that are usually enforced by the hardware.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://meltdownattack.com/meltdown.pdf&quot;&gt;Meltdown Whitepaper&lt;/a&gt; provides a detailed description of the vulnerability.&lt;/p&gt;

&lt;h3 id=&quot;spectre&quot;&gt;Spectre&lt;/h3&gt;

&lt;p&gt;Spectre breaks the isolation between different applications, allowing an attacker to manipulate a process into revealing its own data.&lt;/p&gt;

&lt;p&gt;Almost every system worldwide is affected by Spectre, including desktops, laptops, tablets, smartphones, servers and cloud infrastructure.&lt;/p&gt;

&lt;p&gt;The name “Spectre” describes the root cause, speculative execution.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://spectreattack.com/spectre.pdf&quot;&gt;Spectre Whitepaper&lt;/a&gt; provides a detailed description of the vulnerability.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In summary, Meltdown and Spectre both use side channels to obtain data from a protected memory location. They are both widespread and difficult to mitigate, as traditional anti-virus software cannot easily differentiate malicious intent from regular usage.&lt;/p&gt;

&lt;p&gt;It will likely take many weeks (maybe months) to fully mitigate Meltdown and Spectre, likely requiring a combination of operating system and firmware patches.&lt;/p&gt;

&lt;p&gt;There is also a risk that the patches will have an impact on end-user performance, as specific features will need to be modified and/or disabled. Unfortunately, the severity of the impact will likely be workload specific, therefore difficult to predict without testing.&lt;/p&gt;

&lt;p&gt;If you own a Mac or your PC that came pre-installed with Windows 10/S, you will likely receive the required patches automatically via your usual software update mechanism(s). However, if you are running older hardware or have a custom-built PC, you may need to manually download the patches from the hardware (e.g. Motherboard) manufacturers website.&lt;/p&gt;

&lt;p&gt;Finally, the easiest way to understand if your system is vulnerable (at least on Windows), is to download and run &lt;a href=&quot;https://www.grc.com/inspectre.htm&quot;&gt;InSpectre&lt;/a&gt;, which is a simple, but highly effective tool developed by security legend &lt;a href=&quot;https://en.wikipedia.org/wiki/Steve_Gibson_(computer_programmer)&quot;&gt;Steve Gibson&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As highlighted by the image below (my PC), InSpectre checks the status of the Meltdown and Spectre vulnerabilities, as well as evaluates the potential performance impact of the installed patches.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/inspectre.jpg&quot; alt=&quot;InSpectre&quot; title=&quot;InSpectre&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you are using a Windows PC, I would highly recommend you &lt;a href=&quot;https://www.grc.com/inspectre.htm&quot;&gt;download&lt;/a&gt; and run InSpectre now, followed by any required patches. If you are using a Mac, ensure you are running the latest operating system version (e.g. macOS High Sierra v10.13.3), which will include the latest mitigations, as provided by Apple.&lt;/p&gt;
</description>
        <pubDate>Sun, 14 Jan 2018 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2018/01/14/Meltdown-and-Spectre/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2018/01/14/Meltdown-and-Spectre/</guid>
      </item>
    
      <item>
        <title>JAMstack</title>
        <description>&lt;p&gt;In my previous article “&lt;a href=&quot;/2017/12/12/netlify/&quot;&gt;Netlify&lt;/a&gt;”, I described my migration journey from &lt;a href=&quot;https://pages.github.com&quot;&gt;GitHub Pages&lt;/a&gt; to &lt;a href=&quot;https://www.netlify.com&quot;&gt;Netlify&lt;/a&gt; for hosting. However, I also referenced a web architecture known as &lt;a href=&quot;https://jamstack.org&quot;&gt;JAMstack&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;JAMstack has been growing in popularity over the past year, but is a concept that I started exploring in early 2015, when I switched &lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt; to &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The key characteristics of the JAMstack web architecture are outlined below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;JavaScript:&lt;/strong&gt; Any dynamic programming during the request/response cycle is handled by JavaScript, running entirely on the client. This could be any frontend framework / library (e.g. &lt;a href=&quot;https://reactjs.org&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://angular.io&quot;&gt;Angular&lt;/a&gt;, &lt;a href=&quot;https://vuejs.org&quot;&gt;Vue&lt;/a&gt;) or even vanilla JavaScript.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;APIs:&lt;/strong&gt; All server-side processes or database actions are abstracted into reusable APIs, accessed over HTTP with JavaScript. These can be custom-built or leverage third-party services.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Markup:&lt;/strong&gt; Templated markup should be prebuilt at deploy time, usually using a site generator for content sites (e.g. &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;, &lt;a href=&quot;https://gohugo.io&quot;&gt;Hugo&lt;/a&gt;) or a build tool (e.g. &lt;a href=&quot;https://gulpjs.com&quot;&gt;Gulp&lt;/a&gt;, &lt;a href=&quot;https://gruntjs.com&quot;&gt;Grunt&lt;/a&gt;) for web apps.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, JAMstack provides an alternative to “traditional” web architecture, where there is a direct reliance on a sever-side runtime (e.g. &lt;a href=&quot;https://nodejs.org&quot;&gt;Node&lt;/a&gt;, &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt;) or a server-side CMS (e.g. &lt;a href=&quot;https://wordpress.org&quot;&gt;Wordpress&lt;/a&gt;, &lt;a href=&quot;https://www.drupal.org&quot;&gt;Drupal&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The diagram below outlines the differences between traditional web architecture and JAMstack web architecture.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/jamstack01.jpg&quot; alt=&quot;JAMstack&quot; title=&quot;JAMstack&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The key difference is the reduction in server-side complexity, removing the need for a tightly coupled Web Server and App Server, as well as the Database and/or Content Management System (CMS). Instead, the focus shifts to “client + services”, where the main web application can be distributed globally via a Content Delivery Network (CDN) and (where required) interacts with discrete services directly from the client via APIs.&lt;/p&gt;

&lt;p&gt;The JAMstack web architecture is made possible, thanks to the advancements in web browsers, which today are comparable to full operating systems (e.g. &lt;a href=&quot;https://www.chromium.org/chromium-os&quot;&gt;Chromium OS&lt;/a&gt;), capable of interacting with countless APIs and running complex applications client-side. This, alongside the rapid growth of JavaScript front-end development (e.g. React) and comprehensive build tools (e.g. Gulp), can make traditional web architecture obsolete for certain scenarios.&lt;/p&gt;

&lt;p&gt;The diagram below provides a deeper look at the JAMstack web architecture, highlighting the developer experience.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/jamstack02.jpg&quot; alt=&quot;JAMstack&quot; title=&quot;JAMstack&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Static site generators (e.g. Jekyll) and build tools (e.g. Gulp), provide a mechanism to automatically build web applications locally, producing a set of easy to cache static assets. These static assets can then be deployed via a simple “Git Push”, following a traditional Continuous Integration / Continuous Deployment methodology.&lt;/p&gt;

&lt;p&gt;The advantages of a JAMstack web architecture are outlined below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Performance:&lt;/strong&gt; Web applications are pre-built, delivered as static assets that are served over a CDN, which promotes caching and efficient Search Engine Optimisation (SEO). Traditional web applications are built server-side “on the fly” and often heavily reliant on database queries, which all impact performance.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; Static assets offer the highest level of security for web applications, due to the fact they do not require databases, plugins or execute dynamic code server-side. Any required server-side processes are abstracted into service APIs, called by the client, which significantly reduces the attack surface. Traditional web applications often require server-side plugins (e.g. Wordpress) to operate, which are extremely vulnerable and require continuous maintenance.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Automation:&lt;/strong&gt; Workflow is highly automated through the use of modern static site generators and build tools, with deployment occurring via a simple “Git Push”. This approach results in loose coupling and a clear separation of concerns, delivering a simplified development and debugging environment.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cost:&lt;/strong&gt; Static assets are simple to host, as they do not require complex server-side configuration. This simplicity ensures a highly competitive market and therefore very aggressive pricing (even free).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are still not convinced, linked below are few examples of web applications built using the JAMstack web architecture:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.smashingmagazine.com&quot;&gt;Smashing Magazine&lt;/a&gt;:&lt;/strong&gt; &lt;a href=&quot;https://gulpjs.com&quot;&gt;Gulp&lt;/a&gt;, &lt;a href=&quot;https://gohugo.io&quot;&gt;Hugo&lt;/a&gt;, &lt;a href=&quot;http://sass-lang.com&quot;&gt;Sass&lt;/a&gt;, &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt; and &lt;a href=&quot;https://www.netlify.com&quot;&gt;Netlify&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.sphero.com&quot;&gt;Sphero&lt;/a&gt;:&lt;/strong&gt; &lt;a href=&quot;https://gruntjs.com&quot;&gt;Grunt&lt;/a&gt;, &lt;a href=&quot;https://angular.io&quot;&gt;Angular&lt;/a&gt;, &lt;a href=&quot;http://sass-lang.com&quot;&gt;Sass&lt;/a&gt;, &lt;a href=&quot;https://www.contentful.com&quot;&gt;Contentful&lt;/a&gt;, &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt; and &lt;a href=&quot;https://www.netlify.com&quot;&gt;Netlify&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://community.algolia.com/marvel-search/&quot;&gt;MarvelSearch&lt;/a&gt;:&lt;/strong&gt; &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt;, &lt;a href=&quot;https://www.algolia.com/doc/paths/build-search-ui/&quot;&gt;InstantSearch&lt;/a&gt;, &lt;a href=&quot;https://pages.github.com&quot;&gt;GitHub Pages&lt;/a&gt; and &lt;a href=&quot;https://cloudinary.com&quot;&gt;Cloudinary&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://serverless.com&quot;&gt;Serverless Framework&lt;/a&gt;:&lt;/strong&gt; &lt;a href=&quot;https://webpack.js.org&quot;&gt;Webpack&lt;/a&gt;, &lt;a href=&quot;https://reactjs.org&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt;, &lt;a href=&quot;https://auth0.com&quot;&gt;Auth0&lt;/a&gt;, &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt; and &lt;a href=&quot;https://www.netlify.com&quot;&gt;Netlify&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;LifeinTECH is also a JAMstack web application, using the following technologies: &lt;a href=&quot;https://www.docker.com&quot;&gt;Docker&lt;/a&gt;, &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt;, &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;, &lt;a href=&quot;http://sass-lang.com&quot;&gt;Sass&lt;/a&gt;, &lt;a href=&quot;https://disqus.com&quot;&gt;Disqus&lt;/a&gt; and &lt;a href=&quot;https://www.netlify.com&quot;&gt;Netlify&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The image below from &lt;a href=&quot;https://developers.google.com/speed/&quot;&gt;Google PageSpeed Insights&lt;/a&gt;, highlights the performance of LifeinTECH and JAMstack.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/jamstack03.jpg&quot; alt=&quot;Google PageSpeed Insights&quot; title=&quot;Google PageSpeed Insights&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To learn more about the JAMstack web architecture, “&lt;a href=&quot;https://jamstack.org&quot;&gt;jamstack.org&lt;/a&gt;” has a wealth of &lt;a href=&quot;https://jamstack.org/best-practices/&quot;&gt;reference material&lt;/a&gt;, &lt;a href=&quot;https://jamstack.org/examples/&quot;&gt;examples&lt;/a&gt; and &lt;a href=&quot;https://jamstack.org/resources/&quot;&gt;developer resources&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Wed, 20 Dec 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/12/20/JAMstack/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/12/20/JAMstack/</guid>
      </item>
    
      <item>
        <title>Quantum Advantage</title>
        <description>&lt;p&gt;I first wrote about &lt;a href=&quot;/2015/12/10/quantum-computing/&quot;&gt;Quantum Computing&lt;/a&gt; in 2015, where I provided a high-level overview of the technology.&lt;/p&gt;

&lt;p&gt;This article will explore the technology in more detail, covering the types of quantum computer, hardware requirements, value proposition and the proposed commercial model.&lt;/p&gt;

&lt;h3 id=&quot;types-of-quantum-computer&quot;&gt;Types of Quantum Computer&lt;/h3&gt;

&lt;p&gt;Although other definitions are used, quantum computers can be split into three types.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Quantum Annealer&lt;/strong&gt;: A quantum computer which uses quantum effects to solve specific problems. In January, &lt;a href=&quot;https://www.dwavesys.com/&quot;&gt;D-Wave&lt;/a&gt; released the D-Wave 2000Q, which is a commercial quantum annealer used by Google and NASA. Due to the inherent limitations of a Quantum Annealer, the true performance benefits remain unknown.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Approximate Quantum Computer&lt;/strong&gt;: A quantum computer that does not have fault tolerance and therefore requires algorithms that tolerate errors. It also has limited coherence, resulting in a short period of quantum functionality. In November, &lt;a href=&quot;https://www.research.ibm.com/ibm-q/&quot;&gt;IBM&lt;/a&gt; revealed their first 50 Qubit approximate quantum computer.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Universal Quantum Computer&lt;/strong&gt;: A quantum computer that includes fault tolerance (automatically fixes errors) and has unlimited coherence (will not revert back to standard computing performance). Due to the significant overhead required to achieve fault tolerance and complexities regarding coherence, no universal quantum computer exists today.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It should be noted that a quantum annealer can only run a limited range of quantum algorithms, therefore it is not directly comparable to a universal quantum computer.&lt;/p&gt;

&lt;h3 id=&quot;hardware-requirements&quot;&gt;Hardware Requirements&lt;/h3&gt;

&lt;p&gt;Quantum computers are incredibly sensitive, meaning they must be hosted in a highly controlled environment.&lt;/p&gt;

&lt;p&gt;The collection of pipes and cables in the photo below make up the new 50 qubit quantum computer from IBM.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/quantumcomputer01.jpg&quot; alt=&quot;Quantum Computer&quot; title=&quot;Quantum Computer&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Through the use of Helium-3 and Helium-4, each level of the quantum computer is cooled from 40Kelvin, down to 0.015Kelvin. To put this into perspective, that is -273.15 Celsius, which is colder than space.&lt;/p&gt;

&lt;p&gt;At the bottom of the quantum computer is a small steel cylinder, which is where the processor is installed. The image below is an IBM qubit processor, where you can see six superconducting qubits and the corresponding resonators.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/quantumcomputer03.jpg&quot; alt=&quot;Quantum Computer&quot; title=&quot;Quantum Computer&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The processor itself is mounted in a circuit board, which is protected from the environment via multiple shields.&lt;/p&gt;

&lt;h3 id=&quot;value-proposition&quot;&gt;Value Proposition&lt;/h3&gt;

&lt;p&gt;Quantum computing is not a “silver bullet”. A quantum computer has the potential to solve problems that were previously considered impossible. However, in the majority of cases, a classical computer would still be the best choice.&lt;/p&gt;

&lt;p&gt;Highlighted below are three areas where quantum computing could have a significant impact.&lt;/p&gt;

&lt;h4 id=&quot;artificial-intelligence-ai&quot;&gt;Artificial Intelligence (AI)&lt;/h4&gt;

&lt;p&gt;A quantum computer could be used to analyse large quantities of data more efficiently, as they have the ability to manipulate vast arrays of data in a single step, providing better feedback and performance.&lt;/p&gt;

&lt;p&gt;Additionally, Artificial Intelligence desires exponential growth, which is directly supported by the exponential nature of quantum computing. For example, self-replicating Artificial Intelligence (e.g. &lt;a href=&quot;https://cloud.google.com/automl/&quot;&gt;Google AutoML&lt;/a&gt;) could theoretically scale with hardware advances to create complex algorithms that directly harness the power of quantum computing.&lt;/p&gt;

&lt;p&gt;Scientists estimate that 60 qubits would be enough to encode all of the data produced by humanity in a single year, with 300 qubits covering the classical information content of the observable universe.&lt;/p&gt;

&lt;h4 id=&quot;cryptography&quot;&gt;Cryptography&lt;/h4&gt;

&lt;p&gt;Today, the majority of popular security algorithms rely on one of three mathematical problems:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;The integer factorisation problem.&lt;/li&gt;
  &lt;li&gt;The discrete logarithm problem.&lt;/li&gt;
  &lt;li&gt;The elliptic-curve discrete logarithm problem.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Theoretically, all of these problems could be easily solved by a quantum computer running Shor’s algorithm.&lt;/p&gt;

&lt;p&gt;As a result, post-quantum cryptography techniques are being developed, targeting public-key algorithms that are thought to be secure against an attack by a quantum computer.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.nist.gov&quot;&gt;National Institute of Standards and Technology (NIST)&lt;/a&gt; intend to release the &lt;a href=&quot;https://csrc.nist.gov/Projects/Post-Quantum-Cryptography/Workshops-and-Timeline&quot;&gt;draft standards on post-quantum cryptography&lt;/a&gt; in the 2022-2024 timeframe.&lt;/p&gt;

&lt;h4 id=&quot;medicines&quot;&gt;Medicines&lt;/h4&gt;

&lt;p&gt;In drug development, the interactions between molecules, proteins, and chemicals need to be evaluated. Due to the number of combinations, this process is incredibly time and labour intensive. A quantum computer could review multiple molecules, proteins, and chemicals simultaneously, dramatically reducing the lead time.&lt;/p&gt;

&lt;p&gt;Quantum computing could also be used to increase the efficiency of tailored therapeutics, allowing an individual’s genes to be sequenced and analysed more quickly, enabling personalised drug development (not just targeting the mass market).&lt;/p&gt;

&lt;h3 id=&quot;commercial-model&quot;&gt;Commercial Model&lt;/h3&gt;

&lt;p&gt;IBM, D-Wave, Intel, Google, Microsoft, Alibaba, Tencent and a host of academic and national research labs (including the European Commission, US, China, and Russia) are all actively working on quantum computing.&lt;/p&gt;

&lt;p&gt;Although the majority of work is still exploratory and/or research-based, D-Wave and IBM are already offering commercial services.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.dwavesys.com/d-wave-two-system&quot;&gt;D-Wave 2000Q&lt;/a&gt; is a commercially available quantum annealer, which is valued at $15 million. D-Wave also offers a subscription service, which provides access to the D-Wave 2000Q, without the upfront investment.&lt;/p&gt;

&lt;p&gt;Arguably more interesting is the &lt;a href=&quot;https://www.research.ibm.com/ibm-q/D&quot;&gt;IBM Q&lt;/a&gt;, which is targeting a universal quantum computer. IBM currently provides access to their quantum computers (they have multiple) through the &lt;a href=&quot;https://quantumexperience.ng.bluemix.net&quot;&gt;Q Experience&lt;/a&gt;, allowing anyone to log in and start learning about quantum computing.&lt;/p&gt;

&lt;p&gt;IBM also run the &lt;a href=&quot;https://www.research.ibm.com/ibm-q/network/&quot;&gt;Q Network&lt;/a&gt;, which is a community of companies, academic institutions, and national research labs that are partnering to advance quantum computing and explore practical uses cases for business and science.&lt;/p&gt;

&lt;p&gt;In short, do not expect your smartphone or laptop to be powered by a quantum computer. Even if you could overcome the inherent environmental challenges, quantum computing is only valuable when targeting specific use cases.&lt;/p&gt;

&lt;p&gt;As a result, these use cases will likely be enabled through “cloud-like” data centers following the “as a Service” model.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Although good progress is being made, the journey to a true universal quantum computer is likely long, with most experts predicting a minimum ten-year development cycle.&lt;/p&gt;

&lt;p&gt;This is comparable to classical computing, where the first transistor was introduced in 1947, however, Intel’s first microprocessor did not arrive until 1971.&lt;/p&gt;

&lt;p&gt;With that said, this highly competitive environment, incentivised by the commercial benefit of being first to market could result in an “arms race”, helping to accelerate the development time.&lt;/p&gt;

&lt;p&gt;In conclusion, as a business today, I would recommend the following four actions.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Understand the basics of quantum computing and how/if your business could benefit from the technology.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Identify business areas where quantum computing could offer a strategic advantage (e.g. Research) and look to quantify potential business value.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Develop a strategic investment roadmap that positions quantum computing based on identified potential business value.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Join the community to increase situational awareness, achieved through vendor engagement (e.g. &lt;a href=&quot;https://www.research.ibm.com/ibm-q/network/&quot;&gt;IBM Q Network&lt;/a&gt;) or open communities.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Mon, 18 Dec 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/12/18/Quantum-Advantage/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/12/18/Quantum-Advantage/</guid>
      </item>
    
      <item>
        <title>Netlify</title>
        <description>&lt;p&gt;&lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt; is my personal blog, which I use to share my thoughts and showcase projects related to technology. I launched LifeinTECH in 2008, but over the past ten-years, have reinvented it multiple times.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Launched as a custom-built PHP blog and CMS, hosted on &lt;a href=&quot;https://asmallorange.com&quot;&gt;A Small Orange&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Migrated to &lt;a href=&quot;https://wordpress.org&quot;&gt;Wordpress&lt;/a&gt;, hosted on &lt;a href=&quot;https://asmallorange.com&quot;&gt;A Small Orange&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Migrated to &lt;a href=&quot;https://www.squarespace.com&quot;&gt;Squarespace&lt;/a&gt;, specifically Squarespace 5.&lt;/li&gt;
  &lt;li&gt;Migrated to &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;, hosted on &lt;a href=&quot;https://www.heroku.com&quot;&gt;Heroku&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Retained Jekyll, but migrated to &lt;a href=&quot;https://pages.github.com&quot;&gt;GitHub Pages&lt;/a&gt; for hosting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have always attempted to find the right balance between simplicity and flexibility. For example, my original custom-built PHP blog and CMS was incredibly flexible, but relatively complex to maintain. Therefore, I spent the majority of my time working on the code, instead of the content. &lt;a href=&quot;https://www.squarespace.com&quot;&gt;Squarespace&lt;/a&gt; had the reverse challenge, very simple, but restrictive (I believe this has now been improved with Squarespace 7+).&lt;/p&gt;

&lt;p&gt;In 2015, I migrated to &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;, which enables a simple authoring experience via &lt;a href=&quot;https://daringfireball.net/projects/markdown/&quot;&gt;markdown&lt;/a&gt;, alongside a powerful blog generator that supports customisation. Jekyll also provides the foundation for a &lt;a href=&quot;https://jamstack.org&quot;&gt;JAMstack&lt;/a&gt; web architecture, which promotes simplicity, speed, scalability and security, through client-side JavaScript, reusable APIs and prebuilt markup.&lt;/p&gt;

&lt;p&gt;Originally, I was running &lt;a href=&quot;/2015/06/15/Jekyll-on-Heroku/&quot;&gt;Jekyll on Heroku&lt;/a&gt;, however changes to their &lt;a href=&quot;https://www.heroku.com/pricing&quot;&gt;pricing model&lt;/a&gt; forced me to look elsewhere. As a result, I migrated to &lt;a href=&quot;https://pages.github.com&quot;&gt;GitHub Pages&lt;/a&gt;, which can host any static website directly from a git repo (for free).&lt;/p&gt;

&lt;p&gt;GitHub Pages works great and I would certainly recommend the service to anyone that wants to quickly host a static website. However, it does have a few frustrating restrictions, for example, the inability to natively setup SSL with custom domains. In my opinion, SSL is quickly becoming a necessity for all websites, regardless of their target audience or size. This is especially true if you are looking to build &lt;a href=&quot;/2017/07/27/progressive-web-apps/&quot;&gt;Progressive Web Apps&lt;/a&gt;, which require SSL to operate.&lt;/p&gt;

&lt;p&gt;Introducing &lt;a href=&quot;https://www.netlify.com&quot;&gt;Netlify&lt;/a&gt;, arguably the best web host I have ever used (assuming you are targeting JAMstack).&lt;/p&gt;

&lt;p&gt;Netlify emphasises developer experience, providing the following features:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Performance:&lt;/strong&gt; Pre-configured global Content Delivery Network (CDN), which automatically manages atomic deploys and cache invalidation, as well as end-to-end redundant infrastructure, providing high availability without any setup.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Scalability:&lt;/strong&gt; Infinite elastic scale, putting a focus on “utility compute”, meaning you only pay for what you use.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; One-click SSL, delivered via &lt;a href=&quot;https://letsencrypt.org&quot;&gt;Let’s Encrypt&lt;/a&gt;, including automatic certificate rotation. Netlify also supports &lt;a href=&quot;https://jwt.io&quot;&gt;JWT Access Control&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/HTTP/2&quot;&gt;HTTP/2&lt;/a&gt; and DDOS Protection as standard.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Automation:&lt;/strong&gt; Git integration (e.g. &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt;, &lt;a href=&quot;https://bitbucket.org&quot;&gt;BitBucket&lt;/a&gt;, &lt;a href=&quot;https://about.gitlab.com&quot;&gt;GitLab&lt;/a&gt;) and simplified Continuous Integration / Continuous Deployment (CI/CD). Netlify also includes inbound and outbound webhooks, automatic versioning, backup and restore, as well as split testing (e.g. &lt;a href=&quot;https://en.wikipedia.org/wiki/A/B_testing&quot;&gt;A/B Testing&lt;/a&gt;).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tools:&lt;/strong&gt; A full CLI and RESTful API, as well as the ability to deploy and manage multiple environments (DEV, STAGING, PRD). Netlify will automatically generate “Deploy Previews” from Git Pull Requests (similar to “Review Apps” in &lt;a href=&quot;/2016/05/21/heroku-ex/&quot;&gt;Heroku&lt;/a&gt;).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Single Page Apps:&lt;/strong&gt; Inherent support for modern Single Page App frameworks and libraries, such as &lt;a href=&quot;https://reactjs.org&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://angular.io&quot;&gt;Angular&lt;/a&gt;, &lt;a href=&quot;https://vuejs.org&quot;&gt;Vue&lt;/a&gt;, etc. Including advance features such as pre-rendering, client-side routing and API proxying.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Domain Management:&lt;/strong&gt; Global Domain Name Service (DNS) and simplified domain management from &lt;a href=&quot;https://ns1.com&quot;&gt;NS1&lt;/a&gt;, including domain aliases and subdomains.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This comprehensive feature set would be enough for most people to consider a migration, however, when you also recognise that these features are enabled automatically (including one-click SSL) and are all available for free (&lt;a href=&quot;https://www.netlify.com/pricing/&quot;&gt;Personal Tier&lt;/a&gt;), it becomes almost impossible to ignore!&lt;/p&gt;

&lt;p&gt;To highlight the simple developer experience, the image below shows the Netlify “overview” page for LifeinTECH. Due to the level of integration and automation, there are limited options, however you can see the recent “Production Deployments” and “Deploy Previews”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/netlify01.jpg&quot; alt=&quot;Netlify&quot; title=&quot;Netlify&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The “Deploy” page (image below) provides a more detailed view of every individual deploy. It is very easy to setup automatic deployments, which can be triggered from specific branches (targeting subdomains), as well as directly from Git Pull Requests. When triggered from a GitHub Pull Request, the deployment results are sent back to GitHub and therefore available from inside the Pull Request itself.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/netlify02.jpg&quot; alt=&quot;Netlify&quot; title=&quot;Netlify&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, the “Settings” page (image below), which provides an overview of the key features. The majority of the options can be enabled, updated or disabled via a single click. This includes traditionally complex tasks such as SSL and Domain Management.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/netlify03.jpg&quot; alt=&quot;Netlify&quot; title=&quot;Netlify&quot; /&gt;&lt;/p&gt;

&lt;p&gt;LifeinTECH has now been running on Netlify (&lt;a href=&quot;https://www.netlify.com/pricing/&quot;&gt;Personal Tier&lt;/a&gt; - Free) for several weeks and I have been incredibly impressed with their service! The migration process itself took less than an hour, which included the automated build process from &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt;, SSL from &lt;a href=&quot;https://letsencrypt.org&quot;&gt;Let’s Encrypt&lt;/a&gt;, Domain Management from &lt;a href=&quot;https://ns1.com&quot;&gt;NS1&lt;/a&gt; and all content available via the global CDN.&lt;/p&gt;

&lt;p&gt;The web performance result from “&lt;a href=&quot;https://testmysite.io&quot;&gt;testmysite.io&lt;/a&gt;” provides good validation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/netlify04.jpg&quot; alt=&quot;Performance Analysis&quot; title=&quot;Performance Analysis&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you are interested in Netlify, it is incredibly easy to get started, simply sign-up for a &lt;a href=&quot;https://app.netlify.com/signup&quot;&gt;free account&lt;/a&gt; and push your code!&lt;/p&gt;
</description>
        <pubDate>Tue, 12 Dec 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/12/12/Netlify/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/12/12/Netlify/</guid>
      </item>
    
      <item>
        <title>Sphero Hackathon</title>
        <description>&lt;p&gt;Alongside my role as an Enterprise IT Architect, I also support a number of talent recruitment and people development programmes. For example, each year at my company, we run a &lt;a href=&quot;/2016/08/30/Student-Hackathon/&quot;&gt;UK University Hackathon&lt;/a&gt;, with the prize being a one-year student placement as a software developer.&lt;/p&gt;

&lt;p&gt;Alongside the Software Development roles, we also aim to recruit “Systems Analysts”, that target individuals who have a good balance of technical and business skills. The primary responsibilities of the role include: gathering customer requirements, supporting the technical design process, preparing specifications, partnering with solution integrators and developing test strategies.&lt;/p&gt;

&lt;p&gt;Traditionally, recruitment had been driven by a multi-phase interview, however, this verbal process was not effective at benchmarking technical competency.&lt;/p&gt;

&lt;p&gt;As a result, we recently introduced a new component as part of the second-round interview, specifically targeting Systems Analysts.&lt;/p&gt;

&lt;h3 id=&quot;sphero-hackathon&quot;&gt;Sphero Hackathon&lt;/h3&gt;

&lt;p&gt;Knowing that these individuals do not necessarily have (or require) deep domain expertise (e.g. software development skills), the hackathon needed to be relatively simple, but still force the candidates to demonstrate specific behaviours associated with technical competency.&lt;/p&gt;

&lt;p&gt;As a result, each candidate was given two hours to program a &lt;a href=&quot;https://store.sphero.com/collections/sphero-mini&quot;&gt;Sphero Mini&lt;/a&gt; so that it could navigate a pre-defined maze autonomously.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/spherohackathon01.jpg&quot; alt=&quot;Sphero Hackathon&quot; title=&quot;Sphero Hackathon&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The advantage of Sphero Mini is that it offers multiple options to program the device, covering everything from declarative development (no code required) to programming (JavaScript). This is all achieved through &lt;a href=&quot;https://edu.sphero.com&quot;&gt;Sphero Edu&lt;/a&gt;, which includes a very simple &lt;a href=&quot;https://edu.sphero.com/d&quot;&gt;development app&lt;/a&gt; that works on iOS, Android, Amazon Fire and Chrome.&lt;/p&gt;

&lt;p&gt;Not only does this approach promote key technology concepts, such as Mobility, API-Centric Architecture and Connected Devices (IoT), but it is also highly accessible, as even individuals with no software development experience can participate and achieve the desired outcome.&lt;/p&gt;

&lt;p&gt;The maze itself (photo below) was very simple, with each candidate being designated a fixed start and end point. We chose to build the maze on wooden board, as we found that even short carpet reduced the accuracy of the Sphero Mini, making the challenge less predictable and therefore more difficult.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/spherohackathon02.jpg&quot; alt=&quot;Sphero Hackathon&quot; title=&quot;Sphero Hackathon&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although the goal was for the candidate to complete the challenge, the actual outcome (success or fail) was not overly relevant. The true value was observing the process, watching for key behaviours.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, the hackathon was a great success! We purposely did not enforce to many rules, we simply outlined the problem statement and let the candidates start working. This resulted in some interesting observations, with some candidates choosing to work alone, while others were willing to share and discuss ideas with the group.&lt;/p&gt;

&lt;p&gt;In summary, I believe this approach enabled us to clearly identify and benchmark the following behaviours, something that was almost impossible to achieve through an interview.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning Agility&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Understanding the Sphero Hardware.&lt;/li&gt;
  &lt;li&gt;Understanding the Sphero Edu software.&lt;/li&gt;
  &lt;li&gt;Foundational understanding of computing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Problem Solving&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Comprehension of the problem.&lt;/li&gt;
  &lt;li&gt;Defining a realistic plan.&lt;/li&gt;
  &lt;li&gt;Ability to work under pressure with a fixed deadline.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Decision Making&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Declarative vs Programming (Clicks vs Code).&lt;/li&gt;
  &lt;li&gt;Adapting to unexpected challenges.&lt;/li&gt;
  &lt;li&gt;Knowing when to ask for assistance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although these are all key behaviours for a Systems Analyst, the Sphero Hackathon also highlighted a wide range of soft skills, such as determination, creative thinking and teamwork.&lt;/p&gt;

&lt;p&gt;The feedback from the hackathon was also very positive, with candidates describing the activity as “fun” and a nice change of pace when compared with other assessment centres.&lt;/p&gt;

&lt;p&gt;Finally, several weeks after the hackathon, I saw a similar setup being used at my local Apple Store to help children learn the concepts of coding.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/spherohackathon03.jpg&quot; alt=&quot;Sphero Hackathon&quot; title=&quot;Sphero Hackathon&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It was great to see the same techniques being applied in different ways to support technical education!&lt;/p&gt;
</description>
        <pubDate>Fri, 08 Dec 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/12/08/Sphero-Hackathon/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/12/08/Sphero-Hackathon/</guid>
      </item>
    
      <item>
        <title>Databricks</title>
        <description>&lt;p&gt;Is it possible to simplify big data and artificial intelligence?&lt;/p&gt;

&lt;p&gt;This is the mission of &lt;a href=&quot;https://databricks.com&quot;&gt;Databricks&lt;/a&gt;, a company founded by the team that started &lt;a href=&quot;https://spark.apache.org&quot;&gt;Apache Spark&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;what-is-apache-spark&quot;&gt;What is Apache Spark?&lt;/h3&gt;

&lt;p&gt;Apache Spark is an open-source cluster-computing framework, which provides an interface for programming clusters with implicit data parallelism and fault tolerance. Spark facilitates the implementation of iterative algorithms, which can be used to train machine learning systems.&lt;/p&gt;

&lt;p&gt;In production, Spark requires two key components, a cluster manager (e.g. &lt;a href=&quot;https://hadoop.apache.org&quot;&gt;Hadoop YARN&lt;/a&gt;, &lt;a href=&quot;http://mesos.apache.org&quot;&gt;Apache Mesos&lt;/a&gt;) and a distributed storage system (e.g. &lt;a href=&quot;https://hadoop.apache.org&quot;&gt;Hadoop Distributed File System&lt;/a&gt;, &lt;a href=&quot;http://cassandra.apache.org&quot;&gt;Cassandra&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&quot;why-databricks&quot;&gt;Why Databricks?&lt;/h3&gt;

&lt;p&gt;Apache Spark is incredibly powerful, but can also be extremely complicated. As a result, Databricks developed a web-based data platform, built on top of Apache Spark, that enables “anyone” to build and deploy advance analytics services.&lt;/p&gt;

&lt;p&gt;For example, if you needed to compute the average of fifty numbers, you could easily leverage Microsoft Excel to calculate the answer. This process could be achieved in a few simply clicks, with the results being produced almost instantly. However, if you needed to achieve the same simple outcome with a petabyte of data, the process would be infinitely more complicated, likely requiring specialist skills and a much longer lead time.&lt;/p&gt;

&lt;p&gt;In short, Databricks are trying to remove the complexities that come with the word “big”, when dealing with big data, allowing companies to quickly and easily extract meaningful insight from their data.&lt;/p&gt;

&lt;h3 id=&quot;databricks-unified-analytics-platform&quot;&gt;Databricks Unified Analytics Platform&lt;/h3&gt;

&lt;p&gt;The Databricks Unified Analytics Platform aims to provide a consistent workspace for all stakeholders (data science, engineering and the business), enabling teams to quickly build data pipelines, train machine learning models and share insights all from one environment. This includes interactive notebooks (supporting R, Python, Scala and SQL), customisable visualisations and dashboards, as well as the ability to integrate with DevOps Tools such as &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt; for version control.&lt;/p&gt;

&lt;p&gt;As part of the platform, the Databricks Runtime delivers an optimised version of Spark, leveraging technologies such as Amazon S3 as an access layer, as well as providing more efficient decoding, caching and data skipping to improve I/O performance.&lt;/p&gt;

&lt;p&gt;Finally, the use of “&lt;a href=&quot;/2016/09/02/Serverless-Computing/&quot;&gt;Serverless Computing&lt;/a&gt;” and the fact the platform is delivered as a managed service, helps to drive down cost (through utility compute) and reduces the infrastructure and security overhead.&lt;/p&gt;

&lt;p&gt;The diagram below provides a high-level overview of the Databricks Unified Analytics Platform.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/databricks01.jpg&quot; alt=&quot;Databricks Platform&quot; title=&quot;Databricks Platform&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Databricks can be deployed to &lt;a href=&quot;https://aws.amazon.com&quot;&gt;Amazon Web Services (AWS)&lt;/a&gt; or &lt;a href=&quot;https://azure.microsoft.com&quot;&gt;Microsoft Azure&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I increasingly see the underlying compute and storage infrastructure as a commodity, therefore I would argue that deployment decisions should be made based on the data, not the infrastructure (assuming competitive pricing).&lt;/p&gt;

&lt;p&gt;For example, in healthcare, research companies are increasingly making use of public data sets, which have the potential to be a gold mine for anyone that can extract insight. Ever increasingly these large data sets are persisted in public cloud infrastructure (e.g. AWS, Azure). As a result, the ability to deploy ephemeral environments will enable maximum agility, flexibility and low latency access to the data.&lt;/p&gt;

&lt;h3 id=&quot;what-is-databricks-delta&quot;&gt;What is Databricks Delta?&lt;/h3&gt;

&lt;p&gt;On 25th October 2017 at the &lt;a href=&quot;https://spark-summit.org&quot;&gt;Spark Summit&lt;/a&gt;, Databricks officially announced Databricks Delta, which is a product designed to simplify large-scale data management.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://databricks.com/product/databricks-delta&quot;&gt;Databricks Delta&lt;/a&gt; targets companies who are struggling to manage their growing big data architecture, which usually includes multiple data warehouses, data lakes and streaming systems. A key challenge with this “hybrid” architecture is the Extract-Transform-Load (ETL) processes, which can be complex to build, error-prone and have high latency (impacting the integrity of downstream systems).&lt;/p&gt;

&lt;p&gt;Databricks Delta compliments the Databricks Unified Analytics Platform, by delivering a single data management tool that combines the scale of a data lake, the reliability and performance of a data warehouse, and the low latency of streaming in a single system. The diagram below (Databricks Marketing) provides a basic comparison.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/databricks02.jpg&quot; alt=&quot;Databricks Delta&quot; title=&quot;Databricks Delta&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As outlined in the &lt;a href=&quot;https://databricks.com/blog/2017/10/25/databricks-delta-a-unified-management-system-for-real-time-big-data.html&quot;&gt;Databricks Delta blog post&lt;/a&gt;, the new architecture can be summarised in three parts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The reliability and performance of a data warehouse:&lt;/strong&gt; Delta supports transactional insertions, deletions, upserts, and queries; this enables reliable concurrent access from hundreds of applications. In addition, Delta automatically indexes, compacts and caches data; this achieves up to 100x improved performance over Apache Spark running over Parquet or Apache Hive on S3.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The speed of streaming systems:&lt;/strong&gt; Delta transactionally incorporates new data in seconds and makes this data immediately available for high-performance queries using either streaming or batch.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The scale and cost-efficiency of a data lake:&lt;/strong&gt; Delta stores data in cloud blob stores like S3. From these systems it inherits low cost, massive scalability, support for concurrent accesses, and high read and write throughput.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;When people ask me, what technologies will change the world, it is hard to ignore the potential of artificial intelligence, driven by machine learning and big data.&lt;/p&gt;

&lt;p&gt;Unfortunately, these concepts are still limited to a handful of technology pioneers, who have the funds, resources and expertise to execute at scale and drive towards a positive return on investment.&lt;/p&gt;

&lt;p&gt;As a result, I am certainly supportive of the Databricks vision, to simplify big data. Recognising that the complexities of big data are a key barrier to mass-market adoption of artificial intelligence concepts.&lt;/p&gt;

&lt;p&gt;Thanks to the close connection with the Apache Spark project and the growing community, I believe Databricks are well positioned to help simplify big data and with the introduction of Databricks Delta, they can now support the end-to-end journey from management to insights.&lt;/p&gt;
</description>
        <pubDate>Fri, 17 Nov 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/11/17/Databricks/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/11/17/Databricks/</guid>
      </item>
    
      <item>
        <title>Blockchain Playground UI</title>
        <description>&lt;p&gt;In my previous article “&lt;a href=&quot;/2017/07/16/Blockchain-Playground/&quot;&gt;Blockchain Playground&lt;/a&gt;”, I created a simple demo to help teach the basic concepts of blockchain.&lt;/p&gt;

&lt;p&gt;The demo was driven via the terminal and focused on the functional mechanics of blockchain. For example, the creation of nodes and peers, mining of new blocks and simple consensus.&lt;/p&gt;

&lt;p&gt;I have personally used the demo many times and have received positive feedback regarding the value. However, the demo expects a certain level of blockchain knowledge, which not everyone will have. For example, it does not inherently provide any context regarding hash functions, blocks, etc.&lt;/p&gt;

&lt;p&gt;As a result, I wanted to create an additional complimentary demo that would focus on the basics, specifically:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;What is a hash?&lt;/li&gt;
  &lt;li&gt;What is a block?&lt;/li&gt;
  &lt;li&gt;What is a blockchain?&lt;/li&gt;
  &lt;li&gt;What does decentralised mean?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Considering the target audience, I felt it was important to make the demo very visual (web user interface) and as simple as possible (minimal number of clicks). As always, my starting point was to search &lt;a href=&quot;http://www.github.com/&quot;&gt;GitHub&lt;/a&gt; for an open-source project that I could use as a foundation. This led me to “&lt;a href=&quot;https://github.com/anders94/blockchain-demo&quot;&gt;Blockchain Demo&lt;/a&gt;” by &lt;a href=&quot;https://github.com/anders94&quot;&gt;Anders Brownworth&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Blockchian Demo perfectly hit my criteria and even went beyond, starting to provide additional context regarding &lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;cryptocurrency&lt;/a&gt;, etc. As a result, I &lt;a href=&quot;https://github.com/mswbull/BlockchainPlaygroundUI&quot;&gt;forked the code&lt;/a&gt; and started to streamline the application to meet my specific needs.&lt;/p&gt;

&lt;p&gt;As you can see from the screenshot below, the application is very visual, with the navigation providing access to the four key areas: Hash, Block, Blockchain and Decentralised. The application itself is built using JavaScript and Jade, running in a Docker container (making it very portable and easy to setup).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/blockchainplaygroundui01.jpg&quot; alt=&quot;Blockchain Playground UI&quot; title=&quot;Blockchain Playground UI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In recent weeks, I have delivered this demo multiple times, as part of a broader blockchain presentation. The demo itself usually takes around ten minutes to complete and seems to resonate well with the audience. The video below is a recording of the demo in action, including my commentary.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/w3w49CzrQyg?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;In conclusion, I believe this demo, alongside my &lt;a href=&quot;/2017/07/16/Blockchain-Playground/&quot;&gt;previous demo&lt;/a&gt;, provides a very visual and tangible way to explain the core concepts of blockchain. My original plan was to only use this demo for blockchain beginners, however, I have found it provides a useful foundation for almost all audiences.&lt;/p&gt;

&lt;p&gt;My forked version of the code is called “&lt;a href=&quot;https://github.com/mswbull/BlockchainPlaygroundUI&quot;&gt;BlockchainPlaygroundUI&lt;/a&gt;” and is available publicly on GitHub.&lt;/p&gt;
</description>
        <pubDate>Mon, 23 Oct 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/10/23/Blockchain-Playground-UI/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/10/23/Blockchain-Playground-UI/</guid>
      </item>
    
      <item>
        <title>Smart Home</title>
        <description>&lt;p&gt;Over the past couple of years, I have been slowly implementing Smart Home technology. My goal is to automate everyday activities, improve energy efficiency and enable voice control via a virtual assistant.&lt;/p&gt;

&lt;p&gt;Although there are many Smart Home options, I decided to build my setup using &lt;a href=&quot;https://www.amazon.co.uk/b?ie=UTF8&amp;amp;node=10983873031&quot;&gt;Amazon Alexa&lt;/a&gt;, &lt;a href=&quot;https://nest.com/uk/&quot;&gt;Nest&lt;/a&gt;, &lt;a href=&quot;https://www2.meethue.com/en-gb&quot;&gt;Philips Hue&lt;/a&gt; and &lt;a href=&quot;https://www.logitech.com/en-gb/harmony-universal-remotes&quot;&gt;Logitech Harmony&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Each room is equipped with an &lt;a href=&quot;https://www.amazon.co.uk/Amazon-Echo-2nd-Generation-Charcoal-Fabric/dp/B06Y5ZW72J&quot;&gt;Echo&lt;/a&gt; or &lt;a href=&quot;https://www.amazon.co.uk/dp/B01DFKBL68/ref=fs_bis&quot;&gt;Echo Dot&lt;/a&gt;. The Echo devices are reserved for the rooms that require higher quality audio (Kitchen, Playroom, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/smarthome01.jpg&quot; alt=&quot;Smart Home&quot; title=&quot;Smart Home&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The house heating and water are managed via two &lt;a href=&quot;https://nest.com/uk/thermostats/nest-learning-thermostat/overview/&quot;&gt;Nest Learning Thermostats&lt;/a&gt; (Third Generation), each controlling a different zone (downstairs and upstairs).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/smarthome02.jpg&quot; alt=&quot;Smart Home&quot; title=&quot;Smart Home&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Thermostats are complimented by a pair of &lt;a href=&quot;https://nest.com/uk/smoke-co-alarm/overview/&quot;&gt;Nest Protect&lt;/a&gt; fire and carbon-monoxide detectors. In the event that a fire is detected, the Nest Protect will signal the thermostats to shut down the gas boiler.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/smarthome03.jpg&quot; alt=&quot;Smart Home&quot; title=&quot;Smart Home&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The kid’s rooms and the lounge are equipped with &lt;a href=&quot;https://nest.com/uk/cameras/nest-cam-indoor/overview/&quot;&gt;Nest Cams&lt;/a&gt;, used for monitoring and security. The Nest Cams support home/away assist, triggering “eco mode” on the thermostats when no one is at home.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/smarthome04.jpg&quot; alt=&quot;Smart Home&quot; title=&quot;Smart Home&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Every room has &lt;a href=&quot;https://www2.meethue.com/en-gb&quot;&gt;Philips Hue LED lighting&lt;/a&gt;. All rooms are equipped with &lt;a href=&quot;https://www.philips.co.uk/c-p/8718696548790/hue-white-ambiance-white-ambiance-single-bulb-e27&quot;&gt;White Ambiance bulbs&lt;/a&gt;, with the exception of the kid’s rooms which use &lt;a href=&quot;https://www.philips.co.uk/c-p/8718696592984/hue-white-and-color-ambiance-single-bulb-e27&quot;&gt;Colour Ambiance bulbs&lt;/a&gt;. The colour bulbs automatically switch on and off at specific times, as well as support “nightlight” mode.&lt;/p&gt;

&lt;p&gt;The primary entertainment system is controlled via the &lt;a href=&quot;https://www.sony.com/electronics/av-receivers/str-dn1050&quot;&gt;Sony STR-DN1050 AV Receiver&lt;/a&gt;, connected to a &lt;a href=&quot;http://www.samsung.com/uk/tv/KS8000/&quot;&gt;Samsung UE55KS8000 SUHD 4K TV&lt;/a&gt; and the &lt;a href=&quot;http://www.bowers-wilkins.co.uk/Speakers/Theatre_Solutions/Mini_Theatre/MT50.html&quot;&gt;Bowers &amp;amp; Wilkins MT-50 Mini Theatre&lt;/a&gt; system.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/smarthome05.jpg&quot; alt=&quot;Smart Home&quot; title=&quot;Smart Home&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The entire setup is controlled using the &lt;a href=&quot;https://www.logitech.com/en-gb/harmony-universal-remotes&quot;&gt;Logitech Harmony Hub&lt;/a&gt;, &lt;a href=&quot;https://www.logitech.com/en-gb/product/harmony-companion&quot;&gt;Companion Remote&lt;/a&gt; and &lt;a href=&quot;https://itunes.apple.com/gb/app/harmony-control/id626853860?mt=8&quot;&gt;App&lt;/a&gt;, which supports multiple activities, specifically TV, PS4 Pro, Nintendo Switch and the Apple TV 4K.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/smarthome06.jpg&quot; alt=&quot;Smart Home&quot; title=&quot;Smart Home&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Each activity automatically configures the TV, AV Receiver, connected device (e.g. Apple TV 4K) and Hue lightning (if required). This allows for single-click activation.&lt;/p&gt;

&lt;p&gt;Finally, the entire house can be controlled via Alexa, supporting everything from turning on the lights, increasing the temperature and switching on the TV. The video below is my two-year-old son demonstrating how simple it is to use.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/4kSXghobvxQ?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Overall, the setup works very well. All of the technologies have reasonable interoperability out of the box, including Alexa Skills, etc. Any gaps can usually be filled using a service such as &lt;a href=&quot;https://ifttt.com/&quot;&gt;IFTTT&lt;/a&gt; or writing a simple &lt;a href=&quot;https://aws.amazon.com/lambda/&quot;&gt;Lambda&lt;/a&gt; function that interacts with the APIs.&lt;/p&gt;
</description>
        <pubDate>Fri, 20 Oct 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/10/20/Smart-Home/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/10/20/Smart-Home/</guid>
      </item>
    
      <item>
        <title>Enterprise Blockchain - Part Two</title>
        <description>&lt;p&gt;In my previous article “&lt;a href=&quot;/2017/09/28/Enterprise-Blockchain-Part-One/&quot;&gt;Enterprise Blockchain - Part One&lt;/a&gt;”, I framed blockchain from an enterprise perspective, providing the foundation for a set of business recommendations.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2017/09/28/Enterprise-Blockchain-Part-One/&quot;&gt;Part one&lt;/a&gt; covered the topics outlined below, which I would recommend reading prior to this article.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;What is Blockchain&lt;/li&gt;
  &lt;li&gt;Value Proposition&lt;/li&gt;
  &lt;li&gt;Components of Enterprise Blockchain&lt;/li&gt;
  &lt;li&gt;Barriers&lt;/li&gt;
  &lt;li&gt;Key Players&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article (part two) will focus on the business recommendations.&lt;/p&gt;

&lt;h3 id=&quot;maturity&quot;&gt;Maturity&lt;/h3&gt;

&lt;p&gt;The value and impact of blockchain will vary depending on the industry. Unsurprisingly, blockchain presents the greatest opportunity (or threat) to financial services, resulting in many financial institutes pioneering the technology.&lt;/p&gt;

&lt;p&gt;The chart below (compiled from multiple sources) provides a simple industry overview.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/enterpriseblockchain03.jpg&quot; alt=&quot;Enterprise Blockchain&quot; title=&quot;Enterprise Blockchain&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The value and/or impact of blockchain will likely be both direct and indirect. For example, financial services, insurance and logistics, will likely have an indirect impact on the pharmaceutical industry.&lt;/p&gt;

&lt;h3 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h3&gt;

&lt;p&gt;The most obvious use cases for blockchain are related to cryptocurrency and other financial services (global payments, etc.) However, as protocols such as Smart Contracts mature, other multi-party collaboration processes become viable.&lt;/p&gt;

&lt;p&gt;The list below highlights a number of popular use cases being actively explored:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Financial Services&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Cryptocurrencies&lt;/li&gt;
  &lt;li&gt;Initial Coin Offering&lt;/li&gt;
  &lt;li&gt;Global Payments&lt;/li&gt;
  &lt;li&gt;Asset Management&lt;/li&gt;
  &lt;li&gt;Trade Finance&lt;/li&gt;
  &lt;li&gt;Syndicated Loans&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Insurance&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Claims Processing and Administration&lt;/li&gt;
  &lt;li&gt;Reinsurance&lt;/li&gt;
  &lt;li&gt;Fraud Detection&lt;/li&gt;
  &lt;li&gt;Self-administered Insurance&lt;/li&gt;
  &lt;li&gt;Telematics and Ratings&lt;/li&gt;
  &lt;li&gt;Automated Underwriting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pharmaceuticals / Healthcare&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Record Sharing&lt;/li&gt;
  &lt;li&gt;Track, Trace and Purity&lt;/li&gt;
  &lt;li&gt;Anti-Counterfeiting&lt;/li&gt;
  &lt;li&gt;Personalised Medicine&lt;/li&gt;
  &lt;li&gt;DNA Sequencing&lt;/li&gt;
  &lt;li&gt;Compliance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Public Administration&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Voting&lt;/li&gt;
  &lt;li&gt;Vehicle Registration&lt;/li&gt;
  &lt;li&gt;Benefits and Licensing&lt;/li&gt;
  &lt;li&gt;Identification&lt;/li&gt;
  &lt;li&gt;Copyrights&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Logistics&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Supply Chain&lt;/li&gt;
  &lt;li&gt;Bill of Materials&lt;/li&gt;
  &lt;li&gt;Asset Authentication&lt;/li&gt;
  &lt;li&gt;Real-Time Auction for Supply Delivery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As highlighted by the breadth of the use cases, the potential impact of blockchain is profound, with broad political, social and economic implications.&lt;/p&gt;

&lt;h3 id=&quot;positioning&quot;&gt;Positioning&lt;/h3&gt;

&lt;p&gt;Although blockchain is an exciting and potentially transformative technology, it is not a silver bullet.&lt;/p&gt;

&lt;p&gt;Though my research, I have seen many examples of poor Blockchain positioning, where the use case would be better supported by a traditional database and/or basic Merkle tree.&lt;/p&gt;

&lt;p&gt;Outlined below is a simple process that aims to help identify viable blockchain use cases:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/enterpriseblockchain05.jpg&quot; alt=&quot;Enterprise Blockchain&quot; title=&quot;Enterprise Blockchain&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For example, using supply chain as the use case:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Multiple Contributing Parties = &lt;strong&gt;Yes&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Lack of Trust Amongst Parties = &lt;strong&gt;Yes&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Single Version of Truth Required = &lt;strong&gt;Yes&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Very High-Performance Transactions = &lt;strong&gt;No&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In this scenario, blockchain &lt;strong&gt;should&lt;/strong&gt; be considered.&lt;/p&gt;

&lt;h3 id=&quot;actors&quot;&gt;Actors&lt;/h3&gt;

&lt;p&gt;To help support the recommendations, situational awareness will be key, specifically understanding the actors involved in Blockchain.&lt;/p&gt;

&lt;p&gt;Blockchain itself should be considered a commodity, with Blockchain Providers such as &lt;a href=&quot;https://www.ibm.com/blockchain/&quot;&gt;IBM&lt;/a&gt; (Hyperledger Fabric) and &lt;a href=&quot;https://ethereum.org&quot;&gt;Ethereum&lt;/a&gt; providing the foundations (processing platform, consensus, etc.)&lt;/p&gt;

&lt;p&gt;These foundations will naturally enable “higher order systems”, similar to what we have seen with cloud (specifically &lt;a href=&quot;https://aws.amazon.com&quot;&gt;Amazon Web Services&lt;/a&gt; and &lt;a href=&quot;https://www.salesforce.com&quot;&gt;Salesforce.com&lt;/a&gt;). For example, &lt;a href=&quot;https://www.veeva.com&quot;&gt;Veeva&lt;/a&gt; created a &lt;a href=&quot;https://www.veeva.com/products/crm-suite/&quot;&gt;CRM&lt;/a&gt; built on Salesforce.com, which specifically targeted the life sciences vertical. Veeva now has a market capitalization of more than $8 billion.&lt;/p&gt;

&lt;p&gt;As Blockchain continues to mature, I expect to see multiple Service Providers enter the market, targeting specific use cases and/or verticals (similar to Veeva). These Service Providers will not only provide technical expertise, but also look to act as a “matchmaker”, helping to coordinate and facilitate the multi-party collaboration (which I previously highlighted as a &lt;a href=&quot;/2017/09/28/Enterprise-Blockchain-Part-One/&quot;&gt;key barrier&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;This approach will be valuable to enterprise businesses, who can then consume Blockchain “as a Service”, helping to avoid the significant upfront investments (time, resources and cost).&lt;/p&gt;

&lt;p&gt;The diagram below outlines the key actors and their level of maturity.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/enterpriseblockchain06.jpg&quot; alt=&quot;Enterprise Blockchain&quot; title=&quot;Enterprise Blockchain&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;recommendations&quot;&gt;Recommendations&lt;/h3&gt;

&lt;p&gt;In conclusion, I have outlined five recommendations for enterprise businesses looking to position blockchain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE: As outlined in &lt;a href=&quot;/2017/09/28/Enterprise-Blockchain-Part-One/&quot;&gt;part one&lt;/a&gt;, all recommendations will primarily target the Pharmaceutical Industry and Healthcare.&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Place a strategic bet on Service Providers, who are anticipated to emerge over the next five years. Do not attempt to build Blockchain infrastructure or proactively coordinate / facilitate eco-system collaboration (unless the business has a strong and obvious influence over the eco-system).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Join a number of Blockchain consortiums, specifically &lt;a href=&quot;https://hyperledger.org/members/join&quot;&gt;Hyperledger&lt;/a&gt; ($75,000pa) and/or Enterprise &lt;a href=&quot;https://entethalliance.org&quot;&gt;Ethereum Alliance&lt;/a&gt; ($25,000pa), as well as engage in business specific consortiums. The goal will be to improve situational awareness, influence enterprise direction and ensure the business is ready to strike as the market matures.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Consider Blockchain a commodity, therefore focus IT engagement higher in the stack (e.g. Smart Contracts). Begin IT education on Smart Contracts and Decentralised Application (DApp) architecture. This approach will ensure IT has the foundational expertise to immediately maximise the value of blockchain-based services.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Complete a Proof of Value (Hyperledger or Ethereum) for educational purposes only. This would target a viable use case, leveraging the previously outlined positioning.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Communicate the Enterprise Blockchain positioning and ensure alignment across key IT and business stakeholders.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Wed, 18 Oct 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/10/18/Enterprise-Blockchain-Part-Two/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/10/18/Enterprise-Blockchain-Part-Two/</guid>
      </item>
    
      <item>
        <title>Stanford University</title>
        <description>&lt;p&gt;Last month, I received confirmation that I had been accepted to join &lt;a href=&quot;https://www.gsb.stanford.edu/exec-ed/programs/innovative-technology-leader/&quot;&gt;The Innovative Leader&lt;/a&gt; program at &lt;a href=&quot;https://www.gsb.stanford.edu&quot;&gt;Stanford University Graduate School of Business&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stanford01.jpg&quot; alt=&quot;Stanford University&quot; title=&quot;Stanford University&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Stanford University is a private research university in California and is currently &lt;a href=&quot;https://www.topuniversities.com/university-rankings/world-university-rankings/2018&quot;&gt;positioned second in the world rankings&lt;/a&gt;. Stanford University is known for its academic strength, entrepreneurship and impressive list of alumni that includes Nobel Prize winners, business leaders, and astronauts. Due to its proximity to Silicon Valley, the university has also been influential in shaping technology leaders, including representation from Google, HP, Sun Microsystems, LinkedIn, Yahoo, PayPal, etc.&lt;/p&gt;

&lt;p&gt;The Innovative Leader program is part of their executive education, meaning that it targets executives who are in full-time employment. As a result, the program supports learning through multiple channels, which includes an intensive week on campus, facilitated by Stanford MBA faculty and experts from across the global business community.&lt;/p&gt;

&lt;p&gt;The official program summary can be found below:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Strategy. Innovation. Leadership. Today’s technology leaders need skills in all three areas. With change as a constant, the key to success is learning how to keep pace on a global scale, to innovate, and to nurture and develop value-creating ideas across your organization.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You’ll work with Stanford GSB faculty and peers from around the globe to learn how to anticipate and respond to the complex and rapidly changing issues in the world of information technology. Experience hands-on design thinking sessions at the Hasso Plattner Institute of Design also called the &lt;a href=&quot;https://dschool.stanford.edu&quot;&gt;d.school&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Uncover the subtle and often-unseen dynamics underlying technology trends. Learn how to recognize the key drivers of innovation and understand the critical role of effective leadership.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This fast-paced program combines virtual and classroom learning, visits from Silicon Valley speakers, VC panels, and a unique opportunity to interact with Stanford PhD students developing the latest technologies.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The program targets the following individuals:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Senior-level technology executives with at least 10 to 15 years of experience.&lt;/li&gt;
  &lt;li&gt;Executives with responsibility for building and deploying enterprise technology.&lt;/li&gt;
  &lt;li&gt;42% of previous participants have held the title of VP, CIO or CTO.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I was attracted to the program for a number of reasons, specifically the &lt;a href=&quot;https://www.gsb.stanford.edu/exec-ed/programs/innovative-technology-leader/curriculum&quot;&gt;curriculum&lt;/a&gt; and the strength of the faculty, as well as the impressive list of alumni, which includes executives from AstraZeneca, GE, Thomson Reuters, Salesforce.com, Intel, Equinix, etc. I am also excited to experience Stanford University, which as a technologist, feels like a spiritual home.&lt;/p&gt;

&lt;p&gt;The program doesn’t start until next year, but I will do my best to post updates regarding my experience, hopefully providing insight into the program and what I have learned.&lt;/p&gt;
</description>
        <pubDate>Mon, 02 Oct 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/10/02/Stanford-University/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/10/02/Stanford-University/</guid>
      </item>
    
      <item>
        <title>Blockchain Podcast</title>
        <description>&lt;p&gt;Earlier this month, I attended a private event in Zurich regarding Blockchain, hosted by the &lt;a href=&quot;https://www.gartner.com/researchboard/&quot;&gt;Global CIO Research Board&lt;/a&gt; (part of &lt;a href=&quot;https://www.gartner.com/&quot;&gt;Gartner&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The Global CIO Research Board is protected under NDA, therefore I can not share any details regarding the event itself.&lt;/p&gt;

&lt;p&gt;However, as an active participant, I was asked to present my thoughts as part of Gartner’s Digital Accelerator podcast series (only available to Gartner customers).&lt;/p&gt;

&lt;p&gt;I have outlined below a few snippets from the podcast, where I shared my personal opinions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Please introduce yourself?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Eli Lilly &amp;amp; Company is a pharmaceutical company, based out of Indianapolis, with around 40,000 employees globally. Like a lot of industries, we’re going through our share of transformation.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;My role in Lilly is two-fold, I am part of our Enterprise IT Architecture community, personally accountable for Technology Architecture. As well as the lead architect for Cirrus (a cloud reference), which is focused on enterprise emerging technologies.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can you share one key learning and an action you plan to take?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The key was recognising that although Blockchain has been in existence for many years, obviously born out of the cryptocurrency world, the enterprise applicability of blockchain is still emerging and in its infancy.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;There is a lot of hype, everyone has heard about blockchain, some better educated than others, but I think there is still a lot of confusion around the technology and where it is best positioned to add the most value. For example, I have reviewed a wide range of different blockchain use cases, which in reality, would be better positioned for a traditional distributed database or a hash tree. I believe this confusion is caused by a lack of foundational understanding.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;As a result, we need to do a better job of educating, specifically with IT professionals and business partners, so they can see through the marketing hype and can effectively challenge each other and vendors (who will be looking to capitalise on the market infancy).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;At Lilly, we are not going to “blockchain all the things”, instead we plan to focus on education, covering corporate strategy and via our architecture community. We also plan to connect with enterprise and domain-specific consortiums, as the true value of blockchain can only be realised when supporting a multi-party process.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Did you value the vendor engagement?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It was useful to establish a strong baseline from the experts in the field, specifically in Zurich, with its &lt;a href=&quot;https://cryptovalley.swiss&quot;&gt;focus on cryptocurrency&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Although it is always good to hear from the tier one players like &lt;a href=&quot;https://www.ibm.com/&quot;&gt;IBM&lt;/a&gt;, personally, I enjoyed engaging with the startup community. As with any new eco-system, I expect higher order systems and new business models to emerge, where companies consider blockchain the commodity layer and start to build solutions and services that on top that target specific verticals and/or use cases.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;However, it is also important to be skeptical when engaging with startups, as many companies will aim to move quickly, taking advantage of the hype and confusion. In the majority of cases, the company will go nowhere (looking to cash out early), but similar to &lt;a href=&quot;https://www.veeva.com/&quot;&gt;Veeva&lt;/a&gt; within the &lt;a href=&quot;https://www.salesforce.com/&quot;&gt;Salesforce.com&lt;/a&gt; eco-system, some companies will thrive, opening up new opportunities for their target customers.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;As a result, I will be watching the eco-system very closely as it matures over the next few years.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately I can not share any additional details about the event or the podcast, however, if you are a &lt;a href=&quot;https://www.gartner.com/&quot;&gt;Gartner&lt;/a&gt; customer, you should be able to gain access to additional materials.&lt;/p&gt;
</description>
        <pubDate>Sat, 30 Sep 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/09/30/Blockchain-Podcast/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/09/30/Blockchain-Podcast/</guid>
      </item>
    
      <item>
        <title>UK EA Forum - Part III</title>
        <description>&lt;p&gt;Earlier this year, &lt;a href=&quot;/2017/03/31/UK-EA-Forum-Part-One/&quot;&gt;I launched a UK Enterprise Architecture Forum&lt;/a&gt;, with the goal to create an open community for architects. The forum currently includes thirty-five members, across twenty-five companies, who meet once per quarter, as well as collaborate via digital channels (e.g. &lt;a href=&quot;https://ukarchitecture.slack.com&quot;&gt;Slack Team&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The details of the first two forums can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/03/31/UK-EA-Forum-Part-One/&quot;&gt;UK EA Forum - Part I&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/06/16/UK-EA-Forum-Part-Two/&quot;&gt;UK EA Forum - Part II&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today, we held the third forum, where the following topics were discussed:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.odata.org&quot;&gt;OData&lt;/a&gt; Experiences&lt;/li&gt;
  &lt;li&gt;Salesforce.com Identity Management&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/09/02/Serverless-Computing/&quot;&gt;Serverless Architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Mastering Customer Data (&lt;a href=&quot;http://www.reltio.com&quot;&gt;Reltio&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.eugdpr.org&quot;&gt;General Data Protection Regulation (GDPR)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/09/28/Enterprise-Blockchain-Part-One/&quot;&gt;Blockchain&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unfortunately, I was unable to attend the forum due to travel. However, thanks to the community, the forum is not dependant on any one individual.&lt;/p&gt;

&lt;p&gt;Having reviewed the material in Slack, one of the most interesting topics covered was Mastering Customer Data, following a specific use case that leveraged &lt;a href=&quot;http://www.reltio.com&quot;&gt;Reltio&lt;/a&gt;. I did not have much insight into this technology prior to the forum, but am now interested to learn more. The video below provides a short overview.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/zJNDJBl9ouU?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The fourth and final forum of the year is currently being planned, which is likely to take place in December.&lt;/p&gt;

&lt;p&gt;If you are interested in joining the UK Enterprise Architecture Forum, please don’t hesitate to contact me (&lt;a href=&quot;https://www.linkedin.com/in/mswbull/&quot;&gt;LinkedIn&lt;/a&gt;).&lt;/p&gt;
</description>
        <pubDate>Fri, 29 Sep 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/09/29/UK-EA-Forum-Part-Three/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/09/29/UK-EA-Forum-Part-Three/</guid>
      </item>
    
      <item>
        <title>Enterprise Blockchain - Part One</title>
        <description>&lt;p&gt;I have been following the world of &lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;cryptocurrency&lt;/a&gt; since 2011, specifically the rise of &lt;a href=&quot;/2013/07/15/Bitcoin-101/&quot;&gt;Bitcoin&lt;/a&gt;. As a by-product of the cryptocurrency revolution, blockchain has established itself as an exciting technology, which could have a profound political, social and economic impact.&lt;/p&gt;

&lt;p&gt;I am not alone in this thinking, with many technology leaders speaking publicly about the opportunity:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Bitcoin is a remarkable cryptographic achievement… The ability to create something which is not duplicable in the digital world has enormous value… Lots of people will build businesses on top of that.”&lt;/em&gt; - Eric Schmidt (Google Executive Chairman)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Bitcoin is a technological tour de force.”&lt;/em&gt; - Bill Gates (Microsoft Founder)&lt;/p&gt;

&lt;p&gt;Although both quotes speak to Bitcoin, there is a hidden message regarding the potential of decentralised computing and the new eco-system that it might create. For example, I would argue that blockchain is to Bitcoin, what the internet is to e-mail.&lt;/p&gt;

&lt;p&gt;This article is part one of two, which will position blockchain from an enterprise perspective, providing framing (part one) and business recommendations (&lt;a href=&quot;/2017/10/18/Enterprise-Blockchain-Part-Two/&quot;&gt;part two&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE: Due to the nature of my work, the articles will be biased towards the Pharmaceutical Industry and Healthcare.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a starting point, I would recommend reviewing my previous articles that describe different aspects of blockchain:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;Cryptocurrency&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2012/01/10/21-Million-Bitcoins/&quot;&gt;21 Million Bitcoins&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2013/07/15/Bitcoin-101/&quot;&gt;Bitcoin 101&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/01/27/Blockchain/&quot;&gt;Blockchain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/11/21/Ethereum/&quot;&gt;Ethereum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/02/12/Blockchain-Consensus/&quot;&gt;Blockchain Consensus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/06/15/Blockchain-Opportunity/&quot;&gt;Blockchain Opportunity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/05/27/Cryptocurrency-Mining/&quot;&gt;Cryptocurrency Mining&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/07/16/Blockchain-Playground/&quot;&gt;Blockchain Playground&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/08/22/Cryptocurrency-Markets/&quot;&gt;Cryptocurrency Markets&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;what-is-blockchain&quot;&gt;What is Blockchain?&lt;/h3&gt;

&lt;h4 id=&quot;formal-description&quot;&gt;Formal Description&lt;/h4&gt;

&lt;p&gt;Blockchain is an open, decentralized and distributed ledger, which is best described as a continuously growing list of records that are linked and secured using cryptography, allowing transactions between multiple parties in a verifiable and permanent way.&lt;/p&gt;

&lt;p&gt;Blockchain has evolved to support Smart Contracts, which are computer protocols intended to facilitate, verify, or enforce the negotiation or performance of a contract. Smart Contracts are often referred to as decentralized applications (DApps), as they support custom business logic and processes.&lt;/p&gt;

&lt;p&gt;A more detailed description can be found in the article “&lt;a href=&quot;/2014/01/27/Blockchain/&quot;&gt;Blockchain&lt;/a&gt;”.&lt;/p&gt;

&lt;h4 id=&quot;simple-analogy&quot;&gt;Simple Analogy&lt;/h4&gt;

&lt;p&gt;Blockchain can be compared to a spreadsheet that has been duplicated across a network of computers, where the network has been designed to continuously update, verify and protect the spreadsheet, without a central authority.&lt;/p&gt;

&lt;p&gt;Smart Contracts can be compared to custom logic that is executed within the spreadsheet (like a macro), which can be triggered to complete specific business processes.&lt;/p&gt;

&lt;h3 id=&quot;value-proposition&quot;&gt;Value Proposition&lt;/h3&gt;

&lt;p&gt;The value proposition of blockchain can be summarised into the following eight points:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Resilient&lt;/strong&gt; - No single point of failure.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Secure&lt;/strong&gt; - No single point of attack.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Transparent&lt;/strong&gt; - Data is shared across all parties, preventing censorship.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Trusted&lt;/strong&gt; - No central authority, removing the risk of manipulation.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Efficient&lt;/strong&gt;- Removal of central authority, resulting in cost efficiencies.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Available&lt;/strong&gt; - No special requirements required.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Data Integrity&lt;/strong&gt; - Data is complete, consistent, timely and widely available.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Compliant&lt;/strong&gt; - Data cannot be altered or deleted (e.g. immutable).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;components-of-an-enterprise-blockchain&quot;&gt;Components of an Enterprise Blockchain&lt;/h3&gt;

&lt;p&gt;There are four key components to an enterprise blockchain.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/enterpriseblockchain01.jpg&quot; alt=&quot;Enterprise Blockchain&quot; title=&quot;Enterprise Blockchain&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A solution must include components 1, 2 and 3 to be considered an enterprise blockchain. Component 4 is optional, depending on the specific implementation.&lt;/p&gt;

&lt;h4 id=&quot;1-decentralized&quot;&gt;1. Decentralized&lt;/h4&gt;

&lt;p&gt;Decentralized describes the process of distributing or dispersing functions, powers, people or things away from a central location or authority.&lt;/p&gt;

&lt;p&gt;Decentralized architecture is not new, with many examples, such as &lt;a href=&quot;http://www.bittorrent.com&quot;&gt;BitTorrent&lt;/a&gt;, &lt;a href=&quot;https://git-scm.com&quot;&gt;Git&lt;/a&gt; and &lt;a href=&quot;https://setiathome.berkeley.edu&quot;&gt;Seti@Home&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Historically, there has been a lot of confusion regarding the differences between Decentralized and Distributed. Personally, I conform to &lt;a href=&quot;https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274&quot;&gt;the positioning by Vitalik Buterin (Ethereum Founder)&lt;/a&gt;, who states:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“A Blockchain is politically decentralized (no one controls it) and architecturally decentralized (no central infrastructure), but logically centralized (one commonly agreed state and behaves like a single entity).”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Blockchain successfully…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Removes the need for a central authority (e.g. Bank).&lt;/li&gt;
  &lt;li&gt;Removes the single point of failure and attack (e.g. Data Centre).&lt;/li&gt;
  &lt;li&gt;Improves trust and transparency, as the data is available to all parties.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many industry analysts (e.g. &lt;a href=&quot;https://www.youtube.com/watch?v=l9tOd6fHR-U&quot;&gt;Peter Levine - a16z&lt;/a&gt;) predict that decentralized / distributed computing will be the next major evolution of cloud computing.&lt;/p&gt;

&lt;h4 id=&quot;2-consensus&quot;&gt;2. Consensus&lt;/h4&gt;

&lt;p&gt;A major challenge with decentralized computing is guaranteeing consensus across every node on the network.&lt;/p&gt;

&lt;p&gt;Different implementations of Blockchain, include different consensus algorithms, however they all aim to ensures valid blocks cannot be retrospectively modified and enforce the order of the Blockchain.&lt;/p&gt;

&lt;p&gt;Blockchain Consensus successfully…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Guarantees the verified state of all data, ensuring it is complete and consistent.&lt;/li&gt;
  &lt;li&gt;Automatically reconciles data conflicts.&lt;/li&gt;
  &lt;li&gt;Ensures data can cannot be altered or deleted (e.g. immutable).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;3-smart-contracts&quot;&gt;3. Smart Contracts&lt;/h4&gt;

&lt;p&gt;In law, a contract outlines the terms of a relationship. A Smart Contract enforces a relationship with cryptographic code.&lt;/p&gt;

&lt;p&gt;Smart Contracts run on the blockchain and contain code that can interact with other Smart Contracts to make decisions, store data and/or exchange value.&lt;/p&gt;

&lt;p&gt;Smart Contracts automatically execute when specific conditions are met and because they run on the blockchain, they execute exactly as designed, without any possibility of censorship, downtime, fraud or third-party manipulation.&lt;/p&gt;

&lt;p&gt;Smart Contracts enable…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Custom business logic and processes to be defined and executed.&lt;/li&gt;
  &lt;li&gt;The creation of autonomous applications and even organizations.&lt;/li&gt;
  &lt;li&gt;Resilience and integrity by running on the Blockchain.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;4-permissioned&quot;&gt;4. Permissioned&lt;/h4&gt;

&lt;p&gt;A permissioned blockchain provides the ability to control access to the blockchain, this includes the nodes that help verify blocks and provide consensus.&lt;/p&gt;

&lt;p&gt;Permissioned blockchains are popular with enterprise companies and consortiums that build private blockchains for financial institutions.&lt;/p&gt;

&lt;p&gt;If the following three areas are important, a permissioned blockchain is worth considering.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Privacy&lt;/strong&gt; - Only approved parties can view transactions.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Scalability&lt;/strong&gt; - Simplifying consensus, helps to improve scalability.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Access Control&lt;/strong&gt; - Allows restricted access to the data within the ledge.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;barriers&quot;&gt;Barriers&lt;/h3&gt;

&lt;p&gt;As with any emerging technology, there are a number of important barriers that must be considered before any investment.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;To unlock the key value proposition of Blockchain, &lt;strong&gt;multi-party collaboration is required&lt;/strong&gt;. This will require alignment across the specific eco-system (e.g. Supply Chain), which may be difficult to achieve with conflicting priorities and varying levels of maturity.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Blockchain technology is a paradigm shift, that will require new processes to be successful. This must include acceptance and adoption by regulatory bodies (especially important for highly regulated industries).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Decentralized computing, such as blockchain, is radically different to centralized cloud computing. To implement successfully at scale, new compliance, privacy, quality and security controls will need to be developed and adopted.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Smart Contract technology is still relatively immature, with limited best practices, standards and/or developer tools. There are also notable gaps and unknowns, which will likely impact early adopters.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Blockchain is still early in the “hype cycle”, meaning that there are very few production case studies to reference (especially outside of Financial Services). As a result, third-party companies will attempt to capitalize on the hype and lack of verifiable data. This will likely result in poorly positioned use cases and wasted investments.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;key-players&quot;&gt;Key Players&lt;/h3&gt;

&lt;p&gt;The following table highlights the most notable enterprise blockchain players:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/enterpriseblockchain02.jpg&quot; alt=&quot;Enterprise Blockchain&quot; title=&quot;Enterprise Blockchain&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The most prominent players include &lt;a href=&quot;https://www.hyperledger.org&quot;&gt;Hyperledger&lt;/a&gt; and &lt;a href=&quot;https://ethereum.org&quot;&gt;Ethereum&lt;/a&gt;, thanks to their generic and modular architecture. There are also rumours that &lt;a href=&quot;https://www.r3.com&quot;&gt;R3 Corda&lt;/a&gt; may broaden its scope beyond financial services.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;This concludes part one (framing). &lt;a href=&quot;/2017/10/18/Enterprise-Blockchain-Part-Two/&quot;&gt;Part two&lt;/a&gt; will focus on the business recommendations.&lt;/p&gt;
</description>
        <pubDate>Thu, 28 Sep 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/09/28/Enterprise-Blockchain-Part-One/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/09/28/Enterprise-Blockchain-Part-One/</guid>
      </item>
    
      <item>
        <title>23andMe - Part Two</title>
        <description>&lt;p&gt;Last month, &lt;a href=&quot;/2017/07/20/23andMe-Part-One/&quot;&gt;I submitted a saliva sample for genetic testing&lt;/a&gt; with &lt;a href=&quot;https://www.23andme.com/&quot;&gt;23andMe&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The saliva collection process was relatively straight forward (documented in my &lt;a href=&quot;/2017/07/20/23andMe-Part-One/&quot;&gt;previous article&lt;/a&gt;), but had an estimated eight week lead time to produce the reports.&lt;/p&gt;

&lt;p&gt;As a result, I was pleasantly surprised when I received an e-mail (after four weeks) notifying me that my reports were ready for review.&lt;/p&gt;

&lt;p&gt;The 23andMe dashboard (shown below) provides a good overview of your information, split across the &lt;a href=&quot;/2017/07/20/23andMe-Part-One/&quot;&gt;previously described&lt;/a&gt; areas: Genetic Health Risk, Wellness, Carrier Status, Traits and Ancestry. In total, this resulted in 84 individual reports (excluding optional research reports).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/23andme04.jpg&quot; alt=&quot;23andMe&quot; title=&quot;23andMe&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When selecting a specific area (e.g. Genetic Health Risk), you are presented with an overview of the corresponding reports, which provides a quick way to review each result. 23andMe also automatically highlights any report that received a “positive” result (which can be filtered using a simply checkbox).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/23andme05.jpg&quot; alt=&quot;23andMe&quot; title=&quot;23andMe&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When selecting a specific report (e.g. Phenylketonuria and Related Disorders), you are presented with a detailed breakdown of the result. Thankfully, each report includes a simple description covering the test itself and your result. The scientific details are also available; however, these are likely only valuable to individuals with a background in health or genetics.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/23andme06.jpg&quot; alt=&quot;23andMe&quot; title=&quot;23andMe&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, I have been impressed with the 23andMe health reports. I obviously cannot guarantee the scientific accuracy; however, the information is clearly presented and (in my opinion) finds the right balance between detail and simplicity.&lt;/p&gt;

&lt;p&gt;The ancestry reports follow a similar structure to the health reports, but I did not find the information as valuable. This might be because I have not spent any time researching my family tree, therefore, reports such as the ancestry composition are interesting, but not immediately useful.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/23andme07.jpg&quot; alt=&quot;23andMe&quot; title=&quot;23andMe&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The detailed ancestry reports include Maternal Haplogroups (shown below), Paternal Haplogroups, Neanderthal Ancestry and DNA Family.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/23andme08.jpg&quot; alt=&quot;23andMe&quot; title=&quot;23andMe&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, you can download all of the report for offline review, including an overall summary. You can also share the results directly with friends and family. The sharing feature is especially useful if direct family members have also completed genetic testing with 23andMe, allowing for a holistic review of areas such as “Carrier Status” (useful for family planning).&lt;/p&gt;

&lt;p&gt;In conclusion, I believe 23andMe is best suited for individuals who are interested in the science and research of health. If your focus is ancestry, I would actually recommend investigating &lt;a href=&quot;https://www.ancestry.co.uk/dna/&quot;&gt;Ancestry&lt;/a&gt;, which I understand has a more comprehensive data set.&lt;/p&gt;

&lt;p&gt;As a result, assuming your interest is health, I would not hesitate to recommend 23andMe.&lt;/p&gt;
</description>
        <pubDate>Wed, 23 Aug 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/08/23/23andMe-Part-Two/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/08/23/23andMe-Part-Two/</guid>
      </item>
    
      <item>
        <title>Cryptocurrency Markets</title>
        <description>&lt;p&gt;In 2011, &lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;I started exploring the world of cryptocurrency&lt;/a&gt;, specifically &lt;a href=&quot;https://bitcoin.org&quot;&gt;Bitcoin&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Since then, cryptocurrency has exploded, with new articles regarding &lt;a href=&quot;https://bitcoin.org/&quot;&gt;Bitcoin&lt;/a&gt; and &lt;a href=&quot;https://www.ethereum.org/&quot;&gt;Ethereum&lt;/a&gt; emerging every day. With this heightened energy, “experts” are always looking to spot and predict trends, however this information (in my opinion) is often lacking strong foundational data.&lt;/p&gt;

&lt;p&gt;As a result, a recent article on &lt;a href=&quot;https://news.ycombinator.com&quot;&gt;Hacker News&lt;/a&gt; called “&lt;a href=&quot;https://blog.patricktriest.com/analyzing-cryptocurrencies-python/&quot;&gt;Analyzing Markets using Python&lt;/a&gt;” caught my eye.&lt;/p&gt;

&lt;p&gt;The author (&lt;a href=&quot;https://github.com/triestpa&quot;&gt;Patrick Triest&lt;/a&gt;), has created a great step-by-step guide to cryptocurrency analysis using Python, providing anyone the tools to complete their own data-driven investigation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/cryptocurrencymarkets.jpg&quot; alt=&quot;Cryptocurrency Markets&quot; title=&quot;Cryptocurrency Markets&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The work provides an excellent framework for cryptocurrency analysis, helping to identify arbitrage opportunities and saturation between exchange prices.&lt;/p&gt;

&lt;p&gt;Patrick has made his work available on &lt;a href=&quot;https://github.com/triestpa/Cryptocurrency-Analysis-Python&quot;&gt;GitHub&lt;/a&gt;, which should be of interest to anyone actively investigating cryptocurrency.&lt;/p&gt;
</description>
        <pubDate>Tue, 22 Aug 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/08/22/Cryptocurrency-Markets/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/08/22/Cryptocurrency-Markets/</guid>
      </item>
    
      <item>
        <title>Progressive Web Apps</title>
        <description>&lt;p&gt;At the Apple Worldwide Developers Conference (WWDC) in 2007, just eighteen days before the official launch of the iPhone, Steve Jobs announced that all third-party app development would be restricted to web apps. He said…&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The full Safari engine is inside of iPhone. And so, you can write amazing Web 2.0 and Ajax apps that look exactly and behave exactly like apps on the iPhone. And these apps can integrate perfectly with iPhone services. They can make a call, they can send an email, they can look up a location on Google Maps.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;And guess what? There’s no SDK that you need! You’ve got everything you need if you know how to write apps using the most modern web standards to write amazing apps for the iPhone today. So developers, we think we’ve got a very sweet story for you. You can begin building your iPhone apps today.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As we know, Apple did not stick with this positioning very long, announcing the App Store and native app development just one year later. This resulted in rapid developer adoption, with over two million native apps now available for the iPhone.&lt;/p&gt;

&lt;p&gt;However, even with the success of the App Store, I believe the original web app positioning may have been directionally correct, simply a decade ahead of its time.&lt;/p&gt;

&lt;h4 id=&quot;progressive-web-apps&quot;&gt;Progressive Web Apps&lt;/h4&gt;

&lt;p&gt;Progressive Web Apps (PWA) aim to combine the flexibility of the web, with the rich user experience of native apps.&lt;/p&gt;

&lt;p&gt;The first time I was introduced to Progressive Web Apps, my mind immediately jumped to “hybrid apps”, including frameworks such as &lt;a href=&quot;https://cordova.apache.org&quot;&gt;Apache Cordova&lt;/a&gt;, etc. Hybrid apps attempt to bridge web technologies into a native paradigm, for example, although written in HTML and JavaScript, they run in a native container (not directly accessible via a URL) and must be maintained like a native app, including the required download from an App Store.&lt;/p&gt;

&lt;p&gt;Progressive Web Apps are essentially the opposite, as they attempt to bring a native app experience to the web. Unlike hybrid apps, this approach does not force the user to give-up the inherent advantages of the web, such as, the ability to run in any browser, on any device, without the need to download or maintain the native app.&lt;/p&gt;

&lt;h4 id=&quot;progressive-web-apps---characteristics&quot;&gt;Progressive Web Apps - Characteristics&lt;/h4&gt;

&lt;p&gt;Unsurprisingly, Progressive Web Apps have proven popular with web-first companies, such as Google, Twitter and Facebook. To help ensure quality and consistency, &lt;a href=&quot;https://developers.google.com/web/fundamentals/getting-started/codelabs/your-first-pwapp/&quot;&gt;Google have developed ten characteristics&lt;/a&gt;, which can be used as a guide when developing Progressive Web Apps.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Progressive:&lt;/strong&gt; Supports all browsers and is continuously enhanced.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Engaging:&lt;/strong&gt; Supports native features, such as push notifications, etc.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Responsive:&lt;/strong&gt; Must automatically optimise for the specific device.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;App-like:&lt;/strong&gt; Delivers a native app experience.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Connectivity:&lt;/strong&gt; Must work offline and in areas of low connectivity.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Discoverable:&lt;/strong&gt; Identified as an “app” and discoverable via search engines.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Linkable:&lt;/strong&gt; Must be able to retain and reload state when bookmarked or shared.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Installable:&lt;/strong&gt; Can be installed, making it available on the home screen.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Fresh:&lt;/strong&gt; Content is always relevant and up to date.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Safe:&lt;/strong&gt; Leveraging modern web techniques to ensure end-to-end security.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are already a lot of great Progressive Web Apps available that highlight these characteristics. For example, &lt;a href=&quot;https://mobile.twitter.com/&quot;&gt;Twitter Lite&lt;/a&gt;, which is Progressive Web App that was developed in partnership with Google.&lt;/p&gt;

&lt;h4 id=&quot;progressive-web-apps---development&quot;&gt;Progressive Web Apps - Development&lt;/h4&gt;

&lt;p&gt;Progressive Web Apps can be developed using a number of modern frameworks and libraries, including &lt;a href=&quot;https://facebook.github.io/react/&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://preactjs.com&quot;&gt;Preact&lt;/a&gt;, &lt;a href=&quot;https://vuejs.org&quot;&gt;Vue&lt;/a&gt; and &lt;a href=&quot;https://angularjs.org&quot;&gt;Angular&lt;/a&gt;. A great resource for developers is &lt;a href=&quot;https://hnpwa.com&quot;&gt;HNPWA&lt;/a&gt;, which takes Hacker News and implements it as a Progressive Web App, using a wide range of frameworks and libraries.&lt;/p&gt;

&lt;p&gt;There are three key concepts to consider when developing Progressive Web Apps.&lt;/p&gt;

&lt;h5 id=&quot;service-worker&quot;&gt;Service Worker&lt;/h5&gt;

&lt;p&gt;A service worker, written in JavaScript, is like a client-side proxy, which runs in the background and is triggered via events. A Service Worker can be used to handle network requests, caching, push notifications, content fetching, connectivity changes, etc.&lt;/p&gt;

&lt;p&gt;This approach is incredibly powerful, but can also become very complex. As a result, developers will likely leverage pre-defined recipes to enabled common tasks. Google have developed a wide range of &lt;a href=&quot;https://github.com/GoogleChrome/samples/tree/gh-pages/service-worker&quot;&gt;Service Worker Samples&lt;/a&gt;, which are openly available on GitHub.&lt;/p&gt;

&lt;h5 id=&quot;web-app-manifest&quot;&gt;Web App Manifest&lt;/h5&gt;

&lt;p&gt;The Web App Manifest is a simple JSON file, which is used to control how the app appears and how it is launched. This includes the home screen icons, default launch page, screen orientation and can even manipulate the appearance of the browser, providing a full screen experience.&lt;/p&gt;

&lt;p&gt;The goal is to deliver a native app experience, without the need to go via an App Store.&lt;/p&gt;

&lt;h5 id=&quot;app-shell&quot;&gt;App Shell&lt;/h5&gt;

&lt;p&gt;App Shell is not a specific technology, but rather a design pattern that compliments the caching capabilities of a service worker.&lt;/p&gt;

&lt;p&gt;The pattern focuses on decoupling the shell (minimum user interface) from the content. The goal is to have the user interface load first, followed by the content, which theoretically delivers a better user experience. This is achieved by caching the shell (HTML, CSS and JavaScript required to render the user interface) and content separately, with priority put on the shell.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;As someone who has developed through the hybrid app era, it would be easy to dismiss Progressive Web Apps. However, I feel far more comfortable about the technology and believe the web is now ready to deliver truly immersive, mature experiences to mobile users. This is helped by the strong support from Google, who have published an incredible amount of &lt;a href=&quot;https://developers.google.com/web/progressive-web-apps/&quot;&gt;documentation&lt;/a&gt;, as well as aggressively pushed tight integration for Progressive Web Apps into Android and Chrome.&lt;/p&gt;

&lt;p&gt;Ironically, considering their original positioning regarding web apps, Apple are currently a barrier for broader adoption. For example, Safari does not yet support the full feature set of Progressive Web Apps, including Service Workers (although it is marked as “&lt;a href=&quot;https://webkit.org/status/?utm_source=syndicate&amp;amp;utm_medium=post&amp;amp;utm_campaign=scotch-jun172510#specification-service-workers&quot;&gt;In Development&lt;/a&gt;”). I sense that the current strong revenue stream from the App Store may be resulting in some inertia, but I do not expect that to last, as it is unlikely that Apple will allow Google to deliver a better web experience on Android.&lt;/p&gt;

&lt;p&gt;In summary, I am very optimistic about the future of Progressive Web Apps and therefore will be watching closely as the eco-system (technology, documentation, community) continues to evolve.&lt;/p&gt;
</description>
        <pubDate>Thu, 27 Jul 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/07/27/Progressive-Web-Apps/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/07/27/Progressive-Web-Apps/</guid>
      </item>
    
      <item>
        <title>23andMe - Part One</title>
        <description>&lt;p&gt;In January, I completed a three-month experiment to track my food consumption using technology (specifically &lt;a href=&quot;https://www.myfitnesspal.com&quot;&gt;MyFitnessPal&lt;/a&gt;). The goal was to understand if technology and the process of tracking food would influence my behaviour and health. The results of the experiment can be found in the article “&lt;a href=&quot;/2017/04/01/The-Quantified-Self/&quot;&gt;The Quantified Self&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;Alongside the quantified self, I have always been curious about consumer genetic testing services, which have become &lt;a href=&quot;https://isogg.org/wiki/List_of_DNA_testing_companies&quot;&gt;increasingly popular over recent years&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The most well-known service is probably &lt;a href=&quot;https://www.23andme.com&quot;&gt;23andMe&lt;/a&gt;, which offers consumer genetic testing focused on health and ancestry. The five specific areas of analysis are outlined below.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Genetic Health Risk:&lt;/strong&gt; Looking for genetic markers associated with certain health conditions.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Wellness:&lt;/strong&gt; Looking for DNA trends that supports wellness (other factors include the environment and lifestyle).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Carrier Status:&lt;/strong&gt; Identify whether you carry genetic variants for a condition. Carriers do not typically have the genetic condition, but can pass a genetic variant down to their children.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Traits:&lt;/strong&gt; Looking for DNA trends for certain characteristics, including hair colour, taste preferences, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Ancestry:&lt;/strong&gt; Leverage your DNA find genetic traces of where your ancestors lived throughout history.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I purchased the combined Health + Ancestry Service, which costs £149 and provides access to all data points offered by 23andMe. They also offer a specific Ancestry Service (excluding the health data), which costs £79. However, if you are only interested in ancestry, I would recommend &lt;a href=&quot;https://www.ancestry.co.uk/dna/&quot;&gt;Ancestry&lt;/a&gt;, which is the same price, but currently has a more comprehensive dataset.&lt;/p&gt;

&lt;h3 id=&quot;23andme-saliva-collection&quot;&gt;23andMe Saliva Collection&lt;/h3&gt;

&lt;p&gt;Once purchased, the 23andMe “saliva collection kit” is delivered in a small cardboard box. This box includes pre-paid return shipping, therefore will be re-used once you have collected your saliva sample.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/23andme01.jpg&quot; alt=&quot;23andMe&quot; title=&quot;23andMe&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Inside the box you will find a plastic container, which includes instructions, the saliva collection tube, the tube cap and a sealable plastic bag (used to store the saliva collection tube).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/23andme02.jpg&quot; alt=&quot;23andMe&quot; title=&quot;23andMe&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Prior to collecting your saliva sample, you must first register the kit at “&lt;a href=&quot;https://23andme.com/start&quot;&gt;https://23andme.com/start&lt;/a&gt;”, using the unique ID contained within the box.&lt;/p&gt;

&lt;p&gt;Assuming you have not consumed anything or brushed your teeth within the past 30 minutes, you are now ready to collect your saliva sample. This is as simple as spitting into the saliva collection tube until your sample hits the “fill to” line.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/23andme03.jpg&quot; alt=&quot;23andMe&quot; title=&quot;23andMe&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I am not convinced it is possible to fill the tube without spitting multiple times (it took me at least five attempts). The process itself is easy, but not something I would describe as pleasant.&lt;/p&gt;

&lt;p&gt;Once complete, you close the funnel (tube lid), which will trigger some additional liquid to be mixed with your saliva sample. You can then remove the funnel and screw on the provided tube cap.&lt;/p&gt;

&lt;p&gt;Finally, the tube must be sealed in the plastic bag, before storing back into the plastic container and cardboard box. You are now ready to ship the saliva sample back to 23andMe!&lt;/p&gt;

&lt;p&gt;The 23andMe analysis process can apparently take up to eight weeks, therefore I will post &lt;a href=&quot;/2017/08/23/23andMe-Part-Two/&quot;&gt;part two&lt;/a&gt; of this article once I have received the results.&lt;/p&gt;
</description>
        <pubDate>Thu, 20 Jul 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/07/20/23andMe-Part-One/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/07/20/23andMe-Part-One/</guid>
      </item>
    
      <item>
        <title>Blockchain Playground</title>
        <description>&lt;p&gt;As an IT Architect, part of my role is to help identify and position emerging technologies for the enterprise, which includes a focus on education. Over the past twelve months, I have seen an increased interest in blockchain, with many industry analysts positioning it as “the next big thing”.&lt;/p&gt;

&lt;p&gt;Industry analysts are rarely the first to identify truly transformative technologies, however their marketing prioritisation is often a good indication as to when the technology has evolved from genesis to the mainstream.&lt;/p&gt;

&lt;p&gt;Thankfully, I have kept a close eye on the blockchain community over the years, starting with &lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;my first article regarding cryptocurrency in 2011&lt;/a&gt;. Since that time, I have written and referenced a number of articles (see below) that further explore the technology and surrounding eco-system.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;Cryptocurrency&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2012/01/10/21-Million-Bitcoins/&quot;&gt;21 Million Bitcoins&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2013/07/15/Bitcoin-101/&quot;&gt;Bitcoin 101&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/01/27/Blockchain/&quot;&gt;Blockchain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/11/21/Ethereum/&quot;&gt;Ethereum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/02/12/Blockchain-Consensus/&quot;&gt;Blockchain Consensus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/06/15/Blockchain-Opportunity/&quot;&gt;Blockchain Opportunity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/05/27/Cryptocurrency-Mining/&quot;&gt;Cryptocurrency Mining&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although you can learn a lot through research, I am a big believer in practical examples as a learning aid. This is especially true for a technology like blockchain, which can be very confusing.&lt;/p&gt;

&lt;p&gt;As a result, I wanted to explore the option of creating a very simple demo, that could be used to highlight the core concepts of blockchain. This led me to the following seven requirements:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Create Nodes&lt;/li&gt;
  &lt;li&gt;Create Peers&lt;/li&gt;
  &lt;li&gt;Create a Blockchain&lt;/li&gt;
  &lt;li&gt;Mine New Blocks (Single and Batch)&lt;/li&gt;
  &lt;li&gt;Automatically Reconcile the Blockchain&lt;/li&gt;
  &lt;li&gt;View the Blockchain&lt;/li&gt;
  &lt;li&gt;Proof of Work / Stake Consensus Algorithm (Stretch Goal)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Due to the obvious implementation complexities, I marked the &lt;a href=&quot;/2016/02/12/Blockchain-Consensus/&quot;&gt;Proof of Work / Stake Consensus Algorithm&lt;/a&gt; as a stretch goal. You might argue that a blockchain without a robust consensus algorithm is not really a blockchain. I would agree; however, it is important to recognise that this demo has been designed for education purposes only, with the goal to highlight the key concepts.&lt;/p&gt;

&lt;p&gt;Like any lazy developer, I first searched &lt;a href=&quot;http://www.github.com/&quot;&gt;GitHub&lt;/a&gt; for an open-source project that I could use as a foundation. This steered me towards “&lt;a href=&quot;https://github.com/lhartikk/naivechain&quot;&gt;naivechain&lt;/a&gt;”, which provided the perfect starting point. My forked version of the code is called “&lt;a href=&quot;https://github.com/mswbull/BlockchainPlayground&quot;&gt;BlockchainPlayground&lt;/a&gt;” and is available publicly on GitHub.&lt;/p&gt;

&lt;h4 id=&quot;blockchain-playground&quot;&gt;Blockchain Playground&lt;/h4&gt;

&lt;p&gt;Blockchain Playground is a simple JavaScript application, which leverages &lt;a href=&quot;http://www.docker.com&quot;&gt;Docker&lt;/a&gt;. By running &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker-compose up&lt;/code&gt; the application will build and launch three nodes, as well as setup the required peers. The image below shows the nodes running in &lt;a href=&quot;http://kitematic.com&quot;&gt;Kitematic&lt;/a&gt; (Docker GUI).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/blockchainplayground01.jpg&quot; alt=&quot;Blockchain Playground&quot; title=&quot;Blockchain Playground&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once running, the nodes communicate with each other (peer-to-peer) via WebSockets, looking to reconcile the distributed ledger (e.g. Blockchain). Each node can be controlled using a simple HTTP interface (e.g. cURL), where a user can mine new blocks, add peers and report on the status of the Blockchain.&lt;/p&gt;

&lt;p&gt;The structure of the generated block is relatively basic, which includes the values:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;class Block {
    constructor(index, previousHash, timestamp, data, hash) {
        this.index = index;
        this.previousHash = previousHash.toString();
        this.timestamp = timestamp;
        this.data = data;
        this.hash = hash.toString();
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
A SHA-256 cryptographic algorithm is used to generate the new hash from the contents of the block.&lt;/p&gt;

&lt;p&gt;The image below highlights three terminals which are actively monitoring the running nodes. The forth terminal is used to interact with the specific nodes via HTTP.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/blockchainplayground02.jpg&quot; alt=&quot;Blockchain Playground&quot; title=&quot;Blockchain Playground&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The blockchain itself is not persisted, instead it is stored in a JavaScript array. This is useful for demo purposes, as no clean-up activities are required (simply restart the Docker containers).&lt;/p&gt;

&lt;h4 id=&quot;demonstration&quot;&gt;Demonstration&lt;/h4&gt;

&lt;p&gt;I have found the most effective way to deliver the demo is to incorporate it as part of a broader presentation. For example, I usually describe the core concepts of blockchain, before leveraging the demo as a learning aid to “make it real” and reinforce the key messages.&lt;/p&gt;

&lt;p&gt;The demo itself rarely lasts longer than ten minutes, following the high-level script outlined below:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Launch node one.&lt;/li&gt;
  &lt;li&gt;Review the status of the ledger from node one, revealing the “Genesis Block”.&lt;/li&gt;
  &lt;li&gt;Mine a new block from node one.&lt;/li&gt;
  &lt;li&gt;Review the status of the ledger from node one, revealing the full chain.&lt;/li&gt;
  &lt;li&gt;Launch node two.&lt;/li&gt;
  &lt;li&gt;Watch the nodes connect and reconcile the public ledger.&lt;/li&gt;
  &lt;li&gt;Review the status of the ledger from node two, revealing the full chain.&lt;/li&gt;
  &lt;li&gt;Mine a new block from node two.&lt;/li&gt;
  &lt;li&gt;Watch the nodes connect and reconcile the public ledger.&lt;/li&gt;
  &lt;li&gt;Review the status of the ledger from node one, revealing the full chain.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;NOTE: It is obviously possible to continue to create additional nodes and mine new blocks, as well as manually create specific peers.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I have also linked below a (very rough) video walkthrough of the demo in action, however please note that this does not include the previously mentioned presentation.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Jx44LSRKU4g?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;In summary, I believe this demo, alongside appropriate framing material, can be a useful blockchain education tool. Knowing the technology is still relatively immature, it will likely take many more years before it is “second nature” to technologists, however I believe finding tangible ways to demonstrate the technology, will help to accelerate the learning.&lt;/p&gt;
</description>
        <pubDate>Sun, 16 Jul 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/07/16/Blockchain-Playground/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/07/16/Blockchain-Playground/</guid>
      </item>
    
      <item>
        <title>SFDC UK EA Forum</title>
        <description>&lt;p&gt;I recently presented at the Salesforce.com UK Enterprise Architecture Forum in London.&lt;/p&gt;

&lt;p&gt;This is a relatively new forum, which meets quarterly and is open to all Salesforce.com customers with a presence in the UK. Although I work for a US based company, I do my best to remain connected with the local tech community.&lt;/p&gt;

&lt;p&gt;The half-day meeting follows a standard pattern, with a keynote speaker, followed by updates from the Salesforce.com architecture team. The full agenda of the most recent forum can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Welcome and Introductions&lt;/li&gt;
  &lt;li&gt;Eli Lilly - App Cloud Developer Experience&lt;/li&gt;
  &lt;li&gt;Salesforce Roadmap Update&lt;/li&gt;
  &lt;li&gt;General Data Protection Regulation (GDPR)&lt;/li&gt;
  &lt;li&gt;Open Discussion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I was excited to be asked to share our App Cloud journey with the group, focused on Developer Experience. During the 45min presentation, I covered the following areas, including a couple of demos to keep things interesting.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;App Cloud at Lilly&lt;/li&gt;
  &lt;li&gt;Application Architecture&lt;/li&gt;
  &lt;li&gt;Scrum Agile Process&lt;/li&gt;
  &lt;li&gt;Demand Process&lt;/li&gt;
  &lt;li&gt;App Cloud Continuous Integration / Delivery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sfdceaforum01.jpg&quot; alt=&quot;SFDC UK EA Forum&quot; title=&quot;SFDC UK EA Forum&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The session went really well, with a high level of engagement from the audience, including a lot of great questions.&lt;/p&gt;

&lt;p&gt;Unfortunately, I am unable to share the presentation materials publicly, however I have covered a lot of the content in my previous blog posts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/06/29/Force-Enterprise-Application-Platform/&quot;&gt;Force.com App Platform&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/07/20/Force-Org-Strategy/&quot;&gt;Force.com Org Startegy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/07/20/Force-Enterprise-Standards/&quot;&gt;Force.com Standards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/06/19/Enterprise-Force.com-Architecture-Continuous-Integration/&quot;&gt;Force.com Architecture - CI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/05/21/Heroku-EX/&quot;&gt;Heroku EX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/07/20/DevOps-Automation/&quot;&gt;DevOps Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/10/07/Dreamforce-2016/&quot;&gt;Dreamforce 2016&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/01/31/Heroku-CI/&quot;&gt;Heroku CI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2017/06/16/App-Cloud-Hybrid-Apps/&quot;&gt;App Cloud - Hybrid Apps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to all those who attended and I look forward to the next forum.&lt;/p&gt;
</description>
        <pubDate>Wed, 05 Jul 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/07/05/SFDC-UK-EA-Forum/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/07/05/SFDC-UK-EA-Forum/</guid>
      </item>
    
      <item>
        <title>Jekyll and Docker</title>
        <description>&lt;p&gt;I started using &lt;a href=&quot;/2014/07/21/Docker-Containerisation-Virtualisation/&quot;&gt;Docker for local development back in 2014&lt;/a&gt;. At the time, it was fairly rough around the edges, however the potential was clear!&lt;/p&gt;

&lt;p&gt;Docker makes it possible to quickly and easily setup a consistent and portable development environment, putting the emphasis on writing code. It also helps facilitate a key aspect of the &lt;a href=&quot;https://12factor.net&quot;&gt;Twelve-Factory App&lt;/a&gt; methodology, specifically DEV / PRD parity.&lt;/p&gt;

&lt;p&gt;As an example of my day-to-day usage, this blog is built using a static site generator, which historically required me to &lt;a href=&quot;/2015/02/28/Installing-Rails-on-OSX/&quot;&gt;maintain a local installation&lt;/a&gt; of &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;, &lt;a href=&quot;https://www.ruby-lang.org/en/downloads/&quot;&gt;Ruby&lt;/a&gt; and &lt;a href=&quot;https://rubygems.org/pages/download&quot;&gt;RubyGems&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Anyone that has maintained a local development environment will know that they can be prone to issue, especially if you use the machine for other workloads.&lt;/p&gt;

&lt;p&gt;With &lt;a href=&quot;https://store.docker.com/editions/community/docker-ce-desktop-mac&quot;&gt;Docker Community Edition&lt;/a&gt; installed, you can create an isolated development environment, without having to install and maintain any dependencies on your Mac. Not only does this dramatically simply the setup process, but it also helps guarantee the ongoing integrity of your development environment.&lt;/p&gt;

&lt;p&gt;To get started with Jekyll, it is as simple as using the &lt;a href=&quot;https://hub.docker.com/r/jekyll/jekyll/&quot;&gt;Official Jekyll Docker Image&lt;/a&gt;. You can obviously interact with the image by passing the required options every time you create a container, or alternatively you can use &lt;a href=&quot;https://docs.docker.com/compose/&quot;&gt;Docker Compose&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Simply create a file in the root of your Jekyll site called “docker-compose.yml” and include the following configuration:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;jekyll:
image: jekyll/jekyll:latest
command: jekyll serve --watch --incremental
ports:
    - 4000:4000
volumes:
    - .:/srv/jekyll
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
A description of the configuration can be found below:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Image:&lt;/strong&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;jekyll/jekyll:latest&lt;/code&gt; states that you want to leverage the Jekyll image with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;latest&lt;/code&gt; tag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command:&lt;/strong&gt; specifies the command(s) to execute in the container. For example, the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;jekyll serve&lt;/code&gt; command starts Jekyll’s development server. The options &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--watch&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--incremental&lt;/code&gt; inform Jekyll to automatically regenerate the site when a file is changed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ports:&lt;/strong&gt; forwards port &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;4000&lt;/code&gt; of the container to your local port &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;4000&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Volumes:&lt;/strong&gt; maps the current directory &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/jekyll-site/&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/srv/jekyll/&lt;/code&gt;, which is where the image is configured to look for your Jekyll site.&lt;/p&gt;

&lt;p&gt;Once you have created the file, it is as simple as running the following Terminal command from the root of your Jekyll site:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker-compose up
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The container will now run, with your specified configuration, resulting in a Jekyll server being created and available via “http://0.0.0.0:4000”.&lt;/p&gt;
</description>
        <pubDate>Sun, 18 Jun 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/06/18/Jekyll-and-Docker/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/06/18/Jekyll-and-Docker/</guid>
      </item>
    
      <item>
        <title>UK EA Forum - Part II</title>
        <description>&lt;p&gt;In March 2017, &lt;a href=&quot;/2017/03/31/UK-EA-Forum-Part-One/&quot;&gt;I launched a UK Enterprise Architecture Forum&lt;/a&gt;, with the goal to create an open community for architects, which does not include any vendor bias.&lt;/p&gt;

&lt;p&gt;Today, we held the second forum, with fifteen people in attendance. The following topics were discussed:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;SaaS vs Custom Build (&lt;a href=&quot;http://blog.gardeviance.org/2015/09/how-commodity-is-something.html&quot;&gt;Commodity vs USP&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;SFDC Industry Verticals (&lt;a href=&quot;https://www.veeva.com&quot;&gt;Veeva&lt;/a&gt;, &lt;a href=&quot;https://www.salesforce.com/blog/sales-skills/&quot;&gt;Vlocity&lt;/a&gt;, etc.)&lt;/li&gt;
  &lt;li&gt;Customer Privacy (Specifically in Germany)&lt;/li&gt;
  &lt;li&gt;Impact of the &lt;a href=&quot;http://www.eugdpr.org&quot;&gt;General Data Protection Regulation (GDPR)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Buzz Words… Big Data, AI, IoT&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also had two dedicated sessions, where members of the forum shared some specific use cases.&lt;/p&gt;

&lt;p&gt;The first session was a demonstration of &lt;a href=&quot;https://www.glassboxdigital.com&quot;&gt;Glassbox&lt;/a&gt;, which is a service that captures and magnifies the customer journey, transforming recorded information into insight. In short, you can think of Glassbox as &lt;a href=&quot;https://www.tivo.com&quot;&gt;Tivo&lt;/a&gt; or instant replay for digital channels, with the ability to replay and analyse how customers use the asset.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/9x2mwXm-d0g?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I presented the second session, focused on our Polyglot PaaS journey, specifically &lt;a href=&quot;https://www.heroku.com&quot;&gt;Heroku&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I started with a basic overview of Heroku, focused on the developer experience, which included a demo of Pipelines, GitHub Sync, Review Apps and Continuous Integration.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum02.jpg&quot; alt=&quot;UK EA Forum&amp;quot;&quot; title=&quot;UK EA Forum&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I also shared a few high-level details of our implementation, including some statistics, as well as our positioning of languages and frameworks.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum03.jpg&quot; alt=&quot;UK EA Forum&amp;quot;&quot; title=&quot;UK EA Forum&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, the group discussed a number of application architecture patterns, which I have detailed in the blog post “&lt;a href=&quot;/2017/06/16/App-Cloud-Hybrid-Apps/&quot;&gt;App Cloud - Hybrid Apps&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum04.jpg&quot; alt=&quot;UK EA Forum&amp;quot;&quot; title=&quot;UK EA Forum&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, it was another informative forum, with high energy and a lot of great conversation!&lt;/p&gt;

&lt;p&gt;If you are interested in joining the UK EA Forum, please don’t hesitate to contact me (&lt;a href=&quot;https://www.linkedin.com/in/mswbull/&quot;&gt;LinkedIn&lt;/a&gt;). The next forum is set to take place in October.&lt;/p&gt;
</description>
        <pubDate>Fri, 16 Jun 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/06/16/UK-EA-Forum-Part-Two/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/06/16/UK-EA-Forum-Part-Two/</guid>
      </item>
    
      <item>
        <title>App Cloud - Hybrid Apps</title>
        <description>&lt;p&gt;I have spent the last few years designing and building applications on the &lt;a href=&quot;https://www.salesforce.com/products/platform/overview/&quot;&gt;Salesforce.com App Cloud&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This has been an interesting journey, which started with full-stack MVC Force.com applications, built using Visualforce, Apex and Declarative capabilities. In recent years, the &lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/intro_framework.htm&quot;&gt;Lighting Component Architecture&lt;/a&gt; has gained momentum, however for companies with “legacy” Force.com applications, the migration path can be challenging.&lt;/p&gt;

&lt;p&gt;Alongside these challenges, I have always feared the risk of lock-in with Force.com development (we’ve all seen it before with SharePoint, Lotus Notes, etc.) The Lightning Component Architecture makes this slightly less concerning, thanks to the use of the open-source &lt;a href=&quot;https://github.com/forcedotcom/aura&quot;&gt;Aura framework&lt;/a&gt;, but unfortunately it has gained little traction outside of the Salesforce.com eco-system.&lt;/p&gt;

&lt;p&gt;As a result, I have been using the release of Lightning as an opportunity to re-think the architecture of applications built on the App Cloud, with the goal to take greater advantage of &lt;a href=&quot;https://heroku.com&quot;&gt;Heroku&lt;/a&gt; and open community languages / frameworks.&lt;/p&gt;

&lt;p&gt;Although Heroku is owned by Salesforce.com, it is a very different platform to Force.com. Thanks to the use of Linux Containers, it provides a far more flexible and portable development environment. In fact, applications built on Heroku can be easily re-deployed to other open platforms (such as &lt;a href=&quot;https://www.cloudfoundry.org&quot;&gt;Cloud Foundry&lt;/a&gt; and/or &lt;a href=&quot;https://www.openshift.com&quot;&gt;OpenShift&lt;/a&gt;) and now that &lt;a href=&quot;https://devcenter.heroku.com/articles/container-registry-and-runtime&quot;&gt;Heroku natively supports Docker&lt;/a&gt;, this process has become even simpler.&lt;/p&gt;

&lt;p&gt;With this in mind, I have been evaluating hybrid applications, which aim to combine the best parts of Heroku and Force.com. The hybrid application architecture can be described in three parts:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;The front-end and application logic are built using open-community languages / frameworks, running in containers on Heroku.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Force.com will be utilized (where required) for specific services such as Identity, Data Modelling, Business Process, Workflow, Approvals and Commercial Capabilities (Sales, Service, etc.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Integrations between Heroku and Force.com will occur via RESTful API’s or in specific scenarios via &lt;a href=&quot;https://heroku.com/connect&quot;&gt;Heroku Connect&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Outlined below are two high-level application patterns, both of which I have built and deployed. The specific use cases are not overly relevant, as the goal is to highlight the hybrid nature of the architecture.&lt;/p&gt;

&lt;p&gt;The first pattern is very simple, supporting a generic web application, with content management, identity, persistent storage and a custom workflow (approvals, e-mail, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hybridapp01.jpg&quot; alt=&quot;App Cloud - Hybrid App&quot; title=&quot;App Cloud - Hybrid App&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The second pattern is more complex, with additional application logic defined as microservices. These services all run on Heroku, leveraging AMQP as a messaging queue. In this scenario, Force.com is also used to enable Service Cloud capabilities.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hybridapp02.jpg&quot; alt=&quot;App Cloud - Hybrid App&quot; title=&quot;App Cloud - Hybrid App&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In both patterns, the front-end and application logic are highly portable, leveraging &lt;a href=&quot;https://facebook.github.io/react/&quot;&gt;React&lt;/a&gt; and &lt;a href=&quot;https://nodejs.org&quot;&gt;Node.js&lt;/a&gt; (JavaScript). As proof, I deployed both patterns to Cloud Foundry and OpenShift, without needing to make any code modifications (I simply updated the environment variables that connect the RESTful endpoints).&lt;/p&gt;

&lt;p&gt;Static web assets (text, images, videos) are managed via an API CMS, such as &lt;a href=&quot;https://www.contentful.com&quot;&gt;Contentful&lt;/a&gt; or &lt;a href=&quot;https://prismic.io&quot;&gt;Prismic&lt;/a&gt;. This enables a truly decoupled architecture, as well as a clear separation of concerns for content authors.&lt;/p&gt;

&lt;p&gt;Finally, Force.com is still an important part of both patterns, but positioned as a backing service and only for the things it does best (implemented using declarative development).&lt;/p&gt;

&lt;h4 id=&quot;advantages&quot;&gt;Advantages&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Decoupled Architecture:&lt;/strong&gt; Ensuring a clear separation of concerns, providing maximum agility when supporting and adding new features.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Reduced Lock-in:&lt;/strong&gt; The use of open-community languages / frameworks running in containers provides maximum portability. The Force.com services are still “sticky”, but only support specific capabilities as part of the overall architecture (instead of the full-stack). This approach dramatically improves my comfort level regarding lock-in, especially if the Force.com services favour declarative development, therefore being fast and simple to setup (or throw away).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Scale:&lt;/strong&gt; Heroku applications can be automatically scaled in real-time, based on the application load. I have personally tested scaling an application on Heroku to eight million users over a 24hour period (which is far beyond any production need that I would have).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Developer Talent:&lt;/strong&gt; As development on Heroku can take advantage of industry trends and standards, such as Node.js and &lt;a href=&quot;https://12factor.net&quot;&gt;Twelve-Factor App&lt;/a&gt;, it will likely be easier to find, attract and retain top developer talent. This is supported by the &lt;a href=&quot;https://insights.stackoverflow.com/survey/2017&quot;&gt;2017 Stack Overflow Developer Survey&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;API-First:&lt;/strong&gt; This architecture is not dependent on pre-provisioned Force.com user licenses. Instead, users interact via the front-end built on Heroku, with Force.com access happening via the API.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;disadvantages&quot;&gt;Disadvantages&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Force.com Prioritization:&lt;/strong&gt; In my experience, Salesforce.com continue to prioritize full-stack development on Force.com. This is hardly a surprise, as Force.com offers a more compelling commercial model (for Salesforce.com), as well as includes a large existing customer-base with Sales and Service Cloud. They are also still eager to chase the “admin / citizen developers”, however I feel this will become increasingly difficult as they look to embrace true development practices such as Continuous Integration, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Technical Limitations:&lt;/strong&gt; Although Salesforce.com do not inherently discourage or limit a hybrid architecture, they also don’t offer many accelerators (outside of Heroku Connect). My hope is that Salesforce.com invest in an event-driven architecture (EDA) and maybe an API Gateway, which I believe would fully unlock the hybrid architecture, allowing developers to easily take advantage of the business rules, triggers and procedures defined in Force.com.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Commercial Model:&lt;/strong&gt; Salesforce.com continue to favour a user license model for Force.com development. This makes perfect sense for Sales and Service, but is completely useless for application development (where the user base can vary widely per application). API usage limits are also tied to the user license, which could be a deal breaker for a hybrid architecture. I hope Salesforce.com rethink their license model for application development (e.g. App Cloud), offering a consumption model based on Object and/or API usage.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;so-where-does-this-leave-the-lightning-component-architecture&quot;&gt;So where does this leave the Lightning Component Architecture?&lt;/h4&gt;

&lt;p&gt;I am a big advocate of component-based architecture, as well as JavaScript. Therefore, I’m certainly pleased to see Salesforce.com embrace the Lightning Component Architecture. I would always recommend that anyone planning to build full-stack on Force.com should start by looking at Lightning.&lt;/p&gt;

&lt;p&gt;However, with the previously defined hybrid architecture, you can still achieve all the advantages of components using something like React, whilst also gaining a lot of flexibility thanks to the rapidly growing open eco-system.&lt;/p&gt;

&lt;p&gt;Salesforce.com would likely argue that Lightning has unique advantages, such as tight integration with the broader Salesforce.com eco-system, which would streamline development. Although likely true, I believe that in most cases these advantages can be easily mitigated via the API, with the added benefit of no lock-in.&lt;/p&gt;
</description>
        <pubDate>Fri, 16 Jun 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/06/16/App-Cloud-Hybrid-Apps/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/06/16/App-Cloud-Hybrid-Apps/</guid>
      </item>
    
      <item>
        <title>Cryptocurrency Mining</title>
        <description>&lt;p&gt;I first referenced mining in my 2011 article titled “&lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;Cryptocurrency&lt;/a&gt;”, where I briefly described the concept of mining as it relates to Bitcoin.&lt;/p&gt;

&lt;p&gt;If you’re unfamiliar with cryptocurrency mining, a more detailed explanation can be found in my article “&lt;a href=&quot;/2013/07/15/Bitcoin-101/&quot;&gt;Bitcoin 101&lt;/a&gt;”, where I reference a great explainer video from &lt;a href=&quot;https://www.youtube.com/channel/UCOGrxFj_j7PZRQM63OFCwmA&quot;&gt;CuriousInventor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Mining remains an integral part of many cryptocurrencies, including the popular &lt;a href=&quot;https://bitcoin.org/&quot;&gt;Bitcoin&lt;/a&gt;, &lt;a href=&quot;https://www.ethereum.org/&quot;&gt;Ethereum&lt;/a&gt; and &lt;a href=&quot;https://litecoin.org/&quot;&gt;Litecoin&lt;/a&gt;. However, achieving worthwhile results for “hobby miners” has become increasingly challenging, thanks to the growing number of hashing algorithms and large mining pools such as &lt;a href=&quot;https://www.antpool.com/&quot;&gt;Antpool&lt;/a&gt; (which now mines approximately 25% of all Bitcoin blocks).&lt;/p&gt;

&lt;p&gt;To simplify the process, I recently started using &lt;a href=&quot;https://www.nicehash.com/&quot;&gt;NiceHash&lt;/a&gt;, which is a cryptocurrency mining marketplace. It is based on the concept of connecting sellers and buyers of computing power and supports all major hashing algorithms.&lt;/p&gt;

&lt;p&gt;As a seller, you essentially download &lt;a href=&quot;https://miner.nicehash.com/&quot;&gt;NiceHash Miner&lt;/a&gt;, which is optimised for NVIDIA and AMD graphics cards. Once installed, the application benchmarks your computer and automatically selects the best hashing algorithm(s). It is then simply the case of adding a Bitcoin wallet address and clicking “Start”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nicehash.png&quot; alt=&quot;NiceHash&quot; title=&quot;NiceHash&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Revenue will be defined by the performance of the specific graphics card (or cards), which can be estimated using the &lt;a href=&quot;https://www.nicehash.com/profitability-calculator/&quot;&gt;NiceHash Profitability Calculator&lt;/a&gt;. Whilst mining, the graphics card will be 100% utilised, resulting in high power consumption and increased heat, therefore quality cooling is recommended. NiceHash also requires a reliable internet connection, which based on my testing consumes approximately 30MB downstream / 4MB upstream per hour.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2015/06/05/My-Setup/&quot;&gt;My setup&lt;/a&gt;, which includes an overclocked NVIDIA GeForce GTX 980 averages around &lt;strong&gt;£0.87 per day&lt;/strong&gt; (based on an exchange rate of 1 BTC = £3318.56). As a result, my setup could theoretically achieve a monthly revenue of £26, however this obviously does not take into consideration electricity bills and fluctuations in the Bitcoin market (where are currently very frequent).&lt;/p&gt;

&lt;p&gt;As with all things, nothing in life is free. Therefore, it is also important to understand the broader fees and restrictions that apply when using NiceHash.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NiceHash Fees&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Payouts for balances less than 0.1 BTC to external wallet include a 4% fee.&lt;/li&gt;
  &lt;li&gt;Payouts for balances greater than 0.1 BTC to external wallet include a 3% fee.&lt;/li&gt;
  &lt;li&gt;Payouts for balances greater than 0.001 BTC to NiceHash wallet include a 2% fee.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;NiceHash Restrictions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Unpaid balances greater than 0.001 BTC to a NiceHash wallet will be paid daily.&lt;/li&gt;
  &lt;li&gt;Unpaid balances greater than 0.1 BTC to an external wallet will be paid daily.&lt;/li&gt;
  &lt;li&gt;Unpaid balances greater than 0.01 BTC to an external wallet will be paid weekly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, NiceHash certainly removes the complexity from mining. Simply download, benchmark and start, knowing that you will automatically be optimised for the best hashing algorithm. However, the market saturation, fees and restrictions certainly reduce the overall earning potential, especially for “hobby miners”. Therefore, if you want to explore mining and earn a few pounds, NiceHash is a reasonable choice, however, don’t expect to become a cryptocurrency millionaire.&lt;/p&gt;
</description>
        <pubDate>Sat, 27 May 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/05/27/Cryptocurrency-Mining/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/05/27/Cryptocurrency-Mining/</guid>
      </item>
    
      <item>
        <title>My Setup (2017)</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;p&gt;In 2015, I shared an overview of &lt;a href=&quot;/2015/06/05/My-Setup/&quot;&gt;my setup&lt;/a&gt; at home and work.&lt;/p&gt;

&lt;p&gt;Over the years, I have made a number of incremental updates, specifically my &lt;a href=&quot;/2016/04/01/Skylake-Build/&quot;&gt;custom-built PC&lt;/a&gt; (November 2015) and &lt;a href=&quot;/2016/11/28/MacBook-Pro-Late-2016/&quot;&gt;MacBook Pro&lt;/a&gt; (November 2016).&lt;/p&gt;

&lt;p&gt;Recently I made a few additional changes, which I thought were worth sharing.&lt;/p&gt;

&lt;p&gt;As part of an unplanned upgrade, my daily driver (15-inch MacBook Pro) was replaced with the latest specification:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;15-inch MacBook Pro with Retina Display (Mid 2017)&lt;/li&gt;
  &lt;li&gt;3.1GHz Quad-Core Intel i7 (Turbo Boost up to 4.1GHz)&lt;/li&gt;
  &lt;li&gt;16GB 2133MHz LPDDR3 RAM&lt;/li&gt;
  &lt;li&gt;512GB PCIe SSD&lt;/li&gt;
  &lt;li&gt;Intel HD Graphics 630 and AMD Radeon Pro 560 4GB GDDR5&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The performance difference between the Late 2016 and Mid 2017 MacBook Pro is very minor, with the biggest benefit being improved power efficiency, resulting in slightly better battery life. As a result, my &lt;a href=&quot;/2016/11/28/MacBook-Pro-Late-2016/&quot;&gt;original review&lt;/a&gt; still stands.&lt;/p&gt;

&lt;p&gt;I did decide to switch from Space Grey to Silver. Although Space Grey looks amazing, I discovered that it was more susceptible to visible wear and tear, specifically on the edges where I noticed minor discolouration. If you only use your Mac at home or in an office, you probably won’t experience any issues. However, when traveling, the likelihood of the occasional knock or drop is significantly increased.&lt;/p&gt;

&lt;p&gt;Alongside my Mac upgrade, I also replaced my two Dell P2715Q IPS 4K monitors, with two new Dell U2718Q IPS &lt;strong&gt;HDR&lt;/strong&gt; 4K monitors. This was another extravagant upgrade; however, I have privileged access to Dell hardware, which enables me to purchase new models at a very reasonable price.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup06.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The full specification of the Dell U2718Q can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Model:&lt;/strong&gt; Dell U2718Q&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Size:&lt;/strong&gt; 27 inches&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Panel:&lt;/strong&gt; IPS&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; 3840x2160 (163 PPI) @ 60 Hz&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;HDR:&lt;/strong&gt; HDR10&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; 5ms&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Contract Ratio:&lt;/strong&gt; 1300:1 (Typical)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness:&lt;/strong&gt; 350 cd/m2 (Typical)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Connectivity:&lt;/strong&gt; 1x DP (v1.2), 1x mDP (v1.2), 1x HDMI (v2.0)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Colour Gamut:&lt;/strong&gt; 99.9% sRGB, 99.9% Rec 709, 80.7% DCI-P3&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the main selling points of the Dell U2718Q is the “InfinityEdge”, which is basically marketing terminology for “reduced bezels”. This feature is valuable when using multiple monitors via a VESA mount. As you can see from the image below, the reduction in bezels results in a very immersive experience.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup07.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Arguably the other big benefit of the Dell U2718Q is the inclusion of High Dynamic Range (HDR10). Although certainly nice to have, my personal experience has been a little disappointing, primarily due to the modest 350 cd/m2 brightness and lack of mature software support with Windows and macOS. With that said, the monitors are still beautiful and deliver phenomenal 4K image quality (especially for the price).&lt;/p&gt;

&lt;p&gt;The rest of my home and work setup remains largely unchanged, which is detailed in my &lt;a href=&quot;/2015/06/05/My-Setup/&quot;&gt;original article&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sat, 20 May 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/05/20/My-Setup-2017/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/05/20/My-Setup-2017/</guid>
      </item>
    
      <item>
        <title>World Tour 2017</title>
        <description>&lt;p&gt;With the growth of digital across all industries, software development has emerged as a critical discipline.&lt;/p&gt;

&lt;p&gt;A key challenge for enterprise companies can be attracting top software developer talent. This challenge is increased when you consider that enterprise technology architecture often includes a lot of legacy and less popular platforms.&lt;/p&gt;

&lt;p&gt;As a result, companies are being forced to think differently about recruitment.&lt;/p&gt;

&lt;p&gt;In September 2015, my team ran a &lt;a href=&quot;/2016/08/30/Student-Hackathon/&quot;&gt;university hackathon&lt;/a&gt; in partnership with &lt;a href=&quot;http://salesforce.com&quot;&gt;Salesforce.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The goal for my company was to attract software developers, targeting individuals that were still in full time education. Our hope was to identify four developers and one scrum master, who would be awarded a one year student placement, but also the opportunity to return as a graduate.&lt;/p&gt;

&lt;p&gt;The goal for Salesforce.com was to increase awareness of their development capabilities across UK universities, which have historically focused on partnerships with Microsoft, Oracle, SAP, etc. This is especially important for Salesforce.com, which although has a rapidly growing eco-system, is not popular amongst developers (as highlighted by the &lt;a href=&quot;https://insights.stackoverflow.com/survey/2017&quot;&gt;Stack Overflow Developer Survey 2017&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stackoverflow2017.jpg&quot; alt=&quot;alt text&quot; title=&quot;Stack Overflow Survey 2017&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The hackathon was a great success and in July 2016, &lt;a href=&quot;https://www.linkedin.com/in/calum-bell-886654114/&quot;&gt;Calum&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/julesag/&quot;&gt;Jules&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/ben-ewen/&quot;&gt;Ben&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/wilson-ching-a01171109/&quot;&gt;Wilson&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/laydurafe/&quot;&gt;Lay&lt;/a&gt; (Scrum Master) joined the team.&lt;/p&gt;

&lt;p&gt;Over the year, the scrum team (known internally as Cirrus Labs) have worked on a wide range of products, covering proof of concepts, as well as internal and external business applications. They have also been exposed to a wide range of technologies, including &lt;a href=&quot;https://www.salesforce.com/products/platform/products/force&quot;&gt;Force.com&lt;/a&gt;, &lt;a href=&quot;https://heroku.com&quot;&gt;Heroku&lt;/a&gt;, &lt;a href=&quot;https://contentful.com&quot;&gt;Contentful&lt;/a&gt;, &lt;a href=&quot;http://nodejs.org&quot;&gt;Node&lt;/a&gt;, &lt;a href=&quot;https://facebook.github.io/react&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://www.postgresql.org&quot;&gt;Postgres&lt;/a&gt;, &lt;a href=&quot;https://redis.io&quot;&gt;Redis&lt;/a&gt;, as well as many developer tools such as &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;, &lt;a href=&quot;http://cloudbees.com&quot;&gt;Cloudbees&lt;/a&gt;, &lt;a href=&quot;http://checkmarx.com&quot;&gt;Checkmarx&lt;/a&gt;, &lt;a href=&quot;http://snyk.io&quot;&gt;Snyk&lt;/a&gt;, &lt;a href=&quot;https://www.jfrog.com/artifactory/&quot;&gt;Artifactory&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;In May 2017, the team were invited to share their story during the IT Keynote at the &lt;a href=&quot;https://www.salesforce.com/uk/campaign/london/&quot;&gt;Salesforce.com World Tour&lt;/a&gt; in London. The keynote was attended by 1200 people, with upwards of 5000 people watching live online. The full keynote can be found below:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/pv3euYc3agg?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Overall, this “experiment” has been an incredible success story, unlocking a scalable talent pipeline for developers, as well as supporting the growth of software development and the Salesforce.com eco-system.&lt;/p&gt;

&lt;p&gt;In July, the team will return to university for their final year. I’m confident the placement has provided them with a strong foundation for their future career and I certainly hope to work with each of them again in the future.&lt;/p&gt;
</description>
        <pubDate>Fri, 19 May 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/05/19/World-Tour-2017/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/05/19/World-Tour-2017/</guid>
      </item>
    
      <item>
        <title>Alfred Snippets</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt; is an award-winning application launcher and productivity tool for macOS.&lt;/p&gt;

&lt;p&gt;I first switched to Alfred in 2011, when looking for a simpler alternative to &lt;a href=&quot;https://qsapp.com/&quot;&gt;Quicksilver&lt;/a&gt;. Alfred is now the first application I install on a new Mac and is the primary way I interact with macOS. On average, I active Alfred 41 times per day, covering everything from opening files, switching system functions, triggering the workflow, as well as launching applications and websites.&lt;/p&gt;

&lt;p&gt;One handy feature of Alfred is &lt;a href=&quot;https://www.alfredapp.com/help/features/snippets/&quot;&gt;Snippets&lt;/a&gt;, which allow you to save frequently used text clips and expand them automatically via a keyword. A limitation of Snippets is that they do not support rich text, which means adding hyperlinks can be cumbersome.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/alfredsnippets01.jpg&quot; alt=&quot;Alfred&quot; title=&quot;Alfred&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As an example, Microsoft recently released &lt;a href=&quot;https://products.office.com/en-us/microsoft-teams/group-chat-software&quot;&gt;Teams&lt;/a&gt;, their &lt;a href=&quot;https://slack.com/&quot;&gt;Slack&lt;/a&gt; competitor and Skype for Business replacement. The tool is currently still very immature and lacks some basic functionality, for example, the ability to create a personal meeting link that can be shared via a third-party application.&lt;/p&gt;

&lt;p&gt;As this is a feature I use a lot with other collaboration tools, I decided to create a Snippet which would automatically create and share a human-readable Teams meeting link.&lt;/p&gt;

&lt;p&gt;As Alfred Snippets do not support rich text, I was forced to leverage an &lt;a href=&quot;https://www.alfredapp.com/workflows/&quot;&gt;Alfred Workflow&lt;/a&gt;, which are an incredibly powerful way of extending Alfred functionality.&lt;/p&gt;

&lt;p&gt;The workflow itself is incredibly simple:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Wait for Keyword “tmeet”.&lt;/li&gt;
  &lt;li&gt;Open a rich text file and copy the contents to the clipboard.&lt;/li&gt;
  &lt;li&gt;Paste the contents into the active window.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The image below shows the end-to-end workflow.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/alfredsnippets02.jpg&quot; alt=&quot;Alfred&quot; title=&quot;Alfred&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The “&lt;a href=&quot;https://www.alfredapp.com/help/workflows/actions/run-script/&quot;&gt;Run Script&lt;/a&gt;” action includes two lines of AppleScript. The first highlights the path of the rich text file. The second copies the contents to the clipboard.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/alfredsnippets03.jpg&quot; alt=&quot;Alfred&quot; title=&quot;Alfred&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The full script can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;set theFilePath to &quot;/Users/&amp;lt;username&amp;gt;/Documents/Scripts/Teams.rtf&quot;
set the clipboard to (read theFilePath as «class RTF »)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Finally, do not forget to create a rich text file and include the content you wish to paste. In my example, this was a hyperlink that points to a Teams meeting URL.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/alfredsnippets04.jpg&quot; alt=&quot;Alfred&quot; title=&quot;Alfred&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That’s it! The workflow is activated any time I type the keyword “tmeet”. If you are interested, the full Alfred Workflow is available on &lt;a href=&quot;https://github.com/mswbull/Alfred_Workflow&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 12 May 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/05/12/Alfred-Snippets/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/05/12/Alfred-Snippets/</guid>
      </item>
    
      <item>
        <title>DNF Cheat Sheet</title>
        <description>&lt;p&gt;Dandified Yum (DNF) is an RPM-based package manager which is used to install and update packages in various Linux distributions, including CentOS, RHEL and Fedora.&lt;/p&gt;

&lt;p&gt;DNF is a fork of the YUM package manager, it aims to improve performance and reduce memory usage. DNF was introduced in Fedora 18 and became the default in Fedora 22.&lt;/p&gt;

&lt;p&gt;The goal of this article is to highlight common DNF commands (acting as a cheat sheet).&lt;/p&gt;

&lt;p&gt;Prior to proceeding, it is important to understand the difference between a repository and a package.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A repository containers packages.&lt;/li&gt;
  &lt;li&gt;A package contains an application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Repositories and packages simplify software distribution and installation.&lt;/p&gt;

&lt;h4 id=&quot;list-all-repositories&quot;&gt;List All Repositories&lt;/h4&gt;

&lt;p&gt;The following command will list all repositories, highlighting if they are enabled or disabled.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf repolist all
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;list-all-packages&quot;&gt;List All Packages&lt;/h4&gt;

&lt;p&gt;The following command will list all packages from installed repositories.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;dnf list available | more
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;list-installed-packages&quot;&gt;List Installed Packages&lt;/h4&gt;

&lt;p&gt;The following command will list all installed packages.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;dnf list installed
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;install-package&quot;&gt;Install Package&lt;/h4&gt;

&lt;p&gt;The following command will install a specific package.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install &amp;lt;package&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;remove-package&quot;&gt;Remove Package&lt;/h4&gt;

&lt;p&gt;The following command will remove a specific package.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf remove &amp;lt;package&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;check-for-updates&quot;&gt;Check for Updates&lt;/h4&gt;

&lt;p&gt;The following command will check for updates across all enabled repositories. It does not install the updates.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf check-update
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;update-all-packages&quot;&gt;Update All Packages&lt;/h4&gt;

&lt;p&gt;The following command will update all packages.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf upgrade --refresh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;update-package&quot;&gt;Update Package&lt;/h4&gt;

&lt;p&gt;The following command will update a specific package.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf update &amp;lt;package&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;view-package-information&quot;&gt;View Package Information&lt;/h4&gt;

&lt;p&gt;The following command will show the details of a specific package.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;dnf info &amp;lt;package&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;remove-orphan-packages&quot;&gt;Remove Orphan Packages&lt;/h4&gt;

&lt;p&gt;The following command will remove any packages that are no longer required.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf autoremove
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;synchronise-all-packages&quot;&gt;Synchronise All Packages&lt;/h4&gt;

&lt;p&gt;The following command will synchronise all packages to the latest stable release.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf distro-sync
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;get-help&quot;&gt;Get Help&lt;/h4&gt;

&lt;p&gt;The following command will list all available DNF options.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;dnf help
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Additional information regarding DNF can be found on the &lt;a href=&quot;https://fedoraproject.org/wiki/DNF&quot;&gt;Fedora Wiki&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Mon, 01 May 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/05/01/DNF-Cheat-Sheet/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/05/01/DNF-Cheat-Sheet/</guid>
      </item>
    
      <item>
        <title>The Quantified Self</title>
        <description>&lt;p&gt;The Quantified Self describes the process of tracking daily life through technology. This most commonly includes, food consumed, mood and performance (mental aptitude or physical activity).&lt;/p&gt;

&lt;p&gt;Over the years, I have sporadically tracked my food consumption and fitness, however this is normally triggered by an interest in new technology, not the potential health benefits.&lt;/p&gt;

&lt;p&gt;As a result, in January I made the decision to more thoroughly track my food consumption for a period of three months (01-JAN to 31-MAR). The experiment was not specific to the technology (although that remains an interest), but instead an attempt to understand if the process would influence my behaviour and health.&lt;/p&gt;

&lt;p&gt;Regarding a goal, I did not create a custom plan, as I was not looking to lose or gain weight, instead I was simply looking to consume clean (healthy) food.&lt;/p&gt;

&lt;h3 id=&quot;background&quot;&gt;Background&lt;/h3&gt;

&lt;p&gt;Although I have a desk job, I consider myself fit and healthy. I make time for the gym almost every day, usually focused on weight training and will run on average 300+ miles per year (primarily outside). Historically, I have also competed in a range of team sports, specifically Rowing, Ice Hockey and Football.&lt;/p&gt;

&lt;p&gt;Recognising that health and fitness is as much about nutrition, I have always attempted to follow a balanced diet, but have never been overly disciplined.&lt;/p&gt;

&lt;p&gt;As a baseline, the report below provides an overview of my health statistics:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/healthreport.jpg&quot; alt=&quot;Health Report&quot; title=&quot;Health Report&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For reference, I and 32 years old, my height is 170cm (5ft 7in) and I weigh 60kg (9st 6lb).&lt;/p&gt;

&lt;h4 id=&quot;tracking&quot;&gt;Tracking&lt;/h4&gt;

&lt;p&gt;I decided to track my food consumption using &lt;a href=&quot;https://www.myfitnesspal.com&quot;&gt;MyFitnessPal&lt;/a&gt;, which is arguably the most popular health tracking application on the market.&lt;/p&gt;

&lt;p&gt;MyFitnessPal launched in 2015 as a standalone application, but was quickly acquired by athletic apparel maker, &lt;a href=&quot;http://www.underarmour.co.uk&quot;&gt;Under Armour&lt;/a&gt;, for $475 million.&lt;/p&gt;

&lt;p&gt;The food tracking system works very well, thanks to the comprehensive database and barcode scanning. It is more difficult to track homemade food, which requires you to either manually input the individual ingredients or find the closest match in the database.&lt;/p&gt;

&lt;p&gt;MyFitnessPal also does a good job of storing history, therefore if you repeat meals, the tracking process becomes a lot easier.&lt;/p&gt;

&lt;p&gt;Personally, I purchase a lot of food from &lt;a href=&quot;http://www.musclefood.com&quot;&gt;MuscleFood&lt;/a&gt;, which works great with MyFitnessPal.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/myfitnesspal01.jpg&quot; alt=&quot;MyFitnessPal&quot; title=&quot;MyFitnessPal&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once you have started tracking food, you can access several views which provide a breakdown of the nutritional values. I found the “Nutrients” view to be most useful, which lists the key metrics and your status.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/myfitnesspal02.jpg&quot; alt=&quot;MyFitnessPal&quot; title=&quot;MyFitnessPal&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you are following a specific diet plan, you might also find the “Macros” view useful, which shows a percentage breakdown for carbohydrate, fat and protein.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/myfitnesspal03.jpg&quot; alt=&quot;MyFitnessPal&quot; title=&quot;MyFitnessPal&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, I initially found the tracking process a little inconvenient and cumbersome, however, it quickly became muscle memory (I eat, I track), which was helped significantly when MyFitnessPal had learnt my habits. I would state by the end of the second week, tracking food had become a seamless part of my daily routine.&lt;/p&gt;

&lt;h4 id=&quot;results&quot;&gt;Results&lt;/h4&gt;

&lt;p&gt;When I started this experiment, I felt the most valuable outcome would be the data, allowing me to identify trends, etc.&lt;/p&gt;

&lt;p&gt;In reality, I discovered it was the process of tracking, not the data itself that resulted in the biggest change to my behaviour.&lt;/p&gt;

&lt;p&gt;Through tracking food, I found I was far more likely to avoid and refuse “bad nutrition”. It sounds crazy, but I did not want to negatively impact my records. I even found I would actively seek out more healthy food options to boost my ratings.&lt;/p&gt;

&lt;p&gt;For example, between 01-JAN and 31-MAR, I didn’t consume any chocolate, biscuits, sweets, crisps, chips or fizzy drinks, as well as became very conscious of “bad fats”, cholesterol and sugar. I also didn’t consume any alcohol for seventy consecutive days, only breaking for a few drinks whilst on a family holiday.&lt;/p&gt;

&lt;p&gt;Prior to tracking, I would rarely overindulge, however there is no question that tracking resulted in more consistency and cleaner food habits.&lt;/p&gt;

&lt;p&gt;The data itself, when reviewed, was less useful. This might have been due to my lack of expertise, as well as the fact that MyFitnessPal does not offer any user-friendly reporting and/or analytics. I did briefly pay for the premium subscription (£7.99 per month), which enables you to download the data as a CSV file. However, although the raw data enables a lot of flexibility, it requires time and effort to gain meaningful insight. In my opinion this is probably beyond most users and certainly an area that MyFitnessPal could improve.&lt;/p&gt;

&lt;p&gt;In conclusion, I would state that food tracking has resulted in a positive behaviour change and has the potential (longer-term) to improve my health.&lt;/p&gt;

&lt;p&gt;I can’t guarantee this will be the case for everyone, as I suspect my interest in health and fitness, as well as my obsessive characteristics, provided a strong foundation for this type of tracking.&lt;/p&gt;

&lt;p&gt;I would also state that the process of tracking could become unhealthy, if not positioned with realistic goals and a positive outlook. For example, tracking puts spotlight on your food habits, which some may find overwhelming, especially if they don’t see positive changes.&lt;/p&gt;

&lt;p&gt;Therefore, I would recommend before you start tracking your food, ensure you clearly understand your goals. Are you trying to eat clean (like me), lose or gain weight? As always, it is worth spending some time researching before you start and where appropriate, consulting a professional for support.&lt;/p&gt;
</description>
        <pubDate>Sat, 01 Apr 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/04/01/The-Quantified-Self/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/04/01/The-Quantified-Self/</guid>
      </item>
    
      <item>
        <title>Mapping</title>
        <description>&lt;p&gt;I first wrote about &lt;a href=&quot;/2015/08/01/wardley-maps/&quot;&gt;Wardley Maps&lt;/a&gt; in 2015, sharing a video of &lt;a href=&quot;https://www.linkedin.com/in/simonwardley/&quot;&gt;Simon Wardley&lt;/a&gt; presenting at the &lt;a href=&quot;https://conferences.oreilly.com/oscon/&quot;&gt;Open Source Conference (OSCON)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Over the years, I have explored a wide range of strategic methodologies, but I have always found myself coming back to the techniques outlined by Simon. In my opinion, mapping a business process is the most effective way of developing a comprehensive strategic plan.&lt;/p&gt;

&lt;p&gt;In a perfect world, the map(s) would also be used as a vehicle for collaboration and communication, however, in my experience, this requires a base level of knowledge regarding the methodology itself.&lt;/p&gt;

&lt;p&gt;As a result, I recently coordinated a two-day training course on mapping, led by Simon. The goal was to ensure my peers have an understanding of the methodology, hopefully providing a solid foundation for future collaboration.&lt;/p&gt;

&lt;h3 id=&quot;why-mapping&quot;&gt;Why Mapping?&lt;/h3&gt;

&lt;p&gt;Throughout the ages, maps have been used to help plan, communicate, challenge and mitigate risk.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mapping01.jpg&quot; alt=&quot;Mapping&quot; title=&quot;Mapping&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The power of a map should not be underestimated, providing valuable insight into how and why we take action. This insight can be used to identify opportunities, outmanoeuvre rivals and explore different options.&lt;/p&gt;

&lt;p&gt;As an example, the &lt;a href=&quot;https://en.wikipedia.org/wiki/Battle_of_Thermopylae&quot;&gt;Battle of Thermopylae&lt;/a&gt; (popularised by the movie &lt;a href=&quot;https://en.wikipedia.org/wiki/300_(film)&quot;&gt;300&lt;/a&gt; was fought between the Greeks and the Persians. During the two-day battle, a small Greek force blocked the only land route between Lokris and Thessaly. As a result, the Greeks were able to leverage their understanding of the terrain to overcome enormous odds, defending against the massive Persian army.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mapping02.jpg&quot; alt=&quot;Battle of Thermopylae&quot; title=&quot;Battle of Thermopylae&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Business competition can also be viewed as a landscape; therefore, the value chain of customers, suppliers, activities and processes can be mapped. This is especially critical for information and technology, which has the potential to disrupt industries and change the competitive landscape (e.g. Amazon, Airbnb, etc.) However, this is only possible if businesses can see the playing field clearly, allowing them to anticipate the future and deploy effective strategies.&lt;/p&gt;

&lt;h3 id=&quot;mapping-training&quot;&gt;Mapping Training&lt;/h3&gt;

&lt;p&gt;The mapping training was split over two-days, with a strong emphasis on tangible examples and practical exercises.&lt;/p&gt;

&lt;p&gt;This post will not go into detail regarding the training itself, however, Simon is in the process of writing a book on mapping, which is incredibly comprehensive and can be accessed for free on &lt;a href=&quot;https://medium.com/wardleymaps/on-being-lost-2ef5f05eb1ec&quot;&gt;Medium&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Simon also recently presented at the Google Cloud Next ‘17 conference, where he covered a high-level overview of mapping, which loosely aligned to the structure of the training (excluding the practical exercises, which are key).&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ek0aWj_rWYs?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The full agenda of the two-day training can be found below:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day One&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Importance of Situational Awareness&lt;/li&gt;
  &lt;li&gt;How to Map&lt;/li&gt;
  &lt;li&gt;Practice (Cup of Tea)&lt;/li&gt;
  &lt;li&gt;Basics of Economic Patterns&lt;/li&gt;
  &lt;li&gt;Practice (Ministry of Magic)&lt;/li&gt;
  &lt;li&gt;Doctrine (Bias, Contracts, Methods)&lt;/li&gt;
  &lt;li&gt;Homework (Company Example)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Day Two&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Presentation of Group Maps&lt;/li&gt;
  &lt;li&gt;Discussion&lt;/li&gt;
  &lt;li&gt;Comparison of Maps&lt;/li&gt;
  &lt;li&gt;Advance Economic Patterns&lt;/li&gt;
  &lt;li&gt;Anticipation of Change&lt;/li&gt;
  &lt;li&gt;Structure&lt;/li&gt;
  &lt;li&gt;Scenario Planning&lt;/li&gt;
  &lt;li&gt;The First 100 Days&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideally, the two-day training would be completed over multiple weeks (allowing time for homework). However, due to time constraints, we completed the training on consecutive days. This was fairly intense and in hindsight, I would recommend a break (potentially multiple weeks) between the two-days.&lt;/p&gt;

&lt;p&gt;As previously stated, the training focused on tangible examples and practical exercises. These were either completed on whiteboards or virtually, using the free &lt;a href=&quot;https://atlas2.wardleymaps.com&quot;&gt;Atlas2&lt;/a&gt; web application, which has been specifically designed to facilitate mapping.&lt;/p&gt;

&lt;p&gt;If you are interested in booking a similar training, head over to &lt;a href=&quot;http://www.wardleymaps.com&quot;&gt;wardleymaps.com&lt;/a&gt;, which is supported by the &lt;a href=&quot;https://leadingedgeforum.com&quot;&gt;Leading Edge Forum&lt;/a&gt; (part of &lt;a href=&quot;http://www.dxc.technology&quot;&gt;DXC Technology&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Finally, on the 05-OCT-2017, the Leading Edge Forum will be hosting the first &lt;a href=&quot;http://www.map-camp.com&quot;&gt;Map Camp&lt;/a&gt; in London, which is an all-day event focused on mapping. Tickets will be limited, therefore be sure to register soon if you are interested.&lt;/p&gt;
</description>
        <pubDate>Sat, 01 Apr 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/04/01/Mapping/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/04/01/Mapping/</guid>
      </item>
    
      <item>
        <title>UK EA Forum - Part I</title>
        <description>&lt;p&gt;I attend a lot of industry events, the majority of which are coordinated or sponsored by a vendor. The quality of the events always varies, however the opportunity to meet with peers and share stories is always valuable.&lt;/p&gt;

&lt;p&gt;Unfortunately, the vendor usually has a different primary objective, generally looking for feedback, or worse, attempting to sell something through a barrage of “marketecture” (marketing and architecture). These topics can be useful, but it often results in a tightly managed agenda that is focused on the vendor needs, providing little time for community discussion.&lt;/p&gt;

&lt;p&gt;In 2017, I decided to launch my own UK Enterprise Architecture Forum, with the goal to create an open community for architects, which does not include any vendor bias. The forum would be created, coordinated and facilitated by the community, with the agenda items being crowdsourced, based on what is most topical.&lt;/p&gt;

&lt;p&gt;In January, I sent out an open invite, asking people to sign-up to the forum via a Slack Team (&lt;a href=&quot;https://ukarchitecture.slack.com&quot;&gt;UKArchitecture&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The response was better than expected, with over thirty-five people, across twenty-five companies expressing an interest to join the forum. This included industry veterans from large fortune 500 companies (more than 100,000 employees), to start-ups who are at the very beginning of their journey (less than 50 employees).&lt;/p&gt;

&lt;p&gt;In March, we held the first forum (hosted at my company office), with twenty people in attendance. We had previously brainstormed agenda items (via Slack), resulting in the following topics:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Reference Architecture Methodologies&lt;/li&gt;
  &lt;li&gt;Cloud Centre of Excellence&lt;/li&gt;
  &lt;li&gt;Scaling DevOps Operating Model&lt;/li&gt;
  &lt;li&gt;Attracting and Retaining Developer Talent&lt;/li&gt;
  &lt;li&gt;Continuous Integration / Delivery&lt;/li&gt;
  &lt;li&gt;.Net Classic vs .Net Core Positioning&lt;/li&gt;
  &lt;li&gt;Managing Legacy, specifically SAP and Oracle&lt;/li&gt;
  &lt;li&gt;Data and Data Integrations&lt;/li&gt;
  &lt;li&gt;Salesforce.com App Cloud Licensing&lt;/li&gt;
  &lt;li&gt;Buzz Words… Big Data, AI, IoT&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also had two dedicated sessions, covering specific use cases. I shared our end-to-end &lt;a href=&quot;http://lifeintech.com/2016/07/20/DevOps-Automation/&quot;&gt;developer experience&lt;/a&gt;, including our Continuous Integration / Delivery setup, whilst another forum member shared their Data Lake architecture, including the journey from a traditional hierarchical data warehouse.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ukeaforum01.jpg&quot; alt=&quot;UK EA Forum&quot; title=&quot;UK EA Forum&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall the feedback from the first forum was incredibly positive and I was personally pleased with the high level of engagement and quality of the conversation.&lt;/p&gt;

&lt;p&gt;Prior to closing, we agreed to run the forum once per quarter, with a different member of the community hosting and helping to coordinate the agenda. The second forum is already booked and set to take place in June.&lt;/p&gt;

&lt;p&gt;If you are interested in joining the UK EA Forum, please don’t hesitate to contact me (&lt;a href=&quot;https://www.linkedin.com/in/mswbull/&quot;&gt;LinkedIn&lt;/a&gt;) and I can certainly add you to the distribution list.&lt;/p&gt;
</description>
        <pubDate>Fri, 31 Mar 2017 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2017/03/31/UK-EA-Forum-Part-One/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/03/31/UK-EA-Forum-Part-One/</guid>
      </item>
    
      <item>
        <title>Docker Cheat Sheet</title>
        <description>&lt;p&gt;&lt;a href=&quot;/2014/07/21/Docker-Containerisation-Virtualisation/&quot;&gt;I first wrote about Docker in 2014&lt;/a&gt;. Since that time, Docker has become an integral part of my development workflow.&lt;/p&gt;

&lt;p&gt;The goal of this article is to highlight common Docker commands (acting as a cheat sheet). I have not provided a detailed description of every command, therefore please refer to the official &lt;a href=&quot;https://docs.docker.com&quot;&gt;Docker documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;docker-start&quot;&gt;Docker Start:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo systemctl start docker
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This command will launch docker on Linux.&lt;/p&gt;

&lt;h4 id=&quot;docker-information-commands&quot;&gt;Docker Information Commands:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker version
docker ps ax
docker system info
docker df
docker system prune
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
With prolonged usage, it is likely that your Docker installation will become cluttered (old containers, etc.)&lt;/p&gt;

&lt;p&gt;Two useful housekeeping commands include &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker system info&lt;/code&gt;, which provides a summary of your environment, as well as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker system prune&lt;/code&gt;, which will reclaim space by removing all unused networks, containers, images, and volumes.&lt;/p&gt;

&lt;h4 id=&quot;docker-container-commands&quot;&gt;Docker Container Commands:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker container ls
docker container ls -a
docker container run &amp;lt;img name&amp;gt;
docker container run -it &amp;lt;img name&amp;gt;
docker container rm &amp;lt;container id&amp;gt;
docker container start &amp;lt;container id&amp;gt;
docker container stop &amp;lt;container id&amp;gt;
docker container kill &amp;lt;container id&amp;gt;
docker container exec &amp;lt;container id&amp;gt;
docker container attach &amp;lt;container id&amp;gt;
docker container logs &amp;lt;container id&amp;gt;
docker container inspect &amp;lt;container id&amp;gt;
docker container inspect &amp;lt;container id&amp;gt; | grep &amp;lt;keyword&amp;gt;
docker container commit &amp;lt;container id&amp;gt; &amp;lt;img name&amp;gt;:&amp;lt;img tag&amp;gt;
docker container -v &amp;lt;local dir&amp;gt;:&amp;lt;container dir&amp;gt; &amp;lt;img name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Unsurprisingly, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker container&lt;/code&gt; commands are the most common. Do not underestimate the value of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker container inspect&lt;/code&gt; commands, especially when used with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;grep&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--format&lt;/code&gt; flag.&lt;/p&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;container commit&lt;/code&gt; command can also be valuable, allowing you to save all changes from a containers read/write layer to the read-only image layer, therefore creating a new image.&lt;/p&gt;

&lt;p&gt;Finally, the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker container -v&lt;/code&gt; command creates a new container, which includes a mount point from your local machine. This is very useful for local development, allowing you to map a local directory to a directory within the container.&lt;/p&gt;

&lt;h4 id=&quot;docker-image-commands&quot;&gt;Docker Image Commands:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker image ls
docker image build -t &amp;lt;img name&amp;gt;:&amp;lt;img tag&amp;gt; .
docker image rm &amp;lt;img id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker image build -t&lt;/code&gt; command will build a Docker image from a Dockerfile. Ensure you navigate to the correct directory before running the command.&lt;/p&gt;

&lt;h4 id=&quot;docker-volume-commands&quot;&gt;Docker Volume Commands:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker volume create &amp;lt;vol name&amp;gt;
docker volume inspect &amp;lt;vol name&amp;gt;
docker volume rm &amp;lt;vol name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker volume inspect&lt;/code&gt; command provides an easy way to locate the volume mount point.&lt;/p&gt;

&lt;h4 id=&quot;docker-networking-commands&quot;&gt;Docker Networking Commands:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker network ls
docker network inspect &amp;lt;network name&amp;gt;
docker container run -d -p &amp;lt;host port&amp;gt;:&amp;lt;container port&amp;gt; &amp;lt;img name&amp;gt;
docker container port &amp;lt;container id&amp;gt;
docker container run -d -P &amp;lt;img id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker container port&lt;/code&gt; command can be used to verify any port mappings.&lt;/p&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-P&lt;/code&gt; flag can be used to map all ports mentioned in the EXPOSE directive of a Dockerfile.&lt;/p&gt;

&lt;h4 id=&quot;docker-logging-commands&quot;&gt;Docker Logging Commands:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker system events
docker container logs &amp;lt;container id&amp;gt;
docker container logs -f &amp;lt;container id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker container logs -f&lt;/code&gt; follows the logs, which can be useful when troubleshooting.&lt;/p&gt;

&lt;h4 id=&quot;docker-compose-commands&quot;&gt;Docker Compose Commands:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker-compose up
docker-compose down
docker-compose ps
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Docker Compose facilitates multi-container design on a single node, using a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker-compose.yml&lt;/code&gt; file.&lt;/p&gt;

&lt;h4 id=&quot;docker-swarm-commands&quot;&gt;Docker Swarm Commands:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker swarm init
docker node ls
docker swarm join-token worker
docker swarm join
docker node promote &amp;lt;node name&amp;gt;
docker node demote &amp;lt;node name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Docker Swarm facilitates multi-node design. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker swarm join-token worker&lt;/code&gt; command provides the full join command that can be used on other nodes.&lt;/p&gt;

&lt;h4 id=&quot;docker-hub-commands&quot;&gt;Docker Hub Commands:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker login
docker image push &amp;lt;docker id&amp;gt;/&amp;lt;img name&amp;gt;:&amp;lt;img tag&amp;gt;
docker image pull &amp;lt;docker id&amp;gt;/&amp;lt;img name&amp;gt;:&amp;lt;img tag&amp;gt;
docker image tag &amp;lt;img name&amp;gt;:&amp;lt;img tag&amp;gt; &amp;lt;usr&amp;gt;/&amp;lt;img name&amp;gt;:&amp;lt;img tag&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Pushing and pulling images from the &lt;a href=&quot;https://hub.docker.com&quot;&gt;Docker Hub&lt;/a&gt; is very similar to &lt;a href=&quot;https://www.github.com&quot;&gt;GitHub&lt;/a&gt;, using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker image push&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker image pull&lt;/code&gt; commands.&lt;/p&gt;

&lt;p&gt;If you need to push a root image to your Docker ID account, use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker image tag&lt;/code&gt; command.&lt;/p&gt;

&lt;h4 id=&quot;dockerfile-statements&quot;&gt;Dockerfile Statements:&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;FROM&lt;/strong&gt; = Base image to start from (usually the OS).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;RUN&lt;/strong&gt; = Run a command in the environment.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;CMD and ENTRYPOINT&lt;/strong&gt; = Define default behaviour.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;COPY and ADD&lt;/strong&gt; = Copy files into the container.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;ENV&lt;/strong&gt; = Define environment variables inside container.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;ARG&lt;/strong&gt; = Define build-time argument (set with –build-arg).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;VOLUME&lt;/strong&gt; = Create a volume.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;EXPOSE&lt;/strong&gt; = Ports to expose outside of the container.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is possible to create multi-stage builds, which include multiple &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;FROM&lt;/code&gt; statements.&lt;/p&gt;

&lt;p&gt;When creating a Dockerfile, I recommend using the Exec format (not Shell), as Shell will launch a new primary process. For example &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ENTRYPOINT [&quot;sudo&quot;, &quot;-u&quot;, java&quot;, ...]&lt;/code&gt;.&lt;/p&gt;
</description>
        <pubDate>Sat, 11 Mar 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/03/11/Docker-Cheat-Sheet/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/03/11/Docker-Cheat-Sheet/</guid>
      </item>
    
      <item>
        <title>GameMaker Studio 2</title>
        <description>&lt;p&gt;The UK is the fifth largest video game market in the world, with approximately 32.4 million people playing games, resulting in a consumer spend of £4.33 billion in 2016 (expected to grow to £5 billion in 2017).&lt;/p&gt;

&lt;p&gt;This impressive growth has helped fuel the video game development community, supporting professional career paths, as well as hobbyists.&lt;/p&gt;

&lt;p&gt;I consider myself a hobbyist, someone who enjoys developing simple video games, with no pressure, expectation or desire to achieve a financial return.&lt;/p&gt;

&lt;p&gt;I have always enjoyed top-down shooters (e.g. &lt;a href=&quot;https://en.wikipedia.org/wiki/Asteroids_(video_game)&quot;&gt;Asteroids&lt;/a&gt; / top-down racers (e.g. &lt;a href=&quot;https://en.wikipedia.org/wiki/Super_Sprint&quot;&gt;Super Sprint&lt;/a&gt;) and believe these “retro” games remain highly accessible, compelling and fun. For example, the video below highlights the Atari Super Sprint Arcade Machine, which I loved playing as a kid!&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/FwGAINxvTjQ?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Games such as Super Sprint are relatively easy to develop and thanks to their short play duration, perfectly matched for modern devices such as smartphones, tablets, etc.&lt;/p&gt;

&lt;p&gt;Although I would love to master advanced 3D game engines such as the &lt;a href=&quot;https://www.unrealengine.com/&quot;&gt;Unreal Engine&lt;/a&gt; or &lt;a href=&quot;https://unity3d.com&quot;&gt;Unity&lt;/a&gt;, the time and effort required would be significant, thankfully 2D game engines are far more accessible.&lt;/p&gt;

&lt;h3 id=&quot;introducing-gamemaker-studio&quot;&gt;Introducing GameMaker Studio&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://www.yoyogames.com/gamemaker&quot;&gt;GameMaker Studio&lt;/a&gt; is a proprietary Game Creation System (GCS) used to develop cross-platform and multi-genre video games.&lt;/p&gt;

&lt;p&gt;It supports drag and drop (declarative development), as well as a proprietary scripting language known as GameMaker Language (GML), which is based on C.&lt;/p&gt;

&lt;p&gt;GameMaker Studio is incredibly versatile, allowing exports to Windows, macOS, Ubuntu, Web (HTML5 and JavaScript), iOS, Android, FireTV, PlayStation 4 and Xbox One (&lt;a href=&quot;/2017/02/06/nintendo-switch/&quot;&gt;Nintendo Switch&lt;/a&gt; coming soon).&lt;/p&gt;

&lt;p&gt;As an example, the &lt;a href=&quot;http://www.metacritic.com/game/pc/hotline-miami&quot;&gt;critically acclaimed&lt;/a&gt; &lt;a href=&quot;http://hotlinemiami.com&quot;&gt;Hotline Miami&lt;/a&gt; was &lt;a href=&quot;https://www.yoyogames.com/blog/245/hotline-miami-developed-with-gamemaker&quot;&gt;built using GameMaker&lt;/a&gt;. Although the core concept and graphics are relatively simple, the game is highly addictive and great fun.&lt;/p&gt;

&lt;p&gt;If you are not familiar with Hotline Miami, the &lt;a href=&quot;https://www.gamespot.com&quot;&gt;GameSpot&lt;/a&gt; video review (embedded below), provides a good overview.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/53tfOJwmg9I?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Hotline Miami can be &lt;a href=&quot;http://store.steampowered.com/app/219150/Hotline_Miami/&quot;&gt;purchased on Steam&lt;/a&gt; for £6.99.&lt;/p&gt;

&lt;h4 id=&quot;drag-and-drop-dnd&quot;&gt;Drag and Drop (DnD)&lt;/h4&gt;

&lt;p&gt;The GameMaker Studio drag and drop (DnD) development is very intuitive, providing a large workspace for multiple windows, as well as collapsible sections for key information (resources, properties, console, etc.)&lt;/p&gt;

&lt;p&gt;DnD does still require a basic understanding of programming, for example, variables, conditionals constructs, etc. However, assuming you are comfortable with this terminology, the process of developing is as simple as dragging and dropping pre-defined building blocks and configuring specific options.&lt;/p&gt;

&lt;p&gt;The image below highlights the GameMaker Studio IDE, specifically an “enemy object” in a top-down shooter. Upon first glance, the GameMaker Studio IDE can look a little daunting, however, the structure is very logical, using well-known concepts such as layers and inheritance.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/gamemakerstudio01.jpg&quot; alt=&quot;GameMaker Studio&quot; title=&quot;GameMaker Studio&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The logic outlined in the image instructs the game engine to move the enemy towards the player and trigger a certain action if the enemy health (hp) is equal or less than zero.&lt;/p&gt;

&lt;h4 id=&quot;gamemaker-language-gml&quot;&gt;GameMaker Language (GML)&lt;/h4&gt;

&lt;p&gt;To unlock the full power of GameMaker Studio, you will likely need to leverage the GameMaker Language (GML). Thankfully, it is possible to view the code behind DnD actions, providing a simple way to start learning.&lt;/p&gt;

&lt;p&gt;Similar to DnD, GML is relatively easy to learn. Although not completely representative of real-world usage, the code below outlines a simple movement event.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;if keyboard_check(vk_right) {  
  x += 4;  
}  

if keyboard_check(vk_left) {  
  x -= 4;  
}  

if keyboard_check(vk_up) {  
  y -= 4;  
}  

if keyboard_check(vk_down) {  
  y += 4;  
}  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
As you can see from the code, if a specific keyboard input is detected, the object will move based on the corresponding x/y-axis.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;GameMaker Studio is not the only Game Creation System on the market and I can not claim to have tested them all, however I have used &lt;a href=&quot;http://stencyl.com&quot;&gt;Stencyl&lt;/a&gt; and &lt;a href=&quot;https://www.scirra.com&quot;&gt;Construct&lt;/a&gt; which are both excellent, but overall I believe GameMaker Studio is the most comprehensive and enjoyable to work with.&lt;/p&gt;

&lt;p&gt;GameMaker Studio includes a &lt;a href=&quot;https://account.yoyogames.com/downloads&quot;&gt;trial license&lt;/a&gt;, however, a paid license is required to export games. Frustratingly, the license model is a little restrictive, forcing you to select a specific platform (e.g. Desktop, Web, Mobile, etc.) I own the “Developer - Desktop” license, which is permanent, costs £70 and enables exports to Windows, macOS, and Ubuntu.&lt;/p&gt;

&lt;p&gt;Finally, It is worth recognising that GameMaker Studio has a vibrant community, with thousands of &lt;a href=&quot;https://forum.yoyogames.com/&quot;&gt;forums&lt;/a&gt;, &lt;a href=&quot;https://youtu.be/IWXJbUHLYXA&quot;&gt;videos&lt;/a&gt; and &lt;a href=&quot;https://marketplace.yoyogames.com&quot;&gt;asset libraries&lt;/a&gt; available to help support your development.&lt;/p&gt;
</description>
        <pubDate>Thu, 09 Mar 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/03/09/GameMaker-Studio-2/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/03/09/GameMaker-Studio-2/</guid>
      </item>
    
      <item>
        <title>Forward Healthcare</title>
        <description>&lt;p&gt;I believe technology will transform the way we think about health, putting the emphasis on proactive healthcare, instead of reactive. This is a vision I have shared many times (see my article &lt;a href=&quot;/2014/12/30/The-Healthcare-Revolution/&quot;&gt;The Healthcare Revolution&lt;/a&gt;) and continue to work towards in my role as an IT Architect at a large healthcare company.&lt;/p&gt;

&lt;p&gt;Forward is a new San Francisco start-up that has a similar vision, which is pushing the tagline “move forward with your health”.&lt;/p&gt;

&lt;p&gt;Forward was founded by Adrian Aoun, who was previously CEO at the AI company  &lt;a href=&quot;http://www.wavii.com&quot;&gt;Wavii&lt;/a&gt;, before being acquired by Google in 2013. Since then Aoun has worked at  &lt;a href=&quot;https://abc.xyz&quot;&gt;Alphabet&lt;/a&gt;, where he helped launch a number of new initiatives, including &lt;a href=&quot;https://www.sidewalklabs.com&quot;&gt;Sidewalk Labs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Leveraging the strong connections made in his previous roles, Aoun has successfully amassed an impressive group of venture and personal investors, including Khosla Ventures, Founders Fund, First Round Capital, John Doerr, Eric Schmidt, Marc Benioff, Garrett Camp and many others.&lt;/p&gt;

&lt;p&gt;The video below from &lt;a href=&quot;https://techcrunch.com&quot;&gt;TechCrunch&lt;/a&gt; does a nice job of highlighting the vision of Forward, as well as provides some insight in to their current set of services.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/u1BZmFuBm2g?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Forward hopes to support as many as 10,000 members from the San Francisco location and is already exploring other geographies. Their forty employees (many from Google, Facebook and Uber) are not only focused on health, but also looking for ways that technology can be used to automate and streamline legacy healthcare processes.&lt;/p&gt;

&lt;p&gt;Although I am impressed with the ambition of Forward and excited by the prospect of technology driving proactive healthcare, I am not convinced their business model is scalable beyond a few niche boutiques, targeting a narrow demographic. This is especially true when you consider the complexities of healthcare across the world.&lt;/p&gt;

&lt;p&gt;I also think there is a risk that Forward will unintentionally put technology before health. For example, the use of consumer electronics (e.g. Fitbit) shown in the TechCrunch video. These are nice ideas, which might add some short-term value to promote healthy living, but for most people will likely not result in a long-term lifestyle change.&lt;/p&gt;

&lt;p&gt;Overall, I believe Forward is an interesting experiment that will hopefully help demonstrate a new way of managing healthcare. The use of technology (if done right) has a lot of potential, for example the ability to complete regular self-service check-ups, where the information collected can be analysed and referenced by a healthcare professional.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/forward01.jpg&quot; alt=&quot;Forward Healthcare&quot; title=&quot;Forward Healthcare&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This approach could in theory reduce the need for time-consuming manual check-ups, as well as drive more regular health checks (resulting in early identification of potential issues). The information can then be used to facilitate a better conversation with a healthcare professional, helping to simplify what can be confusing information.&lt;/p&gt;

&lt;p&gt;I will certainly be keeping a close eye on Forward and am eager to see if their approach sparks other technology driven innovations in healthcare.&lt;/p&gt;
</description>
        <pubDate>Sat, 04 Mar 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/03/04/Forward-Healthcare/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/03/04/Forward-Healthcare/</guid>
      </item>
    
      <item>
        <title>Nintendo Switch</title>
        <description>&lt;p&gt;Today I received a Nintendo Switch, a new video game console that attempts to bridge the gap between home and handheld gaming.&lt;/p&gt;

&lt;p&gt;After the failure of the Wii U (selling only 14 million units worldwide), the Switch is possibly the most important console release in Nintendo’s 127-year history.&lt;/p&gt;

&lt;p&gt;The video below provides a good overview of the Switch in action.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/3c6MWsEE884?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The Switch follows a similar design philosophy to the Wii U, delivering a portable “tablet-like” GamePad, which can be used standalone or connected to a television. However, where the Wii U simply streamed video to the GamePad from the Wii U console, the Switch incorporates the actual console within the GamePad itself. This is an important distinction as it makes the GamePad truly portable, instead of being restricted to one location.&lt;/p&gt;

&lt;p&gt;You may question why Nintendo have decided to continue with this product philosophy. Referencing the &lt;a href=&quot;https://www.ft.com/&quot;&gt;Financial Times&lt;/a&gt; infographic below, the two most successful consoles in Nintendo’s history were the original Wii and DS.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/switch01.jpg&quot; alt=&quot;Nintendo Switch&quot; title=&quot;Nintendo Switch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The original Wii (2006) was one of the most successful home consoles of all time, selling over 100 million units worldwide. This was primarily thanks to clever market positioning, where Nintendo successfully broadened the gaming demographic to include the entire family (from young children to grandparents). The Wii also introduced an intuitive motion controller, which provided a unique selling point.&lt;/p&gt;

&lt;p&gt;The DS (2004) is the most successful handheld video game console of all time, selling over 150 million units worldwide. Like the Wii, it was also “family friendly” and differentiated itself using two displays and touchscreen technology.&lt;/p&gt;

&lt;p&gt;In short, the Switch attempts to bridge these two worlds, providing a “Wii like” home console experience with improved motion controls, as well as the ability to go handheld with a touchscreen GamePad. The focus is still on the broader gaming demographic (family friendly), but the Switch also attempts to win back mainstream gamers with a more mature, professional design and branding.&lt;/p&gt;

&lt;p&gt;In theory, this strategy will also allow Nintendo and third-party developers to maximize their return on investment, enabling them to focus development on one console, instead of multiple.&lt;/p&gt;

&lt;p&gt;Will Nintendo succeed? Here are my first impressions…&lt;/p&gt;

&lt;h4 id=&quot;introduction&quot;&gt;Introduction&lt;/h4&gt;

&lt;p&gt;Like all entertainment, gaming is very subjective. Therefore, before I provide my initial thoughts regarding the Switch, I thought it would be useful to share some insight in to my gaming interests.&lt;/p&gt;

&lt;p&gt;I definitely consider myself a casual gamer, rarely playing for more than six hours per month. My interest in gaming can be covered in three areas:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Like a good television series, movie or book, gaming provides a fun break from reality, where you can immerse yourself in a new world.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;With my software development background, I am interested in the techniques used by artists and developers when creating games. In my opinion, individuals such as &lt;a href=&quot;https://en.wikipedia.org/wiki/John_Carmack&quot;&gt;John Carmack&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Shigeru_Miyamoto&quot;&gt;Shigeru Miyamoto&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Hideo_Kojima&quot;&gt;Hideo Kojima&lt;/a&gt; are masters of the industry, pushing the boundaries of technology, art and storytelling.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Gaming is one of the toughest tasks for consumer computer hardware. As a hardware enthusiast, I follow hardware innovation closely, for example, the recent release of the &lt;a href=&quot;http://www.geforce.co.uk/hardware/10series/geforce-gtx-1080-ti/&quot;&gt;Nvidia GeForce GTX 1080 Ti&lt;/a&gt;).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I also thought it might be worth sharing a list of the games I enjoy:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Metal Gear Solid (PlayStation - 1998)&lt;/li&gt;
  &lt;li&gt;Half Life 2 (PC - 2004)&lt;/li&gt;
  &lt;li&gt;Uncharted 2: Among Thieves (PlayStation 3 - 2009)&lt;/li&gt;
  &lt;li&gt;Star Wars: Knights of the Old Republic (PC - 2003)&lt;/li&gt;
  &lt;li&gt;Final Fantasy VII (PlayStation - 1997)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you might have noticed, I enjoy cinematic, story focused games, which are predominately single-player with RPG elements.&lt;/p&gt;

&lt;p&gt;I almost exclusively play games on a PC or console, very rarely on a tablet or smartphone. I do own a PlayStation Vita, but due to poor developer support, it rarely gets used.&lt;/p&gt;

&lt;h4 id=&quot;hardware&quot;&gt;Hardware&lt;/h4&gt;

&lt;p&gt;The Switch itself is incredibly well built. Unlike the Wii U, it looks and feels like an expensive piece of technology.&lt;/p&gt;

&lt;p&gt;The 6.2-inch LCD display supports a 1280x720 resolution. This might sound low in the era of 4k, but at 237 pixels per inch, the quality is excellent. The 720p resolution also helps with games, as developers can target a less taxing resolution and still achieve a 1:1 mapping.&lt;/p&gt;

&lt;p&gt;The Joy-Con controllers are arguably the most innovative and impressive part of the Switch. As shown in the image below, they can be connected to the Switch itself and used as a traditional handheld video game console (like the PlayStation Vita).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/switch02.jpg&quot; alt=&quot;Nintendo Switch&quot; title=&quot;Nintendo Switch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Joy-Con controllers can also be disconnected from the Switch and used independently or connected to the Joy-Con Grip (an included peripheral).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/switch03.jpg&quot; alt=&quot;Nintendo Switch&quot; title=&quot;Nintendo Switch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have found myself using both configurations, even switching mid-game. For example, when simply exploring the world in Zelda: Breath of the Wild, having the Joy-Con controllers independent provides a very relaxing play style. However, in the heat of battle, I have found the more traditional layout provided by Joy-Con Grip improves my accuracy.&lt;/p&gt;

&lt;p&gt;When playing in these configurations, the Switch itself is either docked (outputting to the television) or stood on a flat surface using the integrated kick-stand.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/switch04.jpg&quot; alt=&quot;Nintendo Switch&quot; title=&quot;Nintendo Switch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, the Joy-Con controllers can be split and shared, allowing for local multi-player. Due to the small size of each Joy-Con, this configuration looks slightly ridiculous, however it is surprisingly usable. I would argue the left Joy-Con is slightly more comfortable, thanks to the placement of the analogue stick, but both work well for quick, ad-hoc gaming sessions.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/switch05.jpg&quot; alt=&quot;Nintendo Switch&quot; title=&quot;Nintendo Switch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall I have been very impressed with the Switch hardware, specifically the Joy-Con controllers. Although they look small and fragile, I have found them to be very comfortable and robust. They are also packed with technology, including traditional gaming buttons, an accelerometer, gyroscope, infrared depth sensor, Bluetooth, Near-Field Communication and haptic feedback.&lt;/p&gt;

&lt;p&gt;The only disappointment with the hardware is the previously mentioned kick-stand, which is flimsy and poorly positioned, as you can’t charge and play simultaneously and the Switch feels like it could topple over at any time. This is a minor complaint, but a little surprising when you consider the otherwise excellent build quality.&lt;/p&gt;

&lt;h4 id=&quot;software&quot;&gt;Software&lt;/h4&gt;

&lt;p&gt;There is not much to say about the software on the Nintendo Switch, simply because the operating system is incredibly lightweight&lt;/p&gt;

&lt;p&gt;In short, you are provided with a simply row of tiles, with some basic features to manage screenshots, system preferences, etc.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/switch06.jpg&quot; alt=&quot;Nintendo Switch&quot; title=&quot;Nintendo Switch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This minimal approach is not necessarily a bad thing, as it would appear Nintendo have focused on getting the basics right. For example, the console feels very responsive and load times are impressively short (especially when compared with video games consoles that rely on spinning media).&lt;/p&gt;

&lt;p&gt;Nintendo have also nailed the most important feature of the Switch, switching between docked and handheld. Dare I say this is almost a magical experience, where you can be mid-game and simply dock or undock the Switch without any interruption.&lt;/p&gt;

&lt;p&gt;The Switch doesn’t yet support any other type of entertainment (streaming music and video) and the included store is embarrassingly basic, however I am confident these things will improve over time.&lt;/p&gt;

&lt;p&gt;As a result, although the Switch software does not include any flashy features, it has delivered rock solid stability, that is fast and simple to use.&lt;/p&gt;

&lt;h4 id=&quot;performance&quot;&gt;Performance&lt;/h4&gt;

&lt;p&gt;Although not confirmed by Nintendo, early analysis shows the Switch is running an Nvidia Tegra X1 SoC, which includes four ARM Cortex-A57 CPU cores and four ARM Cortex-A53 CPU cores, along with 256 Maxwell-based CUDA GPU cores and 4GB of LPDDR4.&lt;/p&gt;

&lt;p&gt;The CPU cores are clocked at 1020MHz, while the GPU cores vary between 307.2MHz and 768MHz when the Switch is docked. The memory speed is also variable, running at 1331MHz and 1600MHz when docked.&lt;/p&gt;

&lt;p&gt;Although the Switch specification is not ground breaking and it certainly won’t rival the PlayStation 4 Pro or a gaming PC, it is still impressive, especially when you consider it is a handheld video game console.&lt;/p&gt;

&lt;p&gt;As proof of its potential, the video below shows Tomb Raider (2013) running at 1080p (maximum settings) on an Nvidia Shield, which is also powered by the Nvidia Tegra X1 SoC.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/kasKG_IvI5g?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;em&gt;NOTE: The original video was removed, therefore I have replaced it with a video showing Tomb Raider running on the Nvidia Shield TV, which is representative of the Nintendo Switch.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To think that you could be playing games of this quality on a handheld is an exciting prospect.&lt;/p&gt;

&lt;h4 id=&quot;battery-life&quot;&gt;Battery Life&lt;/h4&gt;

&lt;p&gt;Nintendo state the Switch battery can last up to five hours, however this will vary significantly depending on the game. In Zelda: Breath of the Wild, I have been getting closer to two hours, which I believe is adequate, however mainly because I rarely game in a single session for more than one hour.&lt;/p&gt;

&lt;p&gt;If you do require more than two hours from a single gaming session, I recommend you invest in an additional &lt;a href=&quot;https://www.amazon.co.uk/Nintendo-UK-2510646-Switch-Adapter/dp/B01MT8EQFF/&quot;&gt;AC Adapter&lt;/a&gt; and/or an external battery. Thanks to the fact that the Switch uses USB Type-C, external batteries are widely available and reasonably cheap. For example, I would recommend &lt;a href=&quot;https://www.amazon.co.uk/gp/product/B019GJLER8&quot;&gt;Anker PowerCore 10000 Portable Charger&lt;/a&gt;, which is only £20 and provides an additional 6 hours of game time while playing Zelda: Breath of the Wild at 50% screen brightness.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;Overall I am very impressive with the Switch. In terms of hardware, software, performance and battery life, I think Nintendo have found the right balance, providing a strong foundation to build on. Any minor complaints that I do have are so small that they are barely worth mentioning.&lt;/p&gt;

&lt;p&gt;However, you may have noticed that I have not mentioned the games…&lt;/p&gt;

&lt;p&gt;Like most new consoles, the launch line-up for the Switch is a little sparse. In fact, I would state that the only game worth owning is Zelda: Breath of the Wild. The good news is that this game is astonishing and is already one of the highest rated games of all time on any platform (&lt;a href=&quot;http://www.metacritic.com/game/wii-u/the-legend-of-zelda-breath-of-the-wild&quot;&gt;metacritic&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Although I fully expect Nintendo to quickly release several first-party favourites, such as Mario Kart, Super Mario, Mario Party, etc. These games alone will not be enough to drive significant console sales. To achieve real scale, I believe Nintendo will need support from third-party and independent developers.&lt;/p&gt;

&lt;p&gt;The reason that this could be a problem is that the Switch is a totally different proposition to the PlayStation 4, Xbox One and PC, which all leverage a similar architecture, making multi-platform releases a simpler process. The Switch is a different beast, with a different architecture and unique characteristics that would need to be targeted directly for the best results.&lt;/p&gt;

&lt;p&gt;This is the catch-22, as third-party developers are unlikely to target the Switch unless it has enough sales to support their return on investment, however the Switch is unlikely to sell in large numbers without a strong games catalogue.&lt;/p&gt;

&lt;p&gt;As a result, I believe the success or failure of the Switch will not be determined by the console itself (which I believe is a success), instead it will live or die on Nintendo’s ability to encourage third-party developers to target the console.&lt;/p&gt;

&lt;p&gt;Let us hope that Nintendo have a strong go-to-market strategy to drive this level of adoption, otherwise all of their hard work may have been for nothing.&lt;/p&gt;
</description>
        <pubDate>Mon, 06 Feb 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/02/06/Nintendo-Switch/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/02/06/Nintendo-Switch/</guid>
      </item>
    
      <item>
        <title>The Financial Revolution</title>
        <description>&lt;p&gt;As stated by Marc Andreessen, I believe “&lt;a href=&quot;https://www.wsj.com/articles/SB10001424053111903480904576512250915629460&quot;&gt;software is eating the world&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;Having worked in healthcare for the past decade, I remain convinced that technology will revolutionise the way we think about health, transforming a reactive industry by putting the emphasis on proactive healthcare (see my article &lt;a href=&quot;/2014/12/30/The-Healthcare-Revolution/&quot;&gt;The Healthcare Revolution&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;As a technologist, I also pay close attention to other industries, especially markets that are highly regulated like healthcare. This leads me to financial services, specifically banking…&lt;/p&gt;

&lt;p&gt;In 2017, I rarely carry cash, almost all of my transactions are made using a debt card and wherever possible, via contactless on my smartphone or watch.&lt;/p&gt;

&lt;p&gt;Any payments to friends and family or institutes (e.g. Bills) are completed online and I can honestly state I haven’t written a cheque in the past decade.&lt;/p&gt;

&lt;p&gt;The regular review of my finances occurs via a mobile app, allowing me to quickly see a snapshot of my current balance and therefore forecast future expenses.&lt;/p&gt;

&lt;p&gt;In short, my entire banking experience is digital and I suspect this is the same for most people of my age (32) and younger.&lt;/p&gt;

&lt;p&gt;Unfortunately, most banks operating in the UK were founded long before “digital” became a buzzword, for example, HSBC was founded in 1865. Although this heritage brings a wealth of experience, it also brings a wealth of legacy technology and bureaucracy, that often impacts the company’s ability to deliver cutting-edge digital experiences.&lt;/p&gt;

&lt;h4 id=&quot;introducing-monzo&quot;&gt;Introducing Monzo&lt;/h4&gt;

&lt;p&gt;What if a bank was created today, not 150 years ago (like HSBC)? Would it have the same priorities? Would it have the same operating model? Would it use technology the same way? Almost certainly not!&lt;/p&gt;

&lt;p&gt;Monzo (founded in 2015) is a company looking to revolutionize financial services for the digital age.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/monzo01.jpg&quot; alt=&quot;Monzo&quot; title=&quot;Monzo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The majority of UK banks today attempt to find a balance between old and new, for example they maintain a physical presence on high street, whilst offering some services online or via mobile apps. This split operating model is completely understandable and even offers some value, however it is also a significant overhead, which in my opinion reduces their ability to deliver a truly exceptional customer experience.&lt;/p&gt;

&lt;p&gt;Monzo is immediately different, being a digital, mobile-only bank. As a result, they can be laser focused on delivering the best possible customer experience through a unified channel.&lt;/p&gt;

&lt;p&gt;Another key differentiator is interoperability. UK banks today provide little to no programmatic access to their financial data and make almost no attempt to embrace the developer community to help enrich the digital experience. Similar to healthcare industry, I believe this decision is largely driven out of fear and an irrational view that modern technology cannot be trusted.&lt;/p&gt;

&lt;p&gt;Monzo is an open API-Centric company, providing developers access to view transactions and accounts, receive notifications for events and create custom items that appear in the mobile app. Monzo also proactively embrace the developer community, by running sponsored hackathons and maintaining multiple developer channels (&lt;a href=&quot;https://developers.monzo.com&quot;&gt;Monzo for Developers&lt;/a&gt;, &lt;a href=&quot;https://github.com/monzo&quot;&gt;Monzo GitHub&lt;/a&gt;, and &lt;a href=&quot;https://devslack.getmondo.co.uk&quot;&gt;Slack&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Finally, UK banks today are inherently closed, meaning they don’t tend to share or look for feedback on their strategy, roadmaps and/or new features. If you have a question or concern, this often results in a call to an offshore call centre.&lt;/p&gt;

&lt;p&gt;Monzo is open! Anyone can review and contribute to the &lt;a href=&quot;https://trello.com/b/9tcaMB4w/monzo-transparent-product-roadmap&quot;&gt;Monzo Product Roadmap&lt;/a&gt; at any time. Monzo even have an &lt;a href=&quot;https://trello.com/b/ID7Li0ni/monzo-extraordinary-ideas-board&quot;&gt;Extraordinary Ideas Board&lt;/a&gt;, which further highlights their ambition to revolutionize the financial industry. If you do need support or simply have a question, the &lt;a href=&quot;https://community.monzo.com&quot;&gt;Monzo Community&lt;/a&gt; and &lt;a href=&quot;https://monzo.com/help/&quot;&gt;Monzo Help&lt;/a&gt; pages are excellent resources, which cover the good, the bad and the ugly, all in the open!&lt;/p&gt;

&lt;h4 id=&quot;the-monzo-experience&quot;&gt;The Monzo Experience&lt;/h4&gt;

&lt;p&gt;Up to now everything sounds great, right? However, a great company culture alone is not enough, unless the product is equally great!&lt;/p&gt;

&lt;p&gt;My wife and I have been using Monzo since August 2016 and thankfully I can confirm the mobile app and customer experience has been phenomenal.&lt;/p&gt;

&lt;p&gt;The mobile app is beautiful, aggressively simple and lightning fast, especially when compared to other UK banks, which tend to have outdated, cumbersome and slow apps.&lt;/p&gt;

&lt;p&gt;All of your transactions are clearly displayed on a timeline, which is immediately familiar to anyone that has used a popular social network such as Facebook or Twitter.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/monzo02.jpg&quot; alt=&quot;Monzo App&quot; title=&quot;Monzo App&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Selecting a specific transaction immediately displays more detail, including the merchant, location and category. It also provides a simple way to attach notes and receipts.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/monzo03.jpg&quot; alt=&quot;Monzo App&quot; title=&quot;Monzo App&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can also set targets to help manage your budget, as well as review your transactions per month. The Monzo app will automatically group similar items, allowing you to quickly understand the breakdown of your finances.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/monzo04.jpg&quot; alt=&quot;Monzo App&quot; title=&quot;Monzo App&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unlike other banking apps, the Monzo app also provides direct access to your card services. For example, you can “freeze” and “defrost” your card instantly, at the click of a button. You can also manage your PIN and request a new card (in the event yours is lost or stolen). These are the types of services that traditionally require you to contact a call centre.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/monzo05.jpg&quot; alt=&quot;Monzo App&quot; title=&quot;Monzo App&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alongside the app, the customer service has been equally impressive. For example, Monzo will instantly send you a push  notification anytime an event occurs on your account, which helps ensure you are always kept in the loop.&lt;/p&gt;

&lt;p&gt;Finally, I highly recommend you read the blog post “&lt;a href=&quot;https://monzo.com/blog/2017/01/27/designing-product-mental-health-mind/&quot;&gt;Designing a product with mental health issues in mind&lt;/a&gt;”. This is another amazing example of how Monzo think differently about their customer experience, something that should be an inspiration to other companies across all industries.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;In summary, I have been very impressed with Monzo!&lt;/p&gt;

&lt;p&gt;It is still early days and at the time of writing, Monzo are still awaiting their full banking license, which will unlock a lot of new features. However, I believe they are off to an impressive start, with the right culture, technical expertise and ambition.&lt;/p&gt;

&lt;p&gt;I believe the biggest challenge for Monzo will be their ability to expand beyond the “early adopters”. For example, they have created a strong following amongst the technology community, but to be truly successful, they must also attract the general public, specifically their target demographic (&lt;a href=&quot;https://en.wikipedia.org/wiki/Millennials&quot;&gt;Millennials&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Generation_Z&quot;&gt;Generation Z&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;In my opinion, Monzo must continue to focus on customer experience and technical innovation, as well as target services that appeal to the younger generation. For example, university students and young professional who are more likely to break from tradition and are open to exploring less mature services in favour of convenience.&lt;/p&gt;

&lt;p&gt;I will be watching closely and hoping that this is the start of the financial revolution!&lt;/p&gt;
</description>
        <pubDate>Sun, 05 Feb 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/02/05/The-Financial-Revolution/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/02/05/The-Financial-Revolution/</guid>
      </item>
    
      <item>
        <title>Heroku CI</title>
        <description>&lt;p&gt;&lt;em&gt;NOTE: At the time of writing, this article positions a product that is not yet generally available. Heroku provided prior permission to discuss this topic publicly.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Heroku Platform as a Service (PaaS) has always had a strong focus on developer experience, a prime example being the launch of &lt;a href=&quot;https://blog.heroku.com/heroku_flow_pipelines_review_apps_and_github_sync&quot;&gt;Pipelines&lt;/a&gt; in 2015.&lt;/p&gt;

&lt;p&gt;A pipeline provides a highly visual way of managing the deployment stages in a continuous delivery workflow, covering development, staging and production.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/herokuci01.jpg&quot; alt=&quot;alt text&quot; title=&quot;Heroku CI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although Pipelines was a significant step forward for the developer experience, it did not inherently include any Continuous Integration capabilities. As a result, development teams were forced to setup and maintain a third-party solution, such as &lt;a href=&quot;https://jenkins.io/&quot;&gt;Jenkins CI&lt;/a&gt;, &lt;a href=&quot;https://travis-ci.org/&quot;&gt;Travis CI&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;Since November, I have had access to a new feature (currently pre-release) known as Heroku CI. As the name indicates, Heroku CI embeds Continuous Integration into the continuous delivery workflow.&lt;/p&gt;

&lt;p&gt;For those who are not familiar, Continuous Integration (CI) is the practice of continuously merging all developer working copies to a shared mainline. The rational for this approach is to reduce the risk of code integration issues by focusing on small pieces of effort, applied frequently. CI also promotes the use of proactive automated testing, security analysis and quality checks.&lt;/p&gt;

&lt;p&gt;In short, I am a big advocate of CI (see my previous articles &lt;a href=&quot;/2015/06/19/Enterprise-Force.com-Architecture-Continuous-Integration/&quot;&gt;Force.com Architecture - CI&lt;/a&gt; and &lt;a href=&quot;/2016/07/20/DevOps-Automation/&quot;&gt;DevOps Automation&lt;/a&gt;) and therefore I am pleased to see this feature become a core part of Heroku.&lt;/p&gt;

&lt;h4 id=&quot;how-does-heroku-ci-work&quot;&gt;How does Heroku CI work?&lt;/h4&gt;

&lt;p&gt;Just like Pipelines, Heroku CI is tightly embedded into the developer workflow, meaning the setup and maintenance is incredibly simple, relying on the platform and tight integration with &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt; to do all the heavy lifting.&lt;/p&gt;

&lt;p&gt;Getting started (assuming Heroku CI is enabled in your org) is as simple as creating an “app.json” file (or “app-ci.json” in the pre-release) and storing it in your application repository.&lt;/p&gt;

&lt;p&gt;The “app.json” file follows a manifest format and is where you specify your application dependencies and required configuration for CI. I would recommend becoming familiar with the &lt;a href=&quot;https://devcenter.heroku.com/articles/app-json-schema&quot;&gt;app.json schema&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;An example of the Heroku CI configuration within an “app.json” file can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;{  
  &quot;name&quot;: &quot;Example-App-JSON&quot;,  
  &quot;description&quot;: &quot;An example app.json.&quot;,  
  &quot;keywords&quot;: [  
    &quot;Node.JS&quot;,  
    &quot;JavaScript&quot;  
  ],  
  &quot;website&quot;: &quot;https://abc.herokuapp.com&quot;,  
  &quot;repository&quot;: &quot;https://github.com/abc&quot;,  
  &quot;success_url&quot;: &quot;/&quot;,  
  &quot;scripts&quot;: {  
    &quot;test&quot;: &quot;npm test&quot;  
  },  
  &quot;env&quot;: {  
    &quot;API_TOKEN&quot;: {  
        &quot;required&quot;: true  
    },  
    &quot;GITHUB_USERNAME&quot;: {  
        &quot;required&quot;: true  
    }  
  },  
  &quot;formation&quot;: {  
    &quot;web&quot;: {  
        &quot;quantity&quot;: &quot;2&quot;,  
        &quot;size&quot;: &quot;Performance-M&quot;  
    }  
  },  
  &quot;image&quot;: &quot;heroku/nodejs&quot;,  
  &quot;addons&quot;: [  
    &quot;newrelic&quot;,  
    &quot;papertrail&quot;,  
    &quot;heroku-redis&quot;  
  ],  
  &quot;buildpacks&quot;: [  
    {  
        &quot;url&quot;: &quot;heroku/nodejs&quot;  
    }  
  ]  
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once your “app.json” file has been created, enabling CI within Heroku is as simple as clicking the “Wait for CI to pass before deploy” button from the application “Deploy” tab.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/herokuci02.jpg&quot; alt=&quot;Heroku CI&quot; title=&quot;Heroku CI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Heroku will automatically look for the “app.json” file each time a commit is pushed to the connected GitHub repository. If your configured CI tasks complete successfully, the build will occur as normal. In the event of a failure, the developer will receive a notification, including the specific error message.&lt;/p&gt;

&lt;p&gt;Heroku maintains all CI results in a new “Tests” tab, which can be found on the specific Pipeline. Here you can see a history of every build (pass and fail), including the specific test setup and results.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/herokuci03.jpg&quot; alt=&quot;Heroku CI&quot; title=&quot;Heroku CI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Similar to Pipelines, Heroku CI is tightly integrated with GitHub, meaning that the CI progress (real-time) and results are also shown within a Pull Request.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/herokuci04.jpg&quot; alt=&quot;Heroku CI&quot; title=&quot;Heroku CI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Internally, Heroku CI is completing the following seven steps for each build.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;CI App Provisioned&lt;/strong&gt; - CI app created, Performance-M dyno used by default.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Add-ons Provisioned&lt;/strong&gt; - Not all add-ons will be supported by CI.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Buildpacks Invoked&lt;/strong&gt; - Officially supported buildpacks will be used be default.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tests Setup&lt;/strong&gt; - Used to install any dependencies not installed by the buildpacks.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tests Executed&lt;/strong&gt; - If tests exit with a zero status, the run is flagged as a success.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Results Reported&lt;/strong&gt; - Available in Heroku and accessible via GitHub.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cleanup&lt;/strong&gt; - CI app deleted, any test runs over an hour are automatically terminated.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;recommended-ci-setup&quot;&gt;Recommended CI setup&lt;/h4&gt;

&lt;p&gt;The specifics of your CI setup will likely differ per application. However, I’ve been testing with the following setup on &lt;a href=&quot;https://nodejs.org/&quot;&gt;Node&lt;/a&gt; applications. All automation tasks were configured using &lt;a href=&quot;http://gulpjs.com&quot;&gt;Gulp&lt;/a&gt; and the standard “package.json” file.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Unit Testing&lt;/strong&gt; - Using the &lt;a href=&quot;https://mochajs.org&quot;&gt;Mocha&lt;/a&gt; JavaScript test framework.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Standards Checks&lt;/strong&gt; - Using the &lt;a href=&quot;http://eslint.org&quot;&gt;ESLint&lt;/a&gt;, &lt;a href=&quot;https://github.com/airbnb/javascript&quot;&gt;AirBnb JavaScript Style Guide&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Source Code Analysis&lt;/strong&gt; - Using &lt;a href=&quot;https://www.checkmarx.com&quot;&gt;Checkmarx SAST&lt;/a&gt; to scan custom written code.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dependency Scanning&lt;/strong&gt; - Using &lt;a href=&quot;https://snyk.io&quot;&gt;snyk&lt;/a&gt; to scan dependencies (e.g. NPM).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Automated UI Testing&lt;/strong&gt; - Using &lt;a href=&quot;https://saucelabs.com&quot;&gt;Sauce Labs&lt;/a&gt; to manage UI tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;Overall I’ve been very impressed with Heroku CI!&lt;/p&gt;

&lt;p&gt;It is very easy to setup and seamlessly integrates into the developer workflow. The actual test runs are lightning fast, with the output being easy to consume.&lt;/p&gt;

&lt;p&gt;I also like the decentralize architecture, allowing development teams to configure their CI setup as required, without needing to interact with a central authority. This is similar to &lt;a href=&quot;https://travis-ci.org/&quot;&gt;Travis CI&lt;/a&gt; and &lt;a href=&quot;https://circleci.com&quot;&gt;Circle CI&lt;/a&gt;, however Heroku CI includes a more robust security model.&lt;/p&gt;

&lt;p&gt;My only concern would be the proprietary nature of Heroku CI. For example, if your team works across multiple development platforms (e.g. Heroku and CloudFoundry) you might decide to leverage a generic, open-source tool.&lt;/p&gt;

&lt;p&gt;Finally, it is worth noting that Heroku CI also supports Force.com Apex and Lightning, which is part of the new &lt;a href=&quot;https://developer.salesforce.com/platform/dx&quot;&gt;Salesforce DX&lt;/a&gt; initiative. Longer-term, I anticipate the Heroku developer experience will be used as the foundation for Force.com. This will not only improve the Force.com developer experience, but also provide consistency across the two platforms.&lt;/p&gt;
</description>
        <pubDate>Tue, 31 Jan 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/01/31/Heroku-CI/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/01/31/Heroku-CI/</guid>
      </item>
    
      <item>
        <title>Buzzwords or Revolution?</title>
        <description>&lt;p&gt;In October my team and I presented a number of sessions at &lt;a href=&quot;/2016/10/07/Dreamforce-2016/&quot;&gt;Dreamforce 2016&lt;/a&gt;. Over recent weeks, these sessions have become available online.&lt;/p&gt;

&lt;p&gt;The first session was titled “Microservices, DevOps, Containers: Buzzwords or a Developer-Led Revolution?”. &lt;a href=&quot;https://www.linkedin.com/in/jon-thomas-9ba008a&quot;&gt;Jon Thomas&lt;/a&gt; and I  provided the customer perspective, with &lt;a href=&quot;https://www.linkedin.com/in/jamesward&quot;&gt;James Ward&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/rahulawasthy&quot;&gt;Rahul Awasthy&lt;/a&gt; from Salesforce.com sharing their experience from across the industry.&lt;/p&gt;

&lt;p&gt;The session was great fun and I even got to briefly demo LillyDev (38mins), a digital channel used to facilitate software development across the enterprise.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.salesforce.com/video/306437/&quot;&gt;&lt;img src=&quot;/images/posts/dreamforce201605.jpg&quot; alt=&quot;Dreamforce 2016&quot; title=&quot;Dreamforce 2016&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second session was titled “Red Pill Or Blue? How Eli Lilly Chose Red On The Path To IT Transformation”. &lt;a href=&quot;https://www.linkedin.com/in/richard-grogut-a32b321&quot;&gt;Rich Grogut&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/shellie-sturm-48783610&quot;&gt;Shellie Sturm&lt;/a&gt; delivered the presentation, which covered our customer journey from an IT perspective. This was one of the most popular sessions at Dreamforce, therefore well worth a watch.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.salesforce.com/video/333287/&quot;&gt;&lt;img src=&quot;/images/posts/dreamforce201606.jpg&quot; alt=&quot;Dreamforce 2016&amp;quot;&quot; title=&quot;Dreamforce 2016&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, we joined Apirrio on stage in a session titled “Eli Lilly: A Real-Life Success Story With Heroku And 12 Factor Apps”. &lt;a href=&quot;https://www.linkedin.com/in/jon-thomas-9ba008a&quot;&gt;Jon Thomas&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/rick-arnett-74274522&quot;&gt;Rick Arnett&lt;/a&gt; discussed their experience building enterprise-quality, production applications on Heroku.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.salesforce.com/video/306498/&quot;&gt;&lt;img src=&quot;/images/posts/dreamforce201607.jpg&quot; alt=&quot;Dreamforce 2016&amp;quot;&quot; title=&quot;Dreamforce 2016&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In total our team presented twelve sessions at Dreamforce 2016, which included two keynotes. As more of the sessions appear online I will be sure to post the links.&lt;/p&gt;
</description>
        <pubDate>Sat, 28 Jan 2017 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2017/01/28/Buzzwords-or-Revolution/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2017/01/28/Buzzwords-or-Revolution/</guid>
      </item>
    
      <item>
        <title>MacBook Pro (Late 2016)</title>
        <description>&lt;p&gt;On 27th October 2016, Apple announced the next generation MacBook Pro.&lt;/p&gt;

&lt;p&gt;I purchased my first Apple notebook in 2005, the legendary PowerBook G4, which served as my primary computer throughout university.&lt;/p&gt;

&lt;p&gt;As a long-time Windows user, I remember being initially skeptical about the switch to the Apple eco-system, but the rock-solid experience offered by OS X (AKA macOS) and the refined hardware won me over. Since that day I have always used an Apple notebook as my daily driver.&lt;/p&gt;

&lt;p&gt;I (like many) had been eagerly anticipating the launch of a new MacBook Pro, ready to place my order the second the Apple Store re-opened. Below was my chosen specification:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;15-inch MacBook Pro with Retina Display (Late 2016)&lt;/li&gt;
  &lt;li&gt;2.9GHz Quad-Core Intel i7 (Turbo Boost up to 3.8GHz)&lt;/li&gt;
  &lt;li&gt;16GB 2133MHz LPDDR3 RAM&lt;/li&gt;
  &lt;li&gt;512GB PCIe SSD&lt;/li&gt;
  &lt;li&gt;Intel HD Graphics 530 and AMD Radeon Pro 460 4GB GDDR5&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Due to the “build to order” components, the delivery lead time was quite long, meaning the notebook did not arrive until 28th November. Now that I have had a few weeks of usage, I thought I would share some of my initial thoughts.&lt;/p&gt;

&lt;p&gt;I’ve split the article into six sections (Build Quality, USB-C, Performance, Keyboard and Trackpad, Touch Bar and Battery Life) with a conclusion at the end.&lt;/p&gt;

&lt;p&gt;Before proceeding, let me highlight my computing workflow. On average my Mac is in use twelve hours per day, primarily focused on productivity tasks (e-mail, calendaring, document creation), software development (Force.com, Node, Ruby), administrative tasks (cloud, virtual machines) and some video creation (Final Cut Pro, Adobe After Effects).&lt;/p&gt;

&lt;h4 id=&quot;build-quality&quot;&gt;Build Quality&lt;/h4&gt;

&lt;p&gt;Apple build quality remains the best in the business. The new MacBook Pro essentially merges the form factor of the previous generation MacBook Pro, with the looks of the newer 12-inch MacBook. The chassis is both rigid and dense, whilst at the same time feeling incredibly refined. I honestly believe this is the best-manufactured notebook ever, delivering an unparalleled level of precision.&lt;/p&gt;

&lt;p&gt;In short, although Windows laptops have come a long way in recent years, Apple continue to lead when it comes to build quality.&lt;/p&gt;

&lt;h4 id=&quot;usb-c&quot;&gt;USB-C&lt;/h4&gt;

&lt;p&gt;One of the most controversial topics of the new MacBook Pro was the transition to USB-C. It was a bold choice, as it required Apple to remove the well-established USB-A port and the much loved MagSafe connector (a previous unique selling point of the MacBook).&lt;/p&gt;

&lt;p&gt;In the short-term, I fully anticipate some pain. I have already had to buy &lt;a href=&quot;https://www.amazon.co.uk/gp/product/B01D641R0I/&quot;&gt;new adapters&lt;/a&gt; (£11.99) for my monitors, as well as a &lt;a href=&quot;https://www.amazon.co.uk/gp/product/B01KJ1HEV2/&quot;&gt;USB-C Hub&lt;/a&gt; (£62.99) that supports USB-A, an SD Card Reader and HDMI.&lt;/p&gt;

&lt;p&gt;However, once purchased, day-to-day usage is not that much different from the previous generation MacBook Pro. For example, I used to connect four cables to “dock my Mac”, but now I only have to connect three (2x Display Port and the USB-C Hub, which connects to power, my external headset and webcam).&lt;/p&gt;

&lt;p&gt;Personally, I believe the advantages of USB-C far outweigh the disadvantages, as Thunderbolt 3 is a highly versatile interface, thanks to the incredible bandwidth (40 Gbit/s) available. I am confident that we will see USB-C become the new standard in 2017.&lt;/p&gt;

&lt;p&gt;I will however miss MagSafe, which has saved my Mac on more than one occasion. Maybe in a future release, Apple can look to find a way to reintroduce it.&lt;/p&gt;

&lt;h4 id=&quot;performance&quot;&gt;Performance&lt;/h4&gt;

&lt;p&gt;When the MacBook Pro was first announced, a lot of people were disappointed that Apple were using Intel Skylake, instead of Kaby Lake. It is fair to say that Skylake is an older architecture, first launched in August 2015. However, the Kaby Lake architecture is considered an “optimize step”, as it was the first to break from Intel’s previous “tick-tock” manufacturing and design model, instead shifting to “process-architecture-optimization”. As a result, the Kaby Lake architecture does not offer significant performance improvements over Skylake. It should also be noted that the required Kaby Lake parts of the 15-inch MacBook Pro were not available in October 2016 (although we have seen Apple receive early access to Intel parts in the past).&lt;/p&gt;

&lt;p&gt;Looking at the memory, Apple decided to stick with LPDDR3, with a maximum capacity of 16GB. I believe LPDDR3 was the right choice, as an equivalent energy efficient offering is not yet available for DDR4. It is also unlikely that memory bandwidth will be a bottleneck, meaning DDR4 would have likely resulted in lower battery life, with minimal performance gains. I very rarely require more than 16GB for my workload, but would still have liked a 32GB option, even if this resulted in reduced battery life.&lt;/p&gt;

&lt;p&gt;Regarding storage, in short, the performance is insane! Storage in an area where Apple have really excelled over the past few years and this MacBook Pro is no exception. The read (3.1Gb/s) and write (2.2Gb/s) speeds are so fast that they actually break most benchmarks. Needless to say, you will struggle to find faster storage in a consumer device without a RAID-0 setup.&lt;/p&gt;

&lt;p&gt;The choice of dedicated graphics was another controversial point. Apple decided to stick with AMD and include their new Polaris 11 architecture. I personally selected the Radeon Pro 460, which included 4GB GDDR5 and offers 1.86 teraflops of peak performance. Although the Polaris architecture is a significant step forward for AMD, the 4xx parts are actually a mid-range offering and do not compete with higher-end options from NVIDIA, specifically the 10-Series. I would have personally preferred NVIDIA graphics, but suspect AMD grant Apple greater influence over the architecture. The actual graphics performance is certainly acceptable for my workload and the new MacBook Pro can drive two 5K displays or four 4K displays (which should be enough for most users). One additional point, I believe Apple continue to use a multiplexer for their hybrid graphics (Intel and AMD), which is interesting because this type of architecture is notoriously difficult to implement (increasing the risk of issues), but offers greater energy efficiency. Thankfully I have not yet experienced any issues, but this is something I will keep an eye on.&lt;/p&gt;

&lt;p&gt;Finally, it is important to mention the display itself, which retains the 2800x1800 resolution, but now includes the wide colour (P3) gamut. As you would expect, the display looks incredible and noticeably brighter than the previous generation MacBook Pro.&lt;/p&gt;

&lt;p&gt;Overall, I am pleased with the performance of the new MacBook Pro. There are certain areas I would have changed (32GB Memory and NVIDIA graphics), but I can understand the architecture trade-offs that Apple have made and don’t anticipate them causing me an issue.&lt;/p&gt;

&lt;h4 id=&quot;keyboard-and-trackpad&quot;&gt;Keyboard and Trackpad&lt;/h4&gt;

&lt;p&gt;Apple have adopted the butterfly mechanism keyboard, which was first introduced with the 12-inch MacBook. This will likely trigger a love / hate reaction from most users, however thankfully I really like it. The keyboard feels like a logical progression over the 12-inch MacBook, offering the same stability with a little more key travel. My only criticism is the noise levels, which are now noticeably louder than the previous generation MacBook Pro. In most scenarios, this is not a problem, but I often work at night while my wife is asleep. This is no longer a viable option, as the new MacBook Pro can sound like continuous machine-gun fire.&lt;/p&gt;

&lt;p&gt;The trackpad remains best in class and a real differentiator when compared with Windows laptops. It is much larger than the previous generation MacBook Pro, which does initially look a little ridiculous, but I quickly adapted and have grown to prefer the greater surface area. I have also not experienced any issues with accidental swipes or clicks, which would have been a deal breaker.&lt;/p&gt;

&lt;h4 id=&quot;touch-bar&quot;&gt;Touch Bar&lt;/h4&gt;

&lt;p&gt;The Touch Bar is the most obvious and widely discussed new feature. In short, it is a small OLED touch screen that adapts based on the specific application in use. I can’t fault the hardware implementation, as the Touch Bar looks and feels great, however with minimal software support it currently feels horribly underutilised. I am confident this will change over time, but even then, I am yet to be convinced that this is a useful new input paradigm. For example, the advantage of a keyboard is that the keys are consistent, meaning that I can interact with them, without ever shifting my focus from the display. This is not the case with the Touch Bar, as it constantly changes depending on the specific application. As a result, to utilise the Touch Bar I must shift my focus from the display to the Touch Bar itself, which can result in a loss of productivity. This is different with an actual touch screen, as you directly interact with the display, therefore retaining focus.&lt;/p&gt;

&lt;p&gt;Although far from useful, the developer community has had some fun with the Touch Bar, releasing a number of small standalone applications (&lt;a href=&quot;https://github.com/AkdM/KnightTouchBar2000&quot;&gt;Knight Touch Bar 2000&lt;/a&gt; and &lt;a href=&quot;http://www.utsire.com/touch-bar-piano/&quot;&gt;Touch Bar Piano&lt;/a&gt; being my favourites).&lt;/p&gt;

&lt;p&gt;Finally, the Touch Bar includes Touch ID, which is arguably the most important new feature. As you would expect, it works exactly like an iOS device and I’m personally pleased to see the technology come to the Mac.&lt;/p&gt;

&lt;h4 id=&quot;battery-life&quot;&gt;Battery Life&lt;/h4&gt;

&lt;p&gt;When reviewing the architecture decisions made by Apple, it feels like the new MacBook Pro has been designed with a focus on energy efficiency over raw performance. As a result, I fully expected great battery life!&lt;/p&gt;

&lt;p&gt;Unfortunately, I would describe the new MacBook Pro battery life as average. It is not bad, but certainly not as good as the previous generation MacBook Pro. Depending on the specific activity, I have been getting between six and eight hours, but certainly not the advertised ten hours.&lt;/p&gt;

&lt;p&gt;It is possible that battery life will be improved through software optimisation (macOS v10.12.2 has just been released), but right now it is disappointing.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;Overall I believe the new MacBook Pro is a solid upgrade. It brings a more refined build quality, better performance and a few new tricks (Touch Bar, Touch ID, etc.)&lt;/p&gt;

&lt;p&gt;I am not yet sold on the value of the Touch Bar, but maybe this will change over time (especially as more developers start to take advantage of it).&lt;/p&gt;

&lt;p&gt;My only real disappointment is battery life, which due to the architecture decisions made by Apple, I would have expected to be better (at least hit the advertised ten hours). I live in hope that this will be improved through software optimisation, otherwise I’ll be sure to always keep my charger handy.&lt;/p&gt;

&lt;p&gt;Finally, it is important to mention price. The specification I purchased cost close to £3000, which also required me to buy new cables, etc. This is a lot of money, even for a notebook of this quality. Personally, it feels to much, especially when compared to Windows laptops with a similar specification (you can buy a 15-inch Dell XPS for under £2000). In my opinion the new MacBook Pro is probably £500 overpriced, even when you include the normal “Apple Tax”.&lt;/p&gt;
</description>
        <pubDate>Mon, 28 Nov 2016 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2016/11/28/MacBook-Pro-Late-2016/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/11/28/MacBook-Pro-Late-2016/</guid>
      </item>
    
      <item>
        <title>Dreamforce to You</title>
        <description>&lt;p&gt;Following the success of &lt;a href=&quot;/2016/10/07/Dreamforce-2016/&quot;&gt;Dreamforce 2016&lt;/a&gt;, my team was asked to present at “Dreamforce to You” in London. This was an invite-only event (700 attendees), which looked to bring the Dreamforce experience to those that couldn’t attend in San Francisco.&lt;/p&gt;

&lt;p&gt;I personally completed a “fireside chat” as part of Salesforce for IT keynote. The keynote itself followed the same structure as Dreamforce, which for those that haven’t seen it, can be found below:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/TMP8-qWbX4E?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;In short I was invited on stage and asked three questions. I have added the transcript below:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the key challenges you face?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;As we have limited time, I’ll highlight two challenges…&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Lilly is a 140-year-old company, which means we have a lot of legacy. A key challenge is bridging the gap between legacy and the modern ecosystem, ensuring that one does not negatively impact the other.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;To do this, we’ve recognised that we’re not an infrastructure IT company, meaning there is minimal value gained by managing commodity items such as data centers, etc.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;As a result, we’ve made a strategic decision to proactively position public cloud, specifically Platform as a Service. This allows IT to move up the technology stack, getting closer to the true business value, the customer!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The second challenge is the role of IT and how it’s perceived by the business. Historically, IT was considered an operational function, focused on deploying servers, maintaining clients, etc.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Over recent years we’ve been able to demonstrate that IT can actually be a strategic weapon, which can enable new business models and more importantly power a new type of customer engagement.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In short, these challenges are really about transforming IT, getting people out of dark server rooms and embedding them alongside the business functions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can you give us some insight into your journey and how Salesforce.com has helped?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Our App Cloud journey really only started two years ago, with the launch of a small team that we call Cirrus (cloud reference). We often describe Cirrus as a start-up within an enterprise, where we focus on identifying, embedding and scaling emerging technologies.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Salesforce.com eco-system has clearly been an important part of this journey, allowing us to simplify complex tasks such as trust, security and scale. However, the bigger part of the journey has been the transformation of our business processes, foundational architecture and even our culture.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;As a technologist, it’s my belief that technology is the easy part, especially when you pick the right platforms. The key is to ensure that your organisation is ready to consume the new technology, otherwise you’ll quickly hit road blocks that will limit your overall success.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is what I think we did right with Cirrus, we embedded the right culture from day-one and then used the team as a catalyst to drive that transformation across the enterprise.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does the future look like?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I personally believe healthcare is on the verge of a technology revolution. Similar in some respects to what we have seen with Uber and Airbnb disrupting other industries.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Our goal within Cirrus is to ensure that Lilly is not only ready for this revolution, but actively leading it!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Therefore, just like you’ve seen today with the Virtual Claudia demo, we’re constantly exploring new ways to use technology to make life better for people all around the world.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The keynote itself will eventually become available on YouTube for on-demand viewing, at which point I will update this post with the link.&lt;/p&gt;

&lt;p&gt;Overall it was another great conference, with plenty of energy, great connections and inspiring conversations!&lt;/p&gt;
</description>
        <pubDate>Wed, 23 Nov 2016 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2016/11/23/Dreamforce-To-You/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/11/23/Dreamforce-To-You/</guid>
      </item>
    
      <item>
        <title>Public vs Private Cloud</title>
        <description>&lt;p&gt;In 2010, Salesforce.com acquired the Heroku Platform as a Service for approximately $212 million in cash. In my opinion, this was a wise investment, as although Salesforce.com already manage their own native platform (Force.com), Heroku is a very different proposition.&lt;/p&gt;

&lt;p&gt;Heroku redefined the developer experience, brought container technology to the mainstream (longer before Docker) and helped establish modern application architecture design patterns (e.g. &lt;a href=&quot;https://12factor.net&quot;&gt;Twelve-Factor App&lt;/a&gt;). This type of thought leadership should not be overlooked as it established Heroku as the first “go-to” for cloud native developers.&lt;/p&gt;

&lt;p&gt;However, over the past few years Platform as a Service has been gaining momentum.&lt;/p&gt;

&lt;p&gt;We’ve seen Pivotal Cloud Foundry achieve the &lt;a href=&quot;https://pivotal.io/platform/press-release/pivotal-cloud-foundry-record-breaking-fastest-first-year-sales-growth-for-an-open-source-product&quot;&gt;fastest first-year sales growth for an open source product&lt;/a&gt;. At the same time, Docker is rapidly becoming the de facto standard for Linux container technology, allowing companies like RedHat to rapidly evolve their Platform as a Service offering.&lt;/p&gt;

&lt;p&gt;One “advantage” of Pivotal Cloud Foundry and RedHat OpenShift, is the ability to deploy their services on different infrastructure, for example, on-premise (e.g. Private Cloud).&lt;/p&gt;

&lt;p&gt;This is a clear differentiator from Heroku, which is exclusively built on Amazon Web Services (e.g. Public Cloud). This capability is an interesting proposition, especially for enterprise customers, who are notoriously conservative and slow to embrace new technology trends. Therefore being able to build your own Platform as a Service and run it on-premise feels comfortable and a logical step away from a server-centric architecture.&lt;/p&gt;

&lt;p&gt;However, I personally believe this advantage is misleading. In my opinion the real advantage of Platform as a Service is the ability to get closer to the business value, by abstracting the lower levels of the technology stack. Generally speaking, businesses care about their applications, services and data, not managing the network, servers and operating systems.&lt;/p&gt;

&lt;p&gt;As a result, I feel that deploying and managing your own Platform as a Service on-premise is short-sighted, focused on the journey, instead of the destination. The destination being an ultra-scalable, highly-secure, compliant environment that just works, allowing the business to focus on building great customer-centric applications and services.&lt;/p&gt;

&lt;p&gt;With this in mind, Heroku starts to look very interesting, as it is a very mature Platform as a Service, which focuses on making the technology stack a commodity, in the same way you would think about utilities, like gas and electric.&lt;/p&gt;

&lt;p&gt;One area where Private Cloud is often described as a positive is security and compliance. However, I feel this is another red herring, as I am not aware of any enterprise that can invest as much time, money or resources into securing and scaling their own infrastructure, when compared against Salesforce.com, Amazon, Microsoft, Google, etc. These companies have also invested millions ensuring they support the latest and greatest compliance standards, such as HIPAA and PCI.&lt;/p&gt;

&lt;p&gt;In conclusion, if you’re investigating Platform as a Service, please ensure you recognise the true value. I would also recommend you evaluate &lt;a href=&quot;http://www.heroku.com&quot;&gt;Heroku&lt;/a&gt;, as they inherently drive you towards making the right decisions, by abstracting the lower levels of the technology stack.&lt;/p&gt;

&lt;p&gt;With that said, being able to deploy a Platform as a Service on different infrastructure can still be very useful. For example, the concept of “multi-cloud” which proactively promotes the idea that infrastructure is a commodity. For example, being able to easily switch infrastructure providers to ensure you always get the best deal, just like you would with your gas and electric. In this scenario I would certainly not ignore &lt;a href=&quot;pivotal.io/platform&quot;&gt;Pivotal Cloud Foundry&lt;/a&gt;, as their platform portability (thanks to &lt;a href=&quot;https://bosh.cloudfoundry.org&quot;&gt;BOSH&lt;/a&gt;) is a real unique selling point.&lt;/p&gt;
</description>
        <pubDate>Mon, 10 Oct 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/10/10/Public-vs-Private-Cloud/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/10/10/Public-vs-Private-Cloud/</guid>
      </item>
    
      <item>
        <title>Dreamforce 2016</title>
        <description>&lt;p&gt;With 170,000 people in attendance, &lt;a href=&quot;http://dreamforce.com&quot;&gt;Dreamforce&lt;/a&gt; remains a crazy experience, combining one of the largest technology conferences in the world, with an equally impressive rock festival.&lt;/p&gt;

&lt;p&gt;This was a standout year for my company, as we were selected to be one of seven showcase customers (alongside &lt;a href=&quot;http://www.chevrolet.co.uk&quot;&gt;Chevrolet&lt;/a&gt;, &lt;a href=&quot;http://www.coca-cola.com&quot;&gt;Coca Cola&lt;/a&gt;, &lt;a href=&quot;https://www.farmers.com&quot;&gt;Farmers&lt;/a&gt;, &lt;a href=&quot;https://www.t-mobile.com&quot;&gt;T-Mobile&lt;/a&gt;, &lt;a href=&quot;http://www.aldoshoes.com/uk/en_UK&quot;&gt;Aldo&lt;/a&gt; and &lt;a href=&quot;http://www.vineyardvines.com&quot;&gt;Vinyard Vines&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Over the four days, our small team presented in twelve sessions, including two keynotes. We covered a wide range of topics, spanning people, process and technology. I obviously focused on the technology, specifically microservices, containers, continuous delivery and DevOps (yep, buzzword bingo).&lt;/p&gt;

&lt;p&gt;We also had a dedicated area, known as “The Healthcare Experience”, where conference attendees could come and learn about our customer journey, as well as view some of our applications and services. Below are a few photos:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dreamforce201601.jpg&quot; alt=&quot;Dreamforce 2016&quot; title=&quot;Dreamforce 2016&quot; /&gt;
&lt;img src=&quot;/images/posts/dreamforce201602.jpg&quot; alt=&quot;Dreamforce 2016&quot; title=&quot;Dreamforce 2016&quot; /&gt;
&lt;img src=&quot;/images/posts/dreamforce201603.jpg&quot; alt=&quot;Dreamforce 2016&quot; title=&quot;Dreamforce 2016&quot; /&gt;
&lt;img src=&quot;/images/posts/dreamforce201604.jpg&quot; alt=&quot;Dreamforce 2016&quot; title=&quot;Dreamforce 2016&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alongside the keynotes, we partnered with Saleforce.com to create a few promotional videos, which focus on one of our flagship services known as Virtual Claudia. Virtual Claudia is a patient facing application that provides real-time support via a virtual assistant (AKA Claudia). The goal is to help ensure every patient receives the best possible support throughout their journey.&lt;/p&gt;

&lt;p&gt;Two of the promotional videos can be found below, the first focuses on the patient, while the second provides some insight into the technology.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/tZp3qAXjUQg?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/po8FmxvI7lA?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Finally, linked below is the Salesforce for IT Keynote, which includes a representative demonstration of Virtual Claudia.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/TMP8-qWbX4E?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The other keynote video (The Healthcare Keynote) and our specialist sessions have not yet been published online, but I’ll certainly provide links once they are.&lt;/p&gt;

&lt;p&gt;Overall Dreamforce 2016 was a very unique and personal experience. It was amazing to be able to showcase everything our team has been working on for the past 18 months. It also continues to demonstrate how we are using technology to transform healthcare.&lt;/p&gt;
</description>
        <pubDate>Fri, 07 Oct 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/10/07/Dreamforce-2016/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/10/07/Dreamforce-2016/</guid>
      </item>
    
      <item>
        <title>macOS Bootable Drive</title>
        <description>&lt;p&gt;UPDATE: This article has been updated to include the commands for macOS High Sierra, Mojave, and Catalina.&lt;/p&gt;

&lt;p&gt;Over the years, upgrading to the latest version of macOS has become a simple process. However, occasionally it still makes sense to complete a fresh installation (wiping the existing operating system).&lt;/p&gt;

&lt;p&gt;The quickest and most reliable way to complete this process is via removable storage (e.g. Bootable USB). I would recommend a USB3 Drive, with at least 16GB of storage. The removable storage will be erased as part of the process, therefore it is important to back up any existing data.&lt;/p&gt;

&lt;p&gt;Prior to starting the process, download the desired version of macOS directly from the Apple App Store. Never download an image from a non-official source, as the installation could have been maliciously modified. The links for macOS Sierra, High Sierra, Mojave, and Catalina can be found below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://itunes.apple.com/gb/app/macos-sierra/id1127487414?ls=1&amp;amp;mt=12&quot;&gt;macOS 10.12 Sierra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://itunes.apple.com/gb/app/macos-high-sierra/id1246284741?mt=12&quot;&gt;macOS 10.13 High Sierra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://itunes.apple.com/gb/app/macos-mojave/id1398502828?ls=1&amp;amp;mt=12&quot;&gt;macOS 10.14 Mojave&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://itunes.apple.com/gb/app/macos-catalina/id1466841314?mt=12&quot;&gt;macOS 10.15 Catalina&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Insert the removable storage and run one of the following terminal commands, depending on your selected version of macOS. The only configuration required is to enter the name of the removable storage, which can be found in Disk Utility. The process will require you to enter your password and could take up to 30mins (depending on the speed of the removable storage).&lt;/p&gt;

&lt;h4 id=&quot;macos-1012-sierra&quot;&gt;macOS 10.12 Sierra&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/&amp;lt;NAME&amp;gt; --applicationpath /Applications/Install\ macOS\ Sierra.app --nointeraction &amp;amp;&amp;amp;say Done
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;macos-1013-high-sierra&quot;&gt;macOS 10.13 High Sierra&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/&amp;lt;NAME&amp;gt; --applicationpath /Applications/Install\ macOS\ High\ Sierra.app --nointeraction &amp;amp;&amp;amp;say Done
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;macos-1014-mojave&quot;&gt;macOS 10.14 Mojave&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/&amp;lt;NAME&amp;gt; --applicationpath /Applications/Install\ macOS\ Mojave.app --nointeraction &amp;amp;&amp;amp;say Done
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;macos-1015-catalina&quot;&gt;macOS 10.15 Catalina&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/&amp;lt;NAME&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
If you plan to install macOS on a &lt;a href=&quot;https://support.apple.com/en-gb/HT208862&quot;&gt;Mac with the T2 chip&lt;/a&gt; (e.g. iMac Pro, MacBook Pro 2018), you will first need to disable &lt;a href=&quot;https://support.apple.com/en-gb/HT208330&quot;&gt;Secure Boot&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Simply hold “Command+R” on boot to enter macOS Recovery mode. Then select “Utilities &amp;gt; Startup Security” from the menu bar. Finally, check “No Security” and “Allow booting from external media”. These setting can be reversed post installation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/macosbootable01.jpg&quot; alt=&quot;macOS Bootable Drive&quot; title=&quot;macOS Bootable Drive&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once complete (or if you don’t have a Mac with the T2 chip), simply restart the Mac, hold the “Option” key and select the newly created removable storage.&lt;/p&gt;
</description>
        <pubDate>Tue, 20 Sep 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/09/20/macOS-Bootable-Drive/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/09/20/macOS-Bootable-Drive/</guid>
      </item>
    
      <item>
        <title>Serverless Computing</title>
        <description>&lt;p&gt;I am a big advocate of “utility compute”, which is a service provisioning model, where computing resources are made available on demand and charged based in usage (not a flat rate). Platform as a Service is an example of utility compute as it abstracts the lower levels of the technology stack (making them a commodity), allowing the developer to focus on the application and data.&lt;/p&gt;

&lt;p&gt;I believe Heroku is the purest example of utility compute for Platform as a Service, thanks to the use of public-cloud infrastructure (Amazon Web Services) and the focus on the developer experience.&lt;/p&gt;

&lt;p&gt;However, over recent years a new trend has started to emerge known as “Serverless Computing”.&lt;/p&gt;

&lt;h4 id=&quot;what-is-serverless-computing&quot;&gt;What is Serverless Computing?&lt;/h4&gt;

&lt;p&gt;Serverless Computing (AKA Functions as a Service) aims to take utility compute to the next level, where the actual application components, alongside the traditional technology stack, are made a commodity.&lt;/p&gt;

&lt;p&gt;Serverless Computing has a number of similarities to Platform as a Service, &lt;strong&gt;but also some key differences&lt;/strong&gt;. For example, both paradigms require the developer to think differently about how they write and maintain an application. With Platform as a Service, this involved the shift to “&lt;a href=&quot;https://12factor.net&quot;&gt;Twelve-Factor App&lt;/a&gt;” and (generally speaking) the evaluation to a Microservices architecture.&lt;/p&gt;

&lt;p&gt;Twelve-Factor App and Microservices are still relevant concepts for Serverless Computing. The real difference is in the operation of the application.&lt;/p&gt;

&lt;p&gt;In Platform as a Service, the system continually runs at least one server process and the developer must manage the scaling either manually or via an auto-scaler. Either way, the developer must be aware of scaling, which can actually be very challenging when working with applications that don’t have a consistent traffic profile.&lt;/p&gt;

&lt;p&gt;With Serverless Computing, scaling (from zero) is completely transparent, with an architecture designed to enable functions to start within milliseconds. Therefore, Serverless Computing is generally more efficient than Platform as a Service, making it more cost effective as you are only charged for the execution time of the function (brining us back to utility compute).&lt;/p&gt;

&lt;p&gt;It is important to note that Serverless Computing is very opinionated, requiring a specific type of application architecture. For example, applications are event-driven and stateless at the function level. This is key, as it is what enables infinite scale and higher efficiency when compared to traditional compute instances (e.g. AWS EC2) or containers (e.g. Docker).&lt;/p&gt;

&lt;h4 id=&quot;getting-started-with-serverless-computing&quot;&gt;Getting started with Serverless Computing?&lt;/h4&gt;

&lt;p&gt;The biggest name in Serveless Computing is &lt;a href=&quot;https://aws.amazon.com/lambda/&quot;&gt;AWS Lambda&lt;/a&gt;, which…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Lets you run code without provisioning or managing servers. You pay only for the compute time you consume - there is no charge when your code is not running. With Lambda, you can run code for virtually any type of application or backend service - all with zero administration.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AWS Lambda is creating waves across the industry, as it unlocks the power of Amazon Web Services for developers, at an aggressively low price point. For example, using AWS Lambda, you can write event-driven functions that seamlessly connect with other AWS services, such as API Gateway, S3, Kinesis, EC2, Redshift, etc.&lt;/p&gt;

&lt;p&gt;Another Serverless Computing player is &lt;a href=&quot;https://webtask.io&quot;&gt;Auth0 Webtask&lt;/a&gt;, which is not as comprehensive as AWS Lambda, but puts a real focus on the developer experience (making it easier to get started).&lt;/p&gt;

&lt;h4 id=&quot;is-serverless-computing-the-future-what-about-platform-as-a-service&quot;&gt;Is Serverless Computing the future? What about Platform as a Service?&lt;/h4&gt;

&lt;p&gt;Serverless Computing is still maturing and right now is not a good fit for every use case. The maturity is being helped by initiatives such as the &lt;a href=&quot;https://serverless.com&quot;&gt;Serverless Framework&lt;/a&gt; (AKA JAWS), but it still has a long way to go before the tools, patterns and examples match Platform as a Service.&lt;/p&gt;

&lt;p&gt;Services like AWS Lambda are also highly opinionated (even more so than Platform as a Service), meaning traditional development teams will need to learn new skills and migrate to a new workflow. This will likely result in additional development time and cost, as well as increased risk for new projects.&lt;/p&gt;

&lt;p&gt;Finally, one of the real selling points of Serverless Computing is the transparent scaling, which results in the efficiencies and cost savings. However, Platform as a Service continues to mature and optimize (e.g. &lt;a href=&quot;http://kubernetes.io/docs/user-guide/horizontal-pod-autoscaling/&quot;&gt;Kubernetes Horizontal Pod Autoscaling&lt;/a&gt;), therefore it is possible that over time, we will see this advantage reduce.&lt;/p&gt;

&lt;p&gt;In conclusion, regardless of what the future of Serverless Computing looks like, I’m confident the core idea is solid and will continue to drive the world towards true utility compute.&lt;/p&gt;
</description>
        <pubDate>Fri, 02 Sep 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/09/02/Serverless-Computing/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/09/02/Serverless-Computing/</guid>
      </item>
    
      <item>
        <title>Student Hackathon</title>
        <description>&lt;p&gt;Alongside my role as an Enterprise IT Architect, I also lead UK student recruitment and the European Accelerated Development Programme. These initiatives are focused on identifying, securing and developing top IT talent.&lt;/p&gt;

&lt;p&gt;With an ever increasing focus on software (&lt;a href=&quot;http://www.wsj.com/articles/SB10001424053111903480904576512250915629460&quot;&gt;Software is Eating the World&lt;/a&gt;), our team decided to run our first UK University hackathon, with the prize being a one-year student placement as a software developer.&lt;/p&gt;

&lt;p&gt;The Hackathon was branded “&lt;a href=&quot;http://digitalhealthcare.tech&quot;&gt;digital healthcare&lt;/a&gt;”, targeting key issues related to human and animal health. Participants could enter individually or as a team and had one week to develop an application. We provided two briefs (summary shown below), but participants could also create their own.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;The Health Challenge:&lt;/strong&gt; Lilly is committed to creating high-quality medicines that meet real needs. We are passionate about our continued pursuit to make life better for individuals, communities, and the world around us.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;The Hunger Challenge:&lt;/strong&gt; Alongside human health, Lilly is focused on animal health, with a vision to enrich lives through food and companionship. As such, Lilly has committed to help end hunger and improve food security for 100,000 families and 100 communities by 2017.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Hackathon was ran in partnership with &lt;a href=&quot;http://www.salesforce.com&quot;&gt;Salesforce.com&lt;/a&gt;, who provided access to Force.com and/or Heroku for development, as well as their excellent &lt;a href=&quot;https://trailhead.salesforce.com&quot;&gt;Trailhead&lt;/a&gt; learning resource.&lt;/p&gt;

&lt;p&gt;I’m pleased to report the hackathon was a great success! The quality of the entries was excellent, with some amazing ideas and impressive software development skills demonstrated.&lt;/p&gt;

&lt;p&gt;In July the winners started their year long student placement as software developers. In their opening two months they have already successfully developed and deployed four applications using technologies such as Force.com, Heroku, Node.js, ReactJS, Postgres and many more. These applications are already in use by over 500 people globally, enhancing productivity and improving quality.&lt;/p&gt;

&lt;p&gt;Salesforce.com have been equally impressed with their journey from hackathon to software developers and plan to run a series of blog posts, staring with “&lt;a href=&quot;https://developer.salesforce.com/blogs/developer-relations/2016/08/eli-lilly-next-generation-univeristy-developers.html&quot;&gt;Eli Lilly Discovers Next Generation Technology Trailblazers&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;Due to the success of the first hackathon, we’ve decided to make it a core part of our yearly recruitment process.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/studenthackathon01.jpg&quot; alt=&quot;Student Hackathon&quot; title=&quot;Student Hackathon&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As a result, the 2016 hackathon is ready to launch in November. More details can be found at &lt;a href=&quot;http://digitalhealthcare.tech&quot;&gt;digitalhealthcare.tech&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Tue, 30 Aug 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/08/30/Student-Hackathon/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/08/30/Student-Hackathon/</guid>
      </item>
    
      <item>
        <title>Processing (p5.js)</title>
        <description>&lt;p&gt;Software development is only for geeks, right?&lt;/p&gt;

&lt;p&gt;Wrong! Software development is an incredibly powerful way for anyone to express themselves, whether you are an artist, designer, educator or simply someone who enjoys building stuff.&lt;/p&gt;

&lt;p&gt;In 2001, &lt;a href=&quot;https://en.wikipedia.org/wiki/C.E.B._Reas&quot;&gt;Casey Reas&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Benjamin_Fry&quot;&gt;Benjamin Fry&lt;/a&gt; launched a project called “&lt;a href=&quot;https://processing.org&quot;&gt;Processing&lt;/a&gt;”, which is an open source programming language built for the art and visual design communities. The goal is to teach the fundamentals of programming in a visual context, as well as to provide the foundation for electronic sketchbooks.&lt;/p&gt;

&lt;p&gt;The Processing language is based on Java, however, in 2014, &lt;a href=&quot;http://lauren-mccarthy.com&quot;&gt;Lauren McCarthy&lt;/a&gt; created &lt;a href=&quot;https://p5js.org&quot;&gt;p5.js&lt;/a&gt;, which is a reinterpretation of Processing, built for the modern web in native JavaScript.&lt;/p&gt;

&lt;p&gt;It is important to note that the p5.js JavaScript library is completely new, not an emulation or a port of the original Processing codebase, however it is officially endorsed by the &lt;a href=&quot;https://processingfoundation.org&quot;&gt;Processing Foundation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To demonstrate the power and simplicity of p5.js, I took inspiration from “&lt;a href=&quot;http://thecodingtrain.com&quot;&gt;The Coding Train&lt;/a&gt;” and implemented a version of the well-known game “&lt;a href=&quot;https://en.wikipedia.org/wiki/Flappy_Bird&quot;&gt;Flappy Bird&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;The video below provides a quick demonstration of my Flappy Bird Clone in action, developed using p5.js and just one hundred lines of JavaScript (without any CSS or media assets).&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/4inXvQ9Wz2w?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;As you can see from the video, the implementation is very simple, but does represent a fully functioning game that incorporates the core features from Flappy Bird.&lt;/p&gt;

&lt;p&gt;The code itself is split across three files: “sketch.js”, “bird.js” and “pipe.js”. I have outlined each below, highlighting the simplicity of p5.js.&lt;/p&gt;

&lt;h3 id=&quot;sketchjs&quot;&gt;sketch.js&lt;/h3&gt;

&lt;p&gt;In Processing (and p5.js), an application is known as a sketch. The “sketch.js” file initialises the canvas and other foundational components of the game.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var bird;  
var pipes = [];  

function setup() {  
  createCanvas(400, 600);  
  bird = new Bird();  
  pipes.push(new Pipe());  
}  

function draw() {  
  background(0);  
  for (var i = pipes.length-1; i &amp;gt;= 0; i--) {  
    pipes[i].show();  
    pipes[i].update();  
    if (pipes[i].hits(bird)) {  
      console.log(&quot;HIT&quot;);  
    }  
    if (pipes[i].offscreen()) {  
      pipes.splice(i, 1);  
    }  
  }  
  bird.update();  
  bird.show();  
  if (frameCount % 100 == 0) {  
    pipes.push(new Pipe());  
  }  
}  

function keyPressed() {  
  if (key == ' ') {  
    bird.up();  
    //console.log(&quot;SPACE&quot;);  
  }  
}  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;birdjs&quot;&gt;bird.js&lt;/h3&gt;

&lt;p&gt;The “bird.js” file includes the configuration of the bird, including size, lift, gravity and velocity.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function Bird() {  
  this.y = height/2;  
  this.x = 64;  

  this.gravity = 0.7;  
  this.lift = -15;  
  this.velocity = 0;  

  this.show = function() {  
    fill(255);  
    ellipse(this.x, this.y, 25, 25);  
  }  

  this.up = function() {  
    this.velocity += this.lift;  
  }  

  this.update = function() {  
    this.velocity += this.gravity;  
    this.velocity *= 0.9;  
    this.y += this.velocity;  

    if (this.y &amp;gt; height) {  
      this.y = height;  
      this.velocity = 0;  
    }  

    if (this.y &amp;lt; 0) {  
      this.y = 0;  
      this.velocity = 0;  
    }  
  }  
}  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;pipejs&quot;&gt;pipe.js&lt;/h3&gt;

&lt;p&gt;The “pipe.js” file configures the pipes, including their size, position and the speed in which they appear.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var level = 4;  

function setLevel(levelNumber) {  
  level = levelNumber;  
}  

function Pipe() {  
  var spacing = random(30, height / 2);  
  var centre = random(spacing, height - spacing);  

  this.top =  centre - spacing / 2;  
  this.bottom = height - (centre + spacing / 2);  
  this.x = width;  
  this.w = 35;  
  this.speed = level;  

  this.highlight = false;  

  this.hits = function(bird) {  
    if (bird.y &amp;lt; this.top || bird.y &amp;gt; height - this.bottom) {  
      if (bird.x &amp;gt; this.x &amp;amp;&amp;amp; bird.x &amp;lt; this.x + this.w) {  
        this.highlight = true;  
        return true;  
      }  
    }  
    this.highlight = false;  
    return false;  
  }  

  this.show = function() {  
    fill(255);  
    if (this.highlight) {  
      fill(255, 0, 0);  
    }  
    rect(this.x, 0, this.w, this.top);  
    rect(this.x, height-this.bottom, this.w, this.bottom);  
  }  

  this.update = function() {  
    this.x -= this.speed;  
  }  

  this.offscreen = function() {  
    if (this.x &amp;lt; -this.w) {  
      return true;  
    } else {  
      return false;  
    }  
  }  
}  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Finally, there is a single “index.html” file, which references the p5.js library and the three custom JavaScript files (sketch.js, bird.js and pipe.js). I also added the ability to increase the difficulty, however this feature is completely optional.&lt;/p&gt;

&lt;p&gt;The full source code of my Flappy Bird Clone can be found on &lt;a href=&quot;https://github.com/mswbull/Flappy_Bird_Clone&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In summary, I hope this simple example demonstrates the flexibility and expressive nature of p5.js, allowing anyone to quickly and easily express their creativity via the web.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://p5js.org/&quot;&gt;p5.js website&lt;/a&gt; includes the &lt;a href=&quot;https://p5js.org/download/&quot;&gt;JavaScript library&lt;/a&gt;, as well as comprehensive &lt;a href=&quot;https://p5js.org/reference/&quot;&gt;reference material&lt;/a&gt;, &lt;a href=&quot;https://p5js.org/examples/&quot;&gt;examples&lt;/a&gt; and &lt;a href=&quot;https://p5js.org/get-started/&quot;&gt;getting started&lt;/a&gt; guides.&lt;/p&gt;
</description>
        <pubDate>Fri, 12 Aug 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/08/12/Processing-p5/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/08/12/Processing-p5/</guid>
      </item>
    
      <item>
        <title>DevOps Automation</title>
        <description>&lt;p&gt;Over the last year I helped to embed and scale Force.com as an application platform at a large enterprise. I have shared in previous articles the &lt;a href=&quot;/2014/06/29/Force-Enterprise-Application-Platform/&quot;&gt;value proposition&lt;/a&gt;, &lt;a href=&quot;/2014/07/20/Force-Org-Strategy/&quot;&gt;org strategy&lt;/a&gt;, &lt;a href=&quot;/2015/07/20/Force-Enterprise-Standards/&quot;&gt;standards&lt;/a&gt;, and the &lt;a href=&quot;/2015/06/19/Enterprise-Force.com-Architecture-Continuous-Integration/&quot;&gt;developer experience&lt;/a&gt; (focused on Continuous Integration).&lt;/p&gt;

&lt;p&gt;This work transformed the way software was built, deployed and scaled across the enterprise, successfully reducing lead times from months to weeks, without sacrificing quality. However, our initial implementation still relied upon numerous “human checkpoints” and a fixed release schedule (weekly production releases).&lt;/p&gt;

&lt;p&gt;This led to an initiative that we called “DevOps Automation”, with DevOps being the culture and automation being the focus of the work.&lt;/p&gt;

&lt;p&gt;The goal of DevOps Automation was to improve time to business value, agility, security, and quality by automating the end-to-end development lifecycle (ideation to production). It would also aim to provide development teams complete autonomy, with no fixed release schedule (allowing them to release into production as often as required).&lt;/p&gt;

&lt;p&gt;I’m pleased to report that after eight weeks of hard work, DevOps Automation went live and has already seen over 200 fully automated production releases since March.&lt;/p&gt;

&lt;p&gt;This article will aim to summarise our DevOps Automation setup.&lt;/p&gt;

&lt;h4 id=&quot;devops-automation-architecture&quot;&gt;DevOps Automation Architecture&lt;/h4&gt;

&lt;p&gt;The following technical components were used to facilitate the DevOps Automation process. Many of these were reused from our existing &lt;a href=&quot;/2015/06/19/Enterprise-Force.com-Architecture-Continuous-Integration/&quot;&gt;Continuous Integration methodology&lt;/a&gt;, but with a renewed focus on end-to-end automation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;&lt;/strong&gt;: Git is the primary interface for the development teams. It provides distributed version control, but also triggers the automation activities and code movement through updates to specific branches (usually via a &lt;a href=&quot;https://help.github.com/articles/about-pull-requests/&quot;&gt;Pull Request&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.cloudbees.com&quot;&gt;CloudBees&lt;/a&gt;&lt;/strong&gt;: CloudBees is Jenkins-as-a-Service, which watches the Git repository and triggers the required automation action. We created Jenkins Job templates, which allow us to easily scale across any number of projects with minimal initial setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Standards Checks&lt;/strong&gt;: A custom script (written in Java) that confirms the development team have complied with our &lt;a href=&quot;/2015/07/20/Force-Enterprise-Standards/&quot;&gt;Force.com Developer standards&lt;/a&gt;). There are approximately sixty standards checks in total, covering the security model, namespacing, limits, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shared Asset Check:&lt;/strong&gt; A custom script (written in Java) that confirms that no shared assets (objects, classes, etc.) have been modified.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.checkmarx.com&quot;&gt;Checkmarx&lt;/a&gt;&lt;/strong&gt;: Static Code Analysis that scans every line of code looking for potential security issues and/or vulnerabilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.seleniumhq.org&quot;&gt;Selenium&lt;/a&gt;&lt;/strong&gt;: Used for automated user interface testing and/or the execution of manual steps. The development team does not always require this capability, but it can help overcome some of the Force.com meta-data API limitations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ALM Tool&lt;/strong&gt;: A Force.com application lifecycle management tool (like the &lt;a href=&quot;https://appexchange.salesforce.com/listingDetail?listingId=a0N30000000ps3jEAA&quot;&gt;Agile Accelerator&lt;/a&gt;) that facilitates the development sprint. It is also used to capture the technical and business approvals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://slack.com&quot;&gt;Slack&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href=&quot;https://hubot.github.com&quot;&gt;HUBOT&lt;/a&gt;&lt;/strong&gt;: The “single pane of glass” for developers, where they can trigger actions and receive real-time feedback regarding their development. All actions are triggered using natural language, via HUBOT (our friendly bot created by the team at GitHub, running on &lt;a href=&quot;http://heroku.com&quot;&gt;Heroku&lt;/a&gt;).&lt;/p&gt;

&lt;h4 id=&quot;developer-experience&quot;&gt;Developer Experience&lt;/h4&gt;

&lt;p&gt;Looking at the DevOps Automation architecture, it’s easy to think that this would be a complicated process. However, it’s important to note that the development teams only interact with GitHub, Slack and the ALM Tool. All other components are triggered via the automation.&lt;/p&gt;

&lt;p&gt;Before describing the developer experience, it’s worth reiterating the environment setup that every development team receives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DEV&lt;/strong&gt; = Main development environment.&lt;br /&gt;
&lt;strong&gt;CI&lt;/strong&gt; = Continues integration merge / build test environment.&lt;br /&gt;
&lt;strong&gt;TEST&lt;/strong&gt; = Formal user testing environment.&lt;/p&gt;

&lt;p&gt;The article “&lt;a href=&quot;/2015/06/19/Enterprise-Force.com-Architecture-Continuous-Integration/&quot;&gt;Force.com Architecture - CI&lt;/a&gt;” provides more detail regarding the specific environment setup and our Continuous Integration process.&lt;/p&gt;

&lt;p&gt;The entire DevOps Automation developer experience is built around three stages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 1&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Git Branch:&lt;/em&gt; feature or develop.&lt;br /&gt;
&lt;em&gt;Automation:&lt;/em&gt; Standards Checks and Shared Asset Check.&lt;br /&gt;
&lt;em&gt;Deploy Target:&lt;/em&gt; CI Sandbox.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 2&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Git Branch:&lt;/em&gt; User Specified.&lt;br /&gt;
&lt;em&gt;Automation:&lt;/em&gt; Standards Checks, Shared Asset Check, Checkmarx, Unit Tests.&lt;br /&gt;
&lt;em&gt;Deploy Target:&lt;/em&gt; TEST Sandbox.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 3&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Git Branch:&lt;/em&gt;  master.&lt;br /&gt;
&lt;em&gt;Automation:&lt;/em&gt; Standards Checks, Shared Asset Check, Checkmarx, Unit Tests and Approvals.&lt;br /&gt;
&lt;em&gt;Deploy Target:&lt;/em&gt; PRD (via a FULL Sandbox which is used for PRD support).&lt;/p&gt;

&lt;p&gt;Stage 1 is triggered automaticity every time a developer pushes code to a feature or develop branch in GitHub.&lt;/p&gt;

&lt;p&gt;Stage 2 and 3 are triggered via Slack by messaging HUBOT:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Build &amp;lt;stage&amp;gt; for &amp;lt;project name&amp;gt; from &amp;lt;branch or commit&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
The status of every stage, including any build failure information will be available instantly in Slack.&lt;/p&gt;

&lt;p&gt;You will notice that each stage triggers different automation actions, this is to ensure that the automation does not impact the developer experience. For example, Checkmarx (Static Code Analysis) can take up to 10mins to complete, therefore this is only triggered at stage 2.&lt;/p&gt;

&lt;p&gt;Finally, the only prerequisite from a code perspective is a valid “package.xml”, which includes the structure of the application. We also allow for a “partialPackage.xml” which enables development teams to push partial code into production.&lt;/p&gt;

&lt;p&gt;The diagram below highlights the end-to-end developer experience.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/devopsautomation01.jpg&quot; alt=&quot;Force.com - DevOps Automation&quot; title=&quot;Force.com - DevOps Automation&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;Overall we are very proud of our Force.com DevOps Automation. I’ve spoken to many other enterprise Force.com customers and have yet to meet anyone with the same level of end-to-end automation and/or maturity.&lt;/p&gt;

&lt;p&gt;More importantly, we achieved our goal of improving time to business value, agility, security, and quality, as well as providing complete autonomy to the development teams. All of this was achieved while maintaining the incredibly high standards required by a highly regulated industry.&lt;/p&gt;
</description>
        <pubDate>Wed, 20 Jul 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/07/20/DevOps-Automation/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/07/20/DevOps-Automation/</guid>
      </item>
    
      <item>
        <title>Python</title>
        <description>&lt;p&gt;Similar to a lot of programmers, in 1999, I started my software development journey by building simple websites using HTML and eventually CSS. Over time, I became more ambitious, looking to implement dynamic capabilities and simple content management. This led me to learn PHP, as well as the basics of JavaScript (mostly for hacking front-end libraries).&lt;/p&gt;

&lt;p&gt;In 2003, at university, I was forced to study Java, which I found to be a repetitive and heavy language (compared to other high-level languages). As a result, when it came time to complete my dissertation in 2007, I decided to switch back to PHP (my dissertation is available on &lt;a href=&quot;https://github.com/mswbull/University_Dissertation&quot;&gt;GitHub&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Post University, I explored the world of Ruby, mainly driven by the popularity of &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; and static site generators such as &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; (&lt;a href=&quot;/&quot;&gt;LifeinTECH&lt;/a&gt; is built using Jekyll). I also went back to JavaScript, spending the time to learn the language more thoroughly, so that I could develop modern web applications using &lt;a href=&quot;https://nodejs.org/&quot;&gt;Node.js&lt;/a&gt;. I documented this journey in 2014 across a number of blog posts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/07/10/JavaScript-Part-One/&quot;&gt;JavaScript - Part One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/07/22/JavaScript-Part-Two/&quot;&gt;JavaScript - Part Two&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/09/18/JavaScript-Part-Three/&quot;&gt;JavaScript - Part Three&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/07/18/ES6-Part-One/&quot;&gt;ES6 - Part One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/08/03/ES6-Part-Two/&quot;&gt;ES6 - Part Two&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2016/02/07/node-architecture/&quot;&gt;Node Architecture&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In recent years, I have spent most of my time developing in JavaScript and (due to work) on the Force.com platform (a combination of Apex and JavaScript). A few example applications include “&lt;a href=&quot;/2015/07/20/conf-buddy/&quot;&gt;Conf Buddy&lt;/a&gt;” and “&lt;a href=&quot;/2016/02/20/site-builder/&quot;&gt;Site Builder&lt;/a&gt;”. I also build some simple 2D games using GML, which is a proprietary programming language for &lt;a href=&quot;https://yoyogames.com/gamemaker&quot;&gt;GameMaker: Studio&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In summary, over nearly two decades I have used the following languages:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;HTML/CSS&lt;/li&gt;
  &lt;li&gt;PHP&lt;/li&gt;
  &lt;li&gt;JavaScript (Client-Side)&lt;/li&gt;
  &lt;li&gt;Java&lt;/li&gt;
  &lt;li&gt;JavaScript (Node.js)&lt;/li&gt;
  &lt;li&gt;Apex&lt;/li&gt;
  &lt;li&gt;GML&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One language that I have never explored is Python. Therefore, I thought it was time to understand why it remains one of the worlds most popular and high-growth programming languages (based on the &lt;a href=&quot;https://insights.stackoverflow.com/survey/2016#technology&quot;&gt;Stack Overflow Developer Survey 2016&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;Python is an interpreted, high-level, general-purpose programming language, released in 1991.&lt;/p&gt;

&lt;p&gt;Python is considered fast, reliable, efficient, and easy to learn (thanks to its emphasises on code readability). One notable characteristic is its use of whitespace, as Python requires blocks to be delimited by indentation, instead of curly braces or “begin/end” keywords. This strict approach to whitespace (in theory) promotes readability, but can also be a point of contention amongst developers.&lt;/p&gt;

&lt;p&gt;Python has a large, mature community, with strong corporate backing (e.g. Google, etc.) It has also become a “de facto standard” for Data Analytics, Machine Learning, Artificial Intelligence, and Data Science, as it well suited for data manipulation and repeatable tasks, as well as its relatively simple learning curve (when compared to &lt;a href=&quot;https://www.r-project.org/&quot;&gt;R&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The language’s core philosophy is summarised in the document “&lt;a href=&quot;https://www.python.org/dev/peps/pep-0020/&quot;&gt;The Zen of Python (PEP 20)&lt;/a&gt;”, which includes a collection of nineteen software principles.&lt;/p&gt;

&lt;p&gt;There are two major versions of Python:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Python 2 was first released in 2000 (The latest version 2.7, was released in 2010).&lt;/li&gt;
  &lt;li&gt;Python 3 was released in 2008 but is not completely backward-compatible (slowing adoption).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The decision to develop using Python 2 or Python 3 can be tough for an established development team. However, with the official end-of-life date for Python 2 set for 2020, I would recommend anyone looking to learn Python today should start with Python 3.&lt;/p&gt;

&lt;h3 id=&quot;cheat-sheet&quot;&gt;Cheat Sheet&lt;/h3&gt;

&lt;p&gt;The official Python &lt;a href=&quot;https://www.python.org/doc/&quot;&gt;documentation&lt;/a&gt; is incredibly comprehensive, including a detailed &lt;a href=&quot;https://docs.python.org/3/reference/index.html&quot;&gt;Language Reference&lt;/a&gt; (core semantics) and &lt;a href=&quot;https://docs.python.org/3/library/index.html&quot;&gt;Standard Library&lt;/a&gt; (built-in modules, etc.)&lt;/p&gt;

&lt;p&gt;However, as part of my learning process, I always create a personal “cheat sheet”, which provides quick access to key features (variables, functions, etc.) Outlined below is my cheat sheet for Python 3.&lt;/p&gt;

&lt;h4 id=&quot;variables&quot;&gt;Variables&lt;/h4&gt;

&lt;p&gt;Python has no command for declaring a variable, instead, a variable is created the moment you first assign a value to it. Also, variables do not need to be declared with a particular type.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;a = 1       # Integer
b = 1.1     # Float
c = “a”     # String
d = True    # Boolean
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;conditional-statements&quot;&gt;Conditional Statements&lt;/h4&gt;

&lt;p&gt;Unlike other programming languages, Python does not require the expression to be enclosed in parentheses. Instead, a colon &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:&lt;/code&gt; is required after the expression.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;if x == 1:  
    print(“a”)
elif x == 2:  
    print(“b”)
else:   
    print(“c”)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;loops&quot;&gt;Loops&lt;/h4&gt;

&lt;p&gt;A &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;for&lt;/code&gt; loop in Python works like an iterator method, therefore does not require an indexing variable to set.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;for n in range(1, 10):
    print(n)

while n &amp;lt; 10:
    print(n)
    n += 1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;functions&quot;&gt;Functions&lt;/h4&gt;

&lt;p&gt;A function is defined using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;def&lt;/code&gt; keyword.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;def increment(number, by=1):   
  return number + by
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;lists&quot;&gt;Lists&lt;/h4&gt;

&lt;p&gt;A list is a collection which is ordered, changeable and allows duplicates. Lists are written with square brackets.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Creating a list
letters = [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;]

# Looping over lists
for letter in letters:

# Adding items
letters.append(&quot;e&quot;)

# Removing items
letters.pop()
letters.remove(&quot;d&quot;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;sets&quot;&gt;Sets&lt;/h3&gt;

&lt;p&gt;Similar to lists, a set is a collection which is unordered and unindexed. Lists are written with square brackets.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;first = {1, 2, 3, 4}
second = {1, 5}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;dictionaries&quot;&gt;Dictionaries&lt;/h3&gt;

&lt;p&gt;A dictionary is another collection type, which is unordered, changeable, and indexed. Dictionaries are written with curly brackets and include keys and values.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;point = {&quot;x&quot;: 1, &quot;y&quot;: 2}
point = dict(x=1, y=2)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;arrays&quot;&gt;Arrays&lt;/h3&gt;

&lt;p&gt;Similar to other languages, arrays are used to store multiple values in a single variable.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;from array import array
numbers = array(&quot;i&quot;, [1, 2, 3])
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;classes&quot;&gt;Classes&lt;/h3&gt;

&lt;p&gt;As Python is an object-oriented language, a class is like a blueprint for creating objects.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Creating a classes
class Point:
    def __init__(self, x, y):         
        self.x = x
        self.y = y

    def draw(self):         
        ...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;exceptions&quot;&gt;Exceptions&lt;/h3&gt;

&lt;p&gt;When a Python script raises an exception, it must handle the exception immediately or the program will be terminated. Exception handling can be achieved using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;try:&lt;/code&gt; block and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;except&lt;/code&gt; statement.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Handling Exceptions
try:
  ...
except (ValueError, ZeroDivisionError):
  ...
else:
  # no exceptions raised
finally:
  # cleanup code

# Raising exceptions
if x &amp;lt; 1:     
    raise ValueError(“…”)

# The with statement
with open(“file.txt”) as file:    
   ...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 07 Jul 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/07/07/Python-Cheat-Sheet/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/07/07/Python-Cheat-Sheet/</guid>
      </item>
    
      <item>
        <title>Blockchain Opportunity</title>
        <description>&lt;p&gt;In 2014, I published the article “&lt;a href=&quot;/2014/01/27/Blockchain/&quot;&gt;Blockchain&lt;/a&gt;”, which provided an overview of the technology and teased the future potential!&lt;/p&gt;

&lt;p&gt;Over the past couple of years, blockchain has continued to gain momentum (supported by the growth of &lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;Bitcoin&lt;/a&gt;), which has resulted in the usual hype and desire to “blockchain all the things”.&lt;/p&gt;

&lt;p&gt;Over recent months, a number of good videos have been published which I believe more realistically describe the potential of blockchain.&lt;/p&gt;

&lt;p&gt;The first is a &lt;a href=&quot;https://www.ted.com&quot;&gt;TED Talk&lt;/a&gt;, by &lt;a href=&quot;https://www.ted.com/speakers/bettina_warburg&quot;&gt;Bettina Warburg&lt;/a&gt;. Bettina describes how the blockchain could eliminate the need for centralized institutions like banks or governments to facilitate trade, evolving age-old models of commerce and finance into something far more interesting: a distributed, transparent, autonomous system for exchanging value.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/RplnSVTzvnU?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The second video is a simple animated infographic from “&lt;a href=&quot;http://futurethinkers.org&quot;&gt;Future Thinkers&lt;/a&gt;”, which highlights nineteen industries that the blockchain could disrupt. Many of these themes, including payments, identity, supply chain and governance are areas &lt;a href=&quot;/2014/01/27/Blockchain/&quot;&gt;I had previously highlighted&lt;/a&gt; and certainly remain viable use cases.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/G3psxs3gyf8?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Although still relatively immature, I believe blockchain is starting to evolve from genesis into a technology that could truly transform traditional business models.&lt;/p&gt;
</description>
        <pubDate>Wed, 15 Jun 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/06/15/Blockchain-Opportunity/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/06/15/Blockchain-Opportunity/</guid>
      </item>
    
      <item>
        <title>Node Web Accelerator</title>
        <description>&lt;p&gt;I use Heroku a lot to build, deploy and scale web applications. I’m also a big fan of their “pipeline” feature, which enables you to easily manage different instances (e.g. DEV, STAGE, PRD) of your application across the development lifecycle.&lt;/p&gt;

&lt;p&gt;One challenge with pipelines is that DEV and STAGE applications are not inherently secured, meaning they are available to the public. In certain scenarios this would be a problem, as content displayed in DEV or STAGE may not yet be finalised or have the required approvals.&lt;/p&gt;

&lt;p&gt;As a result, I (and some friends) built a Node Web Accelerator which includes authentication using the Force.com PassportJS strategy. We also included Handlebars and New Relic, which are common dependencies when building web applications.&lt;/p&gt;

&lt;p&gt;You can find the &lt;a href=&quot;https://github.com/mswbull/Express_Handlebars_Auth_NR_Scaffolding&quot;&gt;Web Accelerator&lt;/a&gt; on GitHub (pull requests welcome).&lt;/p&gt;

&lt;h4 id=&quot;web-accelerator-architecture&quot;&gt;Web Accelerator Architecture&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Node + Express:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Web Accelerator is built on Node / Express.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org&quot;&gt;Node.js&lt;/a&gt; is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. It also includes the Node.js package ecosystem (AKA npm), which is the largest ecosystem of open source libraries in the world.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://expressjs.com&quot;&gt;Express.js&lt;/a&gt; is a Node.js web application server framework, designed for building single-page, multi-page, and hybrid web applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Handlebars:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://handlebarsjs.com&quot;&gt;Handlebars.js&lt;/a&gt; is a semantic web template system, allowing you to build clean logic-less templates based on the &lt;a href=&quot;https://mustache.github.io&quot;&gt;Mustache Templating&lt;/a&gt; Language.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PassportJS:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://passportjs.org&quot;&gt;Passport.js&lt;/a&gt; is an extremely flexible and modular authentication middleware for Node.js. By default, the Web Accelerator uses the &lt;a href=&quot;https://github.com/joshbirk/passport-forcedotcom&quot;&gt;Force.com Strategy&lt;/a&gt;, which means it uses Force.com as the identity provider. Force.com was chosen as it has a compressive set of identity capabilities and is easy to integrate with. You can also grab yourself a free Force.com Developer Edition org for testing.&lt;/p&gt;

&lt;p&gt;Sessions are managed by &lt;a href=&quot;https://www.heroku.com/redis&quot;&gt;Heroku Redis&lt;/a&gt;, which enables the Web Accelerator to scale beyond a single Heroku dyno. Redis does not require any configuration, simply add it to your application as an add-on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Heroku Config Variables:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Web Accelerator follows the best practices of &lt;a href=&quot;http://12factor.net&quot;&gt;Twelve-Factor App&lt;/a&gt; methodology. For example, all environment variables are maintained as config variable in Heroku, making the application very portable, flexible and easy to setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New Relic APM:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Although not a requirement, the Web Accelerator also includes &lt;a href=&quot;https://elements.heroku.com/addons/newrelic&quot;&gt;New Relic APM&lt;/a&gt; for application monitoring. Simple add the add-on and configure the config variable.&lt;/p&gt;

&lt;h4 id=&quot;getting-started&quot;&gt;Getting Started&lt;/h4&gt;

&lt;p&gt;Before you start, if you plan to use the Passport.js &lt;a href=&quot;https://github.com/joshbirk/passport-forcedotcom&quot;&gt;Force.com Strategy&lt;/a&gt;, you will need to first create a “&lt;a href=&quot;https://developer.salesforce.com/page/Connected_Apps&quot;&gt;Force.com Connected App&lt;/a&gt;”. This will provide you with a unique “Client ID” and “Client Secret”, which will be added to your Heroku app config variables.&lt;/p&gt;

&lt;p&gt;Now you can clone the &lt;a href=&quot;https://github.com/mswbull/Express_Handlebars_Auth_NR_Scaffolding&quot;&gt;Web Accelerator&lt;/a&gt; repository and push it to Heroku.&lt;/p&gt;

&lt;p&gt;Add the config variables (highlighted below) from the application settings tab in Heroku.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;AUTH_REQUIRED = true / false
CF_CALLBACK_URL = https://.herokuapp.com/auth/forcedotcom/callback
CF_CLIENT_ID = Force.com Connected App ID
CF_CLIENT_SECRET = Force.com Connected App Secret
COOKIE_SECRET = Any Value
LOG_LEVEL = combined
NEW_RELIC_LICENSE_KEY = New Relic License Key
NEW_RELIC_LOG = stdout
REDIS_URL = Redis URL
SF_AUTHORIZE_URL = https://.salesforce.com/services/oauth2/authorize
SF_TOKEN_URL = https://.my.salesforce.com/services/oauth2/token
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Finally, add your code / content to the Web Accelerator. This is as simple as adding files to the following folders:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;views = Handlebars Pages (HTML)
views/layouts = Handlebars Layouts
views/partials = Handlebars Partials
public = Unauthenticated Static Assets (CSS, Fonts, JS, IMG)
private_static = Authenticated Static Assets (CSS, Fonts, JS, IMG)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Anything added to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;public&lt;/code&gt; and/or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;private_static&lt;/code&gt; folders will automaticlly be served. Pages added to the views folder would need to have a route defined in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;routes/authenticated-routes.js&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;That’s it! The application will now be served when you hit your Heroku app.&lt;/p&gt;
</description>
        <pubDate>Sun, 12 Jun 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/06/12/Node-Web-Accelerator/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/06/12/Node-Web-Accelerator/</guid>
      </item>
    
      <item>
        <title>PaaS - MS vs SFDC</title>
        <description>&lt;p&gt;Yesterday Gartner issued their annual &lt;a href=&quot;https://www.salesforce.com/form/conf/gartner-apaas-magic-quadrant-2016.jsp&quot;&gt;Magic Quadrant for Application Platform as a Service (PaaS)&lt;/a&gt;. They positioned Microsoft and Salesforce.com in the leader’s quadrant.&lt;/p&gt;

&lt;p&gt;Although this is obviously a big topic, with many variables, I wanted to share my thoughts on the Application Platform as a Service (PaaS) market, specifically focused on Microsoft vs Salesforce.com.&lt;/p&gt;

&lt;h4 id=&quot;introduction&quot;&gt;Introduction&lt;/h4&gt;

&lt;p&gt;Firstly, I strongly believe the future of application development / hosting is in the cloud. I’m confident that on-premise and hybrid-cloud will remain in existence for many years, but I ultimately see these implementations becoming niche.&lt;/p&gt;

&lt;p&gt;Although there are many enablers to cloud adoption, I certainly see I/PaaS being key. In this new world, I believe Google, Amazon, Microsoft and Salesforce.com are best equipped to deliver for enterprise customers. Without a significant market shift, I don’t hold much hope for SAP, Oracle, IBM, who I predict will (over many years) be relegated to specific verticals or product-lines.&lt;/p&gt;

&lt;p&gt;The only other interesting player is &lt;a href=&quot;http://www.pivotal.io&quot;&gt;Pivotal&lt;/a&gt;. I remain impressed by their architecture and strategy, as instead of attempting to compete with Google, Microsoft, Amazon and Salesforce.com, they have chosen to make them a commodity, by abstracting their PaaS (Cloud Foundry) via a technology called Bosh. This is smart, as Cloud Foundry can exist everywhere, regardless of the underlying infrastructure. In this world, Cloud Foundry could become the new “Microsoft Windows”, allowing Pivotal to sell services around the underlying platform.&lt;/p&gt;

&lt;h4 id=&quot;microsoft&quot;&gt;Microsoft&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Enterprise Heritage&lt;/strong&gt; - Windows, Windows Server and Office are entrenched in almost every business, therefore Microsoft have a powerful foundation to build on. Combined with their experience working with large enterprises, they should be able to continue to drive growth, especially with customers that lack strategic direction (Microsoft, like IBM in the past, remain a safe bet).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On-Premise + Cloud&lt;/strong&gt; - Microsoft maybe the only player to have a viable on-premise + cloud story, with the ability to drive interesting hybrid options. Knowing the market share of Windows, Windows Server and SharePoint, Microsoft can look to extend these services into the cloud, providing customers a bridge from “old” to “new”. In certain scenarios this option could be appealing, however in most cases this is actually just moving the problem. For example, taking a legacy application stack and moving it to the cloud is not a long-term answer (it simply buys you some time). You can obviously re-architect/build in the Microsoft cloud, but this neutralizes the main value proposition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developer Experience&lt;/strong&gt; - Microsoft are known for delivering a fantastic developer experience across their ecosystem. Tools such as Visual Studio and their developer documentation are always very comprehensive, with many reusable patterns and active support communities. Historically, the main challenge has been that these resources were focused exclusively on the Microsoft eco-system, however this is slowly changing with their new open mindset (see the next point).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open&lt;/strong&gt; - Microsoft have historically focused on proprietary services, with their goal to promote their own platforms (e.g. Windows) and sell through licensing. This model is no longer viable and under Satya Nadella we’ve seen Microsoft embrace open. Examples are .Net, SQL Server, Visual Studio Code, Xamarin and even Windows, which now natively supports the Bash environment. Unfortunately, the road from proprietary to open is not short and there is certainly a difference between running “Hello World” and a production-ready, secure, resilient and scalable application. At this time, I’ve not spoken to anyone (including Microsoft) who has confidently stated that Microsoft services are ready to run in production, on open platforms. As a result, I believe we are still years away from the maturity of other open-community environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strategic Direction / Ecosystem&lt;/strong&gt; - In the past three years alone Microsoft have changed their mission and vision statement three times. They have covered everything from consumer to business and software to devices. In my opinion they simply lost their way, unable to decide if they want to be like Apple, IBM or something in between. This lack of direction resulted in some interesting decisions (e.g. Windows 8, Nokia), but also damaged the eco-system and developer community. At the past two BUILD conferences, Microsoft have attempted to repair the damage by positioning the Universal Windows Platform (UWP), which also includes a number of bridges for Web, iOS and Android developers. The goal was to deliver a next generation application architecture, as well as win back some of the community they had lost. I believe the architecture is sound, but unfortunately the ecosystem is not growing the way Microsoft had hoped, this has not been helped by another recent change in direction, where a number of the bridges were retired or re-written (further damaging the relationship with the developer community).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt; - Although Microsoft has had a rough few years (known disappointments include: Windows 8, Windows Phone Hardware, Universal Windows Platform, Windows Phone OS, Nokia, Surface, Xbox One, Microsoft Band, Kinect, Skype – to name a few). I believe Azure and Office365 remain incredibly powerful assets. I also believe that under the leadership of Satya Nadella and their new “open philosophy”, they will emerge as one of the top cloud application development / hosting players. What is currently unclear is if they can win back the developer community and make the Universal Windows Platform a viable option (especially for the enterprise). Finally, I think the biggest barrier to success for Microsoft will not be the competition, but instead their own ability to execute. If the last three years is evidence, they have been unable to focus the company on a single vision, resulting in continued miss-steps, lost momentum and brand damage with their most loyal customers.&lt;/p&gt;

&lt;h4 id=&quot;salesforcecom&quot;&gt;Salesforce.com&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Declarative PaaS&lt;/strong&gt; - Force.com remains a unique value proposition in the market. The multi-tenant, metadata driven architecture, with the open-source Aura (AKA Lightning) framework is unlike anything else, providing a true declarative development (clicks, not code) experience. Microsoft would likely argue that SharePoint can deliver similar outcomes, but this is simply not the case. SharePoint does not offer anything close to Lightning App Builder and/or Process Builder, both capabilities that truly enable “non-developers” to deliver rich, modern, cloud applications. The recent move to the Lightning architecture, which is open-source, JavaScript-based and focused on components (not apps) is arguably the most &lt;a href=&quot;/2014/10/29/Dreamforce-2014/&quot;&gt;significant architecture change in the history of Salesforce.com&lt;/a&gt;. In my opinion this direction shows a clear strategy and an understanding that Force.com must not only continue to evolve, but also remain ahead of industry trends. It’s also worth briefly mentioning Heroku, which continues to gain momentum and provides additional flexibility for developers. In fact, I believe Heroku will continue to get more tightly integrated with the broader Salesforce.com eco-system, actually becoming the “engine” behind many of their new services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud Only / API-First&lt;/strong&gt; - Unlike most legacy players (Microsoft, SAP, Oracle), Salesforce.com was born in the cloud. Without the anchor of on-premise, Salesforce.com can innovate at a quicker rate then the competition (recognized by Forbes for the past five years), something that is very difficult to compete against. The fact that they also pioneered “API-Centric Architecture” (alongside Amazon) shows that they clearly understand the importance of having world-class technical expertise, with a proven ability to execute. Their API-First mentality is the envy of many companies, with Microsoft and others spending a huge amount of time modernizing their legacy stack in an attempt to follow an API-First approach. The advantage for the likes of Salesforce.com and Amazon is that API-First is part of the company’s culture, while legacy players must attempt to transform their organizations (something that many will not achieve).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer-Centric&lt;/strong&gt; - A key part of the Salesforce.com marketing is the “Customer-Centric” tag line. Although some of this is clearly just good marketing, I do believe there is truth in the statement. For example, Salesforce.com have continued to aggressively grow their product portfolio (often through acquisition). However, when you analyze this growth, you’re able to quickly identify a common theme… The Customer. It’s my belief that Salesforce.com want to own the customer lifecycle, from Apps, CRM, Service, Marketing, Analytics, IoT to E-Commerce. Their most recent acquisition (Demandware) continues this trend, with an important step into E-Commerce. What I like about this strategy is that it’s clear, bold and aggressive, which (if successful) will make Salesforce.com a powerful player anytime you’re dealing with a customer (delivering a true 360degree view). If you compare this with Microsoft (echoing my comments above), they have also made bold acquisitions (e.g. Nokia), but often without the same clarity of vision and lack of customer focus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strategic Direction / Ecosystem&lt;/strong&gt; - As previously stated, Salesforce.com have a clear vision and a powerful product portfolio. If they can integrate these capabilities successfully it presents a very exciting opportunity for application development. For example, it’s easy to see how data flowing through these services (via multiple digital channels), could deliver a customer relationship that is on equal terms, one that is personalized, always available and always up to date. I can’t think of another technology company (including Microsoft) that have this potential (based on their current product portfolio). Another important note is the focus we’ve seen from Salesforce.com on developer experience, an area where Microsoft have always been strong. The introduction of &lt;a href=&quot;https://developer.salesforce.com/trailhead&quot;&gt;Trailhead&lt;/a&gt; has been a phenomenal success and the AppExchange continues to grow, with the introduction of Lightning Components, alongside traditional applications. The continued investment in these services demonstrates their commitment to developer experience, but also highlights their unique approach to implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Licensing&lt;/strong&gt; - I continue to believe the biggest weakness for Salesforce.com is their licensing. Although the Force.com architecture offers many advantages, the multi-tenant nature of the platform makes clean separation of applications difficult to define. As a result, Salesforce.com have chosen to follow a “per user” license model, which unfortunately doesn’t offer the same economies of scale for enterprise customers, when compared with a more traditional application development / hosting architecture. I see this as a significant barrier, one that they must overcome to see continued growth. I do however believe there is some light at the end of the tunnel, as in recent weeks we have started to see their plan to bring Force.com and Heroku closer together. We’ve also seen them sign a strategic deal with Amazon, something that I believe is designed to help them scale (affordably) Force.com and Heroku. Unfortunately, these are major changes, which will likely take many years to deliver tangible value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt; - At this time, I believe Salesforce.com continue to be on a positive trajectory. They certainly have their share of challenges (integrating Marketing Cloud and now Demandware), as well as maturing the new Lightning architecture. However, I think these are good problems to have, as the outcome (if successful) presents a huge opportunity for them and us. I also remain impressed with their architecture, technical expertise, culture and approach. Regardless of their growth, they appear to stay true to their values and focus on strong customer relationships. Finally, I believe with the recent acquisition of Demandware, they now have the end-to-end customer lifecycle covered, which again presents interesting opportunities.&lt;/p&gt;
</description>
        <pubDate>Tue, 07 Jun 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/06/07/PaaS-Microsoft-vs-Salesforce.com/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/06/07/PaaS-Microsoft-vs-Salesforce.com/</guid>
      </item>
    
      <item>
        <title>Heroku EX</title>
        <description>&lt;p&gt;In January 2015, I wrote an &lt;a href=&quot;/2015/01/16/Heroku-Enterprise/&quot;&gt;article&lt;/a&gt; expressing concern regarding the future of Heroku for the enterprise. This was triggered by the market growth of Platform as a Service and the mind share being gained by competitors such as Cloud Foundry.&lt;/p&gt;

&lt;p&gt;I felt that Heroku were not being transparent regarding their roadmap (especially for enterprise customers) and the true value proposition was getting lost in the Salesforce.com marketing.&lt;/p&gt;

&lt;p&gt;As a result, I had recommended a number of changes, as well as a renewed focus on the enterprise (to better compete against the growth of Cloud Foundry, Docker, Serverless Computing, etc.)&lt;/p&gt;

&lt;p&gt;Thankfully, over the past year, Heroku (and Salesforce.com) have made some real progress.&lt;/p&gt;

&lt;p&gt;As a starting point, I think they have finally nailed the marketing by positioning the “App Cloud” brand, which is the name used to collectively describe Force.com and Heroku. I like the fact that App Cloud is not biased towards either platform, clearly articulates the purpose (e.g. Apps) and alludes to the fact that Force.com and Heroku can be used together to build composite applications. This is infinitely better than than the previous confusing “Salesforce1 / Heroku1” branding.&lt;/p&gt;

&lt;p&gt;Alongside the marketing, Salesforce.com have also updating their pricing to include Force.com and Heroku platform access. Although this in progress, in my opinion, pricing remains highly confusing and one of the major barriers to entry for the entire Salesforce.com eco-system.&lt;/p&gt;

&lt;p&gt;This brings me to the roadmap, which has also taken a major step forward. My previous concerns regarding the roadmap were not caused by a lack of innovation or great technology, but the ability to articulate the key messages. In January 2015 it was still quite common for Salesforce.com customers I spoke with to say “why do I need this Heroku thing?”&lt;/p&gt;

&lt;p&gt;Heroku now split their roadmap across three areas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DX&lt;/strong&gt; = Developer Experience&lt;br /&gt;
&lt;strong&gt;EX&lt;/strong&gt; = Enterprise Experience&lt;br /&gt;
&lt;strong&gt;CX&lt;/strong&gt; = Customer Experience&lt;/p&gt;

&lt;p&gt;This actually works very well, as it clearly describes the focus areas and allows for new features to be easily positioned, prioritised and communicated. It is also great to see “enterprise” as a core part of the strategy, allowing Heroku to move beyond their “start-up” heritage.&lt;/p&gt;

&lt;h4 id=&quot;dx--developer-experience&quot;&gt;DX = Developer Experience&lt;/h4&gt;

&lt;p&gt;Heroku has always led the way regarding developer experience and pioneered the “develop, push, scale” mentality that is now a minimum expectation for all developers.&lt;/p&gt;

&lt;p&gt;Heroku have recently enhanced this experience through the enablement of Pipelines.&lt;/p&gt;

&lt;p&gt;A pipeline is a group of Heroku apps that share the same codebase. Apps in a pipeline are grouped into “REVIEW”, “DEVELOPMENT”, “STAGING”, and “PRODUCTION”, which represent different deployment steps in a continuous delivery workflow. A pipeline also allows for multiple applications to live at each stage and provides a simple, visual representation of the end-to-end lifecycle.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/herokupipelines.png&quot; alt=&quot;Heroku Pipelines&quot; title=&quot;Heroku Pipelines&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Prior to Pipelines, developers were forced to manage this workflow manually using namespacing, which quickly became complicated (especially when building microservices).&lt;/p&gt;

&lt;p&gt;Thanks to the tight integration with GitHub, Pipelines can be setup via a few simple clicks. Once enabled, any open GitHub Pull Request will automatically create a review app (under the REVIEW stage), allowing developers to see their changes in real-time. Once the Pull Request has been merged, the review app is automatically closed.&lt;/p&gt;

&lt;p&gt;This type of seamless continuous delivery workflow is exactly what makes Heroku a pleasure to work with and acts as a true differentiator when compared with other platforms.&lt;/p&gt;

&lt;h4 id=&quot;ex--enterprise-experience&quot;&gt;EX = Enterprise Experience&lt;/h4&gt;

&lt;p&gt;One of the perceived barriers with Heroku for the enterprise is the lack of “Private Cloud” option. I personally believe this barrier is nonsense, but perception is powerful and it could become a real sticking point.&lt;/p&gt;

&lt;p&gt;Heroku could have chosen to follow Pivotal, but abstracting the Platform as a Service from the underlying infrastructure (e.g. via &lt;a href=&quot;https://bosh.cloudfoundry.org/&quot;&gt;BOSH&lt;/a&gt;). However, this approach would go against the core principles of Salesforce.com (e.g. Pure Cloud) and likely not provide any unique selling points.&lt;/p&gt;

&lt;p&gt;As a result, Heroku have chosen to create Private Spaces.&lt;/p&gt;

&lt;p&gt;A Private Space (in my opinion) is how “Private Cloud” should be done, as it does not compromise on the key value proposition of Platform as a Service, by ensuring that businesses can still exclusively focus on their applications and data, not the lower levels of the technology stack.&lt;/p&gt;

&lt;p&gt;In short, a Private Space is a network isolated group of applications and data services with a dedicated runtime environment, provisioned to Heroku in a chosen geographic region. This setup provides strong security and privacy controls, as well as allows Heroku applications to securely connect to on-premise systems and other cloud services, including Force.com.&lt;/p&gt;

&lt;p&gt;The key value proposition of a Private Space is that it can be created with a single click (see image below). The process itself takes approximately eight minutes, at which point you have your own “Private Cloud” instance of Heroku. You can create as many Private Spaces as you require and once created the developer experience is completely unchanged.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/herokuprivatespace.png&quot; alt=&quot;Heroku Private Space&quot; title=&quot;Heroku Private Space&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With my infrastructure background, I am very impressed by Private Spaces! Watching a Private Space get provisioned is wonderfully underwhelming, as it just works!&lt;/p&gt;

&lt;p&gt;In summary, Private Spaces will help enable enterprise customers migrate to the cloud, act as a clear market differentiator and also paves the way for other enterprise requirements such as privacy and compliance certifications.&lt;/p&gt;

&lt;h4 id=&quot;cx--customer-experience&quot;&gt;CX = Customer Experience&lt;/h4&gt;

&lt;p&gt;At the heart of Salesforce.com is the customer. This is evident in their marketing and broader eco-system (Sales Cloud, Service Cloud, Marketing Cloud, etc.)&lt;/p&gt;

&lt;p&gt;Heroku is now (finally) being positioned as a core part of the customer journey, with many &lt;a href=&quot;https://www.heroku.com/cx&quot;&gt;patterns&lt;/a&gt; and &lt;a href=&quot;https://www.heroku.com/customers&quot;&gt;examples&lt;/a&gt; available.&lt;/p&gt;

&lt;p&gt;With this in mind, I believe Heroku will play an increasingly important role in the Salesforce.com eco-system. This is not only for customers who are looking to build composite applications (Force.com + Heroku), but also for Salesforce.com themselves, as Heroku provides the perfect foundation to build other services. I predict we will see new Salesforce.com services that will no doubt be branded “something Cloud”, but will secretly be built on Heroku (probably in a Private Space).&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;In summary, my previous concerns related to Heroku Enterprise have been answered. I believe with this new structure and focus, Heroku have re-positioned themselves as not only a viable enterprise platform, but arguably the most viable for businesses looking to “get out of the infrastructure game” and focus on customer value.&lt;/p&gt;
</description>
        <pubDate>Sat, 21 May 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/05/21/Heroku-EX/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/05/21/Heroku-EX/</guid>
      </item>
    
      <item>
        <title>Entertainment Setup</title>
        <description>&lt;p&gt;&lt;strong&gt;Update - In 2018 I updated my TV. This article has not been updated. Please refer to the article “&lt;a href=&quot;/2018/11/10/Samsung-Q7FN/&quot;&gt;Samsung Q7FN&lt;/a&gt;” for additional details.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I am occasionally asked questions about my home entertainment setup. As a result, I thought I would share a quick overview.&lt;/p&gt;

&lt;p&gt;The centre piece of my setup is the &lt;a href=&quot;http://www.samsung.com/uk/tv/KS8000/&quot;&gt;Samsung UE55KS8000&lt;/a&gt; SUHD 4K TV, which includes the following specification:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Samsung UE55KS8000 (55-inch)&lt;/li&gt;
  &lt;li&gt;3840×2160 Resolution&lt;/li&gt;
  &lt;li&gt;240Hz Refresh Rate (120Hz Measured)&lt;/li&gt;
  &lt;li&gt;1000nits Peak Brightness (1400nits Once Calibrated)&lt;/li&gt;
  &lt;li&gt;10bit Colour Support&lt;/li&gt;
  &lt;li&gt;HDR10 Compatible&lt;/li&gt;
  &lt;li&gt;96% DCI-P3 Coverage&lt;/li&gt;
  &lt;li&gt;21ms Response Time (Game Mode)&lt;/li&gt;
  &lt;li&gt;Edge LED Backlight&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I originally purchased the 65-inch model (UE65KS8000), in the belief that bigger is always better. However, upon reflection, the screen was simply too large for my living room. It did provide an incredibly immersive experience when watching movies or playing games, but when off, the black screen dominated the wall.&lt;/p&gt;

&lt;p&gt;As a result, I swapped it for the 55-inch model. I actually believe 60-inch is the sweet spot for my living room, but unfortunately this size is not available in the KS8000 series.&lt;/p&gt;

&lt;p&gt;Although 4K and HDR were both key requirements when selecting this TV, the real differentiator for the KS8000 series was the One Connect box, with two satellite inputs. To my knowledge, no other TV on the market has this specific configuration.&lt;/p&gt;

&lt;p&gt;The One Connect box essentially decouples all input / output connections (HDMI, etc.) from the TV itself. Therefore, instead of having multiple cables connecting directly to the TV, you only have one.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/entertainmentsetup01.jpg&quot; alt=&quot;Samsung One Connect&quot; title=&quot;Samsung One Connect&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This was critical for my setup, as all of my AV equipment and entertainment devices are located in a cupboard under the stairs, which happens to be directly behind the wall where the TV is mounted. As a result, I send the one cable through the wall into the cupboard, at which point it connects to my AV Receiver. As highlighted by the image below, this setup delivers a very clean, minimal look in the living room (something that &lt;a href=&quot;/2015/06/05/My-Setup/&quot;&gt;I always strive to achieve&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/entertainmentsetup05.jpg&quot; alt=&quot;Entertainment Setup&quot; title=&quot;Entertainment Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, the Samsung UE55KS8000 is a phenomenal TV, with &lt;a href=&quot;https://www.whathifi.com/samsung/ue49ks8000/review&quot;&gt;stunning picture quality and great HDR performance&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To compliment the TV, I have the &lt;a href=&quot;http://www.bowers-wilkins.co.uk/Speakers/Theatre_Solutions/Mini_Theatre/mt-50.html&quot;&gt;Bowers &amp;amp; Wilkins MT-50&lt;/a&gt;, which is 5.1 Mini Theatre setup. It includes five M-1 speakers and the ASW608 subwoofer (shown in the previous image).&lt;/p&gt;

&lt;p&gt;Each M-1 speaker includes a &lt;a href=&quot;http://www.bowers-wilkins.co.uk/Speakers/Home_Audio/Nautilus/technologies.html&quot;&gt;nautilus tube&lt;/a&gt; and aluminium dome tweeter, as well as a woven fibre glass cone for bass and midrange. Considering their modest size, they produce incredible sound and are &lt;a href=&quot;https://www.whathifi.com/bw/mt-50/review&quot;&gt;universally well rated&lt;/a&gt;. Complementing the M-1 speakers, the ASW608 subwoofer includes a bass driver constructed from paper pulp, Kevlar fibre and resin.&lt;/p&gt;

&lt;p&gt;Overall, I cannot fault Bowers &amp;amp; Wilkins MT-50 Mini Theatre, which in my opinion is the perfect blend of style and unbelievable surround sound performance.&lt;/p&gt;

&lt;p&gt;The TV and Mini Theatre are connected to the &lt;a href=&quot;https://www.sony.com/electronics/av-receivers/str-dn1050&quot;&gt;Sony STR-DN1050&lt;/a&gt; AV Receiver, which supports 165W 7.2 audio output, DTS-HD, Dolby TrueHD, Wi-Fi and Bluetooth connectivity, as well as 6x HDMI inputs and 3x outputs. The image below highlights the sheer number of connectivity options.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/entertainmentsetup03.jpg&quot; alt=&quot;Sony STR-DN1050&quot; title=&quot;Sony STR-DN1050&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Considering the relatively low price (RRP £500), &lt;a href=&quot;https://www.whathifi.com/sony/str-dn1050/review&quot;&gt;the Sony STR-DN1050 is a strong performer&lt;/a&gt;, which really acts as the central hub for my other entertainment devices, such as multiple games consoles, Apple TV, etc.&lt;/p&gt;

&lt;p&gt;Finally, the entire setup is controlled using the &lt;a href=&quot;https://www.logitech.com/en-gb/product/harmony-companion/&quot;&gt;Logitech Harmony Companion&lt;/a&gt; remote, which is simple and elegant, but also very powerful, connecting to devices via Wi-Fi, Bluetooth and Infrared.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/entertainmentsetup04.jpg&quot; alt=&quot;Logitech Harmony Companion&quot; title=&quot;Logitech Harmony Companion&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Logitech Harmony Companion remote brings the entire setup together, with pre-defined profiles, enabling multiple devices to be switched-on and configured in a single click. It also supports Amazon Alexa, providing a host of voice controls to manage the entire setup.&lt;/p&gt;

&lt;p&gt;Overall, I am pleased with my entertainment setup. I have tried to keep things “minimal”, whilst still delivering high performance and quality. I suspect my next major upgrade will be the jump to an OLED TV (once the price comes down a bit) and maybe a new AV Receiver, as the Sony STR-DN1050 is already several years old.&lt;/p&gt;
</description>
        <pubDate>Thu, 19 May 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/05/19/Entertainment-Setup/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/05/19/Entertainment-Setup/</guid>
      </item>
    
      <item>
        <title>GraphQL</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://graphql.org&quot;&gt;GraphQL&lt;/a&gt; is a data query language for APIs that was developed internally by &lt;a href=&quot;https://www.facebook.com&quot;&gt;Facebook&lt;/a&gt; and made public in 2015. It provides an interesting alternative to REST and ad-hoc endpoints, looking to overcome the inherent limitations of each.&lt;/p&gt;

&lt;p&gt;For example, the pseudo code below outlines a basic REST endpoint.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/v3/users?id=1  

{
  &quot;id&quot;: 1,  
  &quot;name&quot;: &quot;Matt&quot;,  
  &quot;title&quot;: &quot;Enterprise IT Architect&quot;,  
  &quot;orders&quot;: [  
    &quot;/v3/orders?id=123&quot;,  
    &quot;/v3/orders?id=1234&quot;,
    ...
  ]  
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
As you can see, the details of each specific order are made available via additional endpoints. Therefore, to be able to retrieve the details of multiple orders, multiple requests must be sent, which can be slow and unreliable.&lt;/p&gt;

&lt;p&gt;To overcome this challenge, it is not uncommon to create an ad-hoc endpoint, which is pre-configured to serve the full data request (removing the need for multiple requests). However, this requires foresight regarding the specific data requests and the creation of a server-side, ad-hoc endpoint, therefore adding complexity to the application and increasing the support overhead.&lt;/p&gt;

&lt;p&gt;GraphQL takes a different approach, instead of defining the structure of responses on the server, the flexibility is given to the client. To achieve this, GraphQL provides a thin-layer that sits in front of the application, where a GraphQL Schema is created, which describes the data. The schema is then accessed via a single endpoint, allowing other applications to send specific queries.&lt;/p&gt;

&lt;p&gt;The characteristics and benefits of GraphQL are summarised below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;A GraphQL query is expressive and targeted, returning predictable, specific results.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A GraphQL query is not limited to the properties of one resource, removing the need for multiple requests.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A GraphQL API is organised in terms of types and fields, not endpoints. This supports discoverability and accuracy (through suggestions), as well as provides clear and helpful errors.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A GraphQL API provides access to the full capabilities of the data from a single endpoint (via types and fields).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The ability to add new fields and types to the GraphQL API without impacting existing queries. This enables a single evolving version, instead of needing to maintain multiple versions.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;GraphQL creates a unified API across the entire application and is limited by a specific language or storage architecture.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;GraphQL provides powerful developer tools, such as &lt;a href=&quot;https://github.com/graphql/graphiql&quot;&gt;GraphiQL&lt;/a&gt;, which streamline the development process, reduce errors and encourages an active ecosystem.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Linked below is a great video from &lt;a href=&quot;https://www.linkedin.com/in/stevenluscher/&quot;&gt;Steven Luscher&lt;/a&gt; from Facebook, who demonstrates how to get started with GraphQL across Python, Ruby and Node.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/UBGzsb2UkeY?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I believe the video clearly demonstrates the power, flexibility and potential of GraphQL. As a result, I predict to see the use of GraphQL increase rapidly over the coming years, potentially displacing REST.&lt;/p&gt;
</description>
        <pubDate>Sat, 30 Apr 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/04/30/GraphQL/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/04/30/GraphQL/</guid>
      </item>
    
      <item>
        <title>Skylake Overclocking</title>
        <description>&lt;p&gt;I recently &lt;a href=&quot;/2016/04/01/skylake-build/&quot;&gt;upgraded my primary Windows PC to Intel’s latest Skylake architecture&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The full specification of my new setup can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus Maximus VIII Hero Alpha (Intel Z170)&lt;/li&gt;
  &lt;li&gt;Intel Core i7-6700K 4.0GHz @ 4.6GHz&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;Corsair Vengeance LPX 32GB DDR4 PC4-24000C15 (15-17-17-35)&lt;/li&gt;
  &lt;li&gt;Gigabyte GeForce GTX 980 4GB @ 1350MHz / 8000MHz&lt;/li&gt;
  &lt;li&gt;Samsung 950 Pro 512GB M.2 PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As part of the build, I overclocked the CPU (all cores) to 4.6GHz. Thankfully, overclocking the Skylake architecture is relatively easy, assuming you have a “K” processor (unlocked multiplier), adequate cooling and a stable power supply.&lt;/p&gt;

&lt;p&gt;Highlighted below are a few screenshots of my UEFI configuration, specifically focused on the CPU overclocking settings.&lt;/p&gt;

&lt;p&gt;The majority of the overclocking settings can be found within the “Extreme Tweaker” section. As you can see from the screenshot, the “CPU Core Ratio” is fixed to “46” per core. With a “BCLK Frequency” of 100, this results in a target overclock of 4.6GHz (46x100). To achieve a stable 24x7 overclock, I manually set the “CPU Core/Cache Voltage” to “1.360v”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/skylakeoc01.jpg&quot; alt=&quot;Skylake Overclocking&quot; title=&quot;Skylake Overclocking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It is also worth reviewing the configuration under the “Extreme Tweaker &amp;gt; Internal CPU Power Management”. Historically, I would have disabled all “SpeedStep” and “Turbo” features, however, this is no longer a requirement (does not impact the 24x7 overclock).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/skylakeoc02.jpg&quot; alt=&quot;Skylake Overclocking&quot; title=&quot;Skylake Overclocking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, under the “Advanced” section, I enable “Hyper-Threading”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/skylakeoc03.jpg&quot; alt=&quot;Skylake Overclocking&quot; title=&quot;Skylake Overclocking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In short, overclocking Skylake is very simple! It is obviously possible to tweak additional settings to further improve performance, however, this is definitely a case of diminishing returns (without resorting to extreme cooling, etc.)&lt;/p&gt;

&lt;p&gt;If you would like to explore all of the overclocking settings, I would recommend reviewing the “&lt;a href=&quot;https://www.overclock.net/forum/5-intel-cpus/1570313-skylake-overclocking-guide-statistics.html&quot;&gt;Skylake Overclocking Guide&lt;/a&gt;” provided by &lt;a href=&quot;https://www.overclock.net&quot;&gt;overlock.net&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Tue, 12 Apr 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/04/12/Skylake-Overclocking/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/04/12/Skylake-Overclocking/</guid>
      </item>
    
      <item>
        <title>EA Positioning</title>
        <description>&lt;p&gt;In my previous two articles (&lt;a href=&quot;/2016/01/05/Enterprise-IT-Architecture/&quot;&gt;Enterprise IT Architecture&lt;/a&gt; and &lt;a href=&quot;/2016/02/21/EA-Principles/&quot;&gt;EA Principles&lt;/a&gt;), I described the Enterprise IT Architecture structure and methodology in place at my company, as well as provided a detailed description of the principles.&lt;/p&gt;

&lt;p&gt;This article will focus on &lt;strong&gt;positioning&lt;/strong&gt; and &lt;strong&gt;patterns&lt;/strong&gt;, which are designed to support architects and solution engineers.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ea03.jpg&quot; alt=&quot;Enterprise IT Architecture - Methodology&quot; title=&quot;Enterprise IT Architecture - Methodology&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Positioning is achieved through a reference architecture, which can be considered a blueprint or play-book for the enterprise. It is split across seven layers (outlined below), with each layer including multiple complimentary enterprise technologies.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; Is enabled across the entire ecosystem, delivering consistent security controls such as identity, access management, threat intelligence and vulnerability management.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;User Experience:&lt;/strong&gt; Delivering an optimised experience to any end-point (web, mobile, wearable, etc.) It is fully decoupled from the application logic and content, enabling rapid evolution without any impact on the other layers.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Platforms:&lt;/strong&gt; Focused on application and business logic, with an emphasis on microservices that are organised around capabilities. Also supports the deployment and hosting of commercial packages.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Information:&lt;/strong&gt; Covering the traditional systems of record, data sources and content repositories, fully decoupled and accessed from source. The Data Layer also includes knowledge and analytic capabilities.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Integration Fabric:&lt;/strong&gt; Includes a suite of integration capabilities, that act as the digital glue, connecting services through a commonly understood contract. The Integration Fabric also performs any required transformations and helps to maintain data linage.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Infrastructure Foundation:&lt;/strong&gt; Includes commodity IT services that are critical for reliable and efficient business operations, covering workplace, collaboration, network, data centers, etc.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Delivery Tools:&lt;/strong&gt; Includes a suite of tools to facilitate high levels of automation for IT deliverables.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The diagram below provides an overview of the reference architecture, which also forms the consistent foundation for all patterns. I have added example technologies to the reference architecture, helping to demonstrate how it can be used for enterprise positioning.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ea05.jpg&quot; alt=&quot;Enterprise IT Architecture - Reference Architecture&quot; title=&quot;Enterprise IT Architecture - Reference Architecture&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Architects and solution engineers leverage the reference architecture when buying or building technology. The goal is to align (where possible) with the enterprise standards, which reduces duplication and helps to maximise the return on enterprise investments.&lt;/p&gt;

&lt;p&gt;The reference architecture also promotes a focus on customer experience. For example, instead of delivering multiple identity solutions (often resulting in multiple user logins), the reference architecture can clearly position the enterprise identity service. The same can be said for data insights, by reducing data duplication through clear positioning of enterprise data stores.&lt;/p&gt;

&lt;p&gt;Similar to the principles, 100% adherence to the reference architecture is not an expected outcome, instead the hope is to proactively trigger the right solution architecture conversations. This statement is especially true for specialist areas (e.g. manufacturing), where niche technologies may need to be deployed.&lt;/p&gt;

&lt;p&gt;As previously stated, the reference architecture is also used as a foundation for patterns, which describe how to leverage the enterprise technologies to meet specific use cases.&lt;/p&gt;

&lt;p&gt;For example, the pattern below outlines a simple web application, targeting external customer engagement.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ea06.jpg&quot; alt=&quot;Enterprise IT Architecture - Pattern&quot; title=&quot;Enterprise IT Architecture - Pattern&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The pattern removes any technology that is not relevant to the specific use case, highlighting the core architecture (continuous lines), as well as the supporting architecture (dotted lines).&lt;/p&gt;

&lt;p&gt;Knowing that a critical part of Enterprise IT Architecture is the ability to articulate complex solutions, the pattern provides a simple, consistent foundation to facilitate the story. Once widely adopted, architects and solution engineers will be able to quickly understand (high-level) almost any solution, simply by reviewing the pattern.&lt;/p&gt;

&lt;p&gt;Finally, in common patterns, teams can leverage (or create) create accelerators (boxes highlighted in bold), which are code packages, modules and/or API endpoints. Accelerators can dramatically reduce development lead times, as well as improve quality and security through standardisation, however discoverability can often be the primary barrier (mitigated by the patterns).&lt;/p&gt;

&lt;p&gt;In conclusion, the reference architecture aims to clearly position enterprise technologies, as well as proactively promote the principles. Individual patterns can then be created, using the reference architecture as a consistent foundation. This process encourages collaboration and reuse, as well as increases visibility and consistency across the enterprise.&lt;/p&gt;
</description>
        <pubDate>Sun, 03 Apr 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/04/03/EA-Positioning/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/04/03/EA-Positioning/</guid>
      </item>
    
      <item>
        <title>Skylake Build</title>
        <description>&lt;p&gt;Every few years I upgrade my primary Windows PC. My last upgrade was in April 2012, when I migrated to Intel’s &lt;a href=&quot;/2012/04/28/Next-PC-Ivy-Bridge/&quot;&gt;Ivy Bridge architecture&lt;/a&gt; (full specification below).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI Z77A-GD65 (Intel Z77)&lt;/li&gt;
  &lt;li&gt;Intel Core i5 3570K 3.4GHz @ 4.3GHz&lt;/li&gt;
  &lt;li&gt;Noctua NH-D14 CPU Cooler&lt;/li&gt;
  &lt;li&gt;Samsung Green 16GB DDR3 PC3-12800C11 (11-11-11-28)&lt;/li&gt;
  &lt;li&gt;Sapphire HD 7950 OC 3072MB GDDR5 @ 1100MHz&lt;/li&gt;
  &lt;li&gt;2x SanDisk Extreme SSD 240GB SSD (RAID 0)&lt;/li&gt;
  &lt;li&gt;Creative Sound Blaster Recon3D PCI-E&lt;/li&gt;
  &lt;li&gt;Samsung SH-B123L/BSBP Blu-Ray&lt;/li&gt;
  &lt;li&gt;OCZ ModXStream Pro 700w Modular PSU&lt;/li&gt;
  &lt;li&gt;Lian Li V1000 Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ivy Bridge was an important product for Intel, not only did it achieve a die shrink to 22nm (from 32nm), but it was also the first to leverage Tri-gate (3D) transistors (something Intel had been working on since 2002). In short, Tri-gate transistors reduce leakage and are incredibly power efficient, enabling higher performance and/or lower power consumption.&lt;/p&gt;

&lt;p&gt;My new setup is built around Intel’s Skylake architecture, which is based on a 14nm manufacturing process and the same Tri-gate transistor fabrication introduced with Ivy Bridge. According to Intel, the Skylake redesign is focused on greater CPU and GPU performance, as well as reduced power consumption. I expect the CPU performance increase to be modest, while the GPU improvements and reduced power consumption offer little value in a desktop PC with a dedicated graphics card.&lt;/p&gt;

&lt;p&gt;The full specification of my new setup can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus Maximus VIII Hero Alpha (Intel Z170)&lt;/li&gt;
  &lt;li&gt;Intel Core i7-6700K 4.0GHz @ 4.6GHz&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;Corsair Vengeance LPX 32GB DDR4 PC4-24000C15 (15-17-17-35)&lt;/li&gt;
  &lt;li&gt;Gigabyte GeForce GTX 980 4GB @ 1350MHz / 8000MHz&lt;/li&gt;
  &lt;li&gt;Samsung 950 Pro 512GB M.2 PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Arguably more interesting than the Skylake processor itself, is the corresponding Intel Z170 chipset. This new enthusiast chipset includes up to twenty lanes of PCI Express 3.0 originating from the PCH and a massive number of USB ports. It is also highly configurable, meaning motherboard manufacturers can decide how they want to utilize the available IO. For example, the Asus Maximus VIII Hero Alpha includes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2x PCIe 3.0 16x (CPU)&lt;/li&gt;
  &lt;li&gt;1x PCIe 3.0 1x (PCH)&lt;/li&gt;
  &lt;li&gt;1x PCIe 16x (PCH)&lt;/li&gt;
  &lt;li&gt;1x M.2 (PCIe 3.0 x4)&lt;/li&gt;
  &lt;li&gt;2x U.2 (M.2 / U.2 NVMe RAID Supported)&lt;/li&gt;
  &lt;li&gt;6x SATA-III&lt;/li&gt;
  &lt;li&gt;2x USB 3.1 (Type-A and Type-C)&lt;/li&gt;
  &lt;li&gt;6x USB 3.0&lt;/li&gt;
  &lt;li&gt;6x USB 2.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I was most excited about the support for M.2 (PCIe 3.0 x4), which facilitated my purchase of the Samsung 950 Pro SSD.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/samsung950pro.jpg&quot; alt=&quot;Samsung 950 Pro&quot; title=&quot;Samsung 950 Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;My previous setup leveraged &lt;a href=&quot;http://lifeintech.com/2013/03/29/SanDisk-RAID-0/&quot;&gt;two SanDisk Extreme SSDs, running in RAID 0&lt;/a&gt;. For the time, this provided impressive sequential read (1057MB/s) and write (300MB/s) speeds. However, it was clear that SATA-III and the Advanced Host Controller Interface (AHCI) was a significant bottleneck for the flash-based storage.&lt;/p&gt;

&lt;p&gt;The Samsung 950 Pro is a completely different animal, based on NVM Express (NVMe) and the M.2 connector. NVMe is a logical device interface specification for accessing non-volatile storage media attached via PCI Express (PCIe). In short, it was designed from the ground up to capitalize on the low latency and internal parallelism of SSDs, mirroring the parallelism of modern CPUs, platforms and applications.&lt;/p&gt;

&lt;p&gt;As a result, the Samsung 950 Pro can achieve some incredible sequential read (2500MB/s) and write (1500MB/s) speeds, all from a single SSD (no RAID).&lt;/p&gt;

&lt;p&gt;The table below highlights a few benchmarks from my new setup. These benchmarks were selected as I had existing data from my previous setups (Conroe - 2006 and Ivy Bridge - 2012), providing a direct comparison.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/skylakebuild01.jpg&quot; alt=&quot;Skylake Build&quot; title=&quot;Skylake Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The numbers are in line with my expectations, demonstrating impressive graphics and storage performance improvements. The PCMark score highlights the more modest improvement I expected from the CPU and memory performance.&lt;/p&gt;

&lt;p&gt;The build process itself was a pleasure, thanks to the excellent Phanteks Enthoo Evolv case (which I highly recommended). I have added a few images below.&lt;/p&gt;

&lt;p&gt;The case has plenty of room, with the PSU and power cables neatly hidden behind the motherboard panel. The fact that the setup does not include any Optical Media Drives or SATA-based Hard Drives, results in a very clean, minimalistic build.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/skylakebuild02.jpg&quot; alt=&quot;Skylake Build&quot; title=&quot;Skylake Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A closer look at the massive Noctua NH-D15 CPU Cooler. I had considered switching to an all-in-one water cooler, but the value proposition simply wasn’t strong enough (the NH-D15 performs just as well and can even be quieter when combined with the right fans).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/skylakebuild03.jpg&quot; alt=&quot;Skylake Build&quot; title=&quot;Skylake Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, an image of the build in action, with some simple LED lightning connected to the motherboards integrated RGB header.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/skylakebuild04.jpg&quot; alt=&quot;Skylake Build&quot; title=&quot;Skylake Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall I am very happy with the quality of the build and its performance. In a perfect world, I would have waited for the release of Nvidia’s Pascal GPU architecture (expected any time), but I predict availability will be limited and prices will be high. As a result, it probably makes sense to wait for AMD’s Polaris GPU architecture (expected in June), which will hopefully help drive down costs.&lt;/p&gt;
</description>
        <pubDate>Fri, 01 Apr 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/04/01/Skylake-Build/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/04/01/Skylake-Build/</guid>
      </item>
    
      <item>
        <title>iPad Pro</title>
        <description>&lt;p&gt;Today I received the new iPad Pro, which Apple announced during their event on 21st March. I wouldn’t normally comment on new hardware, but I’ve been keeping an eye on the tablet market since the launch of the original iPad in 2010, specifically as a business tool. Checkout my previous posts “&lt;a href=&quot;http://127.0.0.1:4000/2010/06/26/iPad-for-the-Enterprise/&quot;&gt;iPad for the Enterprise&lt;/a&gt;” and “&lt;a href=&quot;http://127.0.0.1:4000/2013/02/01/Surface-Pro-for-Sales-Reps/&quot;&gt;Surface Pro for Sales Reps&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;What makes the iPad Pro interesting is that it targets content creation, which has always been the achilles heel of a tablet device. I don’t intend to write a detailed review, but thought I would share a few of my initial thoughts, focused on content creation.&lt;/p&gt;

&lt;p&gt;To start, the larger screen and iPad Pro specific enhancements to iOS are a significant step in the right direction. You finally have enough room to manage full documents and can even display two applications side-by-side.&lt;/p&gt;

&lt;p&gt;Obviously to be taken seriously for content creation, the input devices are key. The new detachable keyboard works well, with reassuring button clicks that have just a little more travel than the new MacBook. I would say that anyone familiar with a standard Apple keyboard will quickly feel at home on this device and I was able to blast through e-mails without any issues.&lt;/p&gt;

&lt;p&gt;Unfortunately, similar to the Microsoft Surface, the iPad Pro is not easy to use on anything other than a table. Don’t even attempt to type anything significant with the device balanced on your legs. This is actually a bit of a shame, as the iPad Pro is otherwise well suited for traveling.&lt;/p&gt;

&lt;p&gt;This brings me to the most significant new feature of the iPad Pro… The &lt;a href=&quot;http://www.apple.com/uk/apple-pencil/&quot;&gt;Apple Pencil&lt;/a&gt;, which Apple claims is highly responsive, supports weight and understands the concept of tilt (for shading).&lt;/p&gt;

&lt;p&gt;As an IT Architect I draw a lot of diagrams, normally on a whiteboard. I’ve attempted to use drawing tablets in the past, but have always found them to be cumbersome. Thankfully the iPad Pro combined with the Apple Pencil is phenomenal. It is without question the best stylus I have ever used, almost perfectly cloning the feel of a real pencil.&lt;/p&gt;

&lt;p&gt;However, I wanted a second opinion. My drawing usually consist of boxes, with lines between them (not overly complex). I wanted to give the iPad Pro a harder test, therefore handed the device to my wife who enjoys art as a hobby. It’s worth noting that this was her first time ever using a stylus (of any type), as well as her first time using an iPad Pro. I asked her to draw something without any practice and the picture below is what she came up with.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ipadprodrawing01.jpg&quot; alt=&quot;iPad Pro - Drawing&quot; title=&quot;iPad Pro - Drawing&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I was impressed! The picture took about 30mins and was drawn using &lt;a href=&quot;http://procreate.si&quot;&gt;Procreate&lt;/a&gt;. When asked for feedback, she highlighted that she was able to immediately transfer her artistic skills from Pencil to Apple Pencil and that there was almost no learning curve. This is really the perfect result for any technology product, where the usage is completely intuitive. She did finish by saying that she still prefers paper and couldn’t see herself using an electronic device for art, but she once made a similar statement about books and she is now glued to her Kindle most evenings.&lt;/p&gt;

&lt;p&gt;I also captured a time-lapse video of her drawing, which can be viewed below.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/aQtD73l0RCE?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Overall I’ve been impressed with the iPad Pro and believe it is a solid step forward for tablets and content creation. If your job is focused on writing or drawing (art or diagrams), the iPad Pro feels like a viable option and even a potential replacement for existing hardware. Unfortunately, more specialist tasks such as software development still feel foreign on the iPad Pro, usually resulting in frustration, however this is primarily due to the limitations in the software (OS and Applications), not the hardware.&lt;/p&gt;
</description>
        <pubDate>Thu, 31 Mar 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/03/31/iPad-Pro/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/03/31/iPad-Pro/</guid>
      </item>
    
      <item>
        <title>Harp and Heroku</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://harpjs.com/&quot;&gt;Harp.js&lt;/a&gt; is an awesome static web server with built-in preprocessing. It supports Jade, Markdown, EJS, CoffeeScript, Sass, LESS and Stylus as HTML, CSS &amp;amp; JavaScript, with no required configuration!&lt;/p&gt;

&lt;p&gt;Harp doesn’t require any configuration to get started. Simply ensure you have &lt;a href=&quot;https://nodejs.org/&quot;&gt;Node.js&lt;/a&gt; installed and then run the following commands:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo npm install -g harp
harp init myproject
harp server myproject
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Harp supports some very cool features that most developers will be familiar with, for example Yield, Partials, Globals, etc. You can also easily add a simple &lt;a href=&quot;http://harpjs.com/recipes/blog-posts-list&quot;&gt;blog&lt;/a&gt; and &lt;a href=&quot;http://harpjs.com/docs/development/basicauth&quot;&gt;basic authentication&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Before you start coding, I would check out their great &lt;a href=&quot;http://harpjs.com/docs&quot;&gt;documentation&lt;/a&gt;, starting with “&lt;a href=&quot;http://harpjs.com/docs/development/rules&quot;&gt;The Rules&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;Once you’ve got your application running, you can deploy to Heroku in a couple of simple steps:&lt;/p&gt;

&lt;p&gt;There are two files you’ll need to add to the root of your Harp application (not inside the public directory). The first is “package.json”, which should look like this (note the “harp” dependency):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;{
	&quot;name&quot;: &quot;My-Harp-App&quot;,
	&quot;version&quot;: &quot;1.0.0&quot;,
	&quot;description&quot;: &quot;A Harp App on Heroku&quot;,
	&quot;dependencies&quot;: {
	&quot;harp&quot;: &quot;*&quot;
	}
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Next, create a “Procfile”, containing the following line:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;web: harp server --port $PORT
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Thats it! You can now push to Heroku and your application will be live!&lt;/p&gt;

&lt;p&gt;To save you time, feel free to use my “&lt;a href=&quot;https://github.com/mswbull/Harp_Scaffolding&quot;&gt;Harp Scaffolding&lt;/a&gt;” found on GitHub.&lt;/p&gt;
</description>
        <pubDate>Fri, 18 Mar 2016 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2016/03/18/Harp-and-Heroku/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/03/18/Harp-and-Heroku/</guid>
      </item>
    
      <item>
        <title>EA Principles</title>
        <description>&lt;p&gt;Last month, I shared an overview of the &lt;a href=&quot;/2016/01/05/Enterprise-IT-Architecture/&quot;&gt;Enterprise IT Architecture structure and methodology&lt;/a&gt; implemented at my company.&lt;/p&gt;

&lt;p&gt;In this article, I will provide a more detailed description of the &lt;strong&gt;principles&lt;/strong&gt;, which are a key part of the methodology and target all IT employees.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ea03.jpg&quot; alt=&quot;Enterprise IT Architecture - Methodology&quot; title=&quot;Enterprise IT Architecture - Methodology&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE: Every company will have different goals, limitations and inertia, therefore although many of the principles are likely transferable, it is certainly not one size fits all.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With an aggressive focus on simplicity, we maintain just four principles for each domain, covering Information, Application, Technology and Delivery. A “Domain Facilitator” is positioned for each domain, with the purpose of helping to coordinate conversations and decisions regarding the specific domain.&lt;/p&gt;

&lt;p&gt;The goal of the principles is to ensure that they can be easily consumed and remembered, therefore hopefully triggering the right solution architecture conversations and steering the enterprise towards a unified north star.&lt;/p&gt;

&lt;p&gt;The diagram below provides an overview of the principles and acts as a “cheat sheet” used to help drive adoption.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ea04.jpg&quot; alt=&quot;Enterprise IT Architecture Principles&quot; title=&quot;Enterprise IT Architecture Principles&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The principles are designed to complement each other, often reinforcing specific themes. For example, “Minimal Viable Product” supports “DevOps”, which is highly “Automated”. The same can be said for “API-Centric”, which puts an emphasis on “Service Orientated” and facilitated by “Open Standards” such as &lt;a href=&quot;https://swagger.io&quot;&gt;Swagger&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Behind each principle is a description (outlined below), as well as reference materials that include examples and declarative statements.&lt;/p&gt;

&lt;h3 id=&quot;information-principles&quot;&gt;Information Principles&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Governed:&lt;/strong&gt; Information is an asset that demands lifecycle management, stewardship, and ongoing investment. This requires a defined business processes to create, change, retain, and share the information.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Known Provenance:&lt;/strong&gt; Protecting the integrity of information requires a relentless pursuit of tracking its flow and lineage. This means knowing its origin, the owning system of record, where it is used and how. The number of systems in the middle must be minimised.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Timely and Accessible:&lt;/strong&gt; Information drives our ability to make decisions. Stale or latent data can result in bad decisions being made. Information systems must strive to be real time. Information must be accessed as close to its source as possible, discoverable and easy to consume.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Quality and Value:&lt;/strong&gt; As an asset requiring investment, information must have metrics to measure the business value, quality and integrity. Continual pursuits to enhance the context, meaning and impact to the consumers are required.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;application-principles&quot;&gt;Application Principles&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;UX First:&lt;/strong&gt; User Experience is a key part of application design and driving value for the customer and ultimately the business. It focuses on an individual’s behaviours, attitudes, and emotions about using a given solution.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Separation of Concerns:&lt;/strong&gt; Separate the application into distinct components (micro-services), such that each section addresses a separate concern. This enables a consistent core, focused on reuse, as well as agility and speed of change for the ever-evolving user experience.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Device Agnostic:&lt;/strong&gt; Ensures applications and services are compatible with any end-point, not just today (apps, web), but tomorrow (wearable technology, etc.) Enabling the right tool for the right job.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Minimum Viable Product:&lt;/strong&gt; A minimum viable product includes the core features that allow the product to be deployed, and no more. This improves quality through iterative testing and drives speed to value.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;technology-principles&quot;&gt;Technology Principles&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;API-Centric:&lt;/strong&gt; APIs are the digital glue that connect all services through a commonly understood (standard pattern) contract. This approach simplifies the exchange of data, exposes reusable capabilities, reduces integration complexity and increases agility.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Open Standards:&lt;/strong&gt; Open Standards are non-proprietary, focused on industry accepted practices. Using open technologies enables flexibility, simplifies support and reduces the risk of vendor lock-in.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Automated:&lt;/strong&gt; Automation reduces or removes human (manual) intervention, which drives improved speed to value and agility, as well as security and quality through consistency.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Cloud First:&lt;/strong&gt; Cloud First emphasises the use of SaaS and PaaS, abstracting the service from the underlying infrastructure. Cloud First enables elastic scale, portability and reduced infrastructure support overhead.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;delivery-principles&quot;&gt;Delivery Principles&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Multi-Speed:&lt;/strong&gt; Delivery focused based on appropriate methodology. Agile is non-sequential, emphasising agility and iteration. Waterfall emphasising, scalability, safety and accuracy.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;DevOps&lt;/strong&gt; The separation of Delivery and Operations as distinct, disconnected functions is resolved by the fusion and creation of DevOps. DevOps shortens communication, increases accountability, as well as inherently promotes quality and security.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Service Orientated:&lt;/strong&gt; A mind-set focused on services, not technology. Services must be treated as a product, not a project, delivering an end-to-end lifecycle.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Time to Value:&lt;/strong&gt; Time to value drives a focus on business outcomes, ensuring that each component of a solution works towards the business need and can be clearly measured.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, the principles are designed to provide a consistent foundation, ensuring a clear direction for all IT employees when buying or building new technologies.&lt;/p&gt;

&lt;p&gt;It is important to note that 100% adherence to the principles is not an expected outcome, knowing that many legacy technologies will fail to comply. However, leveraging the principles proactively as part of design decisions can help to highlight relative strengths and identify where you will incur technical debt.&lt;/p&gt;

&lt;p&gt;In a future article, I will provide a more detailed description of the &lt;a href=&quot;/2016/04/03/EA-Positioning/&quot;&gt;positioning and patterns&lt;/a&gt;, which complement the principles, directly supporting the architects and solution engineers.&lt;/p&gt;
</description>
        <pubDate>Sun, 21 Feb 2016 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2016/02/21/EA-Principles/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/02/21/EA-Principles/</guid>
      </item>
    
      <item>
        <title>Site Builder</title>
        <description>&lt;p&gt;In January I set myself the challenge to build a Force.com application that would allow project teams to create small intranet sites, providing a modern channel to share information.&lt;/p&gt;

&lt;p&gt;My requirements were initially very modest (e.g. display basic content), however, after crowdsourcing some ideas, I decided to target a more ambitious goal.&lt;/p&gt;

&lt;p&gt;The following functional requirements were defined for minimum viable product:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Basic content&lt;/strong&gt;, including text, images, videos, links, etc.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Posts&lt;/strong&gt;, including blogging, success stories, release information and updates.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Training&lt;/strong&gt;, including training activities, status tracking and gamification.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FAQ&lt;/strong&gt;, displaying frequently asked questions as a customisable list.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Trust&lt;/strong&gt;, providing the status of products and/or services.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Team&lt;/strong&gt;, including the ability to share and manage team members.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To ensure the application felt modern and to help drive adoption, I also wanted to ensure the following requirements were met:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;No technical expertise required to create or maintain a site.&lt;/li&gt;
  &lt;li&gt;Content can be created an updated using a rich text editor.&lt;/li&gt;
  &lt;li&gt;Mobile responsive.&lt;/li&gt;
  &lt;li&gt;Social enabled.&lt;/li&gt;
  &lt;li&gt;A granular security model.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The diagram below highlights the basic application flow, where an author would select a “page type”, add their “content” and finally select a “template”. Once happy, the author can publish the site to a specific set of users.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sitebuilder01.jpg&quot; alt=&quot;Site Builder&quot; title=&quot;Site Builder&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The application architecture utilities 7 Custom Objects, 18 Visualforce Pages, 4 Visualforce Components, 16 Apex Classes, as well as Bootstrap and jQuery (including plugins). The diagram below provides an overview of the design.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sitebuilder02.jpg&quot; alt=&quot;Site Builder&quot; title=&quot;Site Builder&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Over four days (mostly in the evenings) I built the application following a Continuous Integration methodology. By the end of the first week, the application was fully functional, with 92% test class code coverage. The diagram below is a screenshot from the Force.com Schema Builder, showing the completed data model.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sitebuilder03.jpg&quot; alt=&quot;Site Builder&quot; title=&quot;Site Builder&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In early February, Site Builder went live in beta to a limited set of authors. The video below shows Site Builder in action:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/monotIzBzvc?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I’ve also included a few screenshots, highlighting the responsive design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Home Page&lt;/strong&gt; - Fully customisable home page.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sitebuilder04.jpg&quot; alt=&quot;Site Builder&quot; title=&quot;Site Builder&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blog&lt;/strong&gt; - A list of blogs.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sitebuilder05.jpg&quot; alt=&quot;Site Builder&quot; title=&quot;Site Builder&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Training&lt;/strong&gt; - A list of training activities.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sitebuilder06.jpg&quot; alt=&quot;Site Builder&quot; title=&quot;Site Builder&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Training Detail&lt;/strong&gt; - Ability to launch training and get credit.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sitebuilder07.jpg&quot; alt=&quot;Site Builder&quot; title=&quot;Site Builder&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update Detail&lt;/strong&gt; - Updates, showing status, priority, etc.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sitebuilder08.jpg&quot; alt=&quot;Site Builder&quot; title=&quot;Site Builder&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Since going live, 33 Site Builder sites have been created, with 1,486 unique users accessing a site, resulting in 30,353 page views and an average session duration of 7mins 14 seconds.&lt;/p&gt;

&lt;p&gt;Considering the speed in which Site Builder was developed and deployed, I’m very pleased with the adoption and look forward to opening up to more authors in the near future.&lt;/p&gt;
</description>
        <pubDate>Sat, 20 Feb 2016 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2016/02/20/Site-Builder/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/02/20/Site-Builder/</guid>
      </item>
    
      <item>
        <title>Blockchain Consensus</title>
        <description>&lt;p&gt;In my previous article titled “&lt;a href=&quot;/2014/01/27/Blockchain/&quot;&gt;Blockchain&lt;/a&gt;”, I provided an overview of the technology, describing the benefits of the open, decentralized architecture.&lt;/p&gt;

&lt;p&gt;In the article, I referenced a consensus protocol, specifically &lt;a href=&quot;/2013/07/15/Bitcoin-101/&quot;&gt;Bitcoin’s “Proof of Work” algorithm&lt;/a&gt; and &lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;mining&lt;/a&gt;. For those who are not familiar, this algorithm achieves two things:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;It enforces the chronological order in the blockchain.&lt;/li&gt;
  &lt;li&gt;It ensures that no individual can control what is included in the blockchain, replace parts or manipulate the outcome.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In Bitcoin, miners use software to solve complex math problems, which helps to keep the blockchain consistent, complete and unalterable by repeatedly collecting and verifying new transactions. As a reward for sharing their computing resources, miners are given new Bitcoins.&lt;/p&gt;

&lt;p&gt;In many respects, this approach is ingenious, but it has one significant criticism… The vast amounts of computational power required for mining, as millions of computers operate at load for extended periods of time.&lt;/p&gt;

&lt;p&gt;As a result, a number of other consensus algorithms have emerged. I have highlighted four below.&lt;/p&gt;

&lt;h4 id=&quot;proof-of-stake-pos&quot;&gt;Proof of Stake (PoS)&lt;/h4&gt;

&lt;p&gt;Proof of State is the most common alternative to Proof of Work.&lt;/p&gt;

&lt;p&gt;Unlike Proof of Work, the total supply of coins exist from day one, meaning no new coin creation can occur via &lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;mining&lt;/a&gt;. Instead, validators (AKA stakeholders) are paid strictly in transaction fees.&lt;/p&gt;

&lt;p&gt;As a result, instead of investing in custom hardware to mine blocks, a validator is incentivised to invest in the coins of the system. This is because the chance of being picked to create the next block depends on the number of coins owned by the account (e.g. stake). As no actual mining exists, Proof of State blocks are said to be forged or minted, rather than mined.&lt;/p&gt;

&lt;h4 id=&quot;proof-of-activity-poa&quot;&gt;Proof of Activity (PoA)&lt;/h4&gt;

&lt;p&gt;Proof of Activity is a hybrid between Proof of Work and Proof of Stake, where each block is a product of combined effort of Proof of Work and Proof of Stake miners.&lt;/p&gt;

&lt;p&gt;For example, mining begins following the traditional Proof of Work algorithm, with miners racing to solve complex math problems. However, blocks mined do not contain any transactions, therefore the winning block only contains a header and the miner’s reward address. At this point, the system switches to Proof of Stake, where based on information in the header, a random group of validators is chosen to sign the new block.&lt;/p&gt;

&lt;p&gt;Proof of Activity was introduced to provide an alternative incentive structure for cryptocurrencies with a limited supply of coins (as described in the article &lt;a href=&quot;/2012/01/10/21-Million-Bitcoins/&quot;&gt;21 Million Bitcoins&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Although this model provides an interesting evolution for certain cryptocurrencies, it does not immediately rectify the criticism regarding power efficiency.&lt;/p&gt;

&lt;h4 id=&quot;proof-of-burn-pob&quot;&gt;Proof of Burn (PoB)&lt;/h4&gt;

&lt;p&gt;Proof of Burn incentivises miners to “burn” coins by sending them to an irretrievable address. Once burnt, the account is granted access to mine.&lt;/p&gt;

&lt;p&gt;Similar to Proof of Stake, the more coins burnt, the higher the chance of being selected to mine the next block. As a result, there is a continued incentive to burn more coins.&lt;/p&gt;

&lt;p&gt;Proof of Burn is my least favourite algorithm, as it directly prioritises mining based on wealth.&lt;/p&gt;

&lt;h4 id=&quot;proof-of-elapsed-time-poet&quot;&gt;Proof of Elapsed Time (PoeT)&lt;/h4&gt;

&lt;p&gt;As part of Intel’s enterprise distributed ledger (&lt;a href=&quot;https://intelledger.github.io/introduction.html&quot;&gt;Sawtooth&lt;/a&gt;), they have introduced a new consensus protocol called Proof of Elapsed Time. Conceptually, it is very similar to proof of work, but aims to be far more efficient (therefore mitigating the primary criticism).&lt;/p&gt;

&lt;p&gt;Proof of Elapsed Time has three goals:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Fairness:&lt;/strong&gt; The function should distribute leader election across the broadest possible population of participants.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Investment:&lt;/strong&gt; The cost of controlling the leader election process should be proportional to the value gained from it.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Verification:&lt;/strong&gt; It should be relatively simple for all participants to verify that the leader was legitimately selected.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Proof of Elapsed Time leverages secure CPU instructions (such as Intel’s Software Guard Extensions - SGX), which are becoming widely available in consumer and enterprise processors. This approach guarantees a wait time (e.g. elapsed time) that enables the algorithm to scale to thousands of nodes and is very power efficient when running on any processor that supports SGX.&lt;/p&gt;

&lt;p&gt;My only hesitation with this approach is the connection that is established between the consensus algorithm and Intel, as the key value proposition of blockchain is the removal of a central authority.&lt;/p&gt;
</description>
        <pubDate>Fri, 12 Feb 2016 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2016/02/12/Blockchain-Consensus/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/02/12/Blockchain-Consensus/</guid>
      </item>
    
      <item>
        <title>Node Architecture</title>
        <description>&lt;p&gt;Starting in 2014, I wrote a series of articles focused on JavaScript, highlighting key features through examples.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/07/10/JavaScript-Part-One/&quot;&gt;JavaScript - Part One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/07/22/JavaScript-Part-Two/&quot;&gt;JavaScript - Part Two&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/09/18/JavaScript-Part-Three/&quot;&gt;JavaScript - Part Three&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I later expanded upon these articles by including the new features enabled in ECMAScript 2015 (AKA ES6).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/07/18/ES6-Part-One/&quot;&gt;ES6 - Part One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/08/03/ES6-Part-Two/&quot;&gt;ES6 - Part Two&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although understanding the language itself is clearly important, it is also critical to understand how the different runtime engines execute the code.&lt;/p&gt;

&lt;p&gt;As a result, this article will aim to demystify the architecture of &lt;a href=&quot;https://nodejs.org&quot;&gt;Node.js&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The diagram below highlights the key components (Call Stack, Node APIs, Callback Queue and Event Loop), and will be referenced throughout the article.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nodearchitecture01.jpg&quot; alt=&quot;Node Architecture&quot; title=&quot;Node Architecture&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To help explain the architecture, I will highlight a synchronous and asynchronous example.&lt;/p&gt;

&lt;h3 id=&quot;synchronous-example&quot;&gt;Synchronous Example&lt;/h3&gt;

&lt;p&gt;The Call Stack is a simple data structure that keeps track of program execution, including current functions and statements. When interacting with the Call Stack, you can either add an item to the top or remove the top item. A simple analogy would be a can of &lt;a href=&quot;https://www.pringles.com/&quot;&gt;Pringles&lt;/a&gt;, where you can only add or remove the top Pringle.&lt;/p&gt;

&lt;p&gt;The following code would execute fully within the Call Stack (not interacting with the Node APIs, Callback Queue and Event Loop):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var x = 1;
var y = x + 1;
console.log('y is ${y}');
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
All of these statements would be executed in order, on top of the ‘main()’ function, which is always executed first.&lt;/p&gt;

&lt;h3 id=&quot;asynchronous-example&quot;&gt;Asynchronous Example&lt;/h3&gt;

&lt;p&gt;The following code is asynchronous and would leverage the Call Stack, Node APIs, Callback Queue and Event Loop.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;console.log('Launch App');

setTimeout(() =&amp;gt; {
    console.log('First Timeout');
}, 4000);

setTimeout(() =&amp;gt; {
  console.log('Second Timeout');
}, 0);

console.log(Close App');
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The first ‘console.log’ statement runs immediately on top of the ‘main()’ function within the Call Stack.&lt;/p&gt;

&lt;p&gt;The statement ‘setTimeout’ is a Node API, which unsurprisingly gets registered under Node APIs (see diagram above), storing the four-second delay.&lt;/p&gt;

&lt;p&gt;At this point, the program continues to progress, moving to the next statement (Second Timeout), while the previous ‘setTimeout’ continues to countdown. This statement is calling the same Node API, but with a zero second delay.&lt;/p&gt;

&lt;p&gt;Assuming the Second Timeout finishes first, it will not execute straight away, instead, it will move to the Callback Queue. The Callback Queue includes all of the callback functions that are ready to be executed.&lt;/p&gt;

&lt;p&gt;The Callback Queue has to wait for the Call Stack to be empty (including the ‘main()’ function), at which point the first function can be executed. If there are multiple functions in the Callback Queue, they will be executed in order. It is the Event Loop which monitors the Call Stack, waiting for it to become empty.&lt;/p&gt;

&lt;p&gt;In the code example, the order of execution will be:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Close App&lt;/li&gt;
  &lt;li&gt;Second Timeout&lt;/li&gt;
  &lt;li&gt;First Timeout&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is because the Node APIs cannot execute until the Call Stack is empty. At which point, the Second Statement is actually executed first, as it had a short delay (zero seconds).&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;It is important to recognise that as a programmer, you never directly interact with the Call Stack, Node APIs, Callback Queue and Event Loop. However, the mechanics can have a profound impact on the way your application executes, therefore a basic understanding is critical.&lt;/p&gt;
</description>
        <pubDate>Sun, 07 Feb 2016 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2016/02/07/Node-Architecture/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/02/07/Node-Architecture/</guid>
      </item>
    
      <item>
        <title>Kanboard</title>
        <description>&lt;p&gt;In software development, Kanban provides a visual project management system that aims to deliver a better understanding of work and workflow. It focuses on limiting work in progress, which can help reduce waste from multitasking, as well as promote collaboration.&lt;/p&gt;

&lt;p&gt;When I start a new personal project, I generally select kanban over other agile methodologies. This is because it is very quick and easy to get started, requires minimal maintenance over time and can be understood without any special training.&lt;/p&gt;

&lt;p&gt;The most well-known kanban tool is &lt;a href=&quot;https://trello.com&quot;&gt;Trello&lt;/a&gt;, which is a cloud-based service running on Amazon Web Services. Although you can use the basic capabilities of Trello for free, advanced features such as integrations and enhanced security options, cost $9.99 per user, per month. It is likely that most businesses and even small development teams would need to upgrade, meaning a team of 25 would cost approximately $3000 per year.&lt;/p&gt;

&lt;p&gt;As a result, I was interested to find a more cost effective alternative…&lt;/p&gt;

&lt;h4 id=&quot;kanboard&quot;&gt;Kanboard&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://kanboard.net&quot;&gt;Kanboard&lt;/a&gt; is an open-source (&lt;a href=&quot;https://opensource.org/licenses/MIT&quot;&gt;The MIT License&lt;/a&gt;) application that delivers a “Trello like” experience, including integrations and enhanced security options. Kanboard is written in PHP and can be deployed to almost any infrastructure and/or platform.&lt;/p&gt;

&lt;p&gt;Like Trello, Kanboard supports projects, user stories and tasks, as well as a number of simple views to help visualize work. The main features include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Visualize your work (kanban, calendar, lists, gantt).&lt;/li&gt;
  &lt;li&gt;Focus on user experience (drop and drag).&lt;/li&gt;
  &lt;li&gt;Customise projects (custom swim lanes, etc.)&lt;/li&gt;
  &lt;li&gt;All tasks are updated in real-time.&lt;/li&gt;
  &lt;li&gt;Supports different teams, projects, sprints, tasks, sub-tasks.&lt;/li&gt;
  &lt;li&gt;Supports private and collaborative projects.&lt;/li&gt;
  &lt;li&gt;Supports individual (personal) views.&lt;/li&gt;
  &lt;li&gt;Granular security model (Project Manager, Member and Viewer).&lt;/li&gt;
  &lt;li&gt;Includes popular integrations (e.g. Slack and GitHub).&lt;/li&gt;
  &lt;li&gt;Open RESTful API for custom integrations.&lt;/li&gt;
  &lt;li&gt;Supports reporting, analytics and dashboard capabilities.&lt;/li&gt;
  &lt;li&gt;Supports importing / exporting of data (CSV).&lt;/li&gt;
  &lt;li&gt;Supports Single Sign-On (Oauth2).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Upon launching Kanboard, you are greeted by a personal dashboard, which provides an overview of your upcoming tasks across all projects.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kanboard01.jpg&quot; alt=&quot;Kanboard&quot; title=&quot;Kanboard&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can quickly dive into a specific project or task, which by default will load a kanban view. The status of a task can be updated by dragging an individual card across the board (just like Trello).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kanboard02.jpg&quot; alt=&quot;Kanboard&quot; title=&quot;Kanboard&quot; /&gt;&lt;/p&gt;

&lt;p&gt;New tasks can be added by clicking the “+” button, which prompts a simple (and customisable) input box.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kanboard03.jpg&quot; alt=&quot;Kanboard&quot; title=&quot;Kanboard&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The only real down-side to Kanboard is the lack of optimised mobile experience. However, the project receives frequent updates, therefore I would not be surprised if this is added in a future release.&lt;/p&gt;

&lt;p&gt;As Kanboard can be deployed to any infrastructure and/or platform, you can run a private version for essentially free. Personally, I decided to deploy Kanboard to Heroku, which for a single dyno and postgres database costs just $84 per year (regardless of the number of users). I also successfully scale tested the Heroku implementation by automatically adding 10,000 projects and 10,000 tasks over a twelve-hour period.&lt;/p&gt;

&lt;h4 id=&quot;installing-kanboard&quot;&gt;Installing Kanboard&lt;/h4&gt;

&lt;p&gt;Installing Kanboard is very simple.&lt;/p&gt;

&lt;p&gt;The five steps outlined below are specifically for Heroku (other installation guides can be found in the &lt;a href=&quot;https://kanboard.net/documentation&quot;&gt;Kanboard documentation&lt;/a&gt;).&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Grab the latest &lt;a href=&quot;https://github.com/kanboard/kanboard/tree/stable&quot;&gt;stable build&lt;/a&gt; from GitHub.&lt;/li&gt;
  &lt;li&gt;Login to Heroku and “create a new app”&lt;/li&gt;
  &lt;li&gt;Select the Kanboard GitHub repository and deploy from the “stable” branch.&lt;/li&gt;
  &lt;li&gt;Add a Postgres database.&lt;/li&gt;
  &lt;li&gt;Launch Kanboard. The first load may take a few minutes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Due to the application architecture, Kanboard only supports a single dyno, however it will run very well on a free “Hobby Dev” database (10,000 row limit).&lt;/p&gt;

&lt;h4 id=&quot;installing-plugins&quot;&gt;Installing Plugins&lt;/h4&gt;

&lt;p&gt;Alongside the main application, I decided to add the following plugins. These are purely optional, but add a lot of additional value.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/kanboard/plugin-oauth2&quot;&gt;Oauth2&lt;/a&gt; - Single Sign-On using Oauth2.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/kanboard/plugin-database-storage&quot;&gt;Database Storage&lt;/a&gt; - Stores uploaded files in the database.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/kanboard/plugin-mailgun&quot;&gt;Mailgun&lt;/a&gt; - Send mail notifications via Mailgun.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/kanboard/plugin-rabbitmq&quot;&gt;RabbitMQ Queue Driver&lt;/a&gt; - Setup background jobs using RabbitMQ.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/kanboard/plugin-timetable&quot;&gt;Timetable&lt;/a&gt; - Individual user timetables.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/kanboard/plugin-github-frontend&quot;&gt;GitHub Webhook&lt;/a&gt; - GitHub Integration (e.g. Issues, etc.)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/kanboard/plugin-slack&quot;&gt;Slack&lt;/a&gt; - Setup automatic notifications for Slack.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NOTE: If Kanboard is running on Heroku, the plugins must be copied to the source code under &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/plugins/&lt;/code&gt;, not installed from within the application. This is because Heroku has an &lt;a href=&quot;https://devcenter.heroku.com/articles/dynos&quot;&gt;ephemeral filesystem&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;configure-single-sign-on&quot;&gt;Configure Single Sign-On&lt;/h4&gt;

&lt;p&gt;One of the most commonly requested features of any application is Single Sign-On (using another identity provider). The &lt;a href=&quot;https://github.com/kanboard/plugin-oauth2&quot;&gt;Oauth2 plugin&lt;/a&gt; allows you to integrate with any Oauth2 compatible provider. For example, I use Salesforce.com as my identity provider.&lt;/p&gt;

&lt;p&gt;Outlined below are the configuration steps to use Salesforce.com as your identity provider for Kanboard.&lt;/p&gt;

&lt;p&gt;First create a &lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/connected_app_create.htm&quot;&gt;Force.com Connected App&lt;/a&gt;. This will provide you with the required “&lt;strong&gt;Client ID&lt;/strong&gt;” and “&lt;strong&gt;Client Secret&lt;/strong&gt;”. You will however need the kanboard “Callback URL” to complete the Connected App setup (see below).&lt;/p&gt;

&lt;p&gt;Login to Kanboard and select “Settings &amp;gt; Integrations”. Under “OAuth2 Authentication” you will see eleven fields (image below).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kanboard04.jpg&quot; alt=&quot;alt text&quot; title=&quot;Kanboard&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Populate the following fields:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Callback URL:&lt;/strong&gt; Predefined by Kanboard&lt;br /&gt;
&lt;strong&gt;Client ID:&lt;/strong&gt; Copied from the Force.com Connected App&lt;br /&gt;
&lt;strong&gt;Client Secret:&lt;/strong&gt; Copied from the Force.com Connected App&lt;br /&gt;
&lt;strong&gt;Authorize URL:&lt;/strong&gt; https://login.salesforce.com/services/oauth2/authorize&lt;br /&gt;
&lt;strong&gt;Token URL:&lt;/strong&gt; https://login.salesforce.com/services/oauth2/token&lt;br /&gt;
&lt;strong&gt;User API URL:&lt;/strong&gt; https://login.salesforce.com/services/oauth2/userinfo&lt;br /&gt;
&lt;strong&gt;Username Key:&lt;/strong&gt; nickname&lt;br /&gt;
&lt;strong&gt;Name Key:&lt;/strong&gt; name&lt;br /&gt;
&lt;strong&gt;Email Key:&lt;/strong&gt; email&lt;br /&gt;
&lt;strong&gt;User ID Key:&lt;/strong&gt; user_id&lt;/p&gt;

&lt;p&gt;You can also specify “Allow Account Creation”, which will automatically create a Kanboard user account, if a user successfully authenticates via OAuth2.&lt;/p&gt;

&lt;p&gt;Users will now be able to login via Single Sign-On using the “Oauth2 login” button.&lt;/p&gt;
</description>
        <pubDate>Sun, 07 Feb 2016 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2016/02/07/Kanboard/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/02/07/Kanboard/</guid>
      </item>
    
      <item>
        <title>Virtual Reality</title>
        <description>&lt;p&gt;Every few years a new technology emerges that threatens to be “the next big thing”.&lt;/p&gt;

&lt;p&gt;When the Oculus Rift was first revealed in 2012, I was immediately interested. I had used virtual reality headsets in the past, but the hardware and software simply wasn’t mature enough to deliver an acceptable user experience. Oculus aimed to overcome these existing pain points and deliver it at a consumer friendly price.&lt;/p&gt;

&lt;p&gt;I didn’t initially purchase an Oculus Rift on Kickstarter, but jumped onboard in August 2014 with Developer Kit 2 (DK2). The developer kits were obviously rough around the edges, but certainly showed the promise of virtual reality. The software was also starting to mature, with some reasonable developer tools and interesting tech demos.&lt;/p&gt;

&lt;p&gt;Today I received the Consumer Version (CV). The hardware is a significant step forward, it feels very polished and the initial setup process has been greatly simplified (e.g. a reduction in the number of required cables, etc.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/oculusrift.jpg&quot; alt=&quot;Oculus Rift&quot; title=&quot;Oculus Rift&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The software has also taken a step forward, however this is obviously more incremental, as it is something that can continuously evolve over time. Virtual Reality applications are still thin on the ground and to be honest I don’t expect rapid growth in this area (the market simply isn’t big enough yet for third-party investment). Overall I’m pleased and impressed, but acknowledge this is definitely still only for early adopters (e.g. overly passionate, slightly crazy people).&lt;/p&gt;

&lt;p&gt;While I wait for the application space to mature, I’ve started to consider how virtual reality could be applied within my industry (healthcare).&lt;/p&gt;

&lt;p&gt;An obvious starting point would be training. Imagine a surgeon or a nurse practicing certain procedures in virtual reality, where the process  could be replicated without the need for specialist, complex, expensive equipment. Virtual reality could also immerse the user (even emotionally) to ensure they are ready to react to unforeseen events.&lt;/p&gt;

&lt;p&gt;Although this is interesting, I’m actually more intrigued by the opportunity for patients. Take a disease like Alzheimer’s, which impacts more than 3million people in the US every year. Alzheimer’s is a truly horrendous disease, which is incredibly difficult to relate to, however I believe the quote from Jan Lundberg (Eli Lilly &amp;amp; Company) successfully captures the essence of the human impact.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Her empty eyes reflected nothing, as if the disease had taken away her soul, her very essence.”&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Jan Lundberg, Eli Lilly &amp;amp; Company&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Something that has been known to help patients is reliving old memories. As a result, carers are often asked to bring items that may trigger a specific memory, this could be a photo, music or even a smell. Imagine virtual reality in this context. Instead of triggering a memory you could potentially relive it. For example, maybe the patient loved to sit by the beach or walk through a forest, this is all achievable in virtual reality and it would even be possible to re-create the exact beach or forest, making the experience even more compelling. I have no evidence to say this would necessarily help, but I certainly feel it deserves exploration.&lt;/p&gt;

&lt;p&gt;Overall I believe the unique selling point of virtual reality is &lt;strong&gt;empathy&lt;/strong&gt;. Meaning its ability to trigger emotion, thanks to the immersive nature of the experience. When done right, virtual reality can be simply breathtaking, transporting you to another world in a way that no other technology can.&lt;/p&gt;

&lt;p&gt;I plan to continue to explore the possibility of virtual reality (personally and with work) and look forward to seeing how others apply the technology.&lt;/p&gt;
</description>
        <pubDate>Sat, 30 Jan 2016 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2016/01/30/Virtual-Reality/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/01/30/Virtual-Reality/</guid>
      </item>
    
      <item>
        <title>Materialize + Force.com</title>
        <description>&lt;p&gt;When developing custom applications, user experience is critical. I’ve seen some technically great applications fail to achieve their user adoption goals due to a perceived poor user experience.&lt;/p&gt;

&lt;p&gt;Unfortunately, achieving a great user experience is notoriously difficult and time consuming, with many variables to consider. Although there is no silver bullet, I do believe there are ways to ensure that you build from a solid foundation as well as accelerate development.&lt;/p&gt;

&lt;p&gt;That’s where selecting the right visual language and frameworks / libraries can help!&lt;/p&gt;

&lt;h4 id=&quot;material-design&quot;&gt;Material Design&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://material.google.com&quot;&gt;Material Design&lt;/a&gt; is a visual language from Google, which includes standards, principles, patterns and best practices. If you’ve ever used a modern Android device, you are probably already familiar with Material Design.&lt;/p&gt;

&lt;p&gt;The video below shows Material Design in action.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Q8TXgCzxEnw?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;If you build an application following the principles of Material Design, you can take some comfort in the fact that it is already in use by over one billion people around the world and backed by a passionate community (as well as Google).&lt;/p&gt;

&lt;p&gt;As a result, I would certainly recommend that you make a visual language such as Material Design your minimum starting position.&lt;/p&gt;

&lt;p&gt;However, Material Design doesn’t help you actually develop your applications. This is where frameworks and libraries can act as an accelerator for development teams, reducing the amount of custom code, whilst improving consistency and quality.&lt;/p&gt;

&lt;p&gt;Google have made available &lt;a href=&quot;https://getmdl.io&quot;&gt;Material Design Lite&lt;/a&gt;, which is the official implementation of Material Design components in simple CSS, JS, and HTML. Unfortunately, Material Design Lite is a tiny part of the Google product and service portfolio, therefore it has not matured as quickly as some open community offerings.&lt;/p&gt;

&lt;h4 id=&quot;materialize-framework&quot;&gt;Materialize Framework&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;http://materializecss.com&quot;&gt;Materialize&lt;/a&gt; is an open community responsive framework based on Material Design (covered by the &lt;a href=&quot;https://github.com/Dogfalo/materialize/blob/master/LICENSE&quot;&gt;MIT License&lt;/a&gt;). It’s arguably one of the most impressive Material Design frameworks, which includes both CSS and Sass files, JavaScript (jQuery), Material Design Icons and the Roboto font.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://materializecss.com&quot;&gt;Materialize documentation&lt;/a&gt; is also simple to consume, with lots of code examples, as well as being backed by an active &lt;a href=&quot;https://github.com/Dogfalo/materialize&quot;&gt;GitHub&lt;/a&gt; community.&lt;/p&gt;

&lt;h4 id=&quot;visualforce-materialize-starter-kit&quot;&gt;Visualforce Materialize Starter Kit&lt;/h4&gt;

&lt;p&gt;Materialize does offer a couple of HTML templates, however they are very basic and only really useful for developing simple microsites.&lt;/p&gt;

&lt;p&gt;I wanted to provide a more comprehensive starter kit, as well as make it available as a reusable package for Force.com.&lt;/p&gt;

&lt;p&gt;The video below shows the Visualforce Materialize Starter Kit in action:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/U_K1ZrHwN74?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I’ve also included a few screenshots, highlighting the responsive design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Home Screen:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/materialize01.jpg&quot; alt=&quot;Materialize Starter Kit&quot; title=&quot;Materialize Starter Kit&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cards:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/materialize02.jpg&quot; alt=&quot;Materialize Starter Kit&quot; title=&quot;Materialize Starter Kit&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Content Components:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/materialize03.jpg&quot; alt=&quot;Materialize Starter Kit&quot; title=&quot;Materialize Starter Kit&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input Components:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/materialize04.jpg&quot; alt=&quot;Materialize Starter Kit&quot; title=&quot;Materialize Starter Kit&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can find the &lt;a href=&quot;https://github.com/mswbull/Visualforce_Materialize_Starter_Kit&quot;&gt;Visualforce Materialize Starter Kit&lt;/a&gt; on GitHub (pull requests welcome).&lt;/p&gt;

&lt;p&gt;To get started, simply login to your org and click the “Deploy to Salesforce” button. Once complete, assign the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MATE_User&lt;/code&gt; Permission Set and launch the “Materialize Starter Kit” from the app menu bar.&lt;/p&gt;
</description>
        <pubDate>Sun, 10 Jan 2016 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2016/01/10/Materialize-and-Force.com/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/01/10/Materialize-and-Force.com/</guid>
      </item>
    
      <item>
        <title>Auth0 and Rails</title>
        <description>&lt;p&gt;Identity is tough topic. How do you guarantee secure application authentication, maintain a great user experience, but not have to spend weeks on development?&lt;/p&gt;

&lt;p&gt;Introducing &lt;a href=&quot;https://auth0.com&quot;&gt;Auth0&lt;/a&gt;, providing painless Enterprises Single Sign-On, including Active Directory, LDAP and/or SAML based identity systems. As well as simple OAuth provider integration, supporting Google, Facebook, Amazon, Microsoft, Salesforce and many more…&lt;/p&gt;

&lt;p&gt;Auth0 have some great &lt;a href=&quot;https://auth0.com/docs&quot;&gt;getting started guides&lt;/a&gt;, however to make life even easier I thought I would share my simple Rails scaffolding.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://github.com/mswbull/Auth0_Rails_Scaffolding&quot;&gt;Auth0 and Rails Scaffolding&lt;/a&gt; is a Ruby on Rails application, with Auth0 and Postgres pre-configured. It’s also ready to be deployed to Heroku, thanks to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rails_12factor&lt;/code&gt; gem.&lt;/p&gt;

&lt;p&gt;Personally I have been using Auth0 with the Force.com strategy, to drive Single Sign-On for my users, however thanks to the simple Auth0 admin console, it should be easy to add any other strategy, either SAML or OAuth.&lt;/p&gt;

&lt;p&gt;Below is the list of the gems bundled with the project:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;activerecord-session_store
byebug
coffee-rails
jbuilder
jquery-rails
omniauth
omniauth-auth0
pg
puma
rails
rails_12factor
sass-rails
sdoc
spring
turbolinks
uglifier
web-console
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;You can find the &lt;a href=&quot;https://github.com/mswbull/Auth0_Rails_Scaffolding&quot;&gt;Auth0 and Rails Scaffolding&lt;/a&gt; on GitHub (pull requests welcome).&lt;/p&gt;
</description>
        <pubDate>Thu, 07 Jan 2016 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2016/01/07/Auth0-and-Rails/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/01/07/Auth0-and-Rails/</guid>
      </item>
    
      <item>
        <title>Enterprise IT Architecture</title>
        <description>&lt;p&gt;At the end of 2015, I formally become an Enterprise IT Architect.&lt;/p&gt;

&lt;p&gt;This was a natural progression, building from the experience I had gained through a number of analyst, specialist and consultancy roles, as well as my time as a solution architect working in commercial IT.&lt;/p&gt;

&lt;p&gt;Unfortunately, Enterprise IT Architecture (emphasis on the IT) had really lost its way in my company. Therefore, one of my first tasks was to help re-establish the organisation and work out how it could regain credibility and clearly demonstrate value.&lt;/p&gt;

&lt;p&gt;In my opinion, Enterprise IT Architecture was struggling because it had become an “ivory tower”, where a group of individuals would meet periodically to discuss and strategise.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ea01.jpg&quot; alt=&quot;Enterprise IT Architecture&quot; title=&quot;Enterprise IT Architecture&quot; /&gt;&lt;/p&gt;

&lt;p&gt;These discussions would tend to be very academic, leveraging methodologies from &lt;a href=&quot;http://www.opengroup.org/subjectareas/enterprise/togaf&quot;&gt;TOGAF&lt;/a&gt;, &lt;a href=&quot;https://www.cebglobal.com&quot;&gt;CEB&lt;/a&gt;, &lt;a href=&quot;http://www.gartner.com/technology/home&quot;&gt;Gartner&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;Although these methodologies can certainly be valuable, without a strong connection to the business, context and situational awareness, the output can lack practical relevance.&lt;/p&gt;

&lt;p&gt;Worse still, the complexity of the models used in methodologies such as TOGAF can be very difficult to consume for anyone who hasn’t received specific training. This can result in poor adoption and feedback that Enterprise IT Architecture is out of touch with reality.&lt;/p&gt;

&lt;p&gt;In summary, Enterprise IT Architecture had become disconnected from the business, overly reliant on theoretical models and enabled through a legacy governance model that was generally perceived as a barrier, instead of an enabler.&lt;/p&gt;

&lt;p&gt;With these challenges in mind, we decided to develop our own &lt;strong&gt;structure&lt;/strong&gt; and &lt;strong&gt;methodology&lt;/strong&gt;, pulling inspiration from a wide range of sources, but always looking to aggressively simplify and rationalise.&lt;/p&gt;

&lt;h4 id=&quot;structure&quot;&gt;Structure&lt;/h4&gt;

&lt;p&gt;Structure is directly related to the business model and organisation hierarchy, as a result it will likely look different for every company.&lt;/p&gt;

&lt;p&gt;However, I am a firm believer that Enterprise IT Architecture must be embedded within the business, not an exclusive club with dedicated, disconnected resources.&lt;/p&gt;

&lt;p&gt;To achieve this outcome, Enterprise IT Architecture must be a virtual community, made up of the “Lead IT Architects” from the functional IT teams (different parts of the business).&lt;/p&gt;

&lt;p&gt;This structure helps to guarantee that the discussions, strategy and decisions are driven with business context and strong situational awareness. It also ensures that all parts of IT have an equal voice, helping to drive enterprise alignment.&lt;/p&gt;

&lt;p&gt;To help support the conversations, specific IT architects are positioned as “Domain Facilitators”, covering Information, Application, Technology and Delivery. The purpose of these individuals is to help coordinate domain expertise across the company, ensuring the right people from the functional IT teams are engaged.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ea02.jpg&quot; alt=&quot;Enterprise IT Architecture - Structure&quot; title=&quot;Enterprise IT Architecture - Structure&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The goal of the Enterprise IT Architecture virtual community is to provide a north star for the enterprise, through the creation of principles, positioning and patterns. The Lead IT Architects are then responsible for distributing the information across IT, helping to drive better strategic decision making, by triggering the right solution architecture conversations.&lt;/p&gt;

&lt;h4 id=&quot;methodology&quot;&gt;Methodology&lt;/h4&gt;

&lt;p&gt;The methodology is relatively simple, split across three tiers: &lt;strong&gt;principles&lt;/strong&gt;, &lt;strong&gt;positioning&lt;/strong&gt; and &lt;strong&gt;patterns&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ea03.jpg&quot; alt=&quot;Enterprise IT Architecture - Methodology&quot; title=&quot;Enterprise IT Architecture - Methodology&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I do not intend to cover each tier in detail within this article, instead simply provide a high-level overview. I will then follow-up in future articles, providing additional detail.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are four &lt;strong&gt;principles&lt;/strong&gt; assigned to each domain, covering Information, Application, Technology and Delivery.&lt;/p&gt;

&lt;p&gt;The rationale behind having only four principles is to ensure that they can be easily consumed and remembered. Historically we have had hundreds of principles, which although are perfectly valid, results in limited adoption as people don’t have enough time or commitment to truly understand them.&lt;/p&gt;

&lt;p&gt;The domains Information, Application and Technology are likely very obvious and also link with materials provided by TOGAF and Gartner. However, Delivery is a little different. This is in recognition that Enterprise IT Architecture must also influence the execution of work, not just position theoretical models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Positioning&lt;/strong&gt; is focused on enterprise technologies, providing a reference architecture that can be used as a blueprint (also described as a play-book).&lt;/p&gt;

&lt;p&gt;We developed a specific reference architecture structure, split across seven layers.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Security&lt;/li&gt;
  &lt;li&gt;User Experience&lt;/li&gt;
  &lt;li&gt;Platforms&lt;/li&gt;
  &lt;li&gt;Information&lt;/li&gt;
  &lt;li&gt;Integration Fabric&lt;/li&gt;
  &lt;li&gt;Infrastructure Foundation&lt;/li&gt;
  &lt;li&gt;Delivery Tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each layer includes multiple complimentary enterprise technologies, as well as inherently promotes the principles. It can be used to help communicate the enterprise technology landscape, as well as to ensure clear positioning, which reduces duplication and helps to maximise the return on enterprise investments.&lt;/p&gt;

&lt;p&gt;The reference architecture is arguably the most important part of the methodology, as it is very tangible and forms the basis of solution architecture when consuming enterprise technologies.&lt;/p&gt;

&lt;p&gt;Finally, &lt;strong&gt;patterns&lt;/strong&gt;, which are built directly from the reference architecture. Each pattern describes how to leverage the enterprise technologies to meet specific use cases.&lt;/p&gt;

&lt;p&gt;Patterns focus on real-world examples, whilst also helping to further embed the principles and positioning. Where appropriate, the patterns also link to accelerators, which could include code packages, modules and/or API endpoints.&lt;/p&gt;

&lt;p&gt;For example, most companies must develop and maintain a number of websites as part of their digital eco-system. Although the purpose of each website is likely unique, the underlying application architecture is probably consistent, meaning that the foundations could form a pattern and corresponding accelerator. This approach can help reduce development time as well as improve quality and security through standardisation.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;In summary, the structure focuses on embedding Enterprise IT Architecture within the business, ensuring discussions, strategy and decisions are driven with business context and strong situational awareness.&lt;/p&gt;

&lt;p&gt;The methodology focuses on simplicity, with the principles providing a north star for the enterprise, as well as being easy consume by all IT. The positioning and patterns target architects and solution engineers, with the goal to reduce duplication, improve speed to value and quality through standardisation, as well as maximise the return on enterprise investments.&lt;/p&gt;

&lt;p&gt;In future articles, I will share more details regarding the &lt;a href=&quot;/2016/02/21/EA-Principles/&quot;&gt;principles&lt;/a&gt;, &lt;a href=&quot;/2016/04/03/EA-Positioning/&quot;&gt;positioning and patterns&lt;/a&gt;, including examples of how they can be used to drive clear value.&lt;/p&gt;
</description>
        <pubDate>Tue, 05 Jan 2016 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2016/01/05/Enterprise-IT-Architecture/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2016/01/05/Enterprise-IT-Architecture/</guid>
      </item>
    
      <item>
        <title>Less with Grunt</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://lesscss.org/&quot;&gt;Less&lt;/a&gt; is a CSS pre-processor which helps you develop, extend and maintain complex CSS.&lt;/p&gt;

&lt;p&gt;I now use Less by default when starting a new project, as it promotes simplicity and reuse, two things that can often be lost when building complex, response web applications.&lt;/p&gt;

&lt;p&gt;One of the great things about Less, is that it is easy to pick-up for anyone that has experience with CSS. This is because Less uses standard CSS syntax, making it backwards compatible and easy to extend.&lt;/p&gt;

&lt;h4 id=&quot;what-actually-is-a-css-pre-processor&quot;&gt;What actually is a CSS pre-processor?&lt;/h4&gt;

&lt;p&gt;A CSS pre-processor enables a developer to write CSS in a programming construct instead of static rules. For example, Less supports variables, nesting, mixins, operators and functions. These mechanisms allow the developer to manage CSS as if it were application logic, making it more maintainable, themable and extendable.&lt;/p&gt;

&lt;p&gt;A very simple example, would be the use of variables:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;@green: #006600;
@light-green: @green + #111;

#header {
color: @light-green;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;In this example, you can see the variables green and light-green were declared and then made available for reuse. Simple, but powerful when compared to CSS static rules.&lt;/p&gt;

&lt;h4 id=&quot;automating-less-with-grunt&quot;&gt;Automating Less with Grunt?&lt;/h4&gt;

&lt;p&gt;One of the (minor) downsides to any CSS pre-processor is that they must be compiled into CSS. To get the most out of Less, I recommend setting-up some simple automation, which essentially removes the compilation pain.&lt;/p&gt;

&lt;p&gt;To do this I use &lt;a href=&quot;http://gruntjs.com/&quot;&gt;Grunt&lt;/a&gt;, which is a JavaScript Task Runner. Grunt enables you to automate repetitive tasks like compilation, magnification, unit testing, etc. The other great thing about Grunt, is that it has an incredible ecosystem of plugins, making it very easy to get started. My personal favourite plugins are:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;grunt-contrib-clean&lt;/code&gt; - Cleans Files and Folders&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;grunt-contrib-concat&lt;/code&gt; - Concatenate Files&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;grunt-contrib-copy&lt;/code&gt; - Copy Files and Folders&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;grunt-contrib-less&lt;/code&gt; - Compile Less to CSS&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;grunt-contrib-uglify&lt;/code&gt; - Minify Files with UglifyJS&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;grunt-contrib-watch&lt;/code&gt; - Watch Files and Run Predefined Tasks&lt;/p&gt;

&lt;p&gt;When working with Less, I use Grunt to watch my Less files and automatically compile any changes. As a result, any changes are instantly available within my application, which helps to streamline the development process.&lt;/p&gt;

&lt;p&gt;Once I hit a logical milestone, I use Grunt to minify the output into optimised production ready code.&lt;/p&gt;

&lt;h4 id=&quot;getting-started&quot;&gt;Getting Started&lt;/h4&gt;

&lt;p&gt;Getting started couldn’t be easier, simply head over to the &lt;a href=&quot;http://lesscss.org/&quot;&gt;Less&lt;/a&gt; and &lt;a href=&quot;http://gruntjs.com/&quot;&gt;Grunt&lt;/a&gt; websites and follow their excellent installation and configuration guides.&lt;/p&gt;
</description>
        <pubDate>Sun, 27 Dec 2015 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2015/12/27/Less-with-Grunt/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/12/27/Less-with-Grunt/</guid>
      </item>
    
      <item>
        <title>Quantum Computing</title>
        <description>&lt;p&gt;When asked, what technologies do you believe will have the biggest impact on the future? I generally respond with the following three:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Artificial Intelligence (AI)&lt;/li&gt;
  &lt;li&gt;Blockchain&lt;/li&gt;
  &lt;li&gt;Quantum Computing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to science fiction movies, Artificial Intelligence (AI) is probably the most well known, although still largely misunderstood. Blockchain and Quantum Computing are more obscure and also more difficult to understand, as they are less visible to the consumer.&lt;/p&gt;

&lt;p&gt;I have previously written about &lt;a href=&quot;/2014/01/27/Blockchain/&quot;&gt;Blockchain&lt;/a&gt; (and &lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;Cryptocurrency&lt;/a&gt;, therefore this article will focus on Quantum Computing.&lt;/p&gt;

&lt;h3 id=&quot;what-is-quantum-computing&quot;&gt;What is Quantum Computing?&lt;/h3&gt;

&lt;p&gt;To understand Quantum Computing, you must first understand the basics of Classical Computing, which is the name given to our current computing architecture.&lt;/p&gt;

&lt;p&gt;Classical Computers leverage transistors, which are semiconductor devices used to amplify or switch electronic signals.&lt;/p&gt;

&lt;p&gt;Processors have a transistor count, which is the number of transistors on an integrated circuit. For example, an &lt;a href=&quot;https://ark.intel.com/products/88195/Intel-Core-i7-6700K-Processor-8M-Cache-up-to-4_20-GHz&quot;&gt;Intel Core i7 Skylake&lt;/a&gt; has 1,750,000,000 transistors.&lt;/p&gt;

&lt;p&gt;The rate at which transistor counts have increased generally follows &lt;a href=&quot;https://en.wikipedia.org/wiki/Moore%27s_law&quot;&gt;Moore’s law&lt;/a&gt;, which observes that transistor count doubles approximately every two years (although this is arguably a self-fulfilling prophecy made real by companies such as Intel, AMD, and ARM).&lt;/p&gt;

&lt;p&gt;To achieve this growth, transistors must continue to get smaller. For example, Intel Core i7 Skylake is built using a 14nm process, which is 500 times smaller than a red blood cell.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://www.itrs2.net&quot;&gt;International Technology Roadmap for Semiconductors (ITRS)&lt;/a&gt; expects to see 10nm nodes by 2017, however many experts believe the roadmap will end after 5nm (expected in 2021), where the transistors will become so small that they cease to operate as expected, resulting in a phenomenon known a quantum tunnelling (where electrons pass through a block package).&lt;/p&gt;

&lt;p&gt;At this point, we would be operating at the quantum level, where physics work differently. Therefore, scientists are trying to use these unusual quantum properties to their advantage by building Quantum Computers.&lt;/p&gt;

&lt;h3 id=&quot;how-does-quantum-computing-work&quot;&gt;How does Quantum Computing work?&lt;/h3&gt;

&lt;p&gt;In Classical Computing, a basic unit of information is called a bit, which is a binary digit that can have only one of two states, commonly represented as either a 0 or 1.&lt;/p&gt;

&lt;p&gt;Quantum Computers use Qubits, which can also be set to two states, however, a Qubit can be in both states simultaneously, this is known as a &lt;strong&gt;superposition&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;As a result, with 3 qubits of data, a Quantum Computer can store all eight possible combinations of 0 and 1 simultaneously (000, 001, 011, 111, 110, 100, 101, 010). Therefore, a 3 Qubit based Quantum Computer can complete calculations eight times faster than a 3-bit Classical Computer.&lt;/p&gt;

&lt;p&gt;Another key property is &lt;strong&gt;entanglement&lt;/strong&gt;, which describes the close connection between multiple Qubits, allowing a Qubit to instantly react to the change of another Qubit, regardless of their relative proximity. As a result, by reading the state of one Qubit, the state of its partners can be deduced without any additional checks.&lt;/p&gt;

&lt;p&gt;These special properties help Quantum Computers solve complex problems much faster than Classical Computers.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Quantum Computing is incredibly exciting, but also very complex. The description outlined in this article has been dramatically simplified, but hopefully provides enough context to highlight the key differences between Classical Computing and Quantum Computing.&lt;/p&gt;

&lt;p&gt;In short, Quantum Computing has the potential to solve certain problems that are today considered impossible, specifically targeting Machine Learning, Healthcare (Quantum Simulations) and IT Security.&lt;/p&gt;
</description>
        <pubDate>Thu, 10 Dec 2015 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2015/12/10/Quantum-Computing/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/12/10/Quantum-Computing/</guid>
      </item>
    
      <item>
        <title>Ethereum</title>
        <description>&lt;p&gt;In 2014, I wrote the article &lt;a href=&quot;/2014/01/27/Blockchain/&quot;&gt;Blockchain&lt;/a&gt;, which provided a high-level overview of the technology and described the opportunity for adoption outside of cryptocurrency. This included use cases such as supply chain, compliance, auditing, identity, consent and many more.&lt;/p&gt;

&lt;p&gt;However, to successfully enable these use cases, Blockchain needed to evolve, providing the necessary foundations for custom application development.&lt;/p&gt;

&lt;p&gt;In late 2013, Vitalik Buterin published a &lt;a href=&quot;https://github.com/ethereum/wiki/wiki/White-Paper&quot;&gt;white paper&lt;/a&gt;, where he described a combined decentralised mining network and software development platform. Earlier this year he successfully launched that platform, known as &lt;a href=&quot;https://www.ethereum.org/&quot;&gt;Ethereum&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;what-is-ethereum&quot;&gt;What is Ethereum?&lt;/h4&gt;

&lt;p&gt;Ethereum is a public, blockchain-based decentralised computing platform, featuring smart contract functionality. It provides a decentralised Turing-complete virtual machine, the Ethereum Virtual Machine (EVM), which can execute code using a network of public nodes.&lt;/p&gt;

&lt;p&gt;The flexibility to run custom decentralised applications is a key differentiator to Bitcoin, which is what makes Ethereum an interesting proposition for use cases outside of cryptocurrency.&lt;/p&gt;

&lt;h4 id=&quot;how-does-ethereum-work&quot;&gt;How does Ethereum work?&lt;/h4&gt;

&lt;p&gt;Ethereum is a rapidly evolving platform, with a very active community that continues to push the boundaries of decentralised computing. However, there are three foundational concepts, specifically: Smart Contracts, the Ethereum Virtual Machine and Gas.&lt;/p&gt;

&lt;h5 id=&quot;smart-contracts&quot;&gt;Smart Contracts&lt;/h5&gt;

&lt;p&gt;In law, a contract outlines the terms of a relationship. In Ethereum, a smart contract enforces a relationship with cryptographic code.&lt;/p&gt;

&lt;p&gt;Smart contracts run on the Ethereum blockchain and contain code that can interact with other smart contracts to make decisions, store data and/or exchange value.&lt;/p&gt;

&lt;p&gt;Smart contracts automatically execute when specific conditions are met and because they run on the blockchain, they execute exactly as designed, without any possibility of censorship, downtime, fraud or third-party manipulation.&lt;/p&gt;

&lt;p&gt;Ethereum has been built specifically to enable developers to program their own smart contracts, using an object-oriented programming language known as &lt;a href=&quot;https://solidity.readthedocs.io&quot;&gt;Solidity&lt;/a&gt;. Although Solidity is the most popular language, Ethereum also supports Serpent, LLL and Mutan.&lt;/p&gt;

&lt;p&gt;To get started with smart contracts, I recommend reviewing “&lt;a href=&quot;https://www.ethereum.org/greeter&quot;&gt;The Greeter&lt;/a&gt;”, which is a Hello World smart contract running on the Ethereum command line.&lt;/p&gt;

&lt;h5 id=&quot;ethereum-virtual-machine&quot;&gt;Ethereum Virtual Machine&lt;/h5&gt;

&lt;p&gt;The Ethereum Virtual Machine (EVM) serves as the runtime environment for smart contracts. It is “&lt;a href=&quot;https://en.wikipedia.org/wiki/Turing_completeness&quot;&gt;Turing complete&lt;/a&gt;”, which means it supports a broad set of computational instructions, providing almost limitless possibilities.&lt;/p&gt;

&lt;p&gt;Every Ethereum node runs an implementation of the Ethereum Virtual Machine and therefore executes the same instructions. To run successfully, the Ethereum Virtual Machine is completely isolated, with no access to the network, filesystem or other processes.&lt;/p&gt;

&lt;p&gt;The full specification of the Ethereum Virtual Machine is outlined in the &lt;a href=&quot;https://github.com/ethereum/yellowpaper&quot;&gt;yellow paper&lt;/a&gt;, written by Ethereum co-founder Dr Gavin Wood.&lt;/p&gt;

&lt;h5 id=&quot;gas&quot;&gt;Gas&lt;/h5&gt;

&lt;p&gt;Every operation that can be performed by a smart contract on the Ethereum platform costs a certain amount of gas. Therefore, operations that require more computational resources, cost more gas.&lt;/p&gt;

&lt;p&gt;Gas exists inside of the Ethereum Virtual Machine and is paid for via Ether. The reason operations are not measured directly in Ether is due to the market price volatility.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;In summary, Ethereum is an open software platform based on blockchain technology that enables developers to build, deploy and scale decentralised applications.&lt;/p&gt;

&lt;p&gt;In my opinion, Ethereum marks the next major evolutionary step for blockchain, expanding the potential beyond just cryptocurrency. It is currently unclear how Ethereum will mature, as with any new innovation, there are many unknowns. However, pushing an open platform for decentralised applications is an exciting prospect!&lt;/p&gt;
</description>
        <pubDate>Sat, 21 Nov 2015 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2015/11/21/Ethereum/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/11/21/Ethereum/</guid>
      </item>
    
      <item>
        <title>Dreamforce 2015</title>
        <description>&lt;p&gt;This year over 160,000 people registered to attend Dreamforce 2015. The conference has grown so large that San Francisco has literally ran out of space, as a result, Salesforce.com decided to dock a cruise ship at Pier 27.&lt;/p&gt;

&lt;p&gt;Each year at Dreamforce I speak on a topic related to Force.com as an enterprise application development platform. Unfortunately, due to confidentiality policies within my company, our sessions are not normally recorded, however this year we got approval!&lt;/p&gt;

&lt;p&gt;Myself and a colleague shared our journey from customer relationship management to application development, covering DevOps culture and platform architecture.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/puB_YyvcTRE?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://www.salesforce.com/video/193001/&quot;&gt;Eli Lilly is All In on Salesforce App Cloud. How They Did It and You Can Too!&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 01 Nov 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/11/01/Dreamforce-2015/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/11/01/Dreamforce-2015/</guid>
      </item>
    
      <item>
        <title>IT Architect</title>
        <description>&lt;p&gt;What is an IT Architect?&lt;/p&gt;

&lt;p&gt;This is not always an easy questions to answer. In my opinion, the role of an IT Architect sits at the intersection of business and technology, requires a detailed understanding of the customer, technical breadth and depth, as well as a proven record of delivery.&lt;/p&gt;

&lt;p&gt;Personally, I’m responsible for technology architecture, which involves defining and maintaining the target state, through the creation of a reference architecture, principles, standards, positioning and patterns. These concepts are cascaded across the IT community, providing a north star and driving better strategic decision making, by triggering the right solution architecture conversations.&lt;/p&gt;

&lt;p&gt;This is all great, but it can still be difficult to relate these words in the real-world. Thankfully, &lt;a href=&quot;https://www.linkedin.com/in/tcozz&quot;&gt;Tom Cozzolino&lt;/a&gt; (an Architect at Salesforce.com) recently created the following video, which does a great job of describing the many aspects of an IT Architects role.&lt;/p&gt;

&lt;p&gt;Although the video obviously references Salesforce.com, this can largely be ignored, as the concepts Tom describes are highly transferable, regardless of the specific technology stack.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/DlQtSBwVc44?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</description>
        <pubDate>Tue, 27 Oct 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/10/27/IT-Architect/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/10/27/IT-Architect/</guid>
      </item>
    
      <item>
        <title>ES6 - Part Two</title>
        <description>&lt;p&gt;In my previous article (&lt;a href=&quot;/2015/07/18/ES6-Part-One/&quot;&gt;ES6 - Part One&lt;/a&gt;) I highlighted some of the most anticipated new features in ECMAScript 2015 (AKA ES6).&lt;/p&gt;

&lt;p&gt;This article will continue that theme, covering some of the more advance features.&lt;/p&gt;

&lt;h4 id=&quot;classes&quot;&gt;Classes&lt;/h4&gt;

&lt;p&gt;As described in my article “&lt;a href=&quot;/2014/09/18/JavaScript-Part-Three/&quot;&gt;JavaScript - Part Three&lt;/a&gt;”, JavaScript is a prototype oriented language (also known as classless). Thanks to the flexibility of functions, you have always been able to simulate classes, without the class keyword.&lt;/p&gt;

&lt;p&gt;If JavaScript is your first programming language or you have previous experience with prototypical inheritance, the lack of the class keyword is not really a limitation, however, if you are familiar with class-based languages, JavaScript can be quite confusing.&lt;/p&gt;

&lt;p&gt;As a result, ES6 officially introduces the class keyword, which provides a simpler syntax to create objects and deal with inheritance. However, the class syntax &lt;strong&gt;does not&lt;/strong&gt; introduce a new object-oriented inheritance model to JavaScript.&lt;/p&gt;

&lt;p&gt;The easiest way to think about a class is to consider it a “special function”, which includes class declarations and class expressions.&lt;/p&gt;

&lt;p&gt;An example of a class declaration can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;class Square {  
  constructor(height, width) {  
    this.height = height;  
    this.width = width;  
  }  
};
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The example below is the same code, using a class expression:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var Square = class Square {  
  constructor(height, width){  
    this.height = height;  
    this.width = width;  
  }
};
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This class expression is named (e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;class Square&lt;/code&gt;), however class expressions can also be unnamed.&lt;/p&gt;

&lt;p&gt;Finally, it is important to note that class declarations and class expressions &lt;strong&gt;are not&lt;/strong&gt; hoisted (unlike functions), which means you must first declare your class, before you access it.&lt;/p&gt;

&lt;h4 id=&quot;promises&quot;&gt;Promises&lt;/h4&gt;

&lt;p&gt;Thanks to the increased performance and flexibility, asynchronous code is rapidly gaining popularity. In short, “async” enables you to trigger numerous requests simultaneously and then handle the responses as they become available without waiting.&lt;/p&gt;

&lt;p&gt;A JavaScript promise facilitates asynchronous code and in many respects, is just like a real promise. For example, I could promise to buy you a new Mac next week. At the time the promise is made you don’t actually have the new Mac and you won’t know if the promise is fulfilled until next week.&lt;/p&gt;

&lt;p&gt;As a result, a promise can have three states:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Promise Pending:&lt;/strong&gt; You are waiting to see if the promise is fulfilled.&lt;br /&gt;
&lt;strong&gt;Promise Resolved:&lt;/strong&gt; You actually get a new Mac at the end of the week.&lt;br /&gt;
&lt;strong&gt;Promise Rejected:&lt;/strong&gt; You don’t get a new Mac at the end of the week.&lt;/p&gt;

&lt;p&gt;An example of a promise being created can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var newMac = true;  

var willIGetNewMac = new Promise(function(resolve, reject) {  
  if(newMac) {  
    resolve('Success!');  
  }  
  else {  
    reject('Failure!');  
  }  
});
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
In the example, When the result is successful, the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;resolve(success_value)&lt;/code&gt; is called, but if the result fails, the  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reject(fail_value)&lt;/code&gt; is called.&lt;/p&gt;

&lt;p&gt;An example of a promise being consumed can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var askMatt = function () {  
  willIGetNewMac  
    .then(function (fulfilled) {  
      console.log(fulfilled);  
    })  
    .catch(function (error) {  
      console.log(error.message);  
    });  
};

askMatt();
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
In the example, we have a function call &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;askMatt&lt;/code&gt;, which consumes the promise &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;willIGetNewMac&lt;/code&gt;. Once the promise has been resolved or rejected, action is taken by using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.then&lt;/code&gt; (success_value) and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.catch&lt;/code&gt; (fail_value).&lt;/p&gt;

&lt;h4 id=&quot;modules&quot;&gt;Modules&lt;/h4&gt;

&lt;p&gt;Modules in JavaScript are not new, but they were previously implemented via libraries. ES6 supports built-in modules, with each module being defined in its own file. However, the variables and/or functions defined in a module are not visible outside of the module unless explicitly exported.&lt;/p&gt;

&lt;p&gt;An example of a module (filename utility.js) can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function generateNumber() {  
  return Math.random();  
}  

function sum(a, b) {  
  return a + b;  
}  

export { generateNumber, sum }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;export&lt;/code&gt; keyword exports the two functions &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GenerateNumber&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sum&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To import the functions, you must include the following syntax, where “utility” is the name of the file (e.g. utility.js):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;import { generateRandom, sum } from 'utility';
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
You can also import the entire module as an object and access exported values as properties:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;import 'utility' as utils;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The use of modules can dramatically simplify complex applications, therefore is highly recommended.&lt;/p&gt;

&lt;h4 id=&quot;rest-parameters&quot;&gt;Rest Parameters&lt;/h4&gt;

&lt;p&gt;The rest parameter syntax allows you to represent a variable number of arguments as an array. As the rest parameter is an instance of an array, all of the array methods work as normal.&lt;/p&gt;

&lt;p&gt;The example below highlights how a function with a variable number of arguments was handled prior to ES6 (using the arguments object):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function listCars() {  
  var car = Array.prototype.slice.call(arguments);  
  cars.forEach(function(car) {  
    ChromeSamples.log(car);  
  });  
}  

listCars('McLaren', 'Lamborghini', 'BMW', 'Mercedes');
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The example below achieves the same result, using the rest operator (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;...&lt;/code&gt;):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function listCarsES6(...cars) {  
  cars.forEach(function(car) {  
    ChromeSamples.log(car);  
  });  
}  

listCarsES6('McLaren', 'Lamborghini', 'BMW', 'Mercedes');  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
It is worth noting that there can only be a single rest parameter for a given function. For example, listTransport(…cars, …boat) would not work.&lt;/p&gt;

&lt;h4 id=&quot;spread-operator&quot;&gt;Spread Operator&lt;/h4&gt;

&lt;p&gt;The main objective of the spread operator is to spread the objects of an array. For example, a common use case is to spread an array into the function arguments, which prior to ES6 would have been achieved using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Function.prototype.apply&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function foo(x, y, z) { }  
var args = [0, 1, 2];  
foo.apply(null, args);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
With ES6 you can achieve the same result by prefixing the arguments with (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;...&lt;/code&gt;):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function foo(x, y, z) { }  
var args = [0, 1, 2];  
foo(...args);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This example will spread the args array into positional arguments.&lt;/p&gt;

&lt;h4 id=&quot;map&quot;&gt;Map&lt;/h4&gt;

&lt;p&gt;A map is a new data structure introduced in ES6. A map allows you to store data using a key, then retrieve the data by passing in the key. In short, a map is a HashTable (often described as a Dictionary in C#).&lt;/p&gt;

&lt;p&gt;Looking at the description of a map, you might be thinking that it sounds very similar to an object. However, there are a few key differences.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Any value (both objects and primitive values) may be used as either a key or a value.&lt;/li&gt;
  &lt;li&gt;Keys are not converted to strings (when using objects as maps, the keys are converted to strings).&lt;/li&gt;
  &lt;li&gt;It is very easy to get the size of a map.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An example of a map can be found below, including the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;set&lt;/code&gt; method which sets the value for the key in the map:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var myMap = new Map()  
map.set('Mac', { description: 'A personal computer' })  
map.set('iPhone', 'Smartphone'})
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
As previously mentioned, one advantage of a map is that you can use anything for the keys, including functions, objects, etc.&lt;/p&gt;

&lt;p&gt;The example below uses the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;get&lt;/code&gt; method to return the specific element from the map:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;myMap.get('iPhone');
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This example will return “Smartphone”.&lt;/p&gt;

&lt;p&gt;I recommend using maps over objects when the keys are unknown until runtime and when all keys are the same type, and all values are the same type. Use objects when there is logic that operates on individual elements.&lt;/p&gt;
</description>
        <pubDate>Mon, 03 Aug 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/08/03/ES6-Part-Two/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/08/03/ES6-Part-Two/</guid>
      </item>
    
      <item>
        <title>Wardley Maps</title>
        <description>&lt;p&gt;A successful strategy must be unique to the individual business, with strong situational awareness of the internal and external landscape.&lt;/p&gt;

&lt;p&gt;I have been a long-time advocate of &lt;a href=&quot;http://www.wardleymaps.com&quot;&gt;Wardley Maps&lt;/a&gt;, by &lt;a href=&quot;https://www.linkedin.com/in/simonwardley&quot;&gt;Simon Wardley&lt;/a&gt; for strategic planning.&lt;/p&gt;

&lt;p&gt;I considered writing an article explaining the concepts of Wardley Maps, however Simon recently presented at the &lt;a href=&quot;https://conferences.oreilly.com/oscon/&quot;&gt;Open Source Conference (OSCON)&lt;/a&gt;, where he delivered an excellent overview. As a result, I decided it was far easier to point people at this presentation.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Ty6pOVEc3bA?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;In my experience, the process of mapping is the most powerful, tangible way of developing a strategy. It provides a level of situational awareness that is difficult to achieve through traditional strategy techniques (SWOT Analysis, etc.)&lt;/p&gt;

&lt;p&gt;Mapping also acts as a powerful communication channel, as maps are inherently easy to understand, especially when compared with the majority of strategy models positioned by industry analysts, who are rarely incentivised to make their assets simple to consume.&lt;/p&gt;

&lt;p&gt;With that said, it is worth noting that the process of creating a map can still be complex, especially within an enterprise. However, what is often misunderstood, is that a map &lt;strong&gt;can only&lt;/strong&gt; be created by individuals (ideally a team) who understand the business, not external consultants or third-parties. Therefore, although the process of mapping requires time, effort and iteration, it is self-rewarding, as it promotes collaboration and shared learning, which will almost always result in a better outcome.&lt;/p&gt;

&lt;p&gt;To get started with Wardley Maps, I recommend you subscribe to Simon’s &lt;a href=&quot;http://blog.gardeviance.org&quot;&gt;blog&lt;/a&gt;, where he often posts training materials, tips and tricks. He also offers formal training, which is facilitated by the &lt;a href=&quot;https://leadingedgeforum.com&quot;&gt;Leading Edge Forum&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sat, 01 Aug 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/08/01/Wardley-Maps/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/08/01/Wardley-Maps/</guid>
      </item>
    
      <item>
        <title>Force.com Standards</title>
        <description>&lt;p&gt;Over the past few years, Salesforce.com have been making a big push into enterprise application development.&lt;/p&gt;

&lt;p&gt;In previous articles, I’ve shared why I believe Force.com is a great place to build applications, as well as made recommendations regarding the architecture and development environment.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/06/29/Force-Enterprise-Application-Platform&quot;&gt;Force.com Enterprise Application Platform&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/07/20/Force-Org-Strategy&quot;&gt;Force.com Org Strategy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/09/14/Developing-on-Force.com&quot;&gt;Developing on Force.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2015/06/19/Enterprise-Force.com-Architecture-Continuous-Integration&quot;&gt;Force.com Architecture - CI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article will focus on standards, providing a set of recommendations when positioning Force.com as an enterprise application platform. I will however assume you have read the previous articles (outlined above).&lt;/p&gt;

&lt;h4 id=&quot;why-standards&quot;&gt;Why Standards?&lt;/h4&gt;

&lt;p&gt;Standards are important to ensure the platform remains secure, supportable, accessible and reliable. I’ve seen organisations start building applications on Force.com without first establishing any standards. This is a dangerous path, which quickly becomes problematic when scaling.&lt;/p&gt;

&lt;h4 id=&quot;recommended-standards&quot;&gt;Recommended Standards&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These standards are not a replacement for the Force.com developer materials created and maintained by Salesforce.com. These materials can be found at &lt;a href=&quot;http://developer.salesforce.com&quot;&gt;developer.salesforce.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I also believe it’s important to ensure all development teams writing APEX have Force.com expertise and experience, preferably “&lt;a href=&quot;http://certification.salesforce.com/platform-developers#tab1&quot;&gt;Salesforce Certified Platform Developer I&lt;/a&gt;”, “&lt;a href=&quot;http://certification.salesforce.com/platform-developers#tab2&quot;&gt;Salesforce Certified Platform Developer II&lt;/a&gt;” certifications (or equivalent).&lt;/p&gt;

&lt;p&gt;Citizen Developers (building declarative applications on Force.com) should have completed the “&lt;a href=&quot;https://developer.salesforce.com/trailhead/trail/force_com_dev_beginner&quot;&gt;Developer Beginner&lt;/a&gt;” and “&lt;a href=&quot;https://developer.salesforce.com/trailhead/trail/force_com_dev_intermediate&quot;&gt;Developer Intermediate&lt;/a&gt;” Trailhead trails.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Namespacing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Namespacing will ensure that you have clear logical separation between your applications, helping you to deploy, maintain and support the environment.&lt;/p&gt;

&lt;p&gt;If the asset is unique to a specific application, the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;API Name&lt;/code&gt; must include a unique four-character prefix. For example, if my application is called LifeinTECH, the prefix could be &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;TECH_&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If the asset is reusable (can be shared across multiple applications), the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;API Name&lt;/code&gt; must include the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GLBL_&lt;/code&gt; prefix. All &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GLBL_&lt;/code&gt; assets must be maintained within a searchable registry and include the relevant governance (e.g. who can consume and modify the asset).&lt;/p&gt;

&lt;p&gt;Assets include Objects, Fields, Classes, Test Classes, Validation Rules, Permission Sets, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Org Wide Defaults:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By default, all objects must be set to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Private&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;System Administrator:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In production, only the org admin team (e.g. platform support) will ever be granted &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;System Administrator&lt;/code&gt; privileges.&lt;/p&gt;

&lt;p&gt;However, development teams will have &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;System Administrator&lt;/code&gt; privileges in development sandboxes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Profiles:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I recommend making &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Profiles&lt;/code&gt; a reserved asset, owned by the org admin team. As a result, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Profiles&lt;/code&gt; must not be created or modified by development teams. Instead, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Permission Sets&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Field Level Security&lt;/code&gt; must be used to drive application security.&lt;/p&gt;

&lt;p&gt;With this recommendation in mind, I would pre-deploy a minimum of three &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Profiles&lt;/code&gt;, which would be owned by the org admin team:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Platform Profile: The default Profile for all users.&lt;/li&gt;
  &lt;li&gt;Integration Profile: The default Profile used for integration (API Only) users.&lt;/li&gt;
  &lt;li&gt;Loading Profile: A special Profile used for data loading activities via Apex Data Loader.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Platform Profile&lt;/code&gt; would be assigned to all users within the org by default, but offer no application access. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Integration Profile&lt;/code&gt; is an “API-Only” &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Profile&lt;/code&gt;, used specifically for integrations. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Loading Profile&lt;/code&gt; is used for data loads, usually via Apex Data Loader, this &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Profile&lt;/code&gt; will only be assigned to specific users for planned periods.&lt;/p&gt;

&lt;p&gt;The only time a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Profile&lt;/code&gt; can be modified by a development team, is to create a new Page Layout for a Standard Object. When this is done, the development team must also create a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Record Type&lt;/code&gt;, secured by a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Permission Set&lt;/code&gt; to restrict the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Page Layout&lt;/code&gt; to only their application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Permission Sets:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Permission Sets&lt;/code&gt; are the primary method used by development teams to enable access to the application.&lt;/p&gt;

&lt;p&gt;It is likely that a single application will have multiple &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Permission Sets&lt;/code&gt;, used to enable different levels of access to the application. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Admin Permission Set: Providing full access to the application and data, used by application support teams.&lt;/li&gt;
  &lt;li&gt;Power User Permission Set: Providing enhanced access to the application.&lt;/li&gt;
  &lt;li&gt;User Permission Set: The default Permission Set for all users, providing standard access to the application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Permission Sets&lt;/code&gt; offer a lot of flexibility; therefore, I would also recommend defining as set of standards outlining which options a development team can enable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Field Level Security:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Development teams must configure &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Field Level Security&lt;/code&gt; for all of their applications. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Field Level Security&lt;/code&gt; must only grant access to fields that are required by the users of the application. This approach helps to ensure fields are not accidently exposed to users when working with shared assets (e.g. Standard Objects).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Roles:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Role Hierarchy&lt;/code&gt; (in my opinion) is the least flexible part of Salesforce.com, as it’s really positioned for CRM usage, not application development.&lt;/p&gt;

&lt;p&gt;In my experience, it’s difficult to deliver a single &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Role Hierarchy&lt;/code&gt; that meets the needs of all applications (this is especially true in large enterprise organisations).&lt;/p&gt;

&lt;p&gt;In this scenario, I recommend that you don’t use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Roles&lt;/code&gt; and/or the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Role Hierarchy&lt;/code&gt; when developing applications. Instead other sharing mechanisms must be used, for example &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Manual Sharing&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Criteria-based Sharing&lt;/code&gt; and/or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Groups&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sharing Rules:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sharing must be achieved via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Manual Sharing&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Criteria-based Sharing&lt;/code&gt; and/or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Groups&lt;/code&gt;. Development teams must avoid nesting &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Groups&lt;/code&gt;, as this creates challenges for user management and access auditing.&lt;/p&gt;

&lt;p&gt;It is the responsibility of the development team to define which users should be added to any &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Groups&lt;/code&gt;, including &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Public Groups&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Apex-based Sharing&lt;/code&gt; is acceptable, but it must first be discussed with an org admin, as it can be difficult to identify data being shared via Apex.&lt;/p&gt;

&lt;p&gt;Where possible, I recommend managing security (Permission Sets and Sharing) via integration with a pre-established directory service (e.g. Active Directory),&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reusable Assets:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Standard Objects&lt;/code&gt; and assets prefixed with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GLBL_&lt;/code&gt; designation are viable for reuse.&lt;/p&gt;

&lt;p&gt;Development teams can consume these assets without restrictions, however they must not modify the asset. If a development team needs to modify a reusable asset, they must first gain approval from the org admin team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Classes:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Classes&lt;/code&gt; must have a corresponding &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Test Class&lt;/code&gt;, which must reach a minimum of 85% code coverage (10% above the Salesforce.com required minimum).&lt;/p&gt;

&lt;p&gt;Test Classes must include meaningful asserts where possible. Creation of Test Classes purely to cover code, but not validate execution flow is not permitted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Batch Jobs:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apex code can be scheduled to execute as a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Batch Job&lt;/code&gt; at a defined time and/or interval.&lt;/p&gt;

&lt;p&gt;Each production org has a maximum number of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Batch Jobs&lt;/code&gt; that can be queued or running concurrently. As a result, any development team that needs to create a batch job must first gain approval from the org admin team.&lt;/p&gt;
</description>
        <pubDate>Mon, 20 Jul 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/07/20/Force-Enterprise-Standards/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/07/20/Force-Enterprise-Standards/</guid>
      </item>
    
      <item>
        <title>Conf Buddy</title>
        <description>&lt;p&gt;Last month I and a small team entered a Salesforce.com hackathon.&lt;/p&gt;

&lt;p&gt;Building on a business need, we decided to develop a multi-tenant conferencing application, which covered registration, session management, breakout areas, virtual attendance, feedback, social collaboration and speaker management. As a special feature, we also developed a people networking capability, which identifies and groups individuals with similar skills and expertise.&lt;/p&gt;

&lt;p&gt;The hackathon took place across three sessions, covering everything from ideation to implementation.&lt;/p&gt;

&lt;p&gt;The application architecture utilized a model-view-controller design pattern, leveraging the native capabilities of Force.com to drive the data model. The application logic was written in Apex, with the front-end being built with Visualforce, Less, Bootstrap and jQuery (including plugins).&lt;/p&gt;

&lt;p&gt;Myself and a colleague shared the developed tasks, while other members of the team prepared the pitch, marketing material, documentation and came up with the application name “Conf Buddy”.&lt;/p&gt;

&lt;p&gt;The video below shows Conf Buddy in action:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/wKZeO3p-LiM?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I’ve also included a few screenshots, highlighting the responsive design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Home Page&lt;/strong&gt; - Providing a summary of conference.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/confbuddy01.jpg&quot; alt=&quot;Conf Buddy&quot; title=&quot;Conf Buddy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Themes&lt;/strong&gt; - Select personal themes and expertise.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/confbuddy02.jpg&quot; alt=&quot;Conf Buddy&quot; title=&quot;Conf Buddy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sessions&lt;/strong&gt; - A list of sessions, including suggested sessions based on your selected themes.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/confbuddy03.jpg&quot; alt=&quot;Conf Buddy&quot; title=&quot;Conf Buddy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Session Details&lt;/strong&gt; - Session information, including virtual details and social collaboration.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/confbuddy04.jpg&quot; alt=&quot;Conf Buddy&quot; title=&quot;Conf Buddy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Themes Match&lt;/strong&gt; - Individuals with similar skills and expertise.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/confbuddy05.jpg&quot; alt=&quot;Conf Buddy&quot; title=&quot;Conf Buddy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Conf Buddy was first used in November 2015, at an IT Conference. This was a two-day event, where 1641 users (physical and virtual) registered via Conf Buddy for the available 84 sessions. Over the two days the application was accessed 53,370 times, from seven countries, across desktops (62%), smartphones (34%) and tablets (4%).&lt;/p&gt;

&lt;p&gt;Thanks to the success of the first conference, positive user feedback and the multi-tenant nature of the application, Conf Buddy was positioned as an enterprise application for conference management.&lt;/p&gt;

&lt;p&gt;It’s also worth highlighting how Force.com helped enabled this use case. Thanks to the declarative capabilities of the platform we were able to have a fully working data model, with process flows and multi-tenant security operational within just a few hours. This enabled us to immediately on-board some users to start testing key parts of the application, providing near real-time feedback as the view was being developed.&lt;/p&gt;

&lt;p&gt;Although you could obviously build this application using any number of different languages and frameworks, I’m not convinced you could have delivered a secure, reliable, scalable application that was ready for production within the same timeframe.&lt;/p&gt;
</description>
        <pubDate>Mon, 20 Jul 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/07/20/Conf-Buddy/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/07/20/Conf-Buddy/</guid>
      </item>
    
      <item>
        <title>ES6 - Part One</title>
        <description>&lt;p&gt;In June, ECMAScript 2015 (AKA ES6) was ratified. This release was the most significant update to JavaScript since its inception and delivers a broad range of new features that some would argue have been long overdue.&lt;/p&gt;

&lt;p&gt;I had previously published a series of articles (part &lt;a href=&quot;/2014/07/10/JavaScript-Part-One/&quot;&gt;one&lt;/a&gt;, &lt;a href=&quot;/2014/07/22/JavaScript-Part-Two/&quot;&gt;two&lt;/a&gt; and &lt;a href=&quot;/2014/09/18/JavaScript-Part-Three/&quot;&gt;three&lt;/a&gt;) documenting my JavaScript learning journey, therefore with the release of ECMAScript 2015, it felt like the perfect time to post an update.&lt;/p&gt;

&lt;p&gt;As stated in my previous articles, this &lt;strong&gt;is not&lt;/strong&gt; intended to be a tutorial, instead a “cheat sheet” highlighting what I believe to be the most useful new features in ECMAScript 2015.&lt;/p&gt;

&lt;h4 id=&quot;declarations&quot;&gt;Declarations&lt;/h4&gt;

&lt;p&gt;There are two new types of declaration introduced in ECMAScript 2015.&lt;/p&gt;

&lt;p&gt;The first is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;let&lt;/code&gt;, which can be used instead of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;var&lt;/code&gt;. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;let&lt;/code&gt; allows you to declare variables that are limited in scope to a specific block, statement, or expression. This is different to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;var&lt;/code&gt;, which defines a variable globally, or locally to an entire function regardless of the block scope.&lt;/p&gt;

&lt;p&gt;The second is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;const&lt;/code&gt;, which creates a read-only reference to a value, meaning the variable identifier cannot be reassigned.&lt;/p&gt;

&lt;p&gt;Although very simple, these new declarations offer a lot of value. In fact, by default I now use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;const&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;let&lt;/code&gt; instead of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;var&lt;/code&gt;.&lt;/p&gt;

&lt;h4 id=&quot;arrow-functions&quot;&gt;Arrow Functions&lt;/h4&gt;

&lt;p&gt;An arrow function expression has a shorter syntax than a function expression, as well as implicit returns and does not rebind the value of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this&lt;/code&gt;. Arrow functions are always anonymous (at least in ECMAScript 2015) and they cannot be used as constructors. Arrow functions are best suited for non-method functions.&lt;/p&gt;

&lt;p&gt;An example of a traditional function expression (prior to ECMAScript 2015) can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var foo = function(value) {
  return value;
};
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The same function using an arrow function expression can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var foo = value =&amp;gt; value;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
As you can see, the arrow function expression simplifies the syntax by using the “fat arrow” (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;=&amp;gt;&lt;/code&gt;) operator and includes an implicit return.&lt;/p&gt;

&lt;h4 id=&quot;destructuring&quot;&gt;Destructuring&lt;/h4&gt;

&lt;p&gt;Destructuring is a convenient way to extract data from arrays, objects, maps and sets into their own variable, even multiple at a time.&lt;/p&gt;

&lt;p&gt;The example below highlights the traditional way to extract data from an object and assign it to a variable.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;const author = {  
  first: 'Matt',  
  last: 'Bull',  
  twitter: '@mswbull'  
};  
const first = author.first;  
const last = author.last;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
As you can see, you end up with very repetitive code (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;const first&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;const last&lt;/code&gt;, etc.)&lt;/p&gt;

&lt;p&gt;The same result using destructuring can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;const { first, last } = author;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This new destructuring syntax (curly bracket on the left of the equals) creates a variable called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;first&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;last&lt;/code&gt; from the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;author&lt;/code&gt; object.&lt;/p&gt;

&lt;p&gt;Hopefully you can already see the value of destructuring, however it becomes even more valuable when data is deeply nested. For example, what you might get returned from a JSON API:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;const author = {  
  first: 'Matt',  
  last: 'Bull',  
    links: {  
      social: {  
      twitter: 'https://twitter.com/mswbull',  
      facebook: 'https://facebook.com/mswbull',  
      },  
    web: {  
      blog: 'https://lifeintech.com'  
    }  
  }  
};  
const twitter = author.links.social.twitter;  
const facebook = author.links.social.facebook;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
As previously stated, this code can quickly become repetitive, as well as frustrating to maintain.&lt;/p&gt;

&lt;p&gt;The same result using destructuring can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;const { twitter, facebook } = author.links.social;
console.log(twitter, facebook);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Note that you can destructure &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;author.links.social&lt;/code&gt; and not just &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;author&lt;/code&gt;, which demonstrates the power of destructuring with nested data.&lt;/p&gt;

&lt;h4 id=&quot;template-strings&quot;&gt;Template Strings&lt;/h4&gt;

&lt;p&gt;Strings in JavaScript have always been a pain point, especially when compared to languages such as Ruby.&lt;/p&gt;

&lt;p&gt;Template Strings enable the use of back-ticks instead of single or double quotes for regular strings.&lt;/p&gt;

&lt;p&gt;An example of Template Strings, which also contains a placeholder for string substitution (using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;${ }&lt;/code&gt; syntax) can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;console.log(`Hi, my name is ${name}.`);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
In this example, the string substitution syntax will input the variable &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;name&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;As all string substitutions are simply JavaScript expressions, you can substitute more than just variable names. The examples below highlight  math, functions and method calls:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;console.log(`Maths ${5 * (a + b)}.`); // Math  
console.log(`foo ${fn()} bar`); // Functions  
console.log(`${name.toUpperCase()}.`); // Methods
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Finally, Template Strings dramatically simplify multiline strings. Simply include new lines where they are required. The example below highlights a string split across two lines:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;console.log(`string text line one
string text line two`);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Although there are many new features included in ECMAScript 2015 (AKA ES6), I expect the new Declarations, Arrow Functions, Destructuring and Template Strings to be the most popular. However, I plan to follow-up with another article covering some of the more advance features, such as classes, promises, modules, etc. Stay tuned!&lt;/p&gt;
</description>
        <pubDate>Sat, 18 Jul 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/07/18/ES6-Part-One/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/07/18/ES6-Part-One/</guid>
      </item>
    
      <item>
        <title>Force.com Architecture - CI</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://www.salesforce.com/platform/overview/&quot;&gt;Force.com&lt;/a&gt; is a great place to build enterprise applications!&lt;/p&gt;

&lt;p&gt;In my precious articles, I’ve outlined the value proposition for the Force.com PaaS, as well as shared my thoughts regarding org strategy and development methodology.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/06/29/Force-Enterprise-Application-Platform&quot;&gt;Force.com Enterprise Application Platform&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/07/20/Force-Org-Strategy&quot;&gt;Force.com Org Strategy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2014/09/14/Developing-on-Force.com&quot;&gt;Developing on Force.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building on this content, I wanted to share a reference architecture, covering environments, code management and deployments.&lt;/p&gt;

&lt;p&gt;This reference architecture is specific for enterprise organisations who are looking to leverage Force.com as an application platform as a service. This means you are looking to simultaneously build multiple applications, across multiple development teams, that will be hosted in a single Salesforce.com production org.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NOTE: Enterprise development can be complex. This post will only provide a summary of the reference architecture, although where possible I will post follow-up articles providing more detail on specific areas.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There are many ways to deploy code to Force.com, however for enterprise organisations I only ever recommend the &lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.daas.meta/daas/&quot;&gt;Force.com Migration Tool&lt;/a&gt; (e.g. &lt;a href=&quot;http://ant.apache.org/&quot;&gt;Ant&lt;/a&gt;) and Continuous Integration (CI).&lt;/p&gt;

&lt;p&gt;Continuous integration is not unique to Force.com, it’s a practice in software engineering, of continuously merging all developer working copies with a shared mainline. This methodology demands a high level of automation, which helps to reduce errors by frequently testing small pieces of effort and providing constant feedback to the developer.&lt;/p&gt;

&lt;p&gt;To help explain the reference architecture, let’s start with a diagram:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/forceci.png&quot; alt=&quot;Force.com - CI&quot; title=&quot;Force.com - CI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At the top of the diagram I’ve highlighted two capabilities:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://git-scm.com/&quot;&gt;Git&lt;/a&gt;&lt;/strong&gt;, which is a distributed source code management system with an emphasis on speed and data integrity. Git is used to manage all source code (including meta-data) for all of the projects that are being developed for Force.com. Every project team should have their own private repository, which enables them to manage their code via different branches. There are plenty of Git services available, however the most popular are &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt; and &lt;a href=&quot;https://bitbucket.org/&quot;&gt;BitBucket&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://jenkins-ci.org/&quot;&gt;Jenkins&lt;/a&gt;&lt;/strong&gt;, which is the industry standard for continuous integration. Jenkins automates code deployments across different environments, as well as facilitates the testing process. You can host your own Jenkins instance, but I would recommend a cloud-based service such as &lt;a href=&quot;https://www.cloudbees.com/&quot;&gt;CloudBees&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;These two capabilities facilitate the entire development process, making the end-to-end application lifecycle management significantly simpler to manage and support.&lt;/p&gt;

&lt;p&gt;Next we have the different environments. Every production Force.com org comes with a suite of development sandboxes (the exact number depends on your agreement with Salesforce.com). These sandboxes can be created ad-hoc and are a direct replica of production (however do not include any data). There are also &lt;a href=&quot;https://help.salesforce.com/HTViewHelpDoc?id=create_test_instance.htm&amp;amp;language=en_US&quot;&gt;different sizes&lt;/a&gt; of sandboxes (e.g. DEV, DEV Pro, etc.)&lt;/p&gt;

&lt;p&gt;To ensure you leverage these environments efficiently, the reference architecture is split into two halves.&lt;/p&gt;

&lt;h4 id=&quot;developer-owned-left-side&quot;&gt;Developer Owned (Left Side)&lt;/h4&gt;

&lt;p&gt;On the left side of the diagram, we have the developer tracks, these are fully owned by the development teams, providing complete autonomy. Every development team (which could be working on multiple apps) will be provisioned three sandboxes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DEV&lt;/strong&gt; = Main development environment.&lt;br /&gt;
&lt;strong&gt;CI&lt;/strong&gt; = Continues integration merge / build test environment.&lt;br /&gt;
&lt;strong&gt;TEST&lt;/strong&gt; = Formal user testing environment.&lt;/p&gt;

&lt;p&gt;A traditional development pattern would be:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;All development will occur in the DEV environment, leveraging an IDE (e.g. Eclipse or MavensMate) and Git.&lt;/li&gt;
  &lt;li&gt;With every commit to Git, Jenkins will automatically build the code in the CI environment. This will confirm that the development has not broken the build or created any conflicts. In the event of a failure, the development team will immediately be notified (via e-mail or even social tools such as &lt;a href=&quot;http://www.salesforce.com/uk/chatter/overview/&quot;&gt;Chatter&lt;/a&gt; or &lt;a href=&quot;https://slack.com/&quot;&gt;Slack&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;Finally, any code positioned for a release to production will be moved into the TEST environment where formal testing (including UAT) can occur. This is also managed by Jenkins, but triggered by the development team by selecting a specific tag from Git.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In a perfect world, every developer would have their own DEV sandbox, however, at the time of writing, Salesforce.com only offer a restricted number of DEV Sandboxes to their customers. As a result, developers within a specific development team would share the environments (DEV, CI, TEST). This actually works fine, but obviously requires some level of coordination, which is where development methodologies such as SCRUM Agile are key!&lt;/p&gt;

&lt;h4 id=&quot;production-org-owned-right-side&quot;&gt;Production Org Owned (Right Side)&lt;/h4&gt;

&lt;p&gt;On the right side of the diagram, we have another set of environments, specifically:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CI&lt;/strong&gt; = Used to test / merge code from the different development tracks.&lt;br /&gt;
&lt;strong&gt;PRE-PRD&lt;/strong&gt; = An exact replica of PRD, including the full data set. &lt;br /&gt;
&lt;strong&gt;PRD&lt;/strong&gt; = The production environment, where the live users will access the applications.&lt;/p&gt;

&lt;p&gt;These environments are used to merge and test all code from the different development tracks, ready for a specific production release. The actual process remains consistent, leveraging Git and Jenkins to automate the deployment between environments.&lt;/p&gt;

&lt;p&gt;Production releases can be as frequent as required, however it is common for enterprises to start with monthly releases and progress to weekly as they gain confidence. The good news is that the reference architecture is highly scalable and could easily manage multiple production releases per-day, should this become a requirement.&lt;/p&gt;

&lt;p&gt;The two sides of the reference architecture are important as they provide a clear control point for the team that is accountable for the production Force.com org, ensuring that no unapproved code is deployed into production.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;Hopefully this information provides a good overview as to how Force.com can be leveraged as an enterprise application platform as a service.&lt;/p&gt;

&lt;p&gt;The key is to recognise that the reference architecture provides autonomy for the development teams, whilst providing a consistent control point that protects the production environment. Thanks to the high levels of automation, it also enables high levels of agility, without negatively impacting quality.&lt;/p&gt;
</description>
        <pubDate>Fri, 19 Jun 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/06/19/Enterprise-Force.com-Architecture-Continuous-Integration/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/06/19/Enterprise-Force.com-Architecture-Continuous-Integration/</guid>
      </item>
    
      <item>
        <title>Jekyll on Heroku</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; is a fantastic &lt;a href=&quot;https://staticsitegenerators.net/&quot;&gt;static site generator&lt;/a&gt;, allowing you to turn plain text into websites or blogs with just a few clicks!&lt;/p&gt;

&lt;p&gt;Static site generators have been growing in popularity over the past year thanks to their speed, simplicity, portability and ease of management. Essentially they allow you to focus on your content and host the output almost anywhere, instead of you having to spend time configuring and maintaining a traditional content management solution (e.g. WordPress, Drupal, etc.).&lt;/p&gt;

&lt;p&gt;Thanks to its Ruby roots and open-source nature, I’ve started to host a number of blogs using Jekyll and have found the experience to be a developers dream.&lt;/p&gt;

&lt;p&gt;Arguably the easiest way to host Jekyll is via &lt;a href=&quot;https://pages.github.com/&quot;&gt;GitHub Pages&lt;/a&gt;, however I have a lot of apps already running on Heroku and therefore favour it as a service.&lt;/p&gt;

&lt;p&gt;This post will explain how to deploy your Jekyll site to Heroku in five simple steps:&lt;/p&gt;

&lt;h4 id=&quot;prerequisites&quot;&gt;Prerequisites:&lt;/h4&gt;

&lt;p&gt;Before proceeding, I assume you have already installed Jekyll. If not, start by checking out the excellent Jekyll Installation Documentation.&lt;/p&gt;

&lt;h4 id=&quot;step-01&quot;&gt;Step 01:&lt;/h4&gt;

&lt;p&gt;Add a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Gemfile&lt;/code&gt; in the Jekyll project containing and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Bundle Install&lt;/code&gt;.:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;source 'https://rubygems.org'
ruby '2.1.2'
gem 'jekyll'
gem 'kramdown'
gem 'rack-jekyll', :git =&amp;gt; 'https://github.com/adaoraul/rack-jekyll.git'
gem 'rake'
gem 'puma'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

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

&lt;h4 id=&quot;step-02&quot;&gt;Step 02:&lt;/h4&gt;

&lt;p&gt;Create a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Procfile&lt;/code&gt; which tells Heroku how to serve the web site with Puma:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;web: bundle exec puma -t 8:32 -w 3 -p $PORT
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

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

&lt;h4 id=&quot;step-03&quot;&gt;Step 03:&lt;/h4&gt;

&lt;p&gt;Create a “Rakefile” which tells Heroku’s slug compiler to build the Jekyll site as part of the assets:precompile Rake task:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;namespace :assets do
   task :precompile do
      puts `bundle exec jekyll build`
   end
end
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

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

&lt;h4 id=&quot;step-04&quot;&gt;Step 04:&lt;/h4&gt;

&lt;p&gt;Add the following to the “_config.yml” file:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;gems: ['kramdown']
exclude: ['config.ru', 'Gemfile', 'Gemfile.lock', 'vendor', 'Procfile', 'Rakefile']
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

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

&lt;h4 id=&quot;step-05&quot;&gt;Step 05:&lt;/h4&gt;

&lt;p&gt;Add a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;config.ru&lt;/code&gt; file containing:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;require 'rack/jekyll'
require 'yaml'
run Rack::Jekyll.new
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;That’s it! You can now push your code to Heroku like normal.&lt;/p&gt;

&lt;p&gt;To save you time, feel free to use my “&lt;a href=&quot;https://github.com/mswbull/Jekyll_Heroku_Deploy_Files&quot;&gt;Jekyll on Heroku Deploy Files&lt;/a&gt;” found on GitHub.&lt;/p&gt;
</description>
        <pubDate>Mon, 15 Jun 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/06/15/Jekyll-on-Heroku/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/06/15/Jekyll-on-Heroku/</guid>
      </item>
    
      <item>
        <title>My Setup</title>
        <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Since writing this article I have made several hardware upgrades, specifically my &lt;a href=&quot;/2016/04/01/Skylake-Build/&quot;&gt;custom-built PC&lt;/a&gt; (November 2015) and &lt;a href=&quot;/2016/11/28/MacBook-Pro-Late-2016/&quot;&gt;MacBook Pro&lt;/a&gt; (November 2016). As a result, the article has been updated to reflect the changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Update&lt;/strong&gt; - Please refer to the article “&lt;a href=&quot;/2025/07/31/My-Setup-Q3-2025/&quot;&gt;My Setup (Q3 2025)&lt;/a&gt;” for a summary of my latest setup.&lt;/p&gt;

&lt;h3 id=&quot;home-setup&quot;&gt;Home Setup&lt;/h3&gt;

&lt;p&gt;At home, I switch between two devices. My daily driver is a 15-inch MacBook Pro with Retina Display (Late 2016). It’s primarily used for productivity tasks, web development, and photo editing. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;15-inch MacBook Pro with Retina Display (Late 2016)&lt;/li&gt;
  &lt;li&gt;2.9GHz Quad-Core Intel i7 (Turbo Boost up to 3.8GHz)&lt;/li&gt;
  &lt;li&gt;16GB 2133MHz LPDDR3 RAM&lt;/li&gt;
  &lt;li&gt;512GB PCIe SSD&lt;/li&gt;
  &lt;li&gt;Intel HD Graphics 530 and AMD Radeon Pro 460 4GB GDDR5&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alongside the Mac, I have a custom-built PC. It has a decent specification (listed below) and is used for gaming (including VR), video editing, after effects and virtual labs.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Asus Maximus VIII Hero Alpha (Intel Z170)&lt;/li&gt;
  &lt;li&gt;Intel Core i7-6700K 4.0GHz @ 4.6GHz&lt;/li&gt;
  &lt;li&gt;Noctua NH-D15 CPU Cooler&lt;/li&gt;
  &lt;li&gt;Corsair Vengeance LPX 32GB DDR4 PC4-24000C15 (15-17-17-35)&lt;/li&gt;
  &lt;li&gt;Gigabyte GeForce GTX 980 4GB @ 1350MHz / 8000MHz&lt;/li&gt;
  &lt;li&gt;Samsung 950 Pro 512GB M.2 PCI-e NVMe SSD&lt;/li&gt;
  &lt;li&gt;EVGA SuperNova P2 1000W ‘80 Plus Platinum’ PSU&lt;/li&gt;
  &lt;li&gt;Phanteks Enthoo Evolv ATX Mid Tower Case&lt;/li&gt;
  &lt;li&gt;Bowers &amp;amp; Wilkins MM-1 Speakers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In total I have three displays, two 27-inch Dell 4K IPS monitors used for productivity and colour accurate work, as well as one 27-inch Dell 144Hz G-Sync monitor used for gaming. The exact model numbers are highlighted below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2x Dell P2715Q IPS 4K (3840x2160 / 60Hz / 6ms)&lt;/li&gt;
  &lt;li&gt;1x Dell S2716DG TN G-Sync (2560x1440 / 144Hz / 1ms)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workspace is kept fairly minimal, with all monitors mounted on third-party stands to help maximise desk space.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup01.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The PC is hidden under the desk, with the case door exposed providing easy access to the components. As you can see, I primarily use the Apple Magic Keyboard and Trackpad, however, I also have the Logitech &lt;a href=&quot;http://www.logitech.com/en-us/product/illuminated-keyboard-for-mac-ipad-iphone&quot;&gt;K811 keyboard&lt;/a&gt; and &lt;a href=&quot;http://www.logitech.com/en-gb/product/ultrathin-touch-mouse-t630&quot;&gt;T630 mouse&lt;/a&gt;. These peripherals were selected as they include “Easy-Switch”, which makes it simple to toggle between multiple Bluetooth devices.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup02.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A closer view of the two Dell P2715Q IPS 4K monitors. You will also notice the Oculus Rift, which is connected to the PC.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup03.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The far end of the desk provides access to the Dell S2716DG G-Sync monitor, which can be pushed flush against the wall. You can also see the Bowers &amp;amp; Wilkins MM-1 Speakers, which are connected to the PC and Mac. The flat desk edge provides a clean surface for additional peripherals, such as my flight controller (Saitek X-55) and steering wheel (&lt;a href=&quot;http://gaming.logitech.com/en-gb/product/g29-driving-force&quot;&gt;Logitech G29&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup04.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, a closer look at the PC and the hidden MacBook Pro dock, which also connects to the two Dell P2715Q IPS 4K monitors.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/mysetup05.jpg&quot; alt=&quot;My Setup&quot; title=&quot;My Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The desk itself and matching pedestal is from &lt;a href=&quot;https://www.tcofficefurniture.co.uk&quot;&gt;Three Counties Office Furniture&lt;/a&gt;. They are both designed for corporate use, therefore are hard-wearing and include integrated cable management.&lt;/p&gt;

&lt;p&gt;Although not pictured, I use a &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/multi-use-guest-chairs/setu-chair.html&quot;&gt;Herman Miller Setu&lt;/a&gt; chair, which includes the Kinematic Spine to control resistance and automatically support your weight as you recline.&lt;/p&gt;

&lt;h3 id=&quot;work-setup&quot;&gt;Work Setup&lt;/h3&gt;

&lt;p&gt;At work, I exclusively use the 15-inch MacBook Pro. This is connected to two 27-inch Dell Ultrasharp U2715H IPS Monitors.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/officesetup01.jpg&quot; alt=&quot;Office Setup&quot; title=&quot;Office Setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Similar to my home setup, the desk is very minimal, with the MacBook Pro docked beneath the table.&lt;/p&gt;

&lt;p&gt;I also use a Herman Miller chair at work, however, due to the long hours, it is the more robust &lt;a href=&quot;http://www.hermanmiller.co.uk/products/seating/performance-work-chairs/mirra-2-chairs.html&quot;&gt;Mirra 2&lt;/a&gt;. This chair includes a phenomenal amount of adjustment, ensuring all-day comfort.&lt;/p&gt;
</description>
        <pubDate>Fri, 05 Jun 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/06/05/My-Setup/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/06/05/My-Setup/</guid>
      </item>
    
      <item>
        <title>Git Cheat Sheet</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://git-scm.com/&quot;&gt;Git&lt;/a&gt; is the undisputed king of source code management! However, it can be a little daunting for new users, especially as most developers and online guides favour the command line.&lt;/p&gt;

&lt;p&gt;Thankfully, there are a set of common commands that cover 80% of my standard workflow.&lt;/p&gt;

&lt;h4 id=&quot;user-setup&quot;&gt;User Setup&lt;/h4&gt;

&lt;p&gt;Setting your username and email.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git config --global user.name &quot;&amp;lt;name&amp;gt;&quot;  
git config --global user.email &quot;&amp;lt;email&amp;gt;&quot;  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;basic&quot;&gt;Basic&lt;/h4&gt;

&lt;p&gt;Initialising your repository, updating the index, record changes and pushing to the remote.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git init  
git add .  
git commit -m &quot;Initial Commit&quot;  
git push origin &amp;lt;branch&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;clone&quot;&gt;Clone&lt;/h4&gt;

&lt;p&gt;Clone a repository into a new directory.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone &amp;lt;repo_url&amp;gt;  
git clone -b &amp;lt;branch&amp;gt; &amp;lt;repo_url&amp;gt;  
git checkout -b &amp;lt;branch&amp;gt; origin/&amp;lt;branch&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;remote-setup&quot;&gt;Remote Setup&lt;/h4&gt;

&lt;p&gt;Manage set of tracked repositories.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git remote  
git remote add origin &amp;lt;repo_url&amp;gt;  
git remote -v  
git remote rm origin  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;pull&quot;&gt;Pull&lt;/h4&gt;

&lt;p&gt;Fetch from and integrate with another repository or a local branch.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git pull https://github.com/teamname/reponame.git  
git pull https://github.com/teamname/reponame.git &amp;lt;branch&amp;gt;  
git pull origin &amp;lt;branch&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;branching&quot;&gt;Branching&lt;/h4&gt;

&lt;p&gt;Branching is a powerful way to manage your code, I highly recommend following a branching methodology such as Git Flow.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git branch  
git branch &amp;lt;branch&amp;gt;  
git checkout &amp;lt;branch&amp;gt;  
git checkout -b &amp;lt;branch&amp;gt;  
git branch -m &amp;lt;newname&amp;gt;  
git branch -d &amp;lt;branch&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;merging&quot;&gt;Merging&lt;/h4&gt;

&lt;p&gt;Join two or more development histories together.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git merge &amp;lt;branch&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;tagging&quot;&gt;Tagging&lt;/h4&gt;

&lt;p&gt;Tag specific points in history.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git tag TAG_01  
git push origin --tags  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;lines-of-code&quot;&gt;Lines of Code&lt;/h4&gt;

&lt;p&gt;Show lines of code in the active branch.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git ls-files | xargs wc -l  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;ignored-files&quot;&gt;Ignored Files&lt;/h4&gt;

&lt;p&gt;Show files that are ignored by Git.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git status --ignored  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;remove-ds_store&quot;&gt;Remove .DS_Store&lt;/h4&gt;

&lt;p&gt;If you work on a Mac, you will probably also have pesky &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.DS_Store&lt;/code&gt; files cluttering up your repository. To remove them run the following command (don’t forget to also add .DS_Store to your “.gitignore” file.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;github-chunked-issue&quot;&gt;GitHub Chunked Issue&lt;/h4&gt;

&lt;p&gt;If you recieve the error “POST git-receive-pack (chunked)” when pushing code to GitHub or the push simply fails (hangs), run the following command. This should resolve a known chuncked encoding bug in Git, when using HTTPS.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git config http.postBuffer 524288000
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
If you’re unsure about any of these commands, I suggest you head over to the official &lt;a href=&quot;https://git-scm.com/doc&quot;&gt;Git documentation&lt;/a&gt; or &lt;a href=&quot;https://try.github.io/&quot;&gt;Git online training&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 10 May 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/05/10/Git-Cheat-Sheet/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/05/10/Git-Cheat-Sheet/</guid>
      </item>
    
      <item>
        <title>MacBook Scaling</title>
        <description>&lt;p&gt;The new Apple MacBook is a great device, providing incredible portability, alongside good performance for the majority of basic workloads (web browsing, productivity, web development, etc.)&lt;/p&gt;

&lt;p&gt;Although I continue to use a MacBook Pro as my “work horse”, the MacBook is my device of choice when traveling (personally I still find the iPad to be too restrictive).&lt;/p&gt;

&lt;p&gt;One challenge I have with the MacBook is the inability to scale the resolution above 1440x900 (considering the display is capable of 2304x1440). In my opinion, the sweet spot is actually 1680x1050, providing more real-estate, without negatively impacting usability.&lt;/p&gt;

&lt;p&gt;You can obviously download third-party applications (e.g. &lt;a href=&quot;https://www.thnkdev.com/QuickRes/&quot;&gt;QuickRes&lt;/a&gt;) to overwrite the resolution, however there is also a relatively simple system tweak that will provide a scaled 1680x1050 resolution natively (as highlighted in the image below).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/macbookscaling.jpg&quot; alt=&quot;MacBook Scaling&quot; title=&quot;MacBook Scaling&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Enabling a scaled 1680x1050 resolution can be achieved by completing the following five steps:&lt;/p&gt;

&lt;h4 id=&quot;step-one&quot;&gt;Step One&lt;/h4&gt;

&lt;p&gt;Start by gathering information about your specific display. Navigate to “System Preferences &amp;gt; Displays &amp;gt; Color &amp;gt; Display profiles”.&lt;/p&gt;

&lt;p&gt;Select “Color LCD” and click “Open Profile”.&lt;/p&gt;

&lt;p&gt;Scroll to line 17 and note down the “Manufacturer” and “Model” values (examples below):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Manufacturer: 00000610  
Model: 0000A027
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The key numbers are “610” and “A027” (you can ignore the zeros).&lt;/p&gt;

&lt;h4 id=&quot;step-two&quot;&gt;Step Two&lt;/h4&gt;

&lt;p&gt;Restart your MacBook, holding “CMD + R” to enter “Recovery Mode”. Open the Terminal from the Menu Bar and type:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;csrutil disable
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This will disable the System Integrity Checker, allowing you to update system files.&lt;/p&gt;

&lt;h4 id=&quot;step-three&quot;&gt;Step Three&lt;/h4&gt;

&lt;p&gt;Navigate to “/System/Library/Displays/Contents/Resources/Overrides” and choose the folder “DisplayVendorID-610”, where the “610” matches your “Manufacturer” value.&lt;/p&gt;

&lt;p&gt;Inside the folder, find the file “DisplayProductID-a027”, where the “A027” matches your “Model” value.&lt;/p&gt;

&lt;h4 id=&quot;step-four&quot;&gt;Step Four&lt;/h4&gt;

&lt;p&gt;Prior to proceeding, make a backup of the “DisplayProductID-a027” file (copy to your desktop).&lt;/p&gt;

&lt;p&gt;Open the original file using TextEdit and add the following line to the bottom of the “&lt;array&gt;&quot; section.&lt;/array&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;data&amp;gt;AAANIAAACDQAAAAB&amp;lt;/data&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Save the file and restart your MacBook.&lt;/p&gt;

&lt;h4 id=&quot;step-five&quot;&gt;Step Five&lt;/h4&gt;

&lt;p&gt;Navigate to “System Preferences &amp;gt; Displays”, where you will now be able to natively select the 1680x1050 resolution.&lt;/p&gt;

&lt;p&gt;Finally, restart your MacBook and re-enable the System Integrity Checker by holding “CMD + R” to enter “Recovery Mode”. Open the Terminal from the Menu Bar and type:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;csrutil enable
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
That’s it! You now have a scaled 1680x1050 resolution, without any third-party applications.&lt;/p&gt;
</description>
        <pubDate>Mon, 20 Apr 2015 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2015/04/20/MacBook-Scaling/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/04/20/MacBook-Scaling/</guid>
      </item>
    
      <item>
        <title>Installing Rails on OS X</title>
        <description>&lt;p&gt;I recently started teaching myself Ruby on Rails. So far I’m enjoying the experience and find that Rails is living up to the hype as a fast and easy to use framework.&lt;/p&gt;

&lt;p&gt;One pain point was getting Rails installed and configured on my local development machine. Although the process is relativity simple (when you know how) it is prone to error that can result in a lot of frustration (especially when you just want to start coding).&lt;/p&gt;

&lt;p&gt;Below is a short five step process to installing and configuring Rails on OS X 10.10.&lt;/p&gt;

&lt;h4 id=&quot;step-01&quot;&gt;Step 01:&lt;/h4&gt;

&lt;p&gt;Install Xcode from the Mac AppStore. Xcode is an integrated development environment (IDE) containing a suite of software development tools developed by Apple. It’s fairly big and therefore can take some time to install.&lt;/p&gt;

&lt;h4 id=&quot;step-02&quot;&gt;Step 02:&lt;/h4&gt;

&lt;p&gt;Install Homebrew, which is an open source software package management system that simplifies the installation of software on OS X.&lt;/p&gt;

&lt;p&gt;To install simply open “Terminal” and run the following command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ruby -e &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;You can ensure your installation is up to date by running &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;brew doctor&lt;/code&gt;.&lt;/p&gt;

&lt;h4 id=&quot;step-03&quot;&gt;Step 03:&lt;/h4&gt;

&lt;p&gt;Install Ruby Version Manager (RVM) and Ruby.&lt;/p&gt;

&lt;p&gt;Run the following terminal command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;\curl -L https://get.rvm.io | bash -s stable
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Once the RVM installation is complete, close and reopen terminal. Now run the following terminal command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;type rvm | head -n 1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;To install Ruby, run the following terminal command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;rvm use ruby --install --default
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;This may take a few minutes.&lt;/p&gt;

&lt;h4 id=&quot;step-04&quot;&gt;Step 04:&lt;/h4&gt;

&lt;p&gt;Install Xcode Command Line Tools by running the following terminal command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;xcode-select --install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;When prompted, click &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Install&lt;/code&gt;.&lt;/p&gt;

&lt;h4 id=&quot;step-05&quot;&gt;Step 05:&lt;/h4&gt;

&lt;p&gt;Install Rails by running the following terminal command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;gem install rails --no-ri --no-rdoc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;That’s it! You should now be able to create a new rails app and access it via your localhost.&lt;/p&gt;
</description>
        <pubDate>Sat, 28 Feb 2015 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2015/02/28/Installing-Rails-on-OSX/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/02/28/Installing-Rails-on-OSX/</guid>
      </item>
    
      <item>
        <title>Heroku Enterprise?</title>
        <description>&lt;p&gt;Firstly, I love &lt;a href=&quot;http://www.heroku.com&quot;&gt;Heroku&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;It’s my personal “go-to” platform for development and I have even deployed a number of enterprise applications on the service with great success.&lt;/p&gt;

&lt;p&gt;Here’s the problem, PaaS has finally gone mainstream, resulting in an increasingly competitive market, with many services now focused on enterprise organisations.&lt;/p&gt;

&lt;p&gt;For example, I’ve spent the last couple of months investigating &lt;a href=&quot;http://pivotal.io/platform-as-a-service/pivotal-cloud-foundry&quot;&gt;Pivotal Cloud Foundry&lt;/a&gt; and &lt;a href=&quot;https://www.openshift.com/&quot;&gt;RedHat OpenShift&lt;/a&gt;. These are two Polyglot PaaS environments that have a lot of overlap with Heroku. In fact, in the case of Cloud Foundry, they even leverage some of the same components (e.g. Buildpacks, created by Heroku).&lt;/p&gt;

&lt;p&gt;Both Cloud Foundry and OpenShift have gained good market momentum, with Cloud Foundry reporting the fastest first-year sales growth for an open-source project ever. They also have well established links into the enterprise, with RedHat building on their strong deployment of RedHat Enterprise Linux and Pivotal with their connections to EMC, VMware, etc.&lt;/p&gt;

&lt;p&gt;These services also offer a suite of enterprise focused features, such as the ability to deploy on top of multiple infrastructure stacks (covering on-premise and in the cloud), as well as future support for Docker, something that RedHat is taking very seriously with OpenShift v3.0.&lt;/p&gt;

&lt;h4 id=&quot;so-where-does-this-leave-heroku-for-the-enterprise&quot;&gt;So where does this leave Heroku for the Enterprise?&lt;/h4&gt;

&lt;p&gt;If I was an enterprise looking for a Polyglot PaaS, why would I pick Heroku? On the surface, I can get every feature of Heroku from Cloud Foundry or OpenShift, whilst at the same time having the flexibility to deploy my own PaaS instance on almost any infrastructure stack (even behind my own firewall).&lt;/p&gt;

&lt;p&gt;This is made worse by the fact that Heroku have not been particularly forthcoming regarding their future roadmap. They’ve done some good work with their security model and continue to expand their trust story (e.g. Safe Harbour, etc), but what about the rumoured VPC or future Docker support? When compared to Pivotal and RedHat, the difference in night and day, as both companies have a clear roadmap (e.g. Cloud Foundry Diego and OpenShift v3.0).&lt;/p&gt;

&lt;h4 id=&quot;can-heroku-conquer-the-enterprise&quot;&gt;Can Heroku Conquer the Enterprise?&lt;/h4&gt;

&lt;p&gt;In my opinion, for Heroku to successfully compete for the Enterprise, they need to take advantage of their unique selling point… Force.com.&lt;/p&gt;

&lt;p&gt;Since the acquisition by Salesforce.com in 2010, I feel like Heroku has lost it’s focus and momentum, whilst at the same time failed to capitalise on the advantages of the broader Salesforce.com eco-system.&lt;/p&gt;

&lt;p&gt;As a result, if I was CEO for the day, I would make Heroku part of every Force.com platform license. For example, if you purchased a Force.com App License, it should automatically come with monthly Heroku dyno capacity (similar to what Microsoft position with O365 and Azure).&lt;/p&gt;

&lt;p&gt;This approach would encourage all Force.com customers (which includes a lot of enterprise organisations) to use Heroku, instead of looking elsewhere.&lt;/p&gt;

&lt;p&gt;In addition to the bundled licensing, I would make services such as “&lt;a href=&quot;https://www.heroku.com/connect&quot;&gt;Heroku Connect&lt;/a&gt;” completely free for Force.com customers, allowing developers to easily synchronise data between the two platforms, without any limitations. This should also include Force.com API limits, which Heroku Connect should be exempt from as both platforms are owned by Salesforce.com.&lt;/p&gt;

&lt;p&gt;If Heroku was positioned in this way, it would suddenly become a very interesting proposition for any Force.com customer, making it very difficult to ignore when positioning a Polyglot PaaS capability. It would also act as a clear differentiator to Cloud Foundry and OpenShift, giving Heroku a much needed unique selling point.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;I believe Heroku must act now if they want to remain relevant to enterprise customers. This means, Salesforce.com must remove all barriers for their existing customers and drive clear synergy between Heroku and Force.com, as well as their broader eco-system (e.g. Exact Target, etc).&lt;/p&gt;

&lt;p&gt;Without this proactive strategy, I fear Heroku will remain a niche service for start-ups, never fully realising its potential.&lt;/p&gt;
</description>
        <pubDate>Fri, 16 Jan 2015 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2015/01/16/Heroku-Enterprise/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2015/01/16/Heroku-Enterprise/</guid>
      </item>
    
      <item>
        <title>The Healthcare Revolution</title>
        <description>&lt;p&gt;I believe that healthcare is on the verge of a technology revolution.&lt;/p&gt;

&lt;p&gt;We’ve seen it countless times before, where technology companies such as Amazon, Uber, and Airbnb, all successfully disrupted industries that had a long, stable heritage.&lt;/p&gt;

&lt;p&gt;Healthcare is a highly regulated, incredibly diverse industry, with many complexities. Companies invest billions into research and development, with no guarantee of success and a journey that may take more than ten years before a discovered product can start adding value.&lt;/p&gt;

&lt;p&gt;With this in mind, it can be hard to understand how technology can truly disrupt the healthcare industry. Therefore, I thought I would share my vision for the healthcare revolution.&lt;/p&gt;

&lt;h4 id=&quot;the-vision&quot;&gt;The Vision&lt;/h4&gt;

&lt;p&gt;The year is 2025… Your alarm sounds, it’s time for work.&lt;/p&gt;

&lt;p&gt;As you walk into your bathroom, the floor measures your weight, body composition, including the percentage of bone mass, fat mass, muscle mass, and water mass, in addition to heart rate and pulse wave velocity (arterial stiffness). This data is used to identify a wide range of health conditions, including heart disease, high blood pressure, osteoporosis, muscle atrophy, arthritis, etc.&lt;/p&gt;

&lt;p&gt;You then use the toilet, providing instant analysis of your urine, which is screened for disease and infection, such as diabetes, kidney/liver disease, etc. Your stool can also be analysed to identify diseases such as cancer, as well as bacterial, fungal and viral infections.&lt;/p&gt;

&lt;p&gt;Next, you shower, where a full body analysis is completed. For example, mole mapping via digital photo-dermoscopy surveillance. This process helps identify skin defects and malignant melanoma.&lt;/p&gt;

&lt;p&gt;You then brush your teeth, where your saliva is analysed to identify markers of endocrine, immunologic, inflammatory and infectious conditions.&lt;/p&gt;

&lt;p&gt;While brushing your teeth, your eyes are checked by your mirror, via retinal-scan analysis. This detects macular degeneration, which untreated, could result in blindness.&lt;/p&gt;

&lt;p&gt;All of this data is securely and privately stored in the cloud, where your virtual assistant can analyse the results and provide recommendations (covering health and fitness), as well as flag any risks or concerning trends. The data is also summarised for review on your smartphone. You can see both daily health statistics, trend data and any recommendations.&lt;/p&gt;

&lt;p&gt;If a health issue is identified that requires an immediate intervention, your virtual assistant will automatically take action. This would include one of the following:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;If the condition is known, your virtual assistant will automatically order the required medication. This medication will be delivered within one hour via the Amazon logistics network.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;If the condition is unknown or non-critical but requires consultancy, your virtual assistant will schedule a telemedicine meeting with your defined health care professional. This will leverage existing video conferencing services such as Apple FaceTime.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;If the condition is known and requires immediate attention, an Uber will be requested with an “SOS” flag. It is likely that Uber will have better access to patients globally, compared to emergency services who are often routed from central locations. This also ensures emergency services are prioritised for emergencies.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;summary&quot;&gt;Summary&lt;/h4&gt;

&lt;p&gt;This vision is not designed to be 100% accurate, instead, it aims to highlight one way in which technology could disrupt the healthcare industry.&lt;/p&gt;

&lt;p&gt;Summarised below are the key points:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Puts the emphasis on proactive healthcare, instead of reactive.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Does not require any manual intervention, it is embedded into everyday life.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Is continuous, happening multiple times per day, instead of relying on periodic check-ups.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Acts as an early warning system, when trend data indicates that your lifestyle is not optimal.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Drives early diagnosis of specific health issues, which is critical to ensure a positive outcome.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Provides a new channel (assuming consent) for data to be analysed and leveraged for future healthcare discoveries.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Removes the emphasis on diagnosis via health care professionals, instead focusing on machine learning.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Removes the need for traditional clinics, instead focusing on home delivery.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Has the potential to disrupt how pharmaceutical companies interact with patients (both clinical trial and commercial).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my opinion, what is most exciting about this vision, is that everything highlighted is technically possible today. As a result, I believe it is only a matter of time before this vision becomes a reality. What will be interesting is to see who will enable it, will it be a traditional healthcare company or a technology company?&lt;/p&gt;
</description>
        <pubDate>Tue, 30 Dec 2014 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2014/12/30/The-Healthcare-Revolution/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/12/30/The-Healthcare-Revolution/</guid>
      </item>
    
      <item>
        <title>SFDC Platform Keynote</title>
        <description>&lt;p&gt;I have spent the past year focused on the design and implementation of Force.com as an application development platform.&lt;/p&gt;

&lt;p&gt;This year at Dreamforce, our story was shared as part of the Platform Keynote.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/eBA9pgrAES4?t=10m30s?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Jump to &lt;a href=&quot;https://youtu.be/eBA9pgrAES4?t=10m30s&quot;&gt;10:30&lt;/a&gt; for the section on the work I’ve been driving.&lt;/p&gt;

&lt;p&gt;I also spoke at the conference, but unfortunately due to confidentiality policies within my company, the session could not be recorded.&lt;/p&gt;
</description>
        <pubDate>Wed, 29 Oct 2014 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2014/10/29/Dreamforce-Platform-Keynote/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/10/29/Dreamforce-Platform-Keynote/</guid>
      </item>
    
      <item>
        <title>Dreamforce 2014</title>
        <description>&lt;p&gt;I recently attended and spoke at &lt;a href=&quot;http://www.salesforce.com/dreamforce/DF14/&quot;&gt;Dreamforce 2014&lt;/a&gt;, Salesforce.com’s (SFDC) premier conference.&lt;/p&gt;

&lt;p&gt;I’ve tried a number of times to describe Dreamforce to people who haven’t been before, but to be honest, there are no words that fully cover the experience. The Dreamforce website states:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Dreamforce is four high-energy days of innovation, fun, and giving back. It’s your chance to learn from industry visionaries, product experts, and world leaders who can help you transform your business and your life.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Unfortunately this doesn’t come close to describing the event, which this year saw more than 150,000 people attend from all over the world.&lt;/p&gt;

&lt;p&gt;My best effort would be:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Dreamforce is the biggest conference / festival you will ever attend. The entire event feels like it was designed by Walt Disney, with the marketing polish of Apple! Between the 2000 sessions,  you’ll also find a music festival, all night meet-ups and a 1million dollar hackathon. It’s a techies dream!”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With that said and to quote Morpheus, “Unfortunately, no one can be told what the Matrix (&lt;em&gt;Dreamforce&lt;/em&gt;) is. You have to see it for yourself.”&lt;/p&gt;

&lt;p&gt;Due to the scale of Dreamforce it would be impossible to cover all of the announcements in a single blog post. As a result I’ve decided to focus on what I believe to be the most important announcement.&lt;/p&gt;

&lt;h4 id=&quot;saleforce1-lightning&quot;&gt;Saleforce1 Lightning&lt;/h4&gt;

&lt;p&gt;Salesforce1 Lightning is not new, in fact SFDC have been working on it for years. We got our first official glimpse of Lightning last year at Dreamforce with the release of the Salesforce1 Mobile App. This application was built using Lightning, or as it was known then “Aura”.&lt;/p&gt;

&lt;h4 id=&quot;what-is-lightning&quot;&gt;What is Lightning?&lt;/h4&gt;

&lt;p&gt;Lightning is the next major release of the Salesforce1 platform (AKA Force.com) and in my opinion is the biggest change since SFDC first introduced the ability to create custom objects.&lt;/p&gt;

&lt;p&gt;SFDC have released an overview video which highlights the Salesforce1 Platform with Lightning:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/aPgFF2jwSmk?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;why-is-lightning-so-important&quot;&gt;Why is Lightning so important?&lt;/h4&gt;

&lt;p&gt;It’s clear the future will be device agnostic, meaning users will be accessing applications and services across a magnitude of different end points. This could be anything from tablets and smartphones, to wearable devices like the Apple Watch, as well as other paradigms that haven’t been introduced yet.&lt;/p&gt;

&lt;p&gt;The current Salesforce1 user interface is geared towards the browser and I think everyone would agree, has a certain “90’s look”. It also doesn’t consistently optimise for other screen sizes, requiring a complete user interface shift, like with the Salesforce1 Mobile App. This results in a confusing user experience that causes SFDC and developers pain, as they still have to individually think about desktop and mobile when developing complex applications.&lt;/p&gt;

&lt;p&gt;With Lightning, SFDC have delivered a new mobile-optimised, modular user interface, which delivers a consistent experience across all devices and enables rapid application development through re-use.&lt;/p&gt;

&lt;h4 id=&quot;how-does-lightning-work&quot;&gt;How does Lightning work?&lt;/h4&gt;

&lt;p&gt;The easiest way to explain Lightning is to focus on two parts, the “Lightning Framework” and “Lightning Components”. Essentially, Lightning applications are built using the Lightning Framework and comprise of Lightning Components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lightning Framework:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ve heard some people describe Lightning as “just another JavaScript framework”. However, it’s really more than that.&lt;/p&gt;

&lt;p&gt;The Lightning framework supports partitioned multi-tier component development that bridges the client and server. It uses JavaScript on the client side and Apex on the server side. This means that developers gain access to a stateful client and a stateless server architecture.&lt;/p&gt;

&lt;p&gt;For example, JavaScript is leveraged on the client side to manage UI component metadata and application data. The framework then uses JSON to exchange data between the client and the server.&lt;/p&gt;

&lt;p&gt;This architecture helps drive great performance by intelligently utilising the device (client), server and network, enabling developers to focus on the logic and interactions of their app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lightning Components:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every Lightning application is made up of Lightning Components. Each component is a self-contained, re-usable unit, that can range from a simple line of text to a fully functioning capability. Components interact with their environment by listening to or publishing events.&lt;/p&gt;

&lt;p&gt;SFDC have already created a number of  prebuilt Lightning Components (e.g. Chatter feed, search bar, charts, etc.) which can be used as part of app development. You can also expect partners to build Lightning Components and make them available on the AppExchange.&lt;/p&gt;

&lt;p&gt;Developers can use or expand the prebuilt components, as well as build their own custom components. Any component can then be re-used across different applications on the Salesforce1 platform.&lt;/p&gt;

&lt;p&gt;The goal is for developers to build components instead of apps, enabling speed to value through re-use, as well as guaranteeing each component will be fast, secure and device agnostic, thanks to the Lightning Framework.&lt;/p&gt;

&lt;h4 id=&quot;what-about-declarative-development&quot;&gt;What about Declarative Development?&lt;/h4&gt;

&lt;p&gt;One of the great aspects of the Salesforce1 platform, is the ability to develop declaratively (click’s, not code). This opens up app development to non-developers (e.g. business users), which SFDC call “Citizen Developers”.&lt;/p&gt;

&lt;p&gt;As part of the move to Lightning, SFDC have created the Lightning App Builder. Put simply, this is a GUI driven process to “compose applications” from Lighting Components.&lt;/p&gt;

&lt;p&gt;The Lightning App Builder will enable non-developers to build even better applications, quicker, through a drop and drag interface. For example, if you want a Chatter Feed in your app, simply drag one in. Everything else (e.g. performance, scale, security) is taken care of by the Salesforce1 platform and thanks to the Lightning Framework, the components will optmise perfectly for any device.&lt;/p&gt;

&lt;p&gt;The video below shows the Lightning App Builder in action:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/GytEpb0j964?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;I believe Lightning is a game changer for the Saleforce1 platform. I can see a huge opportunity for developers as they shift from creating standalone apps, to re-usable Lightning Components.&lt;/p&gt;

&lt;p&gt;This is the potential I have always seen in the Salesforce1 platform, where app development is no longer a time consuming, costly process, but instead fast and efficient. For the first time, this is achievable through a building block approach, that doesn’t sacrifice quality, performance or security.&lt;/p&gt;

&lt;p&gt;I fully expect to see a lot of energy around Lightning over the next twelve months as SFDC continue to make more of the capabilities available to the community. There will also be a judgment day for the current browser user interface, when SFDC will enable Lightning across the entire platform (my guess is Dreamforce 2015).&lt;/p&gt;

&lt;p&gt;Overall I think Lightning will change the way apps are built and I’m excited to see what developers (including citizen developers) do with the new capabilities!&lt;/p&gt;
</description>
        <pubDate>Wed, 29 Oct 2014 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2014/10/29/Dreamforce-2014/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/10/29/Dreamforce-2014/</guid>
      </item>
    
      <item>
        <title>JavaScript - Part Three</title>
        <description>&lt;p&gt;This article is a continuation of my JavaScript series. I highly recommend reviewing &lt;a href=&quot;/2014/07/10/JavaScript-Part-One/&quot;&gt;JavaScript - Part One&lt;/a&gt; and &lt;a href=&quot;/2014/07/22/JavaScript-Part-Two/&quot;&gt;JavaScript - Part Two&lt;/a&gt; before proceeding.&lt;/p&gt;

&lt;h4 id=&quot;objects&quot;&gt;Objects&lt;/h4&gt;

&lt;p&gt;As highlighted in &lt;a href=&quot;/2014/07/10/JavaScript-Part-One/&quot;&gt;JavaScript - Part One&lt;/a&gt;, almost everything in JavaScript is an object.&lt;/p&gt;

&lt;p&gt;However, it is also possible to create your own objects. There are a few ways to create a new object:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Create a single object, using an object literal.&lt;/li&gt;
  &lt;li&gt;Create a single object, with the keyword new.&lt;/li&gt;
  &lt;li&gt;Define an object constructor (see below), and then create new objects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The object literal is the easiest (most readable) way to create a new object. The structure of a “object literal” can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var objectName = {property1:&quot;value&quot;, property2:&quot;value&quot;};
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Note that the syntax is similar to an &lt;a href=&quot;/2014/07/22/JavaScript-Part-Two/&quot;&gt;array&lt;/a&gt;, except for the use of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{ ... }&lt;/code&gt; and objects use “name:value” pairs.&lt;/p&gt;

&lt;p&gt;All objects in JavaScript inherit from at least one other object. The object being inherited from is known as the prototype (see below), and the inherited properties can be found in the prototype object of the constructor.&lt;/p&gt;

&lt;h4 id=&quot;prototypes&quot;&gt;Prototypes&lt;/h4&gt;

&lt;p&gt;Prototype-based programming is a style of object-oriented programming in which behaviour reuse (known as inheritance) is performed via a process of cloning existing objects that serve as prototypes. This model can also be known as prototypal, prototype-oriented, classless, or instance-based programming.&lt;/p&gt;

&lt;p&gt;A prototype is like a blueprint for a JavaScript object.&lt;/p&gt;

&lt;p&gt;All JavaScript objects inherit their properties and methods from their prototype. For example, objects created using an object literal (see above), inherit from a prototype called “Object.prototype”.&lt;/p&gt;

&lt;p&gt;All other Javascript objects include their own prototypes and inherit from above (with the “Object.prototype” being the top of the prototype chain). The diagram below highlights this inheritance through prototypes.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/jsprototypes.png&quot; alt=&quot;alt text&quot; title=&quot;JavaScript - Prototypes&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It is important to note that although the properties and methods are inherited, they are still “owned” by prototypes, not the inheriting Object.&lt;/p&gt;

&lt;p&gt;The main advantage of prototype-based programming is reuse, which helps simplify code and improve efficiency. For example, if you wanted to add some values or functionality to &lt;strong&gt;all&lt;/strong&gt;* objects of a similar type (e.g. String), you could update the “String.prototype”.&lt;/p&gt;

&lt;p&gt;An example of a simple “String.prototype” update can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var moto = &quot;Keep things simple&quot;;  

String.prototype.countLetters = function (letter){  
  var letterCount = 0;  
  for (var i = 0; i &amp;lt; this.length; i++) {  
    if (this.charAt(i).toUpperCase() == letter.toUpperCase()) {  
    letterCount++;  
    }  
  }  
  return letterCount;  
};  

moto.countLetters(&quot;e&quot;);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
In this example, I declare a new variable &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;moto&lt;/code&gt; and then modify the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;String.prototype&lt;/code&gt; with a new method called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;countLetters&lt;/code&gt;. The method accepts a letter and returns the letter count. In the example the returned value would be “3”, as the letter “e” is referenced 3 times in the strong “Keep things simple”.&lt;/p&gt;

&lt;h4 id=&quot;constructors&quot;&gt;Constructors&lt;/h4&gt;

&lt;p&gt;A constructor allows you to set up inheritance while also assigning specific property values. This can be useful when looking to create many objects of one type.&lt;/p&gt;

&lt;p&gt;An example of an “object constructor” being created can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function Hat(shoeSize, hatColor, hatStyle) {  
  this.size = hatSize;  
  this.color = hatColor;  
  this.construction = hatStyle;  
  this.putOn = function() {alert(&quot;The hat is on!&quot;);};  
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
In this example, a new object constructor is created called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Hat&lt;/code&gt;, which includes some properties and a new method. It should also be noted that a popular convention in JavaScript is to capitalize the first letter of a constructor (making the code easier to read).&lt;/p&gt;

&lt;p&gt;Once the object constructor has been created, you can create new objects of the same type. For example:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var baseballCap = new Hat(&quot;small&quot;, &quot;black&quot;, &quot;baseball&quot;);
baseballCap.putOn();
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;baseballCap.putOn();&lt;/code&gt; method will result in the user being alerted with the message “The hat is on!”.&lt;/p&gt;

&lt;h4 id=&quot;scope&quot;&gt;Scope&lt;/h4&gt;

&lt;p&gt;In JavaScript, scope refers to the current context of your code. JavaScript has two scopes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;global&lt;/li&gt;
  &lt;li&gt;local&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Any variable declared outside of a function belongs to the global scope, and is therefore accessible from anywhere in your code. Each function has its own scope, and any variable declared within that function is only accessible from that function and any nested functions (e.g. all functions have access to the scope “above” them).&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;closure&lt;/strong&gt; is a function having access to the parent scope, even after the parent function has closed.&lt;/p&gt;

&lt;h4 id=&quot;hoisting&quot;&gt;Hoisting&lt;/h4&gt;

&lt;p&gt;Hoisting is the JavaScript interpreter’s default behaviour of moving variable and function declarations to the top of the current scope. However, variable initializations and function expressions are not hoisted.&lt;/p&gt;

&lt;p&gt;An example of variable and function declarations can be found below. These &lt;strong&gt;will&lt;/strong&gt; be hoisted.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var a;  
function(y, z) { return y * z };
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
An example of variable initializations and function expressions can be found below. These &lt;strong&gt;will not&lt;/strong&gt; be hoisted.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var a = 7;  
var z = function(x, y) { return x * y };
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Hoisting can be the root cause of many JavaScript bugs. To help avoid these issues, I advocate a single variable declaration at the beginning of every scope, as this is how the JavaScript interpreter reads the code.&lt;/p&gt;
</description>
        <pubDate>Thu, 18 Sep 2014 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2014/09/18/JavaScript-Part-Three/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/09/18/JavaScript-Part-Three/</guid>
      </item>
    
      <item>
        <title>Developing on Force.com</title>
        <description>&lt;p&gt;The &lt;a href=&quot;http://www.salesforce.com/platform/what/?d=70130000000lts8&quot;&gt;Force.com&lt;/a&gt; PaaS provides an enormous amount of functionality and flexibility, all of which is driven by the underlying metadata architecture.&lt;/p&gt;

&lt;p&gt;There are a number of different ways to develop applications on Force.com, ranging from declarative development (click’s, not code) to APEX, which is an object orientated programming language similar to Java.&lt;/p&gt;

&lt;p&gt;Depending on your use case you may only need to leverage the declarative development, however for most mid-sized builds the 80 / 20 rule can be applied (80% Click’s / 20% Code).&lt;/p&gt;

&lt;p&gt;Regardless of your development, there are number of developer good practices and tools that will help set you up for success. This is especially important if you are developing for a shared org.&lt;/p&gt;

&lt;p&gt;This article will outline some of the good practices and tools that I recommend:&lt;/p&gt;

&lt;h4 id=&quot;integrated-development-environment-ide&quot;&gt;Integrated Development Environment (IDE)&lt;/h4&gt;

&lt;p&gt;An IDE is a software application that provides facilities to programmers for software development. This includes a source code editor, build automation tools, debugger and (if you’re lucky) code completion features.&lt;/p&gt;

&lt;p&gt;With Force.com you have two IDE options:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.lifeintech.com/blog/2014/9/14/developing-on-forcecom#&quot;&gt;Eclipse&lt;/a&gt;, which can almost be considered the industry standard. It’s cross platform (Windows, Mac, Linux), has a rich community and supports thousands of plugins for many programming languages. Salesforce.com have an Eclipse plugin specifically for Force.com development, which can be downloaded for free from “&lt;a href=&quot;https://developer.salesforce.com/page/Force.com_IDE_Installation&quot;&gt;developer.force.com&lt;/a&gt;”. They also have comprehensive reference library for beginners and experienced developers&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://mavensmate.com/&quot;&gt;MavensMate&lt;/a&gt; (my choice) is an open source Force.com IDE developed by Mavens. This is quickly becoming the community standard for Force.com development due to its integration with the popular text editor &lt;a href=&quot;http://www.sublimetext.com/&quot;&gt;Sublime Text&lt;/a&gt;. Salesforce.com themselves also point people towards MavensMate as an alternative to Eclipse.
If you are developing a mid-complexity application (APEX, Visualforce, etc.) I would certainly recommend the use of an IDE.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;source-code-management-scm&quot;&gt;Source Code Management (SCM)&lt;/h4&gt;

&lt;p&gt;A common misunderstanding when developing on Force.com is that you don’t need source code management. The reason that I often hear is that “I have no code, it’s all declarative”.&lt;/p&gt;

&lt;p&gt;The important thing to remember is that Force.com is a metadata driven architecture, therefore metadata describes the data structures in your environment and the declarative functionality implemented on the platform (e.g. your application).&lt;/p&gt;

&lt;p&gt;As a result it’s still import to use source code management for version control, even if it’s just tracking the metadata changes.&lt;/p&gt;

&lt;p&gt;Personally I always recommend Git, which is a distributed source code management system with an emphasis on speed and data integrity. There are plenty of Git services available, however the most popular are &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt; and &lt;a href=&quot;https://bitbucket.org/&quot;&gt;BitBucket&lt;/a&gt;. It’s here where we store all of the source code (e.g. metadata) for all of the projects that are developing for Force.com (just remember to make your repositories private).&lt;/p&gt;

&lt;h4 id=&quot;continuous-integration-ci&quot;&gt;Continuous Integration (CI)&lt;/h4&gt;

&lt;p&gt;Continuous integration is the practice of merging all developer code with a shared mainline on a regular cadence. It enables automated testing and reporting on isolated changes in a larger code base, allowing developers to rapidly find and solve defects.&lt;/p&gt;

&lt;p&gt;As a result, continuous integration facilitates the process of agile development, where you are constantly testing your code, ensuing that it doesn’t break the build (small and often).&lt;/p&gt;

&lt;p&gt;The industry standard for continuous integration is Jenkins, which is an open-source tool. You can host your own Jenkins instance, but I would recommend a cloud-based service such as &lt;a href=&quot;http://www.cloudbees.com/&quot;&gt;CloudBees&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Continuous integration will help facilitate the testing process when moving code between environments (DEV, TEST, PRD, etc.)&lt;/p&gt;

&lt;h4 id=&quot;development-environments&quot;&gt;Development Environments&lt;/h4&gt;

&lt;p&gt;Every production Force.com environment comes with a suite of development sandboxes. These sandboxes can be created ad-hoc and are a direct replica of production (however do not include any data). Test data will need to be loaded post sandbox creation, either manually or via an integration (e.g. &lt;a href=&quot;http://www.mulesoft.com/&quot;&gt;MuleSoft&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;p&gt;When provisioning sandboxes to development teams I recommend the following approach, which includes three sandboxes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DEV&lt;/strong&gt; = Main development environment.&lt;br /&gt;
&lt;strong&gt;CI&lt;/strong&gt; = Continues integration merge / build test environment.&lt;br /&gt;
&lt;strong&gt;TEST&lt;/strong&gt; = Formal user testing environment.&lt;/p&gt;

&lt;p&gt;A traditional development pattern would be…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;All development will occur in the DEV environment, leveraging an IDE (e.g. MavensMate) and source code management (e.g. GitHub).&lt;/li&gt;
  &lt;li&gt;The project teams will then build their code (multiple times per day) into the CI environment leveraging continues integration (CloudBees). This will confirm that their development does not break the build.&lt;/li&gt;
  &lt;li&gt;Finally, any code positioned for a release to PRD will be moved into the TEST environment (leveraging CloudBees), where formal testing (including UAT) can occur.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This approach ensures the entire development process can be owed and managed by the development team, offering complete autonomy.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;In summary, Force.com is an amazingly flexible development PaaS, which is extended further if you include &lt;a href=&quot;http://www.heroku.com&quot;&gt;Heroku&lt;/a&gt; (I’ll save that for another time).&lt;/p&gt;

&lt;p&gt;Hopefully this information is useful and as always, please don’t hesitate to comment below if you have any questions.&lt;/p&gt;
</description>
        <pubDate>Sun, 14 Sep 2014 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2014/09/14/Developing-on-Force.com/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/09/14/Developing-on-Force.com/</guid>
      </item>
    
      <item>
        <title>JavaScript - Part Two</title>
        <description>&lt;p&gt;This article is a continuation of my JavaScript series. I highly recommend reviewing &lt;a href=&quot;/2014/07/10/JavaScript-Part-One/&quot;&gt;JavaScript - Part One&lt;/a&gt; before proceeding.&lt;/p&gt;

&lt;h4 id=&quot;loops&quot;&gt;Loops&lt;/h4&gt;

&lt;p&gt;A loop is a sequence of instructions that are continually repeated until a certain condition is met.&lt;/p&gt;

&lt;p&gt;JavaScript supports a number of different types of loop:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;for&lt;/strong&gt; - Loops through a block of code a number of times.&lt;br /&gt;
&lt;strong&gt;for/in&lt;/strong&gt; - Loops through the properties of an object.&lt;br /&gt;
&lt;strong&gt;while&lt;/strong&gt; - Loops through a block of code while a specified condition is true.&lt;br /&gt;
&lt;strong&gt;do/while&lt;/strong&gt; - Loops through a block of code while a specified condition is true.&lt;/p&gt;

&lt;p&gt;The structure of a “for” loop can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;for (statement 1; statement 2; statement 3) {  
  code to be executed  
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;strong&gt;Statement 1&lt;/strong&gt; - Executed before the “code to be executed” starts.&lt;br /&gt;
&lt;strong&gt;Statement 2&lt;/strong&gt; - Defines the condition for running the loop.&lt;br /&gt;
&lt;strong&gt;Statement 3&lt;/strong&gt; - Executed each time after the “code to be executed” ends.&lt;/p&gt;

&lt;p&gt;An example of a simple “for” loop can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;for (i = 0; i &amp;lt; 10; i++) {
  message += &quot;The number is &quot; + i + &quot;&amp;lt;br /&amp;gt;&quot;;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

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

&lt;h4 id=&quot;conditionals&quot;&gt;Conditionals&lt;/h4&gt;

&lt;p&gt;A conditional statement performs different actions depending on whether a programmer-specified condition evaluates to true or false (e.g. if-than statement).&lt;/p&gt;

&lt;p&gt;The structure of an “else-if” statement can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;if (con1) {
  code to be executed if con1 is true
} else if (con2) {
  code to be executed if the con1 is false and con2 is true
} else {
  code to be executed if the con1 and con2 are false
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
An example of a simple “else-if” statement can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;if (time &amp;lt; 12) {
  message = &quot;Morning&quot;;
} else if (time &amp;lt; 22) {
  message = &quot;There is still time&quot;;
} else {
  message = &quot;Bed Time&quot;;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

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

&lt;h4 id=&quot;functions&quot;&gt;Functions&lt;/h4&gt;

&lt;p&gt;A JavaScript function is a block of code that performs a specific task. It is similar to a procedure and/or a subroutine in other programming languages and is composed of a sequence of statements called the function body.&lt;/p&gt;

&lt;p&gt;Values can be passed to a function, and the function will return a value. In JavaScript, functions are first-class objects, because they can have properties and methods just like other objects.&lt;/p&gt;

&lt;h4 id=&quot;function-declarations&quot;&gt;Function Declarations&lt;/h4&gt;

&lt;p&gt;Declared functions are not executed immediately, instead they are executed when specifically called.&lt;/p&gt;

&lt;p&gt;The structure of a “function declaration” can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function name(par1, par2, par3) {
  code to be executed
  return something;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Function parameters (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;par1&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;par2&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;par3&lt;/code&gt;) are listed in the function definition. Function &lt;strong&gt;arguments&lt;/strong&gt; are the real values received by the function. Inside the function, the arguments (AKA parameters) act as local variables.&lt;/p&gt;

&lt;p&gt;When JavaScript reaches a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;return&lt;/code&gt; statement, the function will stop executing and the return value is “returned” back. If the function was invoked from a statement, JavaScript will return to execute the code following the invoking statement.&lt;/p&gt;

&lt;p&gt;An example of a simple “function declaration” can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function simpleFunction(a, b) {
  var aMultiplied = a*a*a*a;   
  var bMultiplied = b*b*b*b;
  var sum = aMultiplied + bMultiplied;
  return sum;
}

simpleFunction(5, 5);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This function declaration could be written more efficiently to preserve memory:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function simpleFunction(a, b) {
  return a*a*a*a + b*b*b*b;
}

simpleFunction(5, 5);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
In the examples above (when the function is called). The returned value would be “1250”.&lt;/p&gt;

&lt;h4 id=&quot;function-expressions&quot;&gt;Function Expressions&lt;/h4&gt;

&lt;p&gt;A JavaScript function can also be defined using an expression (see &lt;a href=&quot;/2014/07/10/JavaScript-Part-One/&quot;&gt;JavaScript - Part One&lt;/a&gt;), which will store the function in a variable.&lt;/p&gt;

&lt;p&gt;The structure of a “function expression” can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var z = function(x, y) { return x * y };
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The function above is actually an &lt;strong&gt;anonymous function&lt;/strong&gt;, meaning it is a function without a name. Functions stored in variables do not need function names as they are always called using the variable name.&lt;/p&gt;

&lt;p&gt;An example of a simple “function expression” can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var z = function(x, y) { return x * y };  
var result = z(5, 5);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The result of the above function would be “25”.&lt;/p&gt;

&lt;h4 id=&quot;methods&quot;&gt;Methods&lt;/h4&gt;

&lt;p&gt;JavaScript methods are the actions that can be performed on objects. Therefore, a method is simply an object property containing a &lt;strong&gt;function&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;An example of how to access an objects “method” can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;objectName.methodName();
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
There are also a wide number of “built-in” JavaScript methods. The Mozilla Developer Network (MDN) maintain a comprehensive list on their &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Methods_Index&quot;&gt;JavaScript Methods Index&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;arrays&quot;&gt;Arrays&lt;/h4&gt;

&lt;p&gt;An array is used to store multiple values in a single variable. Array indexes are zero-based, meaning the first element in the array is 0 (not 1).&lt;/p&gt;

&lt;p&gt;The structure of an “array” can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var arrayName = [element1, element2, element3, ...];  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
An example of a simple “array” can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var team = [Matt, Steve, John];
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Arrays use numbers to access the element. In the above example, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;team[0]&lt;/code&gt; returns “Matt” and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;team[2]&lt;/code&gt; returns “John”.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The next part of the JavaScript Series can be found &lt;a href=&quot;/2014/09/18/JavaScript-Part-Three/&quot;&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Tue, 22 Jul 2014 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2014/07/22/JavaScript-Part-Two/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/07/22/JavaScript-Part-Two/</guid>
      </item>
    
      <item>
        <title>Docker</title>
        <description>&lt;p&gt;&lt;em&gt;“Containerisation is the new Virtualisation.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I’m a huge advocate of Platform as a Service (PaaS), specifically Heroku.&lt;/p&gt;

&lt;p&gt;Heroku enables developers to forget about the infrastructure and middleware, allowing them to focus on their application (simply push code and let the platform do the rest).&lt;/p&gt;

&lt;p&gt;The “secret source” of Heroku is the understanding that web apps, databases and worker jobs are just Unix processes and Unix doesn’t care about the stack. It’s this philosophy that enables Heroku to be cross-language, by focusing on Unix processes and producing environments (via &lt;a href=&quot;https://devcenter.heroku.com/articles/buildpacks&quot;&gt;Buildpacks&lt;/a&gt;) that can run any server process.&lt;/p&gt;

&lt;p&gt;This is where containers come in! Heroku uses lightweight containers called Dynos, which run a single user-specified command. With containers you can very quickly and efficiently run thousands of services on a single virtual machine, each thinking they have their own system.&lt;/p&gt;

&lt;p&gt;This is all great and it’s a core part of why I love Heroku. However, it’s what happens when you expand on this concept that things become really interesting…&lt;/p&gt;

&lt;h4 id=&quot;introducing-docker&quot;&gt;Introducing Docker&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;http://www.docker.com&quot;&gt;Docker&lt;/a&gt; is an open-source project to easily create lightweight, self-sufficient containers from any application, that will run anywhere.&lt;/p&gt;

&lt;p&gt;Let’s break that down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Source&lt;/strong&gt; - Although Docker was created by a commercial company (dotCloud), it’s open-source and has a thriving community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lightweight&lt;/strong&gt; - Containers are insanely fast, providing bare-metal access to the hardware. No need to worry about a hypervisor layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Self-sufficient&lt;/strong&gt; - Each container comprises of just the application and its dependencies. It runs as an isolated process in userspace on the host operating system, sharing the kernel with other containers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Application&lt;/strong&gt; - Containers package applications, not machines (making it application centric). Unlike traditional virtual machines a Docker container does not include a separate operating system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run Anywhere&lt;/strong&gt; - Run on any machine, with guaranteed consistency, for example: local (OS X, Linux, Windows), Data Centre (Red Hat, etc.) and Cloud Infrastructure (AWS EC2, Rackspace, etc.)&lt;/p&gt;

&lt;p&gt;The primary difference between a traditional Virtual Machine stack and a Docker stack, is that the Docker Engine container includes just the application and its dependencies.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/docker.png&quot; alt=&quot;Docker&quot; title=&quot;Docker&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;why-docker&quot;&gt;Why Docker?&lt;/h4&gt;

&lt;p&gt;With Docker, developers can build any application in any language using any toolchain. Just like shipping containers, “Dockerised” apps are completely portable and can be loaded anywhere. This provides developers complete flexibility and consistency, when developing applications.&lt;/p&gt;

&lt;p&gt;Docker also has an impressive community offering, with over 13,000+ images available on Docker Hub. This enables rapid application development, through the use of pre-built capabilities.&lt;/p&gt;

&lt;p&gt;However, Docker is not just great for developers, system admins can use Docker to provide standardised environments for their development, QA, and production teams, removing the challenges of ensuring consistency across different environments.&lt;/p&gt;

&lt;h4 id=&quot;get-started&quot;&gt;Get Started&lt;/h4&gt;

&lt;p&gt;I plan to post a lot more regarding Docker, but the easiest way to learn is to experience it for yourself. I suggest you head over to the official &lt;a href=&quot;https://docs.docker.com/&quot;&gt;Docker Installation&lt;/a&gt; guide and look-up the instructions for your system, you can then grab an image from the &lt;a href=&quot;https://hub.docker.com/&quot;&gt;Docker Hub&lt;/a&gt; (for example, Ghost, WordPress, PHP, etc.) and start playing.&lt;/p&gt;

&lt;p&gt;I’ve already got a number of web application containers up and running across OS X and Ubuntu and I have set-up my own portable “Heroku-like” PaaS using &lt;a href=&quot;http://progrium.com/blog/2013/06/19/dokku-the-smallest-paas-implementation-youve-ever-seen/&quot;&gt;Dokku&lt;/a&gt;, all powered by Docker!&lt;/p&gt;
</description>
        <pubDate>Mon, 21 Jul 2014 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2014/07/21/Docker-Containerisation-Virtualisation/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/07/21/Docker-Containerisation-Virtualisation/</guid>
      </item>
    
      <item>
        <title>Force.com Org Strategy</title>
        <description>&lt;p&gt;I have recently spent a lot of time positioning Force.com as an enterprise application platform.&lt;/p&gt;

&lt;p&gt;This article focuses on one of the first design decisions, the org strategy!&lt;/p&gt;

&lt;h4 id=&quot;what-is-a-forcecom-org&quot;&gt;What is a Force.com Org?&lt;/h4&gt;

&lt;p&gt;A fundamental part of the Force.com platform is an “organisation” or “org”.&lt;/p&gt;

&lt;p&gt;At a high level, a Force.com org is a logical instance of data and metadata for a set of users. An org is bound by both capacity limits (number of users and storage) and execution computing resources (query sizes and API limits). These limits will depend on your agreement with Salesforce.com and/or your license type.&lt;/p&gt;

&lt;p&gt;Every user working on the Force.com platform will do so inside an org.&lt;/p&gt;

&lt;h4 id=&quot;enterprise-org-strategy&quot;&gt;Enterprise Org Strategy&lt;/h4&gt;

&lt;p&gt;In a perfect world every company would have just one org for their organisation, however this is not always advisable. There are certain scenarios where a “multi-org” strategy will be required to meet the business need.&lt;/p&gt;

&lt;p&gt;One thing that is clear is that you should plan your org strategy from day one! If you don’t it’s possible for your company to unintentionally expand across a number of orgs, which could significantly limit your future deployments, as well as dramatically increase the support complexity.&lt;/p&gt;

&lt;h4 id=&quot;single-org-strategy&quot;&gt;Single-Org Strategy&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Single-Org Advantages:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Improved user experience (one Force.com login)&lt;/li&gt;
  &lt;li&gt;Simplified integration (data access and movement)&lt;/li&gt;
  &lt;li&gt;Reuse of objects, data and capabilities&lt;/li&gt;
  &lt;li&gt;Simplified collaboration (no cross-org Chatter)&lt;/li&gt;
  &lt;li&gt;Encourages consistency (developer standards and reviews)&lt;/li&gt;
  &lt;li&gt;Simplified licensing model&lt;/li&gt;
  &lt;li&gt;Cost benefits (purchase integrations and add-ons only once)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Single-Org Disadvantages:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Complex security (one org = many apps / many business units)&lt;/li&gt;
  &lt;li&gt;Complex release / code management (e.g. code merging)&lt;/li&gt;
  &lt;li&gt;Increased pressure on Force.com limits (e.g. governor limits)&lt;/li&gt;
  &lt;li&gt;Large data volumes (complicating archiving and backup)&lt;/li&gt;
  &lt;li&gt;Requires “good citizen developers” to work in a shared environment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A single-org strategy places an emphasis on consistent global business processes and company-wide collaboration.&lt;/p&gt;

&lt;p&gt;The key advantage being reuse of objects, data and capabilities, enabling faster development and reducing the need to replicate functionality across multiple orgs.&lt;/p&gt;

&lt;p&gt;The key disadvantage is the complexity of managing a shared environment where multiple business units and developers will be deploying applications (often simultaneously). This creates a complex security model and forces the need for a dedicated DevOps team to manage code movement, merging, etc.&lt;/p&gt;

&lt;h4 id=&quot;multi-org-strategy&quot;&gt;Multi-Org Strategy&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Multi-Org Advantages:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Simplified security (one org = one app)&lt;/li&gt;
  &lt;li&gt;Simplified release / code management&lt;/li&gt;
  &lt;li&gt;Reduced pressure on Force.com limits (e.g. governor limits)&lt;/li&gt;
  &lt;li&gt;Smaller data volumes (simplifying archiving and backup)&lt;/li&gt;
  &lt;li&gt;Provides business unit autonomy via a dedicated org&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Multi-Org Disadvantages:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Poor user experience (multi-logins, can be mitigated via SSO)&lt;/li&gt;
  &lt;li&gt;Complex integration (data access and movement)&lt;/li&gt;
  &lt;li&gt;Minimal reuse of objects, data and capabilities (e.g. AppExchange Packages)&lt;/li&gt;
  &lt;li&gt;Complex collaboration (cross-org Chatter)&lt;/li&gt;
  &lt;li&gt;Risk of design inconsistencies across multiple orgs&lt;/li&gt;
  &lt;li&gt;Complicates license model&lt;/li&gt;
  &lt;li&gt;Anticipated higher costs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A multi-org strategy is acceptable when business units or regions want autonomy to have direct control, with limited need for company wide collaboration or data sharing.&lt;/p&gt;

&lt;p&gt;The key advantage to a multi-org strategy is the autonomy provided for specific business units or regions. This enables them to push enhancements and/or bug fixes with minimal impact on other Force.com applications.&lt;/p&gt;

&lt;p&gt;The key disadvantage is the loss of efficiency, meaning that any capability you deploy in one org, will need to be individually deployed and managed in all other orgs (often resulting in additional cost). For example, if you deploy an AppExchange package to manage eSignatures, you would need to deploy the same package across others orgs if this capability was needed by other applications.&lt;/p&gt;

&lt;p&gt;It should also be noted that cross-org Chatter and data access can be challenging, generally forcing you to purchase and deploy third party services such as Make Positive Passport (cross-org Chatter) and/or MuleSoft (integration platform).&lt;/p&gt;

&lt;h4 id=&quot;recommendation&quot;&gt;Recommendation&lt;/h4&gt;

&lt;p&gt;I would alway recommend starting with a single-org strategy, only expanding to multi-org if you have a very specific business need. However, if you are negotiating a contract with Salesforce.com, it’s worth taking into consideration the potential for multi-org, even if you only plan to use one org. This is to ensure you have flexibility to use your existing user licenses across other orgs, in the event you need to expand (reducing the need for future procurement conversations).&lt;/p&gt;

&lt;p&gt;Hopefully, by starting with a single-org strategy, but having the commercial flexibility to expand will provide the best of both worlds. It should also be noted that with every Force.com release, Salesforce.com continue to expand the capabilities of an org. Therefore some of the disadvantages highlighted above (e.g. governor limits) will likely become less of an issue.&lt;/p&gt;

&lt;p&gt;Hopefully this article has helped highlight the advantages and disadvantages of different Force.com org strategies. As always, the business need should drive your decision, but at least now you can proceed with your eyes open!&lt;/p&gt;
</description>
        <pubDate>Sun, 20 Jul 2014 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2014/07/20/Force-Org-Strategy/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/07/20/Force-Org-Strategy/</guid>
      </item>
    
      <item>
        <title>JavaScript - Part One</title>
        <description>&lt;p&gt;If “&lt;a href=&quot;http://www.wsj.com/articles/SB10001424053111903480904576512250915629460&quot;&gt;Software is Eating the World&lt;/a&gt;”, then JavaScript has the biggest appetite. I believe JavaScript will become an increasingly important programming language, especially in the advent of &lt;a href=&quot;https://nodejs.org&quot;&gt;Node.js&lt;/a&gt;, which is an open-source, cross-platform JavaScript runtime environment that can be executed server-side.&lt;/p&gt;

&lt;p&gt;As a result, I thought it was about time I brushed up on my JavaScript skills. This article is the first in a series that will capture my key notes for JavaScript. These articles &lt;strong&gt;are not&lt;/strong&gt; intended to be a tutorial, instead please look at them as a set of “cheat sheets”.&lt;/p&gt;

&lt;h4 id=&quot;what-is-javascript&quot;&gt;What is JavaScript?&lt;/h4&gt;

&lt;p&gt;JavaScript is a high-level, dynamic, untyped, and interpreted programming language, meaning implementations execute instructions directly, without the need to compile a program into machine-language instructions.&lt;/p&gt;

&lt;p&gt;JavaScript has been standardized in the ECMAScript (ES) language specification, which is currently on version 5, with version 6 (ES6 or ECMAScript 2015) set to be ratified in 2015.&lt;/p&gt;

&lt;p&gt;JavaScript is primarily used for client-side scripting on the World Wide Web, but is increasingly being positioned for writing server-side applications and services using Node.js.&lt;/p&gt;

&lt;h4 id=&quot;ground-rules&quot;&gt;Ground Rules&lt;/h4&gt;

&lt;p&gt;In JavaScript, almost everything is an object.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Booleans can be objects (if defined with the new keyword).&lt;/li&gt;
  &lt;li&gt;Numbers can be objects (if defined with the new keyword).&lt;/li&gt;
  &lt;li&gt;Strings can be objects (if defined with the new keyword).&lt;/li&gt;
  &lt;li&gt;Dates are always objects.&lt;/li&gt;
  &lt;li&gt;Maths are always objects.&lt;/li&gt;
  &lt;li&gt;Regular expressions are always objects.&lt;/li&gt;
  &lt;li&gt;Arrays are always objects.&lt;/li&gt;
  &lt;li&gt;Functions are always objects.&lt;/li&gt;
  &lt;li&gt;Objects are always objects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All JavaScript values, except primitives, are objects.&lt;/p&gt;

&lt;p&gt;This may not immediately make sense, but it is very important. Remember, in JavaScript, objects are king!&lt;/p&gt;

&lt;h4 id=&quot;operands&quot;&gt;Operands&lt;/h4&gt;

&lt;p&gt;An operand is a term used to describe any object that is capable of being manipulated. For example, in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1 + 2&lt;/code&gt; the “1” and “2” are the operands and the “+” symbol is the operator.&lt;/p&gt;

&lt;h4 id=&quot;operators&quot;&gt;Operators&lt;/h4&gt;

&lt;p&gt;JavaScript has arithmetic, string, and logical operators. There are both binary and unary operators. A binary operator requires two operands, one before the operator and one after the operator. For example, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;3 + 4&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;x * y&lt;/code&gt;, where the “+” symbol is the operator.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://www.w3schools.com&quot;&gt;w3schools&lt;/a&gt; includes a useful reference of &lt;a href=&quot;http://www.w3schools.com/js/js_operators.asp&quot;&gt;JavaScript Operators&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;statements&quot;&gt;Statements&lt;/h4&gt;

&lt;p&gt;A statement performs an action. For example, “loops” and “if statements” are examples of statements. Wherever JavaScript expects a statement, you can also write an expression (see below). However, the reverse does not hold true, for example you cannot write a statement where JavaScript expects an expression.&lt;/p&gt;

&lt;h4 id=&quot;expressions&quot;&gt;Expressions&lt;/h4&gt;

&lt;p&gt;An expression produces a value and can be written wherever a value is expected. The value may be a number, string or a logical value. Conceptually, there are two types of expressions: those that assign a value to a variable (e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;x = 10&lt;/code&gt;), and those that simply have a value (e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;4 + 6&lt;/code&gt;). In both examples, the expression evaluates to “10”.&lt;/p&gt;

&lt;h4 id=&quot;properties&quot;&gt;Properties&lt;/h4&gt;

&lt;p&gt;JavaScript is designed on a simple object-based paradigm. An object is a collection of properties, and a property is an association between a name and a value. Properties can usually be changed, added, and deleted, but some are read only.&lt;/p&gt;

&lt;p&gt;The syntax for accessing the property of an object is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;objectName.property&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A property’s value can be a function, in which case the property is known as a method.&lt;/p&gt;

&lt;h4 id=&quot;primitives&quot;&gt;Primitives&lt;/h4&gt;

&lt;p&gt;Primitives are values that have no properties. In JavaScript there are five types of primitive:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;undefined&lt;/li&gt;
  &lt;li&gt;null&lt;/li&gt;
  &lt;li&gt;boolean&lt;/li&gt;
  &lt;li&gt;string&lt;/li&gt;
  &lt;li&gt;number&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything else is an object (remember, objects are king). The primitive types boolean, string and number can be wrapped by their object counterparts.&lt;/p&gt;

&lt;h4 id=&quot;keywords&quot;&gt;Keywords&lt;/h4&gt;

&lt;p&gt;In JavaScript, some identifiers are reserved words and cannot be used as variables or function names. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;true&lt;/li&gt;
  &lt;li&gt;false&lt;/li&gt;
  &lt;li&gt;this&lt;/li&gt;
  &lt;li&gt;typeof&lt;/li&gt;
  &lt;li&gt;return&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I want to draw particular attention to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this&lt;/code&gt; keyword. In JavaScript, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this&lt;/code&gt;, is the object that “owns” the JavaScript code. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The value of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this&lt;/code&gt;, when used in a function, is the object that “owns” the function.&lt;/li&gt;
  &lt;li&gt;The value of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this&lt;/code&gt;, when used in an object, is the object itself.&lt;/li&gt;
  &lt;li&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this&lt;/code&gt; keyword in an object constructor does not have a value. It is only a substitute for the new object.&lt;/li&gt;
  &lt;li&gt;The value of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this&lt;/code&gt; will become the new object when the constructor is used to create an object.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this&lt;/code&gt; keyword can be very useful and therefore is worth understanding. However, remember that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this&lt;/code&gt; is a keyword, not a variable. Therefore, you cannot change the value of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For a full list of keywords please refer to &lt;a href=&quot;http://www.w3schools.com/js/js_reserved.asp&quot;&gt;JavaScript Reserved Words&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;regular-expressions&quot;&gt;Regular Expressions&lt;/h4&gt;

&lt;p&gt;A regular expression is a sequence of characters that forms a search pattern.&lt;/p&gt;

&lt;p&gt;In JavaScript, regular expressions are often used with the two string methods: search() and replace().&lt;/p&gt;

&lt;p&gt;The structure of a “regular expression” can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/pattern/modifiers;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
An example of a simple search using a regular expression can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var y = &quot;Visit LifeinTECH&quot;;  
var z = y.search(/LifeinTECH/i);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
In this example, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/LifeinTECH/&lt;/code&gt; is the pattern and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;i&lt;/code&gt; is the modifier. The result would be “6”.&lt;/p&gt;

&lt;p&gt;For a full list of JavaScript regular expressions please refer to &lt;a href=&quot;http://www.w3schools.com/jsref/jsref_obj_regexp.asp&quot;&gt;JavaScript RegExp Reference&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;variables&quot;&gt;Variables&lt;/h4&gt;

&lt;p&gt;Variables are named containers. You can store data within a variable and then refer to the data simply by calling the variable. Before you use a variable in a JavaScript program, you must &lt;strong&gt;declare&lt;/strong&gt; it, which is achieved with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;var&lt;/code&gt; keyword.&lt;/p&gt;

&lt;p&gt;An example of a variable declaration, where the variable has no value (technically it has the value of “undefined”), can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var a;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
A few examples of a variable declarations with assigned values can be found below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;var a = 1;  
var b = 2;  
var c = &quot;John Smith&quot;;  
var d = 1 + 1;  
var e = a + b;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
&lt;em&gt;The next part of the JavaScript Series can be found &lt;a href=&quot;/2014/07/22/JavaScript-Part-Two/&quot;&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 10 Jul 2014 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2014/07/10/JavaScript-Part-One/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/07/10/JavaScript-Part-One/</guid>
      </item>
    
      <item>
        <title>Force.com App Platform</title>
        <description>&lt;p&gt;Marc Andreessen famously said &lt;em&gt;“&lt;a href=&quot;http://online.wsj.com/news/articles/SB10001424053111903480904576512250915629460&quot;&gt;Software is Eating the World&lt;/a&gt;”&lt;/em&gt; and I couldn’t agree more!&lt;/p&gt;

&lt;p&gt;Only last month taxi drivers across London came to the scary realisation that their world is changing due to the dominance of Uber (a software company). If taxi drivers aren’t safe from the software revolution, no one is!&lt;/p&gt;

&lt;p&gt;I believe many industries are at a critical turning point and therefore must rapidly evolve or face inevitable extinction. Unfortunately this is easier said than done, especially for enterprise businesses which are historically slow moving but now need to compete with highly agile software companies born out of Silicon Valley.&lt;/p&gt;

&lt;p&gt;So how can IT help enterprise businesses succeed in this new world? I believe a key part of the answer is placing a strategic bet on Platform as a Service (PaaS) and embedding agile software development into company culture (regardless of the industry).&lt;/p&gt;

&lt;p&gt;This is why I have spent the past nine months positioning Force.com as an enterprise application platform for a large enterprise.&lt;/p&gt;

&lt;h4 id=&quot;why-forcecom&quot;&gt;Why Force.com?&lt;/h4&gt;

&lt;p&gt;On the surface, Force.com (owned by Salesforce.com) may seem like an odd choice, why not Microsoft or Google?&lt;/p&gt;

&lt;p&gt;In my opinion there are six key areas that answer this question. Reviewed individually, each area could easily be challenged, however when understood as a whole I believe Salesforce.com have the most compelling, end-to-end PaaS story for the enterprise.&lt;/p&gt;

&lt;h4 id=&quot;1-api-centric-architecture&quot;&gt;1. API-Centric Architecture&lt;/h4&gt;

&lt;p&gt;Salesforce.com was a pioneer in API-Centric Architecture, meaning every Force.com feature and capability has a corresponding API, reducing “lock in” and enabling massive flexibility for developers.
API-Centric design is the cornerstone of what is widely accepted as the next iteration of business development, where having a well-developed API is poised to be the way in which business relationships are established and maintained in a online, 24/7 digital economy (apievangelist.com). This is especially true in a world where everything is connected (people, devices, apps, data, etc).&lt;/p&gt;

&lt;h4 id=&quot;2-rapid-application-development&quot;&gt;2. Rapid Application Development&lt;/h4&gt;

&lt;p&gt;Force.com is a true enterprise Platform as a Service (PaaS), which means your developers can focus on creating amazing applications, instead of worrying about the infrastructure, operating system or middleware.
Any application built on the Force.com PaaS is elastically scalable, secure and compliant, thanks to their industry leading multi-tenant architecture, which handles approximately two billion transactions per day (trust.salesforce.com).
Force.com is the current (JAN-2014) Gartner Magic Quadrant Leader for PaaS.&lt;/p&gt;

&lt;h4 id=&quot;3-declarative-development&quot;&gt;3. Declarative Development&lt;/h4&gt;

&lt;p&gt;Force.com is a declarative development platform, meaning anyone can create complex applications using clicks, not code. This enables the business (not IT) to directly contribute to the creation of applications. It’s estimated that 80% of a Force.com application can be created using declarative development (the other 20% coming from code).
Don’t worry if you’re a true software developer, Force.com has you covered with powerful capabilities such as APEX (JAVA-like language), Visualforce, Mobile SDK and Heroku (which enables endless development opportunities).&lt;/p&gt;

&lt;h4 id=&quot;4-social-integration&quot;&gt;4. Social Integration&lt;/h4&gt;

&lt;p&gt;It’s clear that the future of collaboration is social. The “working out loud” revolution has already changed the consumer world and it’s widely expected that business is next. Force.com is social at its core, leveraging a capability known as Chatter to drive collaboration and provide context to data.&lt;/p&gt;

&lt;h4 id=&quot;5-end-point-agnostic-mobile-optimised&quot;&gt;5. End Point Agnostic (Mobile Optimised)&lt;/h4&gt;

&lt;p&gt;Thanks to the Aura framework, all Force.com applications are end point agnostic, with no additional coding required. For example, if you open a Force.com application in the browser on a PC, you’ll get served a user interface optimised for mouse and keyboard. However if you open the same application on a tablet or smartphone, the experience will instantly optimise for mobile. Essentially, develop once, use everywhere!
Built using Aura, the Salesforce1 Mobile App delivers a native experience to iOS and Android. This, alongside the powerful Mobile SDK and Wear Developer Pack, guarantees you can build the best customer experience, regardless of the end point.&lt;/p&gt;

&lt;h4 id=&quot;6-aggressive-expansion&quot;&gt;6. Aggressive Expansion&lt;/h4&gt;

&lt;p&gt;The AppExchange is a rapidly expanding marketplace (2000+ apps) where anyone can submit or install applications built on the Force.com PaaS (many for free). This covers everything from specific functionality (e.g. eSignatures, etc.) to full applications (e.g. ERP solutions, etc).
Salesforce.com are the market leaders in Sales, Service and Marketing, they are also industry pioneers with their multi-tenant, API-Centric Architecture. This, alongside their aggressive growth and acquisitions (Radian6, ExactTarget, Heroku, EdgeSpring, etc), proves that they are not resting on their laurels.&lt;/p&gt;

&lt;p&gt;Over the next few weeks I’ll dive into some of the details of Force.com, specifically the architecture and key design considerations when positioning as an enterprise application platform.&lt;/p&gt;
</description>
        <pubDate>Sun, 29 Jun 2014 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2014/06/29/Force-Enterprise-Application-Platform/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/06/29/Force-Enterprise-Application-Platform/</guid>
      </item>
    
      <item>
        <title>VF / IE - Rendering Issue</title>
        <description>&lt;p&gt;I recently developed a Force.com application using Visualforce.&lt;/p&gt;

&lt;p&gt;Just like HTML, Visualforce can integrate with any standard web technology or JavaScript framework, enabling the developer to create unique force.com applications, while still leveraging the native capabilities of the platform.&lt;/p&gt;

&lt;p&gt;Like all web development, Internet Explorer remains a constant challenge, especially when using modern web techniques such as HTML5. I have seen countless examples where a page renders perfectly in Chrome, Firefox and Safari, but fails miserably in Internet Explorer.&lt;/p&gt;

&lt;p&gt;Normally, the simplest way to resolve this issue is to define the Internet Explorer document compatibility mode (either via the code or web server). For example, using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;X-UA-Compatible&lt;/code&gt; meta tag:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=Edge&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Unfortunately, this is not an option with Visualforce, as the “X-UA-Compatible” meta tag is automatically stripped by force.com and you have no access to the server configuration.&lt;/p&gt;

&lt;p&gt;As a result, you are forced to either “hack” your code to work with Internet Explorer (not recommended), or you could use a simple APEX class to force the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;X-UA-Compatible&lt;/code&gt; meta tag.&lt;/p&gt;

&lt;p&gt;To start, create the following APEX class (called ieCompatibility):
public class ieCompatibility {&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;public ieCompatibility() {
   Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=Edge');
   }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Once created, switch to your Visualforce page and add the “controller” attribute, calling the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ieCompatibility&lt;/code&gt; APEX class.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;apex:page docType=&quot;html-5.0&quot; controller=&quot;ieCompatibility&quot; standardStylesheets=&quot;false&quot; showHeader=&quot;false&quot; sidebar=&quot;false&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Once saved, reload the page in Internet Explorer.&lt;/p&gt;

&lt;p&gt;If successful, the page should now render as designed. The other great thing about this approach is that you can easily re-use the “ieCompatibility” APEX class, without any negative impact to force.com.&lt;/p&gt;
</description>
        <pubDate>Mon, 21 Apr 2014 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2014/04/21/Visualforce-and-Internet-Explorer-Rendering-Issue/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/04/21/Visualforce-and-Internet-Explorer-Rendering-Issue/</guid>
      </item>
    
      <item>
        <title>Eyefinity</title>
        <description>&lt;p&gt;As a technology enthusiast, I tend to upgrade my PC fairly often. Usually a major upgrade every few years, with minor upgrades along the way.&lt;/p&gt;

&lt;p&gt;Last year I added RAID 0 to my Ivy Bridge system, which delivered some fairly impressive I/O performance (helping to reduce the bottleneck of SATA).&lt;/p&gt;

&lt;p&gt;My current PC system specification is outlined below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI Z77A-GD65 (Intel Z77 Chipset)&lt;/li&gt;
  &lt;li&gt;Intel Core i5 3570K @ 4.3GHz&lt;/li&gt;
  &lt;li&gt;Noctua NH-D14&lt;/li&gt;
  &lt;li&gt;16GB DDR3 Samsung Green (PC3-12800C11, 30nm)&lt;/li&gt;
  &lt;li&gt;Sapphire Radeon HD 7950 OC 3072MB GDDR5 @ 1.1GHz&lt;/li&gt;
  &lt;li&gt;Creative Sound Blaster Recon3D PCI-E&lt;/li&gt;
  &lt;li&gt;2x SanDisk Extreme SSD - RAID 0 (480GB)&lt;/li&gt;
  &lt;li&gt;Samsung SH-B123L/BSBP Blu-Ray&lt;/li&gt;
  &lt;li&gt;OCZ ModXStream Pro 700w Modular PSU&lt;/li&gt;
  &lt;li&gt;Lian Li V1000 Case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;During my last upgrade I also chose to consolidate to a single monitor, thinking that it would help create a clean, minimal setup. This resulted in the purchase of the beautiful Samsung S27A950D 27” 120Hz display, which thanks to its unique design, looked great as a centre piece on my desk.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/eyefinity01.jpg&quot; alt=&quot;My Desk - Before Eyfinity&quot; title=&quot;My Desk - Before Eyfinity&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This setup worked amazingly well and I ended up having my PC, Mac and PS3 connected to the Samsung, which thanks to the 120Hz panel, provided a great 2D and 3D experience.&lt;/p&gt;

&lt;p&gt;Unfortunately there are some negatives to having only one display, specifically screen real estate for coding and video/photo editing. I started to regret not having higher than 1920x1080 resolution (missing my old Apple Cinema Display) and the ability to have multiple full screen applications open side by side.&lt;/p&gt;

&lt;p&gt;As a result, I started investigating multi-monitor options and thanks to the aggressive price reductions over recent months, I discovered a triple monitor setup was now a viable option. This type of setup delivers massive screen real estate (going from one extreme to the other), but also provides the perfect opportunity to test AMD Eyefinity.&lt;/p&gt;

&lt;p&gt;For those who don’t know, Eyefinity is the ability to group multiple monitors into a single large surface (SLS), treated by the OS as a single monitor with a very high resolution. In my case, I was aiming for three 24” 1920x1080 monitors, resulting in an impressive 5760x1080 Eyefinity resolution.&lt;/p&gt;

&lt;p&gt;After a few weeks of research and bargain hunting I purchased three Asus VN247H 24” monitors from Overclockers UK. The full specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Model: Asus VN247H&lt;/li&gt;
  &lt;li&gt;Panel Size: 23.6” - 16:9&lt;/li&gt;
  &lt;li&gt;Resolution: 1920x1080&lt;/li&gt;
  &lt;li&gt;Response Time: 1ms&lt;/li&gt;
  &lt;li&gt;Contrast Ratio: 80000000:1&lt;/li&gt;
  &lt;li&gt;Display Colors: 16.7M&lt;/li&gt;
  &lt;li&gt;Input: 2x HDMI &amp;amp; 1x D-Sub&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The impressive 1ms response time and 7mm super narrow bezel were the main selling points for an Eyefinity setup.&lt;/p&gt;

&lt;p&gt;To ensure that Eyefinity would work correctly with my Radeon HD 7950, I also needed to purchase an Active DisplayPort adaptor. This is critical to enable three monitors with AMD graphics cards, as they require one monitor to be natively connected via DisplayPort. This was an issue for the Asus VN247H 24” which only has HDMI and D-Sub inputs. However, an Active DisplayPort adaptor immediately fixes the issue by converting the input from HDMI to native DisplayPort (for more information head over to the AMD support website).&lt;/p&gt;

&lt;p&gt;Once connected, the Eyefinity setup was ready to go!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/eyefinity02.jpg&quot; alt=&quot;My Desk - After Eyfinity&quot; title=&quot;My Desk - After Eyfinity&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the image, I decided to VESA mount my monitors instead of using the supplied stands. This provides more desk space, as well as enables you to increase the hight of the setup.&lt;/p&gt;

&lt;p&gt;In conclusion, I’ve decided you can never have enough monitors! Triple display has changed the way I use my system, offering a huge amount of real estate when using applications, as well dramatically improving the Windows 8.1 experience. For example, I can now always have the Start Screen on one display, showing live updates and acting as an application launch pad, while the other two displays are still available for “actual work”. This was never possible with the previous setup and therefore resulted in a lot of application switching.&lt;/p&gt;

&lt;p&gt;Finally, it’s worth mentioning games. Although the Eyefinity driver setup is a little basic, it works surprisingly well. Racing games (e.g. F1 2013 and Dirt 3) are definitely a highlight, with the increased width offering a more impressive sense of speed, as well as providing a better perspective when overtaking and defending. The same can be said for first person shooters (e.g. Bioshock Infinite), which deliver a truly immersive experience by offering peripheral vision. The only watch-out in FPS games is the field of vision (FoV), which sometimes needs to be adjusted to cater for the ultra widescreen.&lt;/p&gt;

&lt;p&gt;I was also pleasantly surprised by the number of games that natively support Eyefinity (most modern games in my Steam collection). However, any game that doesn’t have native support, can generally be enabled via a simple patch. I recommend heading over to the &lt;a href=&quot;http://www.wsgf.org/&quot;&gt;Wide Screen Gaming Forum (WSGF)&lt;/a&gt; for more details and some great videos!&lt;/p&gt;

&lt;p&gt;Expect more Eyefinity analysis in the future!&lt;/p&gt;
</description>
        <pubDate>Sun, 20 Apr 2014 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2014/04/20/Eyefinity/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/04/20/Eyefinity/</guid>
      </item>
    
      <item>
        <title>IE Rendering Modes</title>
        <description>&lt;p&gt;Over the weekend I started to build a portfolio website, designed to showcase a work project.&lt;/p&gt;

&lt;p&gt;The website itself was relatively simple, primarily static content providing an overview of the project and a video wall with some training material.&lt;/p&gt;

&lt;p&gt;As the site has minimal content, I decided to follow the current industry trend to create an infinite scroll website. Infinite scroll is definitely not ideal for every scenario, but does offer an efficient way for the user to digest information if you have a linear story (they also look great).&lt;/p&gt;

&lt;p&gt;The website was built using HTML5, CSS3 and JS, leveraging the Bootstrap and jQuery. It’s obviously mobile responsive (thanks to bootstrap), but has no backend CMS.&lt;/p&gt;

&lt;p&gt;As this is a work project it needed to be fully compatible with Internet Explorer (9+) as well Chrome, Firefox and Safari.&lt;/p&gt;

&lt;p&gt;In development (localhost) everything looked great! The website rendered beautifully and after some minor workarounds for Internet Explorer, I was ready to migrate the code to our internal development server (Windows Server 2012, IIS 8.0).&lt;/p&gt;

&lt;p&gt;This is where the trouble started…&lt;/p&gt;

&lt;h4 id=&quot;issue&quot;&gt;Issue:&lt;/h4&gt;

&lt;p&gt;Chrome, Firefox and Safari all looked great, however Internet Explorer failed to render the site correctly. This caught me off guard, as everything I had written was client-side code and therefore I couldn’t understand why migrating from my local machine to the remote web server would cause an issue.&lt;/p&gt;

&lt;p&gt;It turns out Microsoft (in their wisdom) force Internet Explorer to treat local and remote web sites differently, rendering the page using a different compatibility mode. Unfortunately this decision breaks the majority of modern web sites when hosted on a remote web server (e.g. anything other than your local machine).&lt;/p&gt;

&lt;h4 id=&quot;solution&quot;&gt;Solution:&lt;/h4&gt;

&lt;p&gt;Thankfully, once you understand the issue, the resolution is fairly simple. Essentially you need to overwrite the default Internet Explorer compatibility mode to ensure your website is rendered as you would expect when viewing from a remote web server.&lt;/p&gt;

&lt;p&gt;There are two options to achieve this task:&lt;/p&gt;

&lt;h4 id=&quot;option-one---meta-tag&quot;&gt;Option One - Meta Tag:&lt;/h4&gt;

&lt;p&gt;Use a meta tag within your code to force a specific Internet Explorer compatibility mode. The following code snippet should sit directly beneath your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;head&amp;gt;&lt;/code&gt; tag to ensure its effectiveness.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=Edge&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;content&lt;/code&gt; property has multiple options, I would personally recommend using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Edge&lt;/code&gt; which forces each version of Internet Explorer to use its own “standards rendering mode”.&lt;/p&gt;

&lt;p&gt;However, you can also force Internet Explorer to use a specific rendering mode, for example, you may know your code only works using Internet Explorer 7 standards rendering mode:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;content=&quot;IE=9&quot;
content=&quot;IE=8&quot;
content=&quot;IE=7&quot;
content=&quot;IE=5&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Once complete Internet Explorer should render your website as designed.&lt;/p&gt;

&lt;p&gt;Unfortunately the main challenge with this approach is that you must include the meta tag on every page, which is not always feasible. In this scenario the best option is to configure the setting on the web server itself.&lt;/p&gt;

&lt;h4 id=&quot;option-two---meta-switch-on-iis&quot;&gt;Option Two - Meta Switch on IIS:&lt;/h4&gt;

&lt;p&gt;To configure IIS (7.0+) you need to include a custom “HTTP response header”. This can be done by following the steps below:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Click Start, click Administrative Tools, and then click Internet Information Services (IIS) Manager.
2 .In the connections pane, expand the node for the server.&lt;/li&gt;
  &lt;li&gt;Click the Web site where you want to add the custom HTTP response header.&lt;/li&gt;
  &lt;li&gt;In the Web site pane, double-click in the section.&lt;/li&gt;
  &lt;li&gt;Under Actions, click Add.&lt;/li&gt;
  &lt;li&gt;In the Name box, type “X-UA-Compatible”.&lt;/li&gt;
  &lt;li&gt;In the Value box, type “IE=Edge”.&lt;/li&gt;
  &lt;li&gt;Click OK.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once complete, all pages served by this IIS website will be rendered by Internet Explorer using your defined setting.&lt;/p&gt;

&lt;p&gt;I hope that helps!&lt;/p&gt;
</description>
        <pubDate>Wed, 19 Feb 2014 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2014/02/19/IE-Rendering-Modes/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/02/19/IE-Rendering-Modes/</guid>
      </item>
    
      <item>
        <title>Blockchain</title>
        <description>&lt;p&gt;In 2011, &lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;I started exploring the world of cryptocurrency&lt;/a&gt;. My original interest was driven by the political, social and economic implications of digital currency, operating in a world without a central authority.&lt;/p&gt;

&lt;p&gt;However, as I explored the technology deeper, it became clear that blockchain was the real star of the show, with potential that goes beyond just cryptocurrency.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Blockchain is to Bitcoin, what the internet is to e-mail.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This simple sentence highlights the potential of blockchain when you decouple it from Bitcoin. For example, e-mail was a revolution, now the primary communication channel for businesses around the world, however the impact of the internet was far more profound.&lt;/p&gt;

&lt;h4 id=&quot;what-is-blockchain&quot;&gt;What is Blockchain?&lt;/h4&gt;

&lt;p&gt;The blockchain is an open, decentralized ledger, which is best described as a continuously growing list of records (called blocks) that are linked and secured using cryptography.&lt;/p&gt;

&lt;p&gt;The ledger itself is not stored on a single server or data centre. It is distributed via a network of computers (known as nodes), which means that all records are public and therefore verifiable. This model also inherently protects against malicious attack and/or corruption, as there is no central source or single point of failure.&lt;/p&gt;

&lt;p&gt;The blockchain network lives in a state of consensus, one that automatically checks in with itself. All transactions are ordered by grouping them into blocks, each block contains a definite amount of transactions and the hash value of the previous block. Blocks are therefore organized into a time-related chain, that gives the name to the whole system: blockchain.&lt;/p&gt;

&lt;p&gt;It is possible that different nodes on the network may have a slightly different view of the most recent block(s). A consensus protocol (like &lt;a href=&quot;/2013/07/15/Bitcoin-101/&quot;&gt;Bitcoin’s “Proof of Work” algorithm&lt;/a&gt; via &lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;mining&lt;/a&gt;) ensures that these views converge quickly. Once consensus has been reached on a block and new blocks are added, then the probability that this consensus will change reduces to zero very quickly.&lt;/p&gt;

&lt;p&gt;As a result, by following the blockchain from the first block (genesis block) and applying all verified transactions in the correct order, you will arrive at the current state. In Bitcoin, this is what enables each digital wallet to calculate the spendable balance.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;Blockchain is not an easy technology to comprehend and like all new innovations, it will take time for it to become broadly understood, accepted and adopted. If I was going to attempt to describe blockchain in a single sentence, I would state:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Blockchain can be compared to a spreadsheet that has been duplicated across a network of computers, where the network has been designed to continuously update, verify and protect the spreadsheet, without a central authority.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Even with this simplified understanding of blockchain, the potential for broad adoption becomes clear. For example, today blockchain is synonyms with Bitcoin, however I could easily see practical use cases in payments and remittances, supply chain, governance, compliance, auditing, stock trading, identity management, consent and beyond…&lt;/p&gt;

&lt;p&gt;I personally plan to stay closely connected with the blockchain community, watching as the technology and opportunities continue to mature.&lt;/p&gt;
</description>
        <pubDate>Mon, 27 Jan 2014 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2014/01/27/Blockchain/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/01/27/Blockchain/</guid>
      </item>
    
      <item>
        <title>Kerberos Tickets - OS X</title>
        <description>&lt;p&gt;This post is not for everyone, but if you use a Mac and need to access Kerberos-based applications, you should know about Ticket Viewer. Everyone else can ignore!&lt;/p&gt;

&lt;p&gt;Firstly, what is Kerberos? Simply put, it’s a network authentication protocol designed to provide strong authentication for client/server applications by using secret-key cryptography.&lt;/p&gt;

&lt;p&gt;Ticket Viewer, which can be found in “Keychain Access &amp;gt; Ticket Viewer (Command-Option-K)” is a small utility for managing Kerberos tickets. I use it to remove the need for me to individually authenticate when connected to corporate networks.&lt;/p&gt;

&lt;p&gt;You simply need to click “Add Identity” and enter your Kerberos username and password. For example:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Identity: MSWBULL@EMA.WORK.COM
Password: xxx
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;The ticket will have an expiry date and unfortunately OS X will not automatically prompt you to refresh your Kerberos ticket. As a result you will need to manually refresh your ticket periodically.&lt;/p&gt;
</description>
        <pubDate>Thu, 23 Jan 2014 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2014/01/23/Kerberos-Tickets-OSX/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2014/01/23/Kerberos-Tickets-OSX/</guid>
      </item>
    
      <item>
        <title>Pivotal One</title>
        <description>&lt;p&gt;&lt;em&gt;“&lt;a href=&quot;http://online.wsj.com/news/articles/SB10001424053111903480904576512250915629460&quot;&gt;Software is eating the world&lt;/a&gt;”&lt;/em&gt; - Marc Andreessen&lt;/p&gt;

&lt;p&gt;As predicted by Marc Andressen, software continues to disrupt a wide variety of industries, covering everything from retail to health care. This shift has resulted in businesses looking towards Platform as a Service (PaaS) to help rapidly develop and scale new applications.&lt;/p&gt;

&lt;p&gt;I recently spent the afternoon with &lt;a href=&quot;http://www.gopivotal.com/&quot;&gt;Pivotal&lt;/a&gt; in San Francisco, who are an independent entity funded by VMware and EMC. The office was hive of energy as the team worked towards the launch of Pivotal One.&lt;/p&gt;

&lt;p&gt;Pivotal One is an integrated platform that includes a set of application and data services that run on the Pivotal CF PaaS, powered by Cloud Foundry. The goal of this platform is to enable development teams to rapidly build, update and scale applications in the cloud, allowing enterprises to embrace the software revolution.&lt;/p&gt;

&lt;p&gt;At the heart of Pivotal One is &lt;a href=&quot;http://www.cloudfoundry.com/&quot;&gt;Cloud Foundry&lt;/a&gt;, which is an open source cloud computing PaaS developed by VMware, released under the terms of the Apache License 2.0.&lt;/p&gt;

&lt;p&gt;Like &lt;a href=&quot;http://www.heroku.com&quot;&gt;Heroku&lt;/a&gt;, Cloud Foundry is a polyglot platform, enabling developers to consistently use a number of different programming languages on a single platform, while removing the inherit challenges and switching costs that generally accompany a change of development language.&lt;/p&gt;

&lt;p&gt;Cloud Foundry currently supports the following runtimes/frameworks:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Java&lt;/li&gt;
  &lt;li&gt;Ruby&lt;/li&gt;
  &lt;li&gt;Node.js&lt;/li&gt;
  &lt;li&gt;Scala&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As well as the following services:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MySQL - Open-source relational database management system.&lt;/li&gt;
  &lt;li&gt;vFabric Postgres - Open source object-relational database management system.&lt;/li&gt;
  &lt;li&gt;MongoDB - Cross-platform document-oriented database system.&lt;/li&gt;
  &lt;li&gt;Redis - Open-source, networked, in-memory, key-value data store.&lt;/li&gt;
  &lt;li&gt;RabbitMQ - Open source message broker software.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cloud Foundry can also be deployed to different clouds (e.g. AWS, OpenStack), including behind the corporate firewall on VMware vSphere. This portability is a key differentiator (especially when compared to Heroku), delivering the advantages of PaaS, but on infrastructure of your choice.&lt;/p&gt;

&lt;p&gt;It’s this power, flexibility and scalability that makes Pivotal CF the perfect core to enable the broader Pivotal One application and data services. I believe this value proposition is unique in the industry and therefore puts Pivotal in a very strong position.&lt;/p&gt;

&lt;p&gt;The Pivotal One services focus on apps, data and analytics. These include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Pivotal HD - The widely adopted enterprise distribution of Apache Hadoop.&lt;/li&gt;
  &lt;li&gt;Pivotal AX - Providing automatic analytic instrumentation.&lt;/li&gt;
  &lt;li&gt;RabbitMQ - The leading open source enterprise messaging system.&lt;/li&gt;
  &lt;li&gt;MySQL Service – Provisioning of multi-tenant, single instance MySQL databases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many of the services are already mature and available for use today, providing a strong starting point for Pivotal One. However, I believe this is just the beginning and I expect to see other interesting services being introduced over time, as Pivotal One gains momentum.&lt;/p&gt;

&lt;p&gt;Overall I’ve been very impressed with Pivotal. The company culture is agile at its core and the team are clearly passionate and energised. In my experience this is a rare combination, where you have the right people, given the right environment to do something amazing!&lt;/p&gt;

&lt;p&gt;As a result I’m confident that Pivotal One is more than clever marketing, with a real opportunity to disrupt the industry! I’ll be watching the progress of Pivotal closely and look forward to seeing how the industry reacts.&lt;/p&gt;
</description>
        <pubDate>Wed, 13 Nov 2013 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2013/11/13/Pivotal-One/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/11/13/Pivotal-One/</guid>
      </item>
    
      <item>
        <title>Kinect 2.0</title>
        <description>&lt;p&gt;I recently got the opportunity to check out the new Kinect (bundled with the Xbox One) using a pre-release version of the “&lt;a href=&quot;http://www.microsoft.com/en-us/kinectforwindows/&quot;&gt;Kinect for Windows SDK&lt;/a&gt;”. Although I don’t plan to buy a Kinect for gaming, I can certainly see a lot of advantages to this technology in business, especially the retail sector.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kinect01.jpg&quot; alt=&quot;Microsoft HQ - San Francisco&quot; title=&quot;Microsoft HQ - San Francisco&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Microsoft team demonstrated a number of the new capabilities, covering everything from multiple users, fine hand gestures, face tracking and even heart rate monitoring. It was all very impressive and looked great! There were a number of occasions where the framerate dropped (sometimes significantly), however this was likely due to the pre-release software.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/kinect02.jpg&quot; alt=&quot;Kinect 2.0&quot; title=&quot;Kinect 2.0&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my opinion Kinect is the key device driving Natural User Interface (NUI) design, thanks to its relative low cost and global availability. We have already seen some amazing demos where Kinect is being used in shop windows to entice customers. I believe this has huge potential, for example, fashion retailers could allow customers to virtually try on items and even purchase them before they even enter the store (my kind of shopping).&lt;/p&gt;

&lt;p&gt;I believe the best vision of this concept was shown in Minority Report, where “Kinect-like” sensors are used to identify the user and personalise advertisements in shop windows.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/uiDMlFycNrw?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;With Kinect 2.0 this fiction becomes a reality!&lt;/p&gt;

&lt;p&gt;In my opinion the only disappointment is that Microsoft have not found a way to integrate Kinect with their own services. For example, I believe Windows 8 would have been a great opportunity to push the boundaries of NUI, showing how Kinect can enhance the user experience. The same can be said for services such as Skype and Lync, which are perfectly suited for Kinect.&lt;/p&gt;

&lt;p&gt;When I asked this question, Microsoft gave a cryptic response, but alluded to the fact that tighter Kinect integration is coming. Unfortunately this is the sort of answer you give when you have no real answer. With that said, whether Microsoft proactively drive Kinect integration (my preference) or they wait for the developer community to do it for them, I’m confident NUI will play an important role in the future.&lt;/p&gt;

&lt;p&gt;The new Kinect for Windows SDK is expected to be available soon, after the public release of the Xbox One in November. It’s then down to the developers to take advantage of these new capabilities. I can’t wait to see what they come up with!&lt;/p&gt;
</description>
        <pubDate>Thu, 07 Nov 2013 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2013/11/07/Kinect-2/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/11/07/Kinect-2/</guid>
      </item>
    
      <item>
        <title>Quid</title>
        <description>&lt;p&gt;I was recently in the US with the &lt;a href=&quot;http://lef.csc.com/&quot;&gt;Leading Edge Forum&lt;/a&gt; touring a number of technology companies across silicon valley. One of the people I met was Sean Gourley who is the co-founder and CTO of &lt;a href=&quot;https://quid.com&quot;&gt;Quid&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Quid is a company that is building software to enable people to see patterns and extract meaning from data. In principle this sounds simple, but in the information age data is endless and constantly growing, making it increasingly difficult for people and companies to harness data and generate valuable insights.&lt;/p&gt;

&lt;p&gt;I was very impressed with the technology, but I was equally impressed by Sean’s story, which explained how and why he chose to start Quid. Thankfully in 2009 Sean shared this story during a TED Talk, which I highly recommend you watch.&lt;/p&gt;

&lt;p&gt;As Sean is a trained physicist, much of the maths he described during our meeting was beyond me, however his passion, dedication and humanitarian nature were hard to ignore.&lt;/p&gt;

&lt;p&gt;The video below highlights how Quid is being used by telecos to solve the “dumb pipe” problem.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/vi5HRRkrwWc?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;As companies continue to struggle with the challenges of “big data”, I can see tools such as Quid being critical for businesses who want to remain ahead of the game. In fact, I would go as far to say that without software like Quid, companies will be unable to adapt to the ever changing business landscape. Our “Minority Report” future is closer than we think!&lt;/p&gt;
</description>
        <pubDate>Sun, 03 Nov 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/11/03/Quid/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/11/03/Quid/</guid>
      </item>
    
      <item>
        <title>STOIC</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://stoic.com&quot;&gt;STOIC&lt;/a&gt; is an interesting product that came from Kickstarter (raising $63,450). It enables you to turn your standard spreadsheets into apps for use on any web or mobile device.&lt;/p&gt;

&lt;p&gt;The entire process is automated, simply select your spreadsheet and have STOIC automatically analyse your data to deliver an appropriate database and user interface. This is made possible because the guys at STOIC know that the majority of spreadsheets have common data types, specifically: names, addresses, currency, etc. As a result STOIC can take this data and enhance it, for example produce a Google map for the addresses.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/stoic.png&quot; alt=&quot;STOIC&quot; title=&quot;STOIC&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Any data type that STOIC does not automatically understand can be enhanced by the user in a few simple clicks. Therefore spreadsheets can quickly become beautiful, customisable apps, that are optimised for any device.&lt;/p&gt;

&lt;p&gt;The premise of STOIC is simple; everyone can now create apps, without typing a single line of code. This concept is clearly intriguing as many businesses (large and small) are run from Excel spreadsheets, therefore being able to unlock this data and make it mobile is an interesting value proposition.&lt;/p&gt;

&lt;p&gt;STOIC is available in a number of different deployment options, including cloud and as a virtual machine for on premise use. The price ranges from $125 USD p/m for 6 users, up to $1000 USD p/m for 48 users.&lt;/p&gt;

&lt;h4 id=&quot;do-i-believe-stoic-has-a-future&quot;&gt;Do I believe STOIC has a future?&lt;/h4&gt;

&lt;p&gt;The technology is impressive and I definitely like the concept. However, the solution reminds me of failed projects such as Dabble DB and the STOIC premise of “everyone can now create apps” is very similar to the “Citizen Developer” positioned by companies such as Salesforce.com and Microsoft.&lt;/p&gt;

&lt;p&gt;As a result I can see STOIC getting squeezed by some very well established names, which may impact their ability to gain momentum in the market. This makes me wonder if their technology will eventually be purchased and assimilated into another product, for example imagine this technology integrated with Microsoft Windows Phone App Studio.&lt;/p&gt;
</description>
        <pubDate>Wed, 30 Oct 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/10/30/STOIC/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/10/30/STOIC/</guid>
      </item>
    
      <item>
        <title>Bromium</title>
        <description>&lt;p&gt;Over the past week I have been touring Silicon Valley with the &lt;a href=&quot;http://lef.csc.com/&quot;&gt;Leading Edge Forum&lt;/a&gt; speaking with a number of technology companies.&lt;/p&gt;

&lt;p&gt;One person that I spoke with was Simon Crosby, who is co-founder and CTO of &lt;a href=&quot;http://www.bromium.com/&quot;&gt;Bromium&lt;/a&gt;. Simon has an impressive resume, having worked at Intel, co-founded &lt;a href=&quot;http://www.xensource.com/&quot;&gt;XenSource&lt;/a&gt; and later acting as CTO at Citrix.&lt;/p&gt;

&lt;p&gt;His latest venture with Bromium is focused on end-point security and I believe he may be on the verge of revolutionising the industry (again).&lt;/p&gt;

&lt;p&gt;The Bromium premise is that client security is fundamentally flawed, as traditional anti-malware techniques are reactive, not proactive, and therefore can never be 100% effective. As a result they have changed the paradigm by developing a solution that enables end-points to protect themselves without requiring signatures or updates.&lt;/p&gt;

&lt;p&gt;The solution itself is known as vSentry and is built on the Bromium Microvisor which is a Xen-based, security-focused hypervisor designed to automatically and invisibly hardware-isolate each vulnerable or untrusted user task.&lt;/p&gt;

&lt;p&gt;For example, when the user starts a new task (e.g. opens a browser tab) the Microvisor instantly creates a new micro-VM in hardware. Any malware entering a micro-VM cannot modify the operating system or gain access to any data or network infrastructure. Therefore enabling proactive security and safety for the end-point.&lt;/p&gt;

&lt;p&gt;If the user task requires access to files, networks, devices or the clipboard, the hardware interrupts execution and passes control to the Microvisor, which applies task-specific policies on a strictly “need-to-know” basis, ensuring security is maintained.&lt;/p&gt;

&lt;p&gt;The diagram below highlights the Microvisor / micro-VM approach:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/bromium.png&quot; alt=&quot;Bromium&quot; title=&quot;Bromium&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my opinion this is the future of end-point security, where hardware-enforced isolation is used to stop previously undetectable attacks without disrupting the user experience. Unlike traditional security methods, this approach could deliver a 100% secure environment, covering all potential vulnerabilities.&lt;/p&gt;

&lt;p&gt;The main issue with this approach is legacy infrastructure, as a system running vSentry could still infect non-vSentry end-points. Therefore at least in the short term users will likely require traditional malware protection to ensure total coverage of their environment.&lt;/p&gt;

&lt;p&gt;Bromium vSenetry is currently available for Windows 7/8 and OS X, running Intel hardware (leveraging Intel VT technology). However it is also being tested for AMD and ARM processors and other operating systems such as Linux and Android.&lt;/p&gt;
</description>
        <pubDate>Sun, 27 Oct 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/10/27/Bromium/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/10/27/Bromium/</guid>
      </item>
    
      <item>
        <title>New iPad Air</title>
        <description>&lt;p&gt;Today Apple officially revealed the new iPad, know as the iPad Air. Unsurprisingly it’s faster, smaller and lighter, however does not include Touch ID which was recently introduced with the iPhone 5S.&lt;/p&gt;

&lt;p&gt;I happened to be in San Francisco during the announcement and my hotel was opposite the Yerba Buena Center. I therefore snapped a quick image before I set off for work (the calm before the storm).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/yerbabuenacenter.jpg&quot; alt=&quot;Yerba Buena Center&quot; title=&quot;Yerba Buena Center&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alongside the iPad Air, Apple also announced a new iPad Mini with Retina Display. This is arguably a bigger deal than the iPad Air, as it now competes spec-for-spec against the Nexus 7 and Amazon Kindle range. The iPad Mini also receives the same 64-bit A7 processor, making it a viable alternative to its bigger brother and less like “the cheaper option”.&lt;/p&gt;

&lt;p&gt;Other announcements included the new MacBook Pro with Retina Display, with the main change being the move to Intel’s Haswell architecture. Expect better performance, with longer battery life! The 13-inch model also got a minor redesign which is slightly slimmer and lighter, as well as now including a 16GB RAM build to order option (something I was personally hoping for).&lt;/p&gt;

&lt;p&gt;Finally, Apple officially launched OS X 10.9 Mavericks, which can be downloaded now for free from the Mac App Store. Apple have been dropping the price of OS X updates over the past few years and we have now hit the inevitable free upgrade for all. This is actually incredible, when you consider that a similar upgrade from Microsoft costs £100+. This is one of the advantages of Apple’s “vertical model”, where they can subsidise the cost of software with the sale of hardware. Expect a review of OS X 10.9 Mavericks soon.&lt;/p&gt;

&lt;p&gt;For more information on all the announcements I suggest you head over to &lt;a href=&quot;http://www.theverge.com&quot;&gt;The Verge&lt;/a&gt; or &lt;a href=&quot;http://www.macrumors.com&quot;&gt;MacRumors&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Tue, 22 Oct 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/10/22/New-iPad-Air/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/10/22/New-iPad-Air/</guid>
      </item>
    
      <item>
        <title>Apple USB Restore Key</title>
        <description>&lt;p&gt;I’m always on the lookout for a small, quality USB drive that can survive the punishment of being attached to my keys. I don’t really need high capacity or speed, simply a device that can made available at a moments notice in meetings, etc.&lt;/p&gt;

&lt;p&gt;Unfortunately the majority of USB drives I have tried over the years tend to fail within the first few weeks, normally with the clip breaking, resulting in a lost drive.&lt;/p&gt;

&lt;p&gt;Thankfully there is one USB drive that meets my needs perfectly! The Apple USB Restore Key that was provided with every Mac notebook during OS X 10.6 Snow Leopard era.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/appleusbkey.jpg&quot; alt=&quot;Apple USB Restore Key&quot; title=&quot;Apple USB Restore Key&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The drive is very small, with a strong enough clip to ensure it won’t break easily. Best of all it looks great and I happen to have four of them!&lt;/p&gt;

&lt;p&gt;The primary purpose of this drive was to provide a restore image of OS X and iLife. However, the need for this drive has now been replaced by the Mac App Store and standard recovery partition. The one issue is that by default Apple lock the drive so that it can’t be erased. Thankfully the unlocking process is very simple!&lt;/p&gt;

&lt;p&gt;Ironically, to proceed you will need access to a Windows PC (either physical or virtual). I completed the process using Windows 8.1 running on &lt;a href=&quot;http://www.vmware.com/uk/products/fusion/&quot;&gt;VMware Fusion 6&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;You will need to download and launch a free Windows application called “&lt;a href=&quot;http://adfoc.us/13900123667753&quot;&gt;sm32Xtest.exe&lt;/a&gt;”.&lt;/li&gt;
  &lt;li&gt;Once complete insert the Apple USB Restore Key.&lt;/li&gt;
  &lt;li&gt;You should see the drive appear in one of the Ports (probably Port 1). If the drive does not appear automatically click “Scan USB”.&lt;/li&gt;
  &lt;li&gt;Click the “Start” button (top right).&lt;/li&gt;
  &lt;li&gt;The drive will now be unlocked.&lt;/li&gt;
  &lt;li&gt;Once complete you can erase the drive like normal, for example using Disk Utility on the Mac.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s it! You now have a great USB drive available for use.&lt;/p&gt;
</description>
        <pubDate>Mon, 07 Oct 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/10/07/Apple-USB-Restore-Key/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/10/07/Apple-USB-Restore-Key/</guid>
      </item>
    
      <item>
        <title>Leap Motion</title>
        <description>&lt;p&gt;Over the past few years we have seen a number of companies attempt to position a new human interface device. For example, natural language voice (like Siri), motion sensing (like Kinect) and most notably multi-touch (across a number of different device types).&lt;/p&gt;

&lt;p&gt;I think it’s fair to say that only multi-touch has been a true success, dominating the smartphone and tablet markets, but even with this momentum multi-touch has failed on the traditional desktop. As a result the trusty keyboard and mouse continues to rule supreme.&lt;/p&gt;

&lt;p&gt;However, in May 2012 a new contender entered the market, known as the &lt;a href=&quot;https://www.leapmotion.com/&quot;&gt;Leap Motion Controller&lt;/a&gt;. This simple device is similar in concept to Microsoft’s Kinect, but instead of working in the living room, it’s been specifically designed for a closed environment, such as your desk.&lt;/p&gt;

&lt;p&gt;A few months ago I received my Leap Motion Controller and I’ve been using it on and off since then on my PC and Mac. As a result I thought it was about time I shared some of my initial thoughts.&lt;/p&gt;

&lt;p&gt;Let’s get the big question out of the way first. Can the Leap Motion Controller replace the traditional keyboard and mouse? The short answer is no, at least not yet.&lt;/p&gt;

&lt;p&gt;The Leap Motion controller is about the size of a stick of gum and connects to a PC or Mac via USB 2.0.&lt;/p&gt;

&lt;p&gt;The installation is fast and painless, with a simple driver installation for your chosen platform. At which point the Leap Motion becomes available for use as an input device (for compatible software).&lt;/p&gt;

&lt;p&gt;Leap Motion have (thankfully) realised that new hardware is only as good as the software that uses it, therefore they have launched their own application store known as the “AirSpace Store”. Here you will find hundreds of applications for Mac and PC (free and paid) that support the Leap Motion controller.&lt;/p&gt;

&lt;p&gt;I have tested a number of the available applications, ranging from simple games to computer controls and productivity apps. My main finding is that the quality of these these applications varies massively. Some, like “Cut the Rope” work very well, adjusting perfectly to the Leap Motion Controller. Unfortunately others, like many of the Computer Control applications are less successful and require a steep learning curve. For example, I tried “BetterTouchTool” for Mac and “Touchless for Windows” and although both are functional, I found them to be more frustrating than useful. In my opinion it worked a little better in the Windows environment, simply because Windows 8.1 is more touch friendly than OS X, however neither option is something I could recommend for daily use.&lt;/p&gt;

&lt;p&gt;To be clear, the issue is not the hardware. The Leap Motion Controller works great! It’s responsive, sensitive and accurate. The issue is that most software (like OS X) was not designed to use this type of control mechanism and as a result everything feels a little forced.&lt;/p&gt;

&lt;p&gt;I’m sure this experience will change over time and I’m confident that as new software is released that is specifically designed for the Leap Motion Controller it will really shine. Unfortunately I don’t see OS X or Windows ever truly supporting this control mechanism. Therefore it will likely always be relegated for specialist software and not as a replacement for the traditional keyboard and mouse.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/leapmotion.jpg&quot; alt=&quot;Leap Motion&quot; title=&quot;Leap Motion&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall the Leap Motion Controller is a great piece of hardware! It looks great and has impressive design and build quality. The drivers for PC and Mac also seem to work well, with no obvious limitations. This leaves the main challenge being software. Thankfully this is something that the developer community and time will hopefully fix. Therefore I plan to keep a close eye on the Leap Motion Controller as I eagerly await its “killer app”.&lt;/p&gt;
</description>
        <pubDate>Sun, 06 Oct 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/10/06/Leap-Motion/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/10/06/Leap-Motion/</guid>
      </item>
    
      <item>
        <title>vi Cheat Sheet</title>
        <description>&lt;p&gt;Every IT professional has a favourite text editor. However, sometimes you simply need to make a quick modification to a file, without leaving the terminal (especially when working via SSH). In this scenario, vi remains a popular choice.&lt;/p&gt;

&lt;p&gt;vi is a screen-oriented text editor originally created for Unix, which means it is also available on Linux and Mac OS X.&lt;/p&gt;

&lt;p&gt;vi has two modes “Command Mode” and “Insertion Mode”.&lt;/p&gt;

&lt;h3 id=&quot;command-mode&quot;&gt;Command Mode&lt;/h3&gt;

&lt;p&gt;vi launches in command mode, allowing for cursor movement, text deletion and pasting.&lt;/p&gt;

&lt;h4 id=&quot;movement&quot;&gt;Movement:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;h = Move left  
j = Move down  
k = Move up  
l = Move right  
H = Move to top  
L = Move to bottom  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;delete-and-undo&quot;&gt;Delete and Undo:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;x = Delete after cursor  
X = Delete before cursor  
:d = Delete current line  
u = Undo last change  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;copy-and-paste&quot;&gt;Copy and Paste:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;yy = Copy line in buffer  
p = Put after cursor  
P = Put before cursor  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 id=&quot;save-and-quit&quot;&gt;Save and Quit:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;:x = Exit, saving changes  
:q! = Exit, ignore changes  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;insertion-mode&quot;&gt;Insertion Mode&lt;/h3&gt;

&lt;p&gt;Insertion mode begins once an insertion key is pressed. Press the “ESC” key to return to command mode.&lt;/p&gt;

&lt;h4 id=&quot;insert&quot;&gt;Insert:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;a = Append after cursor  
i = Insert before cursor  
r = Replace one character  
R = Replace many character  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
The majority of commands execute immediately, excluding the “colon” commands, which execute after the “Return” key is pressed.&lt;/p&gt;
</description>
        <pubDate>Mon, 12 Aug 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/08/12/Vi-Cheat-Sheet/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/08/12/Vi-Cheat-Sheet/</guid>
      </item>
    
      <item>
        <title>Nexus 7</title>
        <description>&lt;p&gt;Over the past year I have been eagerly anticipating the launch of a 7-inch high resolution tablet. I had money in my pocket and was ready to spend, knowing that this would likely be the perfect device to fit between my smartphone (iPhone 5) and notebook (13” MacBook Pro Retina). I fully expected this device to be an iPad Mini with Retina Display.&lt;/p&gt;

&lt;p&gt;However, at a special event last Wednesday (24-JUL) Google announced the new &lt;a href=&quot;http://www.google.com/nexus/7/&quot;&gt;Nexus 7&lt;/a&gt; tablet and the following Monday I had one in my hands.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nexus701.jpg&quot; alt=&quot;Google Nexus 7&quot; title=&quot;Google Nexus 7&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Simply put, I believe this may be the perfect tablet! It’s small, light, fast, has an incredible display and great battery life. I also managed to pickup the 32GB model for just $269 (£175), which is about half the price of a comparable iPad Mini in the UK (£349).&lt;/p&gt;

&lt;p&gt;Overall the specification looks great, with the disappointment being that they didn’t include an SD Reader or 802.11ac wireless, however, I then remind myself that the Nexus 7 only cost me £175!&lt;/p&gt;

&lt;p&gt;Having now used the device for a day I can confirm the specification not only looks great on paper, but also in the real world. The display is beautiful and the device has great overall build quality. If I was being picky, the extended head and chin take a little getting used to, but they actually prove helpful when using the tablet in landscape mode.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/nexus702.jpg&quot; alt=&quot;Google Nexus 7&quot; title=&quot;Google Nexus 7&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Whether I’m watching movies (in 1080p) or playing games, the tablet has shown no obvious signs of stress. Occasionally Android “has a moment”, but these appear to be few and far between. It’s fair to say that Android has come a long way since it was first ported to tablets with Honeycomb in 2011.&lt;/p&gt;

&lt;p&gt;Another point worth mentioning is that the Nexus 7 comes pre-installed with Android 4.3 (Jelly Bean) which has a number of new features, such as 4K and OpenGL ES 3.0 support. However the one feature I care most about is TRIM support, which allows the operating system to perform maintenance on the solid state storage, ensuring it stays at peak performance. This is critical, because one of the main complaints of the original Nexus 7 was that it slowed down over time. Hopefully TRIM support will ensure this does not happen with the new Nexus 7.&lt;/p&gt;

&lt;p&gt;In conclusion I would happily recommend the new Nexus 7 to anyone. It’s everything a 7-inch tablet should be and offered at an incredible price (especially if bought from the US). It will be interesting to see how Apple respond with the next version of the iPad Mini (expected in October).&lt;/p&gt;

&lt;p&gt;The new Nexus 7 is out now in the US and expected to hit the UK in August. Head over to the Google Nexus website for more details.&lt;/p&gt;
</description>
        <pubDate>Tue, 30 Jul 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/07/30/Google-Nexus-7/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/07/30/Google-Nexus-7/</guid>
      </item>
    
      <item>
        <title>Bitcoin 101</title>
        <description>&lt;p&gt;In September 2012, the &lt;a href=&quot;https://bitcoinfoundation.org&quot;&gt;Bitcoin Foundation&lt;/a&gt; was launched, with the following mission statement:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“The Bitcoin Foundation coordinates the efforts of the members of the Bitcoin community, helping to create awareness of the benefits of Bitcoin, how to use it and its related technology requirements, for technologists, regulators, the media and everyone else globally.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The creation of this non-profit foundation is an important milestone, as it provides Bitcoin the closest thing to an official public face, with the hope that it will drive additional standardization, protection and education.&lt;/p&gt;

&lt;p&gt;I had previously written the article “&lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;Cryptocurrency&lt;/a&gt;”, which aimed to provide a high-level overview of Bitcoin, however the concept of cryptocurrency and the underlying technologies (e.g. Blockchain) can be complex. As a result, I am always looking for new materials to reference.&lt;/p&gt;

&lt;p&gt;Yesterday, &lt;a href=&quot;https://www.youtube.com/channel/UCOGrxFj_j7PZRQM63OFCwmA&quot;&gt;CuriousInventor&lt;/a&gt; posted an explainer video covering Bitcoin, which I believe is the best end-to-end description to date. The video is 22mins in length, but well worth the time, as it covers everything from transactions to security.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Lx9zgZCMqXE?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Although I would certainly recommend watching the entire video, the explanation of the Bitcoin consensus algorithm (Proof of Work) at the 09:43 mark does a great job of simplifying one of the most confusing parts of Bitcoin.&lt;/p&gt;
</description>
        <pubDate>Mon, 15 Jul 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/07/15/Bitcoin-101/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/07/15/Bitcoin-101/</guid>
      </item>
    
      <item>
        <title>AWS - The Cloud King</title>
        <description>&lt;p&gt;Gartner recently announced their 2013 Magic Quadrant for Cloud Infrastructure as a Service.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/gartneriaasmq2013.jpg&quot; alt=&quot;Gartner IaaS MQ&quot; title=&quot;Gartner IaaS MQ&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Over the years I have reviewed many analyst positioning documents, which usually include at least two players positioned as clear market leaders. Therefore, the dominance of Amazon Web Services (AWS) for Cloud Infrastructure as a Service is quite rare and begs the question… &lt;strong&gt;How have Amazon been so successful?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In my opinion, there are two key factors:&lt;/p&gt;

&lt;p&gt;First, I believe Amazon recognized that simply having great technology would not be enough of a differentiator. Instead they focused on creating an eco-system that promoted organic growth both internally and externally.&lt;/p&gt;

&lt;p&gt;For example, in 2002 Jeff Bezos (Amazon CEO) famously issued an “API Mandate” to all employees. It stated:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;em&gt;All teams will henceforth expose their data and functionality through service interfaces.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Teams must communicate with each other through these interfaces.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;It doesn’t matter what technology they use. HTTP, Corba, Pubsub, custom protocols – doesn’t matter.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Anyone who doesn’t do this will be fired.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Thank you; have a nice day!&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In short, Jeff Bezos was asking every team within Amazon to decouple, define their resources and make them available via an API. In doing so, every team became part of an eco-system, as well as learnt (first-hand) how to maintain, support and scale a suite of services.&lt;/p&gt;

&lt;p&gt;This aggressive positioning of an API-Centric Architecture transformed the culture of Amazon by forcing a new operating model, however it also provided the foundation for Amazon Web Services, which was essentially the process of making the already established eco-system public.&lt;/p&gt;

&lt;p&gt;This leads to the second factor, which was the Amazon “go to market” strategy.&lt;/p&gt;

&lt;p&gt;Traditionally, technology companies (e.g. Microsoft) attempt to license their products and services directly to businesses and/or end users. This model has worked well for many years, but requires a lot of overhead to establish and maintain the account relationships, as well as complete the sale.&lt;/p&gt;

&lt;p&gt;Amazon decided to follow a different business model…&lt;/p&gt;

&lt;p&gt;Thanks to the previously highlighted eco-system and simplified interoperability through APIs, Amazon Web Services has become the default infrastructure for new technology companies. For example, a company like &lt;a href=&quot;https://www.heroku.com&quot;&gt;Heroku&lt;/a&gt; builds a Platform as a Service on Amazon Web Services, which they then sell to businesses and end users.&lt;/p&gt;

&lt;p&gt;As a result, Amazon do not have to establish or maintain a direct relationship with the specific business or end user (inherently reducing overhead). However, they can still achieve continuous growth through payments from the many technology companies (e.g. Heroku) building and scaling on their infrastructure.&lt;/p&gt;

&lt;p&gt;This “indirect” business model is incredibly simple, but also ingenious, as it plays to the strengths of their eco-system and enables growth that would be almost impossible to achieve through direct sales to businesses and/or end users.&lt;/p&gt;

&lt;p&gt;In summary, I fully anticipate companies like Microsoft and (eventually) Google to become key players in Cloud Infrastructure as a Service, however I believe it will be many years before they can truly rival Amazon Web Services.&lt;/p&gt;
</description>
        <pubDate>Mon, 01 Jul 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/07/01/AWS-The-Cloud-King/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/07/01/AWS-The-Cloud-King/</guid>
      </item>
    
      <item>
        <title>Wordpress on Heroku</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://www.heroku.com&quot;&gt;Heroku&lt;/a&gt; is a cloud application platform (AKA Platform as a Service) owned by Salesforce.com.&lt;/p&gt;

&lt;p&gt;Its unique architecture enables users to forget about the infrastructure and instead focus on creating great applications. This makes it an amazing platform for rapid development, while ensuring world class reliability and scalability (millions of users).&lt;/p&gt;

&lt;p&gt;Heroku officially supports Ruby, Java, Node.js, Scala, Clojure and Python, but also unofficially supports PHP. It’s the PHP capabilities that are most interesting to me and what makes the platform ideal for anyone looking to quickly setup an ultra fast, highly scalable WordPress website.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting Started:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fork and rename the &lt;a href=&quot;http://github.com/mchung/wordpress-on-heroku&quot;&gt;Wordpress project template&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let’s clone the repository for a new blog, 99catfacts.com.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone git://github.com/your_name/wordpress-on-heroku.git 99catfacts.com
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Create Wordpress on Heroku.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cd 99catfacts.com
heroku create -s cedar
heroku config:add BUILDPACK_URL=https://github.com/mchung/heroku-buildpack-wordpress.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Deploy your Wordpress site to Heroku.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git push heroku master
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Open your new Wordpress site in a web browser.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;heroku apps:open
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Say hello to your new Wordpress site running on Heroku!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Heroku Considerations:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Something a lot of people forget about Heroku is that it follows the Twelve Factor App design methodology, meaning it includes an ephemeral filesystem. This presents two key challenges.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Challenge:&lt;/em&gt; End-users cannot upload media assets to Heroku.&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;Workaround:&lt;/em&gt; Enable &lt;a href=&quot;https://wordpress.org/support/plugin/wpro&quot;&gt;wpro&lt;/a&gt; and use that plugin to upload media assets to S3 instead.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Challenge:&lt;/em&gt; End-users cannot update themes or plugins from the admin page.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Workaround:&lt;/em&gt; Add them to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;config/public/wp-content/themes&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;config/public/wp-content/plugins&lt;/code&gt; then push to Heroku.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more information about running Wordpress on Heroku, please refer to &lt;a href=&quot;http://mchung.github.io/heroku-buildpack-wordpress&quot;&gt;http://mchung.github.io/heroku-buildpack-wordpress&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 03 May 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/05/03/Wordpress-on-Heroku/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/05/03/Wordpress-on-Heroku/</guid>
      </item>
    
      <item>
        <title>Ubuntu Touch</title>
        <description>&lt;p&gt;In January Canonical revealed Ubuntu Touch, a Linux based operating system designed for mobile devices. I have been eager to test the preview build on my Samsung Galaxy Nexus, but had to wait for the right time as the operating system replaces Google Android and therefore makes the phone unsuitable for daily use (this preview should be considered pre-alpha).&lt;/p&gt;

&lt;p&gt;Before proceeding with the installation it’s important to make a note of your phone’s specification. This will allow you to easily reinstall Google Android once you have finished testing Ubuntu Touch. The UK Samsung Galaxy Nexus specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Name: Samsung Galaxy Nexus&lt;/li&gt;
  &lt;li&gt;Codename: maguro&lt;/li&gt;
  &lt;li&gt;Cellular Technology: GSM/HSPA+ (takju)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The factory Android images for all Nexus devices can be found on the Google Developer website.&lt;/p&gt;

&lt;p&gt;I followed the official guide provided by Canonical to complete the installation of Ubuntu Touch and am pleased to report that the process was relatively quick and simple. Unsurprisingly the guide only provides instructions for installation from Ubuntu desktop (not Windows or OS X), therefore I recommend you install Ubuntu desktop as a virtual machine, instead of attempting to use unofficial guides (I used VMware Fusion for the Mac).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ubuntutouch01.jpg&quot; alt=&quot;Ubuntu&quot; title=&quot;Ubuntu&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once you have Ubuntu desktop up and running it’s simply a case of following the steps defined in the official guide. At a high level this involves rooting your Galaxy Nexus (check out my simple seven step guide) and five terminal commands (easy!). To help, I have uploaded a copy of my installation log.&lt;/p&gt;

&lt;p&gt;The installation took approximately 30mins, but required very little manual intervention. The majority of the time was spent downloading the required Ubuntu Touch image (done automatically). Once complete your device will automatically reboot.&lt;/p&gt;

&lt;p&gt;Below are a few images of Ubuntu Touch in action.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Home Screen:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ubuntutouch02.jpg&quot; alt=&quot;Ubuntu Touch&quot; title=&quot;Ubuntu Touch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Launcher:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ubuntutouch03.jpg&quot; alt=&quot;Ubuntu Touch&quot; title=&quot;Ubuntu Touch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notifications:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ubuntutouch04.jpg&quot; alt=&quot;Ubuntu Touch&quot; title=&quot;Ubuntu Touch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall Ubuntu Touch looks like an interesting operating system that clearly aims to bridge the gap between the desktop and mobile (you can immediately see the similarities with Ubuntu desktop). Unfortunately the operating system still feels very early, with a lot of missing functionality, poor performance and at times, some very strange behaviour. On my Galaxy Nexus the following features were operational, but were not something I would want to use on a daily basis:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Shell and core applications&lt;/li&gt;
  &lt;li&gt;Connection to the GSM network&lt;/li&gt;
  &lt;li&gt;Phone calls and SMS&lt;/li&gt;
  &lt;li&gt;Networking via Wi-Fi&lt;/li&gt;
  &lt;li&gt;Functional camera (front and back)&lt;/li&gt;
  &lt;li&gt;Device accessible through the Android Developer Bridge tool (adb)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With that said, the preview build has never been advertised as the finished product and was designed to provide the opportunity for technology enthusiasts and developers to get an early glimpse at Canonical’s vision. This goal is definitely achieved and it’s clear that they have some great ideas!&lt;/p&gt;

&lt;p&gt;Unfortunately my main concern is not the technology (which I’m confident will be good), but timing. Ubuntu Touch is not expected to be officially released until 2014. At this time will likely be on the verge of iOS 8.0 and Android 6.0, therefore Ubuntu Touch is going to have to be very good on day one, or run the risk of being shadowed by far more mature operating systems. It’s for this reason that I believe Ubuntu Touch will remain a niche product for technology enthusiasts, instead of becoming a direct competitor to Apple and Google.&lt;/p&gt;
</description>
        <pubDate>Sun, 21 Apr 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/04/21/Ubuntu-Touch/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/04/21/Ubuntu-Touch/</guid>
      </item>
    
      <item>
        <title>SanDisk - RAID 0</title>
        <description>&lt;p&gt;Last year I built a new PC based on Intel’s Ivy Bridge architecture. One of the more unusual design decisions was the use of two Solid State Drives running in RAID 0. The main reason for this decision was the fact that I already had two Intel X25-M (G2) drives available, but I also wanted to boost their performance, as individually the X25-M is easily outpaced by modern Solid State Drives. The results of the RAID 0 configuration were impressive, essentially doubling my read / write performance.&lt;/p&gt;

&lt;p&gt;At the time Intel did not support TRIM in RAID, which in theory would impact performance over time. However, after three months of steady use, I confirmed that any performance degradation was minimal.&lt;/p&gt;

&lt;p&gt;I continued to use my RAID 0 setup for many more months without any issues, however with the release of the SanDisk Extreme SSD (offering an incredible price / performance ratio) I decided to upgrade, replacing my two X25-M drives, with one 240GB SanDisk. The performance between my RAID 0 setup and the SanDisk was approximately equal, with the added benefits of a simplified configuration (no RAID), improved resilience and better power consumption.&lt;/p&gt;

&lt;p&gt;That brings me to today, where I have been lucky enough to receive a second 240GB SanDisk Extreme SSD. The question is, do I configure it as a separate drive or return to a more complicated RAID 0 setup? The answer was made simpler with the release of new &lt;a href=&quot;https://matthew-bull.squarespace.com/blog/2012/12/19/ssd-raid-and-trim.html&quot;&gt;Intel Rapid Storage Technology (RST)&lt;/a&gt; drivers, which for the first time enable TRIM for RAID 0 setups. As a result the draw of extra performance (even if it’s not needed) was too great!&lt;/p&gt;

&lt;p&gt;I configured the setup using the default MSI Z77A-GD65 RAID manager using a 128kB stripe size. Once configured I installed Windows 8 Pro x64 and ran CrystalDiskMark to get a feel for the performance improvements. The before and after results can be seen below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before (1x SanDisk Extreme SSD):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sandiskraid01.png&quot; alt=&quot;SanDisk SSD&quot; title=&quot;SanDisk SSD&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After (2x SanDisk Extreme SSD - RAID 0 - 128kB Stripe):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sandiskraid02.png&quot; alt=&quot;SanDisk SSD - RAID 0&quot; title=&quot;SanDisk SSD - RAID 0&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the results, the most impressive increase was the “sequential read” which went from 522.8MB/s to 1057MB/s. The other results such as “512K” and “4K QD32 write” were also very impressive!&lt;/p&gt;

&lt;p&gt;These numbers are great, but will they make any difference in the real world? The answer, it depends on what you are doing, but probably not. Having been using this setup for a couple of days I can confirm that general usage of my PC has not dramatically changed (considering it’s already extremely fast). Therefore, if you already own one fast SSD and are on a budget, then I would not recommend you spend your money on a second.&lt;/p&gt;

&lt;p&gt;With that said, if you have the option for a second SSD, don’t be afraid to configure them as RAID 0. You will see better performance (even if it’s marginal in the real world), but will also double your single drive storage (in my case from 240GB to 480GB) as seen by Windows. This is valuable, considering SSD capacity options are still relatively small, while applications and games continue to increase in size (e.g. Max Payne 3 required a 35GB install). This is also backed-up by the fact that Intel now officially support TRIM with RAID, removing one of the only barriers for this type of setup with Solid State Drives.&lt;/p&gt;

&lt;p&gt;I’ll be sure to post an update in a couple of months, providing additional insight into my RAID 0 setup.&lt;/p&gt;
</description>
        <pubDate>Fri, 29 Mar 2013 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2013/03/29/SanDisk-RAID-0/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/03/29/SanDisk-RAID-0/</guid>
      </item>
    
      <item>
        <title>PlayStation 4</title>
        <description>&lt;p&gt;Last night Sony officially unveiled the PlayStation 4 (PS4). The event took place in New York, but was streamed live via uStream to all countries.&lt;/p&gt;

&lt;p&gt;Sony had an amazing stage, with approximately 1200 people in the audience and over 8million people watching from around the world.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ps4event01.jpg&quot; alt=&quot;PS4&quot; title=&quot;PS4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The focus of the event was definitely on gaming, with the first hour of the presentation outlining the hardware, software and eco-system, while the second hour was reserved exclusively for developers, where we saw a broad number of games including Killzone: Shadow Fall, Drive Club, Watch Dogs, Knack, inFAMOUS: Second Son, Media Molecule’s Demo and many others.&lt;/p&gt;

&lt;p&gt;The hardware itself aligns closely to the developer leaks that we have seen over the past few months, with a couple of exceptions. For example, the device will include an impressive 8GB GDDR5, instead of the previously predicted 4GB. The full specification can be seen below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Eight-core x86 AMD “Jaguar” CPU @ 2.0GHz&lt;/li&gt;
  &lt;li&gt;AMD “Next Generation Radeon” Graphics (1.84 TFLOPS)&lt;/li&gt;
  &lt;li&gt;8GB of GDDR5 (Unified Memory)&lt;/li&gt;
  &lt;li&gt;Hard Drive (Unknown Size)&lt;/li&gt;
  &lt;li&gt;6x Blu-Ray Drive&lt;/li&gt;
  &lt;li&gt;HDMI, Analouge AV, Optical Out, USB 3.0&lt;/li&gt;
  &lt;li&gt;802.11b/g/n, Bluetooth, Gigabit Ethernet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The custom 28nm AMD chip in the PS4 includes both the CPU and GPU. The 8-core CPU is based on the upcoming “Jaguar” design, while the GPU is based on the Radeon 7000 series and is capable of 1.84 TFLOPS of processing power. That’s about 4.5x more powerful than the PS3. For more information on the AMD architecture head over to their blog for the official AMD PS4 press announcement.&lt;/p&gt;

&lt;p&gt;Overall I think the hardware looks great! Sony spoke in depth regarding the challenges (mistakes) made with the PS3 and how they collaborated closely with developers to help design the PS4. This resulted in a new architecture (x86 64-bit), delivering more unified memory (8GB up from 2x 256MB) and a faster Blu-Ray drive (6x up from 2x).&lt;/p&gt;

&lt;p&gt;In theory this should enable easier and faster development, as the PS4 is now closely aligned to traditional PC architecture, as well as allow for simpler use of high resolution textures, due to the ultra-fast and large amount of system RAM. Finally the improvements to the Blu-Ray drive should help reduce long load times when using optical media.&lt;/p&gt;

&lt;p&gt;Interestingly Sony chose not to show the console itself, instead revealing only the controller. Initially I was disappointed by this approach, but in hindsight the “black box” that sits under your TV is mostly irrelevant, it’s everything else that counts!&lt;/p&gt;

&lt;p&gt;The new controller (known as the Dual Shock 4) is an evolution of the Dual Shock 3 (used by the PS3). It does however have a number of new features, such as improved sensitivity (designed in partnership with Guerrilla for FPS games), a touch panel (similar to the PlayStation Vita) and a light bar (similar to the PlayStation Move). The analogue sticks and shoulder buttons have also been redesigned based on feedback from the gaming community.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ps4event02.jpg&quot; alt=&quot;PS4&quot; title=&quot;PS4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, Sony announced that every PS4 will come with a new dual camera and microphone (PS4 Eye), which will interact with the Dual Shock 4 and existing Move controllers. This has a much higher resolution (x2 1280x800 @ 60fps) than the existing PS3 Eye and due to the dual camera capabilities can now track 3D space. By bundling the PS4 Eye with every console it will encourage developers to take advantage of the capabilities, hopefully resulting in more high quality “Move style” games.&lt;/p&gt;

&lt;p&gt;Regarding the software and eco-system. Like with the hardware Sony expressed frustration with the PS3 and how it was “designed in an un-connected world”. They have looked to remedy this with the PS4 by putting connectivity and, more specifically, social at the heart of everything. The best example of this is the new “Share” button on the Dual Shock 4 (pictured above) which allows you to share video (recorded or streaming) and images of any game instantly with your friends. It also enables your friends to comment on the gameplay and even take control of the game to help overcome a particular obstacle. This is all achieved with dedicated hardware built into the PS4 and therefore should have no impact on gaming experience.&lt;/p&gt;

&lt;p&gt;The connectivity and social aspects also expand across the new user interface, with feeds of information updating in real time allowing you to keep in touch with the community. In the demonstrations this reminded me a little of how Windows 8 “Metro” works, with its live tiles. Below are a few high resolution screenshots of the new PS4 user interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Player Profile:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ps4event03.jpg&quot; alt=&quot;PS4&quot; title=&quot;PS4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Home Screen&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ps4event04.jpg&quot; alt=&quot;PS4&quot; title=&quot;PS4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Game Streaming&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ps4event05.jpg&quot; alt=&quot;PS4&quot; title=&quot;PS4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, Sony spent time sharing their vision for Gaikai, which is the streaming gaming service (like OnLive) which they acquired last year. This was probably the most unclear section of the presentation, where Sony did not commit on what features would be available at launch. However they did talk about streaming any game to any platform (e.g. tablets, etc), including streaming from your PS4 to the PlayStation Vita (Remote Play) similar to the recently announced Project Shield from NVIDIA.&lt;/p&gt;

&lt;p&gt;Sony also stated that games being downloaded could be played instantly (before the download finishes) as well as the ability to stream the entire PS1, PS2 and PS3 catalogue to the PS4, as the console itself will not be backwards compatible (as previously suspected). All of these features sound amazing and could be a great unique selling point for the PS4 (unless Microsoft buy OnLive), however I will reserve judgement until we hear more about what will actually be available.&lt;/p&gt;

&lt;p&gt;To conclude, I think Sony have done a great job. The PS4 feels like a rebirth for Sony, where they have gone back to basics and really evaluated some of their past decisions. They also appear to be humbled, no longer the unstoppable gaming giant that they once were and as a result have enlisted the help of the developer community to ensure they get things right. If they can now build on this momentum with strong media (music / video) capabilities, advertising campaign and a competitive launch price then I believe Sony have the potential to dominate this generation!&lt;/p&gt;
</description>
        <pubDate>Thu, 21 Feb 2013 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2013/02/21/PS4/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/02/21/PS4/</guid>
      </item>
    
      <item>
        <title>Root Galaxy Nexus</title>
        <description>&lt;p&gt;This is a quick seven step guide explaining how to root a Samsung Galaxy Nexus running Android v4.2.2 (Jelly Bean). The instructions were created using a Mac, running OS X 10.8.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE: This process will automatically complete a factory reset of the Galaxy Nexus, resulting in a loss of all data. Please complete a full backup before proceeding.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step One:&lt;/strong&gt; Download and unzip the “&lt;a href=&quot;http://downloadandroidrom.com/file/GalaxyNexus/rooting/GalaxyNexusRoot.zip&quot;&gt;GalaxyNexusRoot.zip&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Two:&lt;/strong&gt; On your Galaxy Nexus, enable &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;USB debugging&lt;/code&gt; from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Settings &amp;gt; Developer Options&lt;/code&gt;. The developer options are now hidden by default, but can be enabled by selecting &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Settings &amp;gt; About Phone&lt;/code&gt; and tapping the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Build Number&lt;/code&gt; seven times (yes, you read that correctly).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Three:&lt;/strong&gt; Power down the Galaxy Nexus and restart it by holding volume up, volume down and the power button simultaneously. Keep holding until the the device powers into “fastboot” mode (signified by by Android robot with its stomach open).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Four:&lt;/strong&gt; Connect the Galaxy Nexus to your Mac via USB and open Terminal (Applications &amp;gt; Terminal).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Five:&lt;/strong&gt; Navigate to the unzipped GalaxyNexusRoot folder and run the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;./fastboot-mac oem unlock&lt;/code&gt; (as shown in the screenshot below).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/rootgalaxynexus01.jpg&quot; alt=&quot;Root Galaxy Nexus&quot; title=&quot;Root Galaxy Nexus&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Six:&lt;/strong&gt; The Galaxy Nexus should now prompt you to unlock the bootloader. Select &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Yes&lt;/code&gt; to proceed.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/rootgalaxynexus02.jpg&quot; alt=&quot;Root Galaxy Nexus&quot; title=&quot;Root Galaxy Nexus&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Seven:&lt;/strong&gt; Finally, return to the terminal prompt and type the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;./fastboot-mac boot boot.img&lt;/code&gt; (as shown in the image below). This will install the SuperUser app allowing you to manage superuser rights (if required).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/rootgalaxynexus03.jpg&quot; alt=&quot;Root Galaxy Nexus&quot; title=&quot;Root Galaxy Nexus&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Eight:&lt;/strong&gt; That’s it! Your Galaxy Nexus will now reboot (multiple times) with full root access enabled. Enjoy!&lt;/p&gt;
</description>
        <pubDate>Mon, 11 Feb 2013 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2013/02/11/Root-Galaxy-Nexus/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/02/11/Root-Galaxy-Nexus/</guid>
      </item>
    
      <item>
        <title>Surface for Sales Reps</title>
        <description>&lt;p&gt;Over the past three years the Apple iPad has triggered a revolution for consumer computing. However, due to the “Consumerization of IT”, it has also had a broad impact on how technology is utilised within business, especially for sales teams.&lt;/p&gt;

&lt;p&gt;Historically sales utilised traditional PC’s or hybrid tablets, which almost exclusively ran a version of Windows (normally XP Tablet Edition). Unfortunately these devices were not particularly popular as they were often bogged down by corporate policy and security software, as well as difficult to use when attempting to engage a customer.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/surfacesalesreps01.jpg&quot; alt=&quot;HP Tablet&quot; title=&quot;HP Tablet&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The iPad changed everything, hitting the top ten major requirements to make a successful sales tool:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Instant On&lt;/li&gt;
  &lt;li&gt;Simple to Use&lt;/li&gt;
  &lt;li&gt;High Resolution Display for Presentations&lt;/li&gt;
  &lt;li&gt;Lightweight&lt;/li&gt;
  &lt;li&gt;Durable&lt;/li&gt;
  &lt;li&gt;Elegant Design&lt;/li&gt;
  &lt;li&gt;Secure&lt;/li&gt;
  &lt;li&gt;All Day Battery Life&lt;/li&gt;
  &lt;li&gt;Network Connectivity (3G / 4G)&lt;/li&gt;
  &lt;li&gt;Reduced Support Challenges&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although the iPad excels in the majority of these areas, it does come with its own set of challenges:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Closed Eco-System&lt;/li&gt;
  &lt;li&gt;Consumer Centric Development&lt;/li&gt;
  &lt;li&gt;Rapid Product Life Cycle&lt;/li&gt;
  &lt;li&gt;Unpredictable Hardware and Software Roadmap&lt;/li&gt;
  &lt;li&gt;Incompatible with Existing Enterprise Software and Services&lt;/li&gt;
  &lt;li&gt;Limited Security and Support Options&lt;/li&gt;
  &lt;li&gt;Limited Input / Output Options&lt;/li&gt;
  &lt;li&gt;No Support for Cross Platform Tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Above all, the fact that the iPad is consumer focused device, from a consumer focused company, means that there is little to no support for traditional business software and services. For example, Microsoft Office, SharePoint and Lync, as well as traditional identity and end point management tools such as Active Directory and Symantec Endpoint Management.&lt;/p&gt;

&lt;p&gt;This has resulted in businesses having to bend their existing services to work with the iPad. In many cases this involves investing in a new mobile device management (MDM) platform (e.g. MobileIron) and compatibility software (e.g. SharePlus), as well as focusing a lot of resource time to re-write any “in house” applications (e.g. expense management, etc.)&lt;/p&gt;

&lt;p&gt;Any smart business will have looked at this revolution as a stepping stone towards true platform independence and taken the opportunity to re-position their overall end point strategy to ensure they are ready for a future industry disruptor (e.g. Android, etc.)&lt;/p&gt;

&lt;p&gt;Introducing the Microsoft Surface Pro, could this be the device sales (and business) have been waiting for?&lt;/p&gt;

&lt;p&gt;The Surface Pro is a follow-up tablet that is positioned alongside the Surface RT (released late last year). However the one big different is that the Surface Pro does not run Windows RT, but instead a full unrestricted copy of Windows 8 Pro x64. This means that it is instantly compatible with all existing x86 Windows software and services, as well as retaining compatibility for future “Metro Style” apps. In theory this is the true “no compromise” device that Microsoft promised as part of their “re-imagining Windows” branding.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/surfacesalesreps02.jpg&quot; alt=&quot;Surface Pro&quot; title=&quot;Surface Pro&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The other significant selling point is that the Surface Pro is essentially an UltraBook under the hood. It runs a full Intel “Ivy Bridge” i5 processor, 4GB RAM, up to 128GB of true SSD storage and a USB 3.0 port. What this means is that not only can the Surface Pro be used like a tablet, but also as a full laptop replacement, allowing you to connect a monitor, keyboard and mouse, just like you would today.&lt;/p&gt;

&lt;p&gt;When you break down the specification against the iPad 4 (business focused) it already looks compelling:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/surfacesalesreps03.jpg&quot; alt=&quot;Comparision Table&quot; title=&quot;Comparision Table&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The only real disappointment is the battery life. At only six hours this falls very short of the iPad and could be a show stopper for true “road warrior” sales teams. It is however worth noting that this is one area I expect to improve with the second revision, which we expect to utilise the new ultra power efficient Intel “Haswell” architecture.&lt;/p&gt;

&lt;p&gt;Historically the iPad was a clear winner due to its obvious hardware advantages. Even the business challenges, such as support and management were worth overlooking due to the overall user experience improvements. However, with Surface Pro I think Microsoft have successfully closed the hardware gap and retain their existing advantage with legacy software, services and management support. When you also consider the Surface Pro can act as both a tablet and traditional PC offers broader advantages, meaning that sales teams no longer need to own two separate devices or have to compromise with a single device (e.g. the iPad).&lt;/p&gt;

&lt;p&gt;Overall, if I was pushed to select the best consumer tablet today, I would still pick the iPad (due to the hardware and consumer focused iOS App Store), but I honestly believe we have now hit a tipping point for business use, where the Surface Pro feels like a better overall fit. It will now be interesting to see if Microsoft can capitalise on these advantages and make the Surface Pro a real success!&lt;/p&gt;

&lt;p&gt;Finally, based on the imminent availabilty of the Surface Pro (February 2013) I would recommend that any company that has not yet begun a broad scale iPad deployment, hold fire! Unless of course your strategy is positioned to support “any device”, in which case you are already prepared to take advantage of the Surface Pro.&lt;/p&gt;
</description>
        <pubDate>Fri, 01 Feb 2013 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2013/02/01/Surface-Pro-for-Sales-Reps/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2013/02/01/Surface-Pro-for-Sales-Reps/</guid>
      </item>
    
      <item>
        <title>Cisco ISE Testing</title>
        <description>&lt;p&gt;Cisco Identity Services Engine (ISE) is a security product that enables the creation and enforcement of security and access policies for endpoint devices on a corporate network.&lt;/p&gt;

&lt;p&gt;In my previous article (&lt;a href=&quot;/2012/12/03/Identity-Services_Engine/&quot;&gt;Identity Services Engine&lt;/a&gt;) I provided a brief overview of the technology and shared the design of my test lab. This article will focus on the output of the testing, delivered through seven videos, covering the key capabilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Please note: Although the videos include some terminology and branding from my work, the test lab is generic, with no use of production hardware, software or data.&lt;/strong&gt;&lt;/p&gt;

&lt;h4 id=&quot;access-triggered-by-device&quot;&gt;Access Triggered by Device&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/6curzZxKedo?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;access-triggered-by-user&quot;&gt;Access Triggered by User&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/DAWYSCnEoZg?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;ipad-provisioning&quot;&gt;iPad Provisioning&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/_GdhJ1dCbUM?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;guest-access-wired-and-wireless&quot;&gt;Guest Access (Wired and Wireless)&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/d8k4GeKpye4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;visibility-and-reporting&quot;&gt;Visibility and Reporting&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ZwPoHpMTCH4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;test-lab-overview&quot;&gt;Test Lab Overview&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/G3TFVada58k?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h4 id=&quot;ise-configuration&quot;&gt;ISE Configuration&lt;/h4&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/yVJ-BiI96rM?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Overall, I have been impressed with the capabilities of ISE and believe the product will likely become a core part of the Cisco security suite, focused on access control and policy enforcement.&lt;/p&gt;

&lt;p&gt;The product itself includes an impressive number of features, however this should not be a surprise, as ISE is really a consolidation of existing products and services. Unfortunately, one by-product of this consolidation is complexity, specifically during the initial setup, which can be very painful. Considering my test lab was very small, I think it is safe to assume that this complexity could become a significant barrier on a large corporate network.&lt;/p&gt;

&lt;p&gt;With this in mind, I am not convinced I would recommend ISE for production, instead I would suggest waiting for the product to mature, hopefully resulting in a more intuitive setup process.&lt;/p&gt;

&lt;p&gt;If you do plan to deploy ISE on a production network today, I would urge you to start in “monitor-only” mode, prior to activating any policies. The advantage to this approach is that ISE can still provide end-point visibility and reporting, as well as simulate policy enforcement, but it won’t impact any users. Knowing that ISE could disable every end-point on your network, this approach feels like the safest way to ensure success.&lt;/p&gt;
</description>
        <pubDate>Wed, 12 Dec 2012 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2012/12/12/Cisco-ISE-Testing/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/12/12/Cisco-ISE-Testing/</guid>
      </item>
    
      <item>
        <title>Identity Services Engine</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://www.cisco.com/c/en/us/products/security/identity-services-engine/index.html&quot;&gt;Identity Services Engine (ISE)&lt;/a&gt; is part of Cisco’s Borderless Network Architecture and is an evolution of the Cisco security product range. More specifically it consolidates existing products and services, such as NAC and ACS into one unified platform. The video below provides a brief overview:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/9ZkNxbEfF_U?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;At a high level ISE can be considered an evolution of NAC (Network Access Control), however in my opinion it is much more than that. It includes many new features beyond secure device access, such as on-boarding and policy control, as well as full end point visibility (of every device on your network). It even enables end point posture assessment and seamlessly integrates with the major MDM vendors (such as MobileIron).&lt;/p&gt;

&lt;p&gt;Even with this high level understanding, the possibilities of ISE become clear and with the BYOD craze in full swing, it’s been perfectly timed by Cisco. To backup my thoughts, in the past month Gartner released a research document (Lawrence Orans &amp;amp; John Pescatore) stating that:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“The bring your own device (BYOD) phenomenon, in which employees are being allowed to use their own personal devices for business purposes, will lead to a revival of NAC. We believe NAC will emerge as one of the key mechanisms for providing a flexible approach to protecting the network against the risks of personally owned mobile devices.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This statement is reinforced by their most recent Network Access Control Magic Quadrant, which positions Cisco and ISE as the market leader (just edging out Juniper).&lt;/p&gt;

&lt;h4 id=&quot;testing-identity-services-engine&quot;&gt;Testing Identity Services Engine&lt;/h4&gt;

&lt;p&gt;Over the past few months I have been testing ISE and have now collected enough data to start sharing the output. I will aim to provide an overview of the setup, outline the test plan, as well as demonstrate the service in action. This article will start by outlining the test lab design.&lt;/p&gt;

&lt;p&gt;The aim of the lab setup was to replicate a real world environment, including Active Directory and Certificate Services, as well as wired and wireless access. A high level design diagram can be found below (click to expand):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ise.png&quot; alt=&quot;ISE PoC Design&quot; title=&quot;ISE PoC Design&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the design, the majority of the environment is virtualised using VMware vSphere (ESXi v5.1). This type of configuration enables a quicker, simpler and cheaper setup by consolidating services (you can even use evaluation licences).&lt;/p&gt;

&lt;p&gt;The first ESXi box includes two virtual machines, the first is a standard Windows Server (2008 R2 x64) and will act as our AD, DNS, DHCP and CA. In a real world environment it is likely that this services would be split out, however consolidated will be fine for this small scale lab. The second virtual machine is a simple Linux web server which will replicate network resources. For example, I have configured four web sites (individual IP addresses) that are called:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Internet - Replicating the Internet&lt;/li&gt;
  &lt;li&gt;Corporate - Replicating the Corporate Intranet&lt;/li&gt;
  &lt;li&gt;Resources - Replicating higher security resources (HR, etc)&lt;/li&gt;
  &lt;li&gt;Confidential - Replicating confidential resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These web sites will be used to test and confirm different levels of access (depending on the user and/or device type).&lt;/p&gt;

&lt;p&gt;The rest of the network setup is very simple, with a standard Catalyst switch which will be used to interconnect the devices, as well as for cabled access and a small wireless controller and access point which will broadcast two wireless networks:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;ISE Corporate Demo - Corporate SSID&lt;/li&gt;
  &lt;li&gt;ISE Guest Demo - Guest SSID&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, ISE will also be running in a virtual machine, which is fully supported by Cisco and can be downloaded from their website (Cisco account required).&lt;/p&gt;

&lt;p&gt;The other important part of the design are the scenarios that will be configured. As you can see from the design document, I have outlined the the user, device type, authentication method and level of access granted. This includes both registered and non-registered devices. The aim is to test different users, device types and automatic on-boarding (provisioning) via wired and wireless (single Corporate SSID). Therefore showing the different levels of security and control that can be achieved using ISE.&lt;/p&gt;

&lt;p&gt;This concludes the ISE test lab design and deliverers (with as little as four devices) a standalone environment that replicates a business network. This environment can now be used to safely test and demonstrate the many different capabilities of ISE.&lt;/p&gt;
</description>
        <pubDate>Mon, 03 Dec 2012 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2012/12/03/Identity-Services_Engine/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/12/03/Identity-Services_Engine/</guid>
      </item>
    
      <item>
        <title>SSD RAID 0 Update</title>
        <description>&lt;p&gt;In April, Intel released their next generation processor architecture known as Ivy Bridge, which also coincided with my PC upgrade schedule.&lt;/p&gt;

&lt;p&gt;One of the more unique design choices I made was to go with a RAID0 solid state drive setup. The primary reason for this decision was that I already had two Intel X25-M (G2) drives available and therefore wanted to avoid any unnecessary expenditure, especially as at the time solid state drives were still quite expensive.&lt;/p&gt;

&lt;p&gt;As you are probably aware, RAID0 can offer significant performance improvements (theoretically doubling the read / write speed), however when using solid state drives it does come with a key limitation. Unfortunately when using any type of RAID on Windows you cannot enable TRIM, which is the mechanism used by the operating system to ensure the drive stays in peak performance. Analysis has shown that the performance degradation is not easy to predict, in fact the drive type, operating system and usage will all have a bearing on the overall impact.&lt;/p&gt;

&lt;p&gt;As I have now been using my RAID0 solid state drive setup for approximately three months, I thought it would be useful to re-run the storage benchmarks to see what performance I have lost (if any).&lt;/p&gt;

&lt;p&gt;Before sharing the results, it is worth noting my system specification and usage patterns. The PC is running Windows 7 Ultimate x64 SP1 with all the latest updates and drivers and I have used 142GB of the available 297GB (47%). It is used daily, primarily for manipulating small files and playing the occasional game. All large file storage (media) is backed-up to a Synology NAS and therefore does not impact the RAID. The local disk (RAID0) Windows properties can be seen below:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ssdupdate01.jpg&quot; alt=&quot;SSD RAID 0&quot; title=&quot;SSD RAID 0&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now let’s jump to the before (April) and after (July) benchmark results. As with my previous articles I will use CrystalDiskMark v3.0.1 x64 to validate the performance.&lt;/p&gt;

&lt;h4 id=&quot;before-april-2012&quot;&gt;Before (April 2012):&lt;/h4&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ssdupdate02.jpg&quot; alt=&quot;SSD RAID 0&quot; title=&quot;SSD RAID 0&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;after-july-2012&quot;&gt;After (July 2012):&lt;/h4&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ssdupdate03.jpg&quot; alt=&quot;SSD RAID 0&quot; title=&quot;SSD RAID 0&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the results, the overall performance has maintained very well with the only noticeable change being the “Sequential Read” test which dropped from 586MB/s to 425MB/s. Although this looks like a significant drop, I’m not convinced I would be able to notice this difference in a real world scenario.&lt;/p&gt;

&lt;p&gt;It’s also worth remembering that a single Intel X25-M (G2) drive can only achieve a maximum of 264MB/s sequential read, therefore the RAID0 setup is still significantly faster.&lt;/p&gt;

&lt;p&gt;To conclude, I continue to be happy with the RAID 0 setup, especially when you compare the results to a single Intel X25-M (G2) drive. However I plan to continue to monitor performance as it’s possible that the lack of TRIM support could have a bigger impact as the drive becomes more heavily utilised.&lt;/p&gt;
</description>
        <pubDate>Tue, 17 Jul 2012 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2012/07/17/SSD-RAID-0-Update/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/07/17/SSD-RAID-0-Update/</guid>
      </item>
    
      <item>
        <title>Windows 8 Revisited</title>
        <description>&lt;p&gt;In the article “&lt;a href=&quot;/2011/11/23/The-Windows-8-Dilemma&quot;&gt;The Windows 8 Dilemma&lt;/a&gt;” I raised a couple of concerns about Microsoft’s “touch first” Windows 8 strategy, specifically their unrelenting aim to merge tablet computing with the traditional PC.&lt;/p&gt;

&lt;p&gt;As Microsoft recently released the Windows 8 Release Preview (the final milestone before the final release) I thought I would revisit the operating system to see if any of my concerns have been resolved.&lt;/p&gt;

&lt;p&gt;Before I start, let me say I’m a big fan of the Metro user interface. When Microsoft first announced Windows Phone 7 back in 2010, I was instantly impressed. The user interface was fresh, clean and had a lot of very efficient design elements that made it perfect for touch based devices. Unfortunately Windows Phone 7 was two years too late and even though in many respects it was better then iOS and Android, the lack of good applications and market awareness has resulted in slow sales.&lt;/p&gt;

&lt;p&gt;Even with the slow start for Windows Phone, I (like many others) hoped that Microsoft would bring Metro to the tablet. In my opinion the user interface and “live tile” design would be great, easily rivalling the iPad and completely destroying Android Tablets in terms of usability.&lt;/p&gt;

&lt;p&gt;Interestingly Microsoft decided to go one step further, by making Metro the default user interface for all their future software. This strategy included their flagship product Windows, which has had the same design elements for nearly two decades (staring with Windows 95). As part of this strategy Microsoft also made the decision that a single product should be positioned for the traditional desktop and tablets, essentially having “one operating system to rule them all”. In my opinion this decision was a fundamental error, which I believe could result in a downward spiral for the Windows brand.&lt;/p&gt;

&lt;p&gt;The Metro user interface was designed for touch! It works great when using a touch based device like a smartphone or a tablet. Unfortunately 99% percent of Windows systems today (approximately one billion devices) are not touch. They use (and will continue to use) a physical keyboard and mouse.&lt;/p&gt;

&lt;p&gt;As a result, Metro with its large touch friendly tiles and minimal “swipe enabled” user interface feels cumbersome when attempting to use a keyboard and mouse. This was clearly apparent in the Consumer Preview and in my opinion has shown little improvement in the Release Preview. For example, important functions such as opening and closing applications involve touching or swiping a specific part of the screen. This makes sense on a tablet, but is simply confusing when attempting to use a keyboard and mouse, especially when for 17 years users have been trained to look for a specific button to click.&lt;/p&gt;

&lt;p&gt;The video below is fascinating, it shows a user with no prior knowledge of Windows 8, attempting to use the new operating system for the first time. I expect his reaction to be the same as most users.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/v4boTbv9_nU?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;For many years Microsoft attempted to butcher the classic Windows user interface designed for keyboard and mouse on to a tablet device. The results were disastrous and ended in complete failure. However in many respects Microsoft are making the same mistake again by attempting to take the Metro user interface designed for touch and shoehorn it onto the desktop. It is also worth noting that Microsoft are the only company driving this “one product” strategy. Apple for example have chosen to keep their desktop and mobile operating systems separate, instead hand picking (where it makes sense) certain parts of each operating to migrate across. I believe Apple understand the simple secret:&lt;/p&gt;

&lt;p&gt;“Desktop and mobile are very different environments and therefore require a different user experience. Of course they can have a similarities and even share the same underlining code, but certain things that work for touch, simple don’t work on the desktop and vice versa.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So what does this mean for Microsoft and Windows 8?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My concern is that Microsoft have sacrificed the user experience of their one billion traditional PC customers, in an attempt to capture some of the tablet market. In my opinion this is a very risky (some would say crazy) strategy, by alienating your primary market (your cash cow) in an attempt to capture a new one.&lt;/p&gt;

&lt;p&gt;Personally, I believe the safer more logical strategy would have been to release a separate operating system for tablets, similar to Apple’s approach with iOS. It could have been a Metro style user interface (exactly like Windows RT), but leaving the traditional desktop user interface untouched.&lt;/p&gt;

&lt;p&gt;This approach would still have had it’s share of issues and risk, as getting people to use a Metro tablet would be an uphill battle (like with Windows Phone), but at least Microsoft would still have the respect and confidence of their one billion desktop customers.&lt;/p&gt;

&lt;p&gt;I guess only time will tell if this strategy will pay off. As I have made clear, I have my doubts, but I have also been proven wrong before. I think one thing is clear, this strategy is make or break for Steve Ballmer (Microsoft CEO) and if I was him I would be very worried, as Windows 8 could end up topping Windows Me as the biggest operating system failure in Microsoft’s history!&lt;/p&gt;
</description>
        <pubDate>Fri, 08 Jun 2012 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2012/06/08/Windows-8-Revisited/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/06/08/Windows-8-Revisited/</guid>
      </item>
    
      <item>
        <title>Next PC - Overclocking</title>
        <description>&lt;p&gt;This is the third part in a series of articles documenting my new PC build. I suggest you check out my previous two articles “&lt;a href=&quot;/2012/04/28/Next-PC-Ivy-Bridge/&quot;&gt;Next PC - Intel Ivy Bridge&lt;/a&gt;” and “&lt;a href=&quot;/2012/05/05/Next-PC-Build/&quot;&gt;Next PC - Build&lt;/a&gt;” before proceeding.&lt;/p&gt;

&lt;p&gt;The final phase of the build process is setup and overclocking. When it comes to overclocking I am always interested in finding the best 24x7 settings that balance performance, temperature and sound. It’s always great fun trying to find the maximum achievable performance for each component, but if the system is only stable for a few minutes, or sounds like a hair dryer, then in my opinion it’s already a failure.&lt;/p&gt;

&lt;p&gt;I don’t intend for this article to be an overclocking guide, but I will share any rules that I follow, including any tips and tricks that I have picked up along the way. A great starting point is research, specifically to understand the limits of each of your components. For example, what is the maximum recommended power and heat specification for each component you intend to overclock? The best way to find this information is to head over to the manufacturers website or community forums. You can see the details for my new system below:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77oc01.jpg&quot; alt=&quot;Next PC - Overclocking&quot; title=&quot;Next PC - Overclocking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This information is critical when overcloking as it sets your limits to ensure you don’t damage any of your components. It should be noted that the information above is for air cooling, therefore if you have high end water cooling or are using liquid nitrogen (some people do), then you will likely have a different set of limits (due to the lower temperatures).&lt;/p&gt;

&lt;p&gt;The next step is to start the testing process. For this I make sure I test each component individually (with all other components at default) to find the maximum value for each. I normally start with the processor, moving to the memory and finally the graphics card, however this is personal preference.&lt;/p&gt;

&lt;p&gt;To guarantee a component is stable I normally run a batch of tests that aim to push the system to 100% utilisation (essentially a stress test). Throughout the entire testing process I carefully monitor the voltage and temperature using CPUIDHWMonitor and GPU-Z, as well as look for any unusual behavior (display artifacts, software errors, etc). In my opinion, if a component can pass each test without breaching any of the previously mentioned limits (for example temperature) then it can be considered stable. The batch of tests I complete are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Prime95 (1 hour)&lt;/li&gt;
  &lt;li&gt;SuperPi (32M)&lt;/li&gt;
  &lt;li&gt;3DMARK 11 (Performance Mode)&lt;/li&gt;
  &lt;li&gt;PCMARK 7&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The entire test process takes approximately 2 hours, which can be a pain but is a necessary evil to ensure the system is stable. Once I have found the maximum stable performance / voltage / temperature ratio I normally scale back a touch for my 24x7 settings. At this point I reset to default and move on to the next component. Only once I have data for all the components do I combine the configuration.&lt;/p&gt;

&lt;p&gt;Now you know my process, let’s dive into the overclocking results. Firstly the max stable overclock results, which can be seen in the table below:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77oc02.jpg&quot; alt=&quot;Next PC - Overclocking&quot; title=&quot;Next PC - Overclocking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;One issue with using cutting edge components is that the software is not mature, which unfortunately resulted in an issue with memory compatibility, meaning the system refused to POST at anything above 1600MHz (11-11-11-28 2N). This is disappointing and will probably result in a 5-10% performance impact (when compared to the sweet spot - 2133MHz). I have spoken with MSI regarding the challenge and they expect to have a BIOS update available soon to resolve the issue.&lt;/p&gt;

&lt;p&gt;With that said, the processor and graphics card both achieved very good results. With a 32% increase for the processor and a 33% increase for the graphics card. It should also be noted that the Sapphire HD 7950 OC comes pre-overclocked by 100MHz and therefore this new overclock value can actually be considered a 50% increase over a stock 7950! The load temperatures (Prime95) are a little high for my liking, but the system remained stable and within specification.&lt;/p&gt;

&lt;p&gt;The next set of results show my 24x7 settings. Again the memory remains stock, but the processor and graphics cards see a decent increase, with acceptable temperatures.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77oc03.jpg&quot; alt=&quot;Next PC - Overclocking&quot; title=&quot;Next PC - Overclocking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall this is a 26% increase for the processor and a 22% increase for the graphics card (or 37% increase over a stock 7950). This puts the graphics card above AMD’s current flagship (RadeonHD 7970), which has a default clock speed of 1050MHz and would cost an additional £100.&lt;/p&gt;

&lt;p&gt;For those who are interested I have included screenshots of the BIOS setup and graphics card overclock settings below. It’s key to remember that every component is different and therefore simply copying my configuration may not achieve the same results.&lt;/p&gt;

&lt;p&gt;The first screenshot shows the “Overclocking Setting” page of MSI’sUEFI BIOS. Personally I disable the majority of Intel’s power saving features such as EIST, however you should be able to keep these enabled without impacting your overclock.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77oc04.jpg&quot; alt=&quot;Next PC - Overclocking&quot; title=&quot;Next PC - Overclocking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The second half of the “Overclocking Setting” shows the voltages, that are all set to “Auto” except the VCore which is manually set to 1.250v.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77oc05.jpg&quot; alt=&quot;Next PC - Overclocking&quot; title=&quot;Next PC - Overclocking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally the “CPU Features” page, which are primarily set to “Disabled”. Again this is personal preference, as I am happy to run my system at 100% 24x7, without Intel’s C-State power saving features kicking in.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77oc06.jpg&quot; alt=&quot;Next PC - Overclocking&quot; title=&quot;Next PC - Overclocking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Moving on to the graphics card. Although it’s possible to overclock using the AMD Catalyst Control Center, you don’t get access to the voltages, which is critical if you want to hit the high numbers! This is where the Sapphire proprietary software “TRIXX” comes into play. You can also use Afterburner which is popular tool from MSI that can also be used with other manufacturers graphics cards.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77oc07.jpg&quot; alt=&quot;Next PC - Overclocking&quot; title=&quot;Next PC - Overclocking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;MSI also have a piece of software called “ClickBIOS II” that allows you to modify BIOS settings from within Windows. This apparently works very well, however I’m “old school” and prefer to make my changes directly from the BIOS.&lt;/p&gt;

&lt;h4 id=&quot;benchmark-results&quot;&gt;Benchmark Results&lt;/h4&gt;

&lt;p&gt;There is a good chance you skipped straight to this section. The benchmark results below show my 24x7 settings (outlined above) compared against my old system.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77oc08.jpg&quot; alt=&quot;Next PC - Overclocking&quot; title=&quot;Next PC - Overclocking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the results, the performance increase across the board are quite dramatic. With SuperPi coming in under 8 minutes and a 3DMARK 11 score of 8769! Even the solid sate drives running in RAID0 have shown an impressive increase over the single drive, however without TRIM support it will be interesting to see if this level of performance lasts. For a full breakdown of the results head over to the image gallery.&lt;/p&gt;

&lt;p&gt;That’s it! Overall my new Ivy Bridge PC has been a pleasure to build and I will continue to tweak the setup over the next few months. My hope is that once the platform matures (new BIOS updates and drivers) I will be able to push it a little harder and get even better results, but even now it’s a monster!&lt;/p&gt;
</description>
        <pubDate>Sat, 12 May 2012 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2012/05/12/Next-PC-Overclocking/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/05/12/Next-PC-Overclocking/</guid>
      </item>
    
      <item>
        <title>Next PC - Build</title>
        <description>&lt;p&gt;I’m currently in the process of building a new PC. I’ve been eagerly anticipating the release of Intel’s new Ivy Bridge architecture, specifically the Core i5 3570K processor (the successor to the very popular 2500K Sandy Bridge part). A reminder of the specification can be seen below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI Z77A-GD65 Intel Z77&lt;/li&gt;
  &lt;li&gt;Intel Core i5 3570K (Malaysia, Batch L208B089) + Noctua NH-D14&lt;/li&gt;
  &lt;li&gt;Samsung Green 16GB DDR3 PC3-12800C11 1600MHz 30nm&lt;/li&gt;
  &lt;li&gt;Sapphire HD 7950 OC 3072MB&lt;/li&gt;
  &lt;li&gt;Creative Sound Blaster Recon3D PCI-E&lt;/li&gt;
  &lt;li&gt;2x Intel X25-M (G2) 160GB SSD - RAID 0&lt;/li&gt;
  &lt;li&gt;Samsung SH-B123L/BSBP Blu-Ray&lt;/li&gt;
  &lt;li&gt;OCZ ModXStream Pro 700w Modular PSU&lt;/li&gt;
  &lt;li&gt;Lian Li V1000 Case&lt;/li&gt;
  &lt;li&gt;Logitech Solar Keyboard K750 and Logitech M705 Mouse&lt;/li&gt;
  &lt;li&gt;Samsung S27A950D 27” 120Hz 3D&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With Ivy Bridge becoming officially available in the UK last Sunday (29-APR-2012), I immediately placed my order, which arrived on Wednesday. Since then I have building, overclocking and testing.&lt;/p&gt;

&lt;p&gt;This article aims to provide an overview of the build process, which you can also follow in my step by step gallery. So let’s get started!&lt;/p&gt;

&lt;p&gt;Firstly, the MSI Z77A-GD65 motherboard, utilising Intel’s new Z77 Panther Point chipset. It includes the standard LGA1155 socket, three PCI-E 3.0 x16 slots and native USB 3.0. For overclockers the Z77A-GD65 includes onboard power, reset, O/C Genie control buttons, as well as a handy CLR_CMOS button on the I/O panel. The Z77A-GD65 also includes a two-digit diagnostics display, line voltage detection points, and a dual-BIOS switch.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77build01.jpg&quot; alt=&quot;Next PC - Build&quot; title=&quot;Next PC - Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is my first MSI motherboard (I normally use Asus or Gigabyte), however I have to admit the build quality and feature set is excellent. It’s also worth noting that MSI are using a 10 + 2 phase power design, with two large heatsinks to cover the MOSFETs (connected by a single heatpipe). These heatsinks are significantly larger than what other vendors have used, again demonstrating MSI’s commitment to quality components.&lt;/p&gt;

&lt;p&gt;Next up are the Samsung Green memory sticks. The first thing you will notice is their tiny height, which makes them look more like laptop memory (especially when compared to my existing Corsair XMS2 sticks). I was lucky enough to get 16GB (4x4GB) of this new 30nm memory for just £77, however it has since gone up to £101 (memory prices are notoriously turbulent, so I recommend buy as much as you can while it’s cheap).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77build02.jpg&quot; alt=&quot;Next PC - Build&quot; title=&quot;Next PC - Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Like all memory it was very simple to install, however I do recommend doing so before attaching your CPU cooler (you’ll see why in a second).&lt;/p&gt;

&lt;p&gt;Regarding CPU cooler, meet the monstrous Noctua NH-D14 which I hope will keep my new Ivy Bridge processor in check while overclocking. Although it’s big (160mm high and 1240g) the installation process is very simple and Noctua even include two high performance fans (NF-P14 and NF-P12) and their award winning NT-H1 TIM.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77build03.jpg&quot; alt=&quot;Next PC - Build&quot; title=&quot;Next PC - Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although there are many techniques to applying TIM, I personally use the “grain of rice” approach, which is also recommended by Noctua. The cooler itself has good clearance over the MOSFETs and even provides access to the memory if you remove the outside 120mm fan. With that said, unless you’re buying the Samsung Green, I still recommend you check your memory module height before buying.&lt;/p&gt;

&lt;p&gt;It’s only after the motherboard, CPU and memory are installed that you realise just how big the “dual radiator” Noctua NH-D14 really is (taking up nearly half the motherboard).&lt;/p&gt;

&lt;p&gt;At this point I have also installed the two Intel X25-M (G2) solid state drives, which are mounted in the center of the case to a 5.25” bracket from Lian Li (the BZ-B25A to be exact). I’m also pleased that due to the side mounted ports on the Z77A-GD65 that most of the SATA and power cables can be hidden behind the motherboard tray.&lt;/p&gt;

&lt;p&gt;The final components are the Sapphire HD 9750 OC graphics card and the less exciting Creative Sound Blaster Recon3D (recycled from my previous system). The HD 9750 is a full length PCI-E 3.0 x16 card that requires 2x6-pin power leads. It includes a custom dual fan cooler and dual BIOS, which has been pre-programmed with a high voltage and more aggressive fan profile. To switch the BIOS you simply move the tiny switch on the top of the card to point “2”, as shown in the image gallery.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77build04.jpg&quot; alt=&quot;Next PC - Build&quot; title=&quot;Next PC - Build&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The installation of the 9750 is very simple, although it does sit very close to the Noctua NH-D14 (approximately 10mm clearance).&lt;/p&gt;

&lt;p&gt;The system is now fully built, which includes the addition of two Scythe Gentle Typhoon 120mm (1850RPM) fans at the front and as an exhaust.&lt;/p&gt;

&lt;p&gt;That’s it for “the build”! The next part will outline the setup and overclocking process. I will also include full benchmark results, comparing them against my previous system.&lt;/p&gt;
</description>
        <pubDate>Sat, 05 May 2012 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2012/05/05/Next-PC-Build/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/05/05/Next-PC-Build/</guid>
      </item>
    
      <item>
        <title>Next PC - Ivy Bridge</title>
        <description>&lt;p&gt;Once every few years I give my primary Windows PC a full overhaul. The last time I completed this process was in July 2006, where I was lucky enough to receive an engineering sample of Intel’s legendary “Conroe” architecture. It’s now nearly six years later and although my system has had a number of incremental upgrades (memory and graphics) the primary architecture has remained the same, based around Intel’s 975X chipset and a Core 2 Duo E6700ES.&lt;/p&gt;

&lt;p&gt;Like any hardware enthusiast, I enjoy the process of designing and building a new system, especially the challenge of overclocking. I have never documented a build before, but thought the information I gather could prove useful to others and therefore I plan to write a number articles, starting with the design, followed by the build and finally the overclock configuration. So let’s get started…&lt;/p&gt;

&lt;h4 id=&quot;current-system&quot;&gt;Current System&lt;/h4&gt;

&lt;p&gt;Before starting a new build it’s important to benchmark your current system, this helps get a baseline that can be used later to measure your new systems performance. My current systems specification can be found below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;ASUS P5W DH Deluxe Motherboard (Intel 975x Chipset)&lt;/li&gt;
  &lt;li&gt;Intel Core 2 Duo E6700ES @ 3.0GHz + Scythe Ninja&lt;/li&gt;
  &lt;li&gt;6GB DDR2 Corsair Memory (PC2-6400, 4-4-4-12)&lt;/li&gt;
  &lt;li&gt;AMD Radeon HD 5850 1GB GDDR5&lt;/li&gt;
  &lt;li&gt;Creative Sound Blaster Recon3D PCI-E&lt;/li&gt;
  &lt;li&gt;Intel X25-M (G2) 160GB SSD&lt;/li&gt;
  &lt;li&gt;Plextor PX-755A DVD+-RW (SATA)&lt;/li&gt;
  &lt;li&gt;OCZ ModXStream Pro 700w Modular PSU&lt;/li&gt;
  &lt;li&gt;Lian Li V1000 Case&lt;/li&gt;
  &lt;li&gt;Microsoft 3000 V2 Keyboard and Logitech Nano VX Mouse&lt;/li&gt;
  &lt;li&gt;LG 22” L226WTQ Display (1680x1050)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see from the above specification, my current system still holds its own. I am able to play the majority of modern games set to “medium” or “high” at the monitors native resolution, with acceptable frame rates. For example, Skyrim with the High Resolution Texture Pack installed is perfectly playable at “High” settings with 4x Antialiasing and 8x Anisotropic Filtering. This is obviously helped a lot by the AMD Radeon 5850, but it’s still not bad for a dual core processor that was released in 2006.&lt;/p&gt;

&lt;p&gt;So let’s get some benchmark results:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Windows Experience Score = 6.4&lt;/li&gt;
  &lt;li&gt;3DMARK 11 = P3018&lt;/li&gt;
  &lt;li&gt;PCMARK 7 = 3067&lt;/li&gt;
  &lt;li&gt;SuperPi (32M) = 18m 34s&lt;/li&gt;
  &lt;li&gt;CrystalDiskMark Seq Read / Seq Write = 264.3MBs / 111.9MBs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These numbers will be used as a baseline to calculate the performance increase of the new system.&lt;/p&gt;

&lt;h4 id=&quot;future-system&quot;&gt;Future System&lt;/h4&gt;

&lt;p&gt;The specification below outlines my new system, it is based around Intel’s next generation architecture, known as Ivy Bridge. The items marked with a star are new, with all other components being recycled from my current system.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MSI Z77A-GD65 (Intel Z77 Chipset)&lt;/li&gt;
  &lt;li&gt;Intel Core i5 3570K + Noctua NH-D14&lt;/li&gt;
  &lt;li&gt;16GB DDR3 Samsung Green (PC3-12800C11, 30nm)&lt;/li&gt;
  &lt;li&gt;Sapphire HD 7950 OC 3072MB GDDR5&lt;/li&gt;
  &lt;li&gt;Creative Sound Blaster Recon3D PCI-E&lt;/li&gt;
  &lt;li&gt;2x Intel X25-M (G2) 160GB SSD (RAID 0)&lt;/li&gt;
  &lt;li&gt;Samsung SH-B123L/BSBP Blu-Ray&lt;/li&gt;
  &lt;li&gt;OCZ ModXStream Pro 700w Modular PSU&lt;/li&gt;
  &lt;li&gt;Lian Li V1000 Case&lt;/li&gt;
  &lt;li&gt;Logitech Solar Keyboard K750 and Logitech M705 Mouse&lt;/li&gt;
  &lt;li&gt;Samsung S27A950D 27” 120Hz 3D (1920x1080)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So why have I made these choices? Let’s jump into the details of the key components:&lt;/p&gt;

&lt;h4 id=&quot;motherboard&quot;&gt;Motherboard:&lt;/h4&gt;

&lt;p&gt;As with all computer components (especially first generation parts) there is often not a lot to differentiate between the different vendors. This is the case with Intel’s latest Z77 chipset, where all the main vendors have a full range of boards, of which any one would likely meet your needs. Personally I have chosen the MSI Z77A-GD65, which is their current flagship Z77 motherboard. It includes all the expected “bells and whistles”, for example native USB 3.0 support, PCI Express 3.0 (3x PCI-E 16x) as well as MSI’s Military Class components, which is their guarantee of stability and long life. The motherboard can be seen below:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77ivy01.jpg&quot; alt=&quot;Next PC - Ivy Bridge&quot; title=&quot;Next PC - Ivy Bridge&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The MSI Z77 board may not be the fastest on the market (only 1% or so behind the Asus Z77 boards), but in my opinion it is important to balance performance with stability, as the motherboard is the backbone of the entire system and anyone that has ever worked with an unstable board will know that it can be very frustrating when attempting to achieve a maximum stable overclock.&lt;/p&gt;

&lt;h4 id=&quot;processor&quot;&gt;Processor:&lt;/h4&gt;

&lt;p&gt;There has been a lot of talk on the Internet comparing Intel’s older Sandy Bridge architecture to their new Ivy Bridge architecture. The primary differences between the two are that Ivy Bridge is built around the 22nm fabrication process and includes enhanced integrated graphics (HD4000) and PCI Express 3.0 support. The downside is that due to the maturity of Sandy Bridge, early signs show that the older chip overclockers better, with the current fan favourite (Intel Core i5 2500K) easily achieving 4.8GHz on air.&lt;/p&gt;

&lt;p&gt;Considering I will be using a single dedicated graphics card it is likely that the improved integrated graphics and PCI Express 3.0 will offer little, to no advantage (as a current generation dedicated graphics card would not be bandwidth limited by PCI Express 2.0). However, as I plan to build a system that will see me through the best part of five years, I want to ensure my future options are open, as well as the fact I like a good challenge and am keen to see what I can get out of Intel’s latest and greatest architecture. As a result I went with the likely 2500K replacement, the Intel Core i5 3750K, clocked at 3.8GHz (stock). It’s important to note that the “K” signifies that the chip is multiplier unlocked, therefore providing easy access to overclocking.&lt;/p&gt;

&lt;p&gt;Although this is my choice, it should be noted that if you are looking for the maximum RAW MHz today, then I suggest you continue to look at the older Sandy Bridge architecture, specifically the Intel Core i5 2500K. At least until the Ivy Bridge manufacturing process has matured.&lt;/p&gt;

&lt;p&gt;For more details of the Intel i5 3750K attached tot he MSI Z77A GD65 I recommend you check out the Vortex review.&lt;/p&gt;

&lt;h4 id=&quot;memory&quot;&gt;Memory:&lt;/h4&gt;

&lt;p&gt;When it comes to memory there is currently only one choice, not Corsair, or Crucial, it’s Samsung! The Samsung Green memory is simply outstanding, delivering the first memory modules to utilise a 30nm process that results in 1600MHz DDR3 at an insanely low 1.25v (compared to the industry standard 1.65v). What this means is that the Samsung memory has crazy overclocking potential, with the community easily hitting 2400MHz (11-11-11-28 2N) at just 1.50v.&lt;/p&gt;

&lt;p&gt;The other great thing is that because these chips use the 30nm process they are both tiny (half the size of standard memory) which is great for systems with large CPU coolers and cheaper, where you can currently get 16GB for just £70!&lt;/p&gt;

&lt;p&gt;Although you could argue that anything above 16000MHz is a waste and I personally still believe 8GB is the sweet spot for consumer systems, however with this incredible overclocking potential and knowing that memory prices can fluctuate a lot, I recommend grabbing 16GB immediately.&lt;/p&gt;

&lt;h4 id=&quot;graphics&quot;&gt;Graphics:&lt;/h4&gt;

&lt;p&gt;This is always a tough one, do you go NVIDIA or AMD? Generally this comes back to personal preference and sometimes loyalty (although I have used cards from both manufactures in the past). As it stands today the NVIDIA GeForce 680 holds the performance crown (until tomorrow when NVIDIA will likely announce the GeForce 690). Unfortunately the GeForce 680 does not come cheap (£450+), therefore I am looking for a card that is still high end, has plenty of overclocking potential, but can be picked up for around £300. This led me to the AMD 7950 overlcocked edition from Sapphire. In my opinion this is the current king of overclocking, with a chip that is essentially identical to the 7970 (AMD’s flagship), including the same GPU and 3GB GDDR5 memory (384 bit memory width). The only difference between the two are the clock speeds and the 7950 has less “Stream Processors” enabled.&lt;/p&gt;

&lt;p&gt;However, it is with Sapphires custom dual fan cooler (which is also very quite) where the magic happens as this card can easily surpass a stock 7970 with a simple overclock, which puts it in the same ballpark as the NVIDIA 680 when looking at real world results. Not bad for a £150+ saving (which essentially pays for the processor). The Sapphire HD 7950 OC can be seen below:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/z77ivy02.jpg&quot; alt=&quot;Next PC - Ivy Bridge&quot; title=&quot;Next PC - Ivy Bridge&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I recommend you check out the &lt;a href=&quot;http://www.anandtech.com/show/5476/amd-radeon-7950-review&quot;&gt;Anandtech review&lt;/a&gt; for more details.&lt;/p&gt;

&lt;h4 id=&quot;storage&quot;&gt;Storage:&lt;/h4&gt;

&lt;p&gt;The final upgrade is storage, where for obvious reasons (check my previous article) I will be sticking with Solid State Storage. However this time I will be installing two Intel X25M G2 Solid State Drives running in RAID 0. To be honest this is a bit of an experiment. The reason I am going RAID is that I happen to have two identical Intel drives recycled from other systems. Although RAID 0 should theoretically offer better performance, unfortunately TRIM is not currently supported by this type of setup, therefore although the drives will start fast (very fast) the performance could degrade over time. A lot of this will depend on how well the Intel controllers do with their garbage collection (an unknown at this point). As a result I plan to start in RAID 0 and if performance becomes unacceptable I will switch to a simple JBOD configuration.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion:&lt;/h4&gt;

&lt;p&gt;That’s it! That’s my new system. I have already placed the order and am simply waiting for delivery. As soon as it all arrives (expected on Wednesday) I will post a follow-up article outlining the build process.&lt;/p&gt;
</description>
        <pubDate>Sat, 28 Apr 2012 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2012/04/28/Next-PC-Ivy-Bridge/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/04/28/Next-PC-Ivy-Bridge/</guid>
      </item>
    
      <item>
        <title>Patching vSphere</title>
        <description>&lt;p&gt;In my &lt;a href=&quot;/2012/03/28/Installing-vSphere/&quot;&gt;previous article&lt;/a&gt; I explained the benefits, and walked through the installation, of VMware vSphere Hypervisor (ESXi). The aim of this article is to outline the patching process, to ensure your virtualisation lab is always up to date with the latest bug fixes, security updates and new features.&lt;/p&gt;

&lt;p&gt;Being an enterprise platform, the patching process for the standard (free) version is not immediately obvious. In fact when I first started using the vSphere Client I spent a lot of time hunting for a user friendly update option, I was hoping for something like software update in OS X. Unfortunately this feature simply does not exist, unless you have a fully licensed version with vCenter and Update Manager installed.&lt;/p&gt;

&lt;p&gt;Thankfully, there are multiple ways you can apply new patches (for example vSphere Management Assistant), but in my opinion the easiest option is to use the command line. Initially this might sound scary, but trust me the process is very simple and does not require any special software or knowledge.&lt;/p&gt;

&lt;h4 id=&quot;getting-started&quot;&gt;Getting Started:&lt;/h4&gt;

&lt;p&gt;As always with VMware vSphere, your best bet is to complete this process using a Windows client, as unfortunately OS X and Linux support is still a little hit and miss.&lt;/p&gt;

&lt;p&gt;The first step is to download the patches. To do this head over to the VMware Patch Portal and select “ESXi (Embedded and Installable), 5.0.0”. This will list all the available patch bundles.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/patchingvsphere01.jpg&quot; alt=&quot;Patching vSphere&quot; title=&quot;Patching vSphere&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Download each patch bundle, from the oldest to the newest, but do not unzip them. I recommend creating a folder called “patches”.&lt;/p&gt;

&lt;p&gt;Once complete, launch the vSphere Client and connect to your host. Start by browsing your primary storage, do this by right clicking the specific datastore from the “Summary” tab and selecting “Browse Datastore”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/patchingvsphere02.jpg&quot; alt=&quot;Patching vSphere&quot; title=&quot;Patching vSphere&quot; /&gt;&lt;/p&gt;

&lt;p&gt;From the datastore browser click to upload your newly created “patches” folder.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/patchingvsphere03.jpg&quot; alt=&quot;Patching vSphere&quot; title=&quot;Patching vSphere&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This process may take a few minutes, but once complete all the required patches will be stored on the host, which will make life a lot easier later.&lt;/p&gt;

&lt;h4 id=&quot;enable-the-esxi-shell-and-ssh&quot;&gt;Enable the ESXi Shell and SSH:&lt;/h4&gt;

&lt;p&gt;To enable the ESXi Shell and SSH simply click on the “Configuration” tab, then select “Security Profile” from the “Software” section. Under “Services”, click “Edit”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/patchingvsphere04.jpg&quot; alt=&quot;Patching vSphere&quot; title=&quot;Patching vSphere&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Select “ESXi Shell” and click “Options &amp;gt; Start”. Repeat the process for “SSH”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/patchingvsphere05.jpg&quot; alt=&quot;Patching vSphere&quot; title=&quot;Patching vSphere&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;preparing-vmware-vsphere-hypervisor-esxi&quot;&gt;Preparing VMware vSphere Hypervisor (ESXi):&lt;/h4&gt;

&lt;p&gt;Before initiating the patching you must first shutdown all of your virtual machines and enter maintenance mode. To do this right click your host and click “Enter Maintenance Mode”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/patchingvsphere05.jpg&quot; alt=&quot;Patching vSphere&quot; title=&quot;Patching vSphere&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;appling-patches&quot;&gt;Appling Patches:&lt;/h4&gt;

&lt;p&gt;Now you are ready to connect to the host using SSH. Any SSH client should work, if you don’t already have one I recommend you download Putty (which is free).&lt;/p&gt;

&lt;p&gt;Connect using the host IP address (standard ports) and when prompted enter your username (e.g. root) and password (if set).&lt;/p&gt;

&lt;p&gt;Now apply each patch (oldest to newest) in turn using the following command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;esxcli software vib update --depot /vmfs/volumes/&amp;lt;dataStoreName&amp;gt;/&amp;lt;folderName&amp;gt;/filename.zip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Each patch will take a little while to install, with no indication of progress. Simply wait for the prompt to re-appear.&lt;/p&gt;

&lt;p&gt;Once you have applied all the patches restart the host by typing “reboot”.&lt;/p&gt;

&lt;p&gt;Finally, once your host has rebooted you must exit maintenance mode before restarting your virtual machines. There is no need to disable the ESXi Shell or SSH services as this will be done automatically.&lt;/p&gt;

&lt;p&gt;That’s it! You now have a fully up to date version of VMware vSphere Hypervisor (ESXi). The only other thing to keep an eye on is if any of the patches included a new version of VMware Tools, if so you should update each of your virtual machines using the standard process.&lt;/p&gt;
</description>
        <pubDate>Thu, 05 Apr 2012 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2012/04/05/Patching-VMware-vSphere-5/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/04/05/Patching-VMware-vSphere-5/</guid>
      </item>
    
      <item>
        <title>Installing vSphere</title>
        <description>&lt;p&gt;I’m a heavy user of virtualisation, both client (VMware Fusion) and datacenter (VMware vSphere). Virtualisation delivers a new level of flexibility to computing, allowing you to run multiple operating system environments on a single hardware platform. I think it’s fair to say that virtualisation has had a significant impact in large Enterprise organisations (98% of the fortune 500 use VMware), as well as driven the success of Cloud Computing.&lt;/p&gt;

&lt;p&gt;However, I also believe there is a strong case for virtualisation for single users (personal use). For example, anyone who has a need to test different platforms, software or configurations, should definitely take a look, as virtualisation allows you to quickly “spin up” new virtual machines, without significant hardware requirements.&lt;/p&gt;

&lt;p&gt;The aim of this article is to outline how you can quickly and easily create a virtualisation lab for free, using “Enterprise Ready” tools from VMware. I will specifically be using VMware vSphere 5.0, which is the industry-leading virtualization platform, that utilises a “bare-metal” hypervisor (ESXi), meaning it installs directly on top of the physical server, without the need for a console operating system (unlike ESX or Hyper-V). This keeps the installation incredibly small (less than 150MB), as well as reduces complexity and improves performance and reliability. For any geeks out there, a high level architecture diagram of ESXi can be seen below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/installingvsphere01.jpg&quot; alt=&quot;Installing vSphere&quot; title=&quot;Installing vSphere&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The key point is that VMware agents have been ported to run directly on the VMkernel, instead of a “heavier” (less stable) console operating system. For more details check out the VMware product comparison page.&lt;/p&gt;

&lt;p&gt;The other great thing about VMware vSphere 5.0, is that you can install and use the basic features for free (with no expiration date), which will allow you to run ESXi on a standard 64-bit PC or Server (see minimum specification) and create virtual machines, available for remote access. The free version does have some limitations, for example Enterprise services such vMotion will not be available for use (without additional cost), but it is unlikely any personal user will need these advance features.&lt;/p&gt;

&lt;h4 id=&quot;installting-vmware-vsphere-hypervisor-esxi-50&quot;&gt;Installting VMware vSphere Hypervisor (ESXi) 5.0&lt;/h4&gt;

&lt;p&gt;First, download VMware vSphere Hypervisor (ESXi) v5.0.x from the VMware website. You will need to signup for a free VMware account if you don’t already have one. As part of the download you will also receive a licence key, make sure you make a note of it, as it cannot be registered on the VMware License Portal.&lt;/p&gt;

&lt;p&gt;Next you need to burn the 300MB ESXi 5.0 ISO image to a CD. If you are running Windows 7 simply double click the ISO, otherwise I recommend you use ImgBurn.&lt;/p&gt;

&lt;p&gt;Once complete, set your PC or Server to boot from the optical drive (BIOS Setting) and initiate the ESXi installation.&lt;/p&gt;

&lt;p&gt;Another great thing about ESXi, is the installation is incredibly easy. Simply follow the on screen wizard, selecting the default options. The only part you need to check is the storage options, which will depend on how many storage devices you have connected. For example, if you only have a single internal hard drive, you can proceed with the default settings. Once the wizard has completed, it will warn that the storage will be wiped, before installing ESXi. The entire process should only take a couple of minutes and you will be prompted to reboot at the end.&lt;/p&gt;

&lt;p&gt;That’s it! ESXi is now installed. However, before you can start setting up virtual machines you will need to specify an IP address and if required, a password. By default ESXi will use DHCP, however it is recommended you specify a static IP address, so that you can easily connect to the server in the future.&lt;/p&gt;

&lt;p&gt;Finally, you need to install vSphere Client (part of the original download) on a Windows client (sorry, no Mac OS X support yet). The vSphere Client is used to connect to and manage your ESXi environment. Once the client is installed simply type the IP address, username (default = root) and password (if you set one) to connect. You may be prompted about a certificate warning, but simply click ignore.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/installingvsphere02.jpg&quot; alt=&quot;Installing vSphere&quot; title=&quot;Installing vSphere&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You now have full administrator access to your VMware vSphere Hypervisor (ESXi) environment. The first thing you should do is add your licence key, by selecting “ESXi Server &amp;gt; Configuration &amp;gt; Licensed Features &amp;gt; Edit”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/installingvsphere03.jpg&quot; alt=&quot;Installing vSphere&quot; title=&quot;Installing vSphere&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can now start creating virtual machines. Anyone familiar with other VMware products (such as VMware Fusion for the Mac) will be right at home. If you are completely new to the world of virtualisation, VMware have a great &lt;a href=&quot;https://www.vmware.com/files/pdf/products/vsphere/VMware-vSphere-Evaluation-Guide-1.pdf&quot;&gt;evaluation guide&lt;/a&gt;, as well as friendly &lt;a href=&quot;http://communities.vmware.com/community/&quot;&gt;support forums&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Wed, 28 Mar 2012 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2012/03/28/Installing-vSphere/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/03/28/Installing-vSphere/</guid>
      </item>
    
      <item>
        <title>BYOD in the Enterprise</title>
        <description>&lt;p&gt;With the “consumerization of IT”, users are no longer content with the standard business offering and instead want broader flexibility to use their own devices such as the iPhone and iPad. This change results in a serious issue for businesses (especially Enterprise organisations), as it is difficult to support an ever growing number of devices, as well as ensure security is maintained and corporate policies are enforced.&lt;/p&gt;

&lt;p&gt;This challenge is often summarised by the industry as “Bring You Own Device” or “BYOD”, however in my opinion it is much more about platform independence, as companies may start to offer support for non-standard devices and operating systems, but still require them to be corporate owned. In fact I predict that for most Enterprises, corporate owned devices will be their first step towards true BYOD.&lt;/p&gt;

&lt;p&gt;Regardless of the depth of BYOD, the challenge for IT remains the same, how do you deliver a strategy that will enable secure device access, visibility, and policy control, without impacting the user experience? In my opinion the answer lies with the network.&lt;/p&gt;

&lt;p&gt;Over the past year we have seen a boom in Mobile Device Management (MDM) vendors, which all aim to provide a control mechanism for mobile devices (iPhone, iPad, etc.) The problem is that these services often rely upon third party software (an app) being installed on each individual device. This in itself raises some challenges (like how you get the app to the device), but more worryingly puts your business at the mercy of the MDM vendor. For example, when Apple releases the next major update (at least once a year) or Windows 8 / Android finally takes off with a “killer device”, the business will have to wait for it to be supported by the MDM vendor. This in itself could take months, which immediately puts IT behind the business need (not a great place to be).&lt;/p&gt;

&lt;p&gt;That is why I believe a better approach is to build the relevant security, control and visibility mechanisms directly into the network, creating an intelligent network. This does not mean that you don’t need an MDM vendor (because you do); however in my opinion this should be looked at as a small part of the broader strategy.&lt;/p&gt;

&lt;h4 id=&quot;why-build-an-intelligent-network&quot;&gt;Why build an “Intelligent Network”?&lt;/h4&gt;

&lt;p&gt;Imagine a world where a user connects to the corporate network (via cable, wireless or remote access) and the network automatically authenticates the user and their device (independently) and based on the result seamlessly provides the appropriate level of access. For example, an employee with a corporate (Windows based) laptop may get full access (trusted), but that same user with an Apple Mac or an iPad (non-trusted) may only get limited access (maybe Internet and VDI).&lt;/p&gt;

&lt;p&gt;Even with this basic feature enabled, the risk (security and compliance) has been significantly reduced, as you can guarantee that non-trusted devices are segregated, therefore reducing the impact of virus and malware propagation, as well as ensuring you have complete control over their level of access. The other great thing is that all of this control is achieved without impacting the user experience (no additional user interaction or training required).&lt;/p&gt;

&lt;p&gt;So that covers access and control, how about on-boarding (AKA provisioning)? Again, imagine if a user were to connect a non-trusted device to the corporate network, but instead of getting access denied they are automatically prompted to identify the device (possibly via an MDM service). This would allow the user to accept a corporate policy and seamlessly register the device, at which point the network would provision any required profiles (certificates) and instantly provide a pre-defined level of access. This automatic on-boarding (provisioning) process could be a huge time saver for IT support and enable the user to instantly start using the new device, while all the time having guaranteed the appropriate security and control is in place.&lt;/p&gt;

&lt;p&gt;The final component would be visibility, with the main requirement being the ability to quickly see and pull reports for all end devices connected to the network (across all access types) as well as instantly take action in the event of an issue. This level of viability is rarely achieved today in large networks, normally requiring end point management software to report on the clients health. Unfortunately, as previously described the requirement for client software is less viable in a platform independent (BYOD) world.&lt;/p&gt;

&lt;p&gt;To summarise, by enabling an intelligent network we can guarantee access and security is maintained (regardless of the device) as well as automatically handling device on-boarding and gaining full end point visibility.&lt;/p&gt;

&lt;h4 id=&quot;sounds-great-but-is-it-even-possible&quot;&gt;Sounds great, but is it even possible?&lt;/h4&gt;

&lt;p&gt;Introducing Cisco Identity Services Engine (ISE), which is part of their Borderless Network Architecture and is an evolution of the Cisco security product range. More specifically it consolidates existing products and services, such as ACS and NAC into one unified platform.&lt;/p&gt;

&lt;p&gt;It enables and underpins all of the above features to deliver a truly intelligent network, including secure device access, on-boarding and policy control, as well as full end point visibility (of every device on your network). It even enables end point posture assessment and seamlessly integrates with the major MDM vendors (such as MobileIron).&lt;/p&gt;

&lt;p&gt;The video below highlights the key features of Cisco ISE and how it enables businesses to proactively prepare for their inevitable BYOD future:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/9ZkNxbEfF_U?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;As described in the video, Cisco ISE can be deployed in a centralised or decentralised model, offering deployment flexibility for different environments. It’s also available as a dedicated appliance or as a virtual image (VMware), therefore you can setup and configure Cisco ISE incredibly quickly, even putting it into “monitor only” mode, ensuring their will be no impact to your production network.&lt;/p&gt;

&lt;p&gt;Personally I’m very excited about the prospect of Cisco ISE, as for me it is the first BYOD solution that offers unified access across wired, wireless and remote access and doesn’t rely upon specific end point software. I will be watching (and testing) this technology over the next few months to see if it can live up to the vision.&lt;/p&gt;
</description>
        <pubDate>Wed, 14 Mar 2012 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2012/03/14/BYOD-in-the-Enterprise/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/03/14/BYOD-in-the-Enterprise/</guid>
      </item>
    
      <item>
        <title>Windows Credential Manager</title>
        <description>&lt;p&gt;Like many IT professionals, in a working week I will likely connect to hundreds of different systems (servers, network shares, virtual desktops, etc). In Windows XP this used to be a real pain, as there was no easy way to manage the different account credentials, resulting in me having to remember and manually type the unique domain, username and password details for every individual system.&lt;/p&gt;

&lt;p&gt;Thankfully the one good thing that came out of Windows Vista (also available in 7 and 8) was a new feature called Credential Manager. This is exactly what it sounds like, an area of the operating system to store account credentials for automatic authentication.&lt;/p&gt;

&lt;p&gt;Credential Manager can be found in the Control Panel and will either automatically register credentials (when you log in to different systems) or can be manually configured. The image below shows Credential Manager in Windows 8.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wincredentialmanager.jpg&quot; alt=&quot;Windows Credential Manager&quot; title=&quot;Windows Credential Manager&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Credential Manager can be used to automatically authenticate just about any system, such as websites (internal and external), network shares, servers and even domain aware applications such as Microsoft Outlook and Lync. It can also be manually configured to use wildcard statements (as shown in the image above), which allows you to specify a grouping, instead of individual systems.&lt;/p&gt;

&lt;p&gt;One of things I use Credential Manager for is to simultaneously authenticate against multiple domains (using the wildcard statement). For example, if my PRD domain was “LifeinTECH”, but I wanted to test an application on a “TEST” domain, I could configure Credential Manager to automatically pass the correct credentials to each domain. This means I can have a single machine seamlessly authenticating to two different domains, which is very handy for testing purposes.&lt;/p&gt;

&lt;p&gt;Mac OS X has a similar feature known as Keychain, however I actually find Credential Manager to be more powerful, for example Keychain does not support wildcard statements, which is actually a real pain for Intranet access. The only resolution to this issue on the Mac is to install a third party application like 1Password or LastPass, however nothing beats true operating system integration.&lt;/p&gt;
</description>
        <pubDate>Mon, 12 Mar 2012 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2012/03/12/Windows-Credential-Manager/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/03/12/Windows-Credential-Manager/</guid>
      </item>
    
      <item>
        <title>Enterprise of the Future</title>
        <description>&lt;p&gt;In today’s world it’s very common for a person working in an Enterprise (or even SMB) to carry an impressive haul of tech. Even the average user is likely to have:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Work Laptop (e.g. PC)&lt;/li&gt;
  &lt;li&gt;Work Phone (e.g. BlackBerry)&lt;/li&gt;
  &lt;li&gt;Personal Laptop (e.g. PC, Mac, etc)&lt;/li&gt;
  &lt;li&gt;Personal Phone (e.g. iPhone, Android, etc)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is impractical, expensive and becomes increasingly frustrating for modern road warriors. As a result I believe there is a huge opportunity for the smartphone (or tablet) to become the one single device for both business and consumer. That’s right, I even think it can replace the traditional work and personal laptop.&lt;/p&gt;

&lt;h4 id=&quot;whats-my-vision&quot;&gt;What’s my vision?&lt;/h4&gt;

&lt;p&gt;I see the smartphone essentially having two environments, where you have your standard mobile OS (like iOS or Android) which will work just like it does today, offering access to mobile applications, voice, video and messaging. However you also have an app that provides access to a traditional desktop OS (like Windows or Linux), providing access to full applications, such as Word and PhotoShop, etc.&lt;/p&gt;

&lt;p&gt;In my vision, I see a world where the users smartphone starts each day as a standard handset, however when they enter the office they are able to dock the device into a cradle that includes power, video out (e.g. DisplayPort), Ethernet and potentially a couple of USB ports.&lt;/p&gt;

&lt;p&gt;Once docked, the user launches an app that gives them access to their full desktop operating system. This operating system could be running local on the device or (if appropriate) streamed via Virtual Desktop Infrastructure (VDI).&lt;/p&gt;

&lt;p&gt;With the addition of a Bluetooth mouse, keyboard and headset the user would have all the traditional peripherals they need to interact with the operating system (just like they do today with their laptop).&lt;/p&gt;

&lt;p&gt;As the device itself is still a phone, they would continue to be able make and receive calls (accepting them via the Bluetooth headset), with the potential for the traffic to be seamlessly routed over the office network (fixed mobile convergence), resulting in additional cost savings.&lt;/p&gt;

&lt;p&gt;At the end of the day the user will be able to un-dock their device, safe in the knowledge that their entire working environment is with them at all times and fits neatly in their pocket.&lt;/p&gt;

&lt;p&gt;This model would also align to the “office of the future”, where users no longer have a dedicated desk, but instead can dock anywhere in the office to gain the same level of access. This could include docking at home, where remote access technologies (such as Cisco AnyConnect or Juniper JUNOS Pulse) could be used to seamlessly build a secure VPN tunnel to the office network.&lt;/p&gt;

&lt;p&gt;Regarding storage, I see all documents being available across all environments (if permitted by security), allowing simple “always available” access. This would likely be partnered with cloud storage (think Box or iCloud) to reduce local storage needs, backup and to perform cross platform synchronisation.&lt;/p&gt;

&lt;p&gt;Finally, as the traditional desktop is loaded via an app, it is feasible for the user to have a completely separate work and home environment on the same device. This could even run a different operating systems (for example Windows and Linux) and include different levels of security (encryption, etc).&lt;/p&gt;

&lt;h4 id=&quot;is-this-even-possible&quot;&gt;Is this even possible?&lt;/h4&gt;

&lt;p&gt;Smartphones are getting more powerful everyday, the latest Android devices are already dual-core beasts, with 1GB RAM and up to 64GB of storage. With the expected release of the iPhone 5 later this year we will likely see quad-core processors and upwards of 2GB RAM. This is some serious tech!&lt;/p&gt;

&lt;p&gt;As the technical gap between the smartphone and the traditional laptop begins to reduce, we start to see an opportunity for cross usage. For example we already know that Microsoft is working to make Windows 8 ARM compatible (the architecture used in smartphones) and even if they didn’t, the power available should be enough for a company like VMware to deliver a client side virtualized environment.&lt;/p&gt;

&lt;p&gt;In fact, this vision has already been demonstrated (with some limitations) by a number of different companies. The video below is from Citrix and although is quite unflattering, it does show a full desktop operating system running on an iPhone 4 using a virtual environment:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/I7z6svWLbmM?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The primary limitation in this video is related to Apple’s tight software / hardware guidelines. Resulting in a lack of mouse support, although technically speaking there is no reason why this could not easily be added (as proven by the Jailbreaking community).&lt;/p&gt;

&lt;h4 id=&quot;what-are-the-benefits&quot;&gt;What are the benefits?&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;User Experience:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The first major advantage is portability, as the user would no longer need to carry multiple devices to the office, instead they just require their smartphone. You also get the ease of use from having one device regardless of your requirements. If it’s work or home, a simple e-mail or a full document, you know that everything is available and easily accessible from one device.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cost:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The average start-up cost per user for a business today is around £2000, this includes the laptop, monitor, dock, peripherals, desk phone and smartphone (normally a Blackberry). However, this doesn’t take into consideration the ongoing costs, such as support and maintenance, which for traditional PC hardware (for example from HP or Dell) can be surprisingly expensive.&lt;/p&gt;

&lt;p&gt;Now imagine if you could remove the PC components and scale back to a single smartphone for each user, this in itself could reduce the start-up cost per user to less than £500. It would also have an impact on the ongoing support costs, as the number of hardware devices will be significantly reduced, resulting in a simplified support process.&lt;/p&gt;

&lt;p&gt;Finally, due to this new found user portability, businesses could embrace a truly mobile office, by having universal docks and peripherals that everyone can share (hot desks). This could further reduce costs, by removing the need for a dedicated desk, monitor and dock per person.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Support:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As previously described the first major benefit is a reduction in the number of hardware devices needing to be supported. However, I believe the main advantage is the migration to an “app based” full desktop operating system (virtual or otherwise). This means that even in the event of severe software issues (for example BSOD at launch), the operating system can simply be re-built (just like a virtual or ghost image), before copying back the data from the local smartphone storage or the cloud. This process can even be completed remotely, as the user can connect back to the office network using the mobile OS VPN capabilities.&lt;/p&gt;

&lt;p&gt;This process is made more complicated on a traditional laptop, as the user is unable to recover the device to a state that would allow support staff to connect. Often meaning the laptop must be returned to base for repair, which will likely impact productivity for multiple days.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Security:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;One of the major concerns of this vision would be security and the increased risk of loss. However in my opinion this risk is no greater then a traditional laptop and even offers a number of advantages. For example, on top of standard device and app encryption, the majority of modern smartphones have “always on” internet and GPS capabilities. This means that remote wipe and device location services can be enabled as default, something that is unlikely to be available on a traditional laptop.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Power Efficiency:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With the whole world attempting to be greener and more eco-friendly, a move to a single low powered device (replacing a power hungry laptop) will help ensure that office power consumption is kept to a minimum. This will not only reduce operating costs, but also hopefully help save the environment.&lt;/p&gt;

&lt;h4 id=&quot;will-it-ever-happen&quot;&gt;Will it ever happen?&lt;/h4&gt;

&lt;p&gt;After selling the benefits of this solution, the only remaining question is will it ever happen? As demonstrated in the video above we have proof that Enterprise focused companies such as Citrix are interested in this model and that technically it can already be achieved today. However I personally believe there is even more evidence that this vision is not only possible, but an industry shift that is already in motion…introducing Microsoft Windows 8!&lt;/p&gt;

&lt;p&gt;For those of you who have been following the Windows 8 development, you will know that Microsoft have taken a “one operating system to rule them all” approach, by introducing a new “Metro Style” user interface which is set to replace the traditional start menu and to a lesser extent the desktop.&lt;/p&gt;

&lt;p&gt;I believe this approach aligns perfectly with my vision, by opening the possibility for a mobile device (smartphone or tablet) to offer a touch experience while working mobile (with the new Metro UI), while still providing access to full desktop applications when required (in the office). On top of the user experience changes, Microsoft have also announced the Windows 8 minimum requirements, which interestingly focus on power efficiency and portability, instead of raw power (like previous version of Windows). As stated earlier this drive towards mobility also includes the transition to ARM based devices, again positioning Windows 8 hardware perfectly as the one device for all purposes.&lt;/p&gt;

&lt;p&gt;The final point worth mentioning is a rumour that Microsoft plans to transition the Windows Phone operating system over to the Windows 8 kernel. If this is true, then it is possible for the smartphone to become the single device, balancing the gap between the mobile and desktop environments and perfectly meeting the requirements for my vision to succeed.&lt;/p&gt;

&lt;p&gt;To conclude I think we are already on the road to this vision, with Microsoft leading the way. The main challenge is that although Microsoft have been incredibly bold with their direction for Windows 8, they have been less forthcoming with their communications. Therefore it is unclear exactly how everything will play out and if the industry will embrace these significant changes to the user experience.&lt;/p&gt;
</description>
        <pubDate>Mon, 06 Feb 2012 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2012/02/06/Enterprise-of-the-Future/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/02/06/Enterprise-of-the-Future/</guid>
      </item>
    
      <item>
        <title>21 Million Bitcoins</title>
        <description>&lt;p&gt;In my previous article “&lt;a href=&quot;/2011/08/02/Cryptocurrency/&quot;&gt;Cryptocurrency&lt;/a&gt;”, I provided an overview of &lt;a href=&quot;https://bitcoin.org/&quot;&gt;Bitcoin&lt;/a&gt;, including details of how it works.&lt;/p&gt;

&lt;p&gt;The article described the concept of mining, which is used to process and verify transactions, helping to keep the block chain (shared public ledger) consistent, complete and unalterable. The reason miners contribute their computing resources to help process and verify transactions, is that they receive new Bitcoins as a reward.&lt;/p&gt;

&lt;p&gt;However, knowing that Bitcoin has a limited supply (approximately 21 million Bitcoins), it raises the question…&lt;/p&gt;

&lt;h4 id=&quot;what-happens-when-all-the-bitcoins-have-been-mined&quot;&gt;What happens when all the Bitcoins have been mined?&lt;/h4&gt;

&lt;p&gt;I will attempt to answer this question in three parts:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;The most obvious answer is that miners will simply be incentivised differently, focused on transaction fees. For example, instead of receiving new Bitcoins, miners could simply be paid for every transaction from existing Bitcoins. This model may not be as lucrative, but is still a viable alternative, especially when you consider the improved power efficiency of future computer systems.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Knowing that Bitcoins are carefully released, the last Bitcoin is not predicted to be mined until 2104 (92 years from now). A century of technology innovation is difficult to predict, especially at the exponential rate of change we have witnessed over the past decade. However, it is likely that computer systems capable of mining will have become increasingly common and power efficient. As a result, every “smart machine” in the world could be used for mining, including every smart phone and even smart appliances, such as a fridge, thermostat or toaster. This paradigm shift would enable the mining process to be achieved inherently, without direct human intervention.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Finally, it is worth highlighting that Bitcoin may not stand the test of time or a new alternative cryptocurrency may emerge. Either of these scenarios would obviously remove or mitigate the concern.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Personally, I predict that all three parts of my answer are a likely outcome, simply happening at different points in the evolution of Bitcoin (or other comparable cryptocurrencies). The good news is that due to the controlled rate in which Bitcoins are released (dropping by half every four years), minors will have plenty of time to adapt.&lt;/p&gt;
</description>
        <pubDate>Tue, 10 Jan 2012 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2012/01/10/21-Million-Bitcoins/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2012/01/10/21-Million-Bitcoins/</guid>
      </item>
    
      <item>
        <title>PhoneGap</title>
        <description>&lt;p&gt;When Apple launched the App Store for iOS back in 2008, it instantly took the world by storm. Since then Apple have sold over 18 billion apps and rival services have been created for just about every other platform.&lt;/p&gt;

&lt;p&gt;Historically, creating a native app for any mobile platform has required knowledge of a specific integrated development environment (IDE), as well as an object-orientated language such as C++, Objective-C or JAVA. Although I have a basic understanding of Objective-C and JAVA, I am most familiar with web technologies, such as HTML, CSS and JavaScript. Therefore wouldn’t it be great if I could use the skills I already have to create native apps?&lt;/p&gt;

&lt;p&gt;Introducing &lt;a href=&quot;http://phonegap.com&quot;&gt;PhoneGap&lt;/a&gt;, a HTML5 app platform that allows you to create native apps using web technologies as well as granting access to unique and powerful APIs. I have been using PhoneGap for the past couple of years to develop native iOS applications that are available on the Apple App Store, however written in standard web languages. Anyone that has a good understanding of HTML and advance CSS and JavaScript, will know that web languages can be just as polished and powerful as their native counterparts (with 3D games being the only real exception).&lt;/p&gt;

&lt;p&gt;Another advantage of this approach is that PhoneGap is not platform specific, so you can take one code base (for example, basic HTML) and PhoneGap will package it natively for just about any mobile platform, for example Apple iOS, Google Android, Windows Phone 7, etc. This is an incredibly powerful feature, as it significantly reduces cross platform development time and the challenges of learning multiple programming languages.&lt;/p&gt;

&lt;p&gt;Now we know what PhoneGap is, I thought I would run through the basic setup for Apple iOS (the most popular mobile platform). The aim is that by the end of the setup you will be in a position to write HTML code and have it instantly packaged as a native iOS application!&lt;/p&gt;

&lt;h4 id=&quot;requirements&quot;&gt;Requirements:&lt;/h4&gt;

&lt;p&gt;Before starting you will need the following three things:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A Mac, running Mac OS X (Snow Leopard or Lion).&lt;/li&gt;
  &lt;li&gt;Xcode (downloaded for free from the Mac App Store).&lt;/li&gt;
  &lt;li&gt;The latest version of PhoneGap.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;installation&quot;&gt;Installation:&lt;/h4&gt;

&lt;p&gt;Let’s start by installing Xcode. As this is Apple’s primary development environment for Mac and iOS it is quite big (1.7GB), but also very powerful. You can download Xcode from the Mac App Store, at which point an icon will appear in your “Applications” folder called “Install Xcode”. Run the installer and follow the wizard leaving all settings at default.&lt;/p&gt;

&lt;p&gt;Once complete you are ready to install PhoneGap. Simply unzip, navigate to the “iOS” directory and run the installer until completion (again leave all settings at default).&lt;/p&gt;

&lt;p&gt;Hooray! Your environment is now setup to create your first project in Xcode using PhoneGap (easy, right?).&lt;/p&gt;

&lt;h4 id=&quot;project-setup&quot;&gt;Project Setup:&lt;/h4&gt;

&lt;p&gt;Start by opening Xcode and select “New” and “New Project”. Now select “PhoneGap-based Application” from “iOS &amp;gt; Application”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/phonegap01.jpg&quot; alt=&quot;PhoneGap&quot; title=&quot;PhoneGap&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next add a “Product Name” and “Company Identifier” for your app. These can be anything you like.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/phonegap02.jpg&quot; alt=&quot;PhoneGap&quot; title=&quot;PhoneGap&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once complete you will be asked where you would like to save your application.&lt;/p&gt;

&lt;p&gt;You should now see your project in Xcode. If you attempt to “Run” your project at this point you will be prompted with an error, stating the “index.html was not found”.&lt;/p&gt;

&lt;p&gt;To resolve this, you need to copy your “www” folder into the project. Navigate to your project directory in Finder or right click on the project in Xcode (left navigation window) and click show in Finder.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;IMPORTANT - Drag the “www” folder into Xcode, under the project name in left navigation window (See image below).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/phonegap03.jpg&quot; alt=&quot;PhoneGap&quot; title=&quot;PhoneGap&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If done correctly you will be prompted with a few options (see image below). Make sure you select “Create folder references for any added folders” and click “Finish”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/phonegap04.jpg&quot; alt=&quot;PhoneGap&quot; title=&quot;PhoneGap&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now if you “Run” your project it will open the contents of the “index.html”, which is pre-populated to prove the setup of PhoneGap has been completed successfully.&lt;/p&gt;

&lt;p&gt;You can now edit the project just as if it was a standard web application. To get used to Xcode, I suggest you start by making some minor modifications to the “index.html” file.&lt;/p&gt;

&lt;p&gt;Once you have mastered the basics you can start getting more advanced by adding custom JavaScript. I recommend checking out jQuery Mobile, which is a framework specifically for mobile devices that is very powerful, flexible and easy to work with.&lt;/p&gt;

&lt;p&gt;That’s it! You are now an iOS developer. In fact, even better, you can now port the same code to any other PhoneGap supported mobile platform!&lt;/p&gt;
</description>
        <pubDate>Tue, 20 Dec 2011 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2011/12/20/PhoneGap/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2011/12/20/PhoneGap/</guid>
      </item>
    
      <item>
        <title>First PC - The Beginning</title>
        <description>&lt;p&gt;I built my first computer in 1992, when I was around eight years old. Since then I have built hundreds of computers, some for me, but mostly for others. I have always found the process of designing, building and tweaking computers to be great fun!&lt;/p&gt;

&lt;p&gt;At eight I obviously didn’t have any money of my own, but was lucky enough to have parents that were willing to fund my hobby, as well as a willingness to ask businesses for any old components.&lt;/p&gt;

&lt;p&gt;The system I build was an &lt;strong&gt;Intel i486SX&lt;/strong&gt; (Intel 80486SX), running at 25MHz. At the time I wanted Intel’s new 486DX, but unfortunately it was outside of my budget. The 486SX provided a lower cost of entry, thanks to the disabled floating-point unit, a capability that wasn’t widely utilized at the time.&lt;/p&gt;

&lt;p&gt;I did fairly quickly upgrade the CPU, with an &lt;strong&gt;Intel i486 OverDrive&lt;/strong&gt;. This chip was really designed for individuals who couldn’t afford a new computer with Intel’s latest silicon (the Pentium range). This was my first component upgrade and thankfully it was incredibly simple, although I still remember spending an incredible amount of time ensuring my anti-static band was connected correctly.&lt;/p&gt;

&lt;p&gt;When looking at RAM, I had &lt;strong&gt;4MB of Extended Data Out (EDO) Memory&lt;/strong&gt;. This was fairly average for the time and met the minimum requirements of most software.&lt;/p&gt;

&lt;p&gt;Persistent storage was delivered via a &lt;strong&gt;120MB Parallel ATA (PATA) Hard Disk Drive&lt;/strong&gt;, which connected via an Integrated Drive Electronics (IDE) interface. This capacity is obviously laughable by todays standards, but at the time was fairly decent (the shareware version of Doom was 2.3MB).&lt;/p&gt;

&lt;p&gt;Regarding graphics, initially the system only included 2D Graphics, as a dedicated 3D Graphics Card was a premium product. I did however eventually persuade my parents to buy me a &lt;strong&gt;3DFX Voodoo Banshee PCI 16MB&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This card was special to me as it unlocked a world of 3D games that were previously unplayable (not through a lack of trying). I was drawn to the Voodoo Banshee because it was one of the first combined 2D/3D graphics solutions. This is obviously the standard today, but in the early 90’s you generally had two graphics cards (adding cost and complexity to the build).&lt;/p&gt;

&lt;p&gt;The Voodoo Banshee was similar to the legendary Voodoo 2, except it was running at higher clocks and only had one texture unit. A major advantage to the Voodoo Banshee was its flexibility, as it could run the majority of Direct3D games faster than a single Voodoo 2 card, supported Glide (e.g. Unreal) and could even run multi-texturing games (only slower than the Voodoo 2, due to the single texture unit).&lt;/p&gt;

&lt;p&gt;The system originally ran DOS, where I spent the majority of my time writing simple programs and playing games like Wolfenstein, Doom, Ultima and Little Big Adventure. However I eventually upgraded to Windows 3.1, which opened an entirely new world of graphical user interface driven applications.&lt;/p&gt;

&lt;p&gt;This system certainly wasn’t cutting edge or even good to look at (a classic beige box), but it did start my obsession with technology, something that has become a core part of my life.&lt;/p&gt;
</description>
        <pubDate>Mon, 12 Dec 2011 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2011/12/12/First-PC/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2011/12/12/First-PC/</guid>
      </item>
    
      <item>
        <title>Windows 8 Dilemma</title>
        <description>&lt;p&gt;I’ve been using the Windows 8 Developer Preview for just over one week and felt it was a good time to provide an update on my first impressions.&lt;/p&gt;

&lt;p&gt;Microsoft have attempted to achieve the impossible, one single operating system that delivers an exceptional user experience for both the desktop and tablet paradigm. This is actually not the first time they have attempted this feat, as in 2002 Microsoft released a tablet edition of Windows XP.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windilemma01.jpg&quot; alt=&quot;Windows 8 Dilemma&quot; title=&quot;Windows 8 Dilemma&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The idea behind Windows XP Tablet Edition was that it would have all the features of the traditional Windows desktop (working with the standard keyboard and mouse), while having specific customisations for tablet usage, such as being touch enabled. Unfortunately anyone that actually used one of these tablets will know that the experience was horrible. The main issue was that all of the menus and icons were designed for the mouse pointer, therefore attempting to use touch was extremely frustrating and at times impossible. As a result most people that bought a Windows XP tablet would inevitably end up reverting back to the keyboard and mouse. Despite the tablet’s obvious short comings and poor sales, Microsoft continue to attempt to sell Windows based tablets right up to today, where they have only managed to achieve moderate success in very specific markets, such as corporate sales.&lt;/p&gt;

&lt;p&gt;I had hoped that Microsoft would have learnt from the past ten years, but it looks like they are about to make the same mistakes again. The main difference this time is that they have re-built Windows with touch as the primary human interface device. The Start Screen is an obvious example of this, where it has large tiles that are easy to navigate using your finger.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/windilemma02.jpg&quot; alt=&quot;Windows 8 Dilemma&quot; title=&quot;Windows 8 Dilemma&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This works great for touch and I love the “Metro Style” user interface, but the problems start when you switch back to the traditional desktop, as Microsoft have seen fit to remove the Start Menu and replace it with the Start Screen. Therefore even when using a keyboard and mouse, which works well for the traditional desktop, you are constantly forced to switch to the Start Screen to search for documents and open new applications. This not only results in a shocking change of user interface, but also a sub-optimal experience when attempting to use the keyboard and mouse with the large tiles on the Start Screen. When you consider this experience, it is actually very similar to the Windows XP Tablet Edition issue, except this time it’s the keyboard and mouse that becomes frustrating to use.&lt;/p&gt;

&lt;p&gt;This does not even take into consideration the developers who now have the horrendous prospect of having to design applications that will work for both the keyboard &amp;amp; mouse and touch! I guarantee that this will be a nightmare, resulting applications favoring one style and delivering a sub-standard experience for the other.&lt;/p&gt;

&lt;p&gt;So are Microsoft about to alienate 90% of the worlds Windows users by reducing the usability of the keyboard and mouse? In my opinion, if Windows 8 does not change, then the answer is yes.&lt;/p&gt;

&lt;p&gt;To conclude, if I had to sum up the Windows 8 Developer Preview in one word it would be “confused”. This is because Windows 8 is confusing to use, as you have to constantly switch between the traditional desktop and the Metro Style user interface. It is also confusing why Microsoft believe we must have one operating system for both the keyboard &amp;amp; mouse and touch? Why not have two distinct operating systems that are both built from the same core. Would that not be simpler for the users and developers, as well as preserve Microsoft’s existing customer base, which I honestly believe they run the risk of losing with their “one operating system to rule them all” strategy.&lt;/p&gt;
</description>
        <pubDate>Wed, 23 Nov 2011 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2011/11/23/The-Windows-8-Dilemma/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2011/11/23/The-Windows-8-Dilemma/</guid>
      </item>
    
      <item>
        <title>Fusion vs Parallels</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://www.vmware.com/uk/products/fusion&quot;&gt;VMware Fusion&lt;/a&gt; vs &lt;a href=&quot;http://www.parallels.com/products/desktop&quot;&gt;Parallels Desktop&lt;/a&gt;, which is better? On paper both of these platforms offer a very similar set of features and both claim to be the easiest and fastest way to run Windows on the Mac.&lt;/p&gt;

&lt;p&gt;The aim of this article is to dive deeper into these claims, hopefully discovering whether VMware Fusion 4 or Parallels Desktop 7 is the king of client virtualisation.&lt;/p&gt;

&lt;h4 id=&quot;the-test-platform&quot;&gt;The Test Platform:&lt;/h4&gt;

&lt;p&gt;I downloaded the latest versions of VMware Fusion 4 (4.0.1 - 474597) and Parallels Desktop 7 (7.0 14922) and both applications were installed on an 11” MacBook Air, with the following specification:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MacBookAir3,1 (Late 2010)&lt;/li&gt;
  &lt;li&gt;Intel Core 2 Duo 1.6GHz (3MB L2 Cache)&lt;/li&gt;
  &lt;li&gt;4GB DDR3 1066MHz Memory&lt;/li&gt;
  &lt;li&gt;NVIDIA GeForce 320M 256MB&lt;/li&gt;
  &lt;li&gt;Apple SSD TS128C 128GB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Mac was running a fully updated version of Mac OS X Lion 10.7.1 (11B26).&lt;/p&gt;

&lt;p&gt;Both Fusion and Parallels had a clean install of Windows 7 Ultimate SP1 x64 installed (downloaded from Microsoft TechNet) with the following identical virtual configuration:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;1 Processor&lt;/li&gt;
  &lt;li&gt;2048MB Memory&lt;/li&gt;
  &lt;li&gt;40GB Storage (Not Split)&lt;/li&gt;
  &lt;li&gt;Virtual Machine Tools Installed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All other virtual machine settings were left default.&lt;/p&gt;

&lt;h4 id=&quot;installing-the-virtual-machine&quot;&gt;Installing the Virtual Machine:&lt;/h4&gt;

&lt;p&gt;Fusion and Parallels both offer “Easy Install” features (as shown in the image below for Fusion). This allows for a simplified, automated installation process, which sets up your account details, product key and the installation of the virtual machine tools (required for optimal performance).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fusionvsparallels01.jpg&quot; alt=&quot;Fusion vs Parallels&quot; title=&quot;Fusion vs Parallels&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I ran the easy install option for both Fusion and Parallels, which I’m pleased to report completed successfully and was simple and painless for both products. As the first reference point I timed how long it took for the installation to complete (from first starting the virtual machine to the moment the virtual machine tools were finished installing). The results can be seen below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;VMware Fusion 4 = 17mins 20seconds&lt;/li&gt;
  &lt;li&gt;Parallels Desktop 7 = 16mins 50seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, from an install timing perspective Parallels beat Fusion by approximately 30 seconds. However as both platforms provide a fully automated installation process I feel that both Fusion and Parallels provide an acceptable experience. The only time this could have an impact is if you were installing a large number of virtual machines regularly (possibly for testing purposes).&lt;/p&gt;

&lt;h4 id=&quot;performance&quot;&gt;Performance:&lt;/h4&gt;

&lt;p&gt;Now it’s time for the main event, as stated in my previous article I have used both platforms in the past and found it very difficult to identify any real world performance differences. If forced I would probably state that Parallels felt slightly smoother when running Windows 7 Aero effects, but this would be purely conjecture. As a result I have run a number of popular benchmarks on each platform, in an attempt to give us some numbers to quantify. The results can be seen below:&lt;/p&gt;

&lt;h4 id=&quot;windows-experience-index&quot;&gt;Windows Experience Index&lt;/h4&gt;

&lt;p&gt;The Windows Experience Index has been built into Windows since Vista. It includes a number of simple benchmarks to help users understand their system performance. It then takes the lowest individual score as the base result.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fusionvsparallels02.jpg&quot; alt=&quot;Fusion vs Parallels&quot; title=&quot;Fusion vs Parallels&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fusionvsparallels03.jpg&quot; alt=&quot;Fusion vs Parallels&quot; title=&quot;Fusion vs Parallels&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the above results, round one goes to Fusion (but not by much). It produced a higher Processor and Graphics score, although fell short of Parallels on Gaming Graphics. The Memory and Primary Hard Disk scores were the same for both platforms. Interestingly, even though I felt Parallels was slightly smoother when using Windows Aero effects, it actually produced a lower score, showing how difficult it is to separate these two platforms in real world usage.&lt;/p&gt;

&lt;h4 id=&quot;super-pi&quot;&gt;Super Pi&lt;/h4&gt;

&lt;p&gt;Super Pi is a computer program that calculates pi to a specified number of digits after the decimal point-up to a maximum of 32 million. It is used by many overclockers to test the performance and stability of their computers.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fusionvsparallels04.jpg&quot; alt=&quot;Fusion vs Parallels&quot; title=&quot;Fusion vs Parallels&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fusionvsparallels05.jpg&quot; alt=&quot;Fusion vs Parallels&quot; title=&quot;Fusion vs Parallels&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Round two proves to be even tighter then round one, with Parallels edging out Fusion by the narrowest of margins. In fact this benchmark is so tight (less then a second in favor of Parallels) that I am certain that this would not result in any real world difference between the two platforms.&lt;/p&gt;

&lt;h4 id=&quot;futuremark-pcmark-7&quot;&gt;Futuremark PCMark 7&lt;/h4&gt;

&lt;p&gt;PCMark 7 includes 7 PC tests for Windows 7, combining more than 25 individual workloads covering storage, computation, image and video manipulation, web browsing and gaming. It has been specifically designed to cover the full range of PC hardware from netbooks and tablets to notebooks and desktops.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fusionvsparallels06.jpg&quot; alt=&quot;Fusion vs Parallels&quot; title=&quot;Fusion vs Parallels&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/fusionvsparallels07.jpg&quot; alt=&quot;Fusion vs Parallels&quot; title=&quot;Fusion vs Parallels&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see the PCMark 7 scores are also incredibly tight. From the detailed scores (found here) you can see that every result (Video Playback, DirectX, Web Browsing, etc) is almost identical, with Fusion just fractionally ahead of Parallels, which resulted in the slightly better overall score.&lt;/p&gt;

&lt;h5 id=&quot;conclusion&quot;&gt;Conclusion:&lt;/h5&gt;

&lt;p&gt;I have always come to the conclusion that there was very little between Fusion and Parallels in terms of performance, usability and reliability, and it would appear, based on the benchmark results, that this trend continues with the latest versions of each product.&lt;/p&gt;

&lt;p&gt;Overall the benchmarks have shown in favor of Fusion, however it was by such a small margin that I don’t believe any real world differences could be identified. As a result I would have no concerns recommending either product. In fact, as there is so little between them, I think the logical approach would be to make your choice based on price, which at the moment falls in favor of Fusion which is available for £32.85, compared to Parallels £64.99.&lt;/p&gt;
</description>
        <pubDate>Sat, 17 Sep 2011 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2011/09/17/Fusion-vs-Parallels/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2011/09/17/Fusion-vs-Parallels/</guid>
      </item>
    
      <item>
        <title>Configuring Hyper-V</title>
        <description>&lt;p&gt;I’m a big advocate of virtualisation. I primarily use it at work for testing and development purposes, however it also offers a lot of advantages for personal use, especially if you are running a Mac OS X and want easy access to other operating systems.&lt;/p&gt;

&lt;p&gt;Although there are many virtualisation solutions on the market, both client and server, the focus of this article is a server product from Microsoft, known as &lt;a href=&quot;http://www.microsoft.com/hyper-v-server/en/us/default.aspx&quot;&gt;Hyper-V&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introducing Hyper-V&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So firstly, what is Hyper-V? It’s a server platform that allows you to create virtual machines for access over a network. Therefore you can create multiple virtual machines (for example, Windows 7, Windows Server, Linux, etc) all running on the same hardware platform and have them accessible anytime and from any device that can run Microsoft’s Remote Desktop Protocol (RDP). The primary use cases for Hyper-V are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Test and Development&lt;/li&gt;
  &lt;li&gt;Server Consolidation&lt;/li&gt;
  &lt;li&gt;Branch Office Consolidation&lt;/li&gt;
  &lt;li&gt;Hosted Desktop Virtualisation (VDI)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So what makes Hyper-V interesting? The latest version available is known as Hyper-V Server 2008 R2 with SP1 (catchy Microsoft naming). With this product Microsoft introduced a couple of interesting new features, specifically Dynamic Memory and RemoteFX.&lt;/p&gt;

&lt;p&gt;Dynamic Memory: With Hyper-V, Microsoft have optimised memory usage, allowing it to be dynamically reallocated between different virtual machines in response to changing workloads. This results in a more efficient use of memory while maintaining consistent workload performance and scalability.&lt;/p&gt;

&lt;p&gt;RemoteFX: For years the Achilles heel of virtual machines has been their ability to run media-rich services, such as 3D accelerated graphics and unified communication. With RemoteFX Microsoft have significantly enhanced the Remote Desktop Protocol, allowing users running Windows Server 2008 R2 SP1, Windows 7 SP1 and Windows 8 to have a rich graphics experience, while still utilising server-side graphics processing. This means you can now run a full Aero desktop and even use voice and video.&lt;/p&gt;

&lt;p&gt;Now we have an understanding of what Hyper-V is and some of its unique selling points, let’s move on to the configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Configuring Microsoft Hyper-V&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before proceeding you will need access to a PC that supports Intel’s &lt;a href=&quot;http://www.intel.com/content/www/us/en/architecture-and-technology/vpro/vpro-technology-general.html&quot;&gt;vPro Technology&lt;/a&gt;, as well as the Hyper-V Server operating system. Microsoft offers multiple versions of Hyper-V, although I recommend installing Windows Server 2008 R2 SP1 Standard or Enterprise and then adding Hyper-V as a role. This allows you to setup the server using the full Windows user interface and add additional roles, such as a file or web server.&lt;/p&gt;

&lt;p&gt;The operating system is available as a 180 day trial from the &lt;a href=&quot;http://www.microsoft.com/windowsserver2008/en/us/trial-software.aspx&quot;&gt;Microsoft website&lt;/a&gt;, or for testing purposes through Microsoft TechNet and MSDN subscriptions.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hyperv01.jpg&quot; alt=&quot;Microsoft Hyper-V&quot; title=&quot;Microsoft Hyper-V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once downloaded you will need to install the operating system which can be done using a DVD or USB Drive. The process is basically identical to the Windows 7 installation, with the exception that you have to pick your server type, where either “Standard” or “Enterprise” will work fine.&lt;/p&gt;

&lt;p&gt;When complete you will be presented with the normal Windows server desktop (essentially the Windows 7 Basic theme).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hyperv02.jpg&quot; alt=&quot;Microsoft Hyper-V&quot; title=&quot;Microsoft Hyper-V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You now need to add the “Hyper-V” role. Which can be done by opening the “Server Manager” found pinned to the task-bar and clicking “Add Roles” from the right pane.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hyperv03.jpg&quot; alt=&quot;Microsoft Hyper-V&quot; title=&quot;Microsoft Hyper-V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;From here, follow the wizard to add the “Hyper-V” role. As you can see from the image below I have already added the “Hyper-V” and “File Services” roles.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hyperv04.jpg&quot; alt=&quot;Microsoft Hyper-V&quot; title=&quot;Microsoft Hyper-V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Before you can start using the Hyper-V role you will need to re-start your machine. Once complete you will find the role available from the Server Manager, where you can start creating new virtual machines by clicking “New” from the right pane.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hyperv05.jpg&quot; alt=&quot;Microsoft Hyper-V&quot; title=&quot;Microsoft Hyper-V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At this point a simple wizard will guide you through the setup process. It allows you to configure certain aspects of your virtual machine, such as memory, storage and network settings. If you are unsure about a particular setting I recommend you select the default value.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hyperv06.jpg&quot; alt=&quot;Microsoft Hyper-V&quot; title=&quot;Microsoft Hyper-V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once configured, the guest operating system installation will begin. This is the same as if you were installing the operating system on a physical machine. The final phase is to enable Remote Desktop on the guest virtual machine so that it can be accessed directly over the network.&lt;/p&gt;

&lt;p&gt;That’s it! You now have Hyper-V up and running and a guest operating system available from any device that has access to an RDP client (for example, Windows, Mac OS X, iOS, etc).&lt;/p&gt;

&lt;p&gt;At any point you can return to the main Hyper-V server to make changes to your configuration or modify / create new virtual machines. The main Hyper-V settings can be accessed from the Server Manager by clicking “Hyper-V Settings” from the right pane.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hyperv07.jpg&quot; alt=&quot;Microsoft Hyper-V&quot; title=&quot;Microsoft Hyper-V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can also modify any virtual machine by highlighting it through Server Manager and then clicking “Settings” from the right pane. Please note that for some settings to be modified the virtual machine must first be powered off.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hyperv08.jpg&quot; alt=&quot;Microsoft Hyper-V&quot; title=&quot;Microsoft Hyper-V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you start to add more virtual machines be sure to keep an eye on your hardware capacity through “Windows Task Manager”. Although Hyper-V will do a good job of managing the available resources, you still want to ensure you have enough physical memory and storage to meet your virtual machines needs.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hyperv09.jpg&quot; alt=&quot;Microsoft Hyper-V&quot; title=&quot;Microsoft Hyper-V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Hopefully this article has been helpful. For more information head over to the &lt;a href=&quot;http://www.microsoft.com/hyper-v-server/en/us/default.aspx&quot;&gt;Microsoft Hyper-V website&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 12 Aug 2011 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2011/08/12/Configuring-Hyper-V/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2011/08/12/Configuring-Hyper-V/</guid>
      </item>
    
      <item>
        <title>VMware Fusion Tips</title>
        <description>&lt;p&gt;I’m a big user of virtualisation, both at home and at work and thankfully when it comes to client virtualisation on the Mac, there are a number of great solutions. Personally, I use &lt;a href=&quot;http://www.vmware.com/uk/products/fusion.html&quot;&gt;VMware Fusion (VMWF)&lt;/a&gt;, primarily because I am most familiar with VMware products, however Parrelles Desktop and VirtualBox are also very popular solutions.&lt;/p&gt;

&lt;p&gt;As I have been using client virtualisation on the Mac from many years, I thought I would post a few hints and tips that I have learnt along the way. Although the information below is primarily based on VMWF, it should also be transferable to other client viurtualisation platforms.&lt;/p&gt;

&lt;p&gt;Before starting, the usual disclaimer. These tips are what I have found to work well for me, however as with all technology, your specific configuration may deliver different results. Therefore look at this as a guide to help find what works best for your setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory (RAM) Allocation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When it comes to virtual machines, memory (RAM) is very important. When you configure a virtual machine in VMWF you set how much memory you want to assign it (this is a fixed value). However you have to keep in mind that Mac OS X also needs a certain amount of memory to continue to operate (2048MB minimum for Mac OS X Lion). Therefore the number of virtual machines you can run simultaneously is generally defined by how much memory you have. Below I have outlined the minimum amount or memory you should allocate to the guest operating system (note, this is minimum, you may need to assign more for certain tasks).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Windows XP = 1024MB&lt;/li&gt;
  &lt;li&gt;Windows Vista = 2048MB&lt;/li&gt;
  &lt;li&gt;Windows 7 = 2048MB&lt;/li&gt;
  &lt;li&gt;Windows Server = 2048MB&lt;/li&gt;
  &lt;li&gt;Ubuntu = 1024MB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a result, if you are running Mac OS X Lion and have 4GB of memory available, then you would be able to run two Windows XP virtual machines or one Windows 7 virtual machine, while maintaining usable performance (the image below shows the VMWF memory options).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vmwftips01.jpg&quot; alt=&quot;VMware Fusion&quot; title=&quot;VMware Fusion&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Processor Configuration (Multi-Core / x64):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have a multi-core Mac, I recommend only assigning half the available cores (seen as processors in VMWF) to the virtual machines, therefore leaving half dedicated to Mac OS X. For example, if you have a dual core Mac, you would only assign one core (processor) to the virtual machines. However, if you have a quad-core Mac, you can assign two cores. The good thing about processor performance is that it can dynamically scale depending on the usage, therefore if you have multiple virtual machines running, but all sitting idle, then the majority of your processing power will be available for use in Mac OS X.&lt;/p&gt;

&lt;p&gt;Regarding 32bit vs 64bit guest operating systems, for Windows XP, always use 32bit (as the 64bit version is not well supported). However, for Windows Vista and 7 I recommend you use a 64bit version, as this will enable VMWF to use Intel’s VT hardware extensions, which should perform better for call-heavy workloads.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Storage (IDE vs SCSI):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a general rule, virtual SCSI drives perform better than virtual IDE drives. However, Windows XP does not come with SCSI support unless you install using the VMWF “Easy Install” option, as this will automatically install the required drivers. You can also manually install the drivers during the installation of Windows XP as they can be downloaded from the VMware support website. Windows Vista and 7 will install natively using SCSI.&lt;/p&gt;

&lt;p&gt;Some forums claim that static pre-allocated disks are faster than dynamic disks. Although this might be true, I have not seen any real world difference. Therefore I recommend using dynamic disks, unless storage space really isn’t an issue for you.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vmwftips02.jpg&quot; alt=&quot;VMware Fusion&quot; title=&quot;VMware Fusion&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Other Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Running a file-based virtual machine is much faster than a boot-camp partition. This is because accessing data on the NTFS boot-camp partition is slower than a native HFS+ partition.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Windows Vista is a dog (in more ways than one), therefore avoid using where possible. I recommend both Windows XP or Windows 7.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Always run your virtual machines from the fastest physical storage that you have available (for example, solid state). If you have multiple storage options and all are equal, then run the virtual machines from a secondary disk, as this should improve overall performance.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;http://www.mcetech.com/optibay&quot;&gt;OptiBay&lt;/a&gt;, used for adding additional storage to your MacBook (Pro) is not officially supported by VMWF and has been known to cause significant performance issues. There is currently no known workaround for this issue.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sun, 07 Aug 2011 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2011/08/07/VMware-Fusion-Tips/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2011/08/07/VMware-Fusion-Tips/</guid>
      </item>
    
      <item>
        <title>Cryptocurrency</title>
        <description>&lt;p&gt;I am always interested in exploring how new technologies are transforming traditional business models. An emerging example of this is cryptocurrency.&lt;/p&gt;

&lt;p&gt;Cryptocurrency is a digital asset designed to work as a medium of exchange using cryptography to secure the transactions and to control the creation of additional units of the currency.&lt;/p&gt;

&lt;p&gt;In short, cryptocurrency is a subset of digital currency, which exhibits properties similar to physical currency, but allows for instantaneous transactions and borderless transfer of value.&lt;/p&gt;

&lt;p&gt;The most popular cryptocurrency is &lt;a href=&quot;https://bitcoin.org&quot;&gt;Bitcoin&lt;/a&gt;, which first emerged in 2008 when Satoshi Nakamoto (a person or group acting under a pseudonym), published a white paper titled “&lt;a href=&quot;https://bitcoin.org/bitcoin.pdf&quot;&gt;Bitcoin: A Peer-to-Peer Electronic Cash System&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;The paper highlighted two specific cryptocurrency challenges and proposed viable solutions:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Challenge One:&lt;/strong&gt; The inability to transfer money digitally between willing participants without the need of a trusted third party.&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Solution One:&lt;/strong&gt; A peer-to-peer currency capable of maintaining its value without a central authority.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Challenge Two:&lt;/strong&gt; A function needed to transfer money digitally, was the ability to establish the order of transactions to avoid double spending.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Solution Two:&lt;/strong&gt; A decentralized digital ledger capable of establishing the order of transactions, distributed to computers around the world.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This thinking formed the basis of Bitcoin, as well as the underlying technologies such as block chain, which is a digital ledger of economic transactions and arguably more important than Bitcoin itself.&lt;/p&gt;

&lt;h4 id=&quot;what-is-bitcoin&quot;&gt;What is bitcoin?&lt;/h4&gt;

&lt;p&gt;Bitcoin is a decentralized peer-to-peer electronic version of physical currency, which maintains its value without backing or inherent value. It allows for the transfer of money digitally without a central authority (such as a bank).&lt;/p&gt;

&lt;p&gt;The first standardized value of Bitcoin was set on 5th October 2009 at $.0008, which meant that $1 USD equaled 1309.03 Bitcoins (BTC).&lt;/p&gt;

&lt;h4 id=&quot;how-does-bitcoin-work&quot;&gt;How does Bitcoin work?&lt;/h4&gt;

&lt;p&gt;As a user, you will need access to a &lt;strong&gt;digital wallet&lt;/strong&gt;, which stores the digital credentials for your Bitcoin holdings and allows you to access and spend them.&lt;/p&gt;

&lt;p&gt;The most important part of the Bitcoin cryptocurrency is the shared public ledger, which is known as the &lt;strong&gt;block chain&lt;/strong&gt;. All confirmed transactions are included in the block chain, which enables each digital wallet to calculate their spendable balance, as well as verify all new transitions. The integrity and the chronological order of the block chain is enforced with cryptography.&lt;/p&gt;

&lt;p&gt;A transaction is a transfer of value between digital wallets that gets included in the block chain. Digital wallets store a &lt;strong&gt;private key&lt;/strong&gt;, which is used to sign transactions, providing proof of ownership. All transactions are broadcast publicly between users and get confirmed by the network through a process called mining.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mining&lt;/strong&gt; is a distributed consensus system that is used to confirm waiting transactions by adding them to the block chain. This process enforces the chronological order in the block chain, which protects the network and allows different computers to agree on the state of the system. This ensures that no individual can control what is included in the block chain, replace parts of the block chain or manipulate the outcome.&lt;/p&gt;

&lt;h4 id=&quot;what-is-mining&quot;&gt;What is mining?&lt;/h4&gt;

&lt;p&gt;Mining is an integral part of Bitcoin and conceptually can be compared to gold mining. For example, gold must be mined out of the ground, while Bitcoin must be mined via digital means.&lt;/p&gt;

&lt;p&gt;Similar to gold, Bitcoin has a limited supply, approximately 21 million Bitcoins (20999999.9769 BTC). This limit was put in place by Satoshi Nakamoto at the inception of Bitcoin to help control supply.&lt;/p&gt;

&lt;p&gt;Bitcoin mining is the process that helps to keep the block chain consistent, complete and unalterable by repeatedly collecting and verifying newly broadcast transactions. Within reason, anyone with a computer can become a Bitcoin miner and contribute computing resources to this process (similar to &lt;a href=&quot;https://setiathome.berkeley.edu&quot;&gt;SETI@home&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The reason Bitcoin miners contribute their computing resources to help process and verify transactions, is that they are given Bitcoins as a reward. As a result, miners essentially mine Bitcoins (like gold), which have an associated value.&lt;/p&gt;

&lt;p&gt;Knowing that there are a limited number of Bitcoins (21 million), their numbers are carefully released (roughly every ten minutes) and the rate at which they are generated drops by half every four years until all Bitcoins are in circulation. At this time, 2140 is the estimated date that the last Bitcoin will be mined based on the four-year cycle.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;Cryptocurrency and specifically Blockchain is an incredibly exciting space, demonstrating again that technology can have a profound impact on traditional business models. Imagine a world where cryptocurrency is the standard and the need for a central authority (e.g. Bank) is removed. The political, social and economic implications are fascinating and will be very interesting to watch!&lt;/p&gt;
</description>
        <pubDate>Tue, 02 Aug 2011 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2011/08/02/Cryptocurrency/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2011/08/02/Cryptocurrency/</guid>
      </item>
    
      <item>
        <title>Linux Directory Guide</title>
        <description>&lt;p&gt;I have been using Linux since 2001 (starting with &lt;a href=&quot;https://distrowatch.com/?newsid=00044&quot;&gt;Mandrake Linux&lt;/a&gt;), but even with years of usage, the directory structure can still be confusing.&lt;/p&gt;

&lt;p&gt;Therefore, outlined below is a handy guide, which outlines the first level of the directory tree, including descriptions. Although minor differences will exist, this should be the same for all major Linux distributions (&lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;, &lt;a href=&quot;https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux&quot;&gt;RHEL&lt;/a&gt;, &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora&lt;/a&gt;, etc.)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/&lt;/strong&gt; - The root directory. Only the root user has write privilege under this directory.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/bin/&lt;/strong&gt; - User binaries (applications) that must be present when the system is mounted in single-user mode. For example, system applications and utilities such as the bash shell are located in “/bin/”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/boot/&lt;/strong&gt; - Boot loader files, including GRUB and Linux kernels. The boot loader configuration files are located in “/etc/”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/dev/&lt;/strong&gt; - Device and virtual-devices files. For example, Linux exposes devices as files, where “/dev/sda/” would represent a SATA device.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/etc/&lt;/strong&gt; - System configuration files. User configuration files are located in the user home directory.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/home/&lt;/strong&gt; - User home directory, containing user data files and configuration files.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/lib/&lt;/strong&gt; - Essential shared libraries, needed by the essential binaries in the “/bin/” and “/sbin/” directories.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/media/&lt;/strong&gt; - Removable media, where removal media devices are mounted. For example, optical media.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/mnt/&lt;/strong&gt; - Temporary Mount Points, where other temporary file systems are mounted.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/opt/&lt;/strong&gt; - Optional packages, used for add-on applications and proprietary software.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/proc/&lt;/strong&gt; - Kernel and process files, including information about running process. For example, the “/proc/{pid}/” directory contains information about the process with that particular process ID.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/root/&lt;/strong&gt; - The home directory of the root user. For example, the root user is not located at “/home/root/”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/sbin/&lt;/strong&gt; - System binaries, containing essential binaries used by the root user for system administration.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/selinux/&lt;/strong&gt; - Security-Enhanced Linux (SELinux) is a Linux kernel security module that provides a mechanism for supporting access control security policies, including mandatory access controls. SELinux is used by Red Hat Enterprise Linux and Fedora.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/srv/&lt;/strong&gt; - Service data, containing data for services provided by the system. For example, web assets being served by a HTTP web server.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/tmp/&lt;/strong&gt; - Temporary files, which are commonly deleted as part of housekeeping activities.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/usr/&lt;/strong&gt; - User binaries and read-only data, containing applications and files used by the user. For example, non-essential applications are located inside the “/usr/bin/” directory instead of the “/bin/” directory.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;/var/&lt;/strong&gt; - Variable data files, providing a writable location for the “/usr/” directory. For example, log files.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To explore your directory structure, I would recommend using the “tree”, which is a Linux tool designed to show the directory tree.&lt;/p&gt;

&lt;p&gt;To install “tree” on &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;, simply running the following terminal command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt install tree
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
To install “tree” on &lt;a href=&quot;https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux&quot;&gt;RHEL&lt;/a&gt; or &lt;a href=&quot;https://getfedora.org/&quot;&gt;Fedora&lt;/a&gt;, simply running the following terminal command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo dnf install tree
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
Once installed, run the command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;tree -L 1 /
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
This command will show the first level of the directory tree starting at the root directory.&lt;/p&gt;
</description>
        <pubDate>Sat, 12 Feb 2011 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2011/02/12/Linux-Directory-Guide/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2011/02/12/Linux-Directory-Guide/</guid>
      </item>
    
      <item>
        <title>Notational Velocity</title>
        <description>&lt;p&gt;I like my applications to be simple, intuitive and elegant, keeping the user interface minimal and only showing me the options that I really need. This is one of the things I love about the Mac, as there is always a little development house creating these perfect applications.&lt;/p&gt;

&lt;p&gt;A few years ago I went on the search for the perfect note taking application and I came back with &lt;a href=&quot;http://notational.net&quot;&gt;Notational Velocity&lt;/a&gt; for the Mac. This application has the world’s most simple user interface (with no buttons), but it allows you to create, edit and search for notes in just seconds, which is exactly what I want from a note taking application.&lt;/p&gt;

&lt;p&gt;When comparing Notational Velocity to the competition (Evernote and OneNote) you quickly discover that it lacks hundreds of “power” features, but this really doesn’t matter, because all I want is an application to take notes. If I want a word processor, I’ll head over to Pages or Word and if I need to grab screenshots or web clips then I’ll use LittleSnapper.&lt;/p&gt;

&lt;p&gt;There is however one feature I wish Notational Velocity did have, and that’s cloud synchronisation. For example I want my notes to be instantly and automatically available across all my devices, not just the one I took the note on.&lt;/p&gt;

&lt;p&gt;Thankfully, through the power of &lt;a href=&quot;http://www.dropbox.com&quot;&gt;Dropbox&lt;/a&gt; this is easily achieved. For those not familiar with Dropbox, it is a free “cloud” file synchronisation service. Therefore with a few simple changes to Notational Velocity, it can be used to automatically synchronise all your notes, making them available from any device with a browser.&lt;/p&gt;

&lt;p&gt;To set-up Notational Velocity and Dropbox for the first time, follow the steps below:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Download and install Notiaional Velocity and Dropbox.&lt;/li&gt;
  &lt;li&gt;In Notational Velocity, navigate to “Preferences &amp;gt; Notes &amp;gt; Storage”.&lt;/li&gt;
  &lt;li&gt;For “Store and read notes on disk as”, select “Plain Text Files”.&lt;/li&gt;
  &lt;li&gt;In the Finder, drag your Notational Data folder (by default in ~/Library/Application Support/) to the Dropbox folder in your home directory.&lt;/li&gt;
  &lt;li&gt;Dropbox will now synchronize your notes across all your devices and the cloud.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To access the same notes from Notational Velocity on a different computer, follow the steps below:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Follow steps 1–3 above.&lt;/li&gt;
  &lt;li&gt;Choose “Preferences &amp;gt; Notes &amp;gt; Read notes from folder”.&lt;/li&gt;
  &lt;li&gt;Select the Notational Data folder inside your Dropbox folder.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You now have the best of both worlds. The best note taking application for the Mac and the ability to access and edit your notes from any device with a broswer. Perfect!&lt;/p&gt;
</description>
        <pubDate>Sat, 22 Jan 2011 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2011/01/22/Notational-Velocity/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2011/01/22/Notational-Velocity/</guid>
      </item>
    
      <item>
        <title>Cisco AnyConnect 3.0</title>
        <description>&lt;p&gt;Over the past few months I have been beta testing Cisco AnyConnect 3.0, their next generation VPN solution. AnyConnect 3.0 marks a major milestone for Cisco as, for the first time, they bring all of their technologies for remote security / connectivity into one tool. The aim is to enable their vision for a “Borderless Network”, meaning seamless and secure connectivity, any time, anywhere and from any device. Could this be the product every Enterprise has been waiting for?&lt;/p&gt;

&lt;p&gt;Before we look at some of the new features in AnyConnect 3.0, let’s take a quick look at the overall SSL VPN market as it stands today. Below is the December 2010 Gartner Magic Quadrant, which shows only two vendors in the “leaders” quadrant. This has been the case for the past few years, with Juniper edging out Cisco.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/sslvpngartner2010.jpg&quot; alt=&quot;SSL VPN Gartner 2010&quot; title=&quot;SSL VPN Gartner 2010&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although I believe this assessment of the market is fair (as AnyConnect 3.0 was not available for review in December), I fully predict that the 2011 magic quadrant will show that Cisco have significantly closed the gap, if not overtaken Juniper as the market leader.&lt;/p&gt;

&lt;p&gt;So let’s take a look at a couple of the major new features of AnyConnect 3.0:&lt;/p&gt;

&lt;p&gt;Firstly, AnyConnect 3.0 has been re-written to enable easy customisation, via the use of modules. This means that you no longer need to install the entire AnyConnect package, but instead can pick the modules that you intend to use, resulting in a lightweight and efficient client. The modules available in AnyConnect 3.0 are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;AnyConnect IPsec/SSL VPN Module (including pre-login)&lt;/li&gt;
  &lt;li&gt;AnyConnect Network Access Manager Module&lt;/li&gt;
  &lt;li&gt;AnyConnect Posture Module&lt;/li&gt;
  &lt;li&gt;AnyConnect Telemetry Module&lt;/li&gt;
  &lt;li&gt;AnyConnect Web Security Module&lt;/li&gt;
  &lt;li&gt;AnyConnect Diagnostic and Reporting Module&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The other great thing about a modular configuration is that you can easily add or remove modules at any time, without impacting the core services. For example, as Cisco continue to improve AnyConnect, new modules will become available. If you decide to take advantage of these new services you can simply add them to your installation, safe in the knowledge that your existing install will continue to operate as expected. Personally I hope that one of the first modules Cisco looks to add is for WAN Optimisation, similar to “ProxyClient” offered by BlueCoat.&lt;/p&gt;

&lt;p&gt;The next big change is that for the first time AnyConnect 3.0 brings IPsec/IKEv2 and SSL full tunnel VPN compatibility in the same product. Previously AnyConnect 2.x only supported SSL based VPN and customers had to use the previous generation Cisco VPN Client to get IPsec support. This proved to be a major barrier for businesses who were looking to upgrade to AnyConnect, as although SSL VPN solutions have come a long way, it is still widely accepted in the industry (especially amongst security purists) that IPsec is better optimised for latency-sensitive traffic (such as voice and video).&lt;/p&gt;

&lt;p&gt;The final new feature worth mentioning is the web security module. This takes advantage of Cisco’s recent acquisition of ScanSafe, the cloud based web security service for web-virus, malware, content filtering and forensic analysis. This module is essentially a port of the ScanSafe Anywhere+ client, where Internet traffic is sent direct (either without a VPN connection or via split tunnelling), but corporate policies and security is still maintained by the highly configurable ScanSafe cloud service. This service is a key unique selling point for AnyConnect 3.0 as it offers total security, regardless of the traffic’s destination. This is perfect for roaming users that utilise cloud services, such as Google Apps, SalesForce.com or Amazon EC2, as it allows direct Internet access (via ScanSafe), without having to backhaul traffic over VPN through corporate data centres. Finally it is worth noting that you can install the AnyConnect Web Security module as a standalone product. This is useful if you want a robust cloud based web security service, but already have an existing VPN solution form another vendor (I have personally tested it with Juniper Network Connect 7.0). For more information about the web security module I suggest you head over to the ScanSafe Anywhere+ information page, as the product feature set is almost identical.&lt;/p&gt;

&lt;p&gt;Overall I believe AnyConnect 3.0 is a significant product release for Cisco. At launch it will be available for Windows XP to 7 (x86 / x64), Mac OS X and Linux as well as Apple iOS (iPhone and iPad). Although it should be noted that not all modules have been ported to the different platforms. Cisco have also promised support for other major mobile platforms such as Google Android (expect to see that release soon). In terms of management, the AnyConnect client (including the modules) is controlled by the Cisco ASA platform, where you can do everything from remote deployment (based on a posture check) and make real time configuration changes. If you just intend to use a standalone module, such as the web security, then you can do so without an ASA, although you would need to rely on another management product (such as Altiris) to deploy and update the software. The final thing worth noting is that even though AnyConnect 3.0 has compatibility for IPsec, it is not compatible with the previous generation 3000 series concentrator, therefore you will need to life cycle these devices to the ASA platform.&lt;/p&gt;

&lt;p&gt;As mentioned earlier, I feel that AnyConnect 3.0 is the product that gives Cisco the best remote access solution on the market. The main reason for this is that it delivers the total package of flexibility, simplicity and security, as well as being cross platform. In my experience even Juniper (current market leaders) can’t match this and although visionary products such as Microsoft DirectAccess and Netmotion Mobility XE may have advantages in specific areas, they are not yet suitable for business wide deployment.&lt;/p&gt;

&lt;p&gt;For more information on Cisco AnyConnect 3.0, including pricing and licensing options, head over to the &lt;a href=&quot;http://www.cisco.com/en/US/netsol/ns1049/index.html&quot;&gt;Cisco product page&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Mon, 17 Jan 2011 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2011/01/17/Cisco-AnyConnect/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2011/01/17/Cisco-AnyConnect/</guid>
      </item>
    
      <item>
        <title>MS Cloud Development</title>
        <description>&lt;p&gt;Today I attended a Microsoft Conference on Cloud Development in London. The main attraction at the event was that Steve Ballmer gave the introduction keynote and answered questions from the audience.&lt;/p&gt;

&lt;p&gt;The agenda for the event was as follows:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Steve Ballmer Introduction Keynote&lt;/li&gt;
  &lt;li&gt;Windows Phone 7&lt;/li&gt;
  &lt;li&gt;Windows Azure&lt;/li&gt;
  &lt;li&gt;Internet Explorer 9&lt;/li&gt;
  &lt;li&gt;Windows 7&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s jump straight to the hot topic; Steve Ballmer confirmed that Windows Phone 7 will be launched in the UK, and I quote, “in the next two weeks”. He did not provide any specifics on carriers or hardware, however he commented that the reason developers have not been provided test hardware prior to the official launch, was to help drive consumer excitement (see videos below for more details).&lt;/p&gt;

&lt;p&gt;Before I provide additional details on Windows Phone 7, I did manage to capture some of Steve’s opening keynote on Microsoft’s vision of cloud computing. I apologise for the shaky camera work and poor angles, however I was very aware that I was holding up an iPhone only a few meters in front of Microsoft’s CEO.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/YyUCdkpqd0c?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Unfortunately I don’t have Steve on camera confirming the Windows Phone 7 launch date, however I do have an interesting video of him discussing Microsoft’s mobile vision and how it compares to their main competitors. His comments regarding Google Android are especially interesting.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/cCkTctLfqF8?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The next video is Steve answering a question about the Windows Phone 7 launch strategy. I look at this answer as “classic Steve Ballmer”, watch the video to see what I mean.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/6XJsuBMjaO8?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Steve went on to speak about slate devices (as he calls them) and joked that he believes the iPad does not offer a good user experience. He confirmed that Microsoft have no plans at this time to develop a slate specific operating system or to port the Windows Phone 7 OS. Like at previous events, he spoke about hybrid tablets and how he believes these devices running Windows 7 offer a better end user experience. Personally I don’t agree with this statement and I’m not convinced he truly believes his own words, I think the real challenge is that Microsoft simply don’t currently have a product that can compete in this space. I suspect that over time, with the continued success of the iPad and other slate devices, we will eventually see Microsoft offer a better solution (although I think it will more likely be a custom version of Windows, instead of the Microsoft Courier).&lt;/p&gt;

&lt;p&gt;Finally, Steve also spoke briefly about other key Microsoft products. He referenced the success of Windows 7 and stated that “Microsoft were back on track” when it comes to scheduled operating system releases, hinting that Windows 8 may not be too far away. He also talked about Office, SharePoint and Windows Azure as key Microsoft products.&lt;/p&gt;

&lt;p&gt;This was the first time I have had the opportunity to listen to Steve Ballmer live and to ask him questions. To my surprise I found him to be an engaging speaker, as well as open to answer any question thrown at him. His presentation style is a little crazy (as shown in the videos) and I don’t always agree with his views on the future of technology, however he didn’t seem to take himself too seriously, almost playing off the persona that the media have created for him. Therefore, if Steve is ever giving a speech in your area, I would highly recommend that anyone interested in IT (or business) head along to check it out.&lt;/p&gt;

&lt;p&gt;Now that covers the Steve Ballmer keynote, let me give some additional details on the other topics covered at the event.&lt;/p&gt;

&lt;p&gt;Although all the agenda items were interesting I think the reason most people attended was to better understand development for Windows Phone 7 and how this relates to the cloud. The demonstrator ran through a number of scenarios, from coding through to deployment. I managed to grab a short video of him demonstrating the geo-location features and a weather application that pushes different types of notifications to the device.&lt;/p&gt;

&lt;p&gt;I also managed to grab an image of the final hardware requirements for Windows Phone 7 (shown below), and to be honest I don’t think anything has changed since MIX10, but it’s nice to see confirmation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/msclouddevelopment1.jpg&quot; alt=&quot;MS Cloud Development&quot; title=&quot;MS Cloud Development&quot; /&gt;&lt;/p&gt;

&lt;p&gt;An area that was interesting was deployment through the Application MarketPlace. Like Apple, Microsoft are only offering two methods of distributing applications. This is either to a limited number of devices through their development licence (you register your device with the development portal) or through the Application MarketPlace (AppStore). It is the MarketPlace where you should be deploying your applications and of course it gives you the ability to sell them, where Microsoft have promised that the developer will always receive a 70% split of the profit (any country specific charges will be absorbed by the 30%).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/msclouddevelopment2.jpg&quot; alt=&quot;MS Cloud Development&quot; title=&quot;MS Cloud Development&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Like with Apple, before you can start deploying your applications for Windows Phone 7 you need to sign up to be a developer. This will set you back £67, as shown in the image below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/msclouddevelopment3.jpg&quot; alt=&quot;MS Cloud Development&quot; title=&quot;MS Cloud Development&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally there were some interesting details on multi-tasking and the Microsoft Push Notification Service (shown in the image below). Again I was surprised by the similarities with the Apple iOS platform. It would appear that Microsoft and Apple are aligned in their vision of how a mobile device should operate, with performance, ease of use and battery life being key components.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/msclouddevelopment4.jpg&quot; alt=&quot;MS Cloud Development&quot; title=&quot;MS Cloud Development&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The other areas covered, Windows Azure, IE9 and Windows 7 were more developer specific and less unveiling of new features. As a result I will archive this information until I write an article on the individual topics (watch this space). If you can’t wait, then I suggest you head over the &lt;a href=&quot;http://www.microsoft.com/uk/techdays/&quot;&gt;Microsoft UK Tech Days&lt;/a&gt; website for details on how to get hold of the content (and videos).&lt;/p&gt;

&lt;p&gt;That brings me to and end of my overview of the Microsoft Cloud Development Conference. Hopefully you found the information useful. I also urge anyone who has the opportunity to head along to a Microsoft UK Tech Days event (as they are free), they are very well ran (lunch included) and offer an opportunity for you to get some inside information and ask any questions you might have. To find out when the next event is I suggest you follow &lt;a href=&quot;http://twitter.com/uktechdays&quot;&gt;UKTechDays&lt;/a&gt; on Twitter.&lt;/p&gt;
</description>
        <pubDate>Tue, 05 Oct 2010 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2010/10/05/MS-Cloud-Development/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2010/10/05/MS-Cloud-Development/</guid>
      </item>
    
      <item>
        <title>What is Usenet?</title>
        <description>&lt;p&gt;&lt;strong&gt;Ever heard of Usenet?&lt;/strong&gt; It is a system that has been around since 1980, although has not received much attention since the dawn of the broadband era. That being said, Usenet is still alive and well and has a few tricks up its sleeve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So what is Usenet?&lt;/strong&gt; Let’s start at the beginning. Usenet is a worldwide distributed Internet discussion system. Users read and post messages to one or more categories, known as newsgroups. These newsgroups are organised into hierarchies of subjects, for example “comp.”, which covers computer-related discussions (e.g. comp.software and comp.sys.mac). The system can be thought of as the predecessor to modern day Internet forums.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So what makes Usenet special?&lt;/strong&gt; Usenet has no central authority. Instead you have a number of newsgroup servers distributed across the globe, normally hosted by organisations and institutions, Internet service providers and dedicated Usenet service providers. When an end user posts to a news server, the message is stored locally on that server. That news server then forwards the message to all of its network neighbours that haven’t yet seen the article. The message then continues to propagate across other news servers, however only one copy of a message is stored per server. The image below helps explain the process:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/usenet.png&quot; alt=&quot;Usenet&quot; title=&quot;Usenet&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the diagram, a collection of Usenet servers has a peer-to-peer (P2P) feel to it, in that each server shares resources by exchanging them. However the big difference is that the end users don’t share the resources like they would with other traditional P2P systems, such as BitTorrent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So why use Usenet?&lt;/strong&gt; We mentioned that the Usenet messaging system is like a predecessor to Internet forums. This in itself is not that exciting, however Usenet also has the ability for users to share files (of any size). When you search the news server you are connected to for a particular file, it will check to see if any matching content has been propagated (and chances are it has). This means that you are able to download this content directly from your news server (even over SSL), while not having to re-share (upload) the content like on a traditional P2P network.&lt;/p&gt;

&lt;p&gt;This gives you a basic overview of Usenet, which should be enough to get you started. As with all things, the best way to learn is to get stuck in and therefore my suggestion is to head over to &lt;a href=&quot;http://www.panic.com/unison/&quot;&gt;Panic’s website&lt;/a&gt; (the guys behind the awesome Transmit and Coda) to download the free trial of Unison, which is their award winning Usenet client for the Mac. Panic even offer a free 24 hour pass to their news server to help get you started.&lt;/p&gt;

&lt;p&gt;In the following weeks, I will post a follow-up detailing how to get started with &lt;a href=&quot;http://www.panic.com/unison/&quot;&gt;Unison&lt;/a&gt; and take advantage of it’s advanced (but simple) feature set. Until then, have a play and don’t worry you can’t break anything.&lt;/p&gt;
</description>
        <pubDate>Mon, 06 Sep 2010 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2010/09/06/What-is-Usenet/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2010/09/06/What-is-Usenet/</guid>
      </item>
    
      <item>
        <title>iOS Configuration Utility</title>
        <description>&lt;p&gt;With the release of the iPad, Apple generated a lot of buzz as to whether we finally have a non-Windows based tablet that was suitable for the Enterprise. I took a look at this question in the article “&lt;a href=&quot;/2010/06/26/iPad-for-the-Enterprise/&quot;&gt;iPad for the Enterprise&lt;/a&gt;” and came to the conclusion that the iPad could be a fantastic presentation and sales tool, but due to most companies dependency on Microsoft technologies, only by virtualising Windows could it replace existing laptops for day to day use.&lt;/p&gt;

&lt;p&gt;In this article I want to take a look at another challenge faced by the iPad (and all other iOS devices) in the enterprise. How do companies support and manage these devices in the field?&lt;/p&gt;

&lt;p&gt;It is very clear that Apple focus their product range on the consumer space and although they have included enterprise features in recent iOS updates, the devices are still tied to the consumer software iTunes and the restrictive AppStore polices.&lt;/p&gt;

&lt;p&gt;Apple’s answer to these restrictions is the iPhone Configuration Utility (currently on version 3.0). Although it has iPhone in the name I expect it will be re-branded in the future as it actually supports all iOS devices, including the iPad. The iPhone Configuration Utility is available for Windows or Mac OS X and allows you to create custom configuration profiles for iOS based devices, that can be deployed over the air (via the web or e-mail). This allows administrators to apply custom configurations (such as WiFi, VPN and e-mail) as well as define security policies and restrict access to certain parts of the device. The policy itself can be deployed before the device is issued or over the Internet.&lt;/p&gt;

&lt;p&gt;The iPhone Configuration Utility is free for anyone to download and is very easy to use, unfortunately as with all things Apple you are restricted to a set of predefined configuration options and therefore don’t have the same granular control you have come expect in the Windows world.&lt;/p&gt;

&lt;p&gt;Let’s take a quick look at what features the iPhone Configuration Utility has to offer. The first thing you will note when opening the application is that it has the standard “Cocoa” feel to it (even on Windows). It has four simple options in the left menu, of which you will focus most of your time in “Configuration Profiles”. From here you will be able to create a custom profile as shown in the image below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/iphoneconfig01.jpg&quot; alt=&quot;iOS Configuration Utility&quot; title=&quot;iOS Configuration Utility&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The “Configuration Profiles” menu is split in to 16 categories:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/iphoneconfig02.jpg&quot; alt=&quot;iOS Configuration Utility&quot; title=&quot;iOS Configuration Utility&quot; /&gt;&lt;/p&gt;

&lt;p&gt;By selecting a category you can configure your specific settings. This can include multiple configurations under a single category, for example it is possible to pre-define multiple WiFi networks (including security settings) so that the iOS device will automatically be able to connect when in range.&lt;/p&gt;

&lt;p&gt;In my opinion the most interesting category is “Restrictions”. It is here where you can specify what features you want to enable (or disable). The following options are available for configuration:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/iphoneconfig03.jpg&quot; alt=&quot;iOS Configuration Utility&quot; title=&quot;iOS Configuration Utility&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see there is a broad set of options, including the ability to restrict access to core iOS applications, such as Safari, the AppStore, iTunes and YouTube. You can also configure what data you want the user to be able to store on the device, for example Movies, TV and Apps. For more information on the different iPhone Configuration Utility options check out my screenshot gallery.&lt;/p&gt;

&lt;p&gt;Once you have completed the configuration profile you are ready for deployment. This can be completed via the web, e-mail or directly connecting the iOS device via USB. The image below shows a directly connected iPad, from here you can install a selected profile, where you will be prompted to confirm on the iOS device itself. This is the easiest way to test new configuration profiles. If you decide to deply the profile via the web or e-mail you will need to use the share/export buttons in the top menu. From here you will also have the option to encrypt and self sign the configuration profile (otherwise things such as configured WiFi and VPN passwords will be shown in clear text).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/iphoneconfig04.jpg&quot; alt=&quot;iOS Configuration Utility&quot; title=&quot;iOS Configuration Utility&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once deployed the configuration profile can been seen on the iOS device under “Settings &amp;gt; Profile”. Depending on how the profile was configured, the admin can remove the profile from here by entering a pre-configured password. The profile itself sits on top of the operating system and does not require a restore to be installed or removed. If the device is restored to factory default setting via iTunes then the profile will be lost (unless a local backup is restored). Profiles are however not impacted by an iOS update.&lt;/p&gt;

&lt;p&gt;Although the iPhone Configuration Utility is a useful tool for enterprises when needing to pre-configure iOS devices, it does have some limitations. Firstly, you can only configure the options that Apple have specified, for example there is no way to restrict the ability for users to setup new WiFi or VPN connections, which may be a requirement for highly regulated industries. Also, although you can deploy the profile over the air, you can’t deploy native applications, for this you need to use the AppStore or a pre-configured development environment (where your devices Unique Device ID will need registered). As a result the configuration profile itself can’t be used as an over the air recovery facility.&lt;/p&gt;

&lt;p&gt;Another important part of iOS device support and management that works with the iPhone Configuration Utility is Mobile Device Management (MDM). This is configured as part of the profile and is essentially a web service that allows you to make changes to the device whilst it is in the field. Apple don’t offer their own MDM and as a result you are forced to use a third party service such as - MobileIron or Trust Digital. I plan to cover Mobile Device Management in a future article.&lt;/p&gt;
</description>
        <pubDate>Sun, 01 Aug 2010 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2010/08/01/iOS-Configuration-Utility/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2010/08/01/iOS-Configuration-Utility/</guid>
      </item>
    
      <item>
        <title>iPad for the Enterprise</title>
        <description>&lt;p&gt;“A magical and revolutionary product”, but is it for the enterprise?&lt;/p&gt;

&lt;p&gt;In my opinion the iPad is the first tablet computer that actually has some promise. It combines quality custom built hardware with an operating system that was designed from the ground up to be controlled with your finger. This combination is critical to guarantee a great user experience and is something that no other tablet before the iPad has been able to deliver.&lt;/p&gt;

&lt;p&gt;I can think of many examples of enterprise users (sales reps, execs, road worriers, etc) that have been searching for an ultra portable, simple to use, robust device, that has enough battery power to last all day. Up to now many have attempted to use small form factor laptops or netbooks to fill this gap, but unfortunately these devices have many limitations, such as poor build quality, poor performance, poor battery life and low resolution screens. Also, almost all of these devices run Windows XP/7 which no matter how Microsoft try and spin it, was simply not designed to be used on this type of device, resulting in constant frustration for the user. As a result you could argue that the iPad is the device everyone has been waiting for.&lt;/p&gt;

&lt;p&gt;Unfortunately for all of the iPad’s strengths, it does have some weaknesses. The majority of enterprises today are still heavily reliant on Microsoft products, such as Windows (Client &amp;amp; Server), Internet Explorer, Office and OCS. Out of the box, the iPad has support for Exchange, allowing users to access Microsoft’s email, calendaring and address book services, however there is no official version of Microsoft Office or Internet Explorer available. There are plenty of third party applications that do offer support for these products, such as Pages, Keynote and Numbers for Office and Atomic Browser which has an Internet Explorer compatibility mode, however these applications lack power features and are not guaranteed to be 100% compatible.&lt;/p&gt;

&lt;p&gt;The second big issue is Adobe Flash. It is well known that Apple do not believe in Flash and would prefer the world to make the jump to HTML5. Unfortunately it can take large organisations a long time to move to new technologies and as a result, I expect Flash to be be around for quite a while. There are currently no third party applications that provide true Flash support and there is little hope that Apple will ever allow an official solution.&lt;/p&gt;

&lt;p&gt;So, with the lack of enterprise application support, it may seem like the iPad simply isn’t up to the challenge. However, thanks to the advances in Desktop Virtualisation there may be a way to get the best of both worlds.&lt;/p&gt;

&lt;p&gt;Desktop Virtualisation works by separating the desktop environment from the end users physical machine. As a result the virtual desktop is actually running on a remote central server, instead of locally on the client. The user can work with the virtual desktop like normal, with the only difference being that all the applications, processes and data is stored and run centrally (normally in a data centre). This type of technology has many advantages when it comes to support, management and security, as all the user’s data is stored in a secure central location that can easily be accessed by administrators 24x7. Another major positive is that just about any device with a browser can be used to access the virtual desktop, including desktops, laptops, phones, tablets, etc. The only real downside is that a persistent connection must be maintained with the central server, which is fine if you are locally connected (on the LAN), however is more challenging when connecting remotely. Thankfully with 3G and 4G technologies being built into most modern devices (including the iPad) this is becoming less of an issue.&lt;/p&gt;

&lt;p&gt;So now that we know what a virtual desktop is, let’s see how they could be used on the iPad to remove some of the limitations highlighted earlier. The key players (in my opinion) in virtualisation are VMware and Citrix. Although both companies offer solutions for you to connect to a virtual desktop directly from a browser, due to the closed nature of Safari on the iPad this will not work. As a result you need to rely on specific applications downloaded from the Apple AppStore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wyse PocketCloud&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;VMware have not yet created an official application for the iPad to be able to connect to their virtual environments. However, due to the popularity of VMware products (both consumer and corporate) multiple third party developers have stepped up to the challenge. In my opinion, the best application on the market at the moment (that lets you connect to VMware View 3/4 infrastructure), is Wyse PocketCloud. This application allows you to easily configure (under 5 mins) your VMware View connection and then kick off your virtual session. Once the connection is established you are presented with a full virtual desktop with support for a virtual keyboard (on-screen) or bluetooth keyboard (obviously much easier to type on).&lt;/p&gt;

&lt;p&gt;I have already done some testing with Wyse PocketCloud and have been very impressed with the results. Below are some screen grabs of the connection process.&lt;/p&gt;

&lt;p&gt;Once you have configured your connection it will be displayed on the “My Computers” page. During my testing I have been connecting over VPN on a 8Mb/s DSL circuit. The loading process takes approximately 20 seconds on average.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wysepocketcloud01.jpg&quot; alt=&quot;iPad for the Enterprise&quot; title=&quot;iPad for the Enterprise&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once loaded you are presented with your standard Windows desktop. You can simply tap to click or bring up the full navigation bar by tapping the arrow in the bottom right corner. You can also use multi-touch gestures to pan and zoom.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wysepocketcloud02.jpg&quot; alt=&quot;iPad for the Enterprise&quot; title=&quot;iPad for the Enterprise&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The navigation bar gives you access to settings, fine pointer, virtual keyboard, right click and return to full screen.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wysepocketcloud03.jpg&quot; alt=&quot;iPad for the Enterprise&quot; title=&quot;iPad for the Enterprise&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As this is a full virtual environment, all standard Windows applications are available. This image below shows Word 2010 running.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wysepocketcloud04.jpg&quot; alt=&quot;iPad for the Enterprise&quot; title=&quot;iPad for the Enterprise&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally you can see the virtual keyboard, this clearly takes up a lot of screen real estate, however it is surprisingly usable when working on a flat surface. I would still recommend connecting a bluetooth keyboard if you are going to use the virtual environment for a prolonged period.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/wysepocketcloud05.jpg&quot; alt=&quot;iPad for the Enterprise&quot; title=&quot;iPad for the Enterprise&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Keep an eye out for my full video demonstration in the next couple of weeks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Citrix Receiver for iPad&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The second application is official from Citrix, known as Receiver for the iPad. Instead of just offering you a full virtual desktop (like Wyse PocketCloud) it also allows you to customise the experience by granting access to specific applications such as Word, etc, directly from the Citrix workspace. This custom access feels right at home on the iPad, with an intuitive and easy to user navigation system, as well as powerful connection features. The video demo from Citrix below shows the application in action:&lt;/p&gt;

&lt;p&gt;In my opinion Citrix receiver feels more polished then Wyse PocketCloud and is very quick and easy to use when accessing any virtual application or document. The application also has some nice iPad specific touches, like being able to use your iPhone or iPod Touch as a track pad whilst connected to the virtual environment. I plan to do some extended testing of the Citrix Receiver over the next few weeks to better understand its strengths and weaknesses. As soon as I have more I will post a follow-up article.&lt;/p&gt;

&lt;p&gt;This concludes my first roundup of iPad for the enterprise. So far I have been very impressed with the results, as it would appear the combination of iPad and virtual machine delivers all the strengths of the iPad and iOS platforms, while still providing easy access to the full enterprise environment. As previously mentioned, over the next few weeks I intend to do a deeper dive into both the technologies detailed above and will hopefully post video demonstrations of them both in action.&lt;/p&gt;
</description>
        <pubDate>Sat, 26 Jun 2010 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2010/06/26/iPad-for-the-Enterprise/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2010/06/26/iPad-for-the-Enterprise/</guid>
      </item>
    
      <item>
        <title>Importing an iPad</title>
        <description>&lt;p&gt;Since getting my iPad I have had some questions about using a US imported iPad in the UK. With only 17 days until the official UK launch, I wasn’t going to bother writing an article, however because you can make a nice saving from purchasing an iPad in the US this information is still valid.&lt;/p&gt;

&lt;p&gt;The first thing to note is that although the iPad is “Designed in California”, it is manufactured in China. So no matter where in the world you buy an iPad, it started life in China. This is actually an advantage for importing as it means that each iPad is designed to the same specification with only the peripherals being country independent (power adapter, etc). Instead of providing a lengthly back story about how Apple handle their international sales, I thought would jump straight to the good stuff. In the examples below I have made the assumption that you are in the UK and importing from the US, however this information should be the same for any country.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I charge the iPad?&lt;/strong&gt; Yes - The iPad comes with a standard Apple USB cable and power brick with interchangeable AC adapter plugs. You can either charge directly from a USB port on any modern computer or purchase the Apple World Travel Adapter Kit, which will provide you with required AC adapter plugs. If you already own an iPhone, iPod Touch or Mac charger then you can actually remove the AC adapter plug and connect it to your iPad power brick. This will work instantly and save you the cost of the world travel adapter kit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I charge the iPad with my iPhone charger?&lt;/strong&gt; Yes (although not recommended) - The iPhone power adapter is 5W verses 10W for the iPad power adapter. As a result it should not damage your iPad, however charge time will be significantly increased. As stated in the previous answer, if you own an iPhone charger you can simply remove the AC adapter plug and connect it to you iPad power brick, this will give you the full 10W charging potential.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does wireless work?&lt;/strong&gt; Yes (Standard 802.11a/b/g/n)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does 3G work?&lt;/strong&gt; Yes (Standard GSM used by all major carriers in the UK)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I connect to the UK iTunes?&lt;/strong&gt; Yes - The only difference is that you won’t have access to the entire iPad App catalogue until it is officially made available in the UK (May 28th). You can however access the US catalogue by setting up a free US iTunes account (see below for more details).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I use my iTunes content bought in the UK?&lt;/strong&gt; Yes - any content bought in the UK with your UK Apple ID (music, video, books, apps, etc) will all sync like normal to your US iPad. It is also fine to have content purchased from multiple countries (under different Apple ID’s) on the same iPad. The only difference is that when updating the content you will need to eneter the correct Apple ID for that country.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is there anything else I should worry about?&lt;/strong&gt; No, enjoy your iPad.&lt;/p&gt;

&lt;p&gt;The final part of the article is to explain how to connect and use the US iTunes store to download apps for your iPad. You only need to do this if you have imported an iPad to a country where it is not officially available, for the UK thats anytime before May 28th.&lt;/p&gt;

&lt;p&gt;First, open iTunes (any version / Mac OS X or Windows) and click “iTunes Store”. From here scroll down to the bottom and click on the country flag (it should be set to your current default).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/usitunes01.jpg&quot; alt=&quot;US iTunes&quot; title=&quot;US iTunes&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You will now be presented with a list of all the iTunes stores globally. Select “United States”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/usitunes02.jpg&quot; alt=&quot;US iTunes&quot; title=&quot;US iTunes&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once the US iTunes store has loaded, click “AppStore” and “iPad” to load the available iPad specific content. Scroll down to the “Free Apps” section and click the “Free” button on one of the apps. I went for iBooks as you will probably want it anyway. &lt;em&gt;It is important to complete this step for the next phase to work.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/usitunes03.jpg&quot; alt=&quot;US iTunes&quot; title=&quot;US iTunes&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Before you can download the app you will be asked to login to iTunes. As you dont have a US account click “Create New Account”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/usitunes04.jpg&quot; alt=&quot;US iTunes&quot; title=&quot;US iTunes&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You will now have to click through a couple of standard screens and enter a new (valid) e-mail address (I suggest you grab one from Google). Finally you will be prompted to select your payment method and enter an address. If everything has gone to plan you should be presented with the option “None” for payment. Now you just need to enter a valid US address and you are good to go.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/usitunes05.jpg&quot; alt=&quot;US iTunes&quot; title=&quot;US iTunes&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now you can download as many free apps as you want for your iPad and even purchase apps if you add an Apple iTunes gift voucher which can be bought online (the code is e-mailed to you).&lt;/p&gt;
</description>
        <pubDate>Wed, 12 May 2010 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2010/05/12/Importing-an-iPad/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2010/05/12/Importing-an-iPad/</guid>
      </item>
    
      <item>
        <title>DirectAccess Testing</title>
        <description>&lt;p&gt;DirectAccess is a new feature in Windows 7 and Windows Server 2008 R2 that enables remote users to securely access shared folders, web sites, and applications without connecting to a virtual private network (VPN). The main advantage this has over traditional VPN solutions, is that it is integrated into the Operating System so that whenever you have an Internet connection available, Windows will automatically attempt connect to your corporate network. If your connection drops or you change location, Windows will continuously attempt to reconnect on your behalf.&lt;/p&gt;

&lt;p&gt;With the release of Windows 7 in October 2009, I have been eagerly waiting for some new information on DirectAccess. Unfortunately it seems like the whole industry is waiting for the same thing and the only company to have delivered DirectAccess so far is Microsoft. As a result, myself and a colleague have setup a DirectAccess test environment to help us better understand the product and see if it lives up to Microsoft’s bold claims.&lt;/p&gt;

&lt;p&gt;The setup was configured using the &lt;a href=&quot;https://static.squarespace.com/static/4ff3e918e4b03ec22b113d00/533c2624e4b03a432360356b/533c2626e4b03a432360400f/1269352953513/DirectAccess%20Test%20Lab%20Setup.pdf&quot;&gt;Microsoft DirectAccess test lab setup guide&lt;/a&gt;. The initial setup is for simulation purposes only and does not connect over the Internet, however it does validate the architecture, configuration and prove the concept. The diagram below shows an overview of the test setup:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/directaccesstest01.jpg&quot; alt=&quot;Microsoft DirectAccess Testing&quot; title=&quot;Microsoft DirectAccess Testing&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In summary:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;DA1 (DirectAccess Server), DC1 (Domain Controller) and APP1 (Application Server) are all directly connected to the corporate network (10.0.0.0/24).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;INET1 and NAT1 simulate the Internet, the INET1 server provides DNS and DHCP services, while NAT1 simulates a home broadband router that performs network address translation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;DA1 (DirectAccess Server) also has a connection to the Internet as it acts as your termination point (or concentrator in the Cisco world).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A client machine that can connect directly to the corpnet (simulating work LAN), Internet (simulating a direct Internet connection) or homenet (simulating your home Internet connection).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The video below shows the test lab setup and demonstrates connecting a client to the corporate network and then directly to the Internet. When connected to the Internet you can see DirectAccess seamlessly establish the connection with the corporate network allowing you to access the Intranet and file shares as if you were connected locally.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Ok_naPX92lM?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;em&gt;Please Note: The video was shot on an iPhone and as a result the sound levels are not great. If you are having issues please connect headphones.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The next video adds the NAT1 server which simulates a user connecting from their home through a standard Internet router. During this demonstration we also look at Teredo tunnelling and IP-HTTPS which are key protocols that allow DirectAccess to work.&lt;/p&gt;

&lt;p&gt;Teredo tunnelling is designed to grant IPv6 connectivity to nodes that are located behind IPv6-unaware NAT devices (the majority of home Internet routers). It defines a way of encapsulating IPv6 packets within IPv4 UDP datagrams that can be routed through NAT devices and on the IPv4 Internet, allowing DirectAccess to connect.&lt;/p&gt;

&lt;p&gt;In certain situations Teredo tunnelling will still fail due to specific ports being blocked. If this happens, Windows 7 will attempt to use the IP-HTTPS protocol which uses SSL on TCP port 443 to connect the DirectAccess client to a DirectAccess server on the edge of your corporate network.&lt;/p&gt;

&lt;p&gt;Without these two protocols DirectAccess would not be able to establish a connection in common real world scenarios such as behind a device performing NAT or from networks with tight port restrictions on their network edge (such as other corporate networks).&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/YabXWJqa5m4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;em&gt;Please Note: The video was shot on an iPhone and as a result the sound levels are not great. If you are having issues please connect headphones.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That concludes this stage of our testing. To summarise, in this simulation we have successfully demonstrated Microsoft DirectAccess establishing a connection when connected directly from the Internet and from behind a device performing NAT, such as a home Internet router. We have also simulated the use of IP-HTTPS where specific ports are blocked and Teredo tunnelling is unable to operate.&lt;/p&gt;

&lt;p&gt;This testing is just the beginning. The next stage is to move this simulation into a real world scenario, where the DirectAccess server is actually connecting over the Internet. I also intend to post a follow-up showing the individual configuration on each server (however this information can already be found in the Microsoft DirectAccess test lab setup guide.&lt;/p&gt;

&lt;p&gt;It is still too early to provide a verdict as to whether DirectAccess will be a success, however as testing progresses we should start to unravel its secrets and understand how it stands up to everyday use.&lt;/p&gt;
</description>
        <pubDate>Tue, 23 Mar 2010 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2010/03/23/DirectAccess-Testing/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2010/03/23/DirectAccess-Testing/</guid>
      </item>
    
      <item>
        <title>Restoring a Palm Pre</title>
        <description>&lt;p&gt;I am a big fan of webOS, the operating system created by Palm for their Pre and Pixi phones. In my opinion it handles multi-tasking better then anything else on the market and thanks to its Linux heritage has a buzzing hacking/modding community.&lt;/p&gt;

&lt;p&gt;Unfortunately anyone that has used a Palm Pre will know that webOS still has quite a few bugs. These bugs can result in your phone freezing when completing certain tasks (language selection) or randomly restarting/shutting down.&lt;/p&gt;

&lt;p&gt;Apart from these bugs being very frustrating, they are also worrying to a non-techie. Thankfully there is a way to restore your phone to default no matter how messed up it is. So let’s get started (I suggest you read through all twelve steps before proceeding).&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;First you will need to download &lt;a href=&quot;http://forum.xda-developers.com/showthread.php?t=1771976&quot;&gt;webOSDoctor&lt;/a&gt;. This is an official restore application from Palm for webOS, but there are specific versions for every provider and for each new firmware release. If you follow the Palm download steps it will ensure you get the correct version. webOSDoctor is a JAVA application so should run on Windows, Mac OS X and Linux, as long as you have the latest version of JAVA installed.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Turn off your Palm Pre.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Remove the battery.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Insert the micro-USB power cable in to your Palm Pre, but do not insert the other end into the wall or computer.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Press and hold the “volume-up” key on the Palm Pre.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;While holding the “volume-up” key, insert the other end of the micro-USB power cable into the wall for charging.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A question mark should appear on the screen.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Still holding the “volume-up” key, insert the battery.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A USB symbol should appear on the screen.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Release “volume up” key.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Remove micro-USB power cable and plug the Palm Pre in to your computer.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Run webOSDoctor (which you downloaded at step 1) and follow the on-screen instructions. This will restore your Palm Pre to factory default settings.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your Palm Pre should now be back in working order. If you have any issues feel free to contact me and I’ll do my best to help.&lt;/p&gt;
</description>
        <pubDate>Tue, 02 Mar 2010 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2010/03/02/Restoring-a-Palm-Pre/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2010/03/02/Restoring-a-Palm-Pre/</guid>
      </item>
    
      <item>
        <title>BT FTTC</title>
        <description>&lt;p&gt;If you live in the UK you only really have two options when it comes to Internet. Either you select a DSL service provided over your standard local telephone network, or cable primarily provided by Virgin Media.&lt;/p&gt;

&lt;p&gt;The most common DSL technologies in use today are ADSL and if you are lucky ADSL2+. The biggest weakness of DSL is the reliance on the copper infrastructure, which results in significant performance degradation the further you are from your local exchange. For example, ADSL2+ has a maximum theoretical bandwidth of 24Mb/s downstream, however to get that speed you would literally need to be attached to your local exchange. Most common ADSL speeds across the UK range from 2Mb/s up to 8Mb/s downstream. If you have cable you have the option for greater performance, currently up to 50Mb/s downstream, however only approximately 50% of the UK is connected and therefore cable has limited consumer reach.&lt;/p&gt;

&lt;p&gt;Although these performance numbers probably don’t sound too bad for the average user, when you consider countries like South Korea are currently offering to the majority of households 100Mb/s downstream for less than £30 a month, with plans for aggressive expansion up to 1Gb/s downstream, suddenly the UK infrastructure looks quite obsolete.&lt;/p&gt;

&lt;p&gt;Thankfully BT (who own most of the standard local telephone network across the UK) aim to improve the situation with their Fibre to the Cabinet (FTTC) roll-out which began in 2009.&lt;/p&gt;

&lt;p&gt;Fibre to the Cabinet (FTTC) is the generic term for broadband network architecture delivered by optical fibre up to your local cabinet. As a result, users are able to receive significant performance increases as the fibre is less susceptible to interference and is capable of maintaining higher bandwidth over longer distances. “To the Cabinet” means that you will be connected by fibre from your local exchange to your local cabinet which is normally no more then a few hundred meters from your home. As a result, only the last few hundred metres relies upon the existing copper infrastructure which should allow for up to 40Mb/s downstream.&lt;/p&gt;

&lt;p&gt;As well as the switch from copper to fibre, DSL has also evolved to VDSL2. This new technology theoretically provides data rates exceeding 100Mb/s simultaneously in both downstream and upstream directions. The maximum available bit rate is achieved at a range of about 300 metres, which makes it the perfect technology to accompany the BT FTTC roll-out.&lt;/p&gt;

&lt;p&gt;The downside to this technology is that it will take time to get enabled in your area. The infrastructure is being delivered by BT Openreach and involves a significant amount of work. You will also need a new VDSL2 compatible modem/router to be able to terminate the new connection. BT have predicted that only 40% of the UK will be enabled by 2012.&lt;/p&gt;

&lt;p&gt;To check when your area will be completed head over to the &lt;a href=&quot;https://www.productsandservices.bt.com/products/infinity-broadband&quot;&gt;BT Infinity website&lt;/a&gt; (Infinity is what BT are calling their fibre broadband service). From here you can enter your BT phone number to check for availability. Thankfully my area was one of the first in the UK to be completed so I receive the following results:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/btfttc01.png&quot; alt=&quot;BT FTTC&quot; title=&quot;BT FTTC&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although it could be a long wait before all of the UK infrastructure is upgraded, at least there is now a plan for the future and the advantage of FTTC is that the next logical step is FTTP (Fibre to the Premises) which will deliver fibre right to your home and should offer speeds up to and beyond 100Mb/s downstream.&lt;/p&gt;
</description>
        <pubDate>Fri, 05 Feb 2010 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2010/02/05/BT-FTTC/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2010/02/05/BT-FTTC/</guid>
      </item>
    
      <item>
        <title>Boxee Beta</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://boxee.tv&quot;&gt;Boxee&lt;/a&gt; is a free, cross-platform media centre application, based on XBMC. I have been testing it since late 2008 and consider it to be one of the best non-commercial applications available.&lt;/p&gt;

&lt;p&gt;The thing that makes Boxee so great, is that the development team listen closely to the community and focus their time adding the extra functionality that people actually want. Anyone is able to download and install the Boxee alpha, which is available on OS X, Windows, Linux and even AppleTV. As Boxee is based on XBMC it already had a fantastic foundation, however, the team have worked hard to go beyond its original design, providing a truly unique experience.&lt;/p&gt;

&lt;p&gt;Last night during a Boxee conference in Brooklyn the development team reached a major milestone, proudly unveiling both the Boxee beta and a hardware contract with D-Link to provide the long discussed Boxee Box.&lt;/p&gt;

&lt;p&gt;The beta has not yet been made available to the public, but the Boxee development team have released some screenshots to help build the hype. Anyone familiar with the alpha will instantly realise the user interface has been dramatically overhauled and in my opinion is looking better then ever.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/boxeebeta01.jpg&quot; alt=&quot;Boxee Beta&quot; title=&quot;Boxee Beta&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/boxeebeta02.jpg&quot; alt=&quot;Boxee Beta&quot; title=&quot;Boxee Beta&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/boxeebeta03.jpg&quot; alt=&quot;Boxee Beta&quot; title=&quot;Boxee Beta&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/boxeebeta04.jpg&quot; alt=&quot;Boxee Beta&quot; title=&quot;Boxee Beta&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/boxeebeta05.jpg&quot; alt=&quot;Boxee Beta&quot; title=&quot;Boxee Beta&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The second exciting announcement was the Boxee Box, which is being manufactured by D-Link. Not much is known about the hardware being used, however it has be confirmed that it will playback 1080p video over HDMI. I assume that this means it is probably using the nVidia ION platform. The Boxee team did release a couple of teaser images of what the Box may look like:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/boxeebox01.jpg&quot; alt=&quot;Boxee Beta&quot; title=&quot;Boxee Box&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/boxeebox02.jpg&quot; alt=&quot;Boxee Beta&quot; title=&quot;Boxee Box&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/boxeebox03.jpg&quot; alt=&quot;Boxee Beta&quot; title=&quot;Boxee Box&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The expected price is around $200, although none of the specifics have been confirmed. I just hope it gets released outside the US. To download the alpha now, or to get more details on the beta and the Box head over to the &lt;a href=&quot;http://boxee.tv&quot;&gt;Boxee website&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Tue, 08 Dec 2009 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2009/12/08/Boxee-Beta/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2009/12/08/Boxee-Beta/</guid>
      </item>
    
      <item>
        <title>OpenDNS vs Google DNS</title>
        <description>&lt;p&gt;&lt;a href=&quot;hhttps://www.opendns.com&quot;&gt;OpenDNS&lt;/a&gt; has always been the standard for public DNS, serving up to 20 billion DNS queries each day. They offer a host of features to improve your web performance, security and monitoring, and all you need to do is set your Internet/Network settings to their DNS servers, instead of the ones provided by your ISP.&lt;/p&gt;

&lt;p&gt;Today, in Google’s continued attempt to take over the Internet, they released their own public DNS service, which, like OpenDNS, aims to achieve improved website load times. The Google team had the following to say on their blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“As the web continues to grow, greater load is placed on existing DNS infrastructure. Since Google’s search engine already crawls the web on a daily basis and in the process resolves and caches DNS information, we wanted to leverage our technology to experiment with new ways of addressing some of the existing DNS challenges around performance and security.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Although I am sure that Google do care about improved performance and security for their customers, I think it is safe to assume that it is actually your DNS information that they are after. This is not necessarily a bad thing as the new data should allow them to improve your overall web experience, especially when using Google Apps.&lt;/p&gt;

&lt;p&gt;To try out Google DNS for yourself simply update your Internet/Network DNS settings to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;8.8.8.8&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;8.8.4.4&lt;/code&gt;. However, early testing using namebench (the open-source DNS Benchmark Utility) shows that if you live in the UK, OpenDNS is still quicker then Google DNS and together with the fact that OpenDNS also has a more feature rich platform and a proven track record, I personally don’t see any need to switch at this time. To start using OpenDNS update your Internet/Network DNS settings to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;208.67.222.222&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;208.67.220.220&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/namebench.jpg&quot; alt=&quot;OpenDNS vs Google DNS&quot; title=&quot;OpenDNS vs Google DNS&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 06 Dec 2009 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2009/12/06/OpenDNS-vs-Google-DNS/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2009/12/06/OpenDNS-vs-Google-DNS/</guid>
      </item>
    
      <item>
        <title>Security as a Service</title>
        <description>&lt;p&gt;In 2001 a new type of IT security was introduced, known as Security as a Service (also known as SaaS, not to be confused with Software-as-a-Service). This service aims to deliver traditional security applications as an Internet based service.&lt;/p&gt;

&lt;p&gt;SaaS works by routing all Internet traffic from a customers (your) network to the SaaS providers data centre, where content filtering services as well as malicious content scanning and removal is completed. These services are able to detect and clean web viruses, spyware, root kits, phishing sites and other nasty exploits, before they have a chance to enter your network perimeter. This whole process also happens in near real time, resulting in no perceived performance impact for the users.&lt;/p&gt;

&lt;p&gt;In short, the SaaS provider acts as a “middle man” where all the scanning and cleaning takes place. It is however possible to bypass the SaaS providers network using an “exception list”. This list is normally configured on your Internet gateway device (usually a proxy server or firewall).&lt;/p&gt;

&lt;p&gt;SaaS can be delivered for the consumer or enterprise markets, however it is the enterprise that I am particularly interested in. The five points below are what I consider the key advantages of SaaS:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No additional infrastructure required:&lt;/strong&gt; As this service is delivered via the Internet, your company does not need to deploy any hardware/software on their premise. As a result you can save money and reduce the need for additional resources, as you do not need to purchase, setup or support any additional infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security from experts:&lt;/strong&gt; Unless your company employ a group of market leading IT security experts, you will likely benefit from outsourcing your IT security to people who are. This means that you will not only take advantage of their expertise and experience, but also their purpose built infrastructure. For example, if you delivered on premise web security you would likely pick a big brand name such as Symantec, McAfee or Kaspersky. This would give you access to one scanning engine which may be adequate, however if you were to use a SaaS provider they would likely have access to all the main security scanning engines. Meaning your traffic would be scanned by Symantec, McAfee and Kaspersky. This type of in-house solution would be very difficult to setup and support, as well as very costly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefit from the security network:&lt;/strong&gt; It is important to remember that it is not only your Internet traffic that will be passed through the SaaS providers network, which has two key advantages. Firstly the SaaS provider is able to collect a huge quantity of data regarding the nasty websites found on the Internet. This allows them to deliver incredibly accurate and continually improving heuristic engines to scan for potential threats and provide additional protection, which would be impossible for an on premise solution to compete with. Secondly if a new threat is discovered on another customers network the SaaS provider would instantly flag it and automatically protect all other customers in real time, therefore significantly reducing the risk of a “zero day attack”. It is this type of attack that will often impact users of premise based security solutions as they have to wait for a new virus definitions update to be downloaded to all devices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instant scaleability:&lt;/strong&gt; As the service is delivered from “the cloud” it is very easy to either increase or downsize the service based on your company’s needs. For example, if you employ another 1000 people you simply need to inform your provider of the increase in head count (and potentially pay an additional fee), this will then immediately take affect and all 1000 people will instantly be protected. In comparison with a premise based solution, you may require additional hardware which would need to be purchased, configured, installed and tested before you could go live.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simple rollout:&lt;/strong&gt; Simular to previous advantage “the cloud” architecture means that the service rollout is as simple as pointing your Internet gateway devices to the SaaS providers network. In some cases this can take no more then a few minutes to complete.&lt;/p&gt;

&lt;p&gt;Although I am clearly a big advocate for SaaS and I believe the advantages of the service are truly tangible and will save an enterprise both time and money, it is important to note there are a few disadvantages:&lt;/p&gt;

&lt;p&gt;Change to your external IP addresses: As your Internet traffic will now be routed through a third party network before reaching its destination, your externally facing IP address will no longer be used, instead you will see the SaaS providers. This can have some advantages, however if your company relies upon sites that use your IP address for authentication, the SaaS service would cause them to break. Thankfully this issue is resolved relatively easily by adding these web sites to the previously mentioned exclusion list. Unfortunately the process to collect which sites may be impacted can be quite difficult and certainly means that a pilot should be completed before any wide scale implementation.&lt;/p&gt;

&lt;p&gt;Shared infrastructure: Although I previously mentioned the advantages of using the shared infrastructure, there is also a disadvantage. Depending on the SaaS providers setup it is possible for other users web browsing habits to impact your own. For example, as users will share an external IP address it means that if someone misbehaves on a major website (such as Google or Amazon) and gets black listed your company will also be blocked. This issue can be resolved if your SaaS provider has an isolated (sand boxed) infrastructure, however not all do so it is important to check this point.&lt;/p&gt;

&lt;p&gt;For more information on SaaS be sure to check out some of the providers web sites, such as &lt;a href=&quot;http://www.cisco.com/c/en/us/about/corporate-strategy-office/acquisitions/scansafe.html&quot;&gt;ScanSafe&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 13 Sep 2009 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2009/09/13/Security-as-a-Service/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2009/09/13/Security-as-a-Service/</guid>
      </item>
    
      <item>
        <title>Cisco Password Recovery</title>
        <description>&lt;p&gt;If you work with Cisco routers I guarantee you will at some stage attempt to login to a router only to discover you can’t remember the password. When this happens you will be forced to execute the Cisco router password recovery process. Please note this specific process is primarily for Cisco 3600 and 3800 routers although may work on other models. Please check the Cisco website for more details.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step One:&lt;/strong&gt; Connect a standard rollover cable (console cable) to the router using the console port. Open a terminal emulation application (such as Hyper Terminal on Windows) and connect with the following settings:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;9600 baud rate&lt;/li&gt;
  &lt;li&gt;No parity&lt;/li&gt;
  &lt;li&gt;8 data bits&lt;/li&gt;
  &lt;li&gt;1 stop bit&lt;/li&gt;
  &lt;li&gt;No flow control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step Two:&lt;/strong&gt; Power on the router and execute the break sequence in the first 90 seconds. Each terminal emulation application has its own break sequence, for example in Hyper Terminal on Windows simply click the “Break” key.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/hyperterminal.jpg&quot; alt=&quot;Hyperterminal&quot; title=&quot;Hyperterminal&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Three:&lt;/strong&gt; The router will now enter ROMMON. Enter “config-register 0x2142” and press return. This step bypasses the startup configuration where the existing passwords are stored. Next type “reset”, which reboots the router but ignores the saved configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Four:&lt;/strong&gt; Once the router has rebooted answer “No” to all the initial setup procedure questions. Next enter enable mode by typing “en” and copy the start-up configuration to the running configuration by typing “copy startup-config running-config”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Five:&lt;/strong&gt; Type “conf t” and then “enable secret &lt;password&gt;&quot; in order to change the enable password.&lt;/password&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Six:&lt;/strong&gt; Finally type “config-register 0x2102” and “write mem” to save the running-configuration to the startup configuration.&lt;/p&gt;

&lt;p&gt;When the router re-boots, you will be able to access it using the new password you previously configured.&lt;/p&gt;
</description>
        <pubDate>Thu, 16 Jul 2009 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2009/07/16/Cisco-Password-Recovery/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2009/07/16/Cisco-Password-Recovery/</guid>
      </item>
    
      <item>
        <title>Understanding Uptime</title>
        <description>&lt;p&gt;In the age of “on-demand services” uptime is everything! This is true whether you are the provider or the customer. For example, if you are an e-commerce retailer (such as Play) your online infrastructure is critical, if your service goes down, even for a few minutes, it could result in a huge loss of custom. The same applies to being the customer, Software as a Service (SaaS) or cloud computing is becoming more and more attractive to enterprise customers, whether it be e-mail and calendaring through providers such as Google or outsourcing your entire server farm to large corporate players such as Amazon or AT&amp;amp;T.&lt;/p&gt;

&lt;p&gt;Therefore it pays any budding IT/Business analyst to understand the real world difference between 99% uptime and 99.999% (also known as Five Nines) uptime. The table below shows the breakdown of uptime and what that means in regards to downtime over a one year period.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Uptime 		Downtime (over one year)
90%		876 hours (36.5 days)
95%		438 hours (18.25 days)
99%		87.6 hours (3.65 days)
99.9%		8.76 hours
99.99%		52.56 minutes
99.999%		5.256 minutes
99.9999%	31.536 seconds
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;As you can see from the table, the difference between 99% (which sounds great in principle) and 99.999% is in fact 87.5 hours of downtime over one year. That means that .999% has just cost you three days of service. As a result whenever I am dealing with a company that is going to host a service on my behalf, I always take note of how many nines they are offering and aim to negotiate as close to five nines (the sweet spot) as possible.&lt;/p&gt;
</description>
        <pubDate>Fri, 19 Jun 2009 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2009/06/19/Understanding-Uptime/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2009/06/19/Understanding-Uptime/</guid>
      </item>
    
      <item>
        <title>DBAN - Secure Wipe</title>
        <description>&lt;p&gt;I get though quite a lot of PC hardware and I often sell or give away my old components. When I give away hard disks I want to make sure that no data is left accessible.&lt;/p&gt;

&lt;p&gt;Many people believe that a drive format will do the job. Unfortunately it is relatively simple to recover data from a disk that has been recently formatted and therefore any secure data such as bank details, personal information, etc, is at risk and open to identity theft.&lt;/p&gt;

&lt;p&gt;As a result I use &lt;a href=&quot;http://www.dban.org/&quot;&gt;Darik’s Boot And Nuke (DBAN)&lt;/a&gt;. DBAN is a self-contained boot image that securely wipes your hard disks. Using DBAN is as simple as burning the software to a CD or installing it on a USB drive and setting your BIOS to boot from that media. Once loaded you will be presented with six options on how you would like to wipe your data. These options range from a quick erase to military grade data wiping. The higher the level, the more aggressive the data wipe will be, however the higher methods can involve up to seven passes making the processes very lengthy. I would recommend “DoD Short” which completes three passes and should ensure your data is near impossible to recover. It should also be noted that DBAN prevents, or thoroughly hinders, all known techniques of hard disk forensic analysis.&lt;/p&gt;

&lt;p&gt;The screenshot below, courtesy of dban.org, shows the simple GUI that is displayed once DBAN is loaded.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/dban.jpg&quot; alt=&quot;DBAN&quot; title=&quot;DBAN&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To download DBAN for free head over to &lt;a href=&quot;http://www.dban.org/&quot;&gt;dban.org&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 03 May 2009 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2009/05/03/DBAN-Secure-Wipe/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2009/05/03/DBAN-Secure-Wipe/</guid>
      </item>
    
      <item>
        <title>Web Proxy Autodiscovery</title>
        <description>&lt;p&gt;I have previously written about how you can use a &lt;a href=&quot;/2009/04/24/Proxy-Auto-Config-File/&quot;&gt;proxy auto-config (PAC) file&lt;/a&gt; to direct your web users to an appropriate proxy server for fetching a given URL. Unfortunately you still have to tell the client’s browser how to access that file and if you support several thousand users this configuration process can be a bit of a nightmare. One option is to hardcode the PAC files URL into the browser, however this can make any future infrastructure changes difficult and also provides little resilience if the PAC file becomes unavailable. It also offers no compatibility if the user was to connect from outside the corporate network. This is especially frustrating for roaming users who often need to connect to wireless hotspots that require web authentication. In this case the user would need to make a modification to the browser configuration, which although is relatively simple, is not recommended for enterprise level support.&lt;/p&gt;

&lt;p&gt;The Web Proxy Autodiscovery Protocol (WPAD) is a method used by browsers to automatically locate a proxy auto-config file. When WPAD is used the .pac extension is updated to wpad.dat, however the file content is exactly the same as a PAC file.&lt;/p&gt;

&lt;p&gt;WPAD was created by Microsoft and has been supported since Internet Explorer 5.0.&lt;/p&gt;

&lt;p&gt;The WPAD standard dictates two methods in which the IT administrator can publish the location of the PAC file, using the Dynamic Host Configuration Protocol (DHCP), the Domain Name System (DNS) or both.&lt;/p&gt;

&lt;p&gt;When the user first opens their browser to navigate to a web page, there will be a few seconds delay. It is during this time that the browser is automatically detecting the proxy settings. First, it checks the information received from the DHCP server, looking for site-local option 252, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;auto-proxy-config&lt;/code&gt;, which should include a string value &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://xxx.xxx.xxx.xxx/wpad.dat&lt;/code&gt; where &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xxx.xxx.xxx.xxx&lt;/code&gt; is the address of a web server (IP or DNS).&lt;/p&gt;

&lt;p&gt;If the DHCP server does not provide the information, DNS will be used. The browser requests from the DNS server to identify the IP address for WPAD. For example, if the network name of the user’s computer is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pc.branch.region.company.com&lt;/code&gt;, the browser will automatically try the following URLs in turn until it finds a proxy configuration file:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;http://wpad.branch.region.company.com/wpad.dat&lt;/li&gt;
  &lt;li&gt;http://wpad.region.company.com/wpad.dat&lt;/li&gt;
  &lt;li&gt;http://wpad.company.com/wpad.dat&lt;/li&gt;
  &lt;li&gt;http://wpad.com/wpad.dat&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For DNS lookup the file must be named &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wpad.dat&lt;/code&gt; and be located in the WPAD web site’s root directory.&lt;/p&gt;

&lt;p&gt;Whether DHCP or DNS is used, the web server must be configured to set up dat files with a MIME type of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;application/x-ns-proxy-autoconfig&lt;/code&gt;. Although for DNS lookups, the path of the configuration file must always be wpad.dat, for the DHCP protocol, any URL is usable. Finally because DHCP has a higher priority than DNS, if DHCP provides the WPAD URL, no DNS lookup is completed.&lt;/p&gt;

&lt;p&gt;When located, the browser will download the auto proxy-config file through the HTTP protocol and configure itself according to the content of the file.&lt;/p&gt;

&lt;p&gt;On the client side the only configuration that needs to take place is to tick the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Automatically Detect Settings&lt;/code&gt; option in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Internet Options &amp;gt; Connections &amp;gt; LAN Settings&lt;/code&gt;. This option is enabled by default in Internet Explorer or can be enabled via domain Group Policy. By having just this simple option enabled the client’s browser should be able to handle any network configuration automatically, whether they are connected to the corporate LAN, at home, or to a wireless hotspot.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/pacfile.png&quot; alt=&quot;PAC File&quot; title=&quot;PAC File&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security Concerns:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Although WPAD greatly simplifies browser proxy configuration, it does have to be handled with care. Two specific examples of where WPAD can be used in a maliciously fashion are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;A rogue DHCP server is added to a network that starts issuing a non-approved PAC file. This could result in your users traffic and browsing information being forwarded to an untrustworthy source.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;When using DNS lookup, if your company uses the domain &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;branch.company.com&lt;/code&gt; and the PAC file &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://wpad.branch.company.com/wpad.dat&lt;/code&gt; is not successfully served, the browser will automatically attempt to locate the file at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://wpad.company.com/wpad.dat&lt;/code&gt; and then &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://wpad.com/wpad.dat&lt;/code&gt;. It is possible that an attacker could configure and deliver a malicious PAC file from one of these un-approved locations.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Fri, 01 May 2009 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2009/05/01/Web-Proxy-Autodiscovery/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2009/05/01/Web-Proxy-Autodiscovery/</guid>
      </item>
    
      <item>
        <title>Cisco ASA Config</title>
        <description>&lt;p&gt;This article aims to explain how to configure a Cisco ASA to terminate a Cisco AnyConnect SSL VPN client using the ASDM (GUI).&lt;/p&gt;

&lt;p&gt;The following example was configured on an ASA 5505 running software version 8.0(4). The ASA also has ASDM v6.1(5) and AnyConnect v2.3 installed on its flash and was set to the factory default configuration.&lt;/p&gt;

&lt;p&gt;Before starting please ensure you have the latest version of Java installed on the Windows computer you intend to use to setup the ASA.&lt;/p&gt;

&lt;p&gt;Connect a Windows computer to the inside interface of the ASA (Interface 1 is set to the Inside interface by default). The ASA should automatically allocate an IP address to the computer by DHCP. This address will likely be &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;192.168.1.2&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Open a browser (I recommend Internet Explorer for this installation) and go to:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://192.168.1.1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You will be prompted with the following page:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa01.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Click “Install ASDM Launcher and Run ASDM”. You will be prompted for your ASA login password (if configured).&lt;/p&gt;

&lt;p&gt;Once the ASDM has been downloaded and installed login via the ASDM:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa02.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Choose “Configuration &amp;gt; Device Setup &amp;gt; Interfaces” and check “Enable traffic between two or more hosts connected to the same interface”. Please note I have also assigned the IP address &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;172.16.1.1/24&lt;/code&gt; to the outside interface (interface 0). This is for example purposes only.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa03.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Choose “Configuration &amp;gt; Remote Access VPN &amp;gt; Network (Client) Access &amp;gt; Address Assignment &amp;gt;Address Pools” and click Add in order to create the IP address pool “vpnpool”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa04.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Choose “Configuration &amp;gt; Remote Access VPN &amp;gt; Network (Client) Access &amp;gt; AnyConnect Connection Profiles” and under Access Interfaces, click the check box “Enable Cisco AnyConnect VPN Client or legacy SSL VPN Client on the interfaces selected in the table below”. Once checked you will be asked to select the AnyConnect image stored on the ASA Flash.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa05.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa06.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa07.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Also check “Allow Access” and “Enable DTLS” for the outside interface.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa08.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Choose “Configuration &amp;gt; Remote Access VPN &amp;gt; Network (Client) Access &amp;gt; Group Policies” and click Add to create an internal group policy “clientgroup”. Under the “General tab &amp;gt; More Options”, select the “SSL VPN Client” check box in order to enable the WebVPN as tunneling protocol.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa09.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In the “Advanced &amp;gt; Split Tunneling” tab, choose “Tunnel All Networks” from the drop down list of the Policy in order to make all the packets coming from the remote PC through a secure tunnel.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa10.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To enable the “Keep Installer on Client System” option, uncheck the Inherit check box under “Advance &amp;gt; SSL VPN Client”, and click the Yes radio button.&lt;/p&gt;

&lt;p&gt;Click “Advance &amp;gt; SSL VPN Client &amp;gt; Login Setting” in order to set the Post Login Setting and Default Post Login Selection as shown below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa11.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Click “Advance &amp;gt; SSL VPN Client &amp;gt; Key Regeneration”&lt;/p&gt;

&lt;p&gt;For the” Renegotiation Interval” option, uncheck the Inherit box, uncheck the Unlimited check box, and enter 30. Security is enhanced by setting limits on the length of time a key is valid.&lt;/p&gt;

&lt;p&gt;For the “Renegotiation Method” option, uncheck the Inherit check box, and click the SSL radio button. Renegotiation can use the present SSL tunnel or a new tunnel created expressly for renegotiation.&lt;/p&gt;

&lt;p&gt;Finally Click OK and Apply.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa12.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Choose “Configuration &amp;gt; Remote Access VPN &amp;gt; AAA/Local Users &amp;gt; Local Users” click Add in order to create the new user account “ssluser1”. Select a password of your choice (For example “cisco”). Click OK and then Apply.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa13.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Choose “Configuration &amp;gt; Remote Access VPN &amp;gt; Network (Client) Access &amp;gt; AnyConnect Connection Profiles &amp;gt; Connection Profiles” click Add in order to create the new tunnel group “sslgroup”. In the “Basic” tab apply the following settings:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa14.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Under “Advance &amp;gt; SSL VPN &amp;gt; Connection Aliases” click Add, specify the group “alias sslgroup_users” and click OK.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa15.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Choose “Configuration &amp;gt; Remote Access VPN &amp;gt; Network (Client) Access &amp;gt; AnyConnect Connection Profiles &amp;gt; Login Page Setting”, check “Allow user to select connection profile, identified by its alias, on the login page. Otherwise, DefaultWEBVPNGroup will be connection profile and Apply”.&lt;/p&gt;

&lt;p&gt;Finally choose “Configuration &amp;gt; Firewall &amp;gt; NAT Rules &amp;gt; Add Dynamic NAT Rule” so the traffic that comes from the inside network can be translated with outside IP address &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;172.16.1.5&lt;/code&gt;. Click OK when complete.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa16.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Choose “Configuration &amp;gt; Firewall &amp;gt; NAT Rules &amp;gt; Add Dynamic NAT Rule” for the traffic coming from the outside network. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;192.168.10.0&lt;/code&gt; can be translated with outside IP address &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;172.16.1.5&lt;/code&gt;. Click OK when complete.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa17.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To finish click Apply and Save.&lt;/p&gt;

&lt;p&gt;To test you will need to connect a Windows computer to the outside interface of the ASA (interface 0) and set the IP settings to:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;IP Address: 172.16.1.5
Subnet Mask: 255.255.255.0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;Now open a browser (I recommend Internet Explorer for this test) and establish an SSL connection with the ASA by going to:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://172.16.1.1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You will be prompted for your login credentials.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa18.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once authenticated (ssluser1 / cisco / sslgroup_users) your browser will automatically download the Cisco AnyConnect client, install it and establish an SSL VPN connection to the ASA.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa19.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/ciscoasa20.png&quot; alt=&quot;Cisco ASA&quot; title=&quot;Cisco ASA&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 30 Apr 2009 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2009/04/30/Cisco-ASA-Config/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2009/04/30/Cisco-ASA-Config/</guid>
      </item>
    
      <item>
        <title>Proxy Auto-Config File</title>
        <description>&lt;p&gt;A proxy auto-config (PAC) file is used by web browsers to automatically choose an appropriate route to a proxy server for connection to the Internet. It can also be used to route certain groups of users to a specific proxy server and dictate different actions such as routing or filtering for certain URL’s and/or IP Addresses.&lt;/p&gt;

&lt;p&gt;PAC files are primarily used in medium to large enterprise networks that use proxy servers with multiple breakout points to the Internet. The PAC file is used to simplify browser configuration, management and support as each time a user attempts to access the web the browser will automatically fetch the PAC file before attempting to access the Internet. This is useful because if you make a change to your network that impacts your Internet gateway infrastructure you don’t need to individually roll out a change of settings to all your users, instead you update a single file which is generally stored in a central location. By storing the file centrally it also makes management and support significantly easier. However, it should be noted that it can also add a single point of failure if no additional redundancy is introduced.&lt;/p&gt;

&lt;p&gt;The PAC file settings can be configured in Internet Explorer by going to: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Internet Options &amp;gt; Connections &amp;gt; LAN Settings&lt;/code&gt; and ticking &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Use automatic configuration script&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/pacfile.png&quot; alt=&quot;PAC File&quot; title=&quot;PAC File&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The PAC file is essentially a JavaScript file that includes the function “FindProxyForURL” that accepts two arguments “url and host”. This function is called before the browser requests a page and it tells the browser whether it should route to a proxy or attempt to go direct.&lt;/p&gt;

&lt;p&gt;An example of a simple PAC file can be seen below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function FindProxyForURL(url, host) { return &quot;PROXY proxy01.fakecompany.com:8080; DIRECT&quot;; }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;In the above example all URL’s will be routed to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;proxy01.fakecompany.com&lt;/code&gt; on port &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;8080&lt;/code&gt; and if this address is unavailable it will attempt to route direct. However, unless you have specific routing configured on your network for direct access, the request would fail.&lt;/p&gt;

&lt;p&gt;For more information on PAC files please refer to the article “&lt;a href=&quot;http://jcurnow.home.comcast.net/~jcurnow/WritingEffectivePACFiles.html&quot;&gt;Writing Effective Proxy PAC Files&lt;/a&gt;”.&lt;/p&gt;
</description>
        <pubDate>Fri, 24 Apr 2009 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2009/04/24/Proxy-Auto-Config-File/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2009/04/24/Proxy-Auto-Config-File/</guid>
      </item>
    
      <item>
        <title>Microsoft DirectAccess</title>
        <description>&lt;p&gt;Could DirectAccess be the future of Remote Access for corporate networks? DirectAccess is a new feature in Windows 7 and Windows Server 2008 R2. It gives users the experience of being seamlessly connected to their corporate network any time they have Internet access. DirectAccess basically provides the same service as a standard virtual private network (VPN). The significant difference being that the connection is established in the background without requiring any user interaction (even before the user logs into Windows ). This results in the simplification of remote access for the user by providing the same connectivity experience both in and outside of the office.&lt;/p&gt;

&lt;p&gt;When combined with other Windows 7 features such as Federated Search, which searches intranet resources, and Folder Redirection, which synchronizes files across the network, users will be able to find and access corporate resources seamlessly, wherever they are.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantage of DirectAccess:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple, seamless connectivity:&lt;/em&gt; Unlike traditional VPN solutions (such as Cisco VPN), DirectAccess enables the user to connect to their corporate network automatically without any user interaction. This connection will be established as soon as the Windows 7 computer reaches the login prompt, meaning users can authenticate against their domain instantly just like they would when connected to the corporate LAN. DirectAccess will attempt to use any available network interface to connect to the internet (wired, wifi, 3G etc) and will automatically attempt to reconnect if the connection is dropped.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Remote Management:&lt;/em&gt; As soon as the remote computer has reached the Windows 7 login prompt IT administrators can connect to the device (even if the user is not logged in). Through DirectAccess IT administrators can monitor, manage and deploy updates as long as the computer is able to connect to the Internet. Also any Group Policy settings are delivered to the user’s computer before they login to Windows.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Advanced Security Features:&lt;/em&gt; DirectAccess uses IPSec for authentication and encryption and can integrate with Network Access Protection (NAP) which will ensure that any remote computer is compliant with corporate policy before it connects to the corporate network. Also IT administrators can restrict access for specific remote computers so they can only access certain applications or services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Requirements:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The DirectAccess server must run on Windows Server 2008 R2 which is still currently in Beta and can be downloaded for testing from the Microsoft website.&lt;/p&gt;

&lt;p&gt;All remote computers must run on Windows 7 which is also still in beta with the release candidate scheduled for May 2009, at this time it will be available for download from the Microsoft website.&lt;/p&gt;

&lt;p&gt;The DirectAccess server requires two network cards; one connected to the Internet and the second to the Intranet. At least one Active Directory Domain (AD DS) must be deployed. Workgroups are not supported.&lt;/p&gt;

&lt;p&gt;Public Key Infrastructure (PKI) to issue certificates. External certificates are not required. All SSL certificates must have a certificate revocation list (CRL) distribution point that is reachable via a publicly resolvable fully qualified domain name (FQDN) while either local or remote.&lt;/p&gt;

&lt;p&gt;End-to-end IP version 6 (IPv6) is required. Networks that are unable to deploy IPv6 can use IPv6 transition technologies such as Intra-Site Automatic Tunnel Addressing Protocol (ISATAP), Teredo, and 6to4 to connect across the IPv4 Internet and to access IPv4 resources on the corporate network. IPv6 or transition technologies must be available on the DirectAccess server and allowed to pass through the perimeter network firewall.&lt;/p&gt;

&lt;p&gt;For more information about DirectAccess visit: &lt;a href=&quot;http://www.microsoft.com/directaccess&quot;&gt;http://www.microsoft.com/directaccess&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 29 Mar 2009 00:00:00 -0500</pubDate>
        <link>https://www.lifeintech.com/2009/03/29/Microsoft-DirectAccess/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2009/03/29/Microsoft-DirectAccess/</guid>
      </item>
    
      <item>
        <title>Cisco 800 Config</title>
        <description>&lt;p&gt;The following configuration was used on a Cisco 837 Router to terminate an ADSL (PPPoA) connection in the UK. The configuration also shows examples of DHCP, NAT, Access Lists and Port Forwarding.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;version 12.4
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname &amp;lt;Router Name&amp;gt;
!
boot-start-marker
boot-end-marker
!
enable secret 5 &amp;lt;Enable Password&amp;gt;
!
no aaa new-model
!
!
no ip dhcp use vrf connected
ip dhcp excluded-address 192.168.0.2 192.168.0.10
!
ip dhcp pool LAN
network 192.168.0.0 255.255.255.0
default-router 192.168.0.1
dns-server &amp;lt;DNS Server 1&amp;gt; &amp;lt;DNS Server 2&amp;gt;
!
!
ip cef
ip auth-proxy max-nodata-conns 3
ip admission max-nodata-conns 3
!
!
interface Ethernet0
ip address 192.168.0.1 255.255.255.0
ip nat inside
ip virtual-reassembly
ip tcp adjust-mss 1452
hold-queue 100 out
!
interface Ethernet2
no ip address
shutdown
hold-queue 100 out
!
interface ATM0
no ip address
no atm ilmi-keepalive
dsl operating-mode auto
pvc 0/38
encapsulation aal5mux ppp dialer
dialer pool-member 1
!
!
interface FastEthernet1
speed 100
full-duplex
!
interface FastEthernet2
shutdown
duplex auto
speed auto
!
interface FastEthernet3
shutdown
duplex auto
speed auto
!
interface FastEthernet4
shutdown
duplex auto
speed auto
!
interface Dialer0
description&amp;lt;ISP Name&amp;gt;ADSL
ip address negotiated
ip mtu 1492
ip nat outside
ip virtual-reassembly
encapsulation ppp
no ip route-cache cef
no ip route-cache
no ip mroute-cache
dialer pool 1
dialer-group 1
ppp authentication chap callin
ppp chap hostname &amp;lt;ISP Provided Hostname&amp;gt;
ppp chap password 7 &amp;lt;ISP Provided Password&amp;gt;
!
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 Dialer0
!
no ip http server
no ip http secure-server
!
ip nat inside source list 100 interface Dialer0 overload
ip nat inside source static tcp 192.168.0.3 50001 interface Dialer0 50001
ip nat inside source static udp 192.168.0.3 50001 interface Dialer0 50001
!
access-list 1 permit any
access-list 100 permit ip 192.168.0.0 0.0.0.255 any
dialer-list 1 protocol ip permit
!
!
!
control-plane
!
!
line con 0
password 7 &amp;lt;Console Password&amp;gt;
login
no modem enable
line aux 0
line vty 0 4
password 7 &amp;lt;Telnet Password&amp;gt;
login
!
scheduler max-task-time 5000
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
</description>
        <pubDate>Wed, 21 Jan 2009 00:00:00 -0600</pubDate>
        <link>https://www.lifeintech.com/2009/01/21/Cisco-800-Config/</link>
        <guid isPermaLink="true">https://www.lifeintech.com/2009/01/21/Cisco-800-Config/</guid>
      </item>
    

    
      
        
      
    
      
        
          <item>
            <title>About</title>
            <description>&lt;p&gt;Welcome to LifeinTECH.&lt;/p&gt;

&lt;p&gt;My name is &lt;a href=&quot;https://www.linkedin.com/in/mswbull/&quot;&gt;Matt Bull&lt;/a&gt;. I live in the UK with my wife, son, and daughter. I am the Chief Technology Officer (CTO) and Chief Information Security Officer (CISO) at &lt;a href=&quot;https://www.elanco.com&quot;&gt;Elanco&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;LifeinTECH is my personal blog, where I share my thoughts and showcase projects. It in no way reflects the views or plans of my employer.&lt;/p&gt;

&lt;p&gt;Thanks for visiting!&lt;/p&gt;

&lt;h4 id=&quot;about-lifeintech&quot;&gt;About LifeinTECH&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;LifeinTECH follows the &lt;a href=&quot;https://jamstack.org/&quot;&gt;JAMstack&lt;/a&gt; web development architecture, running on &lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify&lt;/a&gt;. It is secured using HTTPS, with a certificate provisioned from &lt;a href=&quot;https://letsencrypt.org/&quot;&gt;Let’s Encrypt&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;LifeinTECH is a Progressive Web App (PWA) meaning it can be installed on compatible systems. Only the twelve most recent articles, including the “&lt;a href=&quot;/about&quot;&gt;About&lt;/a&gt;” page are cached for offline access.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;All images that appear on LifeinTECH are copyright their respective owners and LifeinTECH claims no credit for them unless otherwise noted. Stock photos are from &lt;a href=&quot;https://unsplash.com/&quot;&gt;Unsplash&lt;/a&gt;, which grants an irrevocable, nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use photos.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;LifeinTECH does not include any online advertisements or web trackers. It integrates &lt;a href=&quot;https://disqus.com/&quot;&gt;Disqus&lt;/a&gt; (all ads deactivated) as a third-party comment hosting service.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;LifeinTECH is non-profit and is not associated with, or sponsored by any third parties.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
            <link>https://www.lifeintech.com/about.html</link>
          </item>
        
      
    
      
    
      
    
      
        
          <item>
            <title>Ninja Caves</title>
            <description>**Update** - Ninja Caves is no longer maintained. As a result, the Apple App Store (iPadOS) version has been retired. The Windows and macOS versions are still available for download, but they may not work correctly with modern hardware/software.

Ninja Caves is a &quot;ninja-themed&quot; platform game targeting players that are new to the genre.

The game requires the player to manoeuvre across platforms to reach the end of each level while collecting items, avoiding obstacles and confronting enemies.

Each level contains a crystal, which must be found and collected before proceeding.

The game is available for [Windows](/downloads/ninjacaves/win/NinjaCaves.zip), [macOS](/downloads/ninjacaves/macos/NinjaCaves.zip), and [iPadOS](https://apps.apple.com/us/app/ninja-caves/id1574836125).

Ninja Caves was designed and developed by me (a single developer) as part of a thirty-day coding challenge, using the cross-platform game engine [GameMaker Studio 2](https://www.yoyogames.com/). Additional information can be found linked below.

* [30 Days of Code](/2021/03/18/30-Days-of-Code/)
* [30 Days of Code - Update](/2021/04/05/30-Days-of-Code-Update/)
* [30 Days of Code - MVP](/2021/04/28/30-Days-of-Code-MVP/)
* [Ninja Caves](/2021/05/30/Ninja-Caves/)
* [Ninja Caves - Update One](/2021/06/13/Ninja-Caves-Update-One/)
* [Ninja Caves - Release](/2021/07/06/Ninja-Caves-Release/)

Ninja Caves incorporates the following royalty-free assets:

* Sprites from [Pzuh](https://www.gameart2d.com/) and [Kenney](https://www.kenney.nl/).
* Sounds from [Sidearm Studios](https://sidearmstudios.com/).

### Privacy Policy

Last updated 04-JUL-2021.

I respect the privacy of my users. This Privacy Policy explains how I safeguard user data when using the application Ninja Caves. Please read this Privacy Policy carefully.

I reserve the right to make changes to this Privacy Policy at any time and for any reason.

I will alert users about any changes to this Privacy Policy by updating the &quot;last updated&quot; date of this Privacy Policy. Users are encouraged to periodically review this Privacy Policy to stay informed of updates.

Users will be deemed to have accepted any revised Privacy Policy by the continued use of the application Ninja Caves.

This Privacy Policy does not apply to the third-party online/mobile store from which the application Ninja Caves was installed. A third-party online/mobile store may collect, store and process user data. I am not responsible for any data collected, stored and processed by any third parties.

**User Data**

The application Ninja Caves does not collect, store or process any user data, including personal, financial or social.

**User Tracking**

The application Ninja Caves does not use any user tracking technologies, including cookies, web beacons, advertising or analytics.

**Third-Party Links**

The application Ninja Caves does not include any links to third-party websites or applications. The only referenced URL is to this Privacy Policy.

**Policy for Children**

The application Ninja Caves does not knowingly solicit information from or market to children under the age of 13.

**Contact**

If any user has questions or comments about this Privacy Policy, please contact me at mswbull_at_gmail.com.
</description>
            <link>https://www.lifeintech.com/ninjacaves.html</link>
          </item>
        
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    

  </channel>
</rss>