<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>d10</title>
    <link>http://www.d10.dev/</link>
    <description>Recent content on d10</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 24 Apr 2020 01:51:17 -0800</lastBuildDate>
    
	<atom:link href="http://www.d10.dev/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>HashiCorp Vault Plugin for Algorand</title>
      <link>http://www.d10.dev/blog/vault-plugin-algo/</link>
      <pubDate>Fri, 24 Apr 2020 01:51:17 -0800</pubDate>
      
      <guid>http://www.d10.dev/blog/vault-plugin-algo/</guid>
      <description>This post is based on my experience writing a plugin for HashiCorp&amp;rsquo;s Vault. While HashiCorp provides thorough documentation, I found that I had to read the code of several open-source plugins before I grokked a bigger picture of Vault plugin development. This is my attempt to document details that are not spelled out in HashiCorp&amp;rsquo;s basic example.
Vault Paths &amp;amp; Policies Paths are a key concept of Vault. It&amp;rsquo;s fundamental to understand how they work, because Vault gets its utility and flexibility largely from the path mechanism.</description>
    </item>
    
    <item>
      <title>Algorand BetaNet</title>
      <link>http://www.d10.dev/blog/algod/</link>
      <pubDate>Sat, 02 Nov 2019 01:51:17 -0800</pubDate>
      
      <guid>http://www.d10.dev/blog/algod/</guid>
      <description>I recently had an opportunity to try Algorand&amp;rsquo;s BetaNet. Similar to the TestNet, the BetaNet is a place for developers to experiment. Unlike the TestNet where nodes run stable code, the BetaNet runs with features not yet on the live network.
For good instructions from the The Algorand team see official BetaNet docs and get help when needed at the BetaNet forum.
My notes (this post) may help, if you&amp;rsquo;re setting up a short-lived node for local development or testing.</description>
    </item>
    
    <item>
      <title>Trading with Ledger-cli and Lots</title>
      <link>http://www.d10.dev/blog/ledger-cli-trade/</link>
      <pubDate>Wed, 07 Aug 2019 10:00:00 -0500</pubDate>
      
      <guid>http://www.d10.dev/blog/ledger-cli-trade/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I&amp;rsquo;ve published the tool described below as &lt;code&gt;lotter&lt;/code&gt;, a
  companion tool to &lt;code&gt;ledger&lt;/code&gt;.  Source code and instructions:
  &lt;a href=&#34;https://src.d10.dev/lotter&#34;&gt;https://src.d10.dev/lotter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Tracking cost basis for crypto trades is a huge pain.  I&amp;rsquo;ve been
experimenting with
&lt;a href=&#34;https://en.wikipedia.org/wiki/Ledger_(software)&#34;&gt;ledger-cli&lt;/a&gt; to
track trading history.  It works well, so I&amp;rsquo;m sharing some notes here.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>about</title>
      <link>http://www.d10.dev/about/</link>
      <pubDate>Tue, 02 Jul 2019 18:06:11 -0700</pubDate>
      
      <guid>http://www.d10.dev/about/</guid>
      <description>David N. Cohen, founder of Beyond Central, works to make software applications more distributed and more secure.
Recent Work / Current Projects  dumbdown  Converts output of go doc into &amp;ldquo;README.md&amp;rdquo;, by adding a touch of markdown (in a not particularly smart way).
 getvain  An HTTP server who&amp;rsquo;s only purpose is to serve the &amp;lt;meta&amp;gt; tags that go get requires when you host your own golang module source code.</description>
    </item>
    
    <item>
      <title>discuss</title>
      <link>http://www.d10.dev/discuss/</link>
      <pubDate>Tue, 02 Jul 2019 18:06:11 -0700</pubDate>
      
      <guid>http://www.d10.dev/discuss/</guid>
      <description>Comments are not supported directly, because we can&amp;rsquo;t have nice things.
