<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Viktor's Tech Musings &amp; Security Paranoia</title><link>https://vpetersson.com/</link><description>Insights on DevSecOps, cloud architecture, and building secure, scalable systems. Sharing practical experience from running tech companies and implementing software supply chain security at scale.</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 05 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://vpetersson.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Container Security Runtime: Rethinking Isolation with Alex Zenla</title><link>https://vpetersson.com/podcast/s03e03/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s03e03/</guid><description>&lt;p>Containers were never designed to be a security boundary, yet we have spent the last decade treating them like one. I&amp;rsquo;m joined by Alex Zenla, Founder and CTO of Edera, to explore how that assumption shaped modern systems and why it is starting to break under real-world pressure. From insecure IoT deployments to container-heavy production stacks, Alex brings a perspective grounded in building and breaking systems at scale, and what it actually takes to rethink isolation from first principles.&lt;/p></description></item><item><title>Ubuntu Cloud Images on Proxmox</title><link>https://vpetersson.com/2026/04/23/ubuntu-cloud-images-on-proxmox/</link><pubDate>Thu, 23 Apr 2026 10:00:23 +0000</pubDate><guid>https://vpetersson.com/2026/04/23/ubuntu-cloud-images-on-proxmox/</guid><description>&lt;p>I&amp;rsquo;ve been clicking through the Ubuntu installer on Proxmox since 2019 &amp;ndash; I even &lt;a href="https://vpetersson.com/2019/10/03/ubuntu-core-on-proxmox/">wrote a note to myself&lt;/a> back then about the dance. Partition the disk, pick a locale, wait for packages, reboot, SSH in, install the things I always install. Ten minutes per VM, every time.&lt;/p>
&lt;p>What finally pushed me to fix it was wanting ephemeral Ubuntu VMs for development &amp;ndash; in particular, disposable sandboxes for running AI coding agents. My first instinct was to run Multipass inside a Proxmox VM. That afternoon I fought snap confinement (the daemon couldn&amp;rsquo;t see &lt;code>/tmp&lt;/code>), tildes not expanding inside quoted arguments, and native mounts that happily clobbered the &lt;code>authorized_keys&lt;/code> Multipass had just injected. I climbed back out of that rabbit hole and realized the answer was one layer up the stack, not two layers down: Proxmox supports cloud-init natively. Template once, clone in seconds, bootstrap at first boot.&lt;/p></description></item><item><title>Leaving the Cloud (Again)</title><link>https://vpetersson.com/2026/04/04/leaving-the-cloud-again/</link><pubDate>Sat, 04 Apr 2026 12:00:00 +0000</pubDate><guid>https://vpetersson.com/2026/04/04/leaving-the-cloud-again/</guid><description>&lt;p>Digital sovereignty is becoming an increasingly hot topic, and people are starting to wake up to just how large the premium is for &amp;ldquo;cloud&amp;rdquo; versus simply running a few dedicated servers.&lt;/p>
&lt;p>For me, this is full circle &amp;ndash; not in the technology, but in the operational model. I&amp;rsquo;ve been managing my own servers since I was running FreeBSD jails in the early 2000s, scaling one of my early companies to hundreds of jails across dedicated hardware at Rackspace. FreeBSD jails were among the earliest container-like technologies, and the lineage from jails to Docker to LXC containers on Proxmox is a direct one. The abstraction has gotten better, but the core idea &amp;ndash; isolated workloads on hardware you control &amp;ndash; hasn&amp;rsquo;t changed.&lt;/p></description></item><item><title>SBOMs &amp; CRA Compliance with Olle Johansson and Anthony Harrison</title><link>https://vpetersson.com/podcast/s03e02/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s03e02/</guid><description>&lt;p>What happens when cybersecurity stops being an afterthought and becomes a legal obligation? In this episode of Nerding Out with Viktor, I&amp;rsquo;m joined by Olle Johansson, CycloneDX member and lead of the Transparency Exchange API, and Anthony Harrison, a UK-based software supply chain security consultant and open source SBOM tooling author, to explore how SBOMs, the Cyber Resilience Act, and the Product Liability Directive are reshaping how secure products are designed, maintained, and brought to market.&lt;/p></description></item><item><title>Making Apple Health Data Queryable with AI</title><link>https://vpetersson.com/2026/02/22/making-apple-health-data-queryable-with-ai/</link><pubDate>Sun, 22 Feb 2026 12:00:00 +0000</pubDate><guid>https://vpetersson.com/2026/02/22/making-apple-health-data-queryable-with-ai/</guid><description>&lt;p>Long before ChatGPT, I was obsessively collecting health data. Blood work going back to 2018—some in PDFs, some in spreadsheets. On the device side, I&amp;rsquo;ve cycled through Whoop, Withings, and others, all feeding into Apple Health. Over the years it&amp;rsquo;s become the central hub for everything: heart rate, steps, workouts, sleep, body composition, blood pressure, you name it.&lt;/p>
&lt;p>The problem? Apple Health is great at &lt;em>collecting&lt;/em> data but terrible at letting you &lt;em>analyze&lt;/em> it. You can see today&amp;rsquo;s stats, maybe a weekly trend, but asking &amp;ldquo;how has my resting heart rate changed over the past two years?&amp;rdquo; or &amp;ldquo;show me the correlation between my sleep and workout performance&amp;rdquo;—forget it.&lt;/p></description></item><item><title>Biohacking Resilience: Engineering the Human System with Marcelo Garcia</title><link>https://vpetersson.com/podcast/s03e01/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s03e01/</guid><description>&lt;p>What happens when you deliberately stress test your own operating system? In this Season 3 opener, I&amp;rsquo;m joined by Marcelo Garcia, a telecom infrastructure veteran turned extreme biohacker, to explore what it looks like when engineering discipline meets human physiology. Marcelo recently completed a 50-day water-only fast while hiking nearly 1,000 kilometers across Spain, capturing detailed biometric data across DEXA scans, VO2 max testing, HRV tracking, metabolic panels, and continuous glucose monitoring.&lt;/p></description></item><item><title>AI is Killing (Basic) SaaS, Part 2: From Link Shorteners to Linktrees</title><link>https://vpetersson.com/2026/01/14/ai-is-killing-saas-part-2-linktree-link-shorteners-and-the-leverage-you-buy-back/</link><pubDate>Wed, 14 Jan 2026 12:00:00 +0000</pubDate><guid>https://vpetersson.com/2026/01/14/ai-is-killing-saas-part-2-linktree-link-shorteners-and-the-leverage-you-buy-back/</guid><description>&lt;p>In &lt;a href="https://vpetersson.com/2026/01/09/ai-is-eating-saas-building-an-ip-geolocation-api-in-two-hours">Part 1&lt;/a>, I replaced ipgeolocation.io with a self-hosted Rust service in under two hours. That was just one piece of a larger pattern we&amp;rsquo;ve been following at &lt;a href="https://www.screenly.io">Screenly&lt;/a>.&lt;/p>
&lt;p>This is the story of &lt;a href="https://github.com/vpetersson/dslf">DSLF&lt;/a>—a project that started as a link shortener and evolved into a Linktree killer.&lt;/p>
&lt;h2 id="the-link-shortener">The Link Shortener&lt;/h2>
&lt;p>A few months ago, I got fed up paying for Rebrandly at Screenly. It&amp;rsquo;s a bit.ly-style service, and while it worked fine, the monthly invoice felt silly for what amounts to a 301 redirect.&lt;/p></description></item><item><title>AI is Eating SaaS: Building an IP Geolocation API in Two Hours</title><link>https://vpetersson.com/2026/01/09/ai-is-eating-saas-building-an-ip-geolocation-api-in-two-hours/</link><pubDate>Fri, 09 Jan 2026 12:00:00 +0000</pubDate><guid>https://vpetersson.com/2026/01/09/ai-is-eating-saas-building-an-ip-geolocation-api-in-two-hours/</guid><description>&lt;p>We&amp;rsquo;ve all heard the saying that AI is eating SaaS. For some simple products, it&amp;rsquo;s certainly becoming true.&lt;/p>
&lt;p>At &lt;a href="https://www.screenly.io">Screenly&lt;/a>, we&amp;rsquo;ve been using &lt;a href="https://ipgeolocation.io">ipgeolocation.io&lt;/a> for a while. It&amp;rsquo;s a solid service, but at its core, it&amp;rsquo;s just a frontend for a GeoIP database. This morning, I saw yet another monthly invoice from them and decided to run an experiment: how far can &lt;a href="https://cursor.sh">Cursor&lt;/a> with Claude Opus 4.5 go in terms of recreating their API with feature parity?&lt;/p></description></item><item><title>CRA Explained: What the Cyber Resilience Act Means for Device Manufacturers with Sarah Fluchs</title><link>https://vpetersson.com/podcast/s02e21/</link><pubDate>Wed, 17 Dec 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e21/</guid><description>&lt;p>What happens when long-lifecycle hardware meets modern cybersecurity expectations? In this episode of Nerding Out with Viktor, I sit down with Sarah Fluchs, CTO and OT cybersecurity expert, to break down how the Cyber Resilience Act (CRA) is shifting the way secure products are built, maintained, and supported across the EU market.&lt;/p>
&lt;p>Sarah began her career as a mechanical and process engineer before moving into OT security, eventually earning a PhD in security-by-design. Her research intersected directly with the early drafts of the CRA, which led to her appointment on the EU Commission&amp;rsquo;s CRA expert group. That first-hand involvement gives her a rare blend of technical and policy perspective on a piece of legislation that touches every device manufacturer.&lt;/p></description></item><item><title>How I Streamlined My Jekyll Diagram Workflow with D2 and Bun</title><link>https://vpetersson.com/2025/11/30/redesigning-the-sbomify-site-and-falling-deeper-into-d2/</link><pubDate>Sun, 30 Nov 2025 12:00:00 +0000</pubDate><guid>https://vpetersson.com/2025/11/30/redesigning-the-sbomify-site-and-falling-deeper-into-d2/</guid><description>&lt;p>Over the last few days, I gave the &lt;a href="https://sbomify.com">sbomify website&lt;/a> a much-needed overhaul. The previous iteration didn’t really reflect what we’re doing, especially as the product has matured. The new version leans heavily on diagrams to communicate concepts more clearly.&lt;/p>
&lt;p>For the past year, I’ve more or less standardized on &lt;a href="https://d2lang.com/">&lt;code>d2&lt;/code>&lt;/a> for diagrams. I’ve gone through the usual journey: Lucidchart, Mermaid, UML, and a few others. They all work and have their own strengths and weaknesses, but each brought its own annoyances that made me eventually drop them. &lt;code>d2&lt;/code>, on the other hand, instantly clicked. It’s readable, intuitive, and produces diagrams that actually look good without wrestling with the tool. It’s not perfect, but it’s the closest I’ve found to something that fits the way I think.&lt;/p></description></item><item><title>UK Online Safety Act: Digital ID and the Risks of a Database State with James Baker</title><link>https://vpetersson.com/podcast/s02e20/</link><pubDate>Wed, 19 Nov 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e20/</guid><description>&lt;p>What happens when a government&amp;rsquo;s push for &amp;ldquo;safety&amp;rdquo; starts reshaping the architecture of the internet? In this episode of Nerding Out with Viktor, I&amp;rsquo;m joined by James Baker, Policy and Campaigns Manager at &lt;a href="https://www.openrightsgroup.org/">Open Rights Group&lt;/a>, to unpack the deeper implications of the UK Online Safety Act and the country&amp;rsquo;s evolving approach to Digital ID. With two decades of work in privacy advocacy, James offers a grounded but no less urgent perspective on how these policies affect builders, platforms, and users alike. What begins as a conversation about compliance quickly leads into bigger questions about identity, control, and the future of privacy in digital systems.&lt;/p></description></item><item><title>PostgreSQL Replication Troubleshooting: War Stories from the Field</title><link>https://vpetersson.com/2025/11/12/postgresql-replication-troubleshooting-war-stories/</link><pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate><guid>https://vpetersson.com/2025/11/12/postgresql-replication-troubleshooting-war-stories/</guid><description>&lt;p>I recently wrapped up a consulting gig helping a client troubleshoot some gnarly PostgreSQL replication issues. What started as a &amp;ldquo;quick performance tune&amp;rdquo; turned into a deep dive through WAL checkpoints, replication slots, and the delicate dance of logical replication workers.&lt;/p>
&lt;p>Here are the war stories from the trenches, complete with the errors we hit and how we solved them. If you&amp;rsquo;re dealing with PostgreSQL logical replication at scale, you might find these useful.&lt;/p></description></item><item><title>Rethinking Software Security Compliance in the Age of AI with Nick Selby</title><link>https://vpetersson.com/podcast/s02e19/</link><pubDate>Wed, 05 Nov 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e19/</guid><description>&lt;p>Why do so many teams treat software security compliance as a box-ticking exercise, and what does that mindset cost them? In this episode of Nerding Out with Viktor, I sit down with Nick Selby, a veteran security leader known for his clear-eyed approach to building practical, human-centered security programs.&lt;/p>
&lt;p>Nick traces his path from the early days of hands-on security work, where risk was measured by intuition and experience, to the era of standardized frameworks and regulatory oversight. He reflects on how compliance frameworks like SOC 2 and ISO 27001 emerged to bring order to chaos but often became ends in themselves. Instead of driving real-world resilience, they sometimes created a false sense of assurance. For Nick, this isn&amp;rsquo;t just a process problem; it&amp;rsquo;s a cultural one. He argues that companies should see compliance as the outcome of good security practices, not the starting point.&lt;/p></description></item><item><title>The Quiet Power of Digital Minimalism with Patrick Walker</title><link>https://vpetersson.com/podcast/s02e18/</link><pubDate>Wed, 22 Oct 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e18/</guid><description>&lt;p>Is tech making us smarter—or just more distracted? In this episode of Nerding Out with Viktor, I sit down with Patrick Walker, former YouTube and Facebook executive turned conscious tech founder, to explore how we got here and what it takes to break free from the default.&lt;/p>
&lt;p>Patrick&amp;rsquo;s journey spans the early days of digital media, from working as a TV producer in Japan to navigating YouTube&amp;rsquo;s copyright wars and platform expansion across global markets. At Facebook, he witnessed firsthand the ethical friction behind live video, algorithm design, and the psychological toll of attention-based products, especially on younger users.&lt;/p></description></item><item><title>Coreboot and Linux Hardware: Inside Star Labs with Sean Rhodes</title><link>https://vpetersson.com/podcast/s02e17/</link><pubDate>Wed, 17 Sep 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e17/</guid><description>&lt;p>How do you design and ship coreboot and Linux hardware that actually works in the real world? In this episode of Nerding Out with Viktor, I sit down with Sean Rhodes, Firmware Engineer at Star Labs, to explore what it takes to build Linux-first laptops and mini PCs backed by open firmware.&lt;/p>
&lt;p>Sean reflects on the early days of Star Labs, when a handful of engineers set out to create laptops that ran Linux reliably. What began as a side project grew into a full-fledged company with a reputation for supporting open source systems. Along the way, the team faced high tooling costs, unpredictable supply chains, and the challenge of meeting the needs of a niche but demanding user base.&lt;/p></description></item><item><title>Lessons in Building Niche Hardware and Networks with Planet Computers' Marcus Taylor</title><link>https://vpetersson.com/podcast/s02e16/</link><pubDate>Wed, 03 Sep 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e16/</guid><description>&lt;p>Marcus Taylor&amp;rsquo;s journey into technology spans over three decades, but his latest work at Planet Computers represents a fascinating convergence of everything he&amp;rsquo;s learned about hardware, networks, and resilient systems. As co-founder of Planet Computers, Marcus brings a rare operational lens to building niche devices that serve specific communities.&lt;/p>
&lt;p>Marcus&amp;rsquo; story begins with IBM labs and Logica, where he explored natural language processing and early mobile wallet prototypes in the mid-90s. Those experiments laid the groundwork for later projects at Ericsson, Digital Mobility, and the GSM Association, where he navigated the politics of telco standards and helped bring Bluetooth and Wi-Fi into the mainstream.&lt;/p></description></item><item><title>Nerding Out on Software Supply Chain Security with ITSPmagazine's Sean Martin</title><link>https://vpetersson.com/podcast/s02e15/</link><pubDate>Mon, 18 Aug 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e15/</guid><description>&lt;p>Sean Martin&amp;rsquo;s journey into software security spans over three decades, but his latest focus, software supply chain security, feels more relevant than ever. As co-founder of ITSPmagazine and a veteran of countless product launches at Symantec, Sean brings a rare operational lens to security.&lt;/p>
&lt;p>In this crossover episode of Nerding out with Viktor, recorded live at Hacker Summer Camp, Sean joins me to unpack what&amp;rsquo;s changing in the security landscape, from SBOM adoption to the increasing pressure from regulations like the CRA. We explore how supply chain security is becoming table stakes, how transparency is replacing vague claims (&amp;ldquo;saying you&amp;rsquo;re secure means absolutely nothing&amp;rdquo;), and why SBOMs are evolving into real-time operational assets rather than static compliance artifacts.&lt;/p></description></item><item><title>Navigating SBOMs at Scale: Inside DependencyTrack with Niklas Düster</title><link>https://vpetersson.com/podcast/s02e14/</link><pubDate>Wed, 16 Jul 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e14/</guid><description>&lt;p>Niklas Düster got involved with &lt;a href="https://dependencytrack.org/">Dependency Track&lt;/a> the way many great open source stories begin: by trying to solve a problem at work. As a security engineer, he was drowning in vulnerability scan reports that didn&amp;rsquo;t scale. When he discovered Dependency Track and CycloneDX, he not only adopted them but began contributing, eventually becoming the project&amp;rsquo;s co-lead alongside Steve Springett.&lt;/p>
&lt;p>In this conversation, Niklas walks us through how Dependency Track helps teams stay on top of their software bill of materials (SBOMs), enabling continuous visibility across thousands of components. We dig into real-world workflows, from uploading SBOMs in CI/CD pipelines to responding quickly during incidents like Log4Shell and how version 5 of the platform is evolving to support horizontal scaling, smarter suppression logic, and role-based access control.&lt;/p></description></item><item><title>DSLF – a rust hacking, cheaper hosting, and two HTTP codes I didn’t know about</title><link>https://vpetersson.com/2025/07/11/dslf-a-rust-hacking-cheaper-hosting-and-two-http-codes-i-didnt-know-about/</link><pubDate>Fri, 11 Jul 2025 00:00:00 +0000</pubDate><guid>https://vpetersson.com/2025/07/11/dslf-a-rust-hacking-cheaper-hosting-and-two-http-codes-i-didnt-know-about/</guid><description>&lt;p>I hacked together &lt;a href="https://github.com/vpetersson/dslf">DSLF&lt;/a> today because paying a monthly fee for a plain 301 felt silly.
It’s a tiny Rust service that reads a CSV and spits out redirects—nothing more.&lt;/p>
&lt;p>In the process I learned that HTTP has two “new” redirect codes that slipped past me years ago.&lt;/p>
&lt;h2 id="four-ways-to-say-go-over-there">Four ways to say “go over there”&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Old code&lt;/th>
&lt;th>New code&lt;/th>
&lt;th>Keeps the HTTP method?&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>301&lt;/td>
&lt;td>308&lt;/td>
&lt;td>&lt;strong>Yes&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>302&lt;/td>
&lt;td>307&lt;/td>
&lt;td>&lt;strong>Yes&lt;/strong>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;em>301&lt;/em> and &lt;em>302&lt;/em> can turn a POST into a GET.
&lt;em>307&lt;/em> and &lt;em>308&lt;/em> guarantee the original method sticks. Neat.&lt;/p></description></item><item><title>Codex manages my podcast</title><link>https://vpetersson.com/2025/07/02/codex-manages-my-podcast/</link><pubDate>Wed, 02 Jul 2025 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2025/07/02/codex-manages-my-podcast/</guid><description>&lt;p>When I started my podcast a year and a half ago, I looked at the tools available. For those not familiar, for many platforms (like Amazon Music and Apple Podcasts) you need to provide an RSS feed with your podcast. Now, there is no shortage of platforms that will gladly sell you this. But essentially, what you&amp;rsquo;re paying for is a thin layer on top of S3 with FFmpeg and some duct tape.&lt;/p></description></item><item><title>Rethinking Startups: Inside the Venture Studio Model with Thorbjørn Rønje</title><link>https://vpetersson.com/podcast/s02e13/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e13/</guid><description>&lt;p>Thorbjørn started with a simple insight: traditional entrepreneurship is inefficient. Too much learning happens on the fly, wasting time and capital. In this conversation, he explains how the venture studio approach de-risks the early phases by codifying what works, from building teams to finding product-market fit.&lt;/p>
&lt;p>We dig into Bifrost&amp;rsquo;s &amp;ldquo;Purple Ocean&amp;rdquo; framework for selecting ideas, their rapid product validation process, and why the studio hands off each project once it&amp;rsquo;s ready to scale. It&amp;rsquo;s a model designed for speed, clarity, and capital efficiency.&lt;/p></description></item><item><title>All Roads Lead to DSLRs</title><link>https://vpetersson.com/2025/06/18/all-roads-lead-to-dslrs/</link><pubDate>Wed, 18 Jun 2025 01:00:00 +0000</pubDate><guid>https://vpetersson.com/2025/06/18/all-roads-lead-to-dslrs/</guid><description>&lt;p>I&amp;rsquo;ve been running my video podcast &lt;a href="https://vpetersson.com/podcast/">Nerding out with Viktor&lt;/a> for about a year and a half now, with just under 50 episodes published.&lt;/p>
&lt;p>When I &lt;a href="https://vpetersson.com/2024/06/20/on-launching-a-video-podcast-in-2024/">started out&lt;/a>, I tried to keep things simple and cheap. I used my Logitech Brio 4K webcam - a webcam that I picked up during COVID. Not long after, I upgraded the audio by adding a dedicated microphone, the Audio-Technica ATR2100x-USB. It did the job early on, but the sound still wasn&amp;rsquo;t quite crisp. Eventually, I gave in and bought the Shure MV7 (USB), which is the go-to mic for many podcasters. That one stuck and I&amp;rsquo;ve had no audio issues since.&lt;/p></description></item><item><title>Inside System76: Building Open Hardware and a Linux-First Future</title><link>https://vpetersson.com/podcast/s02e12/</link><pubDate>Wed, 18 Jun 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e12/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Carl Richell, founder and CEO of System76, for an in-depth look at what it takes to build an open source hardware company from the ground up. Carl&amp;rsquo;s journey, from launching Ubuntu laptops before Linux was mainstream to building open firmware, a desktop environment, and even their own factory, is one of the most hands-on stories in open source computing.&lt;/p>
&lt;p>We begin with the early days of System76, where Carl shares what it was like to ship Linux hardware when driver support was shaky and installing an OS meant burning CDs. His focus on delivering a seamless out-of-box experience and supporting users directly helped System76 stand out in a time when Linux on laptops was far from a given.&lt;/p></description></item><item><title>From Gateway to Dongle: Lessons from My Home Assistant Overhaul</title><link>https://vpetersson.com/2025/06/07/home-assistant-revamp/</link><pubDate>Sat, 07 Jun 2025 01:00:00 +0000</pubDate><guid>https://vpetersson.com/2025/06/07/home-assistant-revamp/</guid><description>&lt;p>I’ve previously written about my experiences with Home Assistant &lt;a href="https://vpetersson.com/2020/05/25/homeassistant-ikea-tradfri-flux-sensors/">here&lt;/a> and &lt;a href="https://vpetersson.com/2025/01/22/how-i-use-home-assistant-in-2025/">here&lt;/a>. This article follows up on those posts and describes my current setup.&lt;/p>
&lt;p>Today, my stack includes Home Assistant (HA), Zigbee2MQTT (Z2M) and the Mosquitto MQTT server, all running in Docker with Docker Compose on a VM.&lt;/p>
&lt;p>Here are some things I&amp;rsquo;ve learned, which would might save others time and effort.&lt;/p>
&lt;hr>
&lt;h2 id="the-best-ui-is-no-ui">The best UI is no UI&lt;/h2>
&lt;p>I wrote this in my first HA article years ago, but it still holds true: ideally, you never touch a button or, worse, the HA app. I only reach for a light switch or HA when something unusual happens. Everything else is driven by motion sensors or time-based automations.&lt;/p></description></item><item><title>The Systems Behind Managing High-Performing Remote Teams with Jon Seager</title><link>https://vpetersson.com/podcast/s02e11/</link><pubDate>Wed, 04 Jun 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e11/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Jon Seager, VP of Engineering at Canonical, for a deep dive into the systems and practices that make remote teams thrive. Jon&amp;rsquo;s experience scaling Canonical&amp;rsquo;s distributed engineering organization offers unique insights into what really works in remote leadership.&lt;/p>
&lt;p>We start by exploring how Canonical structures its fully distributed engineering organization. What particularly caught my attention was Jon&amp;rsquo;s approach to measuring output rather than activity, and how this fundamental shift in perspective drives better results. His explanation of calendar ownership as a performance predictor reveals the subtle but crucial aspects of remote work culture.&lt;/p></description></item><item><title>Why Web3, Crypto, and Blockchain Still Struggle in the Real World</title><link>https://vpetersson.com/podcast/s02e10/</link><pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s02e10/</guid><description>&lt;p>In this episode, I talk with Vlad Trifa, founder of Zimt and co-founder of EVRYTHNG (bought by Digimarc), about the challenges of applying Web3, crypto, and blockchain in real-world systems.&lt;/p>
&lt;p>With a background in IoT, supply chain tracking, and digital product identity, Vlad shares practical lessons from working on blockchain projects outside of the lab. We discuss what often goes wrong when these technologies are used in enterprise environments, and where they might still be useful if done right.&lt;/p></description></item><item><title>Sonar Is Back: A Fresh Take on BLE Device Counting</title><link>https://vpetersson.com/projects/bluetooth/2025/05/07/sonar-is-back/</link><pubDate>Wed, 07 May 2025 12:00:00 +0000</pubDate><guid>https://vpetersson.com/projects/bluetooth/2025/05/07/sonar-is-back/</guid><description>&lt;p>I&amp;rsquo;m excited to share that I&amp;rsquo;ve just given Sonar—a FastAPI-based BLE device counter I built years ago—a full overhaul and relaunched it as an open-source project on GitHub: &lt;a href="https://github.com/viktopia/sonar">https://github.com/viktopia/sonar&lt;/a>&lt;/p>
&lt;h3 id="why-sonar">Why Sonar?&lt;/h3>
&lt;p>When I first created Sonar, the goal was simple: track Bluetooth Low Energy devices nearby to estimate foot traffic in a space without specialized hardware. Over time, the codebase drifted, dependencies aged, and the project paused. Now, with modern Python tooling and container best practices, Sonar is leaner, easier to deploy, and more powerful than ever.&lt;/p></description></item><item><title>Inside the Yocto Project's Evolving Tooling: SBOMs, SPDX 3.0, and Secure Embedded Systems</title><link>https://vpetersson.com/podcast/s02e09/</link><pubDate>Wed, 07 May 2025 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s02e09/</guid><description>&lt;p>In this deep-dive conversation, I sit down with Joshua Watt (Garmin) and Ross Burton (ARM) to explore how the Yocto Project is redefining how we build, secure, and maintain embedded Linux systems at scale.&lt;/p>
&lt;p>Drawing on their years of experience contributing to Yocto&amp;rsquo;s technical steering and core infrastructure, Joshua and Ross walk through why build-time Software Bill of Materials (SBOMs) offer unmatched reliability, how SPDX 3.0 enables deeper license and supply chain visibility, and what it really takes to keep embedded products secure across decade-long lifecycles.&lt;/p></description></item><item><title>Startup Founder Lessons on Scaling Teams, Systems, and Culture with Kevin Henrikson</title><link>https://vpetersson.com/podcast/s02e08/</link><pubDate>Wed, 23 Apr 2025 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s02e08/</guid><description>&lt;p>In this deep-dive conversation, I sit down with Kevin Henrikson to explore what it really takes to scale technical teams, ship faster, and survive the transition from startup chaos to operating at enterprise scale.&lt;/p>
&lt;p>Drawing on his experience across Zimbra, Microsoft, and Instacart, Kevin shares lessons that most startup founders only learn the hard way. From being turned down for a coding role and later managing the team that rejected him, to leading engineering through acquisitions and hypergrowth, he breaks down how systems, structure, and culture evolve when a company goes from 10 people to 1500.&lt;/p></description></item><item><title>Saving My Wrists - A 20-Year Quest for the Perfect Keyboard Setup</title><link>https://vpetersson.com/2025/04/18/saving-my-wrists-a-20-year-quest-for-the-perfect-keyboard-setup/</link><pubDate>Fri, 18 Apr 2025 00:52:44 +0000</pubDate><guid>https://vpetersson.com/2025/04/18/saving-my-wrists-a-20-year-quest-for-the-perfect-keyboard-setup/</guid><description>&lt;p>I&amp;rsquo;ve been using split keyboards for about 20 years now, a journey sparked by the all-too-common wrist pain that plagues many a nerd hunched over a standard keyboard. This quest for ergonomic nirvana led me down a rabbit hole of different keyboards, culminating in my current mechanical setup, and even prompted me to switch my mouse to my &lt;em>left&lt;/em> hand (more on that curious habit later). My first split keyboard was the Microsoft Natural Keyboard back in the late 90s.&lt;/p></description></item><item><title>Reimagining CI/CD and Engineering Culture at Scale with Vlad A. Ionescu</title><link>https://vpetersson.com/podcast/s02e07/</link><pubDate>Fri, 11 Apr 2025 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s02e07/</guid><description>&lt;p>&lt;strong>Update:&lt;/strong> Since this episode went live, Earthly &lt;a href="https://earthly.dev/blog/shutting-down-earthfiles-cloud/">announced&lt;/a> that they ending their investment in the Earthly open source project. Efforts are being invested into having the community taking over the open source project.&lt;/p>
&lt;p>In this deep-dive conversation, I sit down with Vlad Ionescu, founder and CEO of &lt;a href="https://earthly.dev">Earthly&lt;/a>, to unpack the evolution of CI/CD, why developer experience is broken, and what it will take to bring sanity back to software delivery at scale.&lt;/p></description></item><item><title>A Decade and a Half of Remote Work</title><link>https://vpetersson.com/remote-work/2025/04/07/a-decade-and-a-half-of-remote-work/</link><pubDate>Mon, 07 Apr 2025 01:00:00 +0000</pubDate><guid>https://vpetersson.com/remote-work/2025/04/07/a-decade-and-a-half-of-remote-work/</guid><description>&lt;p>When I wrote &lt;a href="https://vpetersson.com/2019/05/18/a-decade-of-remote/">A Decade of Remote Work&lt;/a> back in 2019, I had no idea a global pandemic would soon thrust remote work into the spotlight, turning it from niche to necessity overnight. Now, as I mark 15 years of building and running remote teams, I find myself revisiting and refining many of the lessons from the past and adding new insights gathered from recent experiences. This article is for tech startup founders and remote leaders, sharing practical advice for navigating the challenges and opportunities of long-term remote work.&lt;/p></description></item><item><title>Migrating Git repositories from Phabricator or Phorge to GitHub</title><link>https://vpetersson.com/2025/04/02/migrating-git-repositories-from-phabricator-to-github/</link><pubDate>Wed, 02 Apr 2025 01:00:00 +0000</pubDate><guid>https://vpetersson.com/2025/04/02/migrating-git-repositories-from-phabricator-to-github/</guid><description>&lt;p>I recently helped a team migrate their Git repositories from Phabricator to GitHub. While Phabricator was a great tool that combined code reviews, task management, and repository hosting, its official deprecation in 2021 has left many teams looking for alternatives.&lt;/p>
&lt;p>While moving directly from Phabricator to Phorge is often the simplest path (here&amp;rsquo;s a &lt;a href="https://we.phorge.it/w/why_migrating_from_phabricator_to_phorge/">migration guide&lt;/a>), some teams prefer to keep their project management in Phabricator/Phorge while leveraging GitHub&amp;rsquo;s CI/CD capabilities. Here&amp;rsquo;s how we handled the Git migration:&lt;/p></description></item><item><title>Europe's Battle for Tech Sovereignty: Why OpenStack Matters</title><link>https://vpetersson.com/podcast/s02e06/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s02e06/</guid><description>&lt;p>In this timely conversation with Johan Christenson, founder of &lt;a href="https://cleura.com">Cleura&lt;/a> and board member of OpenInfra (overseeing Kata Containers and OpenStack), we dive into Europe&amp;rsquo;s growing urgency around digital sovereignty and what it will actually take to build a competitive, homegrown cloud ecosystem. Johan, a long-time advocate for open source infrastructure, pulls back the curtain on why progress has been so slow and where things can shift.&lt;/p>
&lt;p>We kick off by looking at Europe&amp;rsquo;s deep dependence on U.S. cloud providers, and the real-world risks that come with it. From pricing power and data availability to political influence and tech autonomy, Johan explains how this imbalance affects everything from government policy to startup growth.&lt;/p></description></item><item><title>Physical Pen Testing Secrets: Covert Building Infiltration Explained</title><link>https://vpetersson.com/podcast/s02e05/</link><pubDate>Fri, 14 Mar 2025 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s02e05/</guid><description>&lt;p>In this captivating conversation with Warren Houghton, we explore the secretive world of physical penetration testing. Warren, an experienced security professional, shares his expertise in testing and bypassing physical security measures that protect sensitive facilities and assets.&lt;/p>
&lt;p>We begin by discussing the fundamentals of physical penetration testing and how it differs from digital security assessments. Warren explains his methodical approach to evaluating building security, from initial reconnaissance to execution, and how he documents vulnerabilities for clients to address.&lt;/p></description></item><item><title>Troubleshooting UniFi Camera Adoption on Old G3 Pro Cameras</title><link>https://vpetersson.com/2025/03/01/troubleshooting-unifi-camera-adoption/</link><pubDate>Sat, 01 Mar 2025 20:24:00 +0000</pubDate><guid>https://vpetersson.com/2025/03/01/troubleshooting-unifi-camera-adoption/</guid><description>&lt;p>I recently got a few affordable G3 Pro cameras to replace some less-than-stellar G4 Dome units I had in my setup. Once I hooked these cameras up to the network, they appeared in my UniFi Console (Dream Machine Pro) without issue. However, after clicking the &amp;ldquo;Adopt&amp;rdquo; button, they became stuck in &amp;ldquo;Restoring&amp;rdquo; mode for quite some time.&lt;/p>
&lt;p>Eventually, I decided to look for solutions online and found &lt;a href="https://www.kilala.nl/index.php?id=2614">a blog post&lt;/a> detailing a similar problem. My own fix turned out to be simpler, and here is how I resolved the issue:&lt;/p></description></item><item><title>Balena, IoT Security, and the Future of Connected Devices</title><link>https://vpetersson.com/podcast/s02e04/</link><pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s02e04/</guid><description>&lt;p>In this insightful conversation with Marc Pous from Balena, we explore the evolving landscape of IoT and connected devices. Marc, who has been deeply involved in the IoT space since 2007, brings a wealth of experience from his journey through academic research, entrepreneurship, and his current role at Balena, where he&amp;rsquo;s approaching his fifth anniversary.&lt;/p>
&lt;p>We begin by discussing Balena&amp;rsquo;s core mission: enabling developers to manage fleets of IoT devices at scale. Marc explains how Balena helps companies handle everything from remote management to over-the-air updates for hundreds of thousands of devices. The platform&amp;rsquo;s unique approach focuses on Linux devices running Balena OS, which exclusively runs Docker containers, bringing modern DevOps practices to the embedded world.&lt;/p></description></item><item><title>Yocto, RockPi and SBOMs: Building Modern Embedded Linux Images</title><link>https://vpetersson.com/2025/02/21/yocto-rockpi-and-sboms/</link><pubDate>Fri, 21 Feb 2025 15:34:00 +0100</pubDate><guid>https://vpetersson.com/2025/02/21/yocto-rockpi-and-sboms/</guid><description>&lt;p>&lt;strong>TLDR&lt;/strong>: &lt;em>I wanted to generate an up-to-date disk image for a Rock Pi 4 using Yocto that included CUPS and Docker to both get a better understanding of Yocto and test the new SBOM generation feature.&lt;/em>&lt;/p>
&lt;p>As with many single-board computers (SBCs) from China, the issue often isn&amp;rsquo;t the board itself but rather the software. RockPi from Radxa is no exception. If you go and download the &lt;a href="https://wiki.radxa.com/Rock4/downloads">latest disk images&lt;/a> for this board, you will notice that they are all end-of-life (EoL). However, these boards are still great and work very well for many applications. This should be top of mind if you are building a product that uses any of these devices.&lt;/p></description></item><item><title>Dustin Kirkland on Chainguard, Zero-CVE Containers, and Supply Chain Security</title><link>https://vpetersson.com/podcast/s02e03/</link><pubDate>Fri, 14 Feb 2025 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s02e03/</guid><description>&lt;p>In this engaging conversation with Dustin Kirkland, we explored the fascinating world of container security and supply chain integrity through the lens of Chainguard&amp;rsquo;s innovative approach. Dustin, with his extensive background spanning IBM, Canonical, Google, and now Chainguard, brings a wealth of experience in open source, security, and enterprise software development.&lt;/p>
&lt;p>We began by discussing Chainguard&amp;rsquo;s unique position in the container security landscape. Unlike traditional Linux distributions, Chainguard takes a different approach by focusing on building and maintaining &amp;ldquo;zero-CVE&amp;rdquo; containers - container images that are continuously updated to eliminate known vulnerabilities. This involves an impressive automated pipeline that can detect and patch vulnerabilities within hours of upstream fixes becoming available.&lt;/p></description></item><item><title>Pentesting 101: Hacking Legally with Warren Houghton</title><link>https://vpetersson.com/podcast/s02e02/</link><pubDate>Fri, 31 Jan 2025 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s02e02/</guid><description>&lt;p>In my conversation with Warren Houghton, I gained a thorough understanding of penetration testing from both a strategic and technical standpoint. We started with the scoping process, which sets the stage for any successful test. I learned that having a clear agreement about what systems, applications, and IP addresses can be targeted is not just a legal safeguard; it also helps avoid accidentally bringing down critical services. Warren highlighted how testers confirm authorization by collecting signed documents, which eliminates any risk of unauthorized hacking activities.&lt;/p></description></item><item><title>How I Use Home Assistant in 2025</title><link>https://vpetersson.com/2025/01/22/how-i-use-home-assistant-in-2025/</link><pubDate>Wed, 22 Jan 2025 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2025/01/22/how-i-use-home-assistant-in-2025/</guid><description>&lt;p>I&amp;rsquo;ve been using Home Assistant for about seven years now, starting back when I was living in a small apartment. At the time, my setup was modest: I used the &lt;strong>IKEA Smart Hub&lt;/strong> (when it first launched) to tie together all my apartment&amp;rsquo;s lights. As I got more comfortable with automations, I also began building &lt;a href="https://vpetersson.com/2019/11/16/home-assistant-and-esphome/">custom hardware like temperature and humidity sensors&lt;/a>.&lt;/p>
&lt;p>However, once I started adding more complexity (more devices, more automations), I realized that running Home Assistant on a Raspberry Pi just wasn&amp;rsquo;t viable anymore. This was before Home Assistant offered their own hardware (which I haven&amp;rsquo;t tried, so I can&amp;rsquo;t say much about it). But for me, the main issue was the database. By default, Home Assistant uses SQLite, and when you have a ton of sensor data flowing in, SQLite can start choking.&lt;/p></description></item><item><title>A deep dive into the SBOM format SPDX</title><link>https://vpetersson.com/podcast/s02e01/</link><pubDate>Fri, 17 Jan 2025 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s02e01/</guid><description>&lt;p>In this episode, I speak with Kate Stewart from the Linux Foundation and Gary O&amp;rsquo;Neall, a long-time SPDX contributor, about the evolution of SPDX and its role in software transparency. We discuss how SPDX started as a tool for tracking open-source license compliance and continues to address broader needs in security and vulnerability management.&lt;/p>
&lt;p>Kate and Gary walked through the technical challenges teams face when generating accurate SBOMs, including handling circular dependencies and dealing with uncertainty in software components. They shared practical examples from their work with various organizations and explained how these challenges influenced the development of SPDX tools and specifications.&lt;/p></description></item><item><title>Using Google Forms for Waitlists and Launches</title><link>https://vpetersson.com/2025/01/14/using-google-forms-for-waitlists/</link><pubDate>Tue, 14 Jan 2025 12:00:00 +0100</pubDate><guid>https://vpetersson.com/2025/01/14/using-google-forms-for-waitlists/</guid><description>&lt;p>Over the last decade, I&amp;rsquo;ve spun up quite a few landing pages to gauge interest for upcoming products and features. Back in the day, there were platforms like &lt;a href="https://www.launchrock.com/">Launchrock&lt;/a> that made it simple to collect email addresses and maintain a waitlist. While Launchrock (and later &lt;a href="https://www.typeform.com/">Typeform&lt;/a>, etc.) provided decent user experiences at the time, the end goal was always the same: &lt;strong>collect user data into a spreadsheet (or CRM).&lt;/strong>&lt;/p>
&lt;p>Nowadays, I still want the same functionality (i.e., capturing emails and other user info), but I want it to &lt;em>look native&lt;/em> on my site. Embedding a big Google Form or Typeform often looks clunky because it&amp;rsquo;s just an iframe that&amp;rsquo;s visually out of sync with the rest of the site.&lt;/p></description></item><item><title>All things ZFS and FreeBSD with Allan Jude</title><link>https://vpetersson.com/podcast/s01e25/</link><pubDate>Mon, 02 Dec 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e25/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Allan Jude, a distinguished FreeBSD developer and ZFS expert, to explore the fascinating world of advanced storage systems and operating system architecture. Allan&amp;rsquo;s extensive contributions to both FreeBSD and ZFS offer unique insights into how these technologies shape modern infrastructure.&lt;/p>
&lt;p>We start with ZFS&amp;rsquo;s architectural foundations. What particularly caught my attention was Allan&amp;rsquo;s explanation of how copy-on-write mechanisms transform data integrity and storage management. His breakdown of ZFS&amp;rsquo;s self-healing capabilities and data verification approaches reveals why it remains crucial for enterprise storage solutions.&lt;/p></description></item><item><title>From Passwords to Passkeys: Exploring the Future of Authentication with Massi Gori</title><link>https://vpetersson.com/podcast/s01e23/</link><pubDate>Mon, 04 Nov 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e23/</guid><description>&lt;p>Today I&amp;rsquo;m joined by Massi Gori for a deep dive into modern authentication systems. Having worked extensively with these technologies, I was particularly excited to get Massi&amp;rsquo;s insights on where we&amp;rsquo;re heading with authentication and access control.&lt;/p>
&lt;p>We start by exploring the evolution from traditional passwords to passkeys. Massi breaks down the technical aspects of FIDO2, but what I found most valuable was his practical experience implementing these systems in enterprise environments. We discuss the real challenges organizations face when transitioning to modern authentication methods, and how to overcome them.&lt;/p></description></item><item><title>Hacking airplanes, ships and IoT devices with Ken Munro</title><link>https://vpetersson.com/podcast/s01e24/</link><pubDate>Mon, 04 Nov 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e24/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Ken Munro for an eye-opening discussion about security vulnerabilities in transportation and IoT systems. Ken&amp;rsquo;s work in penetration testing has revealed some seriously concerning issues in systems we rely on daily, and I was eager to dig into the details.&lt;/p>
&lt;p>We start by exploring GPS systems - not just the US Global Positioning System that most people know, but the whole family of satellite-based navigation systems. Ken walks me through some shocking vulnerabilities he&amp;rsquo;s discovered, particularly in maritime systems. What really caught my attention was his demonstration of how relatively easy it is to compromise these critical systems.&lt;/p></description></item><item><title>SBOMs, CycloneDX, and Software Security with Steve Springett</title><link>https://vpetersson.com/podcast/s01e22/</link><pubDate>Mon, 21 Oct 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e22/</guid><description>&lt;p>Today I&amp;rsquo;m diving into the world of Software Bill of Materials (SBOMs) with Steve Springett, one of the core working group stewards behind CycloneDX. Steve&amp;rsquo;s work on standardizing how we communicate about software components is reshaping security practices across the industry.&lt;/p>
&lt;p>We start by exploring what makes CycloneDX different from other SBOM standards. Steve explains their pragmatic approach to design, focusing on automation and real-world usability. What really caught my attention was how they&amp;rsquo;re tackling the challenge of dependency tracking and software supply chain security - issues I&amp;rsquo;ve wrestled with myself in various projects.&lt;/p></description></item><item><title>RFID Hacking with Iceman: Exploring RFID Security</title><link>https://vpetersson.com/podcast/s01e21/</link><pubDate>Sun, 22 Sep 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e21/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Iceman, a renowned expert in RFID and NFC hacking, to explore the fascinating world of RF security. Iceman&amp;rsquo;s extensive contributions to the Proxmark platform, particularly through his &amp;ldquo;&lt;a href="https://github.com/RfidResearchGroup/proxmark3">Iceman Fork&lt;/a>,&amp;rdquo; offer unique insights into the capabilities and vulnerabilities of RFID systems.&lt;/p>
&lt;p>We start with Iceman&amp;rsquo;s journey in RF hacking and his early work with Proxmark. What particularly caught my attention was his explanation of how the platform has evolved, extending its capabilities to support a wider range of RFID tags and protocols. His commitment to open-source development and knowledge sharing reveals the collaborative nature of the RF hacking community.&lt;/p></description></item><item><title>Uncovering Firmware Security: A Deep Dive with Binarly's Philipp Deppenwiese</title><link>https://vpetersson.com/podcast/s01e20/</link><pubDate>Sun, 22 Sep 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e20/</guid><description>&lt;p>Today I&amp;rsquo;m joined by Philipp Deppenwiese from Binarly for a deep technical dive into firmware security. If you&amp;rsquo;ve been following the security space, you might know Binarly for their impressive work uncovering BIOS vulnerabilities like PixieFail and LogoFail.&lt;/p>
&lt;p>We start by exploring attestation - a crucial yet often overlooked aspect of secure computing. Philipp breaks down how it differs from traditional secure boot mechanisms, particularly when it comes to verifying what code is actually running on a system. What I found particularly interesting was his explanation of how TPMs can facilitate attestation, creating an unbreakable chain of trust from boot to runtime.&lt;/p></description></item><item><title>Unpacking Docker's Journey: Justin Cormack, on DevOps, Containerization, and the Future of Wasm</title><link>https://vpetersson.com/podcast/s01e19/</link><pubDate>Mon, 09 Sep 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e19/</guid><description>&lt;p>I&amp;rsquo;m excited to share my conversation with Justin Cormack, Docker&amp;rsquo;s CTO. Justin has been at the heart of Docker&amp;rsquo;s evolution, and today we dig into both the technical and strategic decisions that have shaped containerization as we know it.&lt;/p>
&lt;p>We kick off by exploring Justin&amp;rsquo;s early days with Docker, which sets up a fascinating discussion about how Docker has transformed application deployment. The whole &amp;ldquo;containers vs VMs&amp;rdquo; debate comes up, and Justin explains why this comparison misses the point - it&amp;rsquo;s really about making application packaging and deployment more accessible to developers.&lt;/p></description></item><item><title>Exploring the Future of AI: Luke Marsden Unveils Helix and the Open Source Revolution</title><link>https://vpetersson.com/podcast/s01e18/</link><pubDate>Mon, 26 Aug 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e18/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Luke Marsden to explore the practical side of AI deployment and his work on Helix. Luke brings deep expertise in making AI accessible and secure for businesses, and I was particularly interested in his approach to open-source AI solutions.&lt;/p>
&lt;p>We start with a clear breakdown of large language models (LLMs), with Luke explaining their core concepts in practical terms. What really caught my attention was his perspective on the evolution from research curiosity to practical business tool, especially following ChatGPT&amp;rsquo;s impact on the industry.&lt;/p></description></item><item><title>Daniel Stenberg on Curl's Journey: From C64 Demos to Internet Transfers</title><link>https://vpetersson.com/podcast/s01e17/</link><pubDate>Mon, 29 Jul 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e17/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Daniel Stenberg, the creator of Curl, for a fascinating journey through open-source development. Daniel&amp;rsquo;s path from the Commodore 64 demo scene to building one of the most widely-used tools in software development offers unique insights into both technical evolution and community building.&lt;/p>
&lt;p>We begin with Daniel&amp;rsquo;s early days programming on the C64 and Amiga, where he cut his teeth in the demo scene. What really caught my attention was how these experiences shaped his approach to programming and eventually led to Curl&amp;rsquo;s development at IBM. His journey from hobby coder to maintaining critical internet infrastructure is both inspiring and instructive.&lt;/p></description></item><item><title>Unveiling SBOMs: Insights from Allan Friedman of CISA</title><link>https://vpetersson.com/podcast/s01e16/</link><pubDate>Mon, 29 Jul 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e16/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Allan Friedman from CISA for an in-depth exploration of Software Bill of Materials (SBOMs). Allan brings unique insights from his work at CISA, where he&amp;rsquo;s been instrumental in shaping how we approach software supply chain security.&lt;/p>
&lt;p>We begin by discussing CISA&amp;rsquo;s role in cybersecurity, with Allan explaining their mission of &amp;ldquo;defending today and securing tomorrow.&amp;rdquo; What particularly interests me is how they balance immediate threat response with building more secure infrastructure for the future. Allan&amp;rsquo;s explanation of CISA&amp;rsquo;s international partnerships and their collaboration with other US government agencies provides valuable context for understanding the broader security landscape.&lt;/p></description></item><item><title>Past, Present, and Future of Computing with Bryan Cantrill, CTO of Oxide Computer Company</title><link>https://vpetersson.com/podcast/s01e15/</link><pubDate>Mon, 15 Jul 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e15/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Bryan Cantrill, CTO and co-founder of Oxide Computer Company, for a deep dive into the evolution of computing technology. Bryan&amp;rsquo;s journey from developing DTrace to reimagining cloud infrastructure offers fascinating insights into where our industry has been and where it&amp;rsquo;s heading.&lt;/p>
&lt;p>We start with Bryan&amp;rsquo;s groundbreaking work on DTrace at Sun Microsystems. What really caught my attention was his frustration with system observability limitations and how it drove him to develop a solution that could instrument running systems without modifying them. This approach to problem-solving - focusing on observation rather than modification - has influenced system design ever since.&lt;/p></description></item><item><title>Unlocking Firmware Secrets with Christian Walter: BIOS Vulnerabilities &amp; Security Insights</title><link>https://vpetersson.com/podcast/s01e14/</link><pubDate>Mon, 01 Jul 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e14/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Christian Walter from 9Elements for a deep dive into firmware security. As the leader of their firmware development department and a key figure in the Open Source Firmware Foundation, Christian brings unique insights into the challenges and innovations in firmware security.&lt;/p>
&lt;p>We begin by exploring recent high-profile vulnerabilities like LogoFail and PixiFail. What particularly caught my attention was Christian&amp;rsquo;s technical breakdown of these issues and their broader implications for system security. His explanation of how these vulnerabilities work reveals the complex challenges we face in securing firmware.&lt;/p></description></item><item><title>Nerding Out with Viktor is now available as audio-only, a.k.a Turning my video podcast into an audio podcast</title><link>https://vpetersson.com/2024/06/27/video-to-audio-podcast/</link><pubDate>Thu, 27 Jun 2024 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2024/06/27/video-to-audio-podcast/</guid><description>&lt;p>In my previous article, &lt;a href="https://vpetersson.com/2024/06/20/on-launching-a-video-podcast-in-2024/">Launching a Video Podcast in 2024: My Journey and Lessons Learned&lt;/a>, I shared my experience of starting a podcast. Since then, I came across some intriguing &lt;a href="https://www.thepodcasthost.com/planning/should-i-make-a-video-podcast/">research&lt;/a> revealing that 43% of podcast listeners prefer audio-only formats. This got me thinking—by offering my podcast solely as a video feed, I might have been missing out on a significant audience. Given that I had already developed my own &lt;a href="https://github.com/vpetersson/podcast-rss-generator/">podcast RSS generator&lt;/a>, this presented a perfect chance to nerd out a bit.&lt;/p></description></item><item><title>Launching a Video Podcast in 2024: My Journey and Lessons Learned</title><link>https://vpetersson.com/2024/06/20/on-launching-a-video-podcast-in-2024/</link><pubDate>Thu, 20 Jun 2024 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2024/06/20/on-launching-a-video-podcast-in-2024/</guid><description>&lt;p>&lt;strong>Update:&lt;/strong> Check out my blog post &lt;a href="https://vpetersson.com/2025/06/18/all-roads-lead-to-dslrs/">All Roads Lead to DSLRs&lt;/a>&lt;/p>
&lt;p>&lt;em>This blog post is inspired by the new wave of &amp;ldquo;Build in the Open&amp;rdquo; movement, where I want to share my experience and data.&lt;/em>&lt;/p>
&lt;p>In 2023, I embarked on a new adventure: launching a podcast. The idea was simple yet exciting — bring friends and experts to discuss topics they&amp;rsquo;re passionate about, building my personal brand and promoting &lt;a href="https://www.screenly.io">Screenly&lt;/a> and &lt;a href="https://studio.viktopia.io/">Viktopia Studio&lt;/a> along the way.&lt;/p></description></item><item><title>Exploring the Depths of Linux and Open Source Innovation with Mark Shuttleworth</title><link>https://vpetersson.com/podcast/s01e13/</link><pubDate>Mon, 17 Jun 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e13/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Mark Shuttleworth for a wide-ranging discussion about Linux, open source, and the future of computing. Mark&amp;rsquo;s journey from founding a certificate authority in South Africa to becoming the second private space tourist before creating Ubuntu offers a unique perspective on technology and innovation.&lt;/p>
&lt;p>We begin with Mark&amp;rsquo;s early days in technology, exploring how his combined interest in science and business led to starting a CA company that caught Netscape&amp;rsquo;s attention. What particularly fascinated me was his transition from the business world to space exploration, including his intensive training in Russia. These diverse experiences clearly influenced his approach to technology and open source.&lt;/p></description></item><item><title>Transforming Tech with Eben Upton: Exploring Raspberry Pi's Global Impact</title><link>https://vpetersson.com/podcast/s01e12/</link><pubDate>Mon, 03 Jun 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e12/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Eben Upton, the founder of Raspberry Pi Foundation, for a fascinating discussion about affordable computing and its impact on education and industry. Eben&amp;rsquo;s journey from observing declining computer science applications at Cambridge to creating a global computing phenomenon offers unique insights into how simple ideas can transform technology education.&lt;/p>
&lt;p>We start with Eben&amp;rsquo;s early computing experiences in the 1980s, which shaped his vision for Raspberry Pi. What particularly struck me was the story of the Pi&amp;rsquo;s launch in 2012, selling an incredible 100,000 units on day one. This success story takes an interesting turn as we explore how Pi expanded beyond education into industrial applications, including my own experience with Screenly using Pi for digital signage.&lt;/p></description></item><item><title>Secure your Tailscale infra further with Mutual TLS (mTLS)</title><link>https://vpetersson.com/2024/05/29/tailscale-and-mutual-tls/</link><pubDate>Wed, 29 May 2024 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2024/05/29/tailscale-and-mutual-tls/</guid><description>&lt;p>A while back, I wrote about how I&amp;rsquo;m using Tailscale to &lt;a href="https://vpetersson.com/2022/12/23/securing-services-with-tailscale/">secure my local service&lt;/a>, thanks to Tailscale&amp;rsquo;s built-in certificates. This greatly improved the security of my local environment. Combined with the rather sophisticated ACL policies, you can lock things down pretty well.&lt;/p>
&lt;p>That gets you pretty far, but I wanted to secure some services that didn&amp;rsquo;t offer any real authentication (like &lt;a href="https://github.com/gollum/gollum">Gollum&lt;/a>), which I use for notes.&lt;/p>
&lt;p>This got me thinking about Mutual TLS (mTLS), which we use pretty heavily at &lt;a href="https://www.screenly.io">Screenly&lt;/a>. Would it be possible to use the certificates from Tailscale for mTLS? As it turns out, yes!&lt;/p></description></item><item><title>Demystifying eBPF with Liz Rice: A Deep Dive into Kernel Programming and Security</title><link>https://vpetersson.com/podcast/s01e11/</link><pubDate>Mon, 20 May 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e11/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Liz Rice, a security expert and open-source advocate, for a deep dive into the fascinating world of eBPF. Liz&amp;rsquo;s expertise in kernel programming and security offers unique insights into how this technology is reshaping modern infrastructure.&lt;/p>
&lt;p>We start by breaking down what eBPF actually is - dynamic programming of the Linux kernel to alter its behavior. What particularly caught my attention was how this technology has evolved far beyond its original purpose of packet filtering. Liz shares her introduction to eBPF through Thomas Graf&amp;rsquo;s presentation on Cilium at DockerCon 2017, while I highlight Brendan Gregg&amp;rsquo;s groundbreaking work at Netflix using eBPF for network diagnostics.&lt;/p></description></item><item><title>Discover Email Providers Effortlessly with Email Service Checker</title><link>https://vpetersson.com/2024/05/16/email-service-checker/</link><pubDate>Thu, 16 May 2024 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2024/05/16/email-service-checker/</guid><description>&lt;p>A decade ago, I created &amp;ldquo;Are They Using Google Apps&amp;rdquo; to address a simple yet crucial need: determining whether a remote party was using Google Apps (now Google Workspace) to decide if I should send them a Hangout invite for a meeting (or something else). Fast forward to today, and I am thrilled to introduce a revitalized and enhanced version of this concept – &lt;a href="https://emailservicechecker.com">Email Service Checker&lt;/a>.&lt;/p>
&lt;p>Email Service Checker takes the original idea a step further by providing a comprehensive tool that allows you to determine the email service provider a domain or email address is using. This tool is perfect for sales teams and professionals who need to understand the email stack of their prospects for more targeted and effective outreach.&lt;/p></description></item><item><title>Revolutionizing Firmware Updates in Linux: A Deep Dive with Experts</title><link>https://vpetersson.com/podcast/s01e10/</link><pubDate>Mon, 06 May 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e10/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Richard Hughes from Red Hat and Mario Limonciello from AMD to explore the fascinating world of firmware updates in Linux. Their work on the Firmware Update Project has fundamentally changed how we handle firmware updates in the Linux ecosystem.&lt;/p>
&lt;p>We start with Richard sharing the origin story of fwupd, which began with his work on Colorhug, a free software color sensor. What particularly caught my attention was how this seemingly simple project revealed the broader need for standardized firmware updates in Linux. Mario then adds his perspective from Dell, where they were trying to match Windows Update&amp;rsquo;s capabilities for Linux users.&lt;/p></description></item><item><title>My Home Server Journey - From Raspberry Pi to Ryzen</title><link>https://vpetersson.com/2024/05/04/home-server-journey/</link><pubDate>Sat, 04 May 2024 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2024/05/04/home-server-journey/</guid><description>&lt;h3 id="introduction">Introduction&lt;/h3>
&lt;p>Back when I was living in a snug studio flat in London, I began my home server adventure with a Raspberry Pi 3. This move to a settled lifestyle came after years of living as a digital nomad, during which I had fully minimized my personal belongings to adapt to a constantly mobile life. The shift to a more permanent base in London marked a new chapter where I could explore more stationary tech projects like setting up a home server.&lt;/p></description></item><item><title>Mastering OpenSSF Scorecards &amp; SBOMs with Chris Swan</title><link>https://vpetersson.com/podcast/s01e09/</link><pubDate>Mon, 22 Apr 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e09/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Chris Swan from Atsign to explore the evolving landscape of open-source security. Chris&amp;rsquo;s experience with end-to-end encrypted connections and his work with the Open Source Security Foundation (OpenSSF) offers unique insights into how we can better secure our software supply chains.&lt;/p>
&lt;p>We start with a deep dive into Scorecards, an OpenSSF project that helps organizations demonstrate their security practices. What particularly caught my attention was how Atsign has used Scorecards to address customer security concerns, especially for their open-source repositories. Chris&amp;rsquo;s explanation of how Scorecards evaluate everything from dependency management to CI/CD practices reveals the practical impact of these tools on everyday development.&lt;/p></description></item><item><title>The Future of Personal AI and Privacy: A Deep Dive with Kin Co-Founder Simon Westh Henriksen</title><link>https://vpetersson.com/podcast/s01e08/</link><pubDate>Mon, 08 Apr 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e08/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Simon Westh Henriksen, co-founder of &lt;a href="https://mykin.ai/">Kin&lt;/a> (formerly Hyphen), to explore the fascinating intersection of AI and privacy. Simon&amp;rsquo;s journey from software engineer to Web3 innovator offers unique insights into how we can build AI systems that respect user privacy while remaining highly functional.&lt;/p>
&lt;p>We start with Simon&amp;rsquo;s path to founding Kin, which took an interesting turn during the COVID-19 pandemic when he dove deep into Web3. What particularly caught my attention was his vision for a privacy-first personal AI assistant. Simon&amp;rsquo;s explanation of how they handle data locally on devices while maintaining AI functionality reveals the practical challenges of balancing convenience with security.&lt;/p></description></item><item><title>Introducing sbomify - The Future of SBOM Management</title><link>https://vpetersson.com/2024/04/05/sbomify/</link><pubDate>Fri, 05 Apr 2024 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2024/04/05/sbomify/</guid><description>&lt;p>I&amp;rsquo;m excited to share with you something that has been in the works for some time - &lt;a href="https://sbomify.com">sbomify&lt;/a>, my latest venture aimed at transforming how Software Bill of Materials (SBOMs) are managed, shared, and worked on. As we navigate through the complexities of modern software development, the need for maintaining stringent security and compliance has never been more apparent. It&amp;rsquo;s this challenge that spurred me to create sbomify, a platform that simplifies SBOM management in a way that&amp;rsquo;s not just efficient, but also fosters greater transparency and collaboration among everyone involved.&lt;/p></description></item><item><title>On UniFi Captive Portals</title><link>https://vpetersson.com/2024/03/27/unifi-captive-portal/</link><pubDate>Wed, 27 Mar 2024 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2024/03/27/unifi-captive-portal/</guid><description>&lt;h2 id="what-are-captive-portals">What are captive portals?&lt;/h2>
&lt;p>Lately, I&amp;rsquo;ve been doing some digging into captive portals - you know, these things that pop up when you try to connect to the WiFi at a coffee shop or hotel. In essence, they are very simple:&lt;/p>
&lt;ul>
&lt;li>You load a web page that usually requires you to tick a box or enter your email.&lt;/li>
&lt;li>If the system is satisfied with the input above, you are sent to a page that returns HTTP status 200 (and usually a &lt;code>success&lt;/code> message in the body), which tells the system that you&amp;rsquo;re online.&lt;/li>
&lt;/ul>
&lt;p>Now, I&amp;rsquo;m a massive UniFi fan. Over the years, I&amp;rsquo;ve migrated most of my networks over to UniFi equipment with &lt;a href="https://store.ui.com/us/en/collections/unifi-dream-machine/products/udm-pro">Dream Machine Pros&lt;/a> as the firewall. It&amp;rsquo;s a great turn-key solution that largely just works. Prior to this, I usually relied on either a &lt;a href="https://www.pfsense.org/">pfSense&lt;/a> (and later &lt;a href="https://opnsense.org/">OPNsense&lt;/a>), but frankly, the UDM is just a great device that integrates seamlessly with all other UniFi hardware. That means provisioning a whole network is done in a few clicks.&lt;/p></description></item><item><title>coreboot Uncovered: BIOS Security and Vulnerabilities with Matt DeVillier and David Hendricks</title><link>https://vpetersson.com/podcast/s01e07/</link><pubDate>Mon, 25 Mar 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e07/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Matt DeVillier (Mr. Chromebox) and David Hendricks to explore the fascinating world of coreboot. Their combined experience from companies like AMD, Facebook, Google, and Amazon offers unique insights into how this open-source BIOS technology is transforming firmware development.&lt;/p>
&lt;p>We start with Matt&amp;rsquo;s journey from hardware enthusiast to coreboot expert, and David&amp;rsquo;s early work with project founder Ron Minnich. What particularly caught my attention was the contrast between coreboot and U-Boot, especially in how they&amp;rsquo;re used in Chromebooks and servers. Their explanations of Secure Boot, verified boot, and UEFI Secure Boot reveal the critical role BIOS plays in system security.&lt;/p></description></item><item><title>Boostrapping Chronicles - Chapter 2</title><link>https://vpetersson.com/2024/03/24/bootstrapping-chronicles-chapter2/</link><pubDate>Sun, 24 Mar 2024 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2024/03/24/bootstrapping-chronicles-chapter2/</guid><description>&lt;p>In 2011, when Apple launched the Mac App Store, it opened doors for developers. Around the same time, our project, YippieMove, had plateaued because Google released its own email migration tools, taking away a lot of our customers.&lt;/p>
&lt;p>Seeing the Mac App Store as a big opportunity, we decided to jump in and create something unique for its launch.&lt;/p>
&lt;p>That&amp;rsquo;s how we came up with Blotter. It was a simple yet smart idea: a calendar that sits right on your desktop wallpaper, always visible but never in the way. It combined functionality with sleek design, but pulled all data from the native macOS applications (Calendar and Reminders), to avoid having to re-invent the wheel.&lt;/p></description></item><item><title>Boostrapping Chronicles - Chapter 1</title><link>https://vpetersson.com/2024/03/22/bootstrapping-chronicles-chapter1/</link><pubDate>Fri, 22 Mar 2024 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2024/03/22/bootstrapping-chronicles-chapter1/</guid><description>&lt;h2 id="preface-why-bootstrap">Preface: Why Bootstrap?&lt;/h2>
&lt;p>I’ve written a few short articles about my experience bootstrapping businesses. I’ve both bootstrapped and raised money (both sides of the pond). These are my learnings (with context) and hopefully, they are helpful for others.&lt;/p>
&lt;p>The first question one might ask is when should you bootstrap. In my experience, it makes sense for low-to-mid complexity products (or if you have deep pockets). There are no doubt products and services that you cannot bootstrap, such as deep tech with a slow time to market, training AI models that will run you millions of dollars in compute resources, or where you aggressively need to pay for market share to corner a market.&lt;/p></description></item><item><title>The Future of 5G and 4G: A Deep Dive with Guillaume Bélanger</title><link>https://vpetersson.com/podcast/s01e06/</link><pubDate>Mon, 11 Mar 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e06/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Guillaume Bélanger from Canonical to explore the fascinating world of telecom innovation. Guillaume&amp;rsquo;s extensive experience in the sector offers unique insights into how open source is revolutionizing the industry.&lt;/p>
&lt;p>We start by diving into groundbreaking projects like Magma and SD-Core that are reshaping private network management. What particularly caught my attention was Guillaume&amp;rsquo;s explanation of how these initiatives are transforming traditional network infrastructure. His breakdown of e-SIM technology and its potential to revolutionize device connectivity reveals just how much the landscape is changing.&lt;/p></description></item><item><title>A Global Mission to Connect: Unveiling Giga's Journey with Chris Fabian</title><link>https://vpetersson.com/podcast/s01e05/</link><pubDate>Mon, 26 Feb 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e05/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Chris Fabian, co-founder of Giga, to explore the ambitious goal of connecting every school in the world to the internet. Chris&amp;rsquo;s journey from setting up ISPs in East Africa to driving innovation at UNICEF offers unique insights into the challenges of global connectivity.&lt;/p>
&lt;p>We start with Giga&amp;rsquo;s innovative approach to mapping schools using open-source machine learning and satellite imagery. What particularly caught my attention was how this method has revealed significant gaps in government data, with Giga having mapped an impressive 2.1 million schools so far. Chris&amp;rsquo;s explanation of their data collection methods, combining government data with software probes in schools, shows the complexity of tracking real connectivity.&lt;/p></description></item><item><title>Exploring the C2PA Standard with Dom Guinard from Digimarc</title><link>https://vpetersson.com/podcast/s01e04/</link><pubDate>Tue, 13 Feb 2024 00:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e04/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Dom Guinard from Digimarc to explore the fascinating world of digital content standards. Dom&amp;rsquo;s extensive experience in IoT and digital standards offers unique insights into how we can protect and authenticate content in an increasingly AI-driven world.&lt;/p>
&lt;p>We start with a deep dive into the C2PA (Coalition for Content Provenance and Authenticity) standard. What particularly caught my attention was how this technology combines metadata, watermarking, and hardware integration to establish content trustworthiness. Dom&amp;rsquo;s explanation of how these elements work together reveals the complexity of ensuring digital authenticity.&lt;/p></description></item><item><title>Nerding out about Nix and NixOS with Jon Seager</title><link>https://vpetersson.com/podcast/s01e03/</link><pubDate>Mon, 29 Jan 2024 14:00:00 +0100</pubDate><guid>https://vpetersson.com/podcast/s01e03/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Jon Seager, VP of Enterprise Engineering at Canonical, to explore the fascinating world of Nix. Jon&amp;rsquo;s experience with automation tools like JuJu and charms offers unique insights into how Nix is transforming software development and system management.&lt;/p>
&lt;p>We start with the dual nature of Nix as both a functional programming language and a package manager. What particularly caught my attention was Nix&amp;rsquo;s ability to create truly reproducible systems - a feature that sets it apart in the software development landscape. Jon&amp;rsquo;s explanation of how NixOS combines the Nix package manager with its module system reveals the elegant simplicity of immutable system configuration.&lt;/p></description></item><item><title>Nerding out about Prometheus and Observability with Julius Volz</title><link>https://vpetersson.com/podcast/s01e02/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s01e02/</guid><description>&lt;p>In this episode, I&amp;rsquo;m joined by Julius Volz, co-founder of Prometheus and founder of PromLabs, to explore the fascinating world of systems monitoring and observability. Julius&amp;rsquo;s journey from working on Borgmon at Google to co-creating Prometheus offers unique insights into how modern monitoring systems evolved.&lt;/p>
&lt;p>We start with the technical foundations of Prometheus. What particularly caught my attention was Julius&amp;rsquo;s explanation of their dimensional data model and how it revolutionized metrics-based monitoring. His breakdown of common pitfalls, especially around metric design and &amp;ldquo;cardinality bombs,&amp;rdquo; provides invaluable guidance for anyone implementing Prometheus.&lt;/p></description></item><item><title>Launching 'Nerding Out with Viktor' - A New Tech Podcast (and the Innovative Podcast RSS Generator)</title><link>https://vpetersson.com/2024/01/02/new-podcast/</link><pubDate>Tue, 02 Jan 2024 01:00:00 +0100</pubDate><guid>https://vpetersson.com/2024/01/02/new-podcast/</guid><description>&lt;p>Hello folks, Viktor here! I&amp;rsquo;m thrilled to bring two exciting updates to you all today.&lt;/p>
&lt;p>First, let&amp;rsquo;s talk about my new project, &lt;a href="https://vpetersson.com/nerding-out-with-viktor/">&amp;ldquo;Nerding Out with Viktor,&amp;rdquo;&lt;/a> a video podcast where I dive into riveting tech discussions with experts from various fields. The first episode features a deep dive into Cloud Native security with Andrew Martin from ControlPlane. We cover a range of topics, including ethical hacking and cybersecurity strategies. It&amp;rsquo;s a real treat for anyone keen on tech and security. You can catch the podcast on platforms like &lt;a href="https://podcasts.apple.com/us/podcast/nerding-out-with-viktor">Apple Podcasts&lt;/a>, &lt;a href="https://open.spotify.com/show/nerdingoutwithviktor">Spotify&lt;/a>, and &lt;a href="https://www.youtube.com/@nerdingoutwithviktor">YouTube&lt;/a>. Make sure to subscribe and join in on the conversation!&lt;/p></description></item><item><title>Nerding out about Security with Andrew Martin</title><link>https://vpetersson.com/podcast/s01e01/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://vpetersson.com/podcast/s01e01/</guid><description>&lt;p>In this inaugural episode, I&amp;rsquo;m joined by Andy Martin from ControlPlane to explore the fascinating world of Cloud Native security. Andy&amp;rsquo;s extensive experience in regulated industries like finance and government offers unique insights into modern security challenges.&lt;/p>
&lt;p>We start by revisiting our &amp;ldquo;Internet of Shit&amp;rdquo; conference talk, which sets the stage for a deeper discussion about current security concerns. What particularly caught my attention was Andy&amp;rsquo;s perspective on penetration testing and its role in both digital and physical security assessments. His breakdown of social engineering attacks reveals just how sophisticated modern security threats have become.&lt;/p></description></item><item><title>Enough is Enough - Killing the Annoying macOS Word Definition Pop-Up Once and For All</title><link>https://vpetersson.com/2023/12/06/lookup-insanity/</link><pubDate>Wed, 06 Dec 2023 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2023/12/06/lookup-insanity/</guid><description>&lt;p>Ever been deep in your workflow on your Mac, meticulously selecting text in Apple Mail or iTerm, only to be ambushed by some random word definition pop-up? Yeah, me too. And frankly, it&amp;rsquo;s been driving me up the wall. It’s like playing Whac-A-Mole with dictionary entries you never asked for – the same annoyance as right-clicking a word and accidentally hitting &amp;ldquo;Look Up&amp;rdquo;.&lt;/p>
&lt;p>I scoured forums and guides for ages, trying to find a way to kill this feature. It felt like a quest without a map, because, let&amp;rsquo;s face it, who knows where to look for such obscure settings?&lt;/p></description></item><item><title>Securing and exposing local services with Tailscale and Nginx</title><link>https://vpetersson.com/2022/12/23/securing-services-with-tailscale/</link><pubDate>Fri, 23 Dec 2022 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2022/12/23/securing-services-with-tailscale/</guid><description>&lt;p>Securing and encrypting communication on local network devices is a hard problem. Plenty of people tried, including myself in our now sunsetted company &lt;a href="https://wott.io/">WoTT&lt;/a>. The root of the problem is a combination of DNS and routing to local IPs, which means you can&amp;rsquo;t use automated certificate issuers, like Let&amp;rsquo;s Encrypt. The solution, it seems, comes from an unexpected source: the VPN/Wireguard service provider Tailscale.&lt;/p>
&lt;p>I&amp;rsquo;ve been a fan of &lt;a href="https://www.zerotier.com/">ZeroTier&lt;/a> for some time and use it both personally and professionally to access nodes behind firewalls. Recently, I kept hearing from more and more people how much they love &lt;a href="https://tailscale.com">Tailscale&lt;/a>. After hearing &lt;a href="https://hachyderm.io/@jnsgruk">@jnsgruk&lt;/a>’s glowing reviews of Tailscale at Ubuntu Developer Summit, I decided to give it a try.&lt;/p></description></item><item><title>Wordpress, 'The response is not a valid JSON response' and Cloudflare</title><link>https://vpetersson.com/2022/09/29/response-is-not-a-valid-json/</link><pubDate>Thu, 29 Sep 2022 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2022/09/29/response-is-not-a-valid-json/</guid><description>&lt;p>In the last 24 hours, I&amp;rsquo;ve spent an embarrassing amount of time trying to debug a simple WordPress installation. When saving any changes, I received &lt;code>The response is not a valid JSON response&lt;/code>. In addition, I also received weird symptoms I received was:&lt;/p>
&lt;ul>
&lt;li>Getting 404s on requests to &lt;code>/wp-json&lt;/code>
&lt;ul>
&lt;li>Presumably the root cause for &lt;code>The response is not a valid JSON response&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Strange redirect loops with the header &lt;code>x-redirect-by: WordPress&lt;/code>
&lt;ul>
&lt;li>Clearly a redirect originating from with in WordPress rather than Apache or Cloudflare&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>After spending a long time researching this, I discovered about a hundred useless answers to why people received this. In retrospect, one of the common replies was that it was related to SSL. However, in my case SSL worked just fine, so that didn&amp;rsquo;t make a lot of sense. Except that it was right on the money, in a convoluted way.&lt;/p></description></item><item><title>How to grant SSH access to a 'regular' user on OPNsense</title><link>https://vpetersson.com/2021/11/17/opnsense-and-remote-ssh/</link><pubDate>Wed, 17 Nov 2021 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2021/11/17/opnsense-and-remote-ssh/</guid><description>&lt;p>I was working on trying to grant a &amp;lsquo;regular&amp;rsquo; user SSH access in &lt;a href="https://opnsense.org/">OPNsense&lt;/a> last night. After banging my head against the wall for some time (partially because the &lt;a href="https://docs.opnsense.org/manual/how-tos/user-local.html">official documentation&lt;/a> is outdated), I was able to figure it out.&lt;/p>
&lt;p>(Do however note that this is &lt;em>different&lt;/em> than how you grant a user SSH access in &lt;a href="https://www.pfsense.org/">pfSense&lt;/a>, where the steps do align with the outdated documentation.)&lt;/p>
&lt;p>Here&amp;rsquo;s how you do it:&lt;/p>
&lt;ul>
&lt;li>Go to System -&amp;gt; Access -&amp;gt; Groups
&lt;ul>
&lt;li>Create a new group called &amp;lsquo;remote_access&amp;rsquo;&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Go to System -&amp;gt; Access -&amp;gt; Users
&lt;ul>
&lt;li>Create a new user with a valid shell (i.e. not &lt;code>nologin&lt;/code>), and make sure to add a valid SSH key and to add the user to the group &amp;lsquo;remote_access&amp;rsquo;&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Go to System -&amp;gt; Administration and navigate to the &amp;lsquo;Secure Shell&amp;rsquo; Section.
&lt;ul>
&lt;li>Under &amp;lsquo;Login Group&amp;rsquo;, select &amp;lsquo;wheel,remote_access&amp;rsquo;&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>This of course assumes that you have SSH already enabled and remotely accessible. However, assuming this is true, you should now be able to login using the newly created user.&lt;/p></description></item><item><title>Solving 'dpkg-divert error unable to change ownership of target file' on Raspberry Pi</title><link>https://vpetersson.com/2021/05/07/raspberry-pi-fix/</link><pubDate>Fri, 07 May 2021 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2021/05/07/raspberry-pi-fix/</guid><description>&lt;p>I&amp;rsquo;ve run into the following error myself a number of time in recent time, and just wanted to document the solution for this in case other people run into it too:&lt;/p>
&lt;p>Here&amp;rsquo;s the problem:&lt;/p>
&lt;ul>
&lt;li>You are trying to upgrade your Raspberry Pi to the latest version&lt;/li>
&lt;li>When you upgrade the kernel, it chokes with an error like this:&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="o">$&lt;/span> &lt;span class="n">sudo&lt;/span> &lt;span class="n">apt&lt;/span> &lt;span class="n">upgrade&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Reading&lt;/span> &lt;span class="n">package&lt;/span> &lt;span class="n">lists&lt;/span>&lt;span class="o">...&lt;/span> &lt;span class="n">Done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Building&lt;/span> &lt;span class="n">dependency&lt;/span> &lt;span class="n">tree&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Reading&lt;/span> &lt;span class="n">state&lt;/span> &lt;span class="n">information&lt;/span>&lt;span class="o">...&lt;/span> &lt;span class="n">Done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Calculating&lt;/span> &lt;span class="n">upgrade&lt;/span>&lt;span class="o">...&lt;/span> &lt;span class="n">Done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mi">0&lt;/span> &lt;span class="n">upgraded&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">newly&lt;/span> &lt;span class="n">installed&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">remove&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">upgraded&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mi">5&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">fully&lt;/span> &lt;span class="n">installed&lt;/span> &lt;span class="ow">or&lt;/span> &lt;span class="n">removed&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">After&lt;/span> &lt;span class="n">this&lt;/span> &lt;span class="n">operation&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">B&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">additional&lt;/span> &lt;span class="n">disk&lt;/span> &lt;span class="n">space&lt;/span> &lt;span class="n">will&lt;/span> &lt;span class="n">be&lt;/span> &lt;span class="n">used&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Do&lt;/span> &lt;span class="n">you&lt;/span> &lt;span class="n">want&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="k">continue&lt;/span>&lt;span class="err">?&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">Y&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Setting&lt;/span> &lt;span class="n">up&lt;/span> &lt;span class="n">raspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">kernel&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mf">1.20210430&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Removing&lt;/span> &lt;span class="s1">&amp;#39;diversion of /boot/kernel.img to /usr/share/rpikernelhack/kernel.img by rpikernelhack&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dpkg&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">divert&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">error&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">unable&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">change&lt;/span> &lt;span class="n">ownership&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">target&lt;/span> &lt;span class="n">file&lt;/span> &lt;span class="s1">&amp;#39;/boot/kernel.img.dpkg-divert.tmp&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Operation&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">permitted&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dpkg&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="n">processing&lt;/span> &lt;span class="n">package&lt;/span> &lt;span class="n">raspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">kernel&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="n">configure&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">installed&lt;/span> &lt;span class="n">raspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">kernel&lt;/span> &lt;span class="n">package&lt;/span> &lt;span class="n">post&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">installation&lt;/span> &lt;span class="n">script&lt;/span> &lt;span class="n">subprocess&lt;/span> &lt;span class="n">returned&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="n">exit&lt;/span> &lt;span class="n">status&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Setting&lt;/span> &lt;span class="n">up&lt;/span> &lt;span class="n">raspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">bootloader&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mf">1.20210430&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Removing&lt;/span> &lt;span class="s1">&amp;#39;diversion of /boot/start.elf to /usr/share/rpikernelhack/start.elf by rpikernelhack&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dpkg&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">divert&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">error&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">unable&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">change&lt;/span> &lt;span class="n">ownership&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">target&lt;/span> &lt;span class="n">file&lt;/span> &lt;span class="s1">&amp;#39;/boot/start.elf.dpkg-divert.tmp&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Operation&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">permitted&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dpkg&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="n">processing&lt;/span> &lt;span class="n">package&lt;/span> &lt;span class="n">raspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">bootloader&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="n">configure&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">installed&lt;/span> &lt;span class="n">raspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">bootloader&lt;/span> &lt;span class="n">package&lt;/span> &lt;span class="n">post&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">installation&lt;/span> &lt;span class="n">script&lt;/span> &lt;span class="n">subprocess&lt;/span> &lt;span class="n">returned&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="n">exit&lt;/span> &lt;span class="n">status&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dpkg&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">dependency&lt;/span> &lt;span class="n">problems&lt;/span> &lt;span class="n">prevent&lt;/span> &lt;span class="n">configuration&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">libraspberrypi0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">libraspberrypi0&lt;/span> &lt;span class="n">depends&lt;/span> &lt;span class="n">on&lt;/span> &lt;span class="n">raspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">bootloader&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">=&lt;/span> &lt;span class="mf">1.20210430&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">);&lt;/span> &lt;span class="n">however&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Package&lt;/span> &lt;span class="n">raspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">bootloader&lt;/span> &lt;span class="n">is&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">configured&lt;/span> &lt;span class="n">yet&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dpkg&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="n">processing&lt;/span> &lt;span class="n">package&lt;/span> &lt;span class="n">libraspberrypi0&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="n">configure&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">dependency&lt;/span> &lt;span class="n">problems&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">leaving&lt;/span> &lt;span class="n">unconfigured&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dpkg&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">dependency&lt;/span> &lt;span class="n">problems&lt;/span> &lt;span class="n">prevent&lt;/span> &lt;span class="n">configuration&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">libraspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">libraspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">bin&lt;/span> &lt;span class="n">depends&lt;/span> &lt;span class="n">on&lt;/span> &lt;span class="n">libraspberrypi0&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">=&lt;/span> &lt;span class="mf">1.20210430&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">);&lt;/span> &lt;span class="n">however&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Package&lt;/span> &lt;span class="n">libraspberrypi0&lt;/span> &lt;span class="n">is&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">configured&lt;/span> &lt;span class="n">yet&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dpkg&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="n">processing&lt;/span> &lt;span class="n">package&lt;/span> &lt;span class="n">libraspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">bin&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="n">configure&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">dependency&lt;/span> &lt;span class="n">problems&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">leaving&lt;/span> &lt;span class="n">unconfigured&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dpkg&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">dependency&lt;/span> &lt;span class="n">problems&lt;/span> &lt;span class="n">prevent&lt;/span> &lt;span class="n">configuration&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">libraspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">dev&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">libraspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">dev&lt;/span> &lt;span class="n">depends&lt;/span> &lt;span class="n">on&lt;/span> &lt;span class="n">libraspberrypi0&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">=&lt;/span> &lt;span class="mf">1.20210430&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">);&lt;/span> &lt;span class="n">however&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Package&lt;/span> &lt;span class="n">libraspberrypi0&lt;/span> &lt;span class="n">is&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">configured&lt;/span> &lt;span class="n">yet&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dpkg&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="n">processing&lt;/span> &lt;span class="n">package&lt;/span> &lt;span class="n">libraspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">dev&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="n">configure&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">dependency&lt;/span> &lt;span class="n">problems&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">leaving&lt;/span> &lt;span class="n">unconfigured&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Errors&lt;/span> &lt;span class="n">were&lt;/span> &lt;span class="n">encountered&lt;/span> &lt;span class="k">while&lt;/span> &lt;span class="n">processing&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">raspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">kernel&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">raspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">bootloader&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">libraspberrypi0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">libraspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">bin&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">libraspberrypi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">dev&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">E&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Sub&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">process&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">dpkg&lt;/span> &lt;span class="n">returned&lt;/span> &lt;span class="n">an&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="n">code&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>After wasting far too much time trying to debug this, I found that there was an easy solution: simply remount &lt;code>/boot&lt;/code>.&lt;/p></description></item><item><title>Solving NUC USB boot issue with PXE boot</title><link>https://vpetersson.com/2020/11/27/pxe-booting-nuc/</link><pubDate>Fri, 27 Nov 2020 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2020/11/27/pxe-booting-nuc/</guid><description>&lt;p>I recently wanted to reinstall my trusty old Linux workstation with Debian 10. I imagined this would be a straight-forward thing to do. Just download the ISO and flash it out to a USB stick and be off to the races.&lt;/p>
&lt;p>Well. It wasn&amp;rsquo;t.&lt;/p>
&lt;p>As it turns out, some &lt;a href="https://community.intel.com/t5/Intel-NUCs/NUC-not-booting-from-USB/td-p/502254">NUCs do not like modern USB sticks&lt;/a>. After trying two or three different USB sticks I had laying around, none of them were picked up by the system (neither as booting devices or for flashing the BIOS). Since I bought a few &amp;ldquo;good&amp;rdquo; USB sticks last year, I gave away or threw away the &amp;ldquo;crap&amp;rdquo; ones&amp;hellip;the ones that the NUC would have accepted.&lt;/p></description></item><item><title>Databat is back!</title><link>https://vpetersson.com/2020/06/04/databat-is-back/</link><pubDate>Thu, 04 Jun 2020 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2020/06/04/databat-is-back/</guid><description>&lt;p>&lt;img
src="https://vpetersson.com/bat.svg"
alt=""
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>&lt;a href="https://vpetersson.com/2018/03/19/sonar-databat-people-counter/">A few years ago&lt;/a>, I created a people tracker called &lt;a href="https://github.com/databat-io/sonar">Sonar&lt;/a> and open sourced it. The goal of the project was to monitor foot traffic in retail environments. After deploying it and more or less forgetting about it for almost two years, I was reminded about it last month and decided to resurrect it. The good news is that the device that I deployed in a retail environment as a test was still ticking along just fine.&lt;/p></description></item><item><title>Achieving success with Home Assistant, Flux and sensors</title><link>https://vpetersson.com/2020/05/25/homeassistant-ikea-tradfri-flux-sensors/</link><pubDate>Mon, 25 May 2020 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2020/05/25/homeassistant-ikea-tradfri-flux-sensors/</guid><description>&lt;p>My philosophy for home automation from the start has been that &lt;strong>the best UI is no UI&lt;/strong>, meaning that I just want things to work automagically. I don’t want to fiddle buttons or software on a day-to-day basis. Sensors and automations should do most of the work.&lt;/p>
&lt;p>In addition to automation, I wanted &lt;a href="https://justgetflux.com/">f.lux&lt;/a>/Flux/Night Shift for my lights, meaning that the lights should follow my &lt;a href="https://nigms.nih.gov/education/fact-sheets/Pages/Circadian-Rhythms.aspx">circadian rhythm&lt;/a> and change color over the course of the day to mimic the sun.&lt;/p></description></item><item><title>Restoring access to PosgreSQL after Helm upgrade</title><link>https://vpetersson.com/2020/05/22/restoring-helm-postgress-access/</link><pubDate>Fri, 22 May 2020 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2020/05/22/restoring-helm-postgress-access/</guid><description>&lt;p>If you&amp;rsquo;ve used PostgreSQL in Kubernetes with Helm, chance are you&amp;rsquo;ve &lt;a href="https://github.com/helm/charts/tree/master/stable/sentry#postgressql">locked yourself out&lt;/a> after performing an upgrade. The reason for this is that if you do not specify a password explicitly using &lt;code>postgresqlPassword&lt;/code>, Helm will rotate this password for you when you run &lt;code>helm upgrade&lt;/code>. Not ideal. This has happened to me a few times over the years.&lt;/p>
&lt;p>To restore access, you need to to jump in to your PostgreSQL container (&lt;code>kubectl exec -ti your-postgres-container -n your-namespace bash&lt;/code>) and temporarily alter the authentication. This of course is not ideal, so we want to move as swiftly as possible.&lt;/p></description></item><item><title>VMWare Fusion error - cannot open /dev/vmmon</title><link>https://vpetersson.com/2019/12/08/cannot-open-dev-vmmon/</link><pubDate>Sun, 08 Dec 2019 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2019/12/08/cannot-open-dev-vmmon/</guid><description>&lt;p>This weekend I needed to use Fusion for the first time since I upgraded to macOS Mojave. Having run Fusion 8 for many years and being happy with it, I was somewhat annoyed with needing to upgrade to Fusion 11. At least that appeared to be the consensus on the interwebs. In retrospect, I&amp;rsquo;m not 100% sure. That said, I&amp;rsquo;ve received great value from Fusion, and I don&amp;rsquo;t mind paying money for good software.&lt;/p></description></item><item><title>Interview with John Agosta from Canonical/Ubuntu on working remotely</title><link>https://vpetersson.com/remote-work/2019/11/26/interview-with-john-agosta/</link><pubDate>Tue, 26 Nov 2019 08:00:00 +0100</pubDate><guid>https://vpetersson.com/remote-work/2019/11/26/interview-with-john-agosta/</guid><description>&lt;p>In this interview on &lt;a href="https://vpetersson.com/remote-work/">remote work&lt;/a>, I&amp;rsquo;m speaking to John Agosta from Canonical (the company behind Ubuntu). As a long-time Canonical team member, John and my paths have crossed multiple times over the years, starting when I was at a cloud company, and he was at the server division at Canonical, to more recently when he moved to the Ubuntu Core (formerly known as Snappy) side, as I was building out &lt;a href="https://www.screenly.io">Screenly&lt;/a> where John now is the Program Manager.&lt;/p></description></item><item><title>Building a Pwnagotchi for WiFi penetration testing (with a PaPiRus Zero display)</title><link>https://vpetersson.com/2019/11/21/building-a-pwnagotchi-with-papirus/</link><pubDate>Thu, 21 Nov 2019 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2019/11/21/building-a-pwnagotchi-with-papirus/</guid><description>&lt;p>&lt;img
src="https://media.giphy.com/media/MM0Jrc8BHKx3y/source.gif"
alt=""
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>Security has been an interest for me for a long time. This is why &lt;a href="https://pwnagotchi.ai/">Pwnagotchi&lt;/a> piqued my interest. Using cheap hardware, you can create your own lightweight WiFi (and Bluetooth) sniffing device. Thanks to a known vulnerability in the WPA/WPA2 protocol, the Pwnagotchi can &lt;a href="https://pwnagotchi.ai/intro/#wifi-handshakes-101">capture the handshake&lt;/a>, which we can then use to crack the passphrase (more on that later).&lt;/p>
&lt;p>My personal interest in this was largely to test my own OpSec to ensure my own WiFi wasn&amp;rsquo;t vulnerable to simple attacks like this. Fortunately, it wasn&amp;rsquo;t.&lt;/p></description></item><item><title>Home Assistant, ESPHome and JZK ESP-32S</title><link>https://vpetersson.com/2019/11/16/home-assistant-and-esphome/</link><pubDate>Sat, 16 Nov 2019 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2019/11/16/home-assistant-and-esphome/</guid><description>&lt;p>Long story short, I&amp;rsquo;ve pimped out my apartment with a lot of Ikea Smart products, such that I can control (and automate) everything from &lt;a href="https://www.home-assistant.io/">Home Assistant&lt;/a>. While I admittedly have a love-hate relationship with Home Assistant, it is generally speaking a pretty impressive software.&lt;/p>
&lt;p>One thing I&amp;rsquo;ve been meaning to do for some time is to log the temperature in various rooms. Since I didn&amp;rsquo;t want to put a Raspberry Pi in every room, I opted for an ESP32 with a DH22 sensor. While I initially planned to write a simple web server or MQTT client to export the data, I was lucky to run across &lt;a href="https://esphome.io/">ESPHome&lt;/a>, which does all of this out of the box. Moreover, it also integrates seamlessly with Home Assistant.&lt;/p></description></item><item><title>Install Ubuntu Core 18/22 on Proxmox</title><link>https://vpetersson.com/2019/10/03/ubuntu-core-on-proxmox/</link><pubDate>Thu, 03 Oct 2019 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2019/10/03/ubuntu-core-on-proxmox/</guid><description>&lt;p>Today I was trying to get Ubuntu Core 18/22 working on Proxmox. Given that it is a KVM based tool, it&amp;rsquo;s fairly straight-forward, but took me a bit of time go get working (thus this write-up).&lt;/p>
&lt;p>There are good &lt;a href="https://ubuntu.com/download/iot/kvm">installation instruction&lt;/a> for how to install Ubuntu Core on KVM, but I needed to do a little bit of work got it running on Proxmox.&lt;/p>
&lt;p>Before we begin, go ahead and create a VM in Proxmox&amp;rsquo;s interface. Make sure to do the following selections:&lt;/p></description></item><item><title>Interview with Rimas Mocevicius from JFrog on working remotely</title><link>https://vpetersson.com/remote-work/2019/09/20/interview-with-rimas-mocevicius/</link><pubDate>Fri, 20 Sep 2019 08:00:00 +0100</pubDate><guid>https://vpetersson.com/remote-work/2019/09/20/interview-with-rimas-mocevicius/</guid><description>&lt;p>First out in this interview series, we have &lt;a href="https://twitter.com/rimusz">Rimas Mocevicius&lt;/a>. Rimas is someone that I got to know from the London Kubernetes scene some time ago. He worked on Deis (before it got acquired by Microsoft) and is the co-creator of the popular Kubernetes packaging tool &lt;a href="https://helm.sh/">Helm&lt;/a>. These days, Rimas works at JFrog and on their various Kubernetes tooling.&lt;/p>
&lt;p>In this series, I am intending to interview people who work remotely about their habits and what they have learned over the years both about themselves and about what works and what doesn’t work in remote teams. I aspire to both interview individual contributors, as well as team leaders.&lt;/p></description></item><item><title>What are the best productivity hacks?</title><link>https://vpetersson.com/remote-work/2019/07/17/best-productivity-hack/</link><pubDate>Wed, 17 Jul 2019 08:00:00 +0100</pubDate><guid>https://vpetersson.com/remote-work/2019/07/17/best-productivity-hack/</guid><description>&lt;p>People love talking about productivity hacks (a.k.a. productivity porn). The &amp;ldquo;hacks&amp;rdquo; usually range from the latest tools (todo-lists, email clients) to workflow improvements.&lt;/p>
&lt;p>As someone who have paid attention to this for the last decade, and spent far too much time experimenting with these &amp;ldquo;hacks.&amp;rdquo; Today, I can say one thing with confidence: Unless you get the basics right, these hacks won&amp;rsquo;t matter. They might marginally improve your productivity, but they won&amp;rsquo;t get you the productivity boost you&amp;rsquo;re looking for.&lt;/p></description></item><item><title>So you want to build a remote company?</title><link>https://vpetersson.com/remote-work/2019/07/14/so-you-want-to-build-a-remote-company/</link><pubDate>Sun, 14 Jul 2019 14:00:00 +0100</pubDate><guid>https://vpetersson.com/remote-work/2019/07/14/so-you-want-to-build-a-remote-company/</guid><description>&lt;p>Little did I know when I wrote &lt;a href="https://vpetersson.com/2019/05/18/a-decade-of-remote/">A Decade of Remote Work&lt;/a> that it would completely blow up. After being featured on Hacker News, the article to this day keeps driving a significant amount of traffic from all kind of sources (including Twitter).&lt;/p>
&lt;p>Since the article, I’ve started a &lt;a href="https://vpetersson.com/remote-work/">series of articles&lt;/a> on remote work. In this article, I will explore the topic of creating a remote company. I briefly touched on this topic in the initial article, but in this article, I will explore this in greater detail and include things like how to setup a company, to how to hire and what tools I personally I find necessary to get off the ground (including the reasons for these tools).&lt;/p></description></item><item><title>Remote Work is Deep Work</title><link>https://vpetersson.com/remote-work/2019/06/24/remote-work-is-deep-work/</link><pubDate>Mon, 24 Jun 2019 14:00:00 +0100</pubDate><guid>https://vpetersson.com/remote-work/2019/06/24/remote-work-is-deep-work/</guid><description>&lt;p>Over the last few years, two things that I’ve paid close attention to are Deep Work and Remote Work. In this article we will explore this and discover how closely these to concepts overlap.&lt;/p>
&lt;p>Back in 2009, Paul Graham, wrote an essay titled &lt;a href="http://www.paulgraham.com/makersschedule.html">Maker’s schedule, Manager’s schedule&lt;/a>. In the essay, PG outlines the vast difference between how a manager’s schedule look like compared to how a developer (or maker) schedule looks like. PG writes that a single meeting can sometimes affect his productivity for the entire day. I too can relate to this, and have many times felt the same way. I find that if I have a meeting in the afternoon, I’m far less likely to sit down in the morning to do some focused work, compared to if I have a clear calendar.&lt;/p></description></item><item><title>Mental Health and Remote Work</title><link>https://vpetersson.com/remote-work/2019/06/19/remote-and-mental-health/</link><pubDate>Wed, 19 Jun 2019 14:00:00 +0100</pubDate><guid>https://vpetersson.com/remote-work/2019/06/19/remote-and-mental-health/</guid><description>&lt;p>In recent years, we’ve started to see more people speaking out about mental health in the tech industry. This is great, as it is a topic that has been somewhat taboo in the past.&lt;/p>
&lt;p>In my last blog post, &lt;a href="https://vpetersson.com/2019/05/18/a-decade-of-remote/">A decade of remote work&lt;/a>, I did not explicitly speak about mental health, and I must admit that it is something that I’ve only recently started to pay proper attention to. I would however argue that mental health does overlap with habits (which I did cover). I don’t think it is possible to have good mental health without good habits.&lt;/p></description></item><item><title>A Decade of Remote Work</title><link>https://vpetersson.com/remote-work/2019/05/18/a-decade-of-remote/</link><pubDate>Sat, 18 May 2019 14:00:00 +0100</pubDate><guid>https://vpetersson.com/remote-work/2019/05/18/a-decade-of-remote/</guid><description>&lt;h2 id="intro">Intro&lt;/h2>
&lt;p>While still in college (go &lt;a href="https://www.santaclarabroncos.com">Broncos&lt;/a>!), I teamed up with Alex (&lt;a href="https://mobile.twitter.com/slevenbits">@slevenbits&lt;/a>) to create a startup. We were young, inexperienced and naive. Our first project was called YippieMail and it was an email aggregator. Simply put, YippieMail could display all your webmail accounts (i.e. Hotmail, Yahoo and Gmail etc) in the same web interface (this was before most email providers supported IMAP, so you couldn&amp;rsquo;t use an email client). Looking back at it, YippieMail was a pretty stupid idea, but it did land us meetings with Sequoia Capital and few other VCs on Sand Hill Road. Keep in mind that this was around the time &lt;a href="https://en.m.wikipedia.org/wiki/Meebo">Meebo&lt;/a> raised many millions from Sequia and DFJ to do the same thing but for Instant Messaging (IM), so at the time it probably did not seem as such of a bad idea.&lt;/p></description></item><item><title>Troubleshoot HTTPS with curl</title><link>https://vpetersson.com/2018/10/03/troubleshoot-https/</link><pubDate>Wed, 03 Oct 2018 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2018/10/03/troubleshoot-https/</guid><description>&lt;p>Troubleshooting an HTTPS connection can be somewhat challenging at times (in particular if Cloudflare is involved).&lt;/p>
&lt;p>Today, I had to troubleshoot a Kubernetes (Nginx) Ingress controller that was acting up for &lt;a href="https://www.screenly.io">Screenly&lt;/a>. Having done this on more than one occasion, I decided to create a public Note-to-Self in order to avoid having to Google for the exact syntax in the future.&lt;/p>
&lt;p>For this task, my weapon of choice is &lt;code>curl&lt;/code>.&lt;/p>
&lt;p>The key we want to accomplish is to be able to explicitly specify the IP address to the load balancer in order to rule out any possible DNS issue.&lt;/p></description></item><item><title>Kubernetes and RBAC with examples</title><link>https://vpetersson.com/2018/06/15/kubernetes-rbac/</link><pubDate>Fri, 15 Jun 2018 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2018/06/15/kubernetes-rbac/</guid><description>&lt;p>In Kubernetes 1.8, RBAC was introduced to improve the security. Prior RBAC, any pod is more or less able to interact with the rest of the cluster without constraints. This means you can create new pods, delete other deployments etc from any other pod. Needless to say, this is not ideal and RBAC sets out to address this.&lt;/p>
&lt;p>While RBAC is a rather complicated topic, this brief article sets out to give a very simplistic crash course to get you started (while intentionally leaving big parts out).&lt;/p></description></item><item><title>Sonar - A Raspberry Pi based wireless people counter</title><link>https://vpetersson.com/2018/03/19/sonar-databat-people-counter/</link><pubDate>Mon, 19 Mar 2018 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2018/03/19/sonar-databat-people-counter/</guid><description>&lt;p>Over the last year, I&amp;rsquo;ve been hacking on-and-off on a little project called &lt;a href="https://github.com/databat-io/sonar">Sonar&lt;/a>.&lt;/p>
&lt;p>The project goal is to get real-world analytics for public spaces (such as retail) using wireless means at low cost. This means using Bluetooth and WiFi (the latter is to be added) and a Raspberry Pi. This weekend I finally did a brief &lt;a href="https://www.hackster.io/vpetersson/sonar-wireless-foot-traffic-information-for-retail-b17cc1">write-up on Hackster&lt;/a> where I outlined the project.&lt;/p>
&lt;p>Sonar is still in its early days, but you can already use it to collect BLE data from the surrounding, which can provide you with a rough estimate of the amount of people in the surrounding area. The idea is that with sufficient data collected (and with more sensors, such as WiFi), Sonar should be able to learn and provide better analytics. Moreover, with multiple Sonar devices deployed in the same venue, you could triangulate the visitors and provide things like heat maps.&lt;/p></description></item><item><title>Network Performance - Raspberry Pi 3 Model B vs Raspberry Pi 3 Model B+</title><link>https://vpetersson.com/2018/03/15/rapsberry-pi-model-b-vs-raspberry-pi-model-b+/</link><pubDate>Thu, 15 Mar 2018 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2018/03/15/rapsberry-pi-model-b-vs-raspberry-pi-model-b+/</guid><description>&lt;p>Today I got my hands on the new Raspberry Pi 3 Model B+. One of the most notable new features is Gigabit Ethernet. Given that the Raspberry Pi still uses the USB 2 interface for the Ethernet controller, I was curious to see what kind of bandwidth it could handle (I know the MagPi &lt;a href="https://www.raspberrypi.org/magpi/raspberry-pi-3-specs-benchmarks/">already published this&lt;/a>, but I wanted some independent numbers). To do that, I setup a simple experiment:&lt;/p></description></item><item><title>Running KVM with Open vSwitch on Ubuntu 16.04</title><link>https://vpetersson.com/2018/01/28/openvswitch-and-kvm/</link><pubDate>Sun, 28 Jan 2018 13:00:00 +0100</pubDate><guid>https://vpetersson.com/2018/01/28/openvswitch-and-kvm/</guid><description>&lt;p>If you&amp;rsquo;re reading the &lt;a href="https://help.ubuntu.com/community/KVM/Networking">KVM/Networking documentation&lt;/a> for Ubuntu, you&amp;rsquo;ll see that the recommended way to expose VMs to the world (public or private interface) is to use a Bridge. This was what I have been doing over the years. What you do realize however is that it becomes less than ideal when the network configuration is becoming complex. For instance, imagine that you&amp;rsquo;re using two bonded interfaces (LACP) that you then expose to a bridge, which you in turn want to configure a set of VLANs on top of. That gets very messy using this method (and not to even mention the performance is poor in general).&lt;/p></description></item><item><title>How to use jails on pfSense 2.4</title><link>https://vpetersson.com/2018/01/27/jails-on-pfsense/</link><pubDate>Sat, 27 Jan 2018 14:00:00 +0100</pubDate><guid>https://vpetersson.com/2018/01/27/jails-on-pfsense/</guid><description>&lt;p>&lt;strong>Disclosure:&lt;/strong> &lt;em>I have no idea how this impact the security of pfSense. There is probably a good reason why the jail service is disabled by default. Hence, beware that this might cause unexpected security issues as it is not a supported package.&lt;/em>&lt;/p>
&lt;p>Many, many years ago, I used to be an avid user FreeBSD jails. They were a great way to isolate services and boost security in the pre-Docker world. While I can&amp;rsquo;t say I use FreeBSD much these days, I still run &lt;a href="https://www.pfsense.org/">pfSense&lt;/a> on more or less all my firewalls. It&amp;rsquo;s easy to use, secure, and perhaps most importantly, very stable.&lt;/p></description></item><item><title>Using Kerberos.io with Docker and multiple cameras – Viktor Petersson – Medium</title><link>https://vpetersson.com/2017/06/04/using-kerberosio-with-docker-and-multiple-cameras/</link><pubDate>Sun, 04 Jun 2017 19:52:19 +0300</pubDate><guid>https://vpetersson.com/2017/06/04/using-kerberosio-with-docker-and-multiple-cameras/</guid><description>&lt;p>&lt;a href="https://medium.com/@vpetersson/using-kerberos-io-with-docker-and-multiple-cameras-9eee66dcae31">Using Kerberos.io with Docker and multiple cameras – Viktor Petersson – Medium&lt;/a>&lt;/p></description></item><item><title>Building a low powered NAS/backup target with a Raspberry Pi</title><link>https://vpetersson.com/2016/11/19/building-a-low-powered-nasbackup-target-with-a/</link><pubDate>Sat, 19 Nov 2016 19:57:24 +0200</pubDate><guid>https://vpetersson.com/2016/11/19/building-a-low-powered-nasbackup-target-with-a/</guid><description>&lt;p>&lt;a href="https://medium.com/@vpetersson/building-a-low-powered-nas-backup-target-with-a-raspberry-pi-98bb07802abb#.bffj5bnyu">Building a low powered NAS/backup target with a Raspberry Pi&lt;/a>&lt;/p></description></item><item><title>How to fix kernel_task CPU usage on macOS Sierra</title><link>https://vpetersson.com/2016/10/01/how-to-fix-kerneltask-cpu-usage-on-macos-sierra/</link><pubDate>Sat, 01 Oct 2016 17:02:52 +0300</pubDate><guid>https://vpetersson.com/2016/10/01/how-to-fix-kerneltask-cpu-usage-on-macos-sierra/</guid><description>&lt;p>In my post &lt;a href="https://vpetersson.com/2014/10/16/how-to-fix-kerneltask-cpu-usage-on-yosemite/">How to fix kernel_task CPU usage on Yosemite&lt;/a>, I first wrote about how a broken logic board can trigger high CPU usage from &lt;code>kernel_task&lt;/code> as well as how to fix it. When El Capitan later were release, the issue &lt;a href="https://vpetersson.com/2016/01/03/how-to-fix-kerneltask-cpu-usage-on-el-capitan/">remained&lt;/a>.&lt;/p>
&lt;p>Now, with macOS Sierra out, I upgraded my old MacBook Pro (8,2) as well. As expected, the issue remained the same.&lt;/p>
&lt;p>Luckily, the same fix that I wrote about &lt;a href="https://vpetersson.com/2016/01/03/how-to-fix-kerneltask-cpu-usage-on-el-capitan/">El Capitan&lt;/a> still worked.&lt;/p></description></item><item><title>HP LaserJet 500 colorMFP M570dn, Windows Server 2012 r2 and Offline mode</title><link>https://vpetersson.com/2016/08/16/hp-laserjet-500-colormfp-m570dn-windows-server/</link><pubDate>Tue, 16 Aug 2016 10:50:36 +0300</pubDate><guid>https://vpetersson.com/2016/08/16/hp-laserjet-500-colormfp-m570dn-windows-server/</guid><description>&lt;p>(I try hard to stay away from Windows environments, but sometimes it’s unavoidable.)&lt;/p>
&lt;p>Recently I ran across a strange issue with a HP LaserJet 500 colorMFP M570dn. The printer worked great for years, then all of the sudden, it started to act up. Applying the latest firmware didn’t solve the issue, so it started probing.&lt;/p>
&lt;p>The issue was that the printer randomly went into &lt;em>Offline mode&lt;/em>, blocked all users from printing.&lt;/p></description></item><item><title>Provisioner</title><link>https://vpetersson.com/2016/08/02/provisioner/</link><pubDate>Tue, 02 Aug 2016 11:10:45 +0300</pubDate><guid>https://vpetersson.com/2016/08/02/provisioner/</guid><description>&lt;p>&lt;a href="https://provisioner.vpetersson.com/">Provisioner&lt;/a>&lt;/p>
&lt;p>I’ve been working on Provisioner for a while now and it’s starting to come together. Most recently I rolled out complete API documentation as well as a brand spanking new website (powered by Jekyll and Github Pages).&lt;/p>
&lt;p>I’m still trying to think of more use cases, so that’s part of what I will be working on next, as well as better documentation at large. I’ve also started to work on a Python library for easier integration work.&lt;/p></description></item><item><title>Viktor Petersson, Screenly</title><link>https://vpetersson.com/2016/08/02/viktor-petersson-screenly/</link><pubDate>Tue, 02 Aug 2016 10:00:56 +0300</pubDate><guid>https://vpetersson.com/2016/08/02/viktor-petersson-screenly/</guid><description>&lt;p>&lt;a href="http://sixteennine.podbean.com/e/viktor-petersson-screenly/">Viktor Petersson, Screenly&lt;/a>&lt;/p>
&lt;p>I was recently interviewed by Dave Haynes of Sixteen:Nine about Screenly.&lt;/p></description></item><item><title>How to migrate from qcow2/raw to iSCSI with KVM/QEMU</title><link>https://vpetersson.com/2016/07/29/how-to-migrate-from-qcow2raw-to-iscsi-with/</link><pubDate>Fri, 29 Jul 2016 12:52:18 +0300</pubDate><guid>https://vpetersson.com/2016/07/29/how-to-migrate-from-qcow2raw-to-iscsi-with/</guid><description>&lt;p>I recently had to migrate a number of VMs currently running on an NFS share to an iSCSI target. During my research, I was surprised how little documentation there was around this, so I decided to whip up this quick little piece about how to do it.&lt;/p>
&lt;p>Here are the steps:&lt;/p>
&lt;ul>
&lt;li>Create a new iSCSI target (one per VM/image you’re migrating). This step varies depending on your setup.&lt;/li>
&lt;li>Attach target on server (I found &lt;a href="https://virt-manager.org/">virt-manager&lt;/a> suitable for the task).&lt;/li>
&lt;li>Find the device from logs (/dev/sdc below). On Ubuntu, you will also need to install the package open-iscsi.&lt;/li>
&lt;li>Run &lt;code>qemu-img convert /path/to/your/image.qcow2 -O raw /dev/sdc&lt;/code> (for raw images, you could simply use &lt;code>dd&lt;/code> but to keep things consistent, I opted for &lt;code>qemu-img&lt;/code>).&lt;/li>
&lt;li>Update the disk config in the VM definition to point to the iSCSI target.&lt;/li>
&lt;li>Boot the VM and archive the old disk image.&lt;/li>
&lt;/ul>
&lt;p>Voila! You should now have a VM running on iSCSI and you will likely receive better I/O performance.&lt;/p></description></item><item><title>Provisioner @ Ansible London</title><link>https://vpetersson.com/2016/05/19/provisioner-ansible-london/</link><pubDate>Thu, 19 May 2016 22:29:44 +0300</pubDate><guid>https://vpetersson.com/2016/05/19/provisioner-ansible-london/</guid><description>&lt;p>Here’s my deck from tonight’s talk at Ansible London.&lt;/p>
&lt;p>&lt;script async class="speakerdeck-embed" data-id="ccf259437105406cb774e176b83c5fa3" data-ratio="1.33333333333333" src="https://speakerdeck.com/assets/embed.js">&lt;/script>&lt;/p></description></item><item><title>Digital signage solution, Screenly, chooses Canonical’s Ubuntu Core</title><link>https://vpetersson.com/2016/05/18/digital-signage-solution-screenly-chooses/</link><pubDate>Wed, 18 May 2016 13:23:06 +0300</pubDate><guid>https://vpetersson.com/2016/05/18/digital-signage-solution-screenly-chooses/</guid><description>&lt;p>&lt;a href="https://insights.ubuntu.com/2016/05/18/digital-signage-solution-screenly-chooses-canonicals-ubuntu-core/">Digital signage solution, Screenly, chooses Canonical’s Ubuntu Core&lt;/a>&lt;/p>
&lt;p>Super excited to announce that Screenly partners with Ubuntu/Canonical to bring Screenly to Ubuntu Core.&lt;/p></description></item><item><title>How Weave Net Enables a Global Docker Cluster with OnApp</title><link>https://vpetersson.com/2016/05/16/how-weave-net-enables-a-global-docker-cluster-with/</link><pubDate>Mon, 16 May 2016 17:56:18 +0300</pubDate><guid>https://vpetersson.com/2016/05/16/how-weave-net-enables-a-global-docker-cluster-with/</guid><description>&lt;p>&lt;a href="https://www.weave.works/weave-global-docker-cluster/">How Weave Net Enables a Global Docker Cluster with OnApp&lt;/a>&lt;/p>
&lt;p>I guest blogged a bit on Weave’s blog today.&lt;/p></description></item><item><title>Deck from IoT London</title><link>https://vpetersson.com/2016/04/21/deck-from-iot-london/</link><pubDate>Thu, 21 Apr 2016 10:21:39 +0300</pubDate><guid>https://vpetersson.com/2016/04/21/deck-from-iot-london/</guid><description>&lt;p>Here’s my deck from my recent IoT London talk:&lt;/p>
&lt;script async class="speakerdeck-embed" data-id="fd09e89a47b74e99b985f9f3dffc5193" data-ratio="1.33333333333333" src="https://speakerdeck.com/assets/embed.js">&lt;/script></description></item><item><title>How to fix kernel_task CPU usage on El Capitan</title><link>https://vpetersson.com/2016/01/03/how-to-fix-kerneltask-cpu-usage-on-el-capitan/</link><pubDate>Sun, 03 Jan 2016 16:17:59 +0200</pubDate><guid>https://vpetersson.com/2016/01/03/how-to-fix-kerneltask-cpu-usage-on-el-capitan/</guid><description>&lt;p>Sometime ago, I wrote the blog post &lt;a href="https://vpetersson.com/2014/10/16/how-to-fix-kerneltask-cpu-usage-on-yosemite/">How to fix kernel_task CPU usage on Yosemite&lt;/a>. This post still receives a great amount of traction, so I wanted to post an update that reflects the covers how to do this on El Capitan.&lt;/p>
&lt;p>The process is largely the same, but requires a bit more work due to the changes to the additional security that El Capitan introduced to the file system with System Integration Protection (SIP).&lt;/p></description></item><item><title>Using Ansible with Google Cloud Platform (the easy way)</title><link>https://vpetersson.com/2015/12/04/using-ansible-with-google-cloud-platform-the-easy/</link><pubDate>Fri, 04 Dec 2015 17:51:17 +0200</pubDate><guid>https://vpetersson.com/2015/12/04/using-ansible-with-google-cloud-platform-the-easy/</guid><description>&lt;p>For some time, &lt;a href="http://www.ansible.com/">Ansible&lt;/a> has been my configuration management of choice and we use it for both &lt;a href="http://www.screenlyapp.com">Screenly&lt;/a> and &lt;a href="http://www.yippiemove.com">YippieMove&lt;/a>. Since both of these services are running on Google Compute Engine, we’re using Ansible’s &lt;a href="http://docs.ansible.com/ansible/intro_dynamic_inventory.html">dynamic inventory&lt;/a> for GCE.&lt;/p>
&lt;p>(Behind the scenes, this dynamic inventory is using &lt;a href="https://libcloud.apache.org/">Apache Libcloud&lt;/a>, which is a great Python library for interacting with various providers.)&lt;/p>
&lt;p>When I first followed Ansible’s &lt;a href="http://docs.ansible.com/ansible/guide_gce.html">Google Cloud Platform Guide&lt;/a> I did run into a fair bit of trouble with authentication.&lt;/p></description></item><item><title>How to find a network device when using Internet Sharing on Mac OS X</title><link>https://vpetersson.com/2015/11/19/how-to-find-a-network-device-when-using-internet/</link><pubDate>Thu, 19 Nov 2015 17:14:41 +0200</pubDate><guid>https://vpetersson.com/2015/11/19/how-to-find-a-network-device-when-using-internet/</guid><description>&lt;p>The built-in Internet Sharing in OS X is very handy. When I’m on the road, I frequently use this to share my laptops WiFi connection with other devices over a wired connection (such as a Raspberry Pi, when I work on &lt;a href="http://www.screenlyapp.com">Screenly&lt;/a>).&lt;/p>
&lt;p>&lt;img
src="https://vpetersson.com/tumblr_files/tumblr_inline_ny2ky0ZeW01skxjxc_540.webp"
alt="Internet Sharing on OS X"
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>If you’re connecting some kind of headless device, you will likely want to connect to this device over SSH or similar. The only problem is that you don’t know the IP address of said device (it’s headless, remember).&lt;/p></description></item><item><title>Quickly navigate folders in your shell with `ccd`</title><link>https://vpetersson.com/2015/10/24/quickly-navigate-folders-in-your-shell-with-ccd/</link><pubDate>Sat, 24 Oct 2015 15:06:11 +0300</pubDate><guid>https://vpetersson.com/2015/10/24/quickly-navigate-folders-in-your-shell-with-ccd/</guid><description>&lt;p>I’m a huge fan of &lt;a href="https://github.com/wting/autojump">autojump&lt;/a>. It allows me to quickly navigate my filesystem in ways without having to type out every folder.&lt;/p>
&lt;p>There is however one task that I frequently that I wanted to make more efficient: create a new folder and then jump into said folder.&lt;/p>
&lt;p>Normally, this would simply be:&lt;/p>
&lt;pre>&lt;code>$ mkdir foo
$ cd foo
&lt;/code>&lt;/pre>
&lt;p>This feels somewhat inefficient, so I wrote a little tool to help with this called &lt;code>ccd&lt;/code>:&lt;/p></description></item><item><title>Introducing NatPass</title><link>https://vpetersson.com/2015/10/01/introducing-natpass/</link><pubDate>Thu, 01 Oct 2015 23:13:18 +0300</pubDate><guid>https://vpetersson.com/2015/10/01/introducing-natpass/</guid><description>&lt;p>After moving to London, I decided to go with &lt;a href="http://www.natwest.com">NatWest&lt;/a> as my bank. While it was a good experience at large, their online banking leavs a lot to be desired. Not only do they lack things like Two-Factor Authenciation (2FA), but they also have this &lt;em>really&lt;/em> frustrating login system.&lt;/p>
&lt;p>Well, today I had enough and whipped up a CLI tool that allows you to generate the data that they ask for by reading it in from 1Password (using &lt;a href="https://pypi.python.org/pypi/1pass/0.2.1">1pass&lt;/a>).&lt;/p></description></item><item><title>A case study in failed UX/UI  (aka DSC please get your shit together)</title><link>https://vpetersson.com/2015/09/15/a-case-study-in-failed-uxui-aka-dsc-please-get/</link><pubDate>Tue, 15 Sep 2015 21:22:17 +0300</pubDate><guid>https://vpetersson.com/2015/09/15/a-case-study-in-failed-uxui-aka-dsc-please-get/</guid><description>&lt;p>Dear Digital Security Controls (DSC),&lt;/p>
&lt;p>I recently purchased your &lt;a href="http://www.dsc.com/index.php?n=products&amp;amp;o=view&amp;amp;id=143">T-link&lt;/a> extension (IP module) for two alarm systems that I wanted to be able to remotely manage. After a few hours of troubleshooting (read: having to install Windows XP), I am now able to connect to these alarm systems over a VPN connection, but that’s about it.&lt;/p>
&lt;p>Please take a look at this screenshot:&lt;/p>
&lt;p>&lt;img
src="https://vpetersson.com/tumblr_files/tumblr_inline_nuqfgtj0GQ1skxjxc_540.webp"
alt="DSC DLS alarm software"
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>If it isn’t obvious what is wrong with this, let me spell this out for you.&lt;/p></description></item><item><title>“War dialing” with Skype</title><link>https://vpetersson.com/2015/09/08/war-dialing-with-skype/</link><pubDate>Tue, 08 Sep 2015 20:01:04 +0300</pubDate><guid>https://vpetersson.com/2015/09/08/war-dialing-with-skype/</guid><description>&lt;p>(Fine, this isn’t &lt;a href="https://en.wikipedia.org/wiki/War_dialing">war dialing&lt;/a> in the 90s context, but it made for a good title.)&lt;/p>
&lt;p>As furious I am with Lufhansa’s &lt;a href="http://www.independent.co.uk/news/business/lufthansa-passengers-grounded-as-pilots-launch-two-day-strike-10491256.html">strike&lt;/a>, it did give me time to write a fun script.&lt;/p>
&lt;p>With the announcement of the strike, Lufthansa’s customer service lines were brought to their knees. After trying to manually call a few of them (in different countries), I finally gave up with the manual mode and instead decided to automate this.&lt;/p></description></item><item><title>How to set up syslog-ng with TLS on Logentries</title><link>https://vpetersson.com/2015/08/06/how-to-set-up-syslog-ng-with-tls-on-logentries/</link><pubDate>Thu, 06 Aug 2015 13:50:29 +0300</pubDate><guid>https://vpetersson.com/2015/08/06/how-to-set-up-syslog-ng-with-tls-on-logentries/</guid><description>&lt;p>After using Loggly for a few years, I stumbled across &lt;a href="https://logentries.com/learnmore?code=82a5c804">Logentries&lt;/a> (disclosure: referral link). What I was looking for was basically something that is more affordable when the volume increases, and Logentries is a lot more affordable than Loggly as you grow.&lt;/p>
&lt;p>If you are just starting out using a remote shipping target (be Loggly, Papertrail or Logentries), it is worth noting that if you simply follow the instructions &lt;strong>you will be shipping logs in plain text&lt;/strong>. Since you’re a smart cookie, you know that’s a very bad idea.&lt;/p></description></item><item><title>An update on YippieMove</title><link>https://vpetersson.com/2015/07/17/an-update-on-yippiemove/</link><pubDate>Fri, 17 Jul 2015 16:01:37 +0300</pubDate><guid>https://vpetersson.com/2015/07/17/an-update-on-yippiemove/</guid><description>&lt;p>&lt;a href="http://wireload.net/news/2015/07/an-update-on-yippiemove.html">An update on YippieMove&lt;/a>&lt;/p></description></item><item><title>Deck from Open Cloud Day (2015)</title><link>https://vpetersson.com/2015/06/17/deck-from-open-cloud-day-2015/</link><pubDate>Wed, 17 Jun 2015 11:29:28 +0300</pubDate><guid>https://vpetersson.com/2015/06/17/deck-from-open-cloud-day-2015/</guid><description>&lt;p>Yesterday I had the pleaseure to speak at &lt;a href="http://www.ch-open.ch/events/aktuelle-events/160615-open-cloud-day-2015/">Open Cloud Day&lt;/a> in Bern, Switzerland.&lt;/p>
&lt;p>The linup for the event was good and I’m happy to contribute to the thriving open source and tech community in Switzerland. It was also great to hang out with the fine folks over at &lt;a href="http://www.s-i.ch/">ICCLAB&lt;/a> and &lt;a href="http://www.unibe.ch/">ZHAW&lt;/a>.&lt;/p>
&lt;p>&lt;strong>Update:&lt;/strong> The recording of the talk is available &lt;a href="https://www.youtube.com/watch?v=pHdc3f98Kxs&amp;amp;index=11&amp;amp;list=PLofS3lNZckseu0v_CP4XjgDUQxRKfF6gA">here&lt;/a>&lt;/p></description></item><item><title>Modern document management for your startup</title><link>https://vpetersson.com/2015/05/18/modern-document-management-for-your-startup/</link><pubDate>Mon, 18 May 2015 21:19:44 +0000</pubDate><guid>https://vpetersson.com/2015/05/18/modern-document-management-for-your-startup/</guid><description>&lt;p>&lt;a href="http://wireload.net/news/2015/05/modern_document_management.html">Modern document management for your startup&lt;/a>&lt;/p>
&lt;p>We’re currently in the process of revamping how we deal with documents at &lt;a href="http://wireload.net">WireLoad&lt;/a>. Here are some thoughts on this and how we do things today.&lt;/p></description></item><item><title>Manage Docker resources with Cgroups</title><link>https://vpetersson.com/2015/05/12/manage-docker-resources-with-cgroups/</link><pubDate>Tue, 12 May 2015 17:00:40 +0300</pubDate><guid>https://vpetersson.com/2015/05/12/manage-docker-resources-with-cgroups/</guid><description>&lt;p>&lt;a href="https://www.cloudsigma.com/manage-docker-resources-with-cgroups/">Manage Docker resources with Cgroups&lt;/a>&lt;/p>
&lt;p>My latest blog-post about Docker and Cgroups is live at CloudSigma’s blog.&lt;/p></description></item><item><title>Metrics on the big screen</title><link>https://vpetersson.com/2015/04/21/metrics-on-the-big-screen/</link><pubDate>Tue, 21 Apr 2015 17:23:23 +0300</pubDate><guid>https://vpetersson.com/2015/04/21/metrics-on-the-big-screen/</guid><description>&lt;p>&lt;a href="http://blog.hostedgraphite.com/post/117001786117/metrics-on-the-big-screen">hosted-graphite&lt;/a>:&lt;/p>
&lt;blockquote>
&lt;p>One of the best ways to ensure your whole team knows what your technology is doing is to ensure that everyone has quick and easy access to your dashboards. One of the best ways to do that is to get your dashboards displayed on a giant screen right in the middle of your work area. &lt;/p>
&lt;p>Sometimes this can be a bit of a pain - you need to devote some machine to power the dashboard and pipe it to the TV as well as the hassle of setting it up. Enter Screenly!&lt;/p></description></item><item><title>An introduction to cgroups and cgroupspy</title><link>https://vpetersson.com/2015/04/18/an-introduction-to-cgroups-and-cgroupspy/</link><pubDate>Sat, 18 Apr 2015 18:23:39 +0300</pubDate><guid>https://vpetersson.com/2015/04/18/an-introduction-to-cgroups-and-cgroupspy/</guid><description>&lt;p>Here’s my presentation from &lt;a href="http://apachecon.com/">ApacheCon&lt;/a> in Austin, TX.&lt;/p>
&lt;script async class="speakerdeck-embed" data-id="150bb1a9ed61402c8db2fd2aa9293729" data-ratio="1.33333333333333" src="https://speakerdeck.com/assets/embed.js">&lt;/script>&lt;p>I&amp;rsquo;m happy that I was invited to speak at the conference as it was full of awesome and talented people.&lt;/p></description></item><item><title>Receive calls with Google Voice (over VoIP) for free</title><link>https://vpetersson.com/2015/04/07/receive-calls-with-google-voice-over-voip-for/</link><pubDate>Tue, 07 Apr 2015 11:46:55 +0300</pubDate><guid>https://vpetersson.com/2015/04/07/receive-calls-with-google-voice-over-voip-for/</guid><description>&lt;p>I’ve been using Google Voice for a long time. In fact, I started using it back when it was called Grand Central (which was an acquisition). It’s a great product, and I really love it. Unfortunately it has more or less been left untouched for the last few years.&lt;/p>
&lt;p>If you’re in the U.S., Google Voice works great. You can just forward your Google Voice to your cell phone and you will automatically receive calls there.&lt;/p></description></item><item><title>Using cgroups with Docker on Ubuntu 14.04</title><link>https://vpetersson.com/2015/04/05/using-cgroups-with-docker-on-ubuntu-1404/</link><pubDate>Sun, 05 Apr 2015 13:12:25 +0300</pubDate><guid>https://vpetersson.com/2015/04/05/using-cgroups-with-docker-on-ubuntu-1404/</guid><description>&lt;p>As I was working on my upcoming presentation at &lt;a href="http://www.apachecon.com/">ApacheCon&lt;/a>, I was playing a little bit with cgroups inside Docker.&lt;/p>
&lt;p>What I found was that there aren’t a whole lot of documentation on this, so I figured I put together a quick blog post about it.&lt;/p>
&lt;h2 id="enable-the-lxc-driver">Enable the LXC driver&lt;/h2>
&lt;p>Assuming you already have Docker installed on Ubuntu 14.04, you will still need to enable the LXC driver.&lt;/p>
&lt;p>To do this, you will need to do the following&lt;/p></description></item><item><title>How to parse and dump a sitemap</title><link>https://vpetersson.com/2015/03/31/how-to-parse-and-dump-a-sitemap/</link><pubDate>Tue, 31 Mar 2015 23:50:30 +0300</pubDate><guid>https://vpetersson.com/2015/03/31/how-to-parse-and-dump-a-sitemap/</guid><description>&lt;p>When deling with website migrations, you sometimes need to map out the old content such that you can create your redirect to the new pages.&lt;/p>
&lt;p>While doing this, I ran across this little helpful snippet.&lt;/p>
&lt;script src="https://gist.github.com/vpetersson/f20efe6194460cc28d49.js">&lt;/script>&lt;p>Just modify the URL to the sitemap and the script will print out all the pages. You will need &lt;a href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup 4&lt;/a> and &lt;a href="http://docs.python-requests.org/en/latest/">Requests&lt;/a>.&lt;/p></description></item><item><title>On the Secure Messaging Community</title><link>https://vpetersson.com/2015/03/30/on-the-secure-messaging-community/</link><pubDate>Mon, 30 Mar 2015 08:41:00 +0300</pubDate><guid>https://vpetersson.com/2015/03/30/on-the-secure-messaging-community/</guid><description>&lt;p>&lt;a href="http://blog.nadim.computer/post/114970275623/on-the-secure-messaging-community">On the Secure Messaging Community&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://blog.nadim.computer/post/114970275623/on-the-secure-messaging-community">nadimkobeissi&lt;/a>:&lt;/p>
&lt;blockquote>
&lt;p>This afternoon, WIRED published an &lt;a href="http://www.wired.co.uk/magazine/archive/2015/03/features/messaging-apps">article&lt;/a> praising &lt;a href="http://www.wired.co.uk/magazine/archive/2015/03/features/messaging-apps">Telegram&lt;/a>, a mobile messaging app, for its privacy features and “hardcore encryption”. Telegram is an open source messenger that provides some encryption features — but it has come under legitimate scrutiny due to the exotic and unstudied…&lt;/p>&lt;/blockquote></description></item><item><title>Growth Hacking for Lean Startups</title><link>https://vpetersson.com/2015/03/23/growth-hacking-for-lean-startups/</link><pubDate>Mon, 23 Mar 2015 22:19:41 +0200</pubDate><guid>https://vpetersson.com/2015/03/23/growth-hacking-for-lean-startups/</guid><description>&lt;p>Just ran across this great slide deck today over at GrowthHackers.&lt;/p>
&lt;iframe src="https://www.slideshare.net/slideshow/embed_code/44894879" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> &lt;/iframe>
&lt;div style="margin-bottom:5px"> &lt;strong> &lt;a href="https://www.slideshare.net/StratAlignGroup/growth-hacking-for-lean-startups" title="Growth Hacking for Lean Startups" target="_blank">Growth Hacking for Lean Startups&lt;/a> &lt;/strong> from &lt;strong>&lt;a href="https://www.slideshare.net/StratAlignGroup" target="_blank">StratAlignGroup&lt;/a>&lt;/strong> &lt;/div></description></item><item><title>Are they using Google Apps?</title><link>https://vpetersson.com/2015/03/18/are-they-using-google-apps/</link><pubDate>Wed, 18 Mar 2015 10:00:36 +0200</pubDate><guid>https://vpetersson.com/2015/03/18/are-they-using-google-apps/</guid><description>&lt;p>&lt;a href="http://aretheyusinggoogleapps.com/">Are they using Google Apps?&lt;/a>&lt;/p>
&lt;p>Google Hangouts is great tool for video conferences…if the other party is also on the Google stack (Gmail or Google Apps). If they’re not, it it’s a dead end.&lt;/p>
&lt;p>Often time when scheduling conference calls, I ended up manually looking at the MX records to determine if I should use Google Hangout or &lt;a href="https://www.uberconference.com/">Uber Conference&lt;/a>. Since this process got old quickly, I hacked together a quick webapp that can do the lookup.&lt;/p></description></item><item><title>Pebble as a pedometer</title><link>https://vpetersson.com/2015/03/16/pebble-as-a-pedometer/</link><pubDate>Mon, 16 Mar 2015 16:25:33 +0200</pubDate><guid>https://vpetersson.com/2015/03/16/pebble-as-a-pedometer/</guid><description>&lt;p>For some time, I’ve worn both my Pebble and a Fitbit Flex. Since the Pebble comes with a built-in pedometer, this bothered me a lot. As a digital nomad, you’re always looking at ways to reduce the things you carry around and I’m now happy to report that I have retired my Fitbit.&lt;/p>
&lt;p>&lt;img
src="https://vpetersson.com/tumblr_files/tumblr_inline_nlb8qzinZ91skxjxc.webp"
alt=""
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>There has long been various pedometer watchfaces available for the Pebble. However, none of them (to my knowledge) could actually do anything with the data. At least to me, it is then rather pointless.&lt;/p></description></item><item><title>» CoreOS is now available on CloudSigma!</title><link>https://vpetersson.com/2015/03/16/coreos-is-now-available-on-cloudsigma/</link><pubDate>Mon, 16 Mar 2015 10:00:44 +0200</pubDate><guid>https://vpetersson.com/2015/03/16/coreos-is-now-available-on-cloudsigma/</guid><description>&lt;p>&lt;a href="https://www.cloudsigma.com/2015/03/10/coreos-is-now-available-on-cloudsigma/">» CoreOS is now available on CloudSigma!&lt;/a>&lt;/p>
&lt;p>I’m really excited to announce that CoreOS is now available on CloudSigma.&lt;/p></description></item><item><title>GetCanary.io - Intelligent notifications</title><link>https://vpetersson.com/2015/03/14/getcanaryio-intelligent-notifications/</link><pubDate>Sat, 14 Mar 2015 23:16:32 +0000</pubDate><guid>https://vpetersson.com/2015/03/14/getcanaryio-intelligent-notifications/</guid><description>&lt;p>&lt;a href="http://getcanary.io/">GetCanary.io - Intelligent notifications&lt;/a>&lt;/p>
&lt;p>The other day I had a Eureka moment while archiving the daily batch of notifications from various server tasks. Instead of having to read over ‘success’ messages, why isn’t there a reliable way to instead get notified when things do not work as expected. This is what our latest project sets out to solve. The title of the project is GetCanary.io, and the waitlist is open now.&lt;/p></description></item><item><title>My deck from CloudExpo Europe</title><link>https://vpetersson.com/2015/03/13/my-deck-from-cloudexpo-europe/</link><pubDate>Fri, 13 Mar 2015 15:44:45 +0200</pubDate><guid>https://vpetersson.com/2015/03/13/my-deck-from-cloudexpo-europe/</guid><description>&lt;p>Here’s the presentation deck from CloudExpo Europe 2015. The title of the talk was “Server Evolution: From mainframes to containers and PaaS.” Enjoy!&lt;/p>
&lt;script async class="speakerdeck-embed" data-id="c56b84f3c5a24859a1c1897b274fcef0" data-ratio="1.33333333333333" src="https://speakerdeck.com/assets/embed.js">&lt;/script></description></item><item><title>Thoughts on (practical) privacy</title><link>https://vpetersson.com/2015/02/27/thoughts-on-practical-privacy/</link><pubDate>Fri, 27 Feb 2015 12:50:30 +0200</pubDate><guid>https://vpetersson.com/2015/02/27/thoughts-on-practical-privacy/</guid><description>&lt;p>Privacy is difficult in this day and age. On the one hand we want to limit what we provide these data hungry companies with and on the other hand, we don’t want to alienate ourselves from our friends.&lt;/p>
&lt;p>Personally, Facebook is the company that I’m most reluctant to share data with. I simply don’t trust them. If you read Salim Virani’s post &lt;a href="http://saintsal.com/facebook/">Get your loved ones off Facebook&lt;/a>, you will understand why. The same argument could be made about Google and Apple of course, but both of them appears to take privacy at least a tad more serious than Facebook.&lt;/p></description></item><item><title>ZoneMinder as a people counter?</title><link>https://vpetersson.com/2015/02/01/zoneminder-as-a-people-counter/</link><pubDate>Sun, 01 Feb 2015 18:00:00 +0200</pubDate><guid>https://vpetersson.com/2015/02/01/zoneminder-as-a-people-counter/</guid><description>&lt;p>In recent years, it has become fairly common within the retail space to use (IP-based) surveillance cameras to track foot traffic (this can also be referred to as a “people counter”). This is a great idea, as it allows you to re-use existing hardware instead of having to install additional sensors.&lt;/p>
&lt;p>There are numerous commercial solutions out there that are capable of doing this. I have however not been able to find any complete open source product that can track foot traffic (at least not bi-directional). I did find a few examples of OpenCV based projects, such as &lt;a href="https://www.youtube.com/watch?v=OWab2_ete7s">this one&lt;/a>, but no source code.&lt;/p></description></item><item><title>Thought on the Purism laptop</title><link>https://vpetersson.com/2015/01/24/thought-on-the-purism-laptop/</link><pubDate>Sat, 24 Jan 2015 11:09:00 +0200</pubDate><guid>https://vpetersson.com/2015/01/24/thought-on-the-purism-laptop/</guid><description>&lt;p>Today I stumbled across the &lt;a href="http://puri.sm/">Purism&lt;/a>’s Librem 15 laptop. It’s a &lt;a href="https://www.crowdsupply.com/purism/librem-laptop">crowd sourced&lt;/a> laptop that is, as the name implies, pure. No proprietary or firmware or software. I &lt;em>really&lt;/em> like this idea, as it improves security by a lot.&lt;/p>
&lt;p>&lt;img
src="https://vpetersson.com/tumblr_files/tumblr_inline_nioe4yPZK61skxjxc.webp"
alt=""
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>At first glance, it looks pretty good. However after diving into the details, it falls short on a few points.&lt;/p>
&lt;ul>
&lt;li>The keyboard layout. A number pad? Is this a laptop designed for accountants? Those are probably the only people still using the number pad. Also, because of this the ‘center’ of the keyboard is moved to the left, which makes it look unbalanced.&lt;/li>
&lt;li>A CD drive? How often do you &lt;em>really&lt;/em> use a CD drive? I use a few time a year tops. For those few occasions, it’s easier to use an external drive. The extra weight does not justify this.&lt;/li>
&lt;li>The form factor. 13&amp;quot; is the new 15&amp;quot;. People carry their laptops with them everywhere these days. Weight and size matters a lot. Most people I know are either using 11&amp;quot; or 13&amp;quot; laptops.&lt;/li>
&lt;/ul>
&lt;p>Don’t get me wrong, I &lt;em>really&lt;/em> want these guys to succeed. The task of creating a laptop from scratch is far from trivial, so I salute them. Unfortunately the points above are show-stoppers for me.&lt;/p></description></item><item><title>A "dead man's switch" for your computer?</title><link>https://vpetersson.com/2015/01/22/a-dead-mans-switch-for-your-computer/</link><pubDate>Thu, 22 Jan 2015 22:03:00 +0200</pubDate><guid>https://vpetersson.com/2015/01/22/a-dead-mans-switch-for-your-computer/</guid><description>&lt;p>In the last few weeks, a lot of details have been disclosed around &lt;a href="http://arstechnica.com/tech-policy/2015/01/silk-road-trial-fbi-reveals-whats-on-ross-ulbrichts-computer-in-open-court/">Ross Ulbricht’s arrest&lt;/a>. For those not familiar with the matter, Ulbricht was arrested at a library in San Francisco some time ago with his laptop open. The agents managed to steal the laptop out of Ulbricht’s hands and therefore prevent him from locking the computer (which presumably had full-disk encryption).&lt;/p>
&lt;p>This got me thinking; why don’t we have &lt;strong>Dead Man’s Switches&lt;/strong> for computers? It would be very simple to create one.&lt;/p></description></item><item><title>Interview with Viktor Petersson, VP of Business Development for IAAS provider CloudSigma</title><link>https://vpetersson.com/2015/01/20/interview-with-viktor-petersson-vp-of-business/</link><pubDate>Tue, 20 Jan 2015 21:52:15 +0200</pubDate><guid>https://vpetersson.com/2015/01/20/interview-with-viktor-petersson-vp-of-business/</guid><description>&lt;p>&lt;a href="http://blog.syncsort.com/2015/01/interview-viktor-petersson-vp-business-development-iaas-provider-cloudsigma/">Interview with Viktor Petersson, VP of Business Development for IAAS provider CloudSigma&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>Interview with Viktor Petersson, VP of Business Development for IAAS provider CloudSigma on what it takes to be a Gartner-Cool Vendor&lt;/p>&lt;/blockquote></description></item><item><title>Virtualization on Ubuntu 14.04 with virsh and vmbuilder</title><link>https://vpetersson.com/2015/01/18/virtualization-on-ubuntu-1404-with-virsh-and/</link><pubDate>Sun, 18 Jan 2015 17:22:00 +0200</pubDate><guid>https://vpetersson.com/2015/01/18/virtualization-on-ubuntu-1404-with-virsh-and/</guid><description>&lt;p>While I’ve switched most of my workloads to &lt;a href="https://www.docker.com">Docker&lt;/a>, there are still some situations where you need to manage and set up Virtual Machines (VM). These days, KVM+QEMU has more or less been established as the virtualization standard, so we’ll be using that.&lt;/p>
&lt;p>Setting this up on Ubuntu 14.04 (Trusty Tahr) is very straight forward. All you need to do is to run:&lt;/p>
&lt;pre>&lt;code>$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
&lt;/code>&lt;/pre>
&lt;p>Assuming everything went well, you should now be up and running and can list your VMs (there are of course none):&lt;/p></description></item><item><title>Sync Dev: Securely Deploying Sync</title><link>https://vpetersson.com/2014/12/19/sync-dev-securely-deploying-sync/</link><pubDate>Fri, 19 Dec 2014 22:02:47 +0200</pubDate><guid>https://vpetersson.com/2014/12/19/sync-dev-securely-deploying-sync/</guid><description>&lt;p>&lt;a href="http://blog.bittorrent.com/2014/12/18/sync-dev-securely-deploying-sync/">Sync Dev: Securely Deploying Sync&lt;/a>&lt;/p>
&lt;p>BitTorrent’s blog re-posted by Sync article today.&lt;/p></description></item><item><title>» How to securely use BitTorrent Sync for backups</title><link>https://vpetersson.com/2014/12/10/how-to-securely-use-bittorrent-sync-for-backups/</link><pubDate>Wed, 10 Dec 2014 15:26:23 +0200</pubDate><guid>https://vpetersson.com/2014/12/10/how-to-securely-use-bittorrent-sync-for-backups/</guid><description>&lt;p>&lt;a href="https://www.cloudsigma.com/2014/12/10/how-to-securely-use-bittorrent-sync-for-backups/">» How to securely use BitTorrent Sync for backups&lt;/a>&lt;/p>
&lt;p>I just published an article on CloudSigma.com on how to securely deploy BitTorrent Sync in the cloud with step-by-step instructions.&lt;/p></description></item><item><title>How to deal with/archive an old WordPress site</title><link>https://vpetersson.com/2014/12/04/how-to-deal-witharchive-an-old-wordpress-site/</link><pubDate>Thu, 04 Dec 2014 18:33:00 +0200</pubDate><guid>https://vpetersson.com/2014/12/04/how-to-deal-witharchive-an-old-wordpress-site/</guid><description>&lt;p>We all have those old blogs that we started some time ago with some grandiose vision. Unfortunately, the blog never really took off. Now it just sits there and generate a small amount of traffic every day. It’s enough to not shut it down, but not enough to invest a whole lot more resources into.&lt;/p>
&lt;p>Chances are that said blog is running on WordPress. You now have to log into the blog somewhat frequently to upgrade it. Moreover, chances are also that your blog has been compromised during this time and you don’t even know about it.&lt;/p></description></item><item><title>Screenly is featured in the latest issue of Linux User</title><link>https://vpetersson.com/2014/11/20/screenly-is-featured-in-the-latest-issue-of-linux/</link><pubDate>Thu, 20 Nov 2014 15:56:41 +0200</pubDate><guid>https://vpetersson.com/2014/11/20/screenly-is-featured-in-the-latest-issue-of-linux/</guid><description>&lt;p>&lt;img
src="https://vpetersson.com/tumblr_files/tumblr_inline_nfces4YkL41skxjxc.webp"
alt="Linux User"
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>I’m really excited to let you know that Screenly is featured in the latest issue of Linux User in the U.K. (issue 146). A snippet of the article is already up on their &lt;a href="http://www.linuxuser.co.uk/news/win-a-hdmipi-screenly">website&lt;/a>.&lt;/p>
&lt;p>We’ve also teamed up with Linux User to give a way a free 12 month subscription of &lt;a href="http://www.screenlyapp.com">Screenly&lt;/a>, along with a &lt;a href="http://hdmipi.com/">HDMIPi&lt;/a>.&lt;/p></description></item><item><title>The dangers of UFW + Docker</title><link>https://vpetersson.com/2014/11/03/the-dangers-of-ufw-docker/</link><pubDate>Mon, 03 Nov 2014 23:51:00 +0200</pubDate><guid>https://vpetersson.com/2014/11/03/the-dangers-of-ufw-docker/</guid><description>&lt;p>In recent years, I’ve transitioned over to using Ubuntu’s &lt;a href="https://help.ubuntu.com/community/UFW">UFW&lt;/a>. In most cases, it gets the job done and it is easy to manage via provisioning tools like &lt;a href="http://www.ansible.com">Ansible&lt;/a>.&lt;/p>
&lt;p>As turns out however, using UFW together with Docker can be &lt;em>very&lt;/em> dangerous as I will show below.&lt;/p>
&lt;p>Let’s start with an Ubuntu 14.04 server. It has UFW and Docker installed already, so let’s start by configuring UFW to block everything but SSH.&lt;/p></description></item><item><title>How to get BitTorrent Sync to stop syncing Finder meta data</title><link>https://vpetersson.com/2014/10/31/how-to-get-bittorrent-sync-to-stop-syncing-finder/</link><pubDate>Fri, 31 Oct 2014 20:34:10 +0200</pubDate><guid>https://vpetersson.com/2014/10/31/how-to-get-bittorrent-sync-to-stop-syncing-finder/</guid><description>&lt;p>I really like &lt;a href="https://www.btsync.com/en/">BitTorrent Sync&lt;/a>. It’s a great alternative to Dropbox et al, without having to hand over your unencrypted data to a third party.&lt;/p>
&lt;p>Unfortunately, the default configuration in BitTorrent Sync for Mac OS X is somewhat odd. As it turns out, it syncs all of Finder’s meta data. As you can imagine, this means a lot of pointless syncing.&lt;/p>
&lt;p>After &lt;a href="http://forum.bittorrent.com/topic/32376-ignorelist-isnt-honored-by-the-sending-node/">posting&lt;/a> on the forum, I did however &lt;a href="http://sync-help.bittorrent.com/customer/portal/articles/1682051-alt-streams-and-xattrs-in-sync">found out&lt;/a> that by default these files are added to a file called &lt;code>StreamsList&lt;/code> that apparently overrides the more obvious &lt;code>IgnoreList&lt;/code>.&lt;/p></description></item><item><title>» An introduction to server provisioning with CloudInit</title><link>https://vpetersson.com/2014/10/29/an-introduction-to-server-provisioning-with/</link><pubDate>Wed, 29 Oct 2014 18:16:00 +0200</pubDate><guid>https://vpetersson.com/2014/10/29/an-introduction-to-server-provisioning-with/</guid><description>&lt;p>&lt;a href="https://www.cloudsigma.com/2014/10/29/an-introduction-to-server-provisioning-with-cloudinit/">» An introduction to server provisioning with CloudInit&lt;/a>&lt;/p>
&lt;p>I just published an article over at CloudSigma’s blog about server provisioning using CloudInit.&lt;/p></description></item><item><title>Running Puppet master in Docker</title><link>https://vpetersson.com/2014/10/26/running-puppet-master-in-docker/</link><pubDate>Sun, 26 Oct 2014 16:00:10 +0200</pubDate><guid>https://vpetersson.com/2014/10/26/running-puppet-master-in-docker/</guid><description>&lt;p>In the past, I’ve relied a lot on Puppet for automation. That means that I have a fair number of Puppet masters at my disposals.&lt;/p>
&lt;p>Puppet is a Ruby based application. As many Ruby based applications, it depends on a fairly large number of other libraries. Having to install all these packages on a brand new server is a pity.&lt;/p>
&lt;p>In addition, the recommended approach is to run the Puppet master with Apache and &lt;a href="https://www.phusionpassenger.com/">passenger&lt;/a>, which complicates things further if are running another web server, such as Nginx, on the same server.&lt;/p></description></item><item><title>yay blotter is currently the 9th best selling</title><link>https://vpetersson.com/2014/10/22/yay-blotter-is-currently-the-9th-best-selling/</link><pubDate>Wed, 22 Oct 2014 20:01:39 +0300</pubDate><guid>https://vpetersson.com/2014/10/22/yay-blotter-is-currently-the-9th-best-selling/</guid><description>&lt;p>&lt;img
src="https://vpetersson.com/tumblr_files/tumblr_ndupg9oYsS1thwdtao1_1280.webp"
alt=""
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>Yay, &lt;a href="http://wireload.net/products/blotter/">Blotter&lt;/a> is currently the 9th best selling productivity app in the U.S. Mac App Store!&lt;/p></description></item><item><title>Keyboard hacks for OS X</title><link>https://vpetersson.com/2014/10/22/keyboard-hacks-for-os-x/</link><pubDate>Wed, 22 Oct 2014 16:51:23 +0300</pubDate><guid>https://vpetersson.com/2014/10/22/keyboard-hacks-for-os-x/</guid><description>&lt;p>Every time I install OS X, I get very frustrated with the default keyboard settings. Perhaps the most frustrating one is how slow the navigation is when you’re using the arrow keys to move around in text blocks.&lt;/p>
&lt;p>Fortunately, it is easy to change the settings. To make the keyboard navigation faster, you need to toggle the following two settings:&lt;/p>
&lt;p>&lt;img
src="https://vpetersson.com/tumblr_files/tumblr_inline_ndumzj5FgR1skxjxc.webp"
alt="Change keyboard speed on Mac OS X"
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>The next thing I always do too is to re-map the Caps Lock key. I really cannot think of a single time I’ve used it in the last five years other than by mistake. Yet it sits on prime keyboard real estate.&lt;/p></description></item><item><title>Run your Tor Relay Node in Docker</title><link>https://vpetersson.com/2014/10/16/run-your-tor-relay-node-in-docker/</link><pubDate>Thu, 16 Oct 2014 21:40:00 +0000</pubDate><guid>https://vpetersson.com/2014/10/16/run-your-tor-relay-node-in-docker/</guid><description>&lt;p>&lt;a href="https://www.torproject.org">Tor&lt;/a> is a project that I really love to support. In this age of increased surveillance, Tor is needed more than ever.&lt;/p>
&lt;p>Unfortunately, your own Tor Exit Node can put you in a lot of trouble due to the fact that Tor being used for all kinds of abuses. This is unfortunately a the reality of anonymity; some people will abuse it.&lt;/p>
&lt;p>Yet, we shall not let this overshadow the fact that Tor is a critical tool for or &lt;strong>a lot&lt;/strong> of people out there who are trying to circumvent government censorship. I want to help &lt;strong>these people&lt;/strong> with the resources I have available at my disposal. As a result, I have run a number of Tor servers over the years.&lt;/p></description></item><item><title>How to fix kernel_task CPU usage on Yosemite</title><link>https://vpetersson.com/2014/10/16/how-to-fix-kerneltask-cpu-usage-on-yosemite/</link><pubDate>Thu, 16 Oct 2014 11:01:00 +0300</pubDate><guid>https://vpetersson.com/2014/10/16/how-to-fix-kerneltask-cpu-usage-on-yosemite/</guid><description>&lt;p>Yesterday I had to hand in my almost new MacBook Pro (Retina) for repair due to a broken logic board. This meant that I had to go back to my old laptop for a little bit.&lt;/p>
&lt;p>In preparation for this, I dusted off my old MacBook Pro this weekend so that I would have something from in the meantime. Since it was due for an upgrade, I decided to &lt;a href="https://vpetersson.com/2014/10/05/how-to-install-yosemite-and-ubuntu-linux/">install the Yosemite beta&lt;/a> on it just to give it a try. After getting everything up and running, I did however notice that the laptop was rather unresponsive and sluggish.&lt;/p></description></item><item><title>CloudSigma joins Ubuntu Certified Public Cloud</title><link>https://vpetersson.com/2014/10/15/cloudsigma-joins-ubuntu-certified-public-cloud/</link><pubDate>Wed, 15 Oct 2014 16:18:59 +0300</pubDate><guid>https://vpetersson.com/2014/10/15/cloudsigma-joins-ubuntu-certified-public-cloud/</guid><description>&lt;p>&lt;a href="https://insights.ubuntu.com/2014/10/15/cloudsigma-joins-ubuntu-certified-public-cloud/">CloudSigma joins Ubuntu Certified Public Cloud&lt;/a>&lt;/p>
&lt;p>Happy to announce a partnership deal that I’ve been working with for some time.&lt;/p></description></item><item><title>Sync Dev: Using Sync For Backups In The Cloud (With Docker)</title><link>https://vpetersson.com/2014/10/14/sync-dev-using-sync-for-backups-in-the-cloud/</link><pubDate>Tue, 14 Oct 2014 13:58:27 +0300</pubDate><guid>https://vpetersson.com/2014/10/14/sync-dev-using-sync-for-backups-in-the-cloud/</guid><description>&lt;p>&lt;a href="http://blog.bittorrent.com/2014/07/17/sync-dev-using-sync-for-backups-in-the-cloud-with-docker/">Sync Dev: Using Sync For Backups In The Cloud (With Docker)&lt;/a>&lt;/p>
&lt;p>Here’s a guest blog post that I wrote on Bittorrent’s blog a while back that I forgot to cross-post here.&lt;/p></description></item><item><title>Sophisticated new playlist editor in Screenly</title><link>https://vpetersson.com/2014/10/10/sophisticated-new-playlist-editor-in-screenly/</link><pubDate>Fri, 10 Oct 2014 13:49:20 +0300</pubDate><guid>https://vpetersson.com/2014/10/10/sophisticated-new-playlist-editor-in-screenly/</guid><description>&lt;p>&lt;a href="http://wireload.net/news/2014/10/sophisticated_new_playlist_editor_in_screenly.html">Sophisticated new playlist editor in Screenly&lt;/a>&lt;/p>
&lt;p>I’m very excited about this latest release we just did to Screenly.&lt;/p></description></item><item><title>How to install Yosemite and Ubuntu Linux side-by-side with full disk encryption</title><link>https://vpetersson.com/2014/10/05/how-to-install-yosemite-and-ubuntu-linux/</link><pubDate>Sun, 05 Oct 2014 17:47:00 +0300</pubDate><guid>https://vpetersson.com/2014/10/05/how-to-install-yosemite-and-ubuntu-linux/</guid><description>&lt;p>This weekend I spent a bit of time playing around with my old MacBook Pro. My goal was to set it up as a backup/test laptop. What I wanted to accomplish was the following:&lt;/p>
&lt;ul>
&lt;li>Install Yosemite with Full Disk Encryption (FDE)&lt;/li>
&lt;li>Install Ubuntu Linux 14.04 LTS with FDE (using LVM)&lt;/li>
&lt;/ul>
&lt;p>As it turns out, this was a lot more challenging than I thought. My initial approach was to simply split the disk into two partitions and just install each operating system separately. Once installed, I was planning to simply enabled FileVault inside OS X (Ubuntu allows you to enable encryption during the installation).&lt;/p></description></item><item><title>Autojump: blazing fast filesystem navigation</title><link>https://vpetersson.com/2014/10/03/autojump-blazing-fast-filesystem-navigation/</link><pubDate>Fri, 03 Oct 2014 10:22:00 +0300</pubDate><guid>https://vpetersson.com/2014/10/03/autojump-blazing-fast-filesystem-navigation/</guid><description>&lt;p>&lt;a href="https://github.com/joelthelion/autojump">Autojump: blazing fast filesystem navigation&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>autojump - A cd command that learns - easily navigate directories from the command line&lt;/p>&lt;/blockquote>
&lt;p>I just ran across a very convenient little tool called &lt;code>autojump&lt;/code> that I wanted to share.&lt;/p>
&lt;p>For a number of years, i’ve used aliases in Bash for quickly navigating the file system. &lt;code>autojump&lt;/code> makes this unnecessary.&lt;/p>
&lt;h1 id="os-x-crash-course">OS X crash course&lt;/h1>
&lt;p>This requires that you have &lt;code>brew&lt;/code> installed and use Bash as your shell&lt;/p></description></item><item><title>Create a bootable USB drive for Yosemite the easy way</title><link>https://vpetersson.com/2014/09/18/create-a-bootable-usb-drive-for-yosemite-the-easy/</link><pubDate>Thu, 18 Sep 2014 21:22:00 +0000</pubDate><guid>https://vpetersson.com/2014/09/18/create-a-bootable-usb-drive-for-yosemite-the-easy/</guid><description>&lt;p>Today I decided to take Yosemite for a spin on my old laptop.&lt;/p>
&lt;p>Since installing from USB is the only way to do a &lt;em>clean&lt;/em> install, I started googling around for exact steps (which were somewhat messy).&lt;/p>
&lt;p>To my surprise, it appears as Apple also realized that this was messy and decided to bake in a solution for this. It isn’t however completely obvious, but here is the command:&lt;/p>
&lt;pre>&lt;code>$ sudo /Applications/Install\ OS\ X\ Yosemite\ Developer\ Preview.app/Contents/Resources/createinstallmedia --volume /Volumes/your_flash_drive / --applicationpath /Applications/Install\ OS\ X\ Yosemite\ Developer\ Preview.app/
&lt;/code>&lt;/pre>
&lt;p>&lt;img
src="https://vpetersson.com/tumblr_files/tumblr_inline_nc4cdfJwWd1skxjxc.webp"
alt=""
loading="lazy"
decoding="async"
/>&lt;/p></description></item><item><title>How to not screw up localization on websites</title><link>https://vpetersson.com/2014/09/04/how-to-not-screw-up-localization-on-websites/</link><pubDate>Thu, 04 Sep 2014 19:13:39 +0300</pubDate><guid>https://vpetersson.com/2014/09/04/how-to-not-screw-up-localization-on-websites/</guid><description>&lt;p>Poorly implemented translations ‘logic’ is something that really grinds my gear. Today I ran across the new &lt;a href="http://www.dyson360eye.com/">Dyson 360 Eye&lt;/a> and it is a case study in how to &lt;strong>not&lt;/strong> do website translations.&lt;/p>
&lt;p>Since I’m connected to a VPN in Switzerland, this is what I was presented with: &lt;img
src="https://vpetersson.com/tumblr_files/tumblr_inline_nbdymqMeeW1skxjxc.webp"
alt=""
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>As you can see, the website is in German just because I connected through Switzerland. Now let’s analyze why this is bad.&lt;/p></description></item><item><title>Linux Performance Tools</title><link>https://vpetersson.com/2014/08/21/linux-performance-tools/</link><pubDate>Thu, 21 Aug 2014 09:50:24 +0300</pubDate><guid>https://vpetersson.com/2014/08/21/linux-performance-tools/</guid><description>&lt;p>&lt;a href="http://www.slideshare.net/brendangregg/linux-performance-tools">Linux Performance Tools&lt;/a>&lt;/p>
&lt;p>A great collection of Linux tools for troubleshooting and improving performance.&lt;/p></description></item><item><title>Using chain certificates with Nginx</title><link>https://vpetersson.com/2014/08/20/using-chain-certificates-with-nginx/</link><pubDate>Wed, 20 Aug 2014 09:52:47 +0300</pubDate><guid>https://vpetersson.com/2014/08/20/using-chain-certificates-with-nginx/</guid><description>&lt;p>I’m a big fan of &lt;a href="http://namecheap.com">Namecheap&lt;/a>. They offer cheap SSL certificates that does the trick just fine. For most my projects, I go for their cheapest option (usually ‘PossitiveSSL’).&lt;/p>
&lt;p>Every time I deploy one of these certificates however, I screw up the order of the chain certificates. The tl;dr is that certificate should go first, and then the supporting chain certificates.&lt;/p>
&lt;p>After extracting the zip-file you get from Namecheap, simply run this command to create your certificate:&lt;/p></description></item><item><title>DEFCON 22 Badge Challenge</title><link>https://vpetersson.com/2014/08/19/defcon-22-badge-challenge/</link><pubDate>Tue, 19 Aug 2014 11:15:53 +0300</pubDate><guid>https://vpetersson.com/2014/08/19/defcon-22-badge-challenge/</guid><description>&lt;p>This is &lt;em>very&lt;/em> cool. The guys at Defcon sure knows how to geek out and create a challenge. Here’s the &lt;a href="http://potatohatsecurity.tumblr.com/post/94565729529/defcon-22-badge-challenge-walkthrough">Badge Challenge Walkthrough&lt;/a>.&lt;/p></description></item><item><title>TripIt insecurely broadcasts sensitive travel details in calendar feeds; could destroy your vacation</title><link>https://vpetersson.com/2014/08/18/tripit-insecurely-broadcasts-sensitive-travel/</link><pubDate>Mon, 18 Aug 2014 19:09:31 +0300</pubDate><guid>https://vpetersson.com/2014/08/18/tripit-insecurely-broadcasts-sensitive-travel/</guid><description>&lt;p>&lt;a href="http://httpshaming.tumblr.com/post/94950343491/tripit-insecurely-broadcasts-sensitive-travel-details">TripIt insecurely broadcasts sensitive travel details in calendar feeds; could destroy your vacation&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://httpshaming.tumblr.com/post/94950343491/tripit-insecurely-broadcasts-sensitive-travel-details">httpshaming&lt;/a>:&lt;/p>
&lt;blockquote>
&lt;p>&lt;img
src="https://vpetersson.com/tumblr_files/tumblr_inline_naf9uuajul1smov0f.webp"
alt="image"
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>Although I love using TripIt to organize my travel, if you subscribe to a TripIt calendar feed using an application like OS X or iOS Calendar, &lt;strong>details about your past and upcoming travel is sent plaintext, unencrypted out over the net:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Your name&lt;/li>
&lt;li>Trip summaries (where you’re going and…&lt;/li>
&lt;/ul>&lt;/blockquote></description></item><item><title>Introducing nomadsims.io</title><link>https://vpetersson.com/2014/08/08/introducing-nomadsimsio/</link><pubDate>Fri, 08 Aug 2014 12:22:05 +0300</pubDate><guid>https://vpetersson.com/2014/08/08/introducing-nomadsimsio/</guid><description>&lt;p>A while back, I stumbled across &lt;a href="http://nomadlist.io/">NomadList&lt;/a>. It’s basically a crowd sourced list of cities around the world ranked by how good they are for remote working.&lt;/p>
&lt;p>That got me thinking. One of the pain points I’ve had over the years when traveling is finding the best local mobile carrier for pre-paid cards. Wouldn’t it be great if there was a crowd sourced database for this?&lt;/p>
&lt;p>So I spent some time yesterday hacking together a rough prototype for this that I call &lt;a href="http://nomadsims.io/">NomadSIMs&lt;/a>.&lt;/p></description></item><item><title>What's in your bag, Viktor?</title><link>https://vpetersson.com/2014/08/03/whats-in-your-bag-viktor/</link><pubDate>Sun, 03 Aug 2014 23:18:02 +0300</pubDate><guid>https://vpetersson.com/2014/08/03/whats-in-your-bag-viktor/</guid><description>&lt;p>&lt;a href="http://leannomads.tumblr.com/post/93698602869/whats-in-your-bag-viktor">What&amp;rsquo;s in your bag, Viktor?&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://leannomads.tumblr.com/post/93698602869/whats-in-your-bag-viktor">leannomads&lt;/a>:&lt;/p>
&lt;blockquote>
&lt;p>One of the most important possessions as a digital nomad is your laptop bag and its contents. Think of it as your office.&lt;/p>
&lt;p>Since you will be carrying this bag with you almost everywhere you go, you really want to make sure that it is robust, and yet light (when filled). After years of testing out…&lt;/p>&lt;/blockquote></description></item><item><title>how funny i got a cloudflare timeouton</title><link>https://vpetersson.com/2014/07/30/how-funny-i-got-a-cloudflare-timeouton/</link><pubDate>Wed, 30 Jul 2014 12:19:35 +0300</pubDate><guid>https://vpetersson.com/2014/07/30/how-funny-i-got-a-cloudflare-timeouton/</guid><description>&lt;p>&lt;img
src="https://vpetersson.com/tumblr_files/tumblr_n9ison2ogl1thwdtao1_1280.webp"
alt=""
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>How funny. I got a CloudFlare timeout…on &lt;a href="http://www.cloudflare.com">www.cloudflare.com&lt;/a>&lt;/p></description></item><item><title>How to boot from USB with Grub2</title><link>https://vpetersson.com/2014/07/29/how-to-boot-from-usb-with-grub2/</link><pubDate>Tue, 29 Jul 2014 09:06:00 +0300</pubDate><guid>https://vpetersson.com/2014/07/29/how-to-boot-from-usb-with-grub2/</guid><description>&lt;p>Yesterday, I had to rescue a broken Ubuntu 14.04 installation by booting from USB. Unfortunately, I was unable to get into the BIOS to change the boot order (because of a BIOS password and a bad memory).&lt;/p>
&lt;p>Fortunately, since I was able to get to Grub, it was still possible. Here’s how I did it:&lt;/p>
&lt;ul>
&lt;li>Create a bootable USB drive (using something like &lt;a href="https://apps.ubuntu.com/cat/applications/usb-creator-gtk/">Startup Disk Creator&lt;/a>. Before taking the drive out, locate where the &lt;code>vmlinuz&lt;/code> and &lt;code>initrd.*&lt;/code> files are located. You’ll need them later.&lt;/li>
&lt;li>Insert the USB drive and boot the system. When you get to Grub, press &lt;em>c&lt;/em> to get to the ‘command-line’ option.&lt;/li>
&lt;/ul>
&lt;p>Here is where it gets a bit tricky. In my case, I knew the root partition on the USB disk was &lt;code>/dev/sda1&lt;/code>, yours may vary.&lt;/p></description></item><item><title>hold on let me just upgrade and reboot my light</title><link>https://vpetersson.com/2014/07/27/hold-on-let-me-just-upgrade-and-reboot-my-light/</link><pubDate>Sun, 27 Jul 2014 21:00:43 +0300</pubDate><guid>https://vpetersson.com/2014/07/27/hold-on-let-me-just-upgrade-and-reboot-my-light/</guid><description>&lt;p>&lt;img
src="https://vpetersson.com/tumblr_files/tumblr_n9dwt7mk481thwdtao1_1280.webp"
alt=""
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>Hold on, let me just upgrade and reboot my light bulbs…&lt;/p></description></item><item><title>DevOps tools/trends that I really like right now...</title><link>https://vpetersson.com/2014/07/26/devops-toolstrends-that-i-really-like-right/</link><pubDate>Sat, 26 Jul 2014 21:14:03 +0300</pubDate><guid>https://vpetersson.com/2014/07/26/devops-toolstrends-that-i-really-like-right/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://www.docker.com/">&lt;strong>Docker&lt;/strong>&lt;/a> and &lt;strong>Docker Hub&lt;/strong> - It’s awesome and it removes a lot of the complexity from traditional DevOps work. What’s funny is that while doing my migration to Tumblr, I found this &lt;a href="https://vpetersson.com/2010/08/28/shouldnt-dependencies-on-core-components-be-isolated/">three year blog post&lt;/a> that pretty much describes Docker. Yes, it’s not too far from FreeBSD’s Jails, but it never had this momentum nor the toolset (which of course is a result of the momentum).&lt;/li>
&lt;li>&lt;a href="https://coreos.com/">&lt;strong>CoreOS&lt;/strong>&lt;/a>, &lt;strong>Etcd&lt;/strong>, &lt;strong>Systemd&lt;/strong> and &lt;strong>Fleet&lt;/strong> - Once you have started to fully embrace Docker, CoreOS and its components just makes a ton of sense. I really hope that this is where we’re heading. Once you’ve had a taste of &lt;code>fleetctl&lt;/code>, you’re hooked.&lt;/li>
&lt;li>&lt;a href="http://www.ansible.com">&lt;strong>Ansible&lt;/strong>&lt;/a> - Sometimes you still need to manage servers and Ansible is a breeze of fresh air. Sorry, Puppet, but I’m done with you.&lt;/li>
&lt;li>&lt;a href="https://www.python.org/">&lt;strong>Python&lt;/strong>&lt;/a> - Yes, in modern day DevOps, Bash simply won’t cut it. Python is a blessing when you need to interact with an API or similar.&lt;/li>
&lt;/ul></description></item><item><title>How to migrate from WordPress to Tumblr</title><link>https://vpetersson.com/2014/07/24/how-to-migrate-from-wordpress-to-tumblr/</link><pubDate>Thu, 24 Jul 2014 22:53:00 +0300</pubDate><guid>https://vpetersson.com/2014/07/24/how-to-migrate-from-wordpress-to-tumblr/</guid><description>&lt;p>Today, I’ve spent a large chunk of my day migrating my blog from WordPress to Tumblr and &lt;a href="http://about.me/vpetersson">About.me&lt;/a>.&lt;/p>
&lt;p>Before you ask why on earth I’d do this, let me just sum it up in a few bullet points:&lt;/p>
&lt;ul>
&lt;li>I hate PHP and managing WordPress sites. Yes, it has gotten a lot better lately, but it’s still a big pain in the ass.&lt;/li>
&lt;li>Most of the content I generate is either on other blogs, or fed via Twitter. As a result, I don’t blog too much.&lt;/li>
&lt;/ul>
&lt;p>Now, you’re likely reading this post because you’re interested in the subject at hand, so let’s dive into it.&lt;/p></description></item><item><title>My presentation from Zadara Summit</title><link>https://vpetersson.com/2014/07/24/my-presentation-from-zadara-summit/</link><pubDate>Thu, 24 Jul 2014 21:22:01 +0300</pubDate><guid>https://vpetersson.com/2014/07/24/my-presentation-from-zadara-summit/</guid><description>&lt;p>Last month I spoke at &lt;a href="http://zadarasummit2014.conference-websites.co.uk/">Zadara Summit&lt;/a>. I did however, I did forget to post the speaker deck here, so here we go.&lt;/p>
&lt;p>My presentation deck is available &lt;a href="https://speakerdeck.com/vpetersson/cloudsigma-zadara-summit">here&lt;/a>.&lt;/p></description></item><item><title>Installing Windows 7 on a MacBook Air</title><link>https://vpetersson.com/2013/12/08/installing-windows-7-on-a-macbook-air/</link><pubDate>Sun, 08 Dec 2013 12:59:06 +0200</pubDate><guid>https://vpetersson.com/2013/12/08/installing-windows-7-on-a-macbook-air/</guid><description>&lt;p>It’s blasphemy, I know. Why would anyone in their right state of mind do such thing?&lt;/p>
&lt;p>Unfortunately, people outside the tech-world, and ISV who provides them with software, are still stuck with Windows (due to ignorance or lack of choice).&lt;/p>
&lt;p>If you want to equip someone in that world with a great and light laptop, a MacBook Air is a pretty good choice. It’s affordable, and since you will be installing a &lt;strong>pure&lt;/strong> (i.e. non vendor/bloatware infected version) of Windows, it makes a pretty good Windows machine (an oxymoron, I know).&lt;/p></description></item><item><title>Are They Using Google Apps?</title><link>https://vpetersson.com/2013/08/02/are-they-using-google-apps/</link><pubDate>Fri, 02 Aug 2013 15:21:24 +0300</pubDate><guid>https://vpetersson.com/2013/08/02/are-they-using-google-apps/</guid><description>&lt;p>In the past few months, I’ve started moved most of my conference calls from Skype to Google Hangout. The video and audio quality is a lot better, and it’s more convenient to manage. There is however one problem: If the other party isn’t using Google Apps or Gmail, they cannot join the Hangout. This has delayed many conferences calls for me.&lt;/p>
&lt;p>To resolve this issue, I wrote a simple web app called &lt;a href="http://aretheyusinggoogleapps.lab.vpetersson.com/">Are They Using Google Apps?&lt;/a>. You can enter either the domain, or the email address, and the tool will tell you if the other party is using Google Apps (by simply checking the MX records).&lt;/p></description></item><item><title>My presentation from Pi and More 3</title><link>https://vpetersson.com/2013/06/15/my-presentation-from-pi-and-more-3/</link><pubDate>Sat, 15 Jun 2013 15:31:36 +0300</pubDate><guid>https://vpetersson.com/2013/06/15/my-presentation-from-pi-and-more-3/</guid><description>&lt;p>I just finished delivering presentation from &lt;a href="http://www.piandmore.de/">Pi and More 3&lt;/a> in Trier, Germany. Here’s the slide deck.&lt;/p>
&lt;p>&lt;strong>Update:&lt;/strong> As it turns out, the presentation was also recorded. You can find the video &lt;a href="https://www.youtube.com/watch?v=uld1nRJtP_o&amp;amp;feature=player_detailpage#t=1694s">here&lt;/a>.&lt;/p></description></item><item><title>Join me on Pi and More on June 15</title><link>https://vpetersson.com/2013/06/01/join-me-on-pi-and-more-on-june-15/</link><pubDate>Sat, 01 Jun 2013 10:29:07 +0300</pubDate><guid>https://vpetersson.com/2013/06/01/join-me-on-pi-and-more-on-june-15/</guid><description>&lt;p>On June 15 I will be speaking at Pi and More in at Trier University in Germany.&lt;/p>
&lt;p>The event is all about Raspberry Pi, and I’m really excited to be part of the event.&lt;/p>
&lt;p>My presentation will be about Screenly and how we built the most popular digital signage solution for the Raspberry Pi thanks to the awesome Raspberry Pi community.&lt;/p>
&lt;p>You can read more about the event &lt;a href="http://www.piandmore.de/">here&lt;/a> (German). The event is free to attend, and you can sign up &lt;a href="https://piandmore3.eventbrite.de/">here&lt;/a>.&lt;/p></description></item><item><title>Major update to Screenly</title><link>https://vpetersson.com/2013/02/21/major-update-to-screenly/</link><pubDate>Thu, 21 Feb 2013 15:34:41 +0200</pubDate><guid>https://vpetersson.com/2013/02/21/major-update-to-screenly/</guid><description>&lt;p>&lt;img
src="https://vpetersson.com/wp-content/uploads/2013/02/Screenly_OSE_overview-600x432.png"
alt="Screenly_OSE_overview"
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>I’m excited to announce that we’ve released a major update to Screenly. As you can see in the screenshot above, we’ve given the user interface a major overhaul. The workflow is significantly more streamlined, and a lot prettier.&lt;/p>
&lt;p>You can take the new interface for a spin &lt;a href="http://ose.demo.screenlyapp.com">here&lt;/a>. For upgrade instructions, please take a look &lt;a href="http://www.screenlyapp.com/ose.html#upgrade">here&lt;/a>.&lt;/p>
&lt;p>More information about Screenly is available &lt;a href="http://www.screenlyapp.com">here&lt;/a>.&lt;/p></description></item><item><title>The world's shittiest monitor: Acer S235HLBII 23"</title><link>https://vpetersson.com/2013/02/19/the-worlds-shittiest-monitor-acer-s235hlbii-23/</link><pubDate>Tue, 19 Feb 2013 12:34:36 +0200</pubDate><guid>https://vpetersson.com/2013/02/19/the-worlds-shittiest-monitor-acer-s235hlbii-23/</guid><description>&lt;p>Ok, this a long rant, but I just need to warn anyone else looking to buy this monitor. It’s the worst piece of garbage I’ve ever owned. If you’re thinking about buy one, just don’t. Pretty much anything else you can get your hands on is better.&lt;/p>
&lt;p>tl;dr&lt;/p>
&lt;p>On paper, it’s a pretty decent monitor. It’s a regular 23″ monitor with 2x HDMI input and one VGA. It seemed pretty ideal, since I was primarily looking to use it for my Raspberry Pi labs. For me, monitors are pretty disposable, and I don’t pay much attention to them these days.&lt;/p></description></item><item><title>Introducing Puppet-hosting -- host websites with sanity</title><link>https://vpetersson.com/2013/02/03/introducing-puppet-hosting-host-websites-with-sanity/</link><pubDate>Sun, 03 Feb 2013 22:21:00 +0200</pubDate><guid>https://vpetersson.com/2013/02/03/introducing-puppet-hosting-host-websites-with-sanity/</guid><description>&lt;p>Since we started WireLoad, the number of websites we host have grown steadily. It’s a myriad of sites, ranging from product sites to websites belonging to friends and family. Many of them are WordPress-sites (just like this one), while others are more complicated. Some use databases, while others don’t. Since we’re often in a rush when we set up a site, documentation often suffers, and you have to spend time later on trying to decipher how things were set up.&lt;/p></description></item><item><title>Screenly now has its own website</title><link>https://vpetersson.com/2013/01/22/screenly-now-has-its-own-website/</link><pubDate>Tue, 22 Jan 2013 16:52:48 +0200</pubDate><guid>https://vpetersson.com/2013/01/22/screenly-now-has-its-own-website/</guid><description>&lt;p>I’m astonished by the amount of traction we’ve been seeing for Screenly. The Open Source-version is growing rapidly in traction, while the wait-list for the Pro-version is growing.&lt;/p>
&lt;p>Given the amount of traction, we’ve now allocated more resources from WireLoad towards Screenly. The first priority right now is a cleanup of the code base and to improve the user interface for Screenly OSE.&lt;/p>
&lt;p>Since I’ve been receiving a lot of emails from the contact form on my website about Screenly, we felt that it was important to push out a website for Screenly. We’ve now done this, and you can find it at &lt;a href="http://www.screenlyapp.com/">ScreenlyApp.com&lt;/a>. On the website, you’ll find more information about Screenly, along with a live-demo of Screenly OSE.&lt;/p></description></item><item><title>Cloud lifecycle: How to deal with decommissioned nodes</title><link>https://vpetersson.com/2013/01/14/cloud-lifecycle-how-to-deal-with-decommissioned-nodes/</link><pubDate>Mon, 14 Jan 2013 12:54:48 +0200</pubDate><guid>https://vpetersson.com/2013/01/14/cloud-lifecycle-how-to-deal-with-decommissioned-nodes/</guid><description>&lt;p>There’s no doubt that virtualization and the cloud is here to stay. So you migrated your entire architecture to the cloud and everyone is happy. Eventually, you’ll come to a point where you start decommission servers.&lt;/p>
&lt;p>If this was an on-premise server, all you had to do was to powered it off and perhaps put it to use elsewhere (or if virtualized, simply delete it). In the cloud however, it’s tempting to do the same.&lt;/p></description></item><item><title>Axis M1114 + mplayer = Win</title><link>https://vpetersson.com/2013/01/09/axis-m1114-mplayer-win/</link><pubDate>Wed, 09 Jan 2013 20:53:00 +0200</pubDate><guid>https://vpetersson.com/2013/01/09/axis-m1114-mplayer-win/</guid><description>&lt;p>I’m a long-time fan of Axis’ IP cameras. I’ve played with a few other IP cameras too, but I’ve never come across a camera with the performance and stability of Axis’ products.&lt;/p>
&lt;p>Recently I deployed two &lt;a href="http://www.axis.com/products/cam_m1114/">Axis M1114&lt;/a>-cameras. It’s an impressive device with built in motion sensor (that can record to a SMB or FTP) with Power over Ethernet (PoE). The optics in the device is equally impressive, as it capable of recording data in down to 0.6 Lux.&lt;/p></description></item><item><title>HP ProLiant-hacking. Powerful rack server on the cheap.</title><link>https://vpetersson.com/2012/12/22/hp-proliant-hacking-powerful-rack-server-on-the-cheap/</link><pubDate>Sat, 22 Dec 2012 22:14:58 +0200</pubDate><guid>https://vpetersson.com/2012/12/22/hp-proliant-hacking-powerful-rack-server-on-the-cheap/</guid><description>&lt;p>Rack-servers make your life easier. They allow you to stack a bunch of servers into a small area while still keeping them well organized. Unfortunately, most server-vendors know this, and will charge you an arm and a leg for them. I recently had to build up a small virtualization-farm, and I really wanted to keep all server in a rack without having to spend a fortune on servers.&lt;/p>
&lt;p>Enter &lt;a href="http://h10010.www1.hp.com/wwpc/us/en/sm/WF06b/15351-15351-3328412-241644-3328421-5075933-5173493-5173494.html?dnr=1">HP ProLiant DL-120&lt;/a>. It might not look too impressive, but for the price-point (I paid ~$800 each), it’s not bad 1U server. However, we haven’t started with beefing it up.&lt;/p></description></item><item><title>My presentation deck from gSocial</title><link>https://vpetersson.com/2012/11/14/my-presentation-deck-from-gsocial/</link><pubDate>Wed, 14 Nov 2012 23:52:36 +0200</pubDate><guid>https://vpetersson.com/2012/11/14/my-presentation-deck-from-gsocial/</guid><description>&lt;p>Yesterday I delivered a speech at the gSocial. If you haven’t heard of gSocial, it is the largest independent event for the Google Apps Channel Community. My talk was about email migration, and what we have learned since launching YippieMove back in 2008.&lt;/p>
&lt;p>&lt;script async class="speakerdeck-embed" data-id="e003f6501017013006fa12313d189db6" data-ratio="1.33333333333333" src="https://speakerdeck.com/assets/embed.js">&lt;/script>&lt;/p></description></item><item><title>Screenly Pro is now in beta</title><link>https://vpetersson.com/2012/10/16/screenly-pro-is-now-in-beta/</link><pubDate>Tue, 16 Oct 2012 17:14:51 +0300</pubDate><guid>https://vpetersson.com/2012/10/16/screenly-pro-is-now-in-beta/</guid><description>&lt;p>A while ago I started hacking on Screenly, a digital signage solution for the Raspberry Pi. It has been a huge success with a lot of traction from the Raspberry Pi community.&lt;/p>
&lt;p>The open source edition of Screenly (a.k.a. Screenly OSE) is an excellent tool if you want to setup a single sign. All you need is a Raspberry Pi ($35), some cables, and a monitor. You can literally be up and running in five minutes (not including the time it takes to flash Rasbian to the SD-card).&lt;/p></description></item><item><title>Join me at gSocial 2.0</title><link>https://vpetersson.com/2012/10/14/join-me-at-gsocial-2-0/</link><pubDate>Sun, 14 Oct 2012 17:07:34 +0300</pubDate><guid>https://vpetersson.com/2012/10/14/join-me-at-gsocial-2-0/</guid><description>&lt;p>&lt;img
src="https://vpetersson.com/wp-content/uploads/2012/10/gSocial-NEW.jpg"
alt=""
title="gSocial"
loading="lazy"
decoding="async"
/>&lt;br>
&lt;a href="http://gsocialconference.com/">gSocial&lt;/a> is a conference for Google Apps resellers and ISVs. I attended the event last year, and I was really impressed. I’m back for the conference this year, but I will aslo be giving a talk.&lt;/p>
&lt;p>My talk will be on the topic of email migration and what we’ve learned over the years working with &lt;a href="http://www.yippiemove.com/">YippieMove&lt;/a>.&lt;/p>
&lt;p>The event also happens to have great timing, since we are just about to release YippieMove’s API, and we’d love talk with the bright people at gSocial about it.&lt;/p></description></item><item><title>My presentation deck from NoSQL Roadshow (Basel, Switzerland).</title><link>https://vpetersson.com/2012/08/30/my-presentation-deck-from-nosql-roadshow-basel-switzerla/</link><pubDate>Thu, 30 Aug 2012 15:00:41 +0300</pubDate><guid>https://vpetersson.com/2012/08/30/my-presentation-deck-from-nosql-roadshow-basel-switzerla/</guid><description>&lt;p>&lt;script async class="speakerdeck-embed" data-id="503f2c172d2b07000203cd89" data-ratio="1.7777777777777777" src="https://speakerdeck.com/assets/embed.js">&lt;/script>&lt;/p></description></item><item><title>Featured in SCU's Alumni Entrepreneur Spotlight</title><link>https://vpetersson.com/2012/08/23/featured-in-scus-alumni-entrepreneur-spotlight/</link><pubDate>Thu, 23 Aug 2012 09:53:10 +0300</pubDate><guid>https://vpetersson.com/2012/08/23/featured-in-scus-alumni-entrepreneur-spotlight/</guid><description>&lt;p>A few weeks ago, I was contacted by &lt;a href="http://scu.edu/">SCU&lt;/a>‘s Center for Innovation and Entrepreneurship (CIE). Apparently I was mentioned in &lt;a href="http://www.scu.edu/scm/summer2012/index.cfm">Santa Clara Magazine&lt;/a> about being featured on TechCrunch.&lt;/p>
&lt;p>CIE wanted me to write an article about my background and my experience as an entrepreneur. I was happy to share that with them, and the &lt;a href="http://www.scu.edu/business/cie/alumni_and_friends/Viktor-Petersson.cfm">article&lt;/a> went live today.&lt;/p></description></item><item><title>Complete refactoring of 'csconnect'</title><link>https://vpetersson.com/2012/08/19/complete-refactoring-of-csconnect/</link><pubDate>Sun, 19 Aug 2012 11:06:36 +0300</pubDate><guid>https://vpetersson.com/2012/08/19/complete-refactoring-of-csconnect/</guid><description>&lt;p>A few months back I wrote &lt;a href="https://github.com/vpetersson/csconnect">csconnect&lt;/a> to make it easier for myself to logon to our Cloud Sigma-nodes. It’s a pretty simple application. All it does is to poll Cloud Sigma’s API and lookup the IPs for the node(s) specified.&lt;/p>
&lt;p>Yet, since this was one of the first Python-programs I ever wrote (beyond Hello World), the state of the code was pretty terrible. Last night I took on myself to rewrite the program from the ground up.&lt;/p></description></item><item><title>Fixing the broken Munin Nginx-plugins in Ubuntu (optional: with Puppet)</title><link>https://vpetersson.com/2012/08/16/fixing-the-broken-nginx-plugins-in-ubuntu-optional-with/</link><pubDate>Thu, 16 Aug 2012 21:58:13 +0300</pubDate><guid>https://vpetersson.com/2012/08/16/fixing-the-broken-nginx-plugins-in-ubuntu-optional-with/</guid><description>&lt;p>I love Munin. It’s a great monitoring tool, quick to set up, and doesn’t come with too many bloated requirements. It’s also very flexible and easy to write plugins for.&lt;/p>
&lt;p>On Ubuntu, Munin comes with most (non-custom) plugins I use. Unfortunately, the Nginx-plugins (nginx_status and nginx_request) are incorrectly documented. In the header of the plugins, one can read that the default URL is &lt;code>http://localhost/nginx_status&lt;/code>, which certainly makes sense. The plugin even documents how one were to set this up. &lt;strong>However&lt;/strong>, the plugin logic tells a different story. In nginx_requests, we can see that it relies on ‘hostname -f’ to look up the hostname that it connects to (which in 99.999% of all production servers isn’t ‘localhost’).&lt;/p></description></item><item><title>Time Machine on Mountain Lion</title><link>https://vpetersson.com/2012/08/15/time-machine-on-mountain-lion/</link><pubDate>Wed, 15 Aug 2012 08:34:43 +0300</pubDate><guid>https://vpetersson.com/2012/08/15/time-machine-on-mountain-lion/</guid><description>&lt;p>&lt;img
src="https://vpetersson.com/wp-content/uploads/2012/08/Time-Machine.png"
alt=""
title="Time Machine"
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>I’m not sure if I’m the only one having issues with Time Machine, but it has been completely broken for me since I upgraded to Mountain Lion. As you can see above, Time Machine basically freezes and reports outrageous ETA statistic.&lt;/p>
&lt;p>What is strange is that I did a fresh install. I do have FileVault2 activated on both the Time Machine-drive (which is brand new) and my internal drive. That should work fine, as I used the same setup on Lion.&lt;/p></description></item><item><title>My latest project: Screenly</title><link>https://vpetersson.com/2012/08/01/my-latest-project-screenly/</link><pubDate>Wed, 01 Aug 2012 14:10:17 +0300</pubDate><guid>https://vpetersson.com/2012/08/01/my-latest-project-screenly/</guid><description>&lt;p>One of the most hyped pieces of hardware in recent time is the &lt;a href="http://www.raspberrypi.org/">Raspberry Pi&lt;/a>. It is hyped for a very good reason. For $35 you get a fully functioning Linux-computer which is about the size of a deck of cards. While there have been plenty of micro-computers around in the past, none at this extremely low price point. The Raspberry Pi is simply any DIY’ers wet dream.&lt;/p>
&lt;p>After months of wait, I finally got mine a few weeks back. My first project was &lt;strong>Screenly: A digital signage platform built for the Raspberry Pi&lt;/strong>.&lt;/p></description></item><item><title>A permanent fix for Apple's "play/pause"-hijacking (and use Spotify)</title><link>https://vpetersson.com/2012/07/14/a-permanent-fix-for-apples-playpause-hijacking-and-use-s/</link><pubDate>Sat, 14 Jul 2012 22:57:02 +0300</pubDate><guid>https://vpetersson.com/2012/07/14/a-permanent-fix-for-apples-playpause-hijacking-and-use-s/</guid><description>&lt;p>I hate iTunes with passion. It’s bloated and annoying. However, since it is a major revenue stream for Apple, they try hard to push it into your face as often as possible.&lt;/p>
&lt;p>Since I started using Spotify a few years back, I don’t think I’ve used iTunes to play music once (only to upgrade iOS-devices before the over-the-air-updates came out).&lt;/p>
&lt;p>As long as you don’t touch any other Apple products, Spotify will take over the media control-keys, but as soon as you start one of Apple products (like Keynote or Quicktime), Apple hijacks the media control-keys. It’s beyond frustrating. Instead of starting (or pausing) the music in Spotify, iTunes pops up and it makes me furious every time.&lt;/p></description></item><item><title>Join me at NoSQL Roadshow in Basel!</title><link>https://vpetersson.com/2012/07/10/join-me-at-nosql-roadshow-in-basel/</link><pubDate>Tue, 10 Jul 2012 12:27:59 +0300</pubDate><guid>https://vpetersson.com/2012/07/10/join-me-at-nosql-roadshow-in-basel/</guid><description>&lt;p>&lt;img
src="https://vpetersson.com/wp-content/uploads/2012/07/nosql-basel-2012-600x109.png"
alt=""
title="nosql-basel-2012"
loading="lazy"
decoding="async"
/>&lt;/p>
&lt;p>If you have nothing booked for August 30th, I suggest you mark it ‘busy’ in your calendar, as that’s the date for &lt;a href="http://nosqlroadshow.com/">NoSQL Road Show&lt;/a> in Basel, Switzerland.&lt;/p>
&lt;p>At the event, I will be giving a presentation about MongoDB titled “&lt;a href="http://nosqlroadshow.com/nosql-basel-2012/presentation/MongoDB's%20Replica%20Sets%20-Painless%20scaling%20and%20High%20Availability%20(HA)">MongoDB’s Replica Sets – Painless scaling and High Availability (HA)&lt;/a>.”&lt;/p>
&lt;p>As the title implies, it is a talk about MongoDB’s Replica Sets. I will demonstrate how easy it is to setup, and also talk about lessons I’ve learned using MongoDB.&lt;/p></description></item><item><title>Access control in Bottle (by IP)</title><link>https://vpetersson.com/2012/06/26/access-control-in-bottle-by-ip/</link><pubDate>Tue, 26 Jun 2012 20:46:26 +0300</pubDate><guid>https://vpetersson.com/2012/06/26/access-control-in-bottle-by-ip/</guid><description>&lt;p>If you haven’t heard of &lt;a href="http://bottlepy.org/docs/stable/">Bottle&lt;/a>, it’s a lightweight web framework for Python. It is perfect if you have a small project that requires a web interface, but you don’t want to go all in with a complex framework like Django.&lt;/p>
&lt;p>Since Bottle is so lightweight, it doesn’t always have all the features you need built-in. One thing that I was missing was access control. For instance, what if you want to limit access to an admin-page to a certain IP? Sure, if you’re running you’re app behind a full-fledge webserver like Nginx or Apache, you can use it to limit access, but that doesn’t work if you’re deploying to something like &lt;a href="http://www.heroku.com/">Heroku&lt;/a>.&lt;/p></description></item><item><title>Munin-plugin for Zendesk</title><link>https://vpetersson.com/2012/06/23/munin-plugin-for-zendesk/</link><pubDate>Sat, 23 Jun 2012 17:53:24 +0300</pubDate><guid>https://vpetersson.com/2012/06/23/munin-plugin-for-zendesk/</guid><description>&lt;p>In recent time, I’ve really started to appreciate Munin. I’ve deployed Munin in multiple architectures already, and I still get impressed every time by how easy it is to setup.&lt;/p>
&lt;p>I also really like how easy it is to write plugins. For a crash-course in writing plugins for Munin, take a look at &lt;a href="http://munin-monitoring.org/wiki/HowToWritePlugins">this&lt;/a> page.&lt;/p>
&lt;p>Since I first deployed Munin to monitor &lt;a href="http://www.yippiemove.com">YippieMove&lt;/a>‘s architecture, I’ve written a handful of custom plugins to visualize various datapoints. However, one thing I’ve been wanting for some time was to a tool to visualize the volume of support tickets. Since we use &lt;a href="http://www.zendesk.com/">Zendesk&lt;/a> for support and the fact that they already got an API, all data I needed was already accessible.&lt;/p></description></item><item><title>New project: csconnect.py</title><link>https://vpetersson.com/2012/05/15/new-project-csconnect-py/</link><pubDate>Tue, 15 May 2012 22:32:10 +0300</pubDate><guid>https://vpetersson.com/2012/05/15/new-project-csconnect-py/</guid><description>&lt;p>In the last few years, &lt;a href="http://wireload.net">we&lt;/a>‘ve spent a lot of time migrating away from all our physical servers and into the cloud. This has been a very interesting task, that presented its own set of challenges, but it has certainly been worth it.&lt;/p>
&lt;p>One of the issues though with working in a public cloud environment is that you don’t necessarily have the same static IP configuration as you do with dedicated hardware. When you power off a node, and spin it back up (or clone a new server for that sake), it’s likely that it will switch IP. This is at least the case with CloudSigma, which is what we are using for a large part of our server needs.&lt;/p></description></item><item><title>Deploying FreeBSD's Ports to a large number of nodes</title><link>https://vpetersson.com/2012/05/07/deploying-freebsds-ports-to-a-large-number-of-nodes/</link><pubDate>Mon, 07 May 2012 16:22:24 +0300</pubDate><guid>https://vpetersson.com/2012/05/07/deploying-freebsds-ports-to-a-large-number-of-nodes/</guid><description>&lt;p>Some time ago, I posted a &lt;a href="http://serverfault.com/questions/364556/how-do-you-manage-and-deploy-freebsds-ports-in-a-large-environment">question&lt;/a> on Serverfault about how people managed and deployed ports in a large environment. Despite a fair number of comment, nobody seemed to really have the anser to this (or at least that suited my needs). It simply appears to be the case that the built-in tools in FreeBSD (primarily portsnap and portupgrade) are not built for a shared ports-tree.&lt;/p>
&lt;p>Having a local ports-tree on each node seemed both wasteful and inefficient to me, yet this what was I had to resort to.&lt;/p></description></item><item><title>Monitor Memcached with Munin (on Ubuntu)</title><link>https://vpetersson.com/2012/04/14/monitor-memcached-with-munin-on-ubuntu/</link><pubDate>Sat, 14 Apr 2012 21:41:29 +0300</pubDate><guid>https://vpetersson.com/2012/04/14/monitor-memcached-with-munin-on-ubuntu/</guid><description>&lt;p>Let me first admit that I am new to Munin. I’ve played around with most monitoring tool, but never Munin for some reason. I really don’t know why, since it appears to be a great tool. As a result, this might be obvious to seasoned Munin-users, but it wasn’t to me at least.&lt;/p>
&lt;p>It appear as most stock-plugins are configured in &lt;em>/etc/munin/plugin-conf.d/munin-node&lt;/em>. This isn’t the case for the Memcached plugin. Hence this post.&lt;/p></description></item><item><title>I'm interviewed by City Network</title><link>https://vpetersson.com/2012/03/24/im-interviewed-by-city-network/</link><pubDate>Sat, 24 Mar 2012 16:50:45 +0200</pubDate><guid>https://vpetersson.com/2012/03/24/im-interviewed-by-city-network/</guid><description>&lt;p>This week I was &lt;a href="http://www.citynetwork.se/kunder/wireload-irriterande-bra-mjukvara-och-tjanster/">interviewed&lt;/a> (Swedish) by the Swedish hosting provider City Network for their blog. In the article I talk about the background of &lt;a href="http://wireload.net">WireLoad&lt;/a> and a bit about our network architecture and philosophy.&lt;/p></description></item><item><title>How to quickly slice wallpapers for a dual-screen setup</title><link>https://vpetersson.com/2012/03/09/how-to-quickly-slice-wallpapers-for-dual-screens/</link><pubDate>Fri, 09 Mar 2012 11:18:18 +0200</pubDate><guid>https://vpetersson.com/2012/03/09/how-to-quickly-slice-wallpapers-for-dual-screens/</guid><description>&lt;p>In this day and age, many people use multi screens in their setup. I’m one of those people. One thing that really bugs me in OS X however, is that you cannot set one wallpaper to expand beyond one screen.&lt;/p>
&lt;p>Let’s say you have two screens with 1920×1080 resolution and you have found a wallpaper of the appropriate dimension (ie. 3840×1080). &lt;a href="http://interfacelift.com/wallpaper/downloads/date/2_screens/1920x1080/">Interfacelift&lt;/a> got plenty of them.&lt;/p>
&lt;p>Now, in order to properly use these, you need to slice the image into two images (one for each screen). Sure, you can do this in Photoshop, but that feels like an overkill.&lt;/p></description></item><item><title>The 'pg_ha' project has moved to Github</title><link>https://vpetersson.com/2012/02/27/the-pgha-project-has-moved-to-github/</link><pubDate>Mon, 27 Feb 2012 20:24:28 +0200</pubDate><guid>https://vpetersson.com/2012/02/27/the-pgha-project-has-moved-to-github/</guid><description>&lt;p>I recently posted a rather lengthy article titled “High availability with PostgreSQL, PGPool-II and FreeBSD.” The article was a bi-product of setting this up and the blog-post was simply my own notes with some polish.&lt;/p>
&lt;p>Little did I know when I started this that I would end up having to write this much code to make the system behave the way I wanted. While crafting the article, I decided that the most logical thing would be to create a Github repository with the scripts for easy maintenance.&lt;/p></description></item><item><title>Comparing MongoDB write-performance on CentOS, FreeBSD and Ubuntu</title><link>https://vpetersson.com/2012/02/13/comparing-mongodb-write-performance-on-centos-freebsd-an/</link><pubDate>Mon, 13 Feb 2012 21:20:07 +0200</pubDate><guid>https://vpetersson.com/2012/02/13/comparing-mongodb-write-performance-on-centos-freebsd-an/</guid><description>&lt;p>Recently I wrote a post titled ‘&lt;a href="https://vpetersson.com/2012/01/29/notes-on-mongodb-gridfs-and-sharding-in-the-cloud/">Notes on MongoDB, GridFS, sharding and deploying in the cloud&lt;/a>.’ I talked about various aspects of running MongoDB and how to scale it. One thing we really didn’t take into consideration was if MongoDB performed differently on different operating systems. I naively assumed that it would perform relatively similar. That was a very incorrect assumption. Here are my findings when I tested the write-performance.&lt;/p></description></item><item><title>FreeBSD failover in the cloud -- UCARP to the rescue</title><link>https://vpetersson.com/2012/02/11/freebsd-failover-in-the-cloud-ucarp-to-the-rescue/</link><pubDate>Sat, 11 Feb 2012 17:32:15 +0200</pubDate><guid>https://vpetersson.com/2012/02/11/freebsd-failover-in-the-cloud-ucarp-to-the-rescue/</guid><description>&lt;p>I’m a big fan of FreeBSD. However, as painful it is to admit, it isn’t always the best OS to run in the cloud. Compared to Linux, you will get worse network and disk performance even with Virtio installed. There are also other issues. For instance, it is likely that you won’t get &lt;a href="http://www.freebsd.org/doc/handbook/carp.html">CARP&lt;/a> to fully work (while this works perfectly fine with OpenBSD’s CARP, and Linux’s VRRP). I have &lt;a href="https://vpetersson.com/2011/03/23/how-to-get-freebsds-carp-working-on-cloudsigma/">written about workarounds&lt;/a> for this issue in the past, but they do not seem to work equally well in FreeBSD 9.0.&lt;/p></description></item><item><title>The story of Devify and Red iGone</title><link>https://vpetersson.com/2012/02/09/weve-open-sourced-red-igone/</link><pubDate>Thu, 09 Feb 2012 11:38:19 +0200</pubDate><guid>https://vpetersson.com/2012/02/09/weve-open-sourced-red-igone/</guid><description>&lt;p>About two years ago I started working on a project called &lt;a href="http://www.redigone.com">Red iGone&lt;/a> together with a &lt;a href="http://stefan.blomqwist.com/">friend&lt;/a> and we started the company &lt;a href="http://devify.com/">Devify&lt;/a>. The objective of the first project was simple — we wanted to make it easy to remove red eyes from photos. We didn’t see any good solution in the market place that was both fast and easy to use. Red iGone was born as a web-app and it did pretty well for itself. We got coverage from some semi-big blogs and traffic picked up.&lt;/p></description></item><item><title>Interviewed by TechCrunch</title><link>https://vpetersson.com/2012/02/07/interviewed-by-techcrunch/</link><pubDate>Tue, 07 Feb 2012 21:14:09 +0200</pubDate><guid>https://vpetersson.com/2012/02/07/interviewed-by-techcrunch/</guid><description>&lt;p>I’ve already posted about the fact that we’ve released a massive update to &lt;a href="http://www.yippiemove.com">YippieMove&lt;/a>. Today the legendary Silicon Valley-blog TechCrunch covered this in form of an interview with me.&lt;/p>
&lt;p>You can read the full interview &lt;a href="http://techcrunch.com/2012/02/07/yippiemove-wants-to-become-the-twilio-of-email-migration/">here&lt;/a>.&lt;/p></description></item><item><title>Introducing the brand new YippieMove</title><link>https://vpetersson.com/2012/01/31/introducing-the-brand-new-yippiemove/</link><pubDate>Tue, 31 Jan 2012 14:07:26 +0200</pubDate><guid>https://vpetersson.com/2012/01/31/introducing-the-brand-new-yippiemove/</guid><description>&lt;p>&lt;img
src="https://vpetersson.com/wp-content/uploads/2012/01/frontpage_small-600x432.png"
alt="The new YippieMove front-page"
title="The new YippieMove front-page"
loading="lazy"
decoding="async"
/>&lt;br>
A large part of last year spent working on a major update to YippieMove. The new YippieMove is a complete redesign, from the bottom-up. That means new logo, new user interface and an improved back-end. It has never been easier to move email data across multiple email accounts and services. We’re really proud of this release, and we think we’ve made a major improvement to what was already great product.&lt;/p></description></item><item><title>Notes on MongoDB, GridFS, sharding and deploying in the cloud</title><link>https://vpetersson.com/2012/01/29/notes-on-mongodb-gridfs-and-sharding-in-the-cloud/</link><pubDate>Sun, 29 Jan 2012 14:24:18 +0200</pubDate><guid>https://vpetersson.com/2012/01/29/notes-on-mongodb-gridfs-and-sharding-in-the-cloud/</guid><description>&lt;p>&lt;a href="http://wireload.net">We&lt;/a>‘ve been using MongoDB in production for about six months with &lt;a href="http://www.yippiemove.com">YippieMove&lt;/a>. It’s been an interesting experience and we’ve learned a lot.&lt;/p>
&lt;p>Contrary to many MongoDB deployments, we primarily use it for storing files in GridFS. We switched over to MongoDB after searching for a good distributed file system for years. Prior to MongoDB we used a regular NFS share, sitting on top of a &lt;a href="https://vpetersson.com/2010/09/27/setting-up-a-redundant-nas-with-hast-with-carp/">HAST&lt;/a>-device. That worked great, but it didn’t allow us to scale horizontally the way a distributed file system allows.&lt;/p></description></item><item><title>Countries and coffee consumption.</title><link>https://vpetersson.com/2012/01/28/countries-and-coffee-consumption/</link><pubDate>Sat, 28 Jan 2012 13:37:22 +0200</pubDate><guid>https://vpetersson.com/2012/01/28/countries-and-coffee-consumption/</guid><description>&lt;p>I’m a coffee junkie. Like many of my fellow geeks, I consume way more than the average person. On a normal day, I drink somewhere between 5-10 cups perhaps. How much is that in relation to the population at large?&lt;/p>
&lt;p>To find the answer, let’s turn to Wikipedia’s &lt;a href="http://en.wikipedia.org/wiki/List_of_countries_by_coffee_consumption_per_capita">List of countries by coffee consumption per capita&lt;/a>. Let’s assume that all the data in there are true. Let’s also make the assumption that one serving of coffee is about 6 grams of coffee beans.&lt;/p></description></item><item><title>Benchmarking and tuning FreeBSD's VirtIO network driver.</title><link>https://vpetersson.com/2012/01/24/benchmarking-and-tuning-freebsds-virtio-network-driver/</link><pubDate>Tue, 24 Jan 2012 20:34:54 +0200</pubDate><guid>https://vpetersson.com/2012/01/24/benchmarking-and-tuning-freebsds-virtio-network-driver/</guid><description>&lt;p>In the &lt;a href="https://vpetersson.com/2012/01/23/benchmarking-virtual-network-drivers-under-freebsd-9/">previous post&lt;/a>, I benchmarked three different virtual network drivers under FreeBSD. The clear winner was, perhaps not very surprisingly, the VirtIO network driver.&lt;/p>
&lt;p>In this article I will do some further benchmarking and try to optimize the driver further. Similarly to in the last post, I will use two FreeBSD 9.0 boxes with 2GB RAM and 2GHz CPU. Both nodes are set up with a private network and running in a public cloud (at CloudSigma).&lt;/p></description></item><item><title>Benchmarking (virtual) network drivers under FreeBSD 9</title><link>https://vpetersson.com/2012/01/23/benchmarking-virtual-network-drivers-under-freebsd-9/</link><pubDate>Mon, 23 Jan 2012 23:02:32 +0200</pubDate><guid>https://vpetersson.com/2012/01/23/benchmarking-virtual-network-drivers-under-freebsd-9/</guid><description>&lt;p>With the launch of FreeBSD 9, I was curious to learn how the VirtIO driver performed. I’ve seen a significant boost in disk performance, but how about the network driver?&lt;/p>
&lt;p>Luckily, that’s rather easy to find the answer to. I spun up two FreeBSD 9 nodes on &lt;a href="http://cloudsigma.com/">CloudSigma&lt;/a> and configured them with VirIO (just like in &lt;a href="https://vpetersson.com/2012/01/16/how-to-upgrade-freebsd-8-2-to-freebsd-9-0-with-virtio/">this guide&lt;/a>) and a private network. Once they were up and running, I installed &lt;a href="http://sourceforge.net/projects/iperf/">Iperf&lt;/a> and started testing away.&lt;/p></description></item><item><title>How to upgrade FreeBSD 8.2 to FreeBSD 9.0 with Virtio</title><link>https://vpetersson.com/2012/01/16/how-to-upgrade-freebsd-8-2-to-freebsd-9-0-with-virtio/</link><pubDate>Mon, 16 Jan 2012 18:23:43 +0200</pubDate><guid>https://vpetersson.com/2012/01/16/how-to-upgrade-freebsd-8-2-to-freebsd-9-0-with-virtio/</guid><description>&lt;p>Some time ago, I wrote about &lt;a href="https://vpetersson.com/2011/10/20/how-to-use-virtio-on-freebsd-8-2/">how to use Virtio with FreeBSD 8.2&lt;/a>. As I pointed out in the article, the performance was not nearly as good in FreeBSD 8.2 as it was in 9.0-RC1. Hence I wanted to get all my nodes over to 9.0 as soon as possible to take use of the massive boost in I/O performance.&lt;/p>
&lt;p>In this article I will walk you through the process of updating an existing system from FreeBSD 8.2 (without Virtio) to 9.0 with Virtio.&lt;/p></description></item><item><title>Introducing KISS-surveillance -- The dead simple surveillance solution</title><link>https://vpetersson.com/2012/01/08/introducing-kiss-surveillance-the-dead-simple-surveillan/</link><pubDate>Sun, 08 Jan 2012 22:45:12 +0200</pubDate><guid>https://vpetersson.com/2012/01/08/introducing-kiss-surveillance-the-dead-simple-surveillan/</guid><description>&lt;p>You’ve probably already noticed that I’ve used &lt;a href="http://www.zoneminder.com/">ZoneMinder&lt;/a> a bit. I published a few &lt;a href="https://vpetersson.com/tag/zoneminder/">blog-posts&lt;/a> on how to set up ZoneMinder, and even posted full &lt;a href="https://vpetersson.com/open-source/zoneminder-virtual-appliance/">virtual appliance&lt;/a> for ZoneMinder.&lt;/p>
&lt;p>The problem with ZoneMinder though, in my opinion, is that it is overkill for most users. Yes, it comes with some really cool features, but if all you want to do is to snap one image per second from an IP-camera for instance, it is way too complex. Don’t get me wrong, ZoneMinder is a great application if you have complicated surveillance needs. This just wasn’t my case.&lt;/p></description></item><item><title>MongoDB and logrotate</title><link>https://vpetersson.com/2011/12/22/mongodb-and-logrotate/</link><pubDate>Thu, 22 Dec 2011 21:26:08 +0200</pubDate><guid>https://vpetersson.com/2011/12/22/mongodb-and-logrotate/</guid><description>&lt;p>I’ve been using MongoDB now for some time in production. It’s great, and I really love how easy it is to set up and scale with replica sets etc.&lt;/p>
&lt;p>There is one thing that bugs me with MongoDB though. Instead of following the praxis of using Logrotate, they’ve decided to re-invent the wheel by building in a log rotation-feature (that is less powerful than Logrotate). The documentation on MongoDB’s log rotation-feature can be found &lt;a href="http://www.mongodb.org/display/DOCS/Logging">here&lt;/a>, but the gist of it is that you send ‘&lt;em>kill -SIGUSR1 PID&lt;/em>‘ to MongoDB and it will automatically rotate and rename the old logfile to something like ‘&lt;em>mongod.log.2011-12-22T17-05-50&lt;/em>‘.&lt;/p></description></item><item><title>Puppet on Ubuntu 10.04</title><link>https://vpetersson.com/2011/12/18/puppet-on-ubuntu-10-04/</link><pubDate>Sun, 18 Dec 2011 13:44:56 +0200</pubDate><guid>https://vpetersson.com/2011/12/18/puppet-on-ubuntu-10-04/</guid><description>&lt;p>Yesterday I decided that it’s about time to learn &lt;a href="http://puppetlabs.com/">Puppet&lt;/a>. I’ve had my eye on both Puppet and &lt;a href="http://wiki.opscode.com/display/chef/Home">Chef&lt;/a> for some time now. Yesterday after reading this &lt;a href="http://www.quora.com/What-are-the-key-reasons-to-choose-Puppet-over-Chef-or-vice-versa">Quora&lt;/a>-thread and this &lt;a href="http://devopsanywhere.blogspot.com/2011/10/puppet-vs-chef-fight.html">blog&lt;/a>-post, I decided to go with Puppet.&lt;/p>
&lt;p>After downloading their test-VM and going through the &lt;a href="http://docs.puppetlabs.com/learning/">tutorial&lt;/a>, I pretty quickly fell in love with the simplicity and structure. Puppet is straight forward and rather intuitive.&lt;/p>
&lt;p>One of the architectures that I wanted to deploy Puppet on was running Ubuntu 10.04 LTS. Unfortunately, the version from Ubuntu’s repository is really old (0.25.4), and not really compatible with much of the cool things you can do with Puppet.&lt;/p></description></item><item><title>I'm quoted in the December-issue of Computerworld</title><link>https://vpetersson.com/2011/12/15/im-quoted-in-the-december-issue-of-computerworld/</link><pubDate>Thu, 15 Dec 2011 13:26:43 +0200</pubDate><guid>https://vpetersson.com/2011/12/15/im-quoted-in-the-december-issue-of-computerworld/</guid><description>&lt;p>&lt;img
src="https://vpetersson.com/wp-content/uploads/2011/12/Computerworld.png"
alt=""
title="Computerworld"
loading="lazy"
decoding="async"
/>&lt;br>
It’s always fun when magazines ask you for your advise. In the December-issue of Computerworld, I was interviewed by Bob Scheier in the cover story and talked about how to create a successful and scalable cloud architecture.&lt;/p></description></item><item><title>This really bugs me...</title><link>https://vpetersson.com/2011/12/14/this-really-bugs-me/</link><pubDate>Wed, 14 Dec 2011 13:39:38 +0200</pubDate><guid>https://vpetersson.com/2011/12/14/this-really-bugs-me/</guid><description>&lt;p>If you’ve ever tried to install &lt;a href="http://www.imagemagick.org/">ImageMagick&lt;/a> on FreeBSD, you’ve probably run into this issue too. You have a head-less box in some datacenter, you don’t want to bloat the machine with X11.&lt;/p>
&lt;p>You try to install the no-X11-version of Image Magick:&lt;/p>
&lt;pre>&lt;code>cd /usr/ports/graphics/ImageMagick-nox11 &amp;amp;&amp;amp; make install
&lt;/code>&lt;/pre>
&lt;p>The next thing you know, you the dependency ‘print/ghostscript9-nox11′ gets installed. Notice that this is the ‘no-x11′ version. Yet, look at the fifth option from the top:&lt;br>
&lt;img
src="https://vpetersson.com/wp-content/uploads/2011/12/Screen-Shot-2011-12-14-at-1.34.06-PM.png"
alt="FreeBSD Ports-failure"
title="FreeBSD Ports-failure"
loading="lazy"
decoding="async"
/>&lt;/p></description></item><item><title>How to use Virtio on FreeBSD 8.2+</title><link>https://vpetersson.com/2011/10/20/how-to-use-virtio-on-freebsd-8-2/</link><pubDate>Thu, 20 Oct 2011 19:08:09 +0300</pubDate><guid>https://vpetersson.com/2011/10/20/how-to-use-virtio-on-freebsd-8-2/</guid><description>&lt;p>In the past few years, virtualization has been the big topic everybody keeps talking about. There are good reasons for that, but one thing that really annoys me as a hardcore FreeBSD-fan is how poorly FreeBSD performs virtualized.&lt;/p>
&lt;p>For some time, the Linux-community have been using the &lt;a href="http://wiki.libvirt.org/page/Virtio">Virtio&lt;/a>-drivers to boost both I/O and network performance. Simply put, Virtio is a driver written to cut out any unnecessary emulation on the host and as a result both reduce load from the host and improve performance.&lt;/p></description></item><item><title>How to get 50% discount on Swisscom's hotspot (and possibly also others)</title><link>https://vpetersson.com/2011/09/25/how-to-get-50-discount-on-swisscoms-hotspot-and-possibly/</link><pubDate>Sun, 25 Sep 2011 23:53:19 +0300</pubDate><guid>https://vpetersson.com/2011/09/25/how-to-get-50-discount-on-swisscoms-hotspot-and-possibly/</guid><description>&lt;p>Last weekend I was staying at a Holiday Inn in the UK. As most geeks, one of the first thing I did after checking in was to hop on the wireless connection to pull down my email. Like many hotels, Holiday Inn outsource the management of their wireless guest network. This particular hotel was using a provider named &lt;a href="http://en.swisscom.ch/r">Swisscom&lt;/a> (I’m not sure if this true for all Holiday Inn hotels).&lt;/p>
&lt;p>The wireless plans were as follows:&lt;br>
&lt;strong>Business 24 hour – £15&lt;/strong>&lt;/p></description></item><item><title>Facebook knows exactly how many visitors you got on your site</title><link>https://vpetersson.com/2011/09/03/facebook-will-soon-know-exactly-how-many-visitors-you-go/</link><pubDate>Sat, 03 Sep 2011 16:50:43 +0300</pubDate><guid>https://vpetersson.com/2011/09/03/facebook-will-soon-know-exactly-how-many-visitors-you-go/</guid><description>&lt;p>Is it possible that Facebook know more about how many visitors a given website has than Alexa or Hitwise? I’m not talking about people sharing a link on Facebook and then tracking outbound clicks. I’m talking about capturing all visitors. Both Alexa and Hitwise used to both rely on browser-addons to capture this data. Since only a small percentage of users will install this add-on, they will have really rough data (and skewed towards non-technical users).&lt;/p></description></item><item><title>Quick and dirty way of fixing NUT on pfSense 2.0RC</title><link>https://vpetersson.com/2011/08/27/quick-and-dirty-way-of-fixing-nut-on-pfsense-2-0rc/</link><pubDate>Sat, 27 Aug 2011 19:39:49 +0300</pubDate><guid>https://vpetersson.com/2011/08/27/quick-and-dirty-way-of-fixing-nut-on-pfsense-2-0rc/</guid><description>&lt;p>One of my favorite Open Source appliances is &lt;a href="http://www.pfsense.org/">pfSense&lt;/a>. It can turn any old machine into a very powerful firewall/router in 10 minutes or less. Also, it comes with a very handy GUI and the fact that it is based on FreeBSD makes it even greater.&lt;/p>
&lt;p>While version 2.0 isn’t stable yet, the 2.0RC is more or less considered stable. It’s also a major update to the 1.2-branch. I’ve used 2.0 on two ‘production’ firewalls now, and I think it more reliable than 1.2.&lt;/p></description></item><item><title>Fixing "su: unknown login: %%PG_USER%%" on FreeBSD</title><link>https://vpetersson.com/2011/08/15/fixing-su-unknown-login-pguser-on-freebsd/</link><pubDate>Mon, 15 Aug 2011 18:04:54 +0300</pubDate><guid>https://vpetersson.com/2011/08/15/fixing-su-unknown-login-pguser-on-freebsd/</guid><description>&lt;p>Today as I was installing PostgreSQL 9.04 on a new server I encountered the following error:&lt;/p>
&lt;pre>&lt;code>\[root@host ~\]# /usr/local/etc/rc.d/postgresql initdb
su: unknown login: %%PG_USER%%
&lt;/code>&lt;/pre>
&lt;p>Something obviously went wrong when the port was being installed. Most likely it’s a bug in the build-instructions for the port. No stress though, as there is an easy fix. Just open up &lt;code>_/usr/local/etc/rc.d/postgresql_&lt;/code> and modify the line&lt;/p>
&lt;pre>&lt;code>postgresql\_user=${postgresql\_user:-&amp;quot;%%PG_USER%%&amp;quot;}
&lt;/code>&lt;/pre>
&lt;p>with&lt;/p>
&lt;pre>&lt;code>postgresql\_user=${postgresql\_user:-&amp;quot;pgsql&amp;quot;}
&lt;/code>&lt;/pre>
&lt;p>(or I suppose you could add “postgresql_user=pgsql” to rc.conf).&lt;/p></description></item><item><title>Did you know you can create encrypted partitions in OS X Lion?</title><link>https://vpetersson.com/2011/08/01/did-you-know-you-can-create-encrypted-partitions-in-os-x/</link><pubDate>Mon, 01 Aug 2011 12:00:46 +0300</pubDate><guid>https://vpetersson.com/2011/08/01/did-you-know-you-can-create-encrypted-partitions-in-os-x/</guid><description>&lt;p>The most exciting new feature in OS X Lion for all paranoid techies out there was the introduction of full-disk encryption (FileVault 2). The previous version of FileVault only enabled you to encrypt your home directory. That was a good start, but it forced you to log out once in a while to recover disk space. This was extra painful if you were using a small SSD-drive.&lt;/p>
&lt;p>Another issue with FileVault 1 was that it prevented you to effectively use Time Machine. In order to backup your home directory, you had to log out. First then would Time Machine back up your files. This was inconvenient to say the least.&lt;/p></description></item><item><title>How to upgrade from Mac OS X Lion GM to Final release</title><link>https://vpetersson.com/2011/07/20/how-to-upgrade-from-mac-os-x-lion-gm-to-final-release/</link><pubDate>Wed, 20 Jul 2011 16:54:05 +0300</pubDate><guid>https://vpetersson.com/2011/07/20/how-to-upgrade-from-mac-os-x-lion-gm-to-final-release/</guid><description>&lt;p>If you ran one of the beta releases of Mac OS X Lion, you probably ran into a problem when trying to upgrade to the &lt;a href="http://itunes.apple.com/us/app/os-x-lion/id444303913?mt=12">final release&lt;/a> of OS X Lion.&lt;/p>
&lt;p>When I tried to upgrade one of my dev-machines, I was prompted with an error saying “A newer version of this app is already installed on this computer”&lt;/p>
&lt;p>Of course, you know that isn’t the case, as OS X Lion, &lt;strong>just&lt;/strong> came out.&lt;/p></description></item><item><title>Rebuilding a Linux software RAID array</title><link>https://vpetersson.com/2011/06/18/rebuilding-a-linux-software-raid-array/</link><pubDate>Sat, 18 Jun 2011 19:49:02 +0300</pubDate><guid>https://vpetersson.com/2011/06/18/rebuilding-a-linux-software-raid-array/</guid><description>&lt;p>The process is pretty straight forward, and I’m writing this as a ‘Note-to-self’ for future references than anything else. If anyone else find it useful, that’s great.&lt;/p>
&lt;h3 id="identify-the-broken-drive">Identify the broken drive&lt;/h3>
&lt;p>Start by identifying the device as the system know it (ie. /dev/sdX or /dev/hdX). The following commands should provide you with the information:&lt;/p>
&lt;pre>&lt;code>cat /proc/mdstat
mdadm --detail /dev/mdX
cat /var/log/messages | grep -e &amp;quot;/dev/hd&amp;quot; -e &amp;quot;/dev/sd&amp;quot;
&lt;/code>&lt;/pre>
&lt;p>Once you’ve identified the drive, you want to know something more about this drive, as /dev/sdX doesn’t really tell us how the drive looks like. In my case, I have three identical drives, so the following command didn’t help me much, but maybe it does for you.&lt;/p></description></item><item><title>Save time (and keystrokes) in the terminal</title><link>https://vpetersson.com/2011/06/09/save-time-and-keystrokes-in-the-terminal/</link><pubDate>Thu, 09 Jun 2011 23:31:24 +0300</pubDate><guid>https://vpetersson.com/2011/06/09/save-time-and-keystrokes-in-the-terminal/</guid><description>&lt;p>Do you have a few long commands that you keep typing in the terminal? Things like ‘cd /some/long/path/that/takes/forever/to/type’ or ‘mycommand -with -lots -of -variables’?&lt;/p>
&lt;p>If so, here’s something you’ll enjoy.&lt;/p>
&lt;p>Just open up ~/.profile in your favorite editor, and add the following lines:&lt;/p>
&lt;pre>&lt;code>alias foo=&amp;quot;cd /some/long/path/that/takes/forever/to/type&amp;quot;
alias bar=&amp;quot;mycommand -with -lots -of -variables&amp;quot;
&lt;/code>&lt;/pre>
&lt;p>Now you don’t need to type those long commands ever again. All you need to do is to typ ‘foo’ or ‘bar’. You can of course replace foo and bar with anything you want, as well as the command.&lt;/p></description></item><item><title>Sync your devices over the air for free</title><link>https://vpetersson.com/2011/05/25/sync-your-devices-over-the-air-for-free/</link><pubDate>Wed, 25 May 2011 21:23:06 +0000</pubDate><guid>https://vpetersson.com/2011/05/25/sync-your-devices-over-the-air-for-free/</guid><description>&lt;p>I hate wires. I particular hate having to use wires to syncing devices.&lt;/p>
&lt;p>Luckily, there are ways to avoid them (in most cases). If you are having issues with this, the solution is not to buy MobileMe. Google App/Gmail is all you need. I just posted up an &lt;a href="http://blog.yippiemove.com/2011/05/25/how-to-keep-your-contacts-and-calendars-in-sync-across-devices-for-free/">article&lt;/a> over at the YippieMove Blog that will tell you how. After reading it, you should be able to sync your Mac, iOS device(s) and Android device(s) wirelessly — for free.&lt;/p></description></item><item><title>Updates to WireLoad</title><link>https://vpetersson.com/2011/05/16/updates-to-wireload/</link><pubDate>Mon, 16 May 2011 21:38:35 +0300</pubDate><guid>https://vpetersson.com/2011/05/16/updates-to-wireload/</guid><description>&lt;p>2011 has been a big year for WireLoad. We have launched two brand new products (&lt;a href="http://www.blotterapp.com/">Blotter&lt;/a> and &lt;a href="http://wireload.net/products/quiet/">Quiet&lt;/a>) in a completely new vertical, namely the desktop market for Mac OS X. It has been a very interesting experience, and we certainly did not foresee the success we’ve had. Just a few weeks ago, Blotter was named &lt;a href="http://wiki.twit.tv/wiki/MacBreak_Weekly_239">‘App of the Week&lt;/a>‘ in Leo Leporte’s show MacBreak Weekly. Blotter has also been on the Top-10 list for productivity apps in the Mac App Store, and we’ve been the #2 app in the entire Korean Mac App Store (and top 10 in the entire Japanese Mac App Store).&lt;/p></description></item><item><title>How to travel safely with your computer</title><link>https://vpetersson.com/2011/05/13/how-to-travel-safely-with-your-computer/</link><pubDate>Fri, 13 May 2011 22:18:27 +0300</pubDate><guid>https://vpetersson.com/2011/05/13/how-to-travel-safely-with-your-computer/</guid><description>&lt;p>Regardless if we travel in business or on a vacation, we tend to bring our computer with us (at least I do). Common sense tells us to not check in our computer, but there are other things that we really ought to do.&lt;/p>
&lt;p>The first thing you want to do is to use disk encryption. The reason for this is simple: if you lose your laptop, nobody can access your files. This really isn’t as difficult as it may sound to set up. Mac OS X comes with two built-in types of disk encryption:&lt;/p></description></item><item><title>How to get FreeBSD's CARP working on CloudSigma</title><link>https://vpetersson.com/2011/03/23/how-to-get-freebsds-carp-working-on-cloudsigma/</link><pubDate>Wed, 23 Mar 2011 13:34:32 +0200</pubDate><guid>https://vpetersson.com/2011/03/23/how-to-get-freebsds-carp-working-on-cloudsigma/</guid><description>&lt;p>For a few months now, we’ve been working on migrating our physical architecture for YippieMove over to CloudSigma. We got everything up and running swiftly, with the exception of one thing: CARP.&lt;/p>
&lt;p>As it turns out FreeBSD’s CARP implementation doesn’t really work very well in a virtual environment. (For those curious about the details, please see &lt;a href="http://lists.freebsd.org/pipermail/freebsd-net/2011-March/028332.html">this&lt;/a> mailing list post.)&lt;/p>
&lt;p>In order to get up and running with CARP on CloudSigma, you need to do the following:&lt;/p></description></item><item><title>Quiet - A great productivity app</title><link>https://vpetersson.com/2011/03/14/quiet-a-great-productivity-app/</link><pubDate>Mon, 14 Mar 2011 11:43:17 +0200</pubDate><guid>https://vpetersson.com/2011/03/14/quiet-a-great-productivity-app/</guid><description>&lt;p>Last week we launched our second application for Mac OS X. The application is called Quiet and is the best productivity tool I have ever used. The idea behind Quiet is simple. If you were to remove all distractions and only focus on one task at the time, you get more work done. This is exactly what Quiet does. It simply allows you to focus.&lt;/p>
&lt;p>Let’s say you’re writing an important email that requires 100% of your attention. You would then simply bring up Quiet, and pick ‘Focus on Mail’ (assuming you’re using Apple Mail). Quiet would then bring up your Mail window on a black background. But that’s not it. In addition, Quiet will also do the following:&lt;/p></description></item><item><title>A really ugly solution to get a static path to a 3G modem</title><link>https://vpetersson.com/2011/01/24/a-really-ugly-solution-to-get-a-static-path-to-a-3g-mode/</link><pubDate>Mon, 24 Jan 2011 21:34:56 +0200</pubDate><guid>https://vpetersson.com/2011/01/24/a-really-ugly-solution-to-get-a-static-path-to-a-3g-mode/</guid><description>&lt;p>This solution is so ugly that I felt that I had to post it =).&lt;/p>
&lt;p>I had a problem. Whenever I plugged in or rebooted, the a 3G modem into a Linux machine, it appeared on a different path (/dev/ttyUSBX). That creates some issues, as I’m using to connect to the internet, and Wvdial is using a hardcoded path to the modem. To fix this, I had to manually edit the file every time it changed. That’s very annoying. Now add in the fact that this is sitting on a remote machine that I have little physical access to, this is a real problem.&lt;/p></description></item><item><title>Get better music recommendations in Spotify with Lastify</title><link>https://vpetersson.com/2011/01/23/get-better-music-recommendations-in-spotify-with-lastify/</link><pubDate>Sun, 23 Jan 2011 14:18:14 +0200</pubDate><guid>https://vpetersson.com/2011/01/23/get-better-music-recommendations-in-spotify-with-lastify/</guid><description>&lt;p>&lt;a href="http://www.spotify.com/">Spotify&lt;/a> is probably one of the greatest apps I’ve used in recent years. It is the sole reason why I barely ever use iTunes anymore. Why would I bother downloading music when I can have access to a far larger music library at any given moment?&lt;/p>
&lt;p>There is however one big problem with Spotify: How do you find new music? Spotify does come with a “What’s New”-section that I assume is somewhat tailored to my listening habits. Yet, it’s far from perfect. It doesn’t give you any recommendations for other artists that fits your taste.&lt;/p></description></item><item><title>Blotter is now available</title><link>https://vpetersson.com/2011/01/06/blotter-is-now-available/</link><pubDate>Thu, 06 Jan 2011 18:50:09 +0200</pubDate><guid>https://vpetersson.com/2011/01/06/blotter-is-now-available/</guid><description>&lt;p>As of a few hours, &lt;a href="http://www.blotterapp.com/">Blotter&lt;/a> is &lt;a href="http://itunes.apple.com/us/app/blotter/id406580224?mt=12">available&lt;/a> in the App Store for Mac. We are super excited and this launch, and the App Store is really impressive.&lt;/p>
&lt;p>Check it out right away!&lt;/p>
&lt;p>&lt;img
src="https://vpetersson.com/wp-content/uploads/2011/01/Blotter-600x475.png"
alt=""
title="Blotter"
loading="lazy"
decoding="async"
/>&lt;/p></description></item><item><title>Blotter is soon available</title><link>https://vpetersson.com/2010/12/17/blotter-is-soon-available/</link><pubDate>Fri, 17 Dec 2010 14:46:37 +0200</pubDate><guid>https://vpetersson.com/2010/12/17/blotter-is-soon-available/</guid><description>&lt;p>One of the biggest announcement Apple made in recent time was the announcement of the &lt;a href="http://www.apple.com/mac/app-store/">App Store for Mac&lt;/a>. If you didn’t see the initial pitch, it is similar to iTunes App Store for iOS (iPad, iPhone, iPod Touch etc), but for native Mac OS X desktop applications.&lt;/p>
&lt;p>We (as in &lt;a href="http://wireload.net">WireLoad&lt;/a>) wanted to be apart of this from the start, and got busy thinking about applications that we would like to see ourselves. The result is &lt;a href="http://www.blotterapp.com">Blotter&lt;/a> — an application that sits on top of your desktop and displays your calendar.&lt;/p></description></item><item><title>Red iGone for iPad is now available</title><link>https://vpetersson.com/2010/12/15/red-igone-for-ipad-is-now-available/</link><pubDate>Wed, 15 Dec 2010 11:39:35 +0200</pubDate><guid>https://vpetersson.com/2010/12/15/red-igone-for-ipad-is-now-available/</guid><description>&lt;p>I’m really excited about this. &lt;a href="http://www.redigone.com">Red iGone&lt;/a>, the red-eye removal tool I’ve been working on for some time, is &lt;a href="http://blog.redigone.com/red-igone-for-ipad-now-available">now available on the iPad&lt;/a>.&lt;/p>
&lt;p>This is the first iPad application I’ve been working on, and the end-result is pretty awesome. While the web-version works great, the iPad version is far more intuitive, given the intuitive touch experience.&lt;br>
&lt;img
src="https://vpetersson.com/wp-content/uploads/2010/12/group_step1-600x450.jpg"
alt=""
title="group_step1"
loading="lazy"
decoding="async"
/>&lt;br>
&lt;a href="http://itunes.apple.com/us/app/red-igone/id406248751">Direct iTunes link&lt;/a>.&lt;/p>
&lt;p>Let me know what you think.&lt;/p></description></item><item><title>Implementing ASSP with Postfix on FreeBSD</title><link>https://vpetersson.com/2010/12/14/implementing-assp-with-postfix-on-freebsd/</link><pubDate>Tue, 14 Dec 2010 23:15:54 +0200</pubDate><guid>https://vpetersson.com/2010/12/14/implementing-assp-with-postfix-on-freebsd/</guid><description>&lt;p>In this article, I will walk you through the process of setting up &lt;a href="http://assp.sourceforge.net/">ASSP&lt;/a>. If you’ve never heard of ASSP, it is a great anti-virus and spam-fighting proxy that sits in front of your SMTP server. Under the hood, ASSP includes a lot of intelligent spam logic, but you won’t really have to worry about it. All you really need to know is that it great at fighting spam and that it is easy to set up.&lt;/p></description></item><item><title>How to create SSH 'bookmarks'</title><link>https://vpetersson.com/2010/12/05/ssh-tips-how-to-create-ssh-bookmarks/</link><pubDate>Sun, 05 Dec 2010 16:01:40 +0200</pubDate><guid>https://vpetersson.com/2010/12/05/ssh-tips-how-to-create-ssh-bookmarks/</guid><description>&lt;p>If you’re like me, you spend a lot of time in the terminal window. It’s not rare that I SSH into 10+ different servers in a day. Having easy-to-remember FQDN’s makes it easier, but sometimes that’s not possible. Sometimes you only have an IP to a server, perhaps the server has a really long FQDN, or perhaps SSH is running on some arbitrary port. That makes your life harder. Luckily there’s an easy fix for it.&lt;/p></description></item><item><title>Great interview with Jason Calacanis</title><link>https://vpetersson.com/2010/12/01/great-interview-with-jason-calacanis/</link><pubDate>Wed, 01 Dec 2010 21:09:01 +0200</pubDate><guid>https://vpetersson.com/2010/12/01/great-interview-with-jason-calacanis/</guid><description>&lt;p>If you’re into startups and technology, you should really watch the following interview with Jason Calacanis from the Fowa-conference in London. I really like how Jason describes the way he and his team work. I completely agree with him. There is no such thing as ‘balance’ in a startup. You’re either in to do it all the way, or you might as well go home.&lt;/p>
&lt;ul>
&lt;li>&lt;a href="http://thinkvitamin.com/business/jason-calacanis-interview-at-fowa-london-2010-part-1/">Part 1&lt;/a>&lt;/li>
&lt;li>&lt;a href="http://thinkvitamin.com/business/jason-calacanis-interview-at-fowa-london-2010-part-2/">Part 2&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Introduction to scaling a website</title><link>https://vpetersson.com/2010/11/27/introduction-to-scaling-a-website/</link><pubDate>Sat, 27 Nov 2010 16:21:05 +0200</pubDate><guid>https://vpetersson.com/2010/11/27/introduction-to-scaling-a-website/</guid><description>&lt;p>Scaling architecture and web sites is really something I find exciting. I’ve playing with scaling various software for many years, but it is just recent years I’ve come to use this in production (primarily through &lt;a href="http://www.yippiemove.com">YippieMove&lt;/a>).&lt;/p>
&lt;p>If you’re curious about scaling your website, I can really recommend the following video lecture from Harvard. It goes though concept that you might have run across in various blog-posts before. It is not super-technical, so even if you’re new to programming etc., you should still be able to understand the entire lecture.&lt;/p></description></item><item><title>How to recover from random Photoshop (font) crashes</title><link>https://vpetersson.com/2010/11/26/how-to-recover-from-random-photoshop-font-crashes/</link><pubDate>Fri, 26 Nov 2010 02:29:02 +0200</pubDate><guid>https://vpetersson.com/2010/11/26/how-to-recover-from-random-photoshop-font-crashes/</guid><description>&lt;p>Photoshop and Illustrator are somewhat of required apps today. You realize how much you need these apps when they decide to not play ball. This have happened to me a few times, and it often relate to fonts. Photoshop simply crashes when I bring up the font tool. Given that this is probably one of the most frequently used tools, this is a pretty big deal.&lt;/p>
&lt;p>The bug-report isn’t that helpful either. You’ll only get something like:&lt;/p></description></item><item><title>Must-have applications for Mac OS X</title><link>https://vpetersson.com/2010/11/13/must-have-applications-for-mac-os-x/</link><pubDate>Sat, 13 Nov 2010 16:30:13 +0200</pubDate><guid>https://vpetersson.com/2010/11/13/must-have-applications-for-mac-os-x/</guid><description>&lt;p>We all have our must-have apps. Whenever we re-install our system, these are the first apps we want to get in so that we can get back to business. From time to time we discover new apps that are really mind-blowing and we wonder how we survived without them. For me, 1Password and Visor are two apps like that.&lt;/p>
&lt;p>Since we all have different must-have apps, I thought I’d share a list of the Apps that I consider must-have apps for Mac OS X.&lt;/p></description></item><item><title>Why Android-phones will never be at par with the iPhone (but still win)</title><link>https://vpetersson.com/2010/11/06/why-android-phones-will-never-be-at-par-with-the-iphone/</link><pubDate>Sat, 06 Nov 2010 14:10:08 +0200</pubDate><guid>https://vpetersson.com/2010/11/06/why-android-phones-will-never-be-at-par-with-the-iphone/</guid><description>&lt;p>Yesterday I read an article titled “&lt;a href="http://venturebeat.com/2010/11/05/why-apple-cant-beat-android/">Why Apple can’t beat Android&lt;/a>” over at VentureBeat. It was an interesting read, and Mr. Grim argued in the article that Android is here to stay, and that Android will soon dominate the smartphone market. I do not disagree with Mr. Grim. It makes a whole lot of sense. In the opening of the article, Mr. Grim states that Windows is ‘Big, ugly, buggy, clunky, and everywhere.’ I think that’s spot on, and I also think this is where Android is heading.&lt;/p></description></item><item><title>How to turn in your Mac for repair without downtime.</title><link>https://vpetersson.com/2010/11/02/how-to-turn-in-your-mac-for-repair-without-downtime/</link><pubDate>Tue, 02 Nov 2010 18:09:56 +0200</pubDate><guid>https://vpetersson.com/2010/11/02/how-to-turn-in-your-mac-for-repair-without-downtime/</guid><description>&lt;p>Let’s face it — all computers fail at one time or another. In my experience Apple computers break far less than PCs, and when they fail, Apple provide fast and great repairs. If you live in a country with Apple Stores, it’s even easier. When a PC breaks, you’re usually out of luck. Long hours on hold with some Indian call center awaits you and if you are able to convince them that your broken computer should be covered by the warranty, you are likely to spend weeks, if not months, without your computer.&lt;/p></description></item><item><title>Is Carbon Copy Cloner better than Time Machine?</title><link>https://vpetersson.com/2010/10/27/is-carbon-copy-cloner-better-than-time-machine/</link><pubDate>Wed, 27 Oct 2010 20:43:32 +0300</pubDate><guid>https://vpetersson.com/2010/10/27/is-carbon-copy-cloner-better-than-time-machine/</guid><description>&lt;p>When Apple announced Time Machine, I was overwhelmed and thought it was the best invention since sliced bread. I’ve been using it since then in setups both with a dedicated external hard drive and a Network Attached Storage (NAS).&lt;/p>
&lt;p>Lately though, I’ve started to get more and more annoyed with Time Machine. It consumes a significant amount of resources, as it keeps backing up changes continuously, and it will fill up the destination drive until it’s full.&lt;/p></description></item><item><title>How to merge PDF-files on Mac OS X</title><link>https://vpetersson.com/2010/10/27/how-to-merge-pdf-files-on-mac-os-x/</link><pubDate>Wed, 27 Oct 2010 18:05:24 +0300</pubDate><guid>https://vpetersson.com/2010/10/27/how-to-merge-pdf-files-on-mac-os-x/</guid><description>&lt;p>In my &lt;a href="https://vpetersson.com/2010/10/22/how-to-split-a-pdf-files-on-mac-and-linuxunix/">previous post&lt;/a>, I talked about how to split PDF files on Mac OS X, Linux and Unix. In that article, I mentioned a simple app that allows you to merge several PDF files. The app is dead simple, and you can create it for yourself if you’d like (here’s the &lt;a href="https://vpetersson.com/wp-content/uploads/MergePDF_workflow.png">workflow&lt;/a> in Automator). All it asks you for is the input files (the files you want to merge), and it will take care of the rest. When done, Preview will pop up with the merged file. You will then have to save the file.&lt;/p></description></item><item><title>How to manage VMware Server on Mac OS X with VNC</title><link>https://vpetersson.com/2010/10/24/how-to-manage-vmware-server-on-mac-os-x-with-vnc/</link><pubDate>Sun, 24 Oct 2010 14:24:36 +0300</pubDate><guid>https://vpetersson.com/2010/10/24/how-to-manage-vmware-server-on-mac-os-x-with-vnc/</guid><description>&lt;p>VMware Server is a great product. It’s free and works well with most guest operating systems. However, there is &lt;strong>one major drawback&lt;/strong> – you cannot use the ‘console’ app on Mac OS X. For some strange reason, VMware decided to only make the required Firefox plug-in available for Linux and Windows. Given that Mac OS X is the OS of choice for most tech-savvy users I know, this decision makes no sense at all. While I rarely need the console for an existing virtual machine (other than if it fails to boot or something similar), it is obviously required to install the operating system onto the virtual machine.&lt;/p></description></item><item><title>How to split a PDF files on Mac, Linux or Unix</title><link>https://vpetersson.com/2010/10/22/how-to-split-a-pdf-files-on-mac-and-linuxunix/</link><pubDate>Fri, 22 Oct 2010 16:52:05 +0300</pubDate><guid>https://vpetersson.com/2010/10/22/how-to-split-a-pdf-files-on-mac-and-linuxunix/</guid><description>&lt;p>There are a ton of tools out there for modifying PDF-files. Most of them are crappy, overpriced sharewares from mediocre developers looking to make cash from non-technical users. What most Mac-users perhaps do not know is that Mac OS comes with a ton of handy tools for modifying PDF files. For instance, with a few clicks, you can create an app that merges different PDF files into one file with Automator (I will post that app in a separate post).&lt;/p></description></item><item><title>Moving Cyrus from a 32Bit to a 64Bit server</title><link>https://vpetersson.com/2010/10/03/moving-cyrus-from-a-32bit-to-a-64bit-server/</link><pubDate>Sun, 03 Oct 2010 22:52:12 +0300</pubDate><guid>https://vpetersson.com/2010/10/03/moving-cyrus-from-a-32bit-to-a-64bit-server/</guid><description>&lt;p>I’ve you’ve read the past few articles I’ve published, you’ve probably figured out two things:&lt;/p>
&lt;ul>
&lt;li>I love FreeBSD.&lt;/li>
&lt;li>I’m in the process of moving a bunch of servers.&lt;/li>
&lt;/ul>
&lt;p>This time I’ll walk you trough how to move &lt;a href="http://www.cyrusimap.org/">Cyrus-IMAP&lt;/a> between a 32bit server to a 64bit server. In my case, on FreeBSD. Unfortunately the process is not as straight-forward as I imagined it to be. With these instructions, you will hopefully save yourself the hours I spend troubleshooting the issue.&lt;/p></description></item><item><title>Copying users/groups between two FreeBSD servers</title><link>https://vpetersson.com/2010/09/30/copying-usersgroups-between-freebsd-servers/</link><pubDate>Thu, 30 Sep 2010 20:17:58 +0300</pubDate><guid>https://vpetersson.com/2010/09/30/copying-usersgroups-between-freebsd-servers/</guid><description>&lt;p>Sometimes you want to move &lt;strong>all&lt;/strong> users and groups from one server to another without having to recreate all users. Let’s say you are retiring an old server and moving to a new server. If you’ve had the server for a while and have lots of users on it, the last thing you want to do is to recreate all users and assign new passwords.&lt;/p>
&lt;p>If you’re on FreeBSD, the task is pretty trivial. I’m sure it’s pretty straight forward on Linux too, but these instructions only apply to FreeBSD. In my case I was moving the users from a FreeBSD 7.1 system to a brand new FreeBSD 8.1 server.&lt;/p></description></item><item><title>Annoying SEO scam</title><link>https://vpetersson.com/2010/09/27/annoying-seo-scam/</link><pubDate>Mon, 27 Sep 2010 17:43:49 +0300</pubDate><guid>https://vpetersson.com/2010/09/27/annoying-seo-scam/</guid><description>&lt;p>So I’m not 100% confident that this is a scam, but it sure looks like it. I’ve been contacted by this guy a few times by now. Here’s the email he sent out. Also, I’m pretty sure there is no such thing as the “reverse google pagerank algorithm”.&lt;/p>
&lt;blockquote>
&lt;p>Hi,&lt;/p>
&lt;p>John Stahl here. I just wanted to drop you a line and invite you&lt;br>
to be a link partner for our website xraider.com.&lt;/p></description></item><item><title>Setting up a redundant NAS with HAST and CARP</title><link>https://vpetersson.com/2010/09/27/setting-up-a-redundant-nas-with-hast-with-carp/</link><pubDate>Mon, 27 Sep 2010 13:53:42 +0300</pubDate><guid>https://vpetersson.com/2010/09/27/setting-up-a-redundant-nas-with-hast-with-carp/</guid><description>&lt;p>One of the coolest new features in FreeBSD is &lt;a href="http://wiki.freebsd.org/HAST">HAST&lt;/a> (Highly Available Storage). In simple terms, it can be described as RAID1 (mirror) over TCP/IP (similar to DRBD on Linux, but native). You can simply have two physical nodes replicate data over the network. If you throw in &lt;a href="http://www.freebsd.org/doc/handbook/carp.html">CARP&lt;/a> (Common Address Redundancy Protocol) to the mix, you can create a very robust storage system on commodity hardware with automatic failover.&lt;/p>
&lt;p>After reading trough the official HAST wiki, I decided that the approach outlined there wasn’t the ideal approach for us. They use UCARP, which is a userland implementation of CARP. I prefer to use the real deal, as it is known to be extremely robust. The only downside with using CARP instead of UCARP is that it requires that you recompile the kernel.&lt;/p></description></item><item><title>How to build Apache and mod_wsgi with Python 2.7 on FreeBSD</title><link>https://vpetersson.com/2010/09/08/how-to-build-apache-and-modwsgi-with-python-2-7-on-free/</link><pubDate>Wed, 08 Sep 2010 23:27:01 +0000</pubDate><guid>https://vpetersson.com/2010/09/08/how-to-build-apache-and-modwsgi-with-python-2-7-on-free/</guid><description>&lt;p>We’re probably not the only company switching to Python 2.7. Right now, we’re in the final phase of rolling out an updated version that uses Python 2.7. As I was setting up our servers, I ran into a few issues with packages who were hardcoded to use Python 2.6 or earlier.&lt;/p>
&lt;p>Both &lt;a href="http://www.chronicle.im">Chronicle&lt;/a> and &lt;a href="http://www.yippiemove.com">YippieMove&lt;/a> are using Django, and use on Apache with mod_wsgi. When building these two packages, we found out that were both hardcoded to use Python 2.6 or earlier. Fortunately, there’s a simple solution for it.&lt;/p></description></item><item><title>How to get RabbitMQ 1.8 to work on FreeBSD</title><link>https://vpetersson.com/2010/08/31/how-to-get-rabbitmq-1-8-to-work-on-freebsd/</link><pubDate>Tue, 31 Aug 2010 14:40:41 +0300</pubDate><guid>https://vpetersson.com/2010/08/31/how-to-get-rabbitmq-1-8-to-work-on-freebsd/</guid><description>&lt;p>&lt;strong>Update:&lt;/strong> Thanks to Phillip (the maintainer of the package), this issue has now been resolved for RabbitMQ 2.0. The instructions below still applies if you for some reason prefer to run RabbitMQ 1.8.&lt;/p>
&lt;p>This post might be irrelevant as soon as the port maintainer resolves this issue, but as I’m writing this, th&lt;strong>is bug will prevent you from running&lt;/strong> RabbitMQ successfully.&lt;/p>
&lt;p>Installing RabbitMQ is simple, but there are a few tricks that you might want to keep in mind. Before we build RabbitMQ, let’s build Erlang.&lt;/p></description></item><item><title>Shouldn't dependencies of core components be isolated?</title><link>https://vpetersson.com/2010/08/28/shouldnt-dependencies-on-core-components-be-isolated/</link><pubDate>Sat, 28 Aug 2010 15:41:19 +0300</pubDate><guid>https://vpetersson.com/2010/08/28/shouldnt-dependencies-on-core-components-be-isolated/</guid><description>&lt;p>Local management tools are critical for most Linux and Unix distributions. For instance, if you delete Python 2.6 from your Ubuntu installation, it becomes more or less unusable. This is because most local management tools are written in Python. I have no problem with this. On the contrary, I think it makes a whole lot of sense to write management tools in a high-level language, such as Python or Ruby.&lt;/p></description></item><item><title>Solution for "[Errno 13] Permission denied: '/nonexistent'" in mod_wsgi</title><link>https://vpetersson.com/2010/08/26/solution-for-errno-13-permission-denied-nonexistent-in-m/</link><pubDate>Thu, 26 Aug 2010 21:49:36 +0000</pubDate><guid>https://vpetersson.com/2010/08/26/solution-for-errno-13-permission-denied-nonexistent-in-m/</guid><description>&lt;p>While upgrading to Python 2.7 on one of our development servers (FreeBSD 7.2), I ran across a somewhat strange error with Django (or rather mod_wsgi). Since I didn’t find a whole lot useful results when I Googled for it, I decided to do a brief write-up about it.&lt;/p>
&lt;p>The error I received was as follows:&lt;/p>
&lt;blockquote>
\[Errno 13\]&lt;p> Permission denied: ‘/nonexistent’&lt;/p>&lt;/blockquote>
&lt;p>As it turns out ‘/nonexisten’ is the home-directory for ‘www’ on FreeBSD. This is good, as you want your webserver to have as little write-access as possible. The problem is that Python uses something called Egg-files for its modules. These can be either stored extracted or compressed. The compressed ones are basically just a zip-file with the .egg-extension. The above error originates from when mod_wsgi tries to extract one of these .egg-files in the home-directory. Since ‘/nonexistant’ is non-existing folder (shocking, right?), it fails.&lt;/p></description></item><item><title>Can VirtualBox take on VMware for SMBs?</title><link>https://vpetersson.com/2010/08/22/can-virtualbox-take-on-vmware-for-smbs/</link><pubDate>Sun, 22 Aug 2010 19:42:45 +0300</pubDate><guid>https://vpetersson.com/2010/08/22/can-virtualbox-take-on-vmware-for-smbs/</guid><description>&lt;p>My experience with VMware goes way back. I think the first version I ever used was VMware Workstation 4.0 back in ’03. That’s seven years ago. Back then it was really cool as a proof-of-concept, but not very useful as the hardware didn’t have enough power (primarily RAM) to run multiple OS’es simultaneously (or, at least &lt;strong>my&lt;/strong> hardware).&lt;/p>
&lt;p>A few years ago I started to use VMware more seriously. &lt;a href="http://www.vmware.com/products/server/">VMware Server&lt;/a> was great. It ran on Linux and was pretty flexible. It lacked a few features (such as multiple snapshots), but it did the job. When we first launched &lt;a href="http://www.yippiemove.com">YippieMove&lt;/a>, we actually ran the entire architecture with a few VMware Servers. It worked, but due to budget hardware, it didn’t perform as well as we liked it to. (We eventually switched to FreeBSD Jails and &lt;a href="http://www.playingwithwire.com/2009/06/virtual-failure-yippiemove-switches-from-vmware-to-freebsd-jails/">the article we wrote&lt;/a> about it made it to Slashdot.)&lt;/p></description></item><item><title>How monkeys mirror human irrationality</title><link>https://vpetersson.com/2010/08/18/how-monkeys-mirror-human-irrationality/</link><pubDate>Wed, 18 Aug 2010 15:09:53 +0300</pubDate><guid>https://vpetersson.com/2010/08/18/how-monkeys-mirror-human-irrationality/</guid><description>&lt;p>I watched a really interesting &lt;a href="http://www.ted.com/">TED&lt;/a>-talk last night that I wanted to share with all of you. It’s on the topic of human irrationality and how it is mirrored in monkeys. The verdict is that monkeys make the same irrational decisions as humans make, despite the fact that we know they’re irrational decisions.&lt;/p>
&lt;p>Here’s the video:&lt;br/>&lt;!--copy and paste-->&lt;object width="446" height="326">&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf">&lt;param name="allowFullScreen" value="true">&lt;param name="allowScriptAccess" value="always">&lt;param name="wmode" value="transparent">&lt;param name="bgColor" value="#ffffff">&lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/LaurieSantos_2010G-medium.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/LaurieSantos-2010G.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=927&amp;amp;introDuration=15330&amp;amp;adDuration=4000&amp;amp;postAdDuration=830&amp;amp;adKeys=talk=laurie_santos;year=2010;theme=unconventional_explanations;theme=a_taste_of_tedglobal_2010;theme=animals_that_amaze;theme=not_business_as_usual;theme=new_on_ted_com;event=TEDGlobal+2010;&amp;amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;">&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgcolor="#ffffff" width="446" height="326" allowfullscreen="true" allowscriptaccess="always" flashvars="vu=http://video.ted.com/talks/dynamic/LaurieSantos_2010G-medium.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/LaurieSantos-2010G.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=927&amp;amp;introDuration=15330&amp;amp;adDuration=4000&amp;amp;postAdDuration=830&amp;amp;adKeys=talk=laurie_santos;year=2010;theme=unconventional_explanations;theme=a_taste_of_tedglobal_2010;theme=animals_that_amaze;theme=not_business_as_usual;theme=new_on_ted_com;event=TEDGlobal+2010;">&lt;/embed>&lt;/object>&lt;/p></description></item><item><title>How to avoid monthly service fees with Wells Fargo (Business and Personal)</title><link>https://vpetersson.com/2010/08/03/how-to-avoid-monthly-service-fees-with-wells-fargo-busin/</link><pubDate>Tue, 03 Aug 2010 15:42:59 +0300</pubDate><guid>https://vpetersson.com/2010/08/03/how-to-avoid-monthly-service-fees-with-wells-fargo-busin/</guid><description>&lt;p>I will rant a bit about how pathetic the U.S. banks are, so if you don’t want to read about that, jump down to ‘End Rant.’&lt;/p>
&lt;h3 id="rant">Rant&lt;/h3>
&lt;p>Banks in the US are kind of like the movie industry. They realize that their golden days are over, and will therefor try to squeeze every penny out of you. The two industries are also in denial about the fact that the entire world have gone online and that if they don’t adopt, they will slowly die. Online banking in the U.S. is a joke. In the year 2010, I can still not transfer money between two different banks online. I can’t even do a wire transfer online. Well, maybe that’s a good thing, given the pathetic security. Your bank records are not more secure than the average web service.&lt;/p></description></item><item><title>Create a lightweight intranet search engine with Xapian on FreeBSD</title><link>https://vpetersson.com/2010/08/01/create-a-lightweight-intranet-search-engine-with-xapian/</link><pubDate>Sun, 01 Aug 2010 23:42:50 +0300</pubDate><guid>https://vpetersson.com/2010/08/01/create-a-lightweight-intranet-search-engine-with-xapian/</guid><description>&lt;p>Recently I had to set up an intranet search engine to crawl trough thousands of PDF files. There are a ton of commercial solutions (read: $$$$&lt;/p>
&lt;p>) out there on the market, ranging from &lt;a href="http://www.google.com/enterprise/search/gsa.html">Google Search Appliance&lt;/a> to &lt;a href="http://omnifind.ibm.yahoo.net/">IBM’s OmniFind&lt;/a>. There are also a few good Open Source engines, such as &lt;a href="http://lucene.apache.org/java/docs/index.html">Apache’s Lucene&lt;/a>. The problem is that these are primarily intended for enterprises with server farms full of data. That’s really not what I was looking for. I was looking something simple that was easy to set up and maintain. That’s when I came across &lt;a href="http://xapian.org/">Xapian&lt;/a>. It’s Open Source and lightweight. Combine Xapian with &lt;a href="http://xapian.org/docs/omega/overview.html">Omega&lt;/a> and you got exactly what I was looking for — A lightweight intranet search engine.&lt;/p></description></item><item><title>Amazon S3/Jungle Disk as your home NAS?</title><link>https://vpetersson.com/2010/08/01/amazon-s3jungle-disk-as-your-home-nas/</link><pubDate>Sun, 01 Aug 2010 13:58:11 +0300</pubDate><guid>https://vpetersson.com/2010/08/01/amazon-s3jungle-disk-as-your-home-nas/</guid><description>&lt;p>This idea hit me this morning. Assuming you have a decent connection at home (not ADSL or Cable that is), &lt;a href="http://aws.amazon.com/s3/">Amazon S3&lt;/a> (or &lt;a href="https://www.jungledisk.com">Jungle Disk&lt;/a>) makes a pretty nice back-bone for a home NAS. It is fairly cheap and you will no longer worry about growing out of your array or failing disks. Yes, I reckon that if you store your data without encryption (even in a private bucket), it may leak out. However, as long as you’re not storing top-secret government files, I think you’ll be fine.&lt;/p></description></item><item><title>How to backup to S3 with GnuPG (PGP) without having to store the passphrase locally</title><link>https://vpetersson.com/2010/07/23/how-to-backup-to-s3-with-gnupg-pgp-without-having-to-sto/</link><pubDate>Fri, 23 Jul 2010 13:25:23 +0300</pubDate><guid>https://vpetersson.com/2010/07/23/how-to-backup-to-s3-with-gnupg-pgp-without-having-to-sto/</guid><description>&lt;p>To increase the reliability of our backups at WireLoad, we wanted to utilize S3. Obviously we couldn’t just send our backups to S3 without encrypting them, so GnuPG was part of the equation from the beginning. As I started my research, I found a ton guides on how to utilize a variety of backup tools to get your backups delivered to S3. Some of the tools looked really promising. After reading the specs, &lt;a href="http://duplicity.nongnu.org/">Duplicity&lt;/a> stood out as the winner. It supported S3, encryption and the whole shebang. It even supported incremental backups. Bingo I thought. That’s perfect.&lt;/p></description></item><item><title>Chronicle.IM is almost ready...</title><link>https://vpetersson.com/2010/07/17/chronicle-im-is-almost-ready/</link><pubDate>Sat, 17 Jul 2010 14:34:22 +0300</pubDate><guid>https://vpetersson.com/2010/07/17/chronicle-im-is-almost-ready/</guid><description>&lt;p>Last night we rolled out a new version of &lt;a href="http://www.chronicle.im">Chronicle.IM&lt;/a> to the production servers. The product is not quite ready yet, but you can sign up with your email address if you want to be invited to the beta-version. Over the next few weeks we will start letting a few beta-testers in. If everything goes well, we will invite more.&lt;/p>
&lt;p>So what is &lt;a href="http://www.chronicle.im">Chronicle.IM&lt;/a>? The slogan for the product is ‘Write the story of your life.’ That sums it up pretty well. It is an online journaling/diary app that allows you to keep track of your life in with ease and style. While I don’t want to reveal all the details now, let’s just say that we’ve focused on simplicity and usability. You won’t be disappointed.&lt;/p></description></item><item><title>Monitor Nginx and disk-usage with Monit</title><link>https://vpetersson.com/2010/07/12/monitor-nginx-and-disk-usage-with-monit/</link><pubDate>Mon, 12 Jul 2010 12:19:58 +0300</pubDate><guid>https://vpetersson.com/2010/07/12/monitor-nginx-and-disk-usage-with-monit/</guid><description>&lt;p>Yesterday I posted an article on &lt;a href="https://vpetersson.com/2010/07/09/setting-up-monit-to-monitor-apache-and-postgresql-on-ubuntu/">how to monitor Apache and PostgreSQL with Monit&lt;/a>. After setting that up I was amazed how simple and flexible Monit was, so I moved on with two more tasks: monitor Nginx and disk usage.&lt;/p>
&lt;p>This article assumes that you’ve set up Monit in accordance with the previous article. It also assumes that you’re on Ubuntu 9.10 or 10.04. If you use a different Linux or Unix flavor, you will probably need to modify a few paths.&lt;/p></description></item><item><title>Setting up Monit to monitor Apache and PostgreSQL on Ubuntu</title><link>https://vpetersson.com/2010/07/09/setting-up-monit-to-monitor-apache-and-postgresql-on-ubu/</link><pubDate>Fri, 09 Jul 2010 18:05:32 +0300</pubDate><guid>https://vpetersson.com/2010/07/09/setting-up-monit-to-monitor-apache-and-postgresql-on-ubu/</guid><description>&lt;p>&lt;a href="http://mmonit.com/monit/">Monit&lt;/a> is a great little utility that monitors your daemons. If a daemon fails, Monit will start the daemon it will automatically restart the process. It comes in very handy if for web-servers, such as Apache.&lt;/p>
&lt;p>For &lt;a href="http://www.redigone.com">Red iGone&lt;/a> we use Apache as the web-server, and PostgreSQL as the database. I wanted to configure Monit to keep an eye on these processes. As it turns out, setting up Monit was really straight-forward.&lt;/p></description></item><item><title>Website review session from Google I/O</title><link>https://vpetersson.com/2010/06/04/website-review-session-from-google-io/</link><pubDate>Fri, 04 Jun 2010 21:27:01 +0000</pubDate><guid>https://vpetersson.com/2010/06/04/website-review-session-from-google-io/</guid><description>&lt;p>If you are new to SEO, or just want to learn more about SEO, Matt Cutts and a few colleagues did a really good presentation on Google I/O where they went through several websites and reviewd them from an SEO perspective. The whole presentation is about an hour long, but well worth watching.&lt;/p>
&lt;p>&lt;object width="640" height="385">&lt;param name="movie" value="http://www.youtube.com/v/7Hk5uVv8JpM&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0">&lt;param name="allowFullScreen" value="true">&lt;param name="allowscriptaccess" value="always">&lt;embed src="http://www.youtube.com/v/7Hk5uVv8JpM&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385">&lt;/embed>&lt;/object>&lt;/p></description></item><item><title>How to install ZoneMinder 1.24.2 on Ubuntu 10.04 LTS Server</title><link>https://vpetersson.com/2010/05/23/how-to-install-zoneminder-1-24-2-on-ubuntu-10-04-lts-ser/</link><pubDate>Sun, 23 May 2010 17:18:32 +0300</pubDate><guid>https://vpetersson.com/2010/05/23/how-to-install-zoneminder-1-24-2-on-ubuntu-10-04-lts-ser/</guid><description>&lt;p>Last week I published a new version of my &lt;a href="https://vpetersson.com/open-source/zoneminder-virtual-appliance">ZoneMinder Virtual Appliance&lt;/a>. The virtual appliance is great if you want to easily deploy ZoneMinder without having to spend time setting it up. However, in some situations, you want to run ZoneMinder directly on the hardware. Perhaps you need better performance or simply need to capture video streams from V4L-devices.&lt;/p>
&lt;p>Since I already spent the time getting it running, I thought I’d share the instructions for getting it running. It’s pretty straight forward, but there are a few minor things that took me some time to get around.&lt;/p></description></item><item><title>Trouble with ZoneMinder VA 0.2 and VMware Server 2</title><link>https://vpetersson.com/2010/05/17/trouble-with-zoneminder-va-0-2-and-vmware-server-2/</link><pubDate>Mon, 17 May 2010 13:53:57 +0300</pubDate><guid>https://vpetersson.com/2010/05/17/trouble-with-zoneminder-va-0-2-and-vmware-server-2/</guid><description>&lt;p>Last week I launched &lt;a href="https://vpetersson.com/open-source/zoneminder-virtual-appliance/">ZoneMinder VA 0.2&lt;/a>. Unfortunately there is an issue with the image that prevents it from loading properly into VMware Server 2. The root of the problem is actually an incompatibility issue between VMware Fusion and VMware Server, but that doesn’t matter. Fortunately the workaround is pretty simple.&lt;/p>
&lt;ul>
&lt;li>Delete any vmdk.lck directries&lt;/li>
&lt;li>Delete any vmem.lck directories&lt;/li>
&lt;li>Delete the quicklook-cache.png file&lt;/li>
&lt;li>Edit the .vmx file and set to FALSE entries for USB, SOUND and SERIAL.&lt;/li>
&lt;/ul></description></item><item><title>Red iGone screencast/demo</title><link>https://vpetersson.com/2010/05/15/red-igone-screencastdemo/</link><pubDate>Sat, 15 May 2010 22:43:44 +0300</pubDate><guid>https://vpetersson.com/2010/05/15/red-igone-screencastdemo/</guid><description>&lt;p>I just recorded a screencast of &lt;a href="http://www.redigone.com">Red iGone&lt;/a> in action. The video is a bit rough (in particular the audio), but I hope it gets the message across. Enjoy.&lt;/p>
&lt;p>&lt;object width="480" height="385">&lt;param name="movie" value="http://www.youtube.com/v/f0vwjg9XOI4&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;">&lt;param name="allowFullScreen" value="true">&lt;param name="allowscriptaccess" value="always">&lt;embed src="http://www.youtube.com/v/f0vwjg9XOI4&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385">&lt;/embed>&lt;/object>&lt;/p></description></item><item><title>Hello Grub, you suck!</title><link>https://vpetersson.com/2010/05/14/hello-grub-you-suck/</link><pubDate>Fri, 14 May 2010 15:59:43 +0300</pubDate><guid>https://vpetersson.com/2010/05/14/hello-grub-you-suck/</guid><description>&lt;p>In the last few weeks I had to set up a few new Linux servers. Since Ubuntu is my preferred Linux dist in recent years, 10.04 LTS was a natural choice.&lt;/p>
&lt;p>Ubuntu 10.04 LTS is a great Linux distribution, with one exception: Grub. I really mean it. Grub is probably the worst boot loader to date. Is so bad that it could equally well be replaced with the following shell script:&lt;/p></description></item><item><title>ZoneMinder Virtual Appliance 0.2 Released</title><link>https://vpetersson.com/2010/05/09/zoneminder-virtual-appliance-0-2-released/</link><pubDate>Sun, 09 May 2010 22:54:34 +0300</pubDate><guid>https://vpetersson.com/2010/05/09/zoneminder-virtual-appliance-0-2-released/</guid><description>&lt;p>ZoneMinder is a great piece software. It is a very powerful video surveillance tool that can be configured with both IP cameras and regular cameras (via V4L). Unfortunately it is a bit difficult to get up and running with. A while back I needed to deploy ZoneMinder myself for a client. One thing lead to another, and I ended up with a fully working Virtual Machine for ZoneMinder. I uploaded it here just for fun, but it didn’t take long before I had was linked to from the official ZoneMinder project and the visitors started to pour in.&lt;/p></description></item><item><title>We've taken over the management of Google Community.com</title><link>https://vpetersson.com/2010/04/30/weve-taken-over-the-management-of-google-community-com/</link><pubDate>Fri, 30 Apr 2010 14:28:19 +0300</pubDate><guid>https://vpetersson.com/2010/04/30/weve-taken-over-the-management-of-google-community-com/</guid><description>&lt;p>A while back, WireLoad took over the management for the forum &lt;a href="http://www.googlecommunity.com">Google Community.com&lt;/a>. I&amp;rsquo;ve been a member of the forum for a few years, and seen how it has gone from a lively forum to a spam-infested forum with hardly any active members. As the spam increased, all the serious and senior members went away.&lt;/p>
&lt;p>I knew that the forum had potential. It used to generate a massive amount of traffic and has more than 40,000 registered members. We actually used to receive a significant amount of traffic from Google Community to YippieMove, but as the traffic dropped, so did the traffic coming from Google Community over to YippieMove.&lt;/p></description></item><item><title>Year 2010: Nokia relaunches Danger's Sidekick 2</title><link>https://vpetersson.com/2010/04/27/year-2010-nokia-relaunches-dangers-sidekick-2/</link><pubDate>Tue, 27 Apr 2010 14:27:24 +0300</pubDate><guid>https://vpetersson.com/2010/04/27/year-2010-nokia-relaunches-dangers-sidekick-2/</guid><description>&lt;p>The hat is off to Nokia. They’ve managed to stay inside their cave in Finland while the rest of the world evolved. First they tried to sue Apple over some vague copyright infringement, while we all know that it was really just a desperate attempt to get some press. While Nokia once was an innovative cellphone manufacturer, I really don’t know what went wrong. Today Nokia did something remarkable though: They re-launched Danger’s Sidekick 2 under the name N8. Take a look at the similarities after the jump. Well done Nokia. The Sidekick 2 was released in 2002. Eight years later you release the same product. Astonishing.&lt;/p></description></item><item><title>Just launched Red iGone</title><link>https://vpetersson.com/2010/04/21/just-launched-red-igone/</link><pubDate>Wed, 21 Apr 2010 21:29:40 +0300</pubDate><guid>https://vpetersson.com/2010/04/21/just-launched-red-igone/</guid><description>&lt;p>Two days ago we launched &lt;a href="http://www.redigone.com">Red iGone&lt;/a> — the easiest way to remove red-eyes out of you photos. It’s a dead-simple tool. Just upload your photo, select the red eye, let Red iGone work its magic, and download the enhanced photo.&lt;/p>
&lt;p>It’s fully web-based, and does not require anything else than your web browser. While it is still in beta, it works pretty well (with occasional hick-ups).&lt;/p>
&lt;p>Only hours after launching, we had received 20 some tweets, a few hundred unique visitors and two blog-reviews, so I think it is looking pretty promising.&lt;/p></description></item><item><title>I'm going VoIP - Unboxing Snom M3.</title><link>https://vpetersson.com/2010/03/16/im-going-voip-unboxing-snom-m3/</link><pubDate>Tue, 16 Mar 2010 17:44:23 +0200</pubDate><guid>https://vpetersson.com/2010/03/16/im-going-voip-unboxing-snom-m3/</guid><description>&lt;p>For many years I’ve been excited about VoIP. I attended a seminar on Asterisk 7 years or so ago, and remember thinking: Wow, this is the future. Unfortunately there were many things holding VoIP back then (bandwidth being the most obvious one). However, today most companies can get a decent internet connection (10Mbit up and down will do). Moreover, you won’t even have to get dirty with setting up your own Asterisk server today, you can simply go for a hosted PBX-solution. This is both cheaper (assuming you can’t do it yourself) and probably more reliable.&lt;/p></description></item><item><title>Brilliant set of SEO bookmarks</title><link>https://vpetersson.com/2010/02/09/brilliant-set-of-seo-bookmarks/</link><pubDate>Tue, 09 Feb 2010 13:56:05 +0200</pubDate><guid>https://vpetersson.com/2010/02/09/brilliant-set-of-seo-bookmarks/</guid><description>&lt;p>SEO legend Rand Fishkin just published a &lt;a href="http://www.seomoz.org/blog/30-seo-bookmarklets-to-save-you-time">brilliant post&lt;/a> over at SEOMoz. It’s simple and beautiful. It’s a set of 30 bookmarks for automating bits and pieces of SEO and SERPS analysis. Kudos to Rand for putting it out there.&lt;/p></description></item><item><title>Want to learn about SEO?</title><link>https://vpetersson.com/2010/02/04/want-to-learn-about-seo/</link><pubDate>Thu, 04 Feb 2010 22:42:37 +0200</pubDate><guid>https://vpetersson.com/2010/02/04/want-to-learn-about-seo/</guid><description>&lt;p>If you’re new to Search Engine Optimization, or SEO, you might want to take a look at &lt;a href="http://www.google.com/webmasters/docs/search-engine-optimization-starter-guide.pdf">this&lt;/a> brief e-book from Google.&lt;/p>
&lt;p>It goes over the most basic aspects of SEO. That said, even if you consider yourself a savvy-webmaster, it could still be worth your time just in case you missed something&lt;/p></description></item><item><title>New email troubleshooting guide</title><link>https://vpetersson.com/2010/02/04/new-email-troubleshooting-guide/</link><pubDate>Thu, 04 Feb 2010 12:11:26 +0200</pubDate><guid>https://vpetersson.com/2010/02/04/new-email-troubleshooting-guide/</guid><description>&lt;p>I just published a guide on how to troubleshoot email over at &lt;a href="http://www.emailserviceguide.com/email-troubleshooting-guide/">Email Service Guide&lt;/a>. It’s fairly straight forward, but does require a bit of technical skills.&lt;/p>
&lt;p>The reason why I wrote the guide was actually because I quite frequently found myself Googling for a good IMAP cheat sheet (the RFC is not very good for this). Once I started writing, I realized that it wouldn’t take a whole lot more effort to include POP3 and SMTP as well (since the technique is the same). So I included them too.&lt;/p></description></item><item><title>Two new partners for YippieMove</title><link>https://vpetersson.com/2010/02/03/two-new-partners-for-yippiemove/</link><pubDate>Wed, 03 Feb 2010 16:05:04 +0200</pubDate><guid>https://vpetersson.com/2010/02/03/two-new-partners-for-yippiemove/</guid><description>&lt;p>Today we just introduced two new partners for YippieMove: LTech and Weird Kid Software. They’re both leaders in their particular niche and we’re excited to start working with them.&lt;/p>
&lt;p>For more information, see the &lt;a href="http://www.yippiemove.com/partners.html">partner-page&lt;/a> at YippieMove.com.&lt;/p></description></item></channel></rss>