<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Joakim Westin</title><link>http://www.jwab.net/posts/</link><description>Recent content in Posts on Joakim Westin</description><generator>Hugo -- 0.140.2</generator><language>en-us</language><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Mon, 30 Sep 2024 00:00:00 +0000</lastBuildDate><atom:link href="http://www.jwab.net/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Use Azurite wih DuckDb for local development</title><link>http://www.jwab.net/posts/duckb-and-azurite/</link><pubDate>Mon, 30 Sep 2024 00:00:00 +0000</pubDate><guid>http://www.jwab.net/posts/duckb-and-azurite/</guid><description>&lt;p>My favourite tool for ad-hoc data work is now &lt;a href="https://duckdb.org">DuckDb&lt;/a>.&lt;/p>
&lt;p>Here I will show you how you can use DuckDb and the Azure Storage Emulator &lt;a href="https://learn.microsoft.com/azure/storage/common/storage-use-azurite?tabs=visual-studio%2Cblob-storage">Azurite&lt;/a>.&lt;/p>
&lt;pre tabindex="0">&lt;code>docker run -d --name azurite -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite
&lt;/code>&lt;/pre>&lt;p>Once the emulator is running, create a container and add some files (*.csv or *.parquet) to the container.&lt;/p>
&lt;p>Then start the DuckDb CLI. Install the &lt;a href="https://duckdb.org/docs/extensions/azure.html">Azure extension&lt;/a> in DuckDb and configure the secret to use a connection string to the local emulator:&lt;/p></description></item><item><title>Shokz OpenComm</title><link>http://www.jwab.net/posts/aftershokz-opencomm/</link><pubDate>Tue, 10 Aug 2021 08:13:31 +0200</pubDate><guid>http://www.jwab.net/posts/aftershokz-opencomm/</guid><description>&lt;p>Earlier this summer I bought myself the &lt;a href="https://shokz.com/products/opencomm">Shokz OpenComm&lt;/a> headset. I needed a headset that would let me hear my surroundings while still being able to let me hear speech clearly in all circumstances (I&amp;rsquo;m a volunteer in with &lt;a href="https://www.sjoraddning.se/">Sjödärddningssällskapet&lt;/a> and frequently find myself in nosiy environments)&lt;/p>
&lt;figure>
&lt;img loading="lazy" src="AfterShokz-OpenComm.png"
alt="AfterShokz OpenComm headset" width="512px"/>
&lt;/figure>
&lt;p>After using them for a few months I am a very happy user. They sit comfortably on my ears, they let me hear my surroundings and most importantly - the let me hear all speech clearly, regardless of the surrounding noices.&lt;/p></description></item><item><title>Azure Cloud Shell</title><link>http://www.jwab.net/posts/azure-cloud-shell/</link><pubDate>Fri, 08 Jun 2018 00:00:00 +0000</pubDate><guid>http://www.jwab.net/posts/azure-cloud-shell/</guid><description>&lt;p>I&amp;rsquo;ve been working with Azure since well before the days&amp;hellip; There have been a lot of confusion and the command line experience have been so-and-so. But today the situation is a lot better when Microsoft have decided to focus on a better CLI for us all.&lt;/p>
&lt;p>The CLI of preference is built on top of Python. It is available for &lt;a href="https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest">all popular client platforms&lt;/a>. It is also available for those of us who love working in the browser.&lt;/p></description></item><item><title>Be God</title><link>http://www.jwab.net/posts/be-god/</link><pubDate>Wed, 09 Jul 2014 00:00:00 +0000</pubDate><guid>http://www.jwab.net/posts/be-god/</guid><description>&lt;p>If you want to feel like God in your own Windows 8 universe, try this little powerShell one-liner:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">New-Item&lt;/span> &lt;span class="n">-ItemType&lt;/span> &lt;span class="n">Directory&lt;/span> &lt;span class="n">-Path&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$env:USERPROFILE&lt;/span>&lt;span class="s2">\Desktop\GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;p>This will add an icon to your desktop similar to this one
&lt;img alt="God Mode" loading="lazy" src="http://www.jwab.net/godmode.png" title="God Mode">&lt;/p></description></item><item><title>Can we have “Latest” URLs for downloads, please!</title><link>http://www.jwab.net/posts/can-we-have-latest-urls-for-downloads-please/</link><pubDate>Sat, 24 May 2014 15:01:33 +0100</pubDate><guid>http://www.jwab.net/posts/can-we-have-latest-urls-for-downloads-please/</guid><description>&lt;h2 id="background">Background&lt;/h2>
&lt;p>I spend much time hunting for the latest version of software packages. This is part of my job as a consultant. I’m frequently setting up test, demo and prototype environments. I do this in order to keep myself in synch with new technologies. And to help others learn and use new technology.&lt;/p>
&lt;p>I write presentations, demos, blog posts, instructions, howtos etc.&lt;/p>
&lt;h2 id="the-problem">The Problem&lt;/h2>
&lt;p>As the release cycles gets shorter and shorter it is becoming increasingly hard to write good instructions. For example, If I need to explain how to install the latest “Windows Management Framework” I will need a very specific URL. (As of this writing the latest I have found is the &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=42936">may preview&lt;/a>)&lt;/p></description></item><item><title>Installing Ubuntu 14.04 LTS as a Generation 2 Hyper-V guest</title><link>http://www.jwab.net/posts/installing-ubuntu-14-04-lts-as-a-generation-2-hyper-v-guest/</link><pubDate>Wed, 21 May 2014 00:00:00 +0000</pubDate><guid>http://www.jwab.net/posts/installing-ubuntu-14-04-lts-as-a-generation-2-hyper-v-guest/</guid><description>&lt;p>Since Microsoft release Windows Server 2012 R2 Hyper-V have had two different generations of virtual machines. The old “Generation 1” and the new “Generation 2”. Microsoft added generation 2 to get rid of the old stuff that really doesn’t make sense in a virtual world. And also to add new stuff. Generation 2 virtual machines provide the following new functionality:&lt;/p>
&lt;ul>
&lt;li>PXE boot by using a standard network adapter&lt;/li>
&lt;li>Boot from a SCSI virtual hard disk&lt;/li>
&lt;li>Boot from aSCSI virtual DVD&lt;/li>
&lt;li>Secure Boot (on by default)&lt;/li>
&lt;li>UEFI firmware support&lt;/li>
&lt;/ul>
&lt;p>As can be expected all of these features worked fine straight away with Windows 8 (64-bit) and Windows Server 2012 or later. But they did not work well with Linux. Until now.&lt;/p></description></item><item><title>PowerShell loves enumerations</title><link>http://www.jwab.net/posts/powershell-loves-enumerations/</link><pubDate>Thu, 08 May 2014 00:00:00 +0000</pubDate><guid>http://www.jwab.net/posts/powershell-loves-enumerations/</guid><description>&lt;p>One of the things that make PowerShell oh-so-great is its tight integration with .NET Framework. As a simple example, in the framework there are many pre-define values, often stored as enumerated types. Enums are great because they allow us to define a set of values and then let the user (or program) choose among these values.&lt;/p>
&lt;p>Another great thing with PowerShell is that it makes command arguments ‘pickable’ on the command line. So if I’m running a command and I am unsure of which arguments can be used I can simply press tab and I will se the first valid parameter value.
Let me show you the simple beauty of Enums together with PowerShell scripts.&lt;/p></description></item><item><title>$env:HOME doesn’t work in PowerShell $PROFILE</title><link>http://www.jwab.net/posts/envhome-doesnt-work-in-powershell-profile/</link><pubDate>Mon, 05 May 2014 14:55:24 +0100</pubDate><guid>http://www.jwab.net/posts/envhome-doesnt-work-in-powershell-profile/</guid><description>&lt;p>Today I wanted to setup my PowerShell $PROFILE to make it easier to work with all the modules I learned about at the &lt;a href="http://powershell.org/wp/community-events/summit/">PowerShell Summit&lt;/a>. I wanted to add an additional path to the environment variable $PSModulePath. Something that should be a picece of cake.&lt;/p>
&lt;p>I store additional modules in the folder ‘Documents\WindowsPowerShell\Modules’ under my userdirectory (C:\Users\Joakim). So simply joining the path using Join-Path and add the result to $ENV:PSModulePath should do the trick:&lt;/p></description></item><item><title>Quick way to name your NICs in Windows Servers</title><link>http://www.jwab.net/posts/quick-way-to-name-your-nics-in-windows-servers/</link><pubDate>Wed, 18 Sep 2013 14:52:00 +0100</pubDate><guid>http://www.jwab.net/posts/quick-way-to-name-your-nics-in-windows-servers/</guid><description>&lt;p>If you, like me, manage many servers, it’s essential to name network adapters in a way that makes it easy to troubleshoot issues when they arise.&lt;/p>
&lt;p>In complex networks with thousands of servers and all servers connected using multiple paths a consistent naming standard is very important!&lt;/p>
&lt;p>PowerShell and the cmdlets available in Windows Server makes naming adapters a breeze. The servers we usualy deploy have built in four (4) port network adapters. We like to name the Windows NICs the same as is the default in Linux; eth0, eth1, etc.&lt;/p></description></item><item><title>Minimal CentOS 6.4 with Hyper-V</title><link>http://www.jwab.net/posts/minimal-centos-6-4-with-hyper-v/</link><pubDate>Sat, 13 Apr 2013 14:31:00 +0100</pubDate><guid>http://www.jwab.net/posts/minimal-centos-6-4-with-hyper-v/</guid><description>&lt;p>Now that CentOS includes the kernel drivers for Hyper-V it is very easy to setup a CentOS 6.4 based server in Hyper-V. Download the “minimal” ISO and create a new Hyper-V VM. Run through the installation and reboot.&lt;/p>
&lt;p>What you will notice when logging in is that the eth0 NIC has not been started. This is normal and if you want to access the network with a DHCP assigned address simply start the interface:&lt;/p></description></item></channel></rss>