You&amp;rsquo;re invited to reach me via Google group. (Direct link or embedded below.)
 document.getElementById(&#34;forum_embed&#34;).src = &#34;https://groups.google.com/forum/embed/?place=forum/d10dev&#34; + &#34;&amp;showsearch=true&amp;showpopout=true&amp;showtabs=false&#34; + &#34;&amp;parenturl=&#34; + encodeURIComponent(window.location.href);  </description>
    </item>
    
    <item>
      <title>Authenticating Software Dependencies</title>
      <link>http://www.d10.dev/blog/hancock-intro/</link>
      <pubDate>Tue, 21 May 2019 07:51:17 -0800</pubDate>
      
      <guid>http://www.d10.dev/blog/hancock-intro/</guid>
      <description>&lt;p&gt;To build secure software, we pay attention to many threats that come
from outside.  Malicious users attempting SQL injection, DoS
techniques, and the like.&lt;/p&gt;

&lt;p&gt;We also need to pay attention to threats from &lt;em&gt;inside&lt;/em&gt;.  By this I
mean the software dependencies that we import and invoke from within
our code. Malicious or compromised dependencies are not just a &lt;a href=&#34;https://hackernoon.com/im-harvesting-credit-card-numbers-and-passwords-from-your-site-here-s-how-9a8cb347c5b5&#34;&gt;potent
theoretical
threat&lt;/a&gt;,
successful attacks have been documented &lt;a href=&#34;https://status.npmjs.org/incidents/dn7c1fgrr7ng&#34;&gt;in the
wild&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Given that we rely on dependencies, and that we need a streamlined
process to keep them updated, how can we protect our builds from a
compromised dependency?&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve been working on a tool to do just that, called &lt;code&gt;hancock&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1 id=&#34;tl-dr&#34;&gt;TL;DR&lt;/h1&gt;

&lt;pre&gt;&lt;code&gt;go get src.d10.dev/hancock/cmd/...
go doc src.d10.dev/hancock/cmd/hancock
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>End-to-End Not-Encrypted</title>
      <link>http://www.d10.dev/blog/end-to-end-authentication/</link>
      <pubDate>Tue, 21 May 2019 06:51:17 -0800</pubDate>
      
      <guid>http://www.d10.dev/blog/end-to-end-authentication/</guid>
      <description>&lt;p&gt;Let&amp;rsquo;s play a quick round of word association.  I say &amp;ldquo;end-to-end.&amp;rdquo;&lt;br/&gt;
You say &amp;hellip;?&lt;/p&gt;

&lt;p&gt;If you&amp;rsquo;re a cryptographer, I bet you say &amp;ldquo;encryption.&amp;rdquo;  And with good
reason: end-to-end encryption is a basic best practice and fundamental
building block of secure communication.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2 id=&#34;tl-dr&#34;&gt;TL;DR&lt;/h2&gt;

&lt;p&gt;Let&amp;rsquo;s apply strong &lt;b&gt;authentication&lt;/b&gt; to our communication, even when unencrypted.&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>Screensharing in Qubes (update Dec 2018)</title>
      <link>http://www.d10.dev/blog/qubes-vnc-screenshare/</link>
      <pubDate>Tue, 11 Dec 2018 07:51:17 -0800</pubDate>
      
      <guid>http://www.d10.dev/blog/qubes-vnc-screenshare/</guid>
      <description>This is an update to an earlier post. Thanks to contributions on this thread and related bugfix.
The Qubes operating system aims to be reasonably secure through isolation.
One example of isolation: one virtual machine (&amp;ldquo;Qube&amp;rdquo;) runs the windowing environment, while other VMs run applications, which are displayed in that environment. This separation from the X11 environment means that an application, like skype or bluejeans, cannot share the screen. This is by design, and highlights the security that makes me a fan of Qubes.</description>
    </item>
    
    <item>
      <title>Sign and Submit RCL Transactions</title>
      <link>http://www.d10.dev/blog/rcl-tool/</link>
      <pubDate>Fri, 06 Apr 2018 13:08:03 -0700</pubDate>
      
      <guid>http://www.d10.dev/blog/rcl-tool/</guid>
      <description>I&amp;rsquo;m fortunate to be spending this week at Recurse Center, a fantastic &amp;ldquo;coder retreat&amp;rdquo; in Manhattan. Highly recommended!
My goals for this short stay are: (a) dust off some coding skills that started to grow rusty, and (b) become more fluent in my favorite software language.
To those ends, I&amp;rsquo;ve put together a set of tools that construct, sign and submit Ripple Consensus Ledger (RCL) transactions. There&amp;rsquo;s a reason I explicitly list construct, sign, and submit.</description>
    </item>
    
    <item>
      <title>Building Development Dependencies for Qubes VMs</title>
      <link>http://www.d10.dev/blog/qubes-build-vm/</link>
      <pubDate>Sat, 03 Feb 2018 17:10:40 -0800</pubDate>
      
      <guid>http://www.d10.dev/blog/qubes-build-vm/</guid>
      <description>Qubes has recently published a release canditate for version 4.0. I&amp;rsquo;m upgrading my system, and taking some notes as I go&amp;hellip;
Users of Qubes know that template VMs tend to lag behind the latest release of an OS. As I write, for example, a Qubes template is based on Fedora 26, while Fedora 27 was released almost 3 months ago. I mention this not to fault the Qubes team, who do great work.</description>
    </item>
    
    <item>
      <title>Screensharing in Qubes</title>
      <link>http://www.d10.dev/blog/qubes-vnc-screenshare-orig/</link>
      <pubDate>Tue, 23 Jan 2018 12:22:17 -0800</pubDate>
      
      <guid>http://www.d10.dev/blog/qubes-vnc-screenshare-orig/</guid>
      <description>NOTE: The setting described below have security implications. See https://groups.google.com/d/msg/qubes-users/3amtMOIBTgI/rXLXmbM5AAAJ for discussion. At the moment, I am not recommending this approach. I&amp;rsquo;ll update here if I am able to improve on it. Caveat emptor!
UPDATE: See revised post.
The Qubes operating system aims to be reasonably secure through isolation.
One example of isolation: one Qubes virtual machine runs the windowing environment, while other VMs run applications displayed in that environment.</description>
    </item>
    
    <item>
      <title>XRP API Intro</title>
      <link>http://www.d10.dev/blog/xrp-intro/</link>
      <pubDate>Mon, 30 Oct 2017 23:57:13 -0700</pubDate>
      
      <guid>http://www.d10.dev/blog/xrp-intro/</guid>
      <description>One of my responsibilities at work is to assist exchanges (sites that trade bitcoin, etc) support Ripple&amp;rsquo;s digital asset, XRP.
Ripple&amp;rsquo;s documentation team is fantastic. Everything that an exchange needs to know is found on ripple.com/build. Still, a newcomer to that documentation may not know where to start, and that could slow things down.
To keep things moving fast, my approach is to give these exchanges a &amp;ldquo;jump start&amp;rdquo;. By that I mean a brief (one to two hours) presentation, at the end of which they&amp;hellip;</description>
    </item>
    
    <item>
      <title>Rippled Notes</title>
      <link>http://www.d10.dev/blog/rippled-notes/</link>
      <pubDate>Tue, 20 Jun 2017 22:59:07 -0700</pubDate>
      
      <guid>http://www.d10.dev/blog/rippled-notes/</guid>
      <description>Some helpful commands, when running rippled. Posted here as a reminder to myself.
Commands shown here should work when installed on RHEL or Centos.
Alias for rippled alias rippled=&amp;quot;/opt/ripple/bin/rippled --conf=/opt/ripple/etc/rippled.cfg&amp;quot;  Check the status rippled server_info is essential. Watch this command to see when the server manages to sync:
watch &amp;quot;/opt/ripple/bin/rippled server_info | egrep &#39;load_|complete|peers|status|server_state&#39;&amp;quot;  Use ctrl-c to stop.
Run in standalone mode Create a copy of systemd unit file</description>
    </item>
    
  </channel>
</rss>