<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Story of David Kaspar</title>
	<atom:link href="https://blog.davidkaspar.com/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.davidkaspar.com/</link>
	<description>Online journal and ponderings about the Internet, gadgets and photography.</description>
	<lastBuildDate>Sat, 11 Oct 2025 12:30:42 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://blog.davidkaspar.com/wp-content/uploads/2020/05/chubby.gif</url>
	<title>The Story of David Kaspar</title>
	<link>https://blog.davidkaspar.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>When Fashion Becomes Poetry: Inside House of Eff</title>
		<link>https://blog.davidkaspar.com/archives/2025/10/when-fashion-becomes-poetry-inside-house-of-eff.php</link>
					<comments>https://blog.davidkaspar.com/archives/2025/10/when-fashion-becomes-poetry-inside-house-of-eff.php#respond</comments>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Sat, 11 Oct 2025 12:30:39 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://blog.davidkaspar.com/?p=524</guid>

					<description><![CDATA[<p>In a world obsessed with the new, House of Eff dares to ask a different question: What if true luxury lies not in the untouched, but in the transformed? This is the philosophy behind Wearable Poetry. The radical idea that every discarded treasure deserves a second act. At House of Eff, abandoned beauty isn&#8217;t mourned; &#8230; <a href="https://blog.davidkaspar.com/archives/2025/10/when-fashion-becomes-poetry-inside-house-of-eff.php" class="more-link">Continue reading<span class="screen-reader-text"> "When Fashion Becomes Poetry: Inside House of Eff"</span></a></p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2025/10/when-fashion-becomes-poetry-inside-house-of-eff.php">When Fashion Becomes Poetry: Inside House of Eff</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="alignleft size-large is-resized"><img fetchpriority="high" decoding="async" width="683" height="1024" src="https://blog.davidkaspar.com/wp-content/uploads/2025/10/DSC_1541-scaled-1-683x1024.jpg" alt="" class="wp-image-525" style="width:239px;height:auto" srcset="https://blog.davidkaspar.com/wp-content/uploads/2025/10/DSC_1541-scaled-1-683x1024.jpg 683w, https://blog.davidkaspar.com/wp-content/uploads/2025/10/DSC_1541-scaled-1-200x300.jpg 200w, https://blog.davidkaspar.com/wp-content/uploads/2025/10/DSC_1541-scaled-1-768x1152.jpg 768w, https://blog.davidkaspar.com/wp-content/uploads/2025/10/DSC_1541-scaled-1-1024x1536.jpg 1024w, https://blog.davidkaspar.com/wp-content/uploads/2025/10/DSC_1541-scaled-1-1366x2048.jpg 1366w, https://blog.davidkaspar.com/wp-content/uploads/2025/10/DSC_1541-scaled-1-1200x1800.jpg 1200w, https://blog.davidkaspar.com/wp-content/uploads/2025/10/DSC_1541-scaled-1.jpg 1707w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></figure>
</div>


<p>In a world obsessed with the new, House of Eff dares to ask a different question: What if true luxury lies not in the untouched, but in the transformed?</p>



<p>This is the philosophy behind <strong>Wearable Poetry</strong>. The radical idea that every discarded treasure deserves a second act. At House of Eff, abandoned beauty isn&#8217;t mourned; it&#8217;s resurrected. Forgotten materials find new purpose. Cast-off elements become statement pieces.</p>



<p> The brand&#8217;s approach is both artisan and alchemist. Each <a href="https://houseofeff.com">handcrafted earring, clutch, and cushion</a> carries within it the narrative of transformation. The quiet story of something once overlooked, now elevated to art. These aren&#8217;t mass-produced accessories.</p>



<p> They&#8217;re individual acts of creative reimagining, where sustainability meets sophistication.</p>



<p> The aesthetic matches the philosophy: dark, contemplative, refined. Deep midnight blues and sophisticated greys create an atmosphere of intentionality. Typography speaks in whispers rather than shouts. Every detail (from the Cormorant Unicase headlines to the generous negative space) reinforces the same message: beauty can be found in what we choose to see, in what we dare to reimagine.</p>



<p> House of Eff proves that conscious consumption doesn&#8217;t require sacrifice. Instead, it offers something more valuable: pieces with soul, with history, with poetry woven into their very fabric.</p>



<p> True luxury, it turns out, isn&#8217;t about perfection. It&#8217;s about transformation.</p>



<p> <strong>Discover the wearable poetry at <a href="https://houseofeff.com">House of Eff</a></strong></p>



<p></p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2025/10/when-fashion-becomes-poetry-inside-house-of-eff.php">When Fashion Becomes Poetry: Inside House of Eff</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.davidkaspar.com/archives/2025/10/when-fashion-becomes-poetry-inside-house-of-eff.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Rebalancing lightning channels after a lightning liquidity swap</title>
		<link>https://blog.davidkaspar.com/archives/2021/12/rebalancing-lightning-channels-after-a-lightning-liquidity-swap.php</link>
					<comments>https://blog.davidkaspar.com/archives/2021/12/rebalancing-lightning-channels-after-a-lightning-liquidity-swap.php#respond</comments>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Sat, 25 Dec 2021 20:36:50 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bitcoin]]></category>
		<category><![CDATA[lightning]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">https://blog.davidkaspar.com/?p=474</guid>

					<description><![CDATA[<p>Well done, you have participated in a lightning liquidity swap and all channels are open (future post about how to actually do the swap and common problems). Now you should see a new incoming channel and a new outgoing channel. The incoming channel will have all the liquidity remotely and your outgoing channel will have &#8230; <a href="https://blog.davidkaspar.com/archives/2021/12/rebalancing-lightning-channels-after-a-lightning-liquidity-swap.php" class="more-link">Continue reading<span class="screen-reader-text"> "Rebalancing lightning channels after a lightning liquidity swap"</span></a></p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2021/12/rebalancing-lightning-channels-after-a-lightning-liquidity-swap.php">Rebalancing lightning channels after a lightning liquidity swap</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Well done, you have participated in a lightning liquidity swap and all channels are open (future post about how to actually do the swap and common problems).</p>



<p>Now you should see a new incoming channel and a new outgoing channel. The incoming channel will have all the liquidity remotely and your outgoing channel will have all the liquidity locally.</p>



<p>This means that no lightning payments can be routed via you. You have to balance those channels to have 50% local and 50% remote liquidity.</p>



<p>In summary your will pay yourself half of the channel capacity and route the payment through all the swap participants. This will result in all channels in the swap to become 50/50 balanced.</p>



<p><img decoding="async" width="150" height="121" class="wp-image-481" style="width: 150px;" src="https://blog.davidkaspar.com/wp-content/uploads/2021/12/Screen-Shot-2021-12-25-at-15.21.05.png" alt="triangle swap" srcset="https://blog.davidkaspar.com/wp-content/uploads/2021/12/Screen-Shot-2021-12-25-at-15.21.05.png 321w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/Screen-Shot-2021-12-25-at-15.21.05-300x243.png 300w" sizes="(max-width: 150px) 85vw, 150px" />Case 1: Now for a simple triangle swap, where there are only two other participants, you can use the plugin <a href="https://www.thunderhub.io/" target="_blank" rel="noreferrer noopener">Thunderhub</a> or <a href="https://github.com/Ride-The-Lightning/RTL" target="_blank" rel="noreferrer noopener">Ride The Lightning</a> (RTL) to perform this payment.</p>



<p>Select the node you connected to as Outgoing. You should see 100% blue bar, this means the balance is all on your side (local).</p>



<p>Select the node that connected to you as Incoming. You should see a 100% green bar, this means that the balance is all on the other side (remote).</p>



<figure class="wp-block-image size-full"><img decoding="async" width="777" height="384" src="https://blog.davidkaspar.com/wp-content/uploads/2021/12/Screen-Shot-2021-12-25-at-15.22.26.png" alt="" class="wp-image-488" srcset="https://blog.davidkaspar.com/wp-content/uploads/2021/12/Screen-Shot-2021-12-25-at-15.22.26.png 777w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/Screen-Shot-2021-12-25-at-15.22.26-300x148.png 300w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/Screen-Shot-2021-12-25-at-15.22.26-768x380.png 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /><figcaption>Thunder Hub rebalance channel dialog</figcaption></figure>



<p>Set the fees to something you are comfortable with, perhaps 100 for each field.</p>



<pre class="wp-block-verse"> If your swap participants have done their job they have lowered all fees to 0 and the rebalance should be free.</pre>



<p>Set the amount to <strong>Fixed</strong> and half the channel size (or slightly less if you get liquidity problems).</p>



<p>Hit rebalance!</p>



<p><img loading="lazy" decoding="async" width="150" height="123" class="wp-image-482" style="width: 150px;" src="https://blog.davidkaspar.com/wp-content/uploads/2021/12/Screen-Shot-2021-12-25-at-15.21.35.png" alt="Pentagram swap" srcset="https://blog.davidkaspar.com/wp-content/uploads/2021/12/Screen-Shot-2021-12-25-at-15.21.35.png 334w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/Screen-Shot-2021-12-25-at-15.21.35-300x245.png 300w" sizes="auto, (max-width: 150px) 85vw, 150px" />Case 2: For any more complicated swaps like a square (4 participants) or a pentagram (5 participants) you will have to build an exact payment route through all the participants to do the balancing correctly (and cheaply).</p>



<h2 class="wp-block-heading">You still want to pay yourself half the channel size but it has to go out to the node you connected to, then via each participant in the correct order, and then back in via the node that connected to you.</h2>



<p>You will have to use the <code>lncli</code> command after you SSH to your node to perform this more complicated payment.</p>



<p>Some swap sites like <a href="https://lightningnetwork.plus/" target="_blank" rel="noreferrer noopener">lightningnetwork.plus</a> will prepare the correct route for you already. Please start by running the provided command to test whether the route works correctly:</p>



<p><code>lncli buildroute --amt [AMOUNT] --hops 1a613234234116def5de68...,7243578234df738...,87827ea233...,014aea43432244...,0a34324445...</code></p>



<pre class="wp-block-verse">Replace the example hops with the actual <meta charset="utf-8">public keys of the nodes in your swap.</pre>



<p>If all is well you will get a json output with a prebuilt route and the cost for this transfer:</p>



<p><code>{<br>   "route": {<br>      "total_time_lock": 715773,<br>      "total_fees": "4",<br>      "total_amt": "1250004",<br>      "hops": [<br>        {…</code></p>



<pre class="wp-block-verse">If the fees seem too high then you should start a dialog with the other swap participants to lower their channel fees. Skill levels of the participants varies widely and you may need to assist them.</pre>



<p>You can now prepare an invoice which will be the payment to yourself since the routing appears to be successful:</p>



<p><code>lncli addinvoice --amt [AMOUNT]</code></p>



<p>This command will return you a PAYMENT_ADDR and a R_HASH that you have to use in the below step.</p>



<p>You can now run the command provided by your service that will in a single line build the route using <meta charset="utf-8"><code>lncli buildroute</code>,  add a multi-payment record (mpp) using the <code>jq</code> utility and then send the payment using <code>lncli sendtoroute</code>:</p>



<p><code>lncli buildroute --amt [AMOUNT] --hops 1a613234234116def5de68…,7243578234df738…,87827ea233…,014aea43432244…,0a34324445… | jq -r '(.route.hops[-1] | .mpp_record) |= {payment_addr:"[PAYMENT_ADDR]", total_amt_msat: "[AMOUNT]"}' | lncli sendtoroute --payment_hash=[R_HASH] -</code></p>



<pre class="wp-block-verse">You can also construct the hops manually by hand by starting with the node you connected to, traverse the participants one by one and finishing with the public key of your own node.</pre>



<p>If all goes well, you should get a SUCCESS result code and also information about the total fees paid.</p>



<p>Congratulations, you are now balanced!</p>



<p class="has-medium-font-size">Common problems with liquidity rebalancing</p>



<p class="has-normal-font-size"><img loading="lazy" decoding="async" width="10" height="19" class="wp-image-486" style="width: 10px;" src="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png" alt="" srcset="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png 318w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_-157x300.png 157w" sizes="auto, (max-width: 10px) 85vw, 10px" /> Not all channels have been set up.</p>



<p>The swap participants are reporting that they all have opened channels but how can you be sure? The <meta charset="utf-8"><code>lncli buildroute</code> command is a quick way to test that the route is correctly set up. </p>



<p class="has-normal-font-size"><img loading="lazy" decoding="async" width="10" height="19" class="wp-image-486" style="width: 10px;" src="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png" alt="" srcset="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png 318w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_-157x300.png 157w" sizes="auto, (max-width: 10px) 85vw, 10px" /> Private channels</p>



<p>If a swap participant accidentally created a private channel instead of a public one then the liquidity swap will not work. </p>



<p class="has-normal-font-size"><meta charset="utf-8"><img loading="lazy" decoding="async" width="10" height="19" class="wp-image-486" style="width: 10px;" src="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png" alt="" srcset="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png 318w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_-157x300.png 157w" sizes="auto, (max-width: 10px) 85vw, 10px" /> Not enough liquidity in existing channels</p>



<p>A participant can accidentally crate a smaller channel than specified.</p>



<p>I have also seen cases where participants already had existing channels with the other participants so they didn&#8217;t feel like creating additional ones.</p>



<p>This will however break the swap as the liquidity in the swap is less than was specified. Rebalancing will not work for example.</p>



<p><meta charset="utf-8"><img loading="lazy" decoding="async" width="10" height="19" class="wp-image-486" style="width: 10px;" src="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png" alt="" srcset="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png 318w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_-157x300.png 157w" sizes="auto, (max-width: 10px) 85vw, 10px" /> Remote node is down</p>



<p>You are unable to open the channel and you see errors like <code>503, 'FailedToSuccessfullyConnectToRemotePeer'</code>.</p>



<p>This is likely due to the remote node being down, having TOR configuration issues or other resource problems. A restart of the remote node often helps.</p>



<p>Divide the channel opening process into two steps: 1) connect to the peer first and 2) open the channel with the existing peer</p>



<p><meta charset="utf-8"><img loading="lazy" decoding="async" width="10" height="19" class="wp-image-486" style="width: 10px;" src="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png" alt="" srcset="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png 318w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_-157x300.png 157w" sizes="auto, (max-width: 10px) 85vw, 10px" /> Node not accepting the specified channel size in the swap</p>



<p>A node can be misconfigured to only allow chanel size above a certain size&#8230; a size that is larger than the swap. Often this is due to am extra zero in the required channel size.</p>



<p><meta charset="utf-8"><img loading="lazy" decoding="async" width="10" height="19" class="wp-image-486" style="width: 10px;" src="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png" alt="" srcset="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png 318w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_-157x300.png 157w" sizes="auto, (max-width: 10px) 85vw, 10px" /> Blockchain reorg</p>



<p>Luckily this hasn&#8217;t happened to me but there is a theoretical scenario where the open channel has only one confirmation and due to blockchain reorg that transaction becomes void. Wait for a few confirmations before using a newly open channel!</p>



<p><meta charset="utf-8"><img loading="lazy" decoding="async" width="10" height="19" class="wp-image-486" style="width: 10px;" src="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png" alt="" srcset="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png 318w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_-157x300.png 157w" sizes="auto, (max-width: 10px) 85vw, 10px" /> You are using Umbrel and thus LND in a Docker container. You get the error &#8220;The input device is not a TTY&#8221;</p>



<p>Umbrel is popular Lightning node operating system. If uses docker container for many of the require services, such as lncli. This means you don&#8217;t have direct access to lcnli and linux &#8220;piping&#8221; between processes doesn&#8217;t work.</p>



<p>Split the routing command into two steps:</p>



<p><code>lncli buildroute --amt [AMOUNT] --hops 1a613234234116def5de68…,7243578234df738…,87827ea233…,014aea43432244…,0a34324445… | jq -r '(.route.hops[-1] | .mpp_record) |= {payment_addr:"<strong>[PAYMENT_ADDRESS]</strong>", total_amt_msat: "<strong>[AMOUNT]</strong>"}' &gt; path.txt</code></p>



<p><code>lncli sendtoroute --payment_hash=<strong>[R_HASH]</strong> --routes="$(cat path.txt)"</code></p>



<p><img loading="lazy" decoding="async" width="10" height="19" class="wp-image-486" style="width: 10px;" src="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png" alt="" srcset="https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_.png 318w, https://blog.davidkaspar.com/wp-content/uploads/2021/12/119499525762661096tab_right.svg_.hi_-157x300.png 157w" sizes="auto, (max-width: 10px) 85vw, 10px" /> &#8220;not enough witness outputs to create funding transaction&#8221;</p>



<p>You are opening a channel and you have enough funds in your on-chain wallet but you still get this error.</p>



<p>Some of your utxo are probably unconfirmed and you cannot spend them even though they are showing in your total balance.</p>



<p>You probably have some chennels pending. There are unconfirmed payments to yourself as part of it. </p>



<p>Wait until all channels are confirmed and all funds should be available again for new channel opening!</p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2021/12/rebalancing-lightning-channels-after-a-lightning-liquidity-swap.php">Rebalancing lightning channels after a lightning liquidity swap</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.davidkaspar.com/archives/2021/12/rebalancing-lightning-channels-after-a-lightning-liquidity-swap.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Extended attributes are required when transferring .co.uk domain with NameCheap</title>
		<link>https://blog.davidkaspar.com/archives/2020/07/extended-attributes-are-required-when-transferring-co-uk-domain-with-namecheap.php</link>
					<comments>https://blog.davidkaspar.com/archives/2020/07/extended-attributes-are-required-when-transferring-co-uk-domain-with-namecheap.php#comments</comments>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Fri, 03 Jul 2020 13:12:05 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[domain transfer]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[namecheap]]></category>
		<guid isPermaLink="false">https://blog.davidkaspar.com/?p=446</guid>

					<description><![CDATA[<p>Recently I tried transferring a .co.uk domain that I owned to another NameCheap user. The internal transfer of NameCheap domains is usually easy and instant but this time the other user was complaining that the transfer was failing. The error page suggested a few missing details in the user&#8217;s contact details: Fixing the missing State &#8230; <a href="https://blog.davidkaspar.com/archives/2020/07/extended-attributes-are-required-when-transferring-co-uk-domain-with-namecheap.php" class="more-link">Continue reading<span class="screen-reader-text"> "Extended attributes are required when transferring .co.uk domain with NameCheap"</span></a></p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/07/extended-attributes-are-required-when-transferring-co-uk-domain-with-namecheap.php">Extended attributes are required when transferring .co.uk domain with NameCheap</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Recently I tried transferring a .co.uk domain that I owned to another <a href="https://www.namecheap.com/">NameCheap</a> user.</p>



<p>The internal transfer of NameCheap domains is usually easy and instant but this time the other user was complaining that the transfer was failing. The error page suggested a few missing details in the user&#8217;s contact details:</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="252" height="300" src="https://blog.davidkaspar.com/wp-content/uploads/2020/07/namecheap1-252x300.jpg" alt="" class="wp-image-447" srcset="https://blog.davidkaspar.com/wp-content/uploads/2020/07/namecheap1-252x300.jpg 252w, https://blog.davidkaspar.com/wp-content/uploads/2020/07/namecheap1.jpg 750w" sizes="auto, (max-width: 252px) 85vw, 252px" /><figcaption>Missing registration details</figcaption></figure>



<p>Fixing the missing State was easy enough but we couldn&#8217;t find extended attributes so we just tried again and got this:</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="219" height="300" src="https://blog.davidkaspar.com/wp-content/uploads/2020/07/namecheap2-219x300.jpg" alt="" class="wp-image-448" srcset="https://blog.davidkaspar.com/wp-content/uploads/2020/07/namecheap2-219x300.jpg 219w, https://blog.davidkaspar.com/wp-content/uploads/2020/07/namecheap2-749x1024.jpg 749w, https://blog.davidkaspar.com/wp-content/uploads/2020/07/namecheap2.jpg 750w" sizes="auto, (max-width: 219px) 85vw, 219px" /><figcaption>Missing extended attributes</figcaption></figure>



<p>The exact error was <em>&#8220;Extended Attributes: .UK domains &#8211; Company or Domain Registered for is required&#8221;</em>.</p>



<p>NameCheap allows adding Extended attributes to various regional domains in &#8220;Profile > Tools > Domain Contacts Presets > <a href="https://ap.www.namecheap.com/settings/tools/domaincontactssettings">Alternative Domain Contacts</a>&#8220;.</p>



<p>However .UK is not one of them. There was no way for the receiving user to be complaint for a .UK domain.</p>



<p>After a few chats with the very responsive NameCheap Live Support the root cause became clear and a workaround was suggested.</p>



<p>First the initiating party had to cancel the domain transfer request.</p>



<p>Then rather than using the usually recommended &#8220;new user&#8217;s contact details&#8221; during the transfer, we had to use &#8220;existing contact details&#8221;. This allowed the transfer.</p>



<p>Then once the transfer was successful the user changed all details to theirs&#8230; including the &#8220;Company or Domain Registered for&#8221;.</p>



<p>You may be tempted to leave the contact details with the old information but I recommend against this to avoid confusion of ownership&#8230; and perhaps breaching .UK domain registration rules.</p>



<p>I wish NameCheap would enhance their Alternative Domain Contacts functionality by adding options for .UK  domains!</p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/07/extended-attributes-are-required-when-transferring-co-uk-domain-with-namecheap.php">Extended attributes are required when transferring .co.uk domain with NameCheap</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.davidkaspar.com/archives/2020/07/extended-attributes-are-required-when-transferring-co-uk-domain-with-namecheap.php/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Rescuing jackdaw chicks and being rewarded with love</title>
		<link>https://blog.davidkaspar.com/archives/2020/06/rescuing-jackdaw-chicks-and-being-rewarded-with-love.php</link>
					<comments>https://blog.davidkaspar.com/archives/2020/06/rescuing-jackdaw-chicks-and-being-rewarded-with-love.php#comments</comments>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Tue, 30 Jun 2020 11:20:24 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chick]]></category>
		<category><![CDATA[jackdaw]]></category>
		<category><![CDATA[rescue]]></category>
		<guid isPermaLink="false">https://blog.davidkaspar.com/?p=431</guid>

					<description><![CDATA[<p>The rescue We found two jackdaw chicks in our garden and the parents were nowhere to be seen. It was obvious that they were too young to fly and the nest nor parents were nowhere to be seen. We could have left them to fight for themselves but our motherly instincts kicked in. The feeding &#8230; <a href="https://blog.davidkaspar.com/archives/2020/06/rescuing-jackdaw-chicks-and-being-rewarded-with-love.php" class="more-link">Continue reading<span class="screen-reader-text"> "Rescuing jackdaw chicks and being rewarded with love"</span></a></p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/06/rescuing-jackdaw-chicks-and-being-rewarded-with-love.php">Rescuing jackdaw chicks and being rewarded with love</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">The rescue</h2>



<p>We found two jackdaw chicks in our garden and the parents were nowhere to be seen.</p>



<p>It was obvious that they were too young to fly and the nest nor parents were nowhere to be seen.</p>



<p>We could have left them to fight for themselves but our motherly instincts kicked in.</p>



<h2 class="wp-block-heading">The feeding</h2>



<p>After housing them in our cat&#8217;s old cage we tried feeding them but they were too distressed to be interested in anything.</p>



<p>After 2 days of no food we were getting very worried and researched what to feed them.</p>



<p>Peanut butter, worms, cat food&#8230; We tried everything.</p>



<p>I randomly made kissing sounds and they got very excited. They started crowing and opening their beaks fervently.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Feeding Jackdaw chicks" width="840" height="473" src="https://www.youtube.com/embed/FBKIyynzu5o?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<p>Finally it was possible to feed them. They seemed to prefer tuna flakes and were now feeding every hour throughout the day.</p>



<p>We also used a large plastic syringe to give them water.</p>



<p>After 5 days of feeding they had become very comfortable with us and had become very cuddly.</p>



<p>They enjoyed our presence and to walk around our arms.</p>



<p>By now they were cleaning their wings frequently.</p>



<h2 class="wp-block-heading">Flight training</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200622_170542-1024x768.jpg" alt="" class="wp-image-435" srcset="https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200622_170542-1024x768.jpg 1024w, https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200622_170542-300x225.jpg 300w, https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200622_170542-768x576.jpg 768w, https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200622_170542-1536x1152.jpg 1536w, https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200622_170542-2048x1536.jpg 2048w, https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200622_170542-1200x900.jpg 1200w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>Flight training begins</figcaption></figure>



<p>We discovered that if we lowered our arm while they were sitting on it, they were flapping their wings. It was almost as if they were testing their strength.</p>



<p>Suddenly they took off and flew a few meters to sit on a ledge.</p>



<p>Our jackdaw flight training had officially started!</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Flight training" width="840" height="473" src="https://www.youtube.com/embed/2udQcbou81g?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<p>Over the next few days we continued with frequent feeding and flight training.</p>



<p>4 days later they were able to fly 100m and sit in a tree for a while.</p>



<p>They always came back to feed and to socialise with us.</p>



<p>Next step was to teach them how to feed themselves.</p>



<p>We took them to a flower garden with soft ground and dug around a little bit until we found worms. It took the jackdaws a few moments but they got the hang of finding the worms and to chomp on them.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Jackdaws feeding" width="840" height="473" src="https://www.youtube.com/embed/9nDz1RWhRvQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div><figcaption>Hunting food for the first time</figcaption></figure>



<p>This made us very proud jackdaw parents indeed!</p>



<p>It&#8217;s now day 10 and the daily routine is to take them out of their cage early in the morning, feed them, socialise and continue flight training. 16 hours a day!</p>



<p>Come back to hear the rest of our jackdaw adventure!</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="225" height="300" src="https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200620_193409-225x300.jpg" alt="" class="wp-image-436" srcset="https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200620_193409-225x300.jpg 225w, https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200620_193409-768x1024.jpg 768w, https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200620_193409-1152x1536.jpg 1152w, https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200620_193409-1536x2048.jpg 1536w, https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200620_193409-1200x1600.jpg 1200w, https://blog.davidkaspar.com/wp-content/uploads/2020/06/IMG_20200620_193409-scaled.jpg 1920w" sizes="auto, (max-width: 225px) 85vw, 225px" /><figcaption>Happy bird mom</figcaption></figure>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/06/rescuing-jackdaw-chicks-and-being-rewarded-with-love.php">Rescuing jackdaw chicks and being rewarded with love</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.davidkaspar.com/archives/2020/06/rescuing-jackdaw-chicks-and-being-rewarded-with-love.php/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>404 errors from admin-ajax.php in WordPress</title>
		<link>https://blog.davidkaspar.com/archives/2020/03/404-errors-from-admin-ajax-php-in-wordpress.php</link>
					<comments>https://blog.davidkaspar.com/archives/2020/03/404-errors-from-admin-ajax-php-in-wordpress.php#respond</comments>
		
		<dc:creator><![CDATA[David Kaspar]]></dc:creator>
		<pubDate>Fri, 06 Mar 2020 13:11:00 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://blog.davidkaspar.com/?p=418</guid>

					<description><![CDATA[<p>I am developing a dynamic website and when I stress some of the dynamic functionality I am getting occasional 404 errors from admin-ajax.php.</p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/03/404-errors-from-admin-ajax-php-in-wordpress.php">404 errors from admin-ajax.php in WordPress</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I am currently developing a minor dynamic website. Towards the end of the development I was stress-testing some of the dynamic functionality.</p>



<p>Unfortunately I am getting occasional 404 errors from admin-ajax.php.</p>



<p>The request seems to be sent and processed because on refresh of the page I can see the updates. However it is a bad user experience because the user&#8217;s page just stalls.</p>



<p>After a little troubleshooting, mainly with crude debug statements from admin-ajax.php into HTTP headers, I have noticed that admin-ajax.php is not even entered.</p>



<p>At the moment I am not sure whether the error is related to one of the WordPress plugins I am using or whether it is due to my webhost.</p>



<p>There are no visible errors in weblogs nor in error_log.</p>



<p>One thing I noticed that a new incognito browser window resolved the issue.</p>



<p>This made me suspicious of cookie issues. I manage to narrow it down to the PHPSESSID cookie. Clearing it resolved the issue. The 404 error from admin-ajax.php is gone&#8230; for a while at least.</p>



<p>I recommend using the excellent <a href="https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg" target="_blank" rel="noreferrer noopener" aria-label="Eat This Cookie extension (opens in a new tab)">Eat This Cookie extension</a> If you are using Chrome or Brave browser.</p>



<p>The search continues&#8230;</p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/03/404-errors-from-admin-ajax-php-in-wordpress.php">404 errors from admin-ajax.php in WordPress</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.davidkaspar.com/archives/2020/03/404-errors-from-admin-ajax-php-in-wordpress.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Presence or productivity&#8230; that is the question</title>
		<link>https://blog.davidkaspar.com/archives/2020/02/presence-or-productivity-that-is-the-question.php</link>
					<comments>https://blog.davidkaspar.com/archives/2020/02/presence-or-productivity-that-is-the-question.php#respond</comments>
		
		<dc:creator><![CDATA[David Kaspar]]></dc:creator>
		<pubDate>Wed, 26 Feb 2020 08:11:00 +0000</pubDate>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[working environment]]></category>
		<guid isPermaLink="false">https://davidkaspar.com/wp/?p=293</guid>

					<description><![CDATA[<p>I was born in a communistic country and was just about old enough to see how employment generally worked. The key attribute was presence at the workplace. It did not matter how much you did, or if you did anything at all. The pay cheque was always there at the end of the month. This &#8230; <a href="https://blog.davidkaspar.com/archives/2020/02/presence-or-productivity-that-is-the-question.php" class="more-link">Continue reading<span class="screen-reader-text"> "Presence or productivity&#8230; that is the question"</span></a></p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/02/presence-or-productivity-that-is-the-question.php">Presence or productivity&#8230; that is the question</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I was born in a communistic country and was just about old enough to see how employment generally worked. The key attribute was presence at the workplace.</p>



<p>It did not matter how much you did, or if you did anything at all. The pay cheque was always there at the end of the month.</p>



<p>This was the first thing that came to my mind when a friend mentioned that her company had retracted her previous partial home office arrangement and required that she&#8217;d be at her desk full time.</p>



<p>I assumed that her performance had possibly been lower while working from a remote location. However she insisted that she had never been more productive. Instead it had been the other staff in her office that had complained.</p>



<p>They were upset that she had a special arrangement and wanted it too. Like the bullies at the school yard who saw someone with a shiny marble and if they could not have it then at least they would crush it.<br>It did not matter that my friend was working partially from home to be close to a family member who was ill, the other staff were just upset.</p>



<p>She had previously told me about the poor working conditions in the office. I suggested that maybe that was the main reason why other staff in the office also wanted to escape: not for the benefit of working from home but for the benefit of staying away from the office.</p>



<p>Finally my friend asked me what my advice would be and I told her the first thing that came to my mind.</p>



<p>Quit and find a real company that values results and is not run by second-tier staff who are first grade champions in office politics.</p>



<p style="font-size:8px"><em>Photo by <a href="https://www.flickr.com/photos/k2space/">k2space</a>.</em></p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/02/presence-or-productivity-that-is-the-question.php">Presence or productivity&#8230; that is the question</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.davidkaspar.com/archives/2020/02/presence-or-productivity-that-is-the-question.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Super efficient in-the-field SLR photography workflow</title>
		<link>https://blog.davidkaspar.com/archives/2020/02/super-efficient-in-the-field-slr-photography-workflow.php</link>
					<comments>https://blog.davidkaspar.com/archives/2020/02/super-efficient-in-the-field-slr-photography-workflow.php#respond</comments>
		
		<dc:creator><![CDATA[David Kaspar]]></dc:creator>
		<pubDate>Mon, 10 Feb 2020 22:51:00 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[canon]]></category>
		<category><![CDATA[nikon]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[slr]]></category>
		<category><![CDATA[workflow]]></category>
		<guid isPermaLink="false">https://davidkaspar.com/wp/?p=362</guid>

					<description><![CDATA[<p>You are probably reading this because you take multiple photos of each scene and situation to make sure at least one will turn out sharp and well exposed&#8230;. Well I do! Modern cameras have huge memory cards; 128GB isn&#8217;t uncommon. While this is very convenient it also creates massive amount of unnecessary data. You end &#8230; <a href="https://blog.davidkaspar.com/archives/2020/02/super-efficient-in-the-field-slr-photography-workflow.php" class="more-link">Continue reading<span class="screen-reader-text"> "Super efficient in-the-field SLR photography workflow"</span></a></p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/02/super-efficient-in-the-field-slr-photography-workflow.php">Super efficient in-the-field SLR photography workflow</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>You are probably reading this because you take multiple photos of each scene and situation to make sure at least one will turn out sharp and well exposed&#8230;. Well I do!</p>



<p>Modern cameras have huge memory cards; 128GB isn&#8217;t uncommon. While this is very convenient it also creates massive amount of unnecessary data.</p>



<p>You end up with hundreds of photos (if not thousands) while &#8220;in the field&#8221; or any other situation without access to a computer to offload the photos.</p>



<p>This could be while on a holiday, on a multi-day shoot or if you simply don&#8217;t want to transfer all those photos only to delete them shortly afterwards.</p>



<p><strong><em>100% zoom is your friend. Use it in combination with easy scrolling to weed out any obvious duds. Look for sharp eyes, open eyes, no unwanted motion blur, overcropping (a missing foot or arm), good composition and faces actually facing the camera.</em></strong></p>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="800" height="599" src="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167147.jpg" alt="" data-id="408" data-full-url="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167147.jpg" data-link="https://blog.davidkaspar.com/?attachment_id=408" class="wp-image-408" srcset="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167147.jpg 800w, https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167147-300x225.jpg 300w, https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167147-768x575.jpg 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="800" height="599" src="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167478.jpg" alt="" data-id="409" data-full-url="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167478.jpg" data-link="https://blog.davidkaspar.com/?attachment_id=409" class="wp-image-409" srcset="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167478.jpg 800w, https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167478-300x225.jpg 300w, https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167478-768x575.jpg 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="800" height="599" src="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167919.jpg" alt="" data-id="410" data-full-url="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167919.jpg" data-link="https://blog.davidkaspar.com/?attachment_id=410" class="wp-image-410" srcset="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167919.jpg 800w, https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167919-300x225.jpg 300w, https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378167919-768x575.jpg 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="800" height="599" src="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378166295.jpg" alt="" data-id="406" data-full-url="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378166295.jpg" data-link="https://blog.davidkaspar.com/?attachment_id=406" class="wp-image-406" srcset="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378166295.jpg 800w, https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378166295-300x225.jpg 300w, https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378166295-768x575.jpg 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="800" height="599" src="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378166686.jpg" alt="" data-id="407" data-full-url="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378166686.jpg" data-link="https://blog.davidkaspar.com/?attachment_id=407" class="wp-image-407" srcset="https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378166686.jpg 800w, https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378166686-300x225.jpg 300w, https://blog.davidkaspar.com/wp-content/uploads/2020/02/15814378166686-768x575.jpg 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></figure></li></ul></figure>



<p><strong>Lock</strong> the good photos to narrow down to 1-2 photos  for each subject/scene.</p>



<p>&#8220;<strong>Delete all</strong>&#8221; to quickly weed out the unwanted shots. This will delete all unprotected photos leaving you with only the good ones. I aim to delete half of the photos in my first pass. I sometimes do a second pass to delete another half.</p>



<p>Do not use the format function as this will also delete the protected photos!</p>



<p>One downside with this workflow is the larger battery drain since the screen is on for a long period of time.</p>



<p>Well done! Now you only have a quarter of photos to transfer to your computer and further work on in Lightroom!</p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/02/super-efficient-in-the-field-slr-photography-workflow.php">Super efficient in-the-field SLR photography workflow</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.davidkaspar.com/archives/2020/02/super-efficient-in-the-field-slr-photography-workflow.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Quik using Google photos and resolving app crashes</title>
		<link>https://blog.davidkaspar.com/archives/2020/01/quik-using-google-photos-and-resolving-app-crashes.php</link>
					<comments>https://blog.davidkaspar.com/archives/2020/01/quik-using-google-photos-and-resolving-app-crashes.php#respond</comments>
		
		<dc:creator><![CDATA[David Kaspar]]></dc:creator>
		<pubDate>Sat, 04 Jan 2020 18:55:19 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[google photos]]></category>
		<category><![CDATA[gopro]]></category>
		<category><![CDATA[quik]]></category>
		<category><![CDATA[video editing]]></category>
		<guid isPermaLink="false">https://davidkaspar.com/wp/2020/01/04/quik-using-google-photos-and-resolving-app-crashes/</guid>

					<description><![CDATA[<p>I love the GoPro Quik mobile application to create video and photo compilations from trips and events. First I tried downloading all the items from Google Photos to a computer but the desktop version of Quik is nothing like the mobile app so don’t even try it. I then uploaded all the items to the &#8230; <a href="https://blog.davidkaspar.com/archives/2020/01/quik-using-google-photos-and-resolving-app-crashes.php" class="more-link">Continue reading<span class="screen-reader-text"> "Quik using Google photos and resolving app crashes"</span></a></p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/01/quik-using-google-photos-and-resolving-app-crashes.php">Quik using Google photos and resolving app crashes</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I love the GoPro Quik mobile application to create video and photo compilations from trips and events.</p>
<p>First I tried downloading all the items from Google Photos to a computer but the desktop version of Quik is nothing like the mobile app so don’t even try it. I then uploaded all the items to the mobile but Quik has a display bug and only showed 40 or so items from the same day and I wasn’t able to select all the required items.</p>
<p>In the end I was able to figure out a workflow that makes it possible to use older and shared photos that aren’t on your device. The functionality is a bit buggy but I was able to find workarounds for everything.</p>
<p>1. Create an album with the photos and videos you would like to use for your compilation. Curate and select just the items you would like to be in your Quik compilation.</p>
<p>2. Optional step: The “+ create a new album” option will not be available if you are using photos added by others. Instead you will want to use the Share button so that a link to your new album is created (make sure to save the link!). The album is not visible in your albums so use the link in a browser and this should open the album in your Google Photos app. Edit the album and give it a name. Also select to “show in albums” to make it visible in your Google Photos albums.<br />
<img loading="lazy" decoding="async" src="http://blog.davidkaspar.com/archives/images/Screenshot_20200104-182816~2.png" alt="Screenshot_20200104-182816~2.png" width="250" height="286" /></p>
<p>3. Open the Quik app and select to use Google Photos. Your new album should be listed. You may get errors such as “Google Photos is not available”. If you do, close the Quik app and try again… and again.<br />
<img loading="lazy" decoding="async" src="http://blog.davidkaspar.com/archives/images/Screenshot_20200104-183059.png" alt="Screenshot_20200104-183059.png" width="250" height="171" /></p>
<p>4. Select all photos by ticking all the days. Since you have already curated your items you can just select everything.<br />
<img loading="lazy" decoding="async" src="http://blog.davidkaspar.com/archives/images/Screenshot_20200104-183244.png" alt="Screenshot_20200104-183244.png" width="250" height="349" /></p>
<p>5. Hit the blue arrow and Quik will start downloading everything to your device.</p>
<p>6. The Quik app will then crash continuously when it tries to edit the compilation.</p>
<p>7. Delete the project (Quik will crash again), start a new project and select all items again from the Google Photos album. This time the download will be almost instant and editing of the compilation will work.<br />
8. Once done, export and upload your compilation back to Google Photos so that you can easily share it with friends and also so that you will never lose it if/when you lose your phone</p>
<h6>Other tips for Quick:</h6>
<ul>
<li>Select “high quality” to produce 1080p videos that look great on a TV.<br />
<img loading="lazy" decoding="async" src="http://blog.davidkaspar.com/archives/images/Screenshot_20191226-181620~2.png" alt="Screenshot_20191226-181620~2.png" width="350" height="222" /></li>
<li>Crop tall videos to include the important areas, for example people’s faces.</li>
<li>Use the focus point option to select what to show in photos</li>
<li>Duplicate any tall photos and use different focal points to show everything in tall photos.</li>
<li>If you have many items in your compilation then modify the duration of the compilation to the maximum of your selected music to have more time on each item.</li>
<li>If a photo that you like just flashes by you can change the duration to longer to see more of the photo (or to shorter if you want to see less of it).</li>
<li>Trim videos and select “manual” to choose what parts of a video you want included. Split the video if you want to show multiple bits from it.</li>
<li>Using “Highlights” can work better on longer action videos</li>
<li>You can mute your video sound if it doesn&#8217;t mix well with your selected music</li>
<li>Turn Outro off to remove the Quik logo at the end of your compilation (it gets old quickly).</li>
</ul>
<p>The post <a href="https://blog.davidkaspar.com/archives/2020/01/quik-using-google-photos-and-resolving-app-crashes.php">Quik using Google photos and resolving app crashes</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.davidkaspar.com/archives/2020/01/quik-using-google-photos-and-resolving-app-crashes.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Enabling new Google photo face and people search in UK, Europe, Germany</title>
		<link>https://blog.davidkaspar.com/archives/2015/06/enabling-new-google-photo-face-and-people-search-in-uk-europe-germany.php</link>
					<comments>https://blog.davidkaspar.com/archives/2015/06/enabling-new-google-photo-face-and-people-search-in-uk-europe-germany.php#comments</comments>
		
		<dc:creator><![CDATA[David Kaspar]]></dc:creator>
		<pubDate>Tue, 02 Jun 2015 12:25:23 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[face]]></category>
		<category><![CDATA[google photos]]></category>
		<category><![CDATA[people]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[VPN]]></category>
		<guid isPermaLink="false">https://davidkaspar.com/wp/2015/06/02/enabling-new-google-photo-face-and-people-search-in-uk-europe-germany/</guid>

					<description><![CDATA[<p>Google Photos was re-launched recently during a slick presentation at Google I/O 2015. Besides the unlimited storage for 16MP photos and 1080p videos what caught my interest the most was the demo of the face and people search. The new product was not only able associate photos of the same person, it was also able &#8230; <a href="https://blog.davidkaspar.com/archives/2015/06/enabling-new-google-photo-face-and-people-search-in-uk-europe-germany.php" class="more-link">Continue reading<span class="screen-reader-text"> "Enabling new Google photo face and people search in UK, Europe, Germany"</span></a></p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2015/06/enabling-new-google-photo-face-and-people-search-in-uk-europe-germany.php">Enabling new Google photo face and people search in UK, Europe, Germany</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" alt="gp_logo.png" src="http://blog.davidkaspar.com/images/gp_logo.png" width="150" height="150" class="framedalignleft"/>Google Photos was re-launched recently during a slick presentation at Google I/O 2015.<br />
Besides the unlimited storage for 16MP photos and 1080p videos what caught my interest the most was the demo of the face and people search.<br />
The new product was not only able associate photos of the same person, it was also able to do it across a large age span of the person.<br />
<img loading="lazy" decoding="async" alt="google_photos_people_face_search" src="http://blog.davidkaspar.com/images/google_photos_people_face_search.png" width="180" height="238" class="framedalignright"/>Some reported examples are &#8220;it associated photos of my niece starting with her current age of 6 years and all the way back to 3 months old&#8221; and &#8220;it was able to discern our twin daughters&#8221;.<br />
So imagine my disappointment after upgrading to this latest Google Photos version, backing up my entire photo catalog (30,000+ 16MP photos) and not being able to find the face/people search.<br />
I suspected some European or UK privacy laws being the root cause why Google hasn&#8217;t enabled it in the UK and a few searches later my suspicion was confirmed.<br />
Since it seemed to be geographically restricted I was curious to see what would happen if I tried the application from another location.<br />
Virtual Private Networks, a.k.a. VPN, are very handy to make your internet traffic to appear from a different location than you are.<br />
All your traffic is tunneled to an exit point of your choosing, for example a data center in New York City. To Google Photos service you then seem to be located in New York City, USA.<br />
<img loading="lazy" decoding="async" alt="tunnelbear.jpg" src="http://blog.davidkaspar.com/images/tunnelbear.jpg" width="150" height="150" class="framedalignleft"/>One such easy to use VPN service for android is <a href="https://play.google.com/store/apps/details?id=com.tunnelbear.android&#038;hl=en_GB">Tunnelbear</a> but there are many others. Tunnelbear offers 500 MB of free traffic and you don&#8217;t need much more than 20MB to get this set-up.<br />
It worked, I got face/people search in my Goole Photos android app and this is how I did it:<br />
In summary you want to delete the Google Photos application data and re-start the application while being connected to the VPN. This will trick Google Photos into believing you are located in US and the feature will be switched on.<br />
Once the feature is switched on you don&#8217;t have to re-connect to the VPN; the feature will remain on!<br />
<strong>Detailed instructions</strong>: delete the data from Google Photos, turn on airplane mode, turn off location services, connect via Tunnelbear, start up Google photos, go through the introductory 4 steps, go into settings and turn on &#8220;Group Similar Faces&#8221;. Success, you now have your photos organised by many, many different people present in them.<br />
The face categorisation appeared as soon as I connected via VPN. There was no initial time for google to build up a face database for my photos.<br />
This really seems to suggest that all photos added to Google Photos are categorised by face. The search feature is just hidden in certain geographical locations to comply with local laws.<br />
Is this really in the spirit of the law or just cheat? You decide!</p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2015/06/enabling-new-google-photo-face-and-people-search-in-uk-europe-germany.php">Enabling new Google photo face and people search in UK, Europe, Germany</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.davidkaspar.com/archives/2015/06/enabling-new-google-photo-face-and-people-search-in-uk-europe-germany.php/feed</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
			</item>
		<item>
		<title>Securing your bitcoins in offline storage</title>
		<link>https://blog.davidkaspar.com/archives/2013/12/securing-your-bitcoins-in-offline-storage.php</link>
					<comments>https://blog.davidkaspar.com/archives/2013/12/securing-your-bitcoins-in-offline-storage.php#comments</comments>
		
		<dc:creator><![CDATA[David Kaspar]]></dc:creator>
		<pubDate>Sun, 08 Dec 2013 21:41:59 +0000</pubDate>
				<category><![CDATA[Bitcoin]]></category>
		<category><![CDATA[BIP0038]]></category>
		<category><![CDATA[bitcoin]]></category>
		<category><![CDATA[cold storage]]></category>
		<category><![CDATA[paper wallet]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://davidkaspar.com/wp/2013/12/08/securing-your-bitcoins-in-offline-storage/</guid>

					<description><![CDATA[<p>There are various levels of security that you can apply to your bitcoins. A specific level of security should be applied depending on the size of the stash. A mobile or online wallet is often sufficient for smaller sums that you intend to be using for online trading or online purchases. I would still recommend &#8230; <a href="https://blog.davidkaspar.com/archives/2013/12/securing-your-bitcoins-in-offline-storage.php" class="more-link">Continue reading<span class="screen-reader-text"> "Securing your bitcoins in offline storage"</span></a></p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2013/12/securing-your-bitcoins-in-offline-storage.php">Securing your bitcoins in offline storage</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>There are various levels of security that you can apply to your bitcoins. A specific level of security should be applied depending on the size of the stash.<br />
A mobile or online wallet is often sufficient for smaller sums that you intend to be using for online trading or online purchases. I would still recommend enabling 2 factor authentication for any online wallets and avoiding rooting or jailbreaking your mobile when using mobile wallet.<br />
However the ultimate security for your bitcoins is a wallet that is completely disconnected from the internet and as such unreachable by hackers.<br />
Such wallets are commonly called offline wallets or cold storage and some concrete examples are paper wallets, other physical media, USB hard drives and upcoming dedicated hardware devices.<br />
<a href="http://blog.davidkaspar.com/archives/images/paper_wallet_sample.php" onclick="window.open('http://blog.davidkaspar.com/archives/images/paper_wallet_sample.php','popup','width=491,height=265,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img decoding="async" src="http://blog.davidkaspar.com/archives/images/paper_wallet_sample.png" width="200" class="framedalignleft"/></a>I’d like to talk about encrypted paper wallets because they appeal to me the most as a cold storage due to their simplicity and the low cost of creating them.<br />
The common theme when creating offline wallets is that any device used to create them has to be offline and the wallet itself can never be connected to an online device until you plan to spend the bitcoins it contains.<br />
An offline wallet will prevent any money to be spent but you are still able to send bitcoins to it and to view the balance easily. Just import the public key into your favourite wallet client.<br />
(Remember that a bitcoin wallet consists of two parts: the <strong>public key</strong> is like an account number that you give out for people to send money to and you can also use to check the balance. The <strong>private key</strong> is like a PIN code that is used to spend the bitcoins. If anyone finds your private key your wallet will be emptied and this is irreversible).<br />
When combined with the very strong encryption standard BIP0038, the paper wallet can even be publicly shared without risk of being compromised (as long as the password is kept secret). They can also be packed up online!<br />
What you need: a live linux cd, source code for bitadress.com, one or more usb drives, a printer.</p>
<ul>
<li>Download the <a href="https://github.com/pointbiz/bitaddress.org">bitaddress.org code</a> to your freshly formatted USB stick</li>
<li>Download <a href="https://tails.boum.org/download/index.en.html">Tails linux ISO</a> and burn it to a DVD.</li>
<li>Boot up your computer using the DVD and load up bitaddress.org html from the USB stick.</li>
<li>Generate one or more encrypted paper wallets and scan the public address so that you can send coins to it later.</li>
<li>Save the paper wallets as PDF to the USB stick(s)</li>
<li>Print multiple copies of the paper wallets or write down the private key manually using pen/paper.
<li>You are done</li>
</ul>
<p>If you find creating and booting from the DVD complicated you can use the online versions of bitaddress.org but be aware that your are then exposed to any man-in-the-middle attacks or if your computer has been compromised an attacker could get hold of all your paper wallets.<br />
Additional steps depend on the sum you are planning to store. Put the paper wallets in waterproof bags. Leave a copy with a friend you can trust. Consider storing a copy in a safe. Split up your stash between multiple wallets to lower the risk and to allow for spending in increments.<br />
A recent version of the <a hrepf="https://play.google.com/store/apps/details?id=com.mycelium.wallet&#038;hl=en_GB">Android mobile wallet Mycelium</a> has added import of BIP0038 encrypted private keys. This makes it very easy to scan the encrypted wallet and start spending the bitcoins on it.</p>
<p>The post <a href="https://blog.davidkaspar.com/archives/2013/12/securing-your-bitcoins-in-offline-storage.php">Securing your bitcoins in offline storage</a> appeared first on <a href="https://blog.davidkaspar.com">The Story of David Kaspar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.davidkaspar.com/archives/2013/12/securing-your-bitcoins-in-offline-storage.php/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
