<?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>Software on Blake Merryman</title>
    <link>https://blakemerryman.com/topics/software/</link>
    <description>Recent content in Software on Blake Merryman</description>
    <generator>Hugo -- 0.157.0</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 10 Apr 2026 12:52:49 -0600</lastBuildDate>
    <atom:link href="https://blakemerryman.com/topics/software/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>LLM Wiki</title>
      <link>https://blakemerryman.com/linked/2026/04/llm-wiki/</link>
      <pubDate>Fri, 10 Apr 2026 12:52:49 -0600</pubDate>
      <guid>https://blakemerryman.com/linked/2026/04/llm-wiki/</guid>
      <description>A look at Karpathy&amp;#39;s llm-wiki pattern, where an LLM writes and maintains a structured wiki as a persistent knowledge artifact. Includes my own experience applying the concept and a pointer to AST-based tooling for software projects.</description>
      <content:encoded><![CDATA[<p>From a <a href="https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f" target="_blank" rel="noopener noreferrer">Github Gist by Andrej Karpathy</a>

(<a href="/resources/llm-wiki.md">local copy</a>
 for posterity):</p>
<blockquote>
<p>A pattern for building personal knowledge bases using LLMs.</p>
<p>[&hellip;]</p>
<p>Most people&rsquo;s experience with LLMs and documents looks like RAG: you upload a collection of files, the LLM retrieves
relevant chunks at query time, and generates an answer. This works, but the LLM is rediscovering knowledge from
scratch on every question. There&rsquo;s no accumulation.</p>
<p>[&hellip;]</p>
<p>The idea here is different. Instead of just retrieving from raw documents at query time, the LLM incrementally builds
and maintains a persistent wiki — a structured, interlinked collection of markdown files that sits between you and the
raw sources.</p>
</blockquote>
<p>As a human reader, I get immense value out of online wikis (like Wikipedia) and will often not even need the actual
source material for the vast majority of my searches. When reading fiction, I will frequently use book-specific wikis as
supplemental reading when I&rsquo;m trying to remember certain details (e.g. where else have I seen this character?). My
personal knowledge base (and this site, to some degree) is an effort to build a wiki-like system, that I control, to
augment my own memory. Wikis save me a lot of time.</p>
<p>Applying this same principle to LLM systems is a fascinating idea. Wikis (theoretically) can save a lot of tokens.</p>
<hr>
<blockquote>
<p>The knowledge is compiled once and then kept current, not re-derived on every query.<br>
[&hellip;]<br>
You never (or rarely) write the wiki yourself — the LLM writes and maintains all of it. You&rsquo;re in charge of sourcing,
exploration, and asking the right questions. The LLM does all the grunt work</p>
</blockquote>
<hr>
<blockquote>
<h2 id="architecture">Architecture</h2>
<p>There are three layers:</p>
<p><strong>Raw sources</strong> — your curated collection of source documents. Articles, papers, images, data files. These are immutable
— the LLM reads from them but never modifies them. This is your source of truth.</p>
<p><strong>The wiki</strong> — a directory of LLM-generated markdown files. Summaries, entity pages, concept pages, comparisons, an
overview, a synthesis. The LLM owns this layer entirely. It creates pages, updates them when new sources arrive,
maintains cross-references, and keeps everything consistent. You read it; the LLM writes it.</p>
<p><strong>The schema</strong> — a document (e.g. CLAUDE.md for Claude Code or AGENTS.md for Codex) that tells the LLM how the wiki is
structured, what the conventions are, and what workflows to follow when ingesting sources, answering questions, or
maintaining the wiki. This is the key configuration file — it&rsquo;s what makes the LLM a disciplined wiki maintainer
rather than a generic chatbot. You and the LLM co-evolve this over time as you figure out what works for your domain.</p>
</blockquote>
<hr>
<blockquote>
<h2 id="operations">Operations</h2>
<p><strong>Ingest.</strong> You drop a new source into the raw collection and tell the LLM to process it. [&hellip;]</p>
<p><strong>Query.</strong> You ask questions against the wiki. The LLM searches for relevant pages, reads them, and synthesizes an
answer with citations. [&hellip;] The important insight: good answers can be filed back into the wiki as new pages. [&hellip;]
This way your explorations compound in the knowledge base just like ingested sources do.</p>
<p><strong>Lint.</strong> Periodically, ask the LLM to health-check the wiki. Look for: contradictions between pages, stale claims
that newer sources have superseded, orphan pages with no inbound links, important concepts mentioned but lacking
their own page, missing cross-references, data gaps that could be filled with a web search. [&hellip;]</p>
</blockquote>
<hr>
<blockquote>
<p>The tedious part of maintaining a knowledge base is not the reading or the thinking — it&rsquo;s the bookkeeping.</p>
<p>[&hellip;]</p>
<p>The right way to use this is to share it with your LLM agent and work together to instantiate a version that fits your
needs.</p>
</blockquote>
<hr>
<p>I&rsquo;ve applied the concepts for this idea to one of my projects. My first attempt was a failure. It generated a wiki, but the instructions written to CLAUDE.md contained a fatal flaw: Claude would greedily consume the wiki on
every query. This was filling my context window quickly. I&rsquo;ve since updated those instructions and seen
efficiency improvements. Plenty of room to improve, though. I plan to explore implementing a few of the
operations as commands and an agent for coordination.</p>
<p>Another interesting idea I&rsquo;ve seen around this concept: for software projects, using compiled artifacts like
<a href="https://en.wikipedia.org/wiki/Abstract_syntax_tree" target="_blank" rel="noopener noreferrer">AST</a>
 to provide the basis for the wiki.
See <a href="https://github.com/Houseofmvps/codesight?tab=readme-ov-file#wiki-knowledge" target="_blank" rel="noopener noreferrer">Codesight</a>
 for more details.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Claude Code as Infrastructure</title>
      <link>https://blakemerryman.com/linked/2026/03/claude-code-as-infrastructure/</link>
      <pubDate>Wed, 25 Mar 2026 11:49:34 -0600</pubDate>
      <guid>https://blakemerryman.com/linked/2026/03/claude-code-as-infrastructure/</guid>
      <description>On treating Claude Code as infrastructure, not a chatbot, and what that&amp;#39;s meant for running a business and this blog as a solo developer.</description>
      <content:encoded><![CDATA[<p>From a post by <a href="https://www.reddit.com/r/ClaudeAI/comments/1rwmj25/i_stopped_using_claudeai_entirely_i_run_my_entire/" target="_blank" rel="noopener noreferrer">ColdPlankton9273 on r/ClaudeAI</a>
:</p>
<blockquote>
<p>Everything I do runs through Claude Code. Not just coding. My morning routine, my CRM, my content pipeline, my lead
sourcing, my follow-ups. All of it.</p>
<p>I built a system that runs my entire business from the terminal. One command in the morning, and my whole day is laid
out. I copy, paste, check boxes, move on.</p>
<p>At some point I stopped thinking of Claude as something I chat with and started treating it as infrastructure. That
changed everything.</p>
<p>Don&rsquo;t get me wrong, I still chat with it, but only on [Claude Code].</p>
<p>Anyone else gone full Claude Code for non-coding work?</p>
</blockquote>
<p>I&rsquo;ll have a lot more to write about this in the future, but I have been using Claude Code to help launch <a href="https://merrymantechnology.com" target="_blank" rel="noopener noreferrer">my
business</a>
. I have a lot of experience building software but I lack experience in the
other skills that are required to run your own business: managing infrastructure, product strategy &amp; research,
marketing, design, and the day-to-day details of administration. As a solo indie developer, it&rsquo;s empowering to have a
(semi-)reliable personal assistant that can do a little bit of everything.</p>
<p>I even use Claude Code to semi-automate the running of <em>this</em> blog. Claude has helped me:</p>
<ul>
<li>Write a custom Hugo theme that I&rsquo;m more happy with and which allows me to drop an external dependency.</li>
<li>Automate the boilerplate and grunt work required to manage a static site.</li>
<li>Audit the site to catch mistakes and inconsistencies.</li>
<li>Add a new <a href="/linked/2026/03/linked-list-blogging/">linked list</a>
 feature to the blog.</li>
<li>Proofread my writing to catch mistakes before publishing.</li>
</ul>
<p>Now I get to focus almost entirely on the writing.</p>
]]></content:encoded>
    </item>
    <item>
      <title>The 49MB Web Page</title>
      <link>https://blakemerryman.com/linked/2026/03/the-49mb-web-page/</link>
      <pubDate>Thu, 19 Mar 2026 15:10:16 -0600</pubDate>
      <guid>https://blakemerryman.com/linked/2026/03/the-49mb-web-page/</guid>
      <description>Shubham Bose audits the bloat of modern news sites — plus how this site compares at roughly 2,000× leaner than nytimes.com.</description>
      <content:encoded><![CDATA[<p>From the blog of <a href="https://thatshubham.com/blog/news-audit" target="_blank" rel="noopener noreferrer">Shubham Bose</a>
:</p>
<blockquote>
<p>I went to the New York Times to glimpse at four headlines and was greeted with 422 network requests and 49 megabytes
of data. It took two minutes before the page settled. And then you wonder why every sane tech person has an adblocker
installed on systems of all their loved ones.</p>
</blockquote>
<p>I&rsquo;ve been a long-time user of <a href="https://1blocker.com" target="_blank" rel="noopener noreferrer">1Blocker</a>
, <a href="https://oblador.github.io/hush/" target="_blank" rel="noopener noreferrer">Hush</a>
, and
<a href="https://andadinosaur.com/launch-vinegar" target="_blank" rel="noopener noreferrer">Vinegar</a>
 to help wrangle the madness of today&rsquo;s internet.</p>
<blockquote>
<p>Simplified versions like text.npr.org, lite.cnn.com and <a href="https://www.cbc.ca/lite" target="_blank" rel="noopener noreferrer">www.cbc.ca/lite</a>
 still exist out there. And RSS feeds do too.</p>
</blockquote>
<p>For the record, a typical post on this site (no images) weighs in as follows:</p>
<table>
  <thead>
      <tr>
          <th>Asset</th>
          <th>Size</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>HTML (a typical page)</td>
          <td>~5 KB</td>
      </tr>
      <tr>
          <td>CSS</td>
          <td>~15 KB</td>
      </tr>
      <tr>
          <td>Analytics<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></td>
          <td>~2.5 KB</td>
      </tr>
      <tr>
          <td><strong>Total</strong></td>
          <td><strong>~23 KB</strong></td>
      </tr>
  </tbody>
</table>
<p>At just 23 KB, that&rsquo;s roughly 2,000× lighter than the home page of the New York Times. This site is built to be fast and
lean.<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup></p>
<p>Some supplementary (and seething) commentary from <a href="https://daringfireball.net/2026/03/your_frustration_is_the_product" target="_blank" rel="noopener noreferrer">Daring Fireball</a>
:</p>
<blockquote>
<p>Even websites from publishers who care about quality are doing things on the web that they would never do with their
print editions.</p>
<p>[&hellip;]</p>
<p>The web is the only medium the world has ever seen where its highest-profile decision makers are people who despise
the medium and are trying to drive people away from it.</p>
</blockquote>
<p>This post from Daring Fireball weighs in at a trim 157 KB, over half of which comes from the screenshot (an extremely
rare inclusion on DF).</p>
<p>Back to Shubham Bose to close it out:</p>
<blockquote>
<p>They built a system that treats your attention as an extractable resource. The most radical thing you can do is
refuse to be extracted.</p>
</blockquote>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>This site uses <a href="https://vercel.com/docs/analytics" target="_blank" rel="noopener noreferrer">Vercel Web Analytics</a>
, a privacy-first, cookie-free analytics
tool built into the Vercel platform. It only stores anonymized data and never tracks individual visitors.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p><a href="/posts/2023/in-memory-of-george/">A post on this site with a full photo gallery</a>
 weighs in at ~1.2 MB total.
That&rsquo;s still ~40× lighter than the NYT.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>What happened to WASD keyboards?</title>
      <link>https://blakemerryman.com/linked/2026/03/what-happened-to-wasd-keyboards/</link>
      <pubDate>Wed, 18 Mar 2026 16:54:05 -0600</pubDate>
      <guid>https://blakemerryman.com/linked/2026/03/what-happened-to-wasd-keyboards/</guid>
      <description>WASD Keyboards has shut down — a personal farewell to a company whose keyboards have been the most used tool of my craft for over a decade.</description>
      <content:encoded><![CDATA[<p>From a post in <a href="https://discourse.codinghorror.com/t/what-happened-to-wasd-keyboards/10143" target="_blank" rel="noopener noreferrer">Coding Horror Discussion</a>
:</p>
<p><strong>Daniel_Langworthy</strong> (April 13, 2025):</p>
<blockquote>
<p>@codinghorror do you know what happened to WASDKeyboards? I am so sad, I love my keyboards I got from them but they seem to just be gone</p>
</blockquote>
<p><strong>JimPas</strong> (April 13, 2025):</p>
<blockquote>
<p>Hi Daniel. I checked this out and the last post on their support site was back in Nov 2024. Scrolling down to the bottom of the page shows this, so it doesn&rsquo;t look good:</p>
</blockquote>
<p>It shows a screenshot of a notice that reads: &ldquo;Service Temporarily Unavailable&rdquo;.</p>
<p><strong>Glenwing</strong> (April 15, 2025):</p>
<blockquote>
<p>I stopped by their office address in early January. Their name was still on the sign, but they’re gone. Replaced with some Solar startup.</p>
</blockquote>
<hr>
<p>This is sad news indeed!</p>
<p>After I started <a href="/posts/2014/first-day-at-griffin/">my first software engineering job</a>
 in 2014, one of the first things I purchased was a mechanical keyboard from WASD: a CODE V1 87-Key Mechanical Keyboard with Cherry MX Clear keys.</p>
<p>I felt strongly (and still do) that writing software is a craft and any good craftsperson should invest in quality tools, learn how to use them effectively, and care for them. That keyboard went with me to every new job and moved across the country from Tennessee to California to Colorado. I&rsquo;ve never had a single issue with it.</p>
<p>In 2022 when I needed both an office and home setup for Apple&rsquo;s hybrid schedule, I added the CODE V3 (87-Key Mechanical Keyboard - Cherry MX Clear) to my setup. The V3 was for work; the V1 for home.</p>
<p>Now that I <a href="/posts/2026/going-indie/">work independently</a>
, the V3 is my daily driver but the V1 is still alive and well, boxed up in my office awaiting a day when it&rsquo;s needed again.</p>
]]></content:encoded>
    </item>
    <item>
      <title>How to Export Kindle Highlights</title>
      <link>https://blakemerryman.com/posts/2024/how-to-export-kindle-highlights/</link>
      <pubDate>Thu, 04 Apr 2024 22:01:38 -0600</pubDate>
      <guid>https://blakemerryman.com/posts/2024/how-to-export-kindle-highlights/</guid>
      <description>How to export Kindle highlights and clean them up using regex in Sublime Text.</description>
      <content:encoded><![CDATA[<p>For my <a href="/tags/books">book posts</a>
, I was looking for an easy way to export my Kindle Highlights. I was hoping for a true
export but the best I&rsquo;ve found so far is <a href="https://read.amazon.com/notebook" target="_blank" rel="noopener noreferrer">Amazon Kindle Notebook</a>
. This gives me a
relatively clean page to copy and paste from but you end up with a lot of entries like this:</p>
<pre tabindex="0"><code>Yellow highlight | Location: 564
My awesome quote!

Yellow highlight | Location: 566
Another cool quote...
</code></pre><p>Using <a href="https://www.sublimetext.com" target="_blank" rel="noopener noreferrer">Sublime Text</a>
, you can use easily clean this up by:</p>
<ol>
<li>Select Find &gt; Replace from the menu bar</li>
<li>Ensure regular expressions is selected</li>
<li>Past the following regex into the find field (note the trailing period):</li>
</ol>
<pre tabindex="0"><code>^.*Yellow highlight.*\n
</code></pre><ol start="4">
<li>Replace all with an empty space!</li>
</ol>
<p>This leaves you with a relatively clean copy of your highlights.</p>]]></content:encoded>
    </item>
    <item>
      <title>Swift Tips Series</title>
      <link>https://blakemerryman.com/posts/2017/2017-11-09-swift-tips-series/</link>
      <pubDate>Thu, 09 Nov 2017 10:05:00 +0000</pubDate>
      <guid>https://blakemerryman.com/posts/2017/2017-11-09-swift-tips-series/</guid>
      <description>My full Swift Tips series.</description>
      <content:encoded><![CDATA[<p>Recently, I wrote a series of Swift tips over at my <a href="https://medium.com/bpxl-craft" target="_blank" rel="noopener noreferrer">company’s blog</a>
. This started out as a simple CocoaHeads talk where I was sharing my own personal best practices with the group.</p>
<ol>
<li><a href="https://medium.com/bpxl-craft/swift-tips-striving-for-smallness-9f3554508324" target="_blank" rel="noopener noreferrer">Striving for Smallness</a>
</li>
<li><a href="https://medium.com/bpxl-craft/swift-tips-documentation-abbd1e31553a" target="_blank" rel="noopener noreferrer">Documentation</a>
</li>
<li><a href="https://medium.com/bpxl-craft/swift-tips-organization-47f2422afe23" target="_blank" rel="noopener noreferrer">Organization</a>
</li>
<li><a href="https://medium.com/bpxl-craft/swift-tips-access-control-e2579e03f969" target="_blank" rel="noopener noreferrer">Access Control</a>
</li>
<li><a href="https://medium.com/bpxl-craft/swift-tips-early-exits-8ccd93403808" target="_blank" rel="noopener noreferrer">Early Exits</a>
</li>
<li><a href="https://medium.com/bpxl-craft/swift-tips-closure-based-collectiontype-apis-20ff8e1428e2" target="_blank" rel="noopener noreferrer">Closure-Based CollectionType APIs</a>
</li>
<li><a href="https://medium.com/bpxl-craft/swift-tips-property-configuration-cae9d6c9f84c" target="_blank" rel="noopener noreferrer">Property Configuration</a>
</li>
<li><a href="https://medium.com/bpxl-craft/swift-tips-lazy-sequences-59058ac1454f" target="_blank" rel="noopener noreferrer">Lazy Sequences</a>
</li>
<li><a href="https://medium.com/bpxl-craft/swift-tips-debugging-slow-build-times-bf333aae6874" target="_blank" rel="noopener noreferrer">Debugging Slow Build Times</a>
</li>
</ol>
<p>I’d love to hear your thoughts and feedback. Feel free to reach out to me on Twitter <a href="https://twitter.com/blakemerryman" target="_blank" rel="noopener noreferrer">@blakemerryman</a>
.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Bear Writer</title>
      <link>https://blakemerryman.com/posts/2017/2017-10-19-bear-notes/</link>
      <pubDate>Thu, 19 Oct 2017 15:18:23 +0000</pubDate>
      <guid>https://blakemerryman.com/posts/2017/2017-10-19-bear-notes/</guid>
      <description>My current note taking solution.</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve <a href="http://blakemerryman.com/2015/09/24/evernote-alternative/" target="_blank" rel="noopener noreferrer">lamented</a>
 about my love/hate relationship with Evernote but I never followed up about my solution to this problem. For now, I&rsquo;ve given up on my dream of a custom built solution in favor of <a href="http://www.bear-writer.com" target="_blank" rel="noopener noreferrer">Bear</a>
, a simple yet beautiful note taking solution. It even checks off many of the boxes from my wish list:</p>
<ul>
<li><input checked="" disabled="" type="checkbox"> Powered by plain text.</li>
<li><input checked="" disabled="" type="checkbox"> Preview/rendering options.</li>
<li><input checked="" disabled="" type="checkbox"> Multi-media support.</li>
<li><input checked="" disabled="" type="checkbox"> Hand writing / drawing support.</li>
<li><input checked="" disabled="" type="checkbox"> Customizable organization (via tags).</li>
<li><input checked="" disabled="" type="checkbox"> Search.</li>
<li><input checked="" disabled="" type="checkbox"> Mobile friendly. There is apps for iPhone, iPad, &amp; Mac.</li>
<li><input checked="" disabled="" type="checkbox"> Affordable and viable. Subscription pricing: $1.49/monthly or $14.99/annually.</li>
</ul>
<p>Still missing from my wishlist:</p>
<ul>
<li><input disabled="" type="checkbox"> Varied storage options. For now, iCloud is the only supported storage option. This is fine for now as I live in an Apple dominated world.</li>
<li><input disabled="" type="checkbox"> Text transcription. I can sketch and write on notes but can&rsquo;t easily search this hand-crafted content.</li>
<li><input disabled="" type="checkbox"> Web service. There is no way to access this content from the web.</li>
<li><input disabled="" type="checkbox"> Customizable templates. There is not any template support.</li>
<li><input disabled="" type="checkbox"> Extensible. There is no way to extend bear with your own functionality.</li>
</ul>
<p>The silver lining in all of this is that I ostensibly control the content and it is being stored in an easily transferable format. This app is also well maintained and will hopefully add many of the features that I&rsquo;m looking for.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Evernote Alternative?</title>
      <link>https://blakemerryman.com/posts/2015/2015-09-24-evernote-alternative/</link>
      <pubDate>Thu, 24 Sep 2015 16:27:00 +0000</pubDate>
      <guid>https://blakemerryman.com/posts/2015/2015-09-24-evernote-alternative/</guid>
      <description>A peak into my thoughts on a custom Evernote alternative.</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve been a long time <a href="https://evernote.com/" target="_blank" rel="noopener noreferrer">Evernote</a>
 user. With few exceptions, I dump everything that I think or discover into my Evernote database. I&rsquo;ve even been a premium member until recently.</p>
<p>And yet, I&rsquo;ve never <em>loved</em> Evernote. I feel like we have always been at odds. Things never work quite how I want them to and a lot of minor details leave me frustrated. I&rsquo;ll save that rant for another post but the bottom line is this: I&rsquo;ve been looking for a new note taking system for a long time and I&rsquo;ve always been forced come back to Evernote because it is the lesser of many evils.</p>
<p>With all of the discussion about the &ldquo;open web&rdquo; lately, I&rsquo;ve been toying with the idea of building my own system, using existing technologies and supplementing with my own open-sourced utilities. This post won&rsquo;t go into the nitty-gritty details and is more of an outline of what features I think this system should have in order to meet my needs. So let&rsquo;s begin.</p>
<h2 id="wish-list">Wish List</h2>
<p>This list is not all encompassing, nor are all items required. These are just things I want (and use in my current system).</p>
<ol>
<li>Powered by plain text files. Whether you prefer to take notes in <a href="http://daringfireball.net/projects/markdown/" target="_blank" rel="noopener noreferrer">Markdown</a>
, HTML, plain text, or <a href="https://en.wikipedia.org/wiki/LaTeX" target="_blank" rel="noopener noreferrer">LaTex</a>
, this system should take any and all text files without regard for the contents.</li>
<li>Preview/rendering options. This system should easily allow the user to preview their marked-up plain-text content. Preferably with a live preview option. Also, presentation mode!</li>
<li>Varied storage options. A user should not have their thoughts and ideas locked into a third party&rsquo;s cloud. They should be able to pick and choose and easily relocate their data at anytime. Ideally, the user can even host their own data.</li>
<li>Supports multi-media. As much as the developer in me wishes that everything existed in text, even I have to add images &amp; videos to my notes every now and again. This should be easy &amp; intuitive.</li>
<li>Hand writing support. Some people just prefer to take notes the old fashioned way or have sketches interspersed throughout.</li>
<li>Customizable organization. If the user wants to file things away in folders by month or year, great. If the user wants to file everything away in one large, hot-mess of a folder, also great.</li>
<li>Search. It should be easy to find what you&rsquo;re looking for.</li>
<li>Text transcription. This is one feature that Evernote really nailed and probably the hardest to replicate. Ideally, this would tie in with search as well.</li>
<li>Mobile friendly (first?). We live in a progressively mobile first world whether we like it or not. This system should function equally well on phones, tablets, computers, and the web.</li>
<li>Web Service. This system should be able to live on the web, including self-hosted.</li>
<li>Affordable but viable. Fairly priced for consumers and the developer(s).</li>
<li>Customizable templates. Whether you&rsquo;re bookmarking sites or journalling, a good template can save you time.</li>
<li>Extensible. Feature missing? Easily add it in yourself.</li>
</ol>
<hr>
<p>Basically what I want is a fast, simple, powerful note taking platform that is also useful for bookmarking, planning, todo-list managing, and cross-platforming utility. Not much&hellip; just everything.</p>
<p>This will probably (read: definitely) be on long, drawn out process as I piecemeal this all together (or give up and move on to something else, as I’m want to do on projects like these).</p>
<p>If you have suggestions or thoughts, feel free to <a href="https://twitter.com/blakemerryman" target="_blank" rel="noopener noreferrer">contact me on Twitter</a>
.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Initial Thoughts - Apple Special Event, Sept. 9, 2015</title>
      <link>https://blakemerryman.com/posts/2015/2015-09-09-apple-special-event-sept-9-2015/</link>
      <pubDate>Wed, 09 Sep 2015 23:12:00 +0000</pubDate>
      <guid>https://blakemerryman.com/posts/2015/2015-09-09-apple-special-event-sept-9-2015/</guid>
      <description>My initial thoughts &amp;amp; observation about Apple&amp;#39;s latest keynote.</description>
      <content:encoded><![CDATA[<p>We all knew what was coming and it was still a doozy. The rumor mill basically got everything correct and this was still one of the best keynotes in a long time. I plan on writing more in depth about each major topic but for now, here are my first impressions.</p>
<ul>
<li>
<p>Lack of “Status Updates”</p>
<p>In the past, Apple has kicked off every event with a stacatto of numbers about how great Apple has been doing. The past few events, however, Tim Cook has basically said “we’ve already crammed so much into this time slot that we don’t have time for updates; things are great; let’s do this”… which, in my opinion, is a welcome change that shows Cook’s leadership style comfortably in place at Apple.</p>
</li>
<li>
<p><a href="http://www.apple.com/watch/" target="_blank" rel="noopener noreferrer">Apple Watch &amp; watchOS 2</a>
</p>
<p>I’m not über thrilled about the Watch-related announcements but there were a few gems. The updated watchOS will bring some much needed stability &amp; performance improves to the fledgling platform (including a few nice new features like third party complications). Additionally, I think it’s great that not only is Apple continuing to produce new finishes and bands, but they are beginning to partner with serious companies to branch out with new collections of bands.</p>
</li>
<li>
<p><a href="http://www.apple.com/ipad-pro/" target="_blank" rel="noopener noreferrer">iPad Pro, Keyboard, &amp; Pencil</a>
</p>
<p>A huge (and yet light) screen powered by iOS 9. Multi-tasking. Touch ID. Retina Display. Stereo speakers. All day battery life. Coupled with a ridiculously engineered Pencil (I didn’t say stylus!) and an interesting keyboard case, this could be the general purpose computing device that I’ve been waiting for. Slim, beautiful, powerful, versatile. I’m am stoked about this product combo.</p>
</li>
<li>
<p><a href="http://www.apple.com/tv/" target="_blank" rel="noopener noreferrer">AppleTV &amp; tvOS</a>
</p>
<p>This will be in my living room as soon as it comes out. The AppleTV finally has an app platform. Apps are universal. Unified, refine-able search across content sources. A multi-touch remote that also acts as a microphone for voice commands. Powerful Siri voice search. A powerful, 64-bit system on a chip capable of Apple’s new Metal technology (high performance graphics). Support for bluetooth controllers.</p>
</li>
<li>
<p><a href="http://www.apple.com/iphone-6s/" target="_blank" rel="noopener noreferrer">iPhone 6S &amp; 6S Plus</a>
</p>
<p>The new iPhones are pretty amazing. Tougher materials. 3D Touch technology (the “peak” and “pop” paradigm is pretty ingenious). 12MP camera capable of 4K video. Moving photos from the Wizarding world. Rose gold isn’t for me but it is beautiful.</p>
<p>If only Apple would stop shipping 16GB phones. An uncompressed 4K video a few minutes in length can be close to 10GB in size (depending on format). Seriously Apple, come on. The fact that Apple continues to ship 16GB iPhones seriously rained on my parade.</p>
</li>
<li>
<p><a href="http://www.apple.com/shop/iphone/iphone-upgrade-program" target="_blank" rel="noopener noreferrer">iPhone Upgrade Program</a>
</p>
<p>This may be the announcement that I’m most excited about. Apple’s new upgrade program will finally allow one to affordably decouple our iPhone purchases from our service carrier bills.  Here are the key points:</p>
<ul>
<li>New iPhone every year</li>
<li>Unlocked</li>
<li>Low monthly payments (2 year commitment required through the Apple Store)</li>
<li>AppleCare+ (protection plan)</li>
</ul>
<p>I think decoupling hardware purchases from cellular service carriers is a good thing that will benefit the consumer and further drive carriers to focus on their service reliability and affordability rather than the handsets.</p>
</li>
<li>
<p>Naming Conventions</p>
<p>With iOS, watchOS, &amp; now tvOS, I don’t think it will be long before we see Mac OS X become macOS. And I <em>really</em> like this naming convention.</p>
</li>
<li>
<p>Power Connectors</p>
<p>I had thought that with Apple’s adoption of USB Type C on the new MacBook that we might see the iPhones transition to the new connector in a year or so. However, with several new products (the TV Remote &amp; Pencil) adopting the Lightning Connector for charging, I’m not so sure.</p>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Swift Scripts at CocoaHeads</title>
      <link>https://blakemerryman.com/posts/2015/2015-02-16-cocoaheads-swift-scripts/</link>
      <pubDate>Mon, 16 Feb 2015 10:00:00 +0000</pubDate>
      <guid>https://blakemerryman.com/posts/2015/2015-02-16-cocoaheads-swift-scripts/</guid>
      <description>Links to my Swift Scripting presentation and repository.</description>
      <content:encoded><![CDATA[<p>Speaking of Swift, I delivered a presentation on scripting with Swift at <a href="http://cocoaheads.org:8106/us/NashvilleTennessee/index.html" target="_blank" rel="noopener noreferrer">Nashville CocoaHeads</a>
 at the end of January, earlier this year. Check out the <a href="https://www.youtube.com/watch?v=7dkyTOC6Ie8" target="_blank" rel="noopener noreferrer">video</a>
 and head over to the <a href="https://github.com/blakemerryman/Swift-Scripts" target="_blank" rel="noopener noreferrer">Github repository</a>
 for the source code and more information.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Swift 1.2</title>
      <link>https://blakemerryman.com/posts/2015/2015-02-13-swift-1.2/</link>
      <pubDate>Fri, 13 Feb 2015 12:31:59 +0000</pubDate>
      <guid>https://blakemerryman.com/posts/2015/2015-02-13-swift-1.2/</guid>
      <description>I&amp;#39;m really excited about the changes to Swift in the current Xcode 6.3 beta. Apple has answered several of my biggest gripes with Swift. Here are some of the highlights.</description>
      <content:encoded><![CDATA[<p>I&rsquo;m really excited about the changes to Swift in the current Xcode 6.3 beta. Apple has answered several of my biggest gripes with Swift. Here are some of the highlights:</p>
<ul>
<li>Incremental builds for increased build performance</li>
<li>Native <code>Set</code> collection class that bridges to <code>NSSet</code>, joining <code>Array</code>/<code>NSArray</code> and <code>Dictionary</code>/<code>NSDictionary</code></li>
<li><code>static</code> methods and properties support for classes</li>
<li>Improved type inference for single-expression closures</li>
<li>Swift enums can now be exported to Objective-C</li>
<li><code>let</code> constants no longer need immediate initialization</li>
<li>General performance enhancements</li>
<li>General improvements to Swift-Objective-C interoperability</li>
</ul>
<p>And my personal favorite:</p>
<ul>
<li>Nested &amp; enhanced optional binding</li>
</ul>
<p>Now, this:</p>
<pre><code>if let x = self.x {
    if let y = self.y {
        if let z = self.z {
            if z == true {
                // Do something at the top of the Pyramid of Doom!
            }
        }
    }
}
</code></pre>
<p>becomes this:</p>
<pre><code>if let x = self.x, y = self.y, z = self.z where z == true {
    // Do Something without climbing the Pyramid!
} 
</code></pre>
<p>Beautiful!</p>
<hr>
<p>Apple has even included a handy Migration Tool to get your code from Swift version 1.1 to version 1.2.</p>
<p>There are a lot of other great changes as well (including enhancements to Objective-C) so head over to the Apple Developer Center to download the beta and read the full release notes.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Youtube View Counter</title>
      <link>https://blakemerryman.com/posts/2014/2014-12-23-youtube-view-counter/</link>
      <pubDate>Tue, 23 Dec 2014 16:52:31 +0000</pubDate>
      <guid>https://blakemerryman.com/posts/2014/2014-12-23-youtube-view-counter/</guid>
      <description>Explanation behind the Youtube View Counter Breaking</description>
      <content:encoded><![CDATA[<p>Youtube recently ran into issues with it&rsquo;s view counter for the <a href="https://www.youtube.com/watch?gl=GB&amp;hl=en-GB&amp;v=9bZkp7q19f0" target="_blank" rel="noopener noreferrer">Gangnum Style video</a>
. Basically, Google was using 32-bit integers to store the view counter value for its videos. This means that it had a maximum possible value of 2,147,483,647. This essentially &ldquo;broke the internet&rdquo; (at least for this one video) when the number of views passed that limit. My friend Allen asked me why Google didn&rsquo;t already use the 64-bit version (which has a maximum value of 9,223,372,036,854,775,807&hellip; that&rsquo;s nine <em>quintillion</em> with a Q) rather than 32-bit version. The answer: bandwidth.</p>
<h2 id="first-some-stats--facts">First, Some Stats &amp; Facts:</h2>
<ul>
<li>In <a href="http://youtube-global.blogspot.com/2012/01/holy-nyans-60-hours-per-minute-and-4.html" target="_blank" rel="noopener noreferrer">January 2012</a>
, Google had over 4 billion views per day. It&rsquo;s definitely more now, but this is the most up-to-date stat I could find.</li>
<li>Every time you load a Youtube video, you are downloading that view counter (along with the video and everything else on the page).</li>
<li>32-bit integers take up 4 Bytes; 64-bit integers take up 8 Bytes.</li>
</ul>
<h2 id="now-for-some-math">Now For Some Math:</h2>
<pre><code>oldCounterBandwidth = ( 4 Bytes / view ) * ( 4 billion views / day ) = 16 GB / day
newCounterBandwidth = ( 8 Bytes / view ) * ( 4 billion views / day ) = 32 GB / day
</code></pre>
<p><em>Note: Final values were converted from Bytes to GigaBytes for clarity.</em></p>
<p>By converting to 64-bit integers to store the view counters, they are doubling their bandwidth from 16 GB per day to 32 GB per day&hellip;. <strong>just to load view counters</strong>. Keep in mind that the daily view stat I found is from January 2012.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
