Where Are The Wise Men?https://mike.hostetlerhome.com/2023-07-13T11:00:00-05:00Discovering CookieCutter2023-07-13T11:00:00-05:002023-07-13T11:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2023-07-13:/discovering-cookiecutter.html<p>How I setup projects now, using CookieCutter</p><p><img alt="Cut them projects!" src="./images/Cookie_Cutter_1.jpeg"></p>
<p>I now have a pretty structured way to configure my projects -- I use <a href="https://mike.hostetlerhome.com/how-i-use-nix.html">Nix</a> and <a href="https://direnv.net/">direnv</a> and then the language-specific files. But when I setup a new project, it's been a bit of a mess. What I used to do is something like:</p>
<ol>
<li>Find a project that is similar to the new one I'm making...Python, Node, Java, etch</li>
<li>copy that old project's <code>.envrc</code> and <code>shell.nix</code> file to the new project. And probably the <code>docker-compose.yml</code> and maybe assorted other files</li>
<li>tweak as necessary</li>
<li>Find other file and tweak as necessary</li>
</ol>
<p>I really got tired of doing this. Sometimes there was nothing to tweak but I looked anyway and sometimes I didn't have quite what I wanted. I said to myself "Surely someone else has solved this problem!". I used <a href="https://github.com/pledbrook/lazybones">Lazybones</a> many years ago...and it hasn't been updated in a long time (maybe since I used it last!) so I decided to keep looking and somehow I stumbled onto <a href="https://github.com/cookiecutter/cookiecutter">CookieCutter</a>, which pretty much solves all my problems.</p>
<p>There are a lot of CookieCutter templates out there but I wanted something of my own. Luckily <a href="https://cookiecutter.readthedocs.io/en/stable/tutorials/tutorial2.html">it's easy to make your own templates.</a> <a href="https://github.com/squarepegsys/hoss-cookiecutter-templates">You can check out my Github Repo</a>. I found them pretty easy to make though there are some things I don't like about it -- like <a href="https://jinja.palletsprojects.com/en/2.10.x/">using a Jinja template</a> to generate a folder name, which means you have folders named <code>{{cookiecutter.project_name}}</code>. For me that is weird to see on the command line but it's a small nit and one I've chosen to live with.. Anyway, not only did I put in Nix and Direnv configs but also <code>docker-compose.yml</code> with Postgresql (my db of choice) and default script names, with the db name and the project name configurable.. I also do a <code>git init</code> at the end, because I will put it in git eventually (though not necessarily push it anywhere).</p>
<p>Basically, you store your templates, er, cookie cutters, in <code>$HOME/.cookiecutters</code> and set each project type as a folder.. Or fork mine and check it out into that folder. I installed cookiecutter through my package manager and that makes the exe really long (<code>cookiecutter-3.10</code>), so I made two aliases:</p>
<div class="highlight"><pre><span></span><code><span class="nb">alias</span> <span class="nv">new_proj</span><span class="o">=</span><span class="s2">"cookiecutter-3.10"</span>
<span class="nb">alias</span> <span class="nv">list_proj</span><span class="o">=</span><span class="s2">"cookiecutter-3.10 -l"</span>
</code></pre></div>
<p>So if I want to know the names of my template types, I type <code>list_proj</code>. When I want a new project, I use <code>new_project [type]</code>, and then follow the prompts. It now takes me 3 seconds to start a new project source instead of a few minutes and, even better, less cognitive load. Just find what template that I have that works best and <code>new_proj type</code> and I'm ready to get started.</p>LYT Solution Log2022-06-20T11:00:00-05:002022-06-20T11:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2022-06-20:/lyt-solution-log.html<p>Talk about how I integrate Linking Your Thinking into my knowledge base/solution log</p><p><img alt="Example of what I create" src="./images/2022-06-17-django-doc-example.png"></p>
<h2>My Solution Log History</h2>
<p>As a software engineer, I have been a believer in a solutions log -- a place where you record the solution to a really sticky problem you had ,or a surprise that you didn't expect. My solution log started in Evernote, became a bunch of <a href="https://orgmode.org">OrgMode</a> files, then got filtered down and I started writing them into large OrgMode files based on subject, and then <a href="https://mike.hostetlerhome.com/2020-the-year-of-taking-notes.html">I discovered the idea of a Zettelkasten</a> and put everything in org-roam. More recently I discovered <a href="https://obsidian.md">Obsidian</a> and converted all my files from org to Markdown and moved them into an Obsidian folder.</p>
<p>Note that these files are used a bit differently than a "normal" Zettelkasten note. Most of the time a Zettelkasten system is used as an insight for research and putting a paper or article together. Most of my notes are used for reference -- like dealing with the BOM character when parsing CSV files in Python! I have it written down so I don't have to memorize it. I.e. use my internal brain space for something else.</p>
<p>Regardless my Knowledge Base (what I call my personal solutions log) was mixed in with my other Zettelkasten notes all in one folder. It got really unwieldy. To me, the Knowledge Base was a different -- it was mostly reference material and, sure, things linked to each other were mixed up with insights I was documenting. I needed a folder structure and felt that I wasn't going to come up with a good one on my so I started searching. And I found <a href="https://forum.obsidian.md/t/lyt-kit-6-downloadable-and-now-with-lessons/390">Nick Milo's LYT Kit</a> which gave me some new things to think about and a workable arrangement.</p>
<p><a href="https://www.linkingyourthinking.com">Linking Your Thinking</a> (LYT) is Nick Milo's paradigm for Zettelkasten and <a href="https://www.youtube.com/channel/UC85D7ERwhke7wVqskV_DZUA/featured">has some great videos to show you his ideas</a>. Anyway I decided go from my "everything in my folder" idea to something more rigid like "LYT". </p>
<h2>My Setup</h2>
<p>I won't go into too much detail on the set up of LYT, but I will say that I created a folder under "Spaces" called "Knowledge Base" and started to copy <em>all</em> the files from my old vault into my LYT vault and then tweak them. After a bit of doing that I decided to stop and instead I made a new space called 'Unruly Forest', copied all the remaining Knowledge Base files in there. And then, when I read one again, I can take a minute to move it to the Knowledge Base space. This makes things a lot easier and I still can find the note that I need when I need it.</p>
<p>One concept that really drew me into LYT was the Map of Content, or MOC in LYT-speak. Basically it's a common file that all you link to move up. But really they are so much more than that. <a href="https://writing.bobdoto.computer/zettelkasten-linking-your-thinking-and-nick-milos-search-for-ground/">Bob Doto describes it well</a>:</p>
<blockquote>
<p>MOCs behave as work stations, places to examine how notes interact. They're far more than records of already established connections. Instead, MOCs are places to challenge notes, to see whether notes need to change, cleave, or resolve. Rather than being a representation of previously made connections, MOCs are where connections are made anew.</p>
</blockquote>
<p>My Knowledge Base folder has a file called "Knowledge Base MOC" that all my knowledge base files link to in the top as an "UP" category. This makes navigation easy -- I can click 'up' to navigate to the MOC. What do you put in that MOC file? Anything you want! I'm not to the "change, cleave, or resolve" in my Knowledge Base yet -- I simply put in a <a href="https://github.com/blacksmithgu/obsidian-dataview">DataView</a> table in my Knowledge Base MOC that displays my post used tags in my Knowledge Base and displays the count of each one. It looks like:</p>
<div class="highlight"><pre><span></span><code><span class="err">TABLE length(rows.file.name) as numfiles FROM "Spaces/Knowledge Base" </span>
<span class="err">flatten file.tags as tag group by tag </span>
<span class="err">sort length(rows.file.name) desc limit 10</span>
</code></pre></div>
<p>As I started using my setup, I found a lot of notes still in the large files that I originally wrote in Org in Emacs. Again — instead of breaking those big files up, I instead use those file as kinda <em>Subject MOC</em>. For example all the Django notes I make link back to the main Django note. That helps keeps things “linked” together. In that file, I have a DataView table created with a tag, like so:</p>
<div class="highlight"><pre><span></span><code><span class="err">table file.mtime as Updated from #django sort file.mtime desc</span>
</code></pre></div>
<p>I haven't refactored my "large" files yet.. and that's ok! I will when I get to them.</p>
<p>The next issue was search... I mean this is a Knowledge Base so I need to search the contents of the files to find what I need. I was struggling with search for a long time but recently discovered the <a href="https://github.com/scambier/obsidian-omnisearch">Omnisearch</a> plugin which happens to work really great for finding the right file.</p>
<h2>Actually writing the note</h2>
<p>I used to write really short snippets and then try to link to notes that this item reminded me of. But I stopped that and tried to make things more conversational - like explaining the situation, or if I think this solution could be better. The guideline I follow is "write" a blog post to yourself". So I kinda write my note like I would have liked to find in a blog post but I'm coming at it assuming that someone knows the context. I got this idea from <a href="https://andymatuschak.org">Andy Matuschak</a>. He didn't' state it like I do <a href="https://notes.andymatuschak.org/z8AfCaQJdp852orumhXPxHb3r278FHA9xZN8J">but perhaps better</a></p>
<blockquote>
<p>When it’s a topic I understand well, I can write notes for both myself and an audience simultaneously. But that sometimes produces the false impression that I can pull this off all the time! To avoid that false impression, I’ll write notes for myself “by default,” and only “opt into” writing notes for an audience explicitly.</p>
</blockquote>
<p>Even though I don't necessarily write these notes for connectedness and find-by-exploring, I do try to make it so I could. I make sure that I do these things:</p>
<ul>
<li>tag with the tag of the project I'm working on when I get stuck</li>
<li>Link it to the Project MOC of what I am working on</li>
<li>Otherwise link heavily -- for example, make a link to Python if the note is anything to do with Python. Link it to JavaScript if is it javascript related. Both of these are really Subject MOCs</li>
<li>Add thoughts to the note. I.e don't copy straight out of StackOverflow</li>
</ul>
<p>This seems like a lot of rules but really they are very simple to follow. Why? Because my note is conversational but having a conversation with myself. I avoid the easy method simply of linking to and pasting from the Internet and walking away. I mean, I do that but I wrap some context and opinions to it -- and link to them freely. I feel that I can have a deeper understanding of what I just did as well as having methods to find it when I need it -- even if it's not the exact solution I'm working for! Sometimes I find something similar enough in my knowledge base to a solution to a problem I didn't think was similar.</p>
<p>Like most of my Zettelkasten workflows, this is always a work in progress. Always more tweaks or perhaps removing some layers. But now I have something that <em>works for me</em>, even after carrying files from one place to another. I do plan on keeping Obsidian for a long, long while however.</p>How I use Nix2022-03-15T09:00:00-05:002022-03-15T09:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2022-03-15:/how-i-use-nix.html<p>This is how I use Nix for my day to day work</p><p>About a year ago I started playing with Nix and it has become as essential as Docker and Emacs for my local development environments. I switched from a world of <a href="https://objectpartners.com/2019/06/18/managing-python-environments-with-direnv/">direnv and virtualenv based environments</a> to one with direnv and nix. The <a href="https://nixos.org/manual/nix/stable/">Nix</a> part seems complicated but it's really not. I really just uses a sliver of what Nix does and I'm fine with it. See what <a href="https://nalth.is/using-nix-as-a-professional/">my friend Marty wrote</a> for a good discussion on what Nix is, how to install it and several reasons why it's awesome.</p>
<p>As I said above, my setup is pretty basic but it does everything I hoped it could do.</p>
<p>In the Direnv file I have usual environment variables, maybe a couple PATH settings for scripts and then at the end:</p>
<div class="highlight"><pre><span></span><code>use nix
</code></pre></div>
<p>and... that is it for direnv.</p>
<p>Then I make a file called <code>shell.nix</code> that creates the python environment </p>
<div class="highlight"><pre><span></span><code><span class="p">{</span> <span class="n">pkgs</span> <span class="err">?</span> <span class="kn">import</span> <span class="o"><</span><span class="n">nixpkgs</span><span class="o">></span> <span class="p">{}</span> <span class="p">}:</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">mkShell</span> <span class="p">{</span>
<span class="n">buildInputs</span> <span class="o">=</span> <span class="p">[</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">python38</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">poetry</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">black</span>
<span class="p">];</span>
<span class="p">}</span>
</code></pre></div>
<p>That is a simple one. Here is some that is Python and a few more things:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span> <span class="n">pkgs</span> <span class="err">?</span> <span class="kn">import</span> <span class="o"><</span><span class="n">nixpkgs</span><span class="o">></span> <span class="p">{}</span> <span class="p">}:</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">mkShell</span> <span class="p">{</span>
<span class="n">buildInputs</span> <span class="o">=</span> <span class="p">[</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">python3</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">poetry</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">python3Packages</span><span class="o">.</span><span class="n">pip</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">pgcli</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">postgresql</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">libxml2</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">libxslt</span>
<span class="p">];</span>
<span class="p">}</span>
</code></pre></div>
<p>This is a lot like previous one, but with some Postgresql helpers and the XML libraries are there because some Python libraries I use needed them.</p>
<p>Then do the <code>direnv allow</code> ... and you have your environment setup. Nix handles the install and maintance of what I specified in my shell file. Which you can see when you look at the Python executable:</p>
<div class="highlight"><pre><span></span><code><span class="err">➜ which python</span>
<span class="err">/nix/store/df2vs5yxfwj2flslf6ng0a0w8swdwgp7-python3-3.9.9/bin/python</span>
</code></pre></div>
<p>After that I go into the folder and/or open my project with Emacs.. and my environment is set up. I can use plain Poetry commands and it will be a "normal" Python project... because it is a normal Python project! With just the executables setup for Nix.</p>
<p>My examples above were all for Python but it's really for any type of dev platform. Here is a React project that I have setup:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span> <span class="n">pkgs</span> <span class="err">?</span> <span class="kn">import</span> <span class="o"><</span><span class="n">nixpkgs</span><span class="o">></span> <span class="p">{}</span> <span class="p">}:</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">mkShell</span> <span class="p">{</span>
<span class="n">buildInputs</span> <span class="o">=</span> <span class="p">[</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">yarn</span>
<span class="n">pkgs</span><span class="o">.</span><span class="n">nodejs</span><span class="o">-</span><span class="mi">14</span><span class="n">_x</span>
<span class="p">];</span>
<span class="p">}</span>
</code></pre></div>
<p>No messy rvm or anything -- just set your version and let Nix do all the work</p>My Weekly Prep and Review2022-01-30T09:00:00-06:002022-01-30T09:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2022-01-30:/my-weekly-prep-and-review.html<p>This is what I do to review last week and to prep for the next</p><p><img alt="the setup" src="./images/2022-01-30-weekly-review.jpg"></p>
<p>Every Saturday, I try to wake up before anyone else. With the house quiet, I make some coffee, shuffle to my office and shut the door. I open my bullet journal, my Obsidian notes, and Todoist list and start the most important 20 to 30 minutes of my week. I call it "my Weekly Review" but it's really more of a "Weekly Review and Planning session". I helps me figure out if what I did last week helps me with my goals and then what do I need to do for the next week to get closer to my goals.</p>
<p>I know that a few people will read this and think that I am really good at this process and, to be frank, I feel like I am really bad at it. I really started it because I felt I wasn't getting enough done or not working on the right things. I get into this state of being that I call The Rut but what I am learning is that the The Rut is really a sign of burnout called <a href="https://lifehacker.com/how-to-overcome-productivity-dysmorphia-1848424796">productivity dysmorphia</a>, which is simply defined as "a decreased sense of accomplishment". So, in my quest to accomplish more, I'm realizing that I'm really accomplishing enough. Regardless, it's a process and I'm still in the midst of it. This planning process has helped me feel that I'm getting enough done and am focusing on the right things.</p>
<p>Let me be clear about something else -- I didn't come up with this. Most of this is from <a href="https://gettingthingsdone.com/wp-content/uploads/2014/10/Weekly_Review_Checklist.pdf">this GTD Review checklist</a> (pdf) which I got from <a href="https://www.reddit.com/r/Cortex/comments/pmtayr/how_do_you_review_your_tasks_or_task_manager_each/hckko7v?utm_medium=android_app&utm_source=share&context=3">this great comment on Reddit</a>. It's really those things that helped me piece this together</p>
<p>I'm pretty specific about what software tools I use for this. I have used and struggled a lot and have a pretty good system going now. But hey this is always evolving. Right now, as I write this I am using </p>
<ul>
<li><a href="https://todoist.com">Todoist</a> as the todo-list</li>
<li><a href="https://obsidian.md">Obsidian</a> is where I put notes -- both project descriptions and quick notes/links for later. I used a plugin to easily make a Todoist item from a note</li>
<li><a href="https://flexibits.com/fantastical">Fantastical</a> for an overview of my events as well as my tasks</li>
<li><a href="https://friday.app">Friday.app</a> -- the newest one to the list. I use mostly as a daily dashboard/ aggregator of my various calendars and my Todoist list</li>
</ul>
<p>I also use old fashioned pen and paper. It's faster and things really stick to your mind better.</p>
<p>You ready? Alright -- let's get started .</p>
<hr>
<h1>1. Get Clear</h1>
<h3>Get “IN” to Zero Process</h3>
<p>I have a tray on my desk where I set papers as the week goes on -- mostly mail but sometimes other notes that pass my way. I take care most of it during the week but on Saturday I sort through what is left and finish taking care of it. Some I put back -- maybe it's a document that needs physically returned so I add to to my Todo list. But other items like tax forms are filed in my cabinet, dog vaccinations are scanned and saved, etc. etc. By the end of this Zero Process, the Inbox Tray is dealt with, if not ideally empty.</p>
<p>I also go through my notebook to make sure I didn't leave anything there that isn't in Todoist (for something I need ) or Obsidian ( for a note I want to remember). I'm usually good at getting those out of my notebook towards the end of the day that I write it, but I want to make sure.</p>
<p>Then I go through my quick notes in Obsidian. I have a series of Daily Notes that I used during the week. I quickly share a link or sometimes just a thought about something into a daily note. During my review, I do a quick review of each note and figure out if I really need it or not. If I do, I put it in it's own note, or merge with another and make a Todo so I get back at it later. Or I decide that I don't care after all and simply delete it. Once I finish dealing with the contents of the note <em>I immediately delete the note itself</em> . I move on and deal with the next day's note. If I spend more than five minute on an entry, it's way too long.</p>
<h3>Empty head</h3>
<p>In a notebook, I put in new ideas, new projects and "This is what I need" or "This is what I am waiting for". Why a notebook and not in Obsidian ? Because it's faster to use short-hand to jot the note down quickly and then move on.</p>
<p>Ironically, this doesn't generally take me too long to do. As stated above, I generally have a notepad by me when I work for quick notes or I keep track of ideas in Obsidian and Todoist as the week goes by. But sometimes I don't have things down like I should have -- this is my last ditch effort.</p>
<h1>2. Get Current</h1>
<p>I have a different notebook specifically for this part - totally separate from the notebook I used during the week and used above . I like having the reviews as a series of pages, one after another for reviewing them.</p>
<h3>Review Action Lists</h3>
<p>I use an <a href="https://ifttt.com/applets/XPTdxDE9-save-completed-todoist-tasks-in-google-sheets">IFTTT Recipe</a> that logs each Todoist task that I complete into a Google Sheet. When I look at the spreadsheet, I make note of the Todoist project or tag to give me the context that it was completed in and I put a tally mark behind it in my notebook. The definition of "context" is squishy -- sometimes I remember the why of it and one item gets tally marks by two contexts, because that made sense to me. I also don't count routine items like "Take out the Trash" because they aren't necessarily part of a larger goal.</p>
<p>This next part is perhaps the most important thing in this whole review -- <em>I look at my tally marks and compare it with my goals from the review prior</em>. Did my completed tasks match what my goals were? If not, why not? Do I need to adjust something from this week to the next?</p>
<h3>Review Previous Calendar Data</h3>
<p>This doesn't take me too long because I have notes already from previous meetings but sometimes I remember things I missed. It's usually in my notes that I need to flesh them out. Anyway if I find I have other things todo, I make Todoist items on them and schedule them.</p>
<h3>Review Upcoming Calendar Review</h3>
<p>I have a love/hate relationship with calenders. Besides the work calendar, which things can creep in, our family shares a Google calendar for all our appointments. So things can sneak in there too, or there are events that don't really effect me. Sometimes I usually just need to know something is happening. I used to put each upcoming Calendar item in it's own, separate Todist project but Friday.app has stopped this -- now it's in my daily dashboard so I will see it. Friday also solves a problem that my review couldn't solve -- it also reports new calendar events that gets put on after this.</p>
<p>This is also the time I use Fantastical to look at my week and try to even things out. Fantastical really is the best way to look at Todoist items for a week at a time. If I see some days are heavily-loaded, I used drop and drag them around to even things out. In case you are wondering, yes, I do usually make a Todo item and throw a due date on it that sounds good at the time. This is when I adjust those items to fit into deadlines, to avoid being overburdened, and just general sanity's sake.</p>
<h3>Review Project (and Larger Outcome) Lists</h3>
<p>This is when I look at each project and evaluate if things are schedule by priority, what is schedule on the right days or even if anything is still valid. Also <em>this is when I set goals</em> Wisdom tells me that I should make a goal or target for every project every week, but I have found that to have disappointing results. I tend to pick out two or no more than three goals and put those in big letters in my notebook. And then make sure (again) that my priority list matches them, and adjust accordingly.</p>
<h1>3. Get Creative</h1>
<p>This is probably the step I'm the worst at -- some of it because I do this through the week (a la my daily notes) and also by now my brain is tired by all this reflection. But this is where I am supposed to brainstorm and put down wild ideas. I do look at at this list as the week (or weeks) go by and see if there are any patterns that emerge. Those patterns are the goals I turn into projects.</p>
<h3>Review Someday Maybe List</h3>
<p>This is where I review projects that, yeah, maybe I want to schedule a few things for, some I decide are no longer decided are no long relevant.</p>
<h3>Be Creative and Courageous</h3>
<p>This is supposed to be "Any new, wonderful, hare-brained, creative, thought-provoking, risk-taking ideas" to added at a high level. Some of this was done as the week went on and reviewed in my notes, others are ridiculous. That said, I will take some down.</p>State of the Apps 20212021-12-11T10:20:00-06:002021-12-11T10:20:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2021-12-11:/state-of-the-apps-2021.html<p>Apps that I use and why, 2021 edition</p><p>It's pretty simple to figure out that <a href="https://www.relay.fm/cortex">Cortex</a> is my favorite podcast. In fact, it's really the only podcast I make sure to listen to when the new episodes come out. Every year they review the apps they are using on their phones (and Macs) and call it State of the Apps. After they <a href="https://www.relay.fm/cortex/122">published this year's</a> I thought about making my own. If you listen to them very much you will realize that I have been very much influenced by them this year. </p>
<h2>Todoist</h2>
<p>This isn't a new item but it's a central item of my life. Really Todoist runs my life... there are very few non-routine tasks that aren't in Todoist. And really most of my routine items are there too. With my own weird version of GTD, Todoist lets me rapidly put in my task with a due date (sometimes it arbitrary ) and then I don't worry about it until later. <a href="https://mike.hostetlerhome.com/advancing-my-todoist.html">I really talked about Todoist here</a> and I basically run it the same way -- that filter that I use has really worked out well.</p>
<p>In the next apps I talk about next, you will see a common theme -- I use some sort of Todoist integration in all of them. That is how important Todoist has become to me. </p>
<h2>Toggl Timer</h2>
<p>This is a Cortex-influenced decision and I really don't know what took me to long to try it. Basically I tell <a href="https://toggl.com/track/">Toggl</a> a task and a project and it starts the timer. And when I'm done, I stop the timer. And then I can do reports, etc from this data. And make my timesheet for work from this. <em>But</em> this works so very well <em>and</em> it's cross-platform. Literally -- I can start the timer on my Mac via the web and stop it on my Android phone via the Android app. </p>
<p>Also, Toggl integrates with... well, just about everything. If you install the Chrome plugin, then you can tell it what webapps you want to integrate with Toggl. So if you use Asana and Todoist integration, then you have a Toggl button on tasks there. Click it, set the project on the Toggl dialogue <em>in the app</em> and the timer is started. Clean, easy efficient. </p>
<h2>Obsidian</h2>
<p><a href="https://obsidian.md">Obsidian</a> is the notes app that I have been waiting for. Basically I can have the same notes on all my devices and edit them and they are sync'ed. Furthermore they are all Markdown files -- so just plain text! And the files reside on my system, not in the Obsidian cloud! And search works! And I can link between files! It's really marvelous.</p>
<p>I'll throw out that this isn't perfect... I would rather have Emacs everywhere and write in <a href="https://orgmode.org/">OrgMode</a> . Honestly I do think that Orgmode is a better format for this than Markdown but (at least on my Mac) I can use Emacs on my Obsidian files and they work just fine. The d</p>
<p>Obsidian has their own sync service but you don't have to use it... I don't because... well partly because I'm cheap and partly because I have to do things complicated. Between my Mac and iPad, iCloud Drive works nicely. To my Android phone, it's more work but I finally ended up with Syncthing between my Mac and phone. So, basically my Mac is the "server" for both of my mobile devices.</p>
<p>Obsidian by itself is good but really what makes is great is all the plugins. You can really customize it the way you want to work (so really that makes it like Emacs) <em>and</em> your plugins and configuration syncs over! So I install the plugin on my Mac and that plugin is sync'ed to my other devices. Once in a while I've had to enable it on my devices <em>but</em> the configuration is there when I do. I can live with that.</p>
<p>I'm not going to get in deep to my <a href="https://zettelkasten.de/introduction/">Zettelkasten</a> ideas here... but Obsidian really makes it work.</p>
<p>Plugins that I like:</p>
<ul>
<li><a href="https://blacksmithgu.github.io/obsidian-dataview/">DataView</a> -- which lets you create queries on your nows and displays tables on it. I use it for Dashboards to get at things easily.</li>
<li><a href="https://jackiegeek.gitee.io/obsidian-docs/en/Plugins/Daily%20notes/">Daily Note </a>-- Generally I sometimes I find a link that I'm reading and think "I want to read this later" so Daily Note gives me a quick place to dump it into for later. Sometime later I will go back, read it, take some notes and put that into it's own note.</li>
<li><a href="https://github.com/jamiebrynes7/obsidian-todoist-plugin">Todoist plugin</a> -- You can display Todoist items in Obsidian but I don't use it for that. Instead I use a shortcut that makes a Todo from a note. I use this for projects where I make notes of what I need to do and then make a Todo out of it -- my resulting Todoist item links to my Obsidian note so I have all my context... and after I finish, I still have access to what I was thinking or doing, in case I want to go back to it. </li>
</ul>
<p>I use many more but the three above are really the essential to my workflow.</p>
<h2>Spark</h2>
<p>I'm a really bad email user.. I tend to look at a subject and perhaps a preview on an email and leave it alone -- sometimes I take action on it (without opening it up) and sometimes I know it's something I don't need. In either case, I don't even open it up. This is what causes my Gmail to have 30K unread messages (no that is not a joke). This worked... fine? Okayish? for a long time but then lately I realized that I missed some email that I really needed to look at. So I needed to change my bad email ways.</p>
<p>I knew a few people that used <a href="https://sparkmailapp.com">Spark</a> and <a href="https://www.relay.fm/people/mykehurley">Myke on Coretex</a> has been recommending it and so I decided to give it a shot. And again... what took me so long? I love out is auto-categorizes my messages so I know what I need look at and Notifications and Newsletters that perhaps I can leave for later (or just delete).</p>
<p>Lots of people like the "Snooze" feature of Spark but honestly.. I'll just make a todo out of it's Todoist integration. Once setup (all you need is your API key), you click a button, put in your Todist info in the pop-up and your todo has a link to the email in Spark. I wish the Spark modal did natural language or, at the very least wasn't so clunky putting in the right project or a label.</p>
<h2>Tabnine</h2>
<p><a href="https://www.tabnine.com">Tabnine</a> is different than the rest.. it's not an app, per-se, but it's a code-completion helper. Basically it's a little server that runs and connects to plugins to your text editor and/or your IDE and it supercharges your completions. Like just not auto completing variables but in context, lines of code. I've had it complete full streams calls in Java code with no problem. <em>And</em> it works just as well in Intellij as it does in Emacs. This is one tool that works in the background and I really kinda forget about it, yet I use it all the time.</p>
<h2>Vivaldi</h2>
<p>I had used Firefox for a long time and I liked it sync on my desktop, Android phone, and iPad but I had problems with a few important sites... well, some of it was with the security settings I had more than the browser than the browser itself. That said, the world is getting more and more embedded with Chrome. So I started looking for an alternate. I had read things about <a href="https://vivaldi.com">Vivaldi</a> but hadn't tried it in a long while. And really it's fantastic. It does <a href="https://vivaldi.com/features/tab-management/">lots of things with tabs</a> and my current favorite tab feature is to <a href="https://help.vivaldi.com/desktop/tabs/tab-tiling/">tile tabs in the windows</a> which is nicer than you may think. I also love <a href="https://help.vivaldi.com/desktop/shortcuts/quick-commands/">Quick Commands</a>, which is like a Spotlight search within the browser. Bring up a tab, bookmark, command, etc with ease.</p>Why do I Write This?2021-09-26T00:00:00-05:002021-09-26T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2021-09-26:/why-do-i-write-this.html<p>A little while ago I ran into someone and we ended up chatting about this blog. He asked an interesting question – "Why do you write the blog?". I didn't have an answer then and I'm not sure that I have one now, but I'm writing about it anyway.</p>
<p>A day …</p><p>A little while ago I ran into someone and we ended up chatting about this blog. He asked an interesting question – "Why do you write the blog?". I didn't have an answer then and I'm not sure that I have one now, but I'm writing about it anyway.</p>
<p>A day or two after that conversation I read <a href="https://www.theringer.com/2021/7/21/22586870/google-reader-ode-end-of-the-good-internet">Katie Baker's article about the death of Google Reader and the real Internet</a> and it reminded me of the "Why blog?" question. They seem related and really that's the real reason I am writing this.</p>
<p>Let's start with this – I've always fancied myself a writer. Even in my grade school days, I did well on my writing assignments and, dare I say, I was <em>good</em> at it. At times I fancied that I was going to write novels someday. Well that feeling is gone but it's still something I enjoy and something perhaps I will always do, in one way or another. Sönke Ahrens wrote in his book <em>How to Take Smart Notes: One Simple Technique to Boost Writing, Learning and Thinking – for Students, Academics and Nonfiction Book Writers</em>:</p>
<div class="highlight blockquote"><pre><span></span><span class="err">If there is one thing the experts agree on, then it is this: You have</span>
<span class="err">to externalize your ideas, you have to write. Richard Feynman stresses</span>
<span class="err">it as much as Benjamin Franklin. If we write, it is more likely that we</span>
<span class="err">understand what we read, remember what we learn and that our thoughts</span>
<span class="err">make sense.</span>
</pre></div>
<p>so, in a huge sense, I write mostly for me. To remember things, to process informartion, to sort things out in my brain. But do I write blogs posts for me? Well… sometimes? But that is something different, which I'll probably get to in a different post.</p>
<p>In another sense, I started my blog simply because I like the other blogs that were out there, especially help in more technical issues but also hearing about things from different people's perspectives. I think that was why blog readers were essential. You found a blog that you were interested in and you followed it. Then you only had one place to go to. It wasn't unusual to have 100 blogs to follow. Of course now I still follow blogs. Very few are updated daily, some (I guess like mine) aren't even updated monthly. But that's fine. Perhaps the most important reason that I write is to be a part of the larger web conversation, even if there really isn't one and I'm typing this to the ether.</p>
<p>I remember thinking once that I didn't need Google Reader anymore – I had Twitter and I didn't need to follow anyone else but I could see what the current conversation was. How naive! The early days of Twitter were fun (anyone else remember TweetUps and Tweet Lunches?). But that didn't last long… soon there was so much noise and very little content. I rarely use Twitter anymore. But how am I going to learn and be exposed to new ideas if there is so much noise in the "noise" in the public forum. Now I'm <a href="https://mike.hostetlerhome.com/rss-reader.html">back to using as RSS reader a lot</a> and even though blogs aren't as active as they once was, there is some great stuff out there.</p>
<p>I don't blog because I want to be a professional blogger. Honestly, I don't care about traffic…I don't even keep track. Maybe no one will read it. I'm fine with that. Maybe this is more online journal for me than "wow someone will find is useful." But I do want someone to find it useful. Maybe not <em>you</em> but perhaps someone still stumble on to this and think "wow, that helped me more than StackOverflow" or "I never thought of it that way."</p>
<p>Basically – I blog for me and hope that other people find it useful as well.</p>
Emacs as your RestClient2021-06-09T00:00:00-05:002021-06-09T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2021-06-09:/emacs-as-your-restclient.html<p><img src="./images/emacs-rest.png" /></p>
<p>A few weeks ago, I was surprised when I was asked to demo a webservice that I wrote. Since I didn't prep a Postman config for it (because I don't use Postman unless I have to, like during demos ) I got out Emacs and opened the orgfile that I had …</p><p><img src="./images/emacs-rest.png" /></p>
<p>A few weeks ago, I was surprised when I was asked to demo a webservice that I wrote. Since I didn't prep a Postman config for it (because I don't use Postman unless I have to, like during demos ) I got out Emacs and opened the orgfile that I had used to test the service. Suddenly the Architect piped in and said, "Emacs? Who uses Emacs to test services? I really can't stand people who use command line tools!". What he didn't know is that I wear comments like that as a badge of honor. So let me teach you how use <a href="https://orgmode.org/">Orgmode</a> as a RestClient to annoy your co-workers just like I do!</p>
<p>There are lots of links out there how to set this up and how it works.<a href="https://cestlaz.github.io/post/using-emacs-60-restclient/"> Mike Zamansky has a great post/video of the basics of RestClient</a>. For the OrgMode part, you basically need to use <a href="https://orgmode.org/worg/org-contrib/babel/">the Babel functionality</a> and <a href="https://github.com/alf/ob-restclient.el">ob-restclient</a>. This sounds like a lot of work but Doom Emacs (the config distro that I'm currently using) has all of this included.</p>
<p>At it's most basic, you can just do this:</p>
<div class="highlight example"><pre><span></span><span class="o">#+</span><span class="n">begin_src</span> <span class="n">restclient</span>
<span class="k">GET</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">openlibrary</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">api</span><span class="o">/</span><span class="n">volumes</span><span class="o">/</span><span class="n">brief</span><span class="o">/</span><span class="n">isbn</span><span class="o">/</span><span class="mi">9781429992800</span><span class="p">.</span><span class="n">json</span>
<span class="o">#+</span><span class="n">end_src</span>
</pre></div>
<p>Enter <code>Ctrl-c Ctrl-c</code> (or <code>C-c C-c</code> as an Emacs person would write it) anywhere in that source block and it will execute. The result will be a long-winded response around a <code>#RESULTS:</code> section that magically appears below it. OpenLibrary has a nice API in that you don't have to specify a content type (or even an API key). Here is how you set some headers, via <a href="https://rapidapi.com/Active-api/api/airport-info/">this sample API</a>.</p>
<div class="highlight example"><pre><span></span><span class="o">#+</span><span class="n">begin_src</span> <span class="n">restclient</span>
<span class="k">GET</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">airport</span><span class="o">-</span><span class="n">info</span><span class="p">.</span><span class="n">p</span><span class="p">.</span><span class="n">rapidapi</span><span class="p">.</span><span class="n">com</span><span class="o">/</span><span class="n">airport</span><span class="o">?</span><span class="n">iata</span><span class="o">=</span><span class="n">OMA</span>
<span class="n">x</span><span class="o">-</span><span class="n">rapidapi</span><span class="o">-</span><span class="k">key</span><span class="p">:</span> <span class="o"><</span><span class="k">some</span> <span class="k">key</span><span class="o">></span>
<span class="n">x</span><span class="o">-</span><span class="n">rapidapi</span><span class="o">-</span><span class="k">host</span><span class="p">:</span> <span class="n">airport</span><span class="o">-</span><span class="n">info</span><span class="p">.</span><span class="n">p</span><span class="p">.</span><span class="n">rapidapi</span><span class="p">.</span><span class="n">com</span>
<span class="o">#+</span><span class="n">end_src</span>
</pre></div>
<p>You will then get the information of the Omaha airport back. Note that the headers appear directly below the <code>GET url</code> line. Note that you can also replaced <code>GET</code> with <code>POST</code>, <code>PUT</code> and etc.</p>
<p>If you need to put in a payload, you don't need to do fancy JSON things, just put in the string <strong>with a blank line between the headers and the payload</strong>, like so:</p>
<div class="highlight example"><pre><span></span><span class="o">#+</span><span class="n">begin_src</span> <span class="n">restclient</span>
<span class="n">POST</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">airport</span><span class="o">-</span><span class="n">info</span><span class="p">.</span><span class="n">p</span><span class="p">.</span><span class="n">rapidapi</span><span class="p">.</span><span class="n">com</span><span class="o">/</span><span class="n">airport</span>
<span class="n">x</span><span class="o">-</span><span class="n">rapidapi</span><span class="o">-</span><span class="k">key</span><span class="p">:</span> <span class="o"><</span><span class="k">some</span> <span class="k">key</span><span class="o">></span>
<span class="n">x</span><span class="o">-</span><span class="n">rapidapi</span><span class="o">-</span><span class="k">host</span><span class="p">:</span> <span class="n">airport</span><span class="o">-</span><span class="n">info</span><span class="p">.</span><span class="n">p</span><span class="p">.</span><span class="n">rapidapi</span><span class="p">.</span><span class="n">com</span>
<span class="err">{</span><span class="s1">'iata'</span><span class="p">:</span><span class="s1">'OMA'</span><span class="err">}</span>
<span class="o">#+</span><span class="n">end_src</span>
</pre></div>
<p>(Note that the above won't work, but it's still a good example)</p>
<p>All this is well and good, but isn't very real-world. What if you have to authenticate? What if you have to specify a content type? Well <a href="https://orgmode.org/manual/Results-of-Evaluation.html">you can send the results of one evaluation to another.</a> That document is hard to follow but essentially you can evaluate an OrgMode source block and put the results in another. You basically put it in a variable that you carry from block to block. And it doesn't matter what language the blocks are written in.</p>
<p>So here is an example of using Python's <a href="https://docs.python-requests.org/en/master/">requests library</a>, which makes getting an oauth token pretty easy. Note the <code>:results token</code> in the header – that declares a variable to put the result in.</p>
<div class="highlight example"><pre><span></span><span class="c1">#+begin_src python :results token</span>
<span class="kn">import</span> <span class="nn">requests</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"client_id"</span><span class="p">:</span> <span class="s2">"<client id>"</span><span class="p">,</span>
<span class="s2">"client_secret"</span><span class="p">:</span> <span class="s2">"<some creds>"</span><span class="p">,</span>
<span class="s2">"grant_type"</span><span class="p">:</span> <span class="s2">"client_credentials"</span>
<span class="p">}</span>
<span class="n">r</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="s1">'https://some-url/oauth/token'</span><span class="p">,</span> <span class="n">data</span> <span class="o">=</span> <span class="n">data</span><span class="p">,</span> <span class="n">verify</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="c1">#False if you have weird SSL stuff</span>
<span class="k">return</span> <span class="n">r</span><span class="o">.</span><span class="n">json</span><span class="p">()[</span><span class="s2">"access_token"</span><span class="p">]</span>
<span class="c1">#+end_src</span>
</pre></div>
<p>And then you declare the <code>token</code> as a variable on requests and use it in the block – note the <code>:token</code> in the <code>Authorization</code> header:</p>
<div class="highlight example"><pre><span></span><span class="o">#+</span><span class="n">begin_src</span> <span class="n">restclient</span> <span class="p">:</span><span class="n">var</span> <span class="n">token</span><span class="o">=</span><span class="n">token</span>
<span class="n">POST</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="k">some</span><span class="o">-</span><span class="n">app</span><span class="o">-</span><span class="n">url</span><span class="o">/</span><span class="n">path</span><span class="o">/</span><span class="k">to</span><span class="o">/</span><span class="n">api</span><span class="o">/</span><span class="n">thing</span>
<span class="n">Content</span><span class="o">-</span><span class="k">Type</span><span class="p">:</span> <span class="n">application</span><span class="o">/</span><span class="n">json</span>
<span class="k">Authorization</span><span class="p">:</span> <span class="n">Bearer</span> <span class="p">:</span><span class="n">token</span>
<span class="err">{</span><span class="s1">'stuff'</span><span class="p">:</span><span class="s1">'bar'</span><span class="err">}</span>
<span class="o">#+</span><span class="n">end_src</span>
</pre></div>
<p>So run <code>C-c C-c</code> on the first (python) source block and then again on the second. Boom – your call to the service it authenticated . I find this <a href="https://learning.postman.com/docs/sending-requests/authorization/">a lot easier than using alternatives.</a></p>
Advancing my Todoist2021-06-02T00:00:00-05:002021-06-02T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2021-06-02:/advancing-my-todoist.html<p>My <a href="./handwritten-notes.html">previous post</a> about my bullet journal got me thinking of rapid logging, and got me thinking about how projects in Todoist aren't just working for me – and suddenly I found myself in another Todo App Crisis.</p>
<p>I have <a href="https://github.com/sethmdoty?tab=repositories">a friend that that shares the productivity bug with me</a> and …</p><p>My <a href="./handwritten-notes.html">previous post</a> about my bullet journal got me thinking of rapid logging, and got me thinking about how projects in Todoist aren't just working for me – and suddenly I found myself in another Todo App Crisis.</p>
<p>I have <a href="https://github.com/sethmdoty?tab=repositories">a friend that that shares the productivity bug with me</a> and we chat a lot about idea. He sent me the link to <a href="https://fortelabs.co/blog/para/">The PARA Method</a> which really screwed up my thinking but I felt like it gave me the permission to look at using more than one app to accomplish what I wanted. I then tried both Trello and OmniFocus and figuring out how they can fit into my paradigms of what I wanted to achieve. To make this shorter: I gave up looking at other apps and dug into the Todoist help a bit more. My final decision is to change how I am using Todoist.</p>
<p>I won't want to belabor points about Trello and OmniFocus – this is really on how I can start using Todoist better.</p>
<h2 id="use-the-web-dummy">Use the web, dummy</h2>
<p>I am now of the opinion that the Web App for Todoist is far superior than either the mobile or the Desktop apps, which is funny to me because the "apps" are really Electron apps so you would think they would be the same. But what I figured out is that the web app gives me so much more.</p>
<p>Rapid logging, for example, is so much easier through the browser:</p>
<ol>
<li>Type each task, one a time in a text editor, using the DSL if you want</li>
<li>Copy all those lines to your clipboard</li>
<li>Find the label or project you want those tasks in – or Inbox if you want</li>
<li>Paste – the app will ask you if you want one task per line</li>
</ol>
<p>And… that's it. If you wrote 100 tasks in the text editor, you now have 100 new tasks in Todoist.</p>
<p>But managing tasks is also easier on the web version simply because of <a href="https://github.com/mgsloan/todoist-shortcuts">the todoist-shortcuts add-on</a> which basically puts the GMail shortcuts into Todoist. Obviously you can only do this in the browser.</p>
<p>One trick that works both on the desktop and in the browser is to Shift-Click on several tasks and you can edit many on once. What a time-saver!</p>
<h2 id="labels-over-projects">Labels over Projects</h2>
<p>One of the mind shifts that I had to change is that every task had to be in a Project and have a Due Date. I will say that most things do need to have those things, but I found that some things I just want to get done, and maybe one task will take me a few days (say, like writing a blog post). Do what to just keep moving the date? Is that a project instead of a task? Well I had to really think about it.</p>
<p>I experimented with this before but now have started in earnest – using Labels instead of throwing things in a project. This way I can put a bunch of stuff in at once and not worry what project it goes into. Instead I give it a label right away. If I want to do it soon, I can leave it in the Inbox. If I don't want to, I can deal with it later by setting a due date. If I think it belongs in a project later on, I can do that too.</p>
<p>To do that, you have to harness the power of <a href="https://todoist.com/help/articles/introduction-to-filters">Filters</a>. I've played with them long ago but now I really dug in and think they are the key to my effectiveness. <a href="https://www.dandywithlens.com/ultimate-guide-todoist-filters/">Here is an excellent unofficial guide to writing a Todoist filter.</a> My default view is now a filtered list called <code>tasklist</code> that is simply :</p>
<div class="highlight text"><pre><span></span>overdue | (no date & #Inbox) | ( next 2 days )
</pre></div>
<p>I use that as my default view on my phone and as the default view in the Android widget (which is my usual default completion device). Works great – I can see the tasks without a Date and things due in the next couple of days.</p>
<h2 id="completed-tasks">Completed tasks</h2>
<p>One thing I did want from PARA is to keep track of my completed tasks. Todoist's interface doesn't make it easy to browse through completed tasks and that makes sense – it's not something you do often. But as PARA said – how can you review what you accomplished without have access? I found a <a href="https://ifttt.com/applets/XPTdxDE9">IFTTT recipe</a> that records each completed task into a Google Sheet with a link to the individual task in Todoist. I was going to do something fancy with that, but really having it in a Google Sheet is perfect – you can slice and dice it from there.</p>
<h2 id="onward">Onward</h2>
<p>This seems to satisfy my changing needs .. it helps me put and manage a lot of tasks and helps answer my questions like "What have I done in the last year?" when I do my yearly job evaluation.</p>
<p>I stumbled onto a <a href="https://github.com/sachaos/todoist">currently maintained cli for Todoist</a> written in Go and I think I could use a lot of things in there.. but I had to compile it and then get an exception while running the initial sync. I'll keep mucking with that to see if I can get it going and how I can use it.</p>
Handwritten Notes2021-05-15T00:00:00-05:002021-05-15T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2021-05-15:/handwritten-notes.html<p><img src="./images/bullet_journal.jpg" /><a href="#fn1" class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a></p>
<p>If 2020 was the <a href="https://mike.hostetlerhome.com/2020-the-year-of-taking-notes.html">Year of Taking Notes</a>, then 2021 is turning into the year of <em>handwriting</em> notes. And if you know me this is quite a change – I have been proudly typing things out for years, leaving writing things by hand proudly behind. A big part of it …</p><p><img src="./images/bullet_journal.jpg" /><a href="#fn1" class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a></p>
<p>If 2020 was the <a href="https://mike.hostetlerhome.com/2020-the-year-of-taking-notes.html">Year of Taking Notes</a>, then 2021 is turning into the year of <em>handwriting</em> notes. And if you know me this is quite a change – I have been proudly typing things out for years, leaving writing things by hand proudly behind. A big part of it is my handwriting is <em>deplorable</em> and always have been. And really it's gotten worse. I also tend to lose the pieces of paper I written things on. The later is really organization problem and not a handwriting problem. And the organization problem really that is what I ended up solving, even if it was by accident.</p>
<p>But how did I start down this handwriting path? Simply because it's faster. But it turned out that I remember things better if I write them out as opposed to type it. And with some organization I can say "I know where that is!". And not only do I remember it better, I tend to be more thoughtful when I put it down. As long as I have my little notebook nearby, I can quickly jot things down, not worry about them again until I need them.</p>
<p>I was the Apple Pencil that started me on it. I bought it because I thought it was cool and then I got a copy of <a href="https://www.goodnotes.com">GoodNotes</a> on my iPad.A bunch of things suddenly just clicked. I started drawing and filling out PDFs. This is very handy for print-and-play games like <a href="https://boardgamegeek.com/boardgame/255360/bargain-basement-bathysphere">Bargain Basement Bathysphere</a> and <a href="https://boardgamegeek.com/boardgame/193105/utopia-engine-beast-hunter">Utopia Engine: Beast Hunter</a>. I can easily erase, don't have to worry about printing things out and keeping track of paper. I found that once I got used to the Pencil (which did not take long) I really liked this style. But I didn't want to keep everything in my iPad… gee, am I going to start writing things by hand?</p>
<p>Through a long series of looking at random things, I somehow stumbled into the concept of a <a href="https://bulletjournal.com/">Bullet Journal</a>. <a href="https://bulletjournal.com/pages/learn">This video is really the best overview</a> and currently my journal looks a lot like that, as <a href="https://www.bbc.com/news/business-48840358">opposed to a work of art.</a><a href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a> I don't follow it fully, which is really on of the beautiful things about the system – you don't have to. Honestly my Bullet Journal is mainly headings and lists. I don't do the "rapid logging" part of a Bullet Journal, but instead instead I focus on <a href="https://bulletjournal.com/blogs/bulletjournalist/collections">The Collections</a> to brainstorm and rapid collection of ideas into a collection and then turn those into tasks in my <a href="https://todoist.com/">Todoist</a>. While that seems like a lot of work, it actually works great.</p>
<p>Ironically I could do all of this in a Bullet Journal but, however, it's hard for me to leave Todoist simply because I always have it with me, via my phone. I could do all this list management into Todoist and have tried it before. The problem is that I tend not be able to find things again and entering a bunch of items in a brain dump is not very fast in Todoist. For example, my wife would come up with ideas for the <a href="https://mike.hostetlerhome.com/new-house.html">new house</a> and I couldn't keep up in putting them into Todoist. With my bullet journal, I just found that collection, grabbed the pen that I always have in it, and we record things as fast as we say them.</p>
<p>Basically, my workflow is like this:</p>
<ul>
<li>my Bullet Journal is for ideas, lists, brainstorming, and facts (you know, like what address you're new house is at)</li>
<li>When I'm ready to put things into action, I open my journal and Todoist and start moving things over.</li>
<li>it's important that everything in Todoist has a due date… or I will never find it again.</li>
</ul>
<p>This has started me on a strange path of being picky about notebooks and pens. What I ended up choosing is <a href="https://www.amazon.com/gp/product/B089GYCQDY/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1">this notebook</a> which is dotted, not lined (non-negotiable), has a bookmark ribbon, a sleeve for the pen and has a band to keep it closed. I've had this notebook in my living room table, in appliance stores, etc and it's held up well. I think the paper is a little thin so a dark pen will bleed through. I've settled on <a href="https://www.amazon.com/gp/product/B00X8YQPYA/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1">this Pentel pen</a> which I had used before. I like it because it writes thin (so my handwriting is more legible) and doesn't bleed through. This arrangement is … OK. I think I would like better quality paper but do not want to sacrifice the closing band or the pen holder. Decisions, decisions…</p>
<p>It's strange about how I've fallen back into low-tech habits in the time of COVID and that I am keeping those habits around.</p>
<section class="footnotes" role="doc-endnotes">
<hr />
<ol>
<li id="fn1" role="doc-endnote"><p>And yes that is actually my journal index. Ugly, isn't it?<a href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn2" role="doc-endnote"><p>When I first saw <a href="https://youtu.be/ZK5VUuxGYr0">this video</a>, I laughed my head off. Not only does my journal not look anything like that, I would never put that much work into how it looks. It's 100% function over form.<a href="#fnref2" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</section>
New House2021-03-22T00:00:00-05:002021-03-22T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2021-03-22:/new-house.html<p><img src="./images/house_pile.png" /></p>
<p>The idea of the new house started when we moved into the old one. It was a concept, an idea that we joked about. "Well in our next house we want… "" and then we would chuckle. I mean there were things that we didn’t like and so we changed …</p><p><img src="./images/house_pile.png" /></p>
<p>The idea of the new house started when we moved into the old one. It was a concept, an idea that we joked about. "Well in our next house we want… "" and then we would chuckle. I mean there were things that we didn’t like and so we changed them. We got rid of some dark, 1970’s chic and made some more space.</p>
<p>Then it became less of joke as years went by. “There are too many steps to get into this house” and “It’s a long way to carry groceries to the kitchen” and “our backyard is too big” and then there was “these rooms are so small.” There were things we could do and we did a lot of them — but frankly we couldn’t move the garage closer to the kitchen. Or take out the steps to get into the house. But we dealt with it. And did more stuff… we redid the kitchen! We redid a bathroom! But still the laundry room is off the kitchen. And the kitchen is floor and half a house away from the garage.</p>
<p>We made a list of what we wanted. Zillow weighed heavily in our browser history but we didn’t like what we saw. Not enough hit the must haves. We had a realtor come and he gave us a list of things to do to sell. Another bathroom changed! New flooring! Lots of things move out! And we cleaned. But Zillow still didn’t show us anything we were happy with.</p>
<p>But then Zillow started showing up some brand new houses… “Hey this is done, why not look at it?” So we walked through a couple model homes.. hm, close but not quite. We drove further to walk through another model. Wait… this.. is perfect! Big rooms! Nice basement! Smaller yard! No deck! Laundry by the bedrooms! Um… so… we are going to build. Never our plan. Building was always a ephemeral idea and then became permanent. Contracts were signed, money changed hands… and an old house was fixed. Or tweaked. And then put up for sale… and quickly purchased.</p>
<p>We moved to an apartment…cozy but comfortable. And we go to our patch of dirt and see progress. And hey we do see progress.</p>
Puzzling2021-01-22T00:00:00-06:002021-01-22T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2021-01-22:/puzzling.html<p>It was a long time ago when I first discovered Sudoku. I do remember it well… I had a long flight ahead of me and this was before I had a smart phone..I had some books (like printed) but wanted something else in case the books made me lose …</p><p>It was a long time ago when I first discovered Sudoku. I do remember it well… I had a long flight ahead of me and this was before I had a smart phone..I had some books (like printed) but wanted something else in case the books made me lose interest. I picked up a book by Will Shortz and made sure I had a couple of pencils with me. I'm not going to say I was good at it, but I enjoyed it and it helped whittle away the hours (yes, hours) of flights I had.</p>
<p>I toyed with it off and on for years but waned in my interested of it. Fast forward to last week and I saw someone mention that Microsoft (yes, that Microsoft) has a good mobile app on both <a href="https://play.google.com/store/apps/details?id=com.microsoft.sudoku&hl=en_US&gl=US">Android</a> and <a href="https://apps.apple.com/us/app/microsoft-sudoku/id1462494195">iOS</a>, so I put it on my Android phone and took it for a spin. And hey I really liked it – and I was better than I remembered being! Oh and then I tried a hard puzzle and that humbled me a bit. There were ads on the MS version and I didn't feel like paying a monthly fee to get rid of them. And it was small on my phone screen. Oh, but I have an iPad…</p>
<p>After some research I found lots of people like <a href="https://www.playgoodsudoku.com/">Good Sudoku</a>. As I loaded it up and noted it was by the same developer as <a href="http://www.spelltower.com/">Spelltower</a>, another game I enjoy, even though I really don't always like word games. And Good Sudoku is aptly named – and it has taught me how to get better. At first I thought the first few puzzles were hard (certainly harder than MS's version) but then I realized I was playing Advanced puzzles… oops. So I went to the beginner and played a bunch, and then went into the tutorial where it talked about note taking. <strong>That</strong> really helped my Sudoku game. Now I see more patterns, how to utilize notes, etc. Of course, now it's hard to go back.</p>
<p>So, if you need something to occupy your time <del>during Zoom meetings</del> while zoning out to TV, why not fire up a Sudoku app for a bit?</p>
Working the cloud with rclone2020-12-30T00:00:00-06:002020-12-30T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2020-12-30:/working-the-cloud-with-rclone.html<p><strong>TL;DR</strong> – <a href="https://rclone.org/">rclone</a> truly is the Swiss Army knife of cloud storage and you should look into it if you have to deal with that world at all (S3, DropBox, OneDrive, etc).</p>
<p>In the past I really had an addiction to <a href="https://www.humblebundle.com/">Humble Bundle</a>, where I bought a lot of cheap …</p><p><strong>TL;DR</strong> – <a href="https://rclone.org/">rclone</a> truly is the Swiss Army knife of cloud storage and you should look into it if you have to deal with that world at all (S3, DropBox, OneDrive, etc).</p>
<p>In the past I really had an addiction to <a href="https://www.humblebundle.com/">Humble Bundle</a>, where I bought a lot of cheap ebooks and comics. I dutifully put both of these into <a href="https://calibre-ebook.com/">Calibre</a> and then put it from there into my devices. Now for epubs to my e-reader, it was pretty easy. But it was quite a bit hard for comics. Eventually I forgot about all the comics.. until I bought some more. And then instead of just putting them in Calibre I put them into a folder in my pCloud storage. Then I find <a href="https://panels.app/">Panels</a>, a really good Comic app for the iPad. But downloading a file from <a href="https://pcloud.com/">pCloud</a> and then importing it into Panels was painful. I saw that the commercial version of Panels offered integration with OneDrive, GDrive, and DropBox – but not pCloud. Well I have a <a href="https://onedrive.live.com/">OneDrive</a> that I haven't used… maybe we can move my files there? Oh but I struggle with pCloud's macOS client when I copy or rsync a lot of files out of there. It simply crashes. So I can't do all the work locally.</p>
<p>So that is the setup… I've had rclone on my watchlist before and mucked with it a few times but nothing serious. Well this seemed like a good way to learn about it. First I had to setup both <a href="https://rclone.org/pcloud/">pCloud</a> and <a href="https://rclone.org/onedrive/">OneDrive</a> – that was pretty easy. I naively decided to run a cloud-to-cloud sync, thinking that it would bomb. I was pleasently surprised! The command was:</p>
<div class="highlight shell"><pre><span></span>rclone sync <span class="s2">"pcloud:comics"</span> <span class="s2">"onedrive:comics"</span>
</pre></div>
<p>I did this about 6pm and it finished about 11pm. I didn't think that was too bad. Oh and Panels was able to read my OneDrive and download the comic file just fine. Fantastic!</p>
<p>The next day I was wondering about the gigs (yes I said gigs) of other comics I had in pCloud (where I back up my Calibre) library. So I decided to copy those out of pCloud and into OneDrive</p>
<p>My comics are all in <code>cbz</code> format so I essentially had to find all my <code>.cbz</code> files. With rclone, this was pretty easy:</p>
<div class="highlight shell"><pre><span></span>rclone ls --include <span class="s2">"*.cbz"</span> pcloud: > file.lst
</pre></div>
<p>I could have immediately copied the files to OneDrive instead of making a file list but I wanted to change the directory structure from what Calibre used. For example, I didn't want <code>comics/My Books/Unknown/starwars legacy vol1 1412979773 (18)/starwars legacy vol1 1412979773 - Unknown.cbz</code> but (an attempt) to do <code>comics/starwars/starwars legacy vol1 1412979773 - Unknown.cbz</code>. Also I really did not want to re-copy the files already existing in <code>comics</code>. So I wrote a quick and dirty Python script:</p>
<div class="highlight python"><pre><span></span><span class="ch">#!/usr/bin/env python3</span>
<span class="kn">from</span> <span class="nn">pathlib</span> <span class="kn">import</span> <span class="n">Path</span>
<span class="kn">from</span> <span class="nn">string</span> <span class="kn">import</span> <span class="n">Template</span>
<span class="n">rclone_cmd</span> <span class="o">=</span> <span class="n">Template</span><span class="p">(</span><span class="s1">'rclone copy "pcloud:$infile" "onedrive:comics/$dirname/"'</span><span class="p">)</span>
<span class="n">f_list</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="s2">"file.lst"</span><span class="p">)</span>
<span class="k">with</span> <span class="n">f_list</span><span class="o">.</span><span class="n">open</span><span class="p">()</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">fp</span><span class="p">:</span>
<span class="n">size</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">int</span><span class="p">(</span><span class="n">size</span><span class="p">)</span> <span class="o"><</span> <span class="mi">0</span> <span class="ow">or</span> <span class="s2">"comics/"</span> <span class="ow">in</span> <span class="n">name</span><span class="p">:</span>
<span class="k">continue</span>
<span class="n">new_name</span> <span class="o">=</span> <span class="n">name</span>
<span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"My Books/"</span><span class="p">):</span>
<span class="n">new_name</span> <span class="o">=</span> <span class="n">name</span><span class="p">[(</span><span class="nb">len</span><span class="p">(</span><span class="s2">"My Books/"</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">:]</span>
<span class="k">if</span> <span class="s2">" "</span> <span class="ow">in</span> <span class="n">new_name</span><span class="p">:</span><span class="n">p</span>
<span class="n">prefix</span><span class="p">,</span> <span class="n">junk</span> <span class="o">=</span> <span class="n">new_name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">dirname</span> <span class="o">=</span> <span class="n">prefix</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"/"</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="n">outname</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"/"</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="nb">print</span><span class="p">(</span><span class="n">rclone_cmd</span><span class="o">.</span><span class="n">substitute</span><span class="p">(</span><span class="n">infile</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="n">dirname</span><span class="o">=</span><span class="n">dirname</span><span class="p">,</span> <span class="n">outfile</span><span class="o">=</span><span class="n">outname</span><span class="p">))</span>
</pre></div>
<p>The result didn't really give me a directory structure that I wanted, but close. I figured I could change it manually but what I had was a good start. I also could have ran the <code>rclone copy</code> command in the python script, but I wanted to see the finished commands them all. So then I captured the output of my script, and then I basically had shell script. I kicked it off before bed and it finished long before I got up. And everything was copied!</p>
<p>So yeah… everything I wanted to do I was able to with rclone. I for sure will keep it in my toolbox.</p>
Video Games as Art2020-12-22T00:00:00-06:002020-12-22T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2020-12-22:/video-games-as-art.html<p>Been thinking a lot lately of the current state of video games.. I'm not sure why. Technically, we own an XBox One but my son plays on it mostly (or, er, most of the time) and I've dabbled a bit in other games, specifically <a href="https://www.minecraft.net/en-us">Minecraft</a> and <a href="https://www.stardewvalley.net/">Stardew Valley</a>, which in …</p><p>Been thinking a lot lately of the current state of video games.. I'm not sure why. Technically, we own an XBox One but my son plays on it mostly (or, er, most of the time) and I've dabbled a bit in other games, specifically <a href="https://www.minecraft.net/en-us">Minecraft</a> and <a href="https://www.stardewvalley.net/">Stardew Valley</a>, which in some ways are similar – both are pretty open and you can kinda do whatever you want. Stardew Valley certainly has a linear story and it has much less variation but it certainly has a lot of charm (and hey, it's <a href="https://forums.stardewvalley.net/index.php?threads/1-5-update-progress-hub-nov-13-2020.2134/">still being developed</a>, as well as Minecraft). I don't spend a lot of time with either one of late but I go back and forth. Since video games are at least on my periphery, I do keep up on an eye on the big news so I had <a href="https://www.theverge.com/2020/12/17/22188007/sony-cyberpunk-2077-removed-playstation-store-full-refunds-policy">to chuckle when Cyberpunk 2077 didn't live up to the hype.</a> But of course it couldn't.</p>
<p>I don't really care for AAA games – mostly because it takes 20-45 minutes to actuall start (sometimes longer) and I don't have long gaming sessions to begin with. Add in the grotesque, sex and language they tend to put in (and I'll say it) the same thing over and over again. Another thing I can't stand is when it's really a conceit. My son and I played <a href="https://505games.com/games/human-fall-flat/">Human Fall Flat</a> because the controls are stupid. Maybe I'm an old man.</p>
<p>What I have discovered is that I like smaller, more independent games. They try to do things different and maybe they fail at it but at least it's original. Sometimes they have a story, sometimes they don't. <a href="https://minitgame.com/">Minit</a> is a good example of this. It looks like <a href="https://www.google.com/search?q=commodore+64+games+graphics&client=firefox-b-d&channel=trow2&sxsrf=ALeKk01PyeihhK-ZOdZxxVkHkxcUjmroag:1608420237075&source=lnms&tbm=isch&sa=X&ved=2ahUKEwj2lIWnmNvtAhWTbs0KHWSnDz8Q_AUoAXoECBUQAw&biw=1378&bih=883">it was ported from the C64</a>. And it's basically a puzzle game but you only live a minute but one you do in one "round" carries over to another. Clever, fast, and kinda hard at times.</p>
<p>This summer I've bought into <a href="https://itch.io/b/520/bundle-for-racial-justice-and-equality">itch.io's Bundle for Racial Justice and Equality</a>. Mostly because I figured that I would easily get my money's worth and also because I supported it's cause. Some of the games I had heard of (like Minit, which I had played before and <a href="http://www.celestegame.com/">Celeste,</a> which is a very humbling plaformer). Few of these games rival a AAA in story and graphics, but the ones I have played are a lot of heart. Take, for example <a href="https://ashorthike.com/">A Short Hike,</a> a game I would have never heard until I bought the bundle. I've played it throught twice and may do it again… and I never take the time to actually finish a game! But it's sweet, with a fun little journey and story. Another one (and game I should get back to) is <a href="https://echodog-games.itch.io/signs-of-the-sojourner">Signs of the Sojourner</a>, a RPG/interactive story with a card game in it. And part of the game is to figure out when to win and when to lose.</p>
<p>Ironically, I have played none of these games on my iPad, which is certainly my main "gaming machine". Regardless, this started going through my mind as I'm playing <a href="https://annapurnainteractive.com/games/florence">Florence</a> on my iPad. For a game, it isn't much. In fact, I'd say it's more of a story with easy puzzles (literally jigsaw puzzles a lot of the time) as you go along. But the story is so very well told… I was engrossed with it and how they told it. Another example is <a href="https://devolverdigital.com/games/gris">Gris</a>, which is certainly more involved than Florence but certainly more art than game. A few years ago I was really into <a href="https://www.inklestudios.com/80days/">80 Days</a>, which is a re-telling of Eighty Days Around the World. It's not far (or hard) to get around the world, but there are so many paths to take that when you do it, you start again! And then probably again!</p>
<p>I guess this rambling is – I like story. I value story over form. I like many tasks, open world.. but if it's going to be a story, then make it a story!</p>
Streaming TV Shows -- COVID edition2020-12-15T00:00:00-06:002020-12-15T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2020-12-15:/streaming-tv-shows-covid-edition.html<p>As this crazy year closes, my wife and I were chuckling about how many TV Series we binged while in isolation. We started more than we finished – if one us is isn't totally into it, we have no problems in stopping. These are the ones we liked the best. This …</p><p>As this crazy year closes, my wife and I were chuckling about how many TV Series we binged while in isolation. We started more than we finished – if one us is isn't totally into it, we have no problems in stopping. These are the ones we liked the best. This doesn't count movies, just TV series.</p>
<p>In any order:</p>
<ul>
<li><a href="https://www.netflix.com/title/81115994">Tiger King</a> (Netflix) – like who didn't watch watch this at the beginning of quarentine? How lucky could Netflix get then to get a docu-series about crazy people in a weird American subculture just when we needed it? Not the best docu-series ever but worthy of the cultural phenom it became and the perfect show to make us laugh and cringe when we needed it. (B+)</li>
<li><a href="https://www.amazon.com/Worlds-Toughest-Race-Eco-Challenge-Fiji-Season/dp/B08BB8S8FJ">World’s Toughest Race: Eco-Challenge Fiji</a> (Amazon Prime) – so crazy-man <a href="https://en.wikipedia.org/wiki/Bear_Grylls">Bear Grylls</a> decided there were other survivalist crazies, so he made a course in Fiji for them to race on. The best part of this series that they didn't just follow the leaders but other people way back in the pack with intersting stories. It was impressive… but these people were crazy. (A)</li>
<li><a href="https://www.netflix.com/title/80025678">The Crown</a> (Netflix) – a show I didn't expect to like but I really do. It's a slow burn but everything is well done – acting, costume, scenery, script. I don't care how accurate it is, but it's probably accurate enough. There are a lot of great episodes but I think my favorite is "Moondust" from S3. (A+)</li>
<li><a href="https://en.wikipedia.org/wiki/How_to_Get_Away_with_Murder">How to Get Away With Murder</a> (Netflix, now) – I wanted to quit this after Season 3 because that season was a diaster – I felt the writers didn't have enough story per episode, so they filled time with sex scenes. But we kept watching Season 4 because they left some things hanging and they somehow found good writers. Anyway the premise is good and Viola Davis is downright amazing in her main role as a diabolical law school professor. Lots of great themes like loss of innocence, sexism, childhood trauma. But sometimes the characters are kinda dumb and it probably goes a season longer than it should have. (B-, D+ to Season 3)</li>
<li><a href="https://www.netflix.com/title/81115994">Big Little Lies</a> (HBO) – We don't have HBO but sometime in quarentine HBO was giving shows away via Amazon Prime. Season 1 had a brutal display of domestic abuse and a great "Well what happened?" to it. It was impossible to carry that on to Season 2, but exploring more characters on the fringe and the aftermath of what they did in Season 2 (instead of creating something else) was an excellent way to go (A, Season 1 was A++)</li>
<li><a href="https://www.netflix.com/title/80236318">Outer Banks</a> (Netflix) – What starts out to be a teen drama turns out to be an adventure show more akin to Indiana Jones than Gossip Girl. It took a while to get there but when it turns, it was worth it (A-)</li>
<li><a href="https://www.cbc.ca/schittscreek/m_site/">Schitts Creek</a> (Netflix, well now) – techncially we haven't finished this yet but we will – and will probably watch it all again. Our favorite comedy since The Office. It deserved all it's rewards. And if you love the show like me, <a href="https://davidrose.style/">then you need this site.</a> (A+)</li>
</ul>
Webfaction to Netlify2020-12-11T00:00:00-06:002020-12-11T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2020-12-11:/webfaction-to-netlify.html<p>It was funny – <a href="https://mike.hostetlerhome.com/2020-the-year-of-taking-notes.html">the day after I finally put up a blog post</a> I got an email from Webfaction that my account was closed. That was funny. I mean I <a href="https://www.webfaction.com/faq/#updates-timelines-and-faqs-about-the-future-of-webfaction">knew they were migrating sites</a> and I had a couple of old Django playgrounds on there, plus my person blog …</p><p>It was funny – <a href="https://mike.hostetlerhome.com/2020-the-year-of-taking-notes.html">the day after I finally put up a blog post</a> I got an email from Webfaction that my account was closed. That was funny. I mean I <a href="https://www.webfaction.com/faq/#updates-timelines-and-faqs-about-the-future-of-webfaction">knew they were migrating sites</a> and I had a couple of old Django playgrounds on there, plus my person blog generated from <a href="https://blog.getpelican.com/">Pelican.</a> I got the emails over the past couple of months that my Django sites (and their pgsql db's) weren't migrating and I was fine with that – they were ideas that didn't go anywhere. But I was surprised that my account was closed. I check my blog – nope, down. It seems that they didn't move anything of mine. I then said some non-professional phrases, and continued back to my day job, thinking of a plan of action in the back of my mind.</p>
<p>Important to note that I hadn't lost any of my content – my files were still there, I just needed another place to put them. I played around with <a href="https://www.netlify.com/">Netlify</a> once, just to see what all the fuss was about and I did like it. I figured I could move my content over there pretty quickly. I was already using <a href="https://gitlab.com/">GitLab</a> to store it (and my personal projects) so I figured it wouldn't be too hard to just move it over. I started working on it when I had some free time and went down quite a rabbit hole.</p>
<p>I didn't like having to move the DNS over to Netlify's control, but I understand what they are doing and Netlify controlling the DNS makes this possible, so that wasn't too bad. I made a <code>requirements.txt</code> of my simple Pelican area (under a <code>venv</code> ) and that was good to go. I checked that into my private gitlab repo, which I had already setup Netlify to monitor and it saw it and built it. Well, not really. It failed miserably. This was where things started to get even further off the rails.</p>
<p>First off, Netlify's default Python is 2.x. Yes, still Python 2, even though <a href="https://www.python.org/doc/sunset-python-2/">it's been sunsetted for almost a year now.</a> They do have Python 3 – to use it you need a file called <code>runtime.txt</code> with simple <code>3.7</code> (or whatever version of Python 3 you need). Note – not <code>python3.7</code>, just the version number.</p>
<p>So once I got that going, I saw that the deployment was successful! I went to the URL… and it was blank. I looked at the Netlify log and I had a bunch of Emacs errors. You see, previous setup was to write my content in Emacs with <a href="https://orgmode.org/">OrgMode</a>. I used a Pelican plugin called <a href="https://github.com/getpelican/pelican-plugins/tree/master/org_reader">org-reader</a> to convert the files to HTML on deployment. Locally, I just used a <a href="http://www.fabfile.org/">Fabric task</a> to generate the static files and sftp them to Webfaction. I did everything locally, and just copied the HTML to Webfaction. Well now I'm relying on Netlify to do the build and copying. What was weird is that Pelican wasn't existing with an error when Emacs bombed out on each org file.</p>
<p>I was able to determine that Netlify was using Emacs 25 and I was on 27.1 locally. That is kinda old but there was no way to change what Netlify had – I wasn't allowed to run <code>apt install</code> there (permission denied). After beating my head against the wall a bit, I decided to look for another Pelican plugin. What I found was <a href="https://github.com/jo-tham/org_pandoc_reader">org-pandoc-reader</a>, which really could work well. It obviously uses <a href="https://pandoc.org/index.html">Pandoc</a>, which I have used before and it works really well. I first used the plugin locally to make sure it could handle my existing org files and it did with no problem. So, just assuming that Pandoc was there in Netlify, I committed and pushed. And in a few seconds all my content was there. A good side effect is the Pandoc renderer is faster. I think it takes multiple org files in on one command and my Emacs also loaded my full initialization when running <code>org-reader</code> (which I could have fixed.. but still wouldn't have worked on Netlify). Locally this made rendering the pages when testing a lot faster.</p>
<p>Take-aways:</p>
<ol>
<li>While it was painful my host went away and closed my account, I still had my content in pure text. So I could put it anyway… there are more places I can put it besides Netlify. If this didn't' work I could have made another choice, like GH Pages, AWS S3, etc.</li>
<li>Netlify is pretty open about what they provide… <a href="https://github.com/netlify/build-image/blob/xenial/Dockerfile">You can even see the Dockerfile</a> that they use to build and deploy content on. This was invaluable to me</li>
<li>Not mentioned above, but I found it handy to put the build commands in a script (which I wittily called <code>netlify</code>) and put my Pelican build command there. This allowed me to easily add other commands to it (like <code>emacs --version</code>) to help troubleshoot what was going on.</li>
</ol>
2020 -- The Year of Taking Notes2020-12-09T00:00:00-06:002020-12-09T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2020-12-09:/2020-the-year-of-taking-notes.html<p>Hey it's December and it's my second blog of 2020. Almost a year since my last update. Let's not talk about the strange year of 2020… sometimes I do an unintentional Big Thing(tm) for me, learning-wise or tech-wise of the year. A few weeks ago I figured out what …</p><p>Hey it's December and it's my second blog of 2020. Almost a year since my last update. Let's not talk about the strange year of 2020… sometimes I do an unintentional Big Thing(tm) for me, learning-wise or tech-wise of the year. A few weeks ago I figured out what 2020's was and why not share it now?</p>
<p>I've never been really good at taking notes before. Not really sure why. Some of it was stemmed from "Sure you can write it down but you will never find it when you need it" and some other was "You fight the tools to do it well."</p>
<p>There is a concept called <a href="https://writingcooperative.com/zettelkasten-how-one-german-scholar-was-so-freakishly-productive-997e4e0ca125">Zettelkasten</a> that is becoming very popular. I suggest you read that article <a href="https://www.lesswrong.com/posts/NfdHG6oHBJ8Qxc26s/the-zettelkasten-method-1">or this one</a> to get an idea. You can google the Zettelkasten name yourself and see what is out there, what tools are our there. If you want a good book to convince you more and more details see <a href="https://www.amazon.com/dp/B06WVYW33Y?ref_=k4w_ss_details_rh"><em>How to Take Smart Notes</em> by Sönke Ahrens</a> . I'm not going to get in the nitty-gritty details of how to do it (because I'm not sure I'm doing it well) but simply a note should have three things outside of it's content:</p>
<ul>
<li>tags</li>
<li>links to other notes</li>
<li>A title to find</li>
</ul>
<p>It took me a little bit to find my own system to make it work for me. I declared bankruptcy on my Emacs config and started using <a href="https://github.com/hlissner/doom-emacs">Doom Emacs</a>. Doom make it easy to install <a href="https://github.com/org-roam/org-roam">Org-Roam</a>, which is a re-build of the Zettelkasten system <a href="https://roamresearch.com/">Roam</a> built on top of the ever-powerful <a href="https://orgmode.org/">OrgMode</a>. I use <a href="https://jblevins.org/projects/deft/">Deft</a> to quickly lookup notes.</p>
<p>This is all fine and good on my Mac but I'm not always on my Mac. What if I find something I want to remember while reading on my Android phone or iPad? this is Trickier. If it's just an article I want to read (again) later, I add it to my Todoist. If it's something I want to remember… well sometimes I still add it to Todoist with a comment and add it to my Org-Roam later. On my iPad I've started using (and paid for) <a href="https://bear.app/">Bear</a> to write notes into. I think (usually) copy the notes out of Bear and into an Org-Roam note later. Bear is really a joy to write with – it gets out of my way, let's you (or makes you) do Markdown, and generally does the right thing.</p>
<p>This is all about implementation and workflow, which I will admit isn't great and is evolving. But the idea of Zettelkasten is great for me and while the literature talks about it for writing, it's really useful for all knowledge workers. If I figure something out in the application that I'm writing, I make a Org-Roam note about it. Or something I want to try, I make a note (and generally a Todoist item to revisit it eventually). And if I run into something, I looked my notes before Googling around about it. And hey sometimes I write a note about "Look how cool X is!" and then later I figure out it isn't go cool, so I make another note how I fixed it and make sure that links to the original and then edit the original to say "hey use this instead".</p>
<p>Basically, little by little, I'm making my one Wikipedia, but better because it has my own thoughts and opinions in it. I'm not terribly picky about what I put in – technical, other soft-skills reading, etc. As Ahrens said in his book:</p>
<blockquote>
<p>Working with it [Zettlekarsten] is less about retrieving specific notes and more about being pointed to relevant facts and generating insight by letting ideas mingle. Its usability grows with its size, not just linearly but exponentially. When we turn to the slip-box, its inner connectedness will not just provide us with isolated facts, but with lines of developed thoughts. Moreover, because of its inner complexity, a search thought the slip-box will confront us with related notes we did not look for. This is a very significant difference that becomes more and more relevant over time. The more content it contains, the more connections it can provide, and the easier it becomes to add new entries in a smart way and receive useful suggestions.”</p>
</blockquote>
<p>So really, the bigger the better. Personally I looked up five different notes together to write this article.</p>
<p>The thought came to me the other day how different I have become to notes when I was working on a church Bible Study, Book in hand, iPad on my lap. The iPad is in split-screen with Bear on one side and the Bible passage on the other, ready to take notes. The Mike from last year would have squeezed his answers into the fields but now he wants to keep them later.</p>
My Uses This2020-01-02T00:00:00-06:002020-01-02T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2020-01-02:/my-uses-this.html<p>This year I've discovered the blog <a href="https://usesthis.com/">Uses This</a> and I'm fascinated by it. Since I will never be on there, I decided to roll my own. As I started thinking about it, I realized that <a href="https://mike.hostetlerhome.com/2019-08-new-tools-improved-workflow.html">I kinda have something like it</a>, at least describing my current development environment so maybe …</p><p>This year I've discovered the blog <a href="https://usesthis.com/">Uses This</a> and I'm fascinated by it. Since I will never be on there, I decided to roll my own. As I started thinking about it, I realized that <a href="https://mike.hostetlerhome.com/2019-08-new-tools-improved-workflow.html">I kinda have something like it</a>, at least describing my current development environment so maybe I will just allude to that when I get there.</p>
<p>The hope is that maybe others will post the same type of thing in their blog. I just find it interesting. Maybe I'm just weird.</p>
<h3 id="who-are-you-and-what-do-you-do">Who are you, and what do you do?</h3>
<p>I'm Mike Hostetler and I'm a Principal Consultant at <a href="https://objectpartners.com/">Object Partners</a>, which is probably the best place to work for my current station in life. Historically I've been doing Java development but now I'm living in the world of AWS, Python, and NodeJS (if I have to). Since Python is my favorite programming language, I'm ok with that change.</p>
<h3 id="what-hardware-do-you-use">What hardware do you use?</h3>
<p>My employer issued me a MacBook Pro. I like the CPU and memory but ignore the Touchbar and dislike the keyboard. A lot. While working, I usually have it closed and hooked up to a monitor.</p>
<p>Through work, I won a pair of <a href="https://www.amazon.com/Sony-WH1000XM3-Headphones-WH-1000XM3-Refurbished/dp/B07HJ87WJD/ref=sr_1_3?crid=IWHS9Q9GFVJG&keywords=sony+mdx1000&qid=1577833542&s=musical-instruments&sprefix=Sony+mdx1%252Cmi%252C200&sr=8-3">Sony WH1000M3 headphones.</a> It's both Bluetooth and noise-canceling. I would have never bought them for myself but I really love them. I use them for calls as well as having them on for deep-work. Before I used a $30 pair of MPOW headphones – still decent sound, longer range, but not good for calls. Not noise-canceling but it filters out a lot.</p>
<p>At home, I use a Das Keyboard, which I have a love/hate relationship. I love the feel of it, and the keys, and it's sturdy. But sometimes I accidental press a key a little bit and the keyboard sees that as a press. But I haven't found a keyboard I like better. I also have a cheap Bluetooth keyboard from Anker that I port around that works surprisingly well. I had a co-worker suggest a Magic Trackpad 2 and I like it more than I thought I would.</p>
<p>Personally I tend to not upgrade my tech very often. I have a Samsung Galaxy S8 phone and a Samsung Galaxy Tab S2 tablet. I use the phone for …, well, communicating, and use the tablet for games, reading and research. I read a lot of novels have really like my <a href="https://us.kobobooks.com/products/kobo-aura">Kobo Aura</a>. Why a Kobo instead of a Kindle? Better integration with my local library and I like the epub format more than Kindle.</p>
<h3 id="and-what-software">And what software?</h3>
<p>If you know me very well or frequent this blog, I'm a big fan of Emacs. I won't belabor this point because <a href="https://mike.hostetlerhome.com/2018-08-20-year-emacs.html">I've already stated my opinion</a>. I would say <a href="https://irreal.org/blog/?p=8557">there is no such thing as an "Emacs tourist."</a></p>
<p>So besides that – what other software do I use? For browsing I moved back to Firefox and don't regret it. It was the announcement of the <a href="https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/">Multi-Account Container</a> add-on that sent me there and I don't regret it . I now use it on my tablet and my phone with syncing, etc. I have things locked down tight with uBlock Origin and Privacy Badger so sometimes a site I need doesn't work quite right, and I have to use Chrome. But most of my browsing is done in Firefox and I like it.</p>
<p>For my todo-list, I'm currently using <a href="https://todoist.com/">Todoist</a>, which I've come to really depend on. The Premium version is worth every penny. My favorite Todoist feature is email forwarding – I can forward an email from my (or any) inbox and it will immediately appear in the Todoist app, with my email as an attachment. I've found this really handy for movie tickets, store coupons, etc. There are a lot of integrations with Todoist and <a href="https://todoist.com/premium">plenty of other features.</a> If you want to <a href="https://todoist.com/r/mike_hostetler_dxwejj">if you want to try Todoist Premium, click this referral link</a>. I don't think you will regret it.</p>
<p>Other software: <a href="https://keybase.io/">Keybase for my private git repos</a>, <a href="https://keepassxc.org/">KeePassXC to manage my passwords</a>, <a href="https://swinsian.com/">Swinsian for my music collection</a>, <a href="https://www.inoreader.com/">Inoreader for blogs</a>, <a href="https://tryshift.com/">Shift for all the GMail accounts I have to manage</a>, and <a href="https://www.pcloud.com/">pCloud to keep my important files in.</a></p>
<h3 id="what-would-be-your-dream-setup">What would be your dream setup?</h3>
<p>I sometimes think that I would be just as happy or happier with a stronger laptop with Linux on it instead of a MacBook Pro. None of my software I used for development needs MacOS and most of the other software (pCloud, Todoist, etc) work fine on Linux or have good alternatives. And yeah it would have to be a laptop because I really like the portability.</p>
New Tools for an Improved Workflow2019-08-20T00:00:00-05:002019-08-20T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2019-08-20:/new-tools-for-an-improved-workflow.html<p><a href="https://www.birkey.co/2019-08-04-why-emacs.html">Kasim Tuman</a> recently wrote that Emacs is like a workbench. It evolves as you get better with your work – or changes as your works changes. I think that is a great metaphor of not just Emacs, but software development tools in general. So this post is about my evolving workbench …</p><p><a href="https://www.birkey.co/2019-08-04-why-emacs.html">Kasim Tuman</a> recently wrote that Emacs is like a workbench. It evolves as you get better with your work – or changes as your works changes. I think that is a great metaphor of not just Emacs, but software development tools in general. So this post is about my evolving workbench. My workflow has changed a lot in the last few months to a year because of different tools I discovered and have put into practice. This came as I switched from Java to Python as my primary language. Some of these changes are Emacs-related and some are not. Yet everything kinda coalesces together into one harmonious system and suddenly things become a lot easier.</p>
<p>As I said above, I've been using Python almost exclusively in the past year. I haven't fired up Intellij in months and, frankly, I haven't missed it. Yes a full IDE would give me things like refactoring support but in Emacs I can open up many files and look (and switch to them) with ease – something that Intellij never did for me. It's effort in the JetBrain's world – in Emacs, I do it with muscle memory and routinely am looking at 4 files at once. One time a co-worker was working with me on something and I quickly deleted some files with <a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html">Dired</a> and he stopped talking. I asked him if I messed something up and he said, "No I just saw you manipulate files while inside Emacs and I'm still recovering from that."</p>
<p>Anyway my independence from Intellij has freed me up to explore other tools to help me with my software development work and I like what I have built up.</p>
<h1 id="docker">Docker</h1>
<p>Just as a development tool, things get a lot easier with Docker. Setup a <code>docker-compose.yml</code> file for a database and another other extra services for my projects and suddenly I have a solid local development environment where I don't have to sweat if it will work on a server. You can setup multiple services in one Docker file (I had PostgreSQL and RabbitMQ in one file, for example). It's really as easy as a google search for "docker <service you want>", click one of the first links, and put their snippet into a <code>docker-compose.yml</code> file, and then run <code>docker-compose up -d</code>.</p>
<h1 id="tmux">tmux</h1>
<p>Tmux has been in a my tool bench for a long time, but I have started using it with a renewed fervor. Mostly because I have 2-3 projects (if not more) going on at once. It's hard switching CLI's back to that and having a config for it. <span class="spurious-link" target="*direnv"><em>direnv</em></span> helps a lot, but doesn't give everything. I found <a href="https://github.com/tmux-plugins/tmux-resurrect">tmux-ressurect</a>, which saves the state of my Tmux prompts. So now when I need to switch a project, I just go to my Tmux-powered prompt and switch. Forced to reboot? I just start Tmux and run my tmux-ressurect command (<code>Ctrl-\ Ctrl-r</code>) and I have everything back from before the reboot.</p>
<p>I will say that I've been using the zsh less and less lately, mostly because <span class="spurious-link" target="*Projectile"><em>Projectile</em></span> has been taking most of my shell usage away from me. I have been using <a href="https://www.gnu.org/software/emacs/manual/html_mono/eshell.html">eshell</a> a lot lately and that is good enough for simple things. The Emacs terminals like <code>ansi-term</code> just fail on REPLs, etc. I played a bit with the <a href="https://github.com/akermu/emacs-libvterm">vterm module</a> and it shows promise but has a ways to go for my usual workflow. I like that tmux is always there and switches contexts with few problems. It's hard giving up years and years of aliases that you are used to. <a href="https://squarepegsys.github.io/literate-dotfiles/tmux-config.html">See my tmux config to see how I set things up.</a></p>
<h1 id="direnv">direnv</h1>
<p>If Emacs is my IDE, then direnv runs my config file that the IDE reads. So as the <code>.idea</code> folder is for Intellij IDEA, so is my <code>.envrc</code> for my Emacs/shell setup.</p>
<p>I use direnv for project-specific environment variables (like <code>AWS_PROFILE</code> and even custom <code>PATH</code>). But you can do more than that: I talked about this <a href="https://objectpartners.com/2019/06/18/managing-python-environments-with-direnv/">on my employers blog</a> but I use it to manage my Python environments as well. It took me a bit to find it, but <a href="https://github.com/wbolster/emacs-direnv">emacs-direnv</a> makes Emacs read it and follow it. Then Emacs knows all about which Python environment I'm using. That makes a lot of things easier. All I have to do is open the project in Emacs and <strong>poof</strong> it's pointing at the proper Python environment. My only real complaint about direnv is that it doesn't have a parent structure – that I can't declare environment variables on the top level (like AWS account info) and have that go into the direnv-enabled folders below. Recently I started doing <code>source /path/to/some/common/file</code> and that works – you need to use the fully-qualified name to make sure it works. Not quite as nice as just using a parent folder, but it works really well.</p>
<h1 id="emacs-stuff">Emacs Stuff</h1>
<p>Yes, Emacs needs it's own list of things. This part of my workbench is always evolving but I got into a group of tools that have been fairly consistent lately. <a href="https://squarepegsys.github.io/literate-dotfiles/shortcuts-el.html">You can see my Emacs shortcuts here</a>, which give you an idea of what kinds of things that I use.</p>
<h2 id="projectile">Projectile</h2>
<p>I've had Projectile in my Emacs config for a long file, but haven't used it until the last eight months of so. It has now become the general way I interface with files and buffers in Emacs. Everything is a project (which is easy – it just has to have a <code>.git</code> folder in it). Then I can find files in the project, switch buffers in the project, search files in the project, and compile (or run) the project from any buffer opened in the project. This integrates with ease with <span class="spurious-link" target="*direnv"><em>direnv</em></span> and <span class="spurious-link" target="*Helm"><em>Helm</em></span>. So, I can find a file in the project via Helm and the search project results buffer is also in Helm.</p>
<p>Let's also not forget that Projectile comes bundled with <a href="https://github.com/bbatsov/prelude">Prelude</a>, which is a really nice little Emacs starter. My favorite part is that you can put your own Emacs configs under <code>~/.emacs.d/personal.d</code> where you put your own configs… not having my mess with the main Prelude/Projectile part is nice.</p>
<h2 id="helm">Helm</h2>
<p>My newest Emacs addition and, honestly, I'm not sure how I got by without it. I tried to use it before but I didn't get the hang of it. As I mentioned above, Projectile can use it and that got me going with it again. Now I flip through buffers and filenames with ease. <strong>So</strong> easy to switch to another file. And the interfacing it with <code>M-x</code> to find functions is great I find useful functions I didn't know existed – like <code>pytest-one</code> and <code>pytest-all</code>, which now I use all the time.</p>
<h2 id="magit">Magit</h2>
<p>When I first started using Magit, I found it confusing and didn't know what the hype was about. I stuck with it, and figured out how it was structured and the way that it wanted me to work. I found that it's way of dealing with git was smarter than my way. It has now became my preferred way to deal with Git – not just committing, pushing and fetching, but also looking at logs and branching and everything else. I never would have believed I would have given up the command line with git, but yet I have.</p>
<h1 id="closing">Closing</h1>
<p>I'm enjoying this freedom from in my current set of tools. I find it much quicker to get a lot of things done, switch projects, etc. Some of these things have been kind of "set it and forget it", which is nice until you need to setup it again.</p>
<p>A big question – how will this work when I go back to Java development? Not real sure that this setup is good for 100% Java… but I could see myself using both this sort of setup with Intellij… use the strength of both. Of course, maybe I will find a different list of things to be using a different list of tools from this list by then.</p>
Literate Dotfiles2019-08-05T00:00:00-05:002019-08-05T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2019-08-05:/literate-dotfiles.html<p>For several months, I've been converting a few of my dotfiles into OrgMode files and using <a href="https://orgmode.org/manual/tangle.html">tangling</a> to generate the config file and the same file generates HTML documentation. The point was to always publish them – and I finally have. <a href="https://squarepegsys.github.io/literate-dotfiles/">See the HTML version</a> or <a href="https://github.com/squarepegsys/literate-dotfiles">the github project</a>. Note that …</p><p>For several months, I've been converting a few of my dotfiles into OrgMode files and using <a href="https://orgmode.org/manual/tangle.html">tangling</a> to generate the config file and the same file generates HTML documentation. The point was to always publish them – and I finally have. <a href="https://squarepegsys.github.io/literate-dotfiles/">See the HTML version</a> or <a href="https://github.com/squarepegsys/literate-dotfiles">the github project</a>. Note that the Org files are rendered in Github because Github is smart like that – it treats them the same way that it does with Markdown.</p>
<p>I stole, er, borrowed the system from <a href="https://writepermission.com/introducing-literate-dotfiles.html">Toon Claes</a>. And, yes, I have had to edit a <code>Makefile</code> to do this.</p>
<p>I found this documentation on my files to be more useful than I thought. Besides just the documentation of "why is this here" but it also helps in "why am I adding this?". Because the ultimate source is an Org file, I can do a better job documenting why I did something in the file then in the comments of the file. I can (and really should) link my config file to my OrgMode-powered knowledge base about what each thing does. That doesn't give the Internet reader much help, though. But is this documentation more for me for them? That I'm uncertain about.</p>
<p>So why call this "literate"? It's not my word – it's <a href="https://en.wikipedia.org/wiki/Donald_Knuth">Donald Knuth's</a>. Basically it's keeping the documentation and the code together. <a href="https://en.wikipedia.org/wiki/Literate_programming">Wikipedia has a good overview on it.</a></p>
<p>I already repeated a lot of links from the Readme of this project. Hopefully these files are helpful to someone.</p>
On Music2019-06-28T00:00:00-05:002019-06-28T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2019-06-28:/on-music.html<p>It's funny as I have hit solidly middle age, when you figure things about yourself that have always been there – but you have just noted it. I can list quite a few things – both positive and negative. But what the one I have just simply noticed is music.</p>
<p>This should …</p><p>It's funny as I have hit solidly middle age, when you figure things about yourself that have always been there – but you have just noted it. I can list quite a few things – both positive and negative. But what the one I have just simply noticed is music.</p>
<p>This should be a surprise when I talk about <a href="https://mike.hostetlerhome.com/managing_music.html">managing a mount of music</a> but cognitively it didn't hit then. It started when I told people about it and said "I imported in about 5k MP3's with it" and their eyes get wide. I guess people delete MP3's? is that a thing? Well it's not for me.</p>
<p>I think music has always been there. I mean, old hymns in church bring back a lot of nostalgia for me. And my kids are constantly amazed how I can sing along songs on the radio. Or on my 5K collection that I put in the car (which of the big triumphs of my nerd career). I generally can pick out a song I know within the first few seconds of it starting. I have less success with some songs but most of the time I can pick out at least the artist. I don't need music on all the time (though I do prefer working some playing on my headphones).</p>
<p>I'm not sure why I'm wired this way. I didn't come from a musical family. I can't sing very well (doesn't stop me from singing along) and I played instruments in grade and high school but haven't kept it up. But there is something about music playing that soothes me.</p>
<p>And some random notes about this subject:</p>
<ul>
<li>I don't have a favorite song, or a favorite genre. I like about everything – jazz, country, heavy metal, pop….</li>
<li>That said, I think Stevie Wonder's <em>Songs in the Life</em> is probably one of the greatest albums ever recorded.</li>
<li>In my post I linked to above, I said I use <a href="https://getnightingale.com/">Nightingale</a> to play music. Well, Nightingale hasn't been updated in a long while and Mojave said it may not work in new versions of MacOS. So I moved to (and purchased) <a href="https://swinsian.com/">Swinsian</a> and haven't regretted it. I don't use most of it's power but, at it's core, it's like iTunes before iTunes sucked.</li>
<li><a href="https://lifehacker.com/the-best-smart-playlists-for-automatically-organizing-y-476510080">This old Lifehacker article</a> was my guide for putting together Smart Playlists to keep things fresh and manageable. They do it with iTunes but the same functionality exists in Swinsian</li>
</ul>
Review "Relay"2019-03-04T00:00:00-06:002019-03-04T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2019-03-04:/review-relay.html<p>I'm not sure how many other people remember Nextel but I do, maybe because my first job out of college used them a lot. They had one really cool feature on their phones – a walkit-talkie like functionality. You could hold a button and talk, and people on your list of …</p><p>I'm not sure how many other people remember Nextel but I do, maybe because my first job out of college used them a lot. They had one really cool feature on their phones – a walkit-talkie like functionality. You could hold a button and talk, and people on your list of numbers would get it. You could have a conversation or call for help. It worked pretty slick. Sprint bought, or merged, with Nextel and this functionality faded into history.</p>
<p>I was reminded of this great idea when my first told me about <a href="https://relaygo.com/">Relay</a>, which is a little square device that lets you do something similar. Its designed for kids and it's literally a button with a speaker – you push it and talk into it. People on your same plan with a Relay, and with the Relay app on their phone, can hear what you say and you can talk back and forth. It also has GPS so you know where your child currently is. The Relay is created by Republic Wireless, and you have to use their network, which is one of the bad things, IMHO. At least for us, not all the networks that RW used (TMobile and Sprint) aren't always great where I live. But I have found Relay support is good – for example, they sent me a replacement SIM card when I was, er, mu cking around with ours. The support person noted that Sprint would be better for us than the TMobile card that they originally sent us, so they sent us a Spring SIM instead. And, yeah, it does work.</p>
<p>Now I can run errands while my son is home during the day and I can message him where I am, and when I'll be home. Or he can be at a friend's house and I can make sure that he is there. We love it and it has made our lives a lot easier. If you are interested, <a href="https://relaygo.com/?coupon=ALOIHCHK">here is an affiliate link for a free month</a> of Relay. I think it's very worth it.</p>
RSS Reader2018-10-25T00:00:00-05:002018-10-25T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2018-10-25:/rss-reader.html<p>I've gotten back to blogs again. And that meant I needed an RSS Reader. The qualifications:</p>
<ul>
<li>web-based but have an Android app</li>
<li>interface gets out of my way to read an article</li>
<li>favorite support</li>
<li>syncs often</li>
<li>still under active development</li>
<li>ability to pay a reasonable price for the service (because …</li></ul><p>I've gotten back to blogs again. And that meant I needed an RSS Reader. The qualifications:</p>
<ul>
<li>web-based but have an Android app</li>
<li>interface gets out of my way to read an article</li>
<li>favorite support</li>
<li>syncs often</li>
<li>still under active development</li>
<li>ability to pay a reasonable price for the service (because it's useful for me)</li>
</ul>
<p>In the past, I've installed readers myself and had it fetch updates, but I don't have the time to really monitor a server anymore. I once used <a href="https://feedly.com/i/welcome">Feedly</a> so I loaded that back up. I paired down the feeds to blogs I was more likely to read and ones that were still updated. And went from there.</p>
<p>Here was what drove me crazy about Feedly:</p>
<ul>
<li>Feeds weren't refreshed very often. Faster updates were a feature of a paid account. I can see that (but didn't like it)</li>
<li>Searching for stories/feeds was limited if you didn't pay. That never sat well with me.</li>
<li>The Android app didn't sync very well. So an article I read an hour ago on the web would be unread on Android. <a href="https://feedly.uservoice.com/forums/192636-suggestions/suggestions/4095536-keep-read-articles-in-sync-on-all-devices">Apparently this has gone on awhile</a> and it's not solved by paying money.</li>
<li>The paid price was too high for me. I'd like something in the middle with fewer features. But it was all or nothing.</li>
</ul>
<p>I started looking for an alternative this spring. I thought seriously about <a href="https://theoldreader.com/">The Old Reader</a> but the lack of an official native app stopped me. Somehow I stumbled onto <a href="https://www.inoreader.com/">Inoreader</a> – not sure how. I had never heard of it before and did some digging and it's ran by <a href="https://innologica.com/">a Bulgarian company</a>. No matter – it got good reviews and from what I read it's "for power users". And that's kind me. And it's what I stayed with.</p>
<p>It's interface is seemingly like Google Reader or, er, The Old Reader. Starting was easy – I exported my OPML from Feedly and imported it in. My categories and everything were moved over as well as starred items (i.e. favorites) where there. I've been using it for a few months and finally paid for the lowest plan and may upgrade a tier.</p>
<p>What do I like:</p>
<ul>
<li>It's fast.</li>
<li>The Android app syncs my feeds!</li>
<li>They have a tiered pay structure so I don't have to pay a high price for features I won't use.</li>
<li>Rules is a paid feature. The lowest paid tier that I have only allows for one. I used it to mark certain stories as Read (because I'm not interested in them and they flood my feed). I may need more now that I have it working…</li>
<li>Integrations are free! So I can send stories to <a href="https://getpocket.com/">Pocket</a> without having to login to Pocket on my work computer.</li>
<li><a href="https://blog.inoreader.com/2015/02/inoreader-how-to-customizing-dashboards.html">A customizable dashboard</a> that I find pretty useful</li>
</ul>
<p>But there are a few annoyances:</p>
<ul>
<li>There are ads. And no I can't blame them for that.</li>
<li>You can add the same feed to multiple folders. This is obviously a feature but when I did it on accident, I found it annoying. YMMV</li>
<li>The Starred items are hidden away in a folder that I tend to overlook</li>
</ul>
<p>Overall I'm pretty happy with it.</p>
A Wii Bit of History2018-09-12T00:00:00-05:002018-09-12T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2018-09-12:/a-wii-bit-of-history.html<p>In an odd series of events, we played our Wii again for the first time in years. We had a lot of fun bowling and my son discovered how hard Wii golf can really be, but then he cleaned us up on the tennis court. He was a baby in …</p><p>In an odd series of events, we played our Wii again for the first time in years. We had a lot of fun bowling and my son discovered how hard Wii golf can really be, but then he cleaned us up on the tennis court. He was a baby in the heyday of our Wii so he doesn't remember much. And let's not talk about Just Dance Kids.</p>
<p>The Wii was clever in it's design and controls. But this post isn't to wax poetically about this game console. Instead, it's an artifact of our family history.</p>
<p>While my son was young in our Wii-hey-day, my now-teenaged daughter was in the thick of it. Opening up and looking at the Mii's we got to see all the avatars she made over the years. Most of them were blonde girls name "Lily" but there were other names too. There were Harry Potter characters. There were also Miis named after foster kids we hand in our home… and Miis made by uncles who visited as well as by myself. My Daddy Duff Mii is still one of my favorites.</p>
<p>It was a weird bit of nostalgia to see all those old Miis running around. And then go bowling with them.</p>
The Year of Emacs2018-08-20T00:00:00-05:002018-08-20T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2018-08-20:/the-year-of-emacs.html<p>Somehow, by accident, 2018 has become the year of Emacs. I did write about <a href="file:///2018_04_master_emacs.html">some Emacs improvements</a> I was doing, but it seems to be something I have come back to time after time. My latest work project is a large, mostly-standard Java app with some Spring sprinkled in here …</p><p>Somehow, by accident, 2018 has become the year of Emacs. I did write about <a href="file:///2018_04_master_emacs.html">some Emacs improvements</a> I was doing, but it seems to be something I have come back to time after time. My latest work project is a large, mostly-standard Java app with some Spring sprinkled in here and there. I'm using <a href="https://magit.vc">Magit</a> for using all my Git interfacing, which I never thought would happen – I always did the heavy work on the command-line but find Magit much more friendly now. For coding, I'm moving back and forth between Emacs and Intellij. Intellij still does a lot of nice things (like auto-import, syntax checking, etc) but I can type faster in Emacs. And, since this codebase is large and, er, not necessarily well arranged, Intellij can be slow with it. But Emacs with <code>gradle-mode</code> let's me do the TDD things much faster.</p>
<p>All this to say – last week I ascended onto even a higher level of Emacs karma.</p>
<p>Our dev team is transitioning between from Windows to Mac and some are still pedaling away on their Windows machines. This causes our commit-hook to put our ticket name (which comes from the branch name) to go from working to non-working on the Mac, because of permission issue. If I fix it, the next pull may break it. So I'm having to remember to put it in, which, so you know, just isn't going to happen. On a check-in last week, I noticed that Magit has the branch name in the comments when making a commit message. I thought "I could make a <a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macros.html">keyboard macro</a> that uses the branch name to put in the ticket name." So I quickly created it and tested it out – it worked fine. I didn't know how, but knew I could save it for later. Sure enough I could but first I had to name it – so that was a quick <code>C-x C-k n</code> . I had already setup <a href="https://github.com/justbur/emacs-bind-map">emacs-bind-map</a> to make my own prefix to put come shortcuts. Of course, I had to run <code>insert-kbd-macro</code> to put in the Elisp code and the named function (the code looks like gibberish… mostly numbers) and then assigned it in my <code>bind-map</code> command.</p>
<p>This is not rocket science, especially for Emacs but my shift in thinking of simply thinking "I know I can do this… let's figure it out" as opposed to "I wish I could…" or simply googling for someone's blog post.</p>
Misc Bits and Bobs2018-05-16T00:00:00-05:002018-05-16T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2018-05-16:/misc-bits-and-bobs.html<p>Lots of little ideas in my head that don't seem to make up a good post for each one, so I'm putting them into on. Be prepared for <a href="https://www.youtube.com/watch?v=bA8n_5v9iPE">utter chaos</a>.</p>
<ul>
<li>I read about a compact microtool <a href="http://kk.org/cooltools/gerber-dime-micro-tool/">on the Cool Tools blog</a> and I had misplaced my (larger) Leatherman I carried …</li></ul><p>Lots of little ideas in my head that don't seem to make up a good post for each one, so I'm putting them into on. Be prepared for <a href="https://www.youtube.com/watch?v=bA8n_5v9iPE">utter chaos</a>.</p>
<ul>
<li>I read about a compact microtool <a href="http://kk.org/cooltools/gerber-dime-micro-tool/">on the Cool Tools blog</a> and I had misplaced my (larger) Leatherman I carried in my workbag, so when we did a large Amazon order, I threw that in it. I'm so glad I did – it fits very well in my pocket and have used it lot (including using the pliers to fix a broken zipper on my son's backpack while still at school). The size is small but it's really well built. I highly recommend it. <a href="https://www.amazon.com/exec/obidos/ASIN/B007BKL6G4/cooltools-20">Buy it with Cool Tool's Affiliate link</a>. It may never leave my pocket if I'm not on an airplane.</li>
<li>I found this <a href="https://www.youtube.com/watch?v=8A1Aj1_EF9Y">video about the history of orchestra hits</a> in music absolutely fascinating.</li>
<li>I noted that my <a href="https://www.unl.edu">alma mater</a> had a story <a href="https://www.thisamericanlife.org/645/my-effing-first-amendment">about them on This American Life</a>. I don't have any particular love or loyalty to that place but I am interested when it gets national attention outside of athletics. I went in expecting a story about how backward of a place Nebraska is (which the reporters did do, in a very snarky way) but I left with a concrete story on at what is wrong with political discourse in this country. Highly recommend listening, regardless of your political bent or your opinion of This American Life.</li>
<li>For reasons that I may share later, I setup <a href="https://www.archlinux.org">ArchLinux</a> on a Virtual Box machine to play around with. But I couldn't get the video working right – I couldn't get it to use "real" 3D animation but instead use software rendering, which made <a href="https://github.com/linuxmint/Cinnamon">Cinnamon desktop</a> a bit laggy. After much searching and gnashing of teeth I found <a href="https://superuser.com/questions/1177090/why-cant-x-find-my-vboxvideo-driver/1230834#1230834">this SuperUser answer</a> which basically says that Arch is using <strong>too new</strong> of a version of Xorg and Virtual Box has no video module for that version. That… .angers me. If this posts helps the Google Ranking of that explanation, then this is all worth it.</li>
<li>I think I need to watch this video a few more times to totally grok it but <a href="https://media.ccc.de/v/GLT18_-_321_-_en_-_g_ap147_004_-_201804281550_-_the_advantages_of_file_name_conventions_and_tagging_-_karl_voit#t=2732">watch Karl Voit's "The Advantages of File Name Conventions and Tagging"</a> to a new way to think about files. <a href="https://github.com/novoid/date2name">His <code>date2name</code> script</a> is now in my permanent install list.</li>
</ul>
Quick Editor Thoughts2018-05-07T00:00:00-05:002018-05-07T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2018-05-07:/quick-editor-thoughts.html<p>Some things on editing I found this weekend:</p>
<ul>
<li><p><strong><code>EDITOR</code> vs <code>VISUAL</code></strong> . I didn't know there was a difference between the environment variables <code>EDITOR</code> and <code>VISUAL</code> and I always set the former. <a href="https://unix.stackexchange.com/questions/4859/visual-vs-editor-whats-the-difference">But I was way wrong.</a> There seems little point in setting <code>EDITOR</code> unless you still work inside serial connections …</p></li></ul><p>Some things on editing I found this weekend:</p>
<ul>
<li><p><strong><code>EDITOR</code> vs <code>VISUAL</code></strong> . I didn't know there was a difference between the environment variables <code>EDITOR</code> and <code>VISUAL</code> and I always set the former. <a href="https://unix.stackexchange.com/questions/4859/visual-vs-editor-whats-the-difference">But I was way wrong.</a> There seems little point in setting <code>EDITOR</code> unless you still work inside serial connections but most of us don't.</p></li>
<li><p><strong>Autoinsert mode</strong>. I wanted to put in a few options by default when I created an OrgMode file and a few web searches later <a href="https://www.emacswiki.org/emacs/AutoInsertMode%5D%5BAutoInsertMode%5D%5D">I was reminded of AutoInsert mode.</a> I had this setup a while back, before I declared bankruptcy on my Emacs config and went to Projectile. Now it's back… at least for OrgMode</p></li>
<li><p><strong>Ivy, Counsel, and Swiper</strong>. I had used Helm <a href="https://mike.hostetlerhome.com/2018_04_master_emacs.html">since I read about it in <em>Mastering Emacs</em></a>. I think found <a href="https://writequit.org/denver-emacs/presentations/2017-04-11-ivy.html">this page/presentation</a> on Ivy and friends… and I switched. I'm glad I did. Ivy display things better but it will take me a bit to get<a href="https://writequit.org/denver-emacs/presentations/2017-04-11-ivy.html#org2a0607f">used to how Swiper displays</a> in <em>isearch</em> but I'll get used to it.</p></li>
</ul>
Adventures in Homebrewing2018-04-23T00:00:00-05:002018-04-23T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2018-04-23:/adventures-in-homebrewing.html<p><a href="https://i.imgur.com/Sh7r8I4.jpg">https://i.imgur.com/Sh7r8I4.jpg</a></p>
<p>I started brewing beer over a year ago and, for some reason, I haven't blogged about it. Which is funny, since <code>beer</code> and <code>homebrewing</code> have become popular keywords for my web searches over the past year. And, yes, that pic above is one of …</p><p><a href="https://i.imgur.com/Sh7r8I4.jpg">https://i.imgur.com/Sh7r8I4.jpg</a></p>
<p>I started brewing beer over a year ago and, for some reason, I haven't blogged about it. Which is funny, since <code>beer</code> and <code>homebrewing</code> have become popular keywords for my web searches over the past year. And, yes, that pic above is one of my home-made brews.</p>
<p>This started because I was an at an after-Christmas sale at my local hardware store, and oogled their 1 gal brew kits but decided that I didn't have the time nor the clearance from my wife to do it. When I got home, my wife presented me with a late Christmas present – a <a href="https://www.mrbeer.com/?msclkid=fd3a64b386d118b5463d3e52689ef72e">Mr Beer kit</a> with an American ale. I made it that night and honestly haven't looked back. Since then I bought 3 of the kits from the hardware store when they got on lower and lower clearance and that is what I generally brew from. They are only one gallon and Mr Beer is 2. One gallon is easy to make and cleanup after, though I still use my Mr Beer fermenter to help me with bottling (a "bottling bucket" in homebrew terms). Though I may make use the Mr Beer for 2 gallons of my Christmas beer this year.</p>
<p>Brewing your own beer is a funny thing… it's decidedly slow by our modern standards, but no technology can speed up the process. Certainly technology can (and does) make it easier for you, but fermentation is fermentation. It will take weeks, not hours, before you can taste the fruits (or hops or esters, what you will). The yeast does has the yeast does.</p>
<p>I've make quite a few beers in the last year or so. Most OK, one was outstanding (my Christmas beer) and one was so bad I just poured it out. I found out later it got infected by a foreign yeast and that made it taste horrible. Why? Because I didn't clean my siphon out when I was testing it. That brings up the most important thing about homebrewing – it's all a learning process.</p>
<p>You can learn a lot by reading and researching the forums but, ultimately, it comes down to your setup and equipment. I only do 1-2 gallon brews and I boil my wort on my kitchen stove. I have different problems and advantages that someone brewing 5 gallons (like they have to do it outside, they deal with more grain, but they make a lot more than 4-5 750ml bottles at a time). And my equipment and setup is different than another small-batch brewer, so any kind of idea they may have I have to think about how to add it to my arsenal. So there is a lot of trial and error involved, even if you think you have it all figured out.</p>
<p>I'd love to step you through how I brew my beer but I basically follow the excellent directions in <a href="https://www.beercraftr.com/learn-to-brew-beer/">BeerCraftr's How-To Guide</a> with a few changes. I found BeerCraftr to be a tremendous resource and I can't thank Joseph enough. My changes are:</p>
<ul>
<li><p><strong>The Mash</strong> After removing the bag of grains, I put them in colander in it's own separate clean pot, and take a few coffee cups of the wort and pour it over the bags a few times. This is called <em>sparging</em> or <em>lautering</em>. This may not seem like a big deal with my 1 gallon batches but since I've been doing it, the flavor of my beer has gotten better.</p></li>
<li><p><strong>Bottling</strong> Hours before bottling, I boil some water and put the amount of sugar I need in a coffee cup and pour the water in it with a spoon. Every once in a while, I give it a stir with the spoon. This is less trouble than measuring each tab of sugar for each bottle. How do it do this?</p></li>
<li><p><strong>Bottling</strong> After I have my fermenter ready, my bottles sanitized, and sugar dissolved, I pour the sugar water into my sanitized Mr Beer and then siphon the beer from the fermenter into the Mr Beer. I wait a minute or two for the sugar to spread out through the beer and then use the spigot to fill each bottle with beer. Easy-peasy.</p></li>
<li><p><strong>Bottle Conditioning</strong> I've found 4 weeks isn't enough time to leave it in bottle. I've found I don't get enough carbonation with it that long, or flavor. I have a Belgian Wit on Month 4 on the counter and it's just starting to be good. Maybe it's because of the temperature in my house, etc, but just doesn't work.</p></li>
</ul>
<p>Lastly – the best change I ever did in my homebrew experiments is to change my sanitizer to <a href="https://www.amazon.com/Star-San-B0064O7YFA-San-32/dp/B0064O7YFA">Star San</a>. My beer came out better, and it actually carbonated. It seems pricey but a little bit goes a long way. I make a gallon and keep it in a glass jar for a few months and just re-use it. Worth the effort and don't fear the foam! (because, yes, it does foam. a lot).</p>
Setting up an RetroPie2018-04-19T00:00:00-05:002018-04-19T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2018-04-19:/setting-up-an-retropie.html<p>I've failed to blog about one of my more geeky things I've done in the past year – setup a <a href="https://retropie.org.uk">RetroPie</a>. Note that it's not Retro/Pi/ because you can install it on more things than a RasberryPi… though that is exactly what I did.</p>
<p>For the 2016-17 school year, my …</p><p>I've failed to blog about one of my more geeky things I've done in the past year – setup a <a href="https://retropie.org.uk">RetroPie</a>. Note that it's not Retro/Pi/ because you can install it on more things than a RasberryPi… though that is exactly what I did.</p>
<p>For the 2016-17 school year, my daughter had a big science fair project, she wanted to do something with programming and her and I talked about different RaspberryPi projects. She picked one and did very well with it on the school and metro levels. All that is besides the point but the fact that we had a Raspberry Pi 3 laying around the house in the fall of 2017. It has a case, and HDMI I started looking at what I could do with it. After some research I figure out a RetroPie system would be a fun thing -for me- for my kids to have.</p>
<p>Setting it up honestly is pretty easy if you do the <a href="https://retropie.org.uk/download/">pre-made images.</a> I tried installing it over a pre-made Raspbian install but kept running out of room… which is important when you start putting ROMs on there. I got the image on an SD card and installation went pretty easy. I won't get into procuring your own ROMs… that exercise is up to the reader. Some of the emulators for the new systems do tax the Pi a bit, but things like Sega Genesis and NES are no problem. Even PS1 is fine, though I never have taken the time to figure out how to do multi-CD games with it.</p>
<p>I found it handy to have a wireless keyboard on my Pi during setup and hanging around in case I need it. I bought a cheap Logitech keyboard with a dongle I just keep in one of the Pi's USB slot. Works nice.. but now that my Pi is setup I rarely use it.</p>
<p>For controllers, I tried a cheaper Bluetooth game controller but I never could get it to work right. Save yourself some trouble and get a use PS3 controller. It worked fine after I paired it. <a href="https://github.com/retropie/retropie-setup/wiki/PS3-Controller">It's also well-supported on the RetroPie platform</a> so kinda makes this a no-brainer. I got mine used, which saved me some money but didn't come with a cord, which is a mini USB cord (not a micro, which works in most Android phones). Also, keep it plugged into your Pi when not playing to keep it charged. I didn't do that and recently couldn't figure out why it didn't charge until I plugged into my Mac. It seems to need data to charge. Apparently <a href="https://github.com/retropie/retropie-setup/wiki/Xbox-360-Controller">an XBox 360 controller works very well too</a>. They may be cheaper.</p>
<p>The RetroPie system itself kinda odd and it's hard to discern what does what. It's not really one thing but a system of pre-existing applications: front-ends, emulators and things that go in-between. These application are already configured to work together in harmony. You can tweak things to your hearts content as well. These things are:</p>
<ul>
<li><a href="https://emulationstation.org/index.html">EmulationStation</a> is the front-end interface. It's the fancy menu system that use you to choose your game. It also has menus to get into controller settings, etc.</li>
<li><a href="https://www.libretro.com/index.php/category/retroarch/">RetroArch</a> is the program that knows what emulator to use to run your ROMs and starts the appropriate one. Sometimes there are more than one valid emulator and RetroArch will pick the default one. You can easily change the default, or set the best emulator for that particular game. It also is where you do to save and load stat of the ROM. You know, so you can quickly save your place on that really hard game and so you can go back when you die. I interface with RetroArch by hitting the PS button on my controller.</li>
<li>The emulators. I let RetroArch handle all of this. There are a lot of them, but really RetroArch does the work.</li>
</ul>
<p>When you start a game, EmulationStation calls RetroArch and RetroArch does it's thing. When you quit playing (for me, PS2 button, push B, Quit) then RetroArch will also quit and EmulationStation will appear on the screen. All this is pretty painless but it's important because when you go to the forums if you have problems, you will see them talk about each individual component.</p>
<p>Another interesting thing that RetroPie includes <a href="https://github.com/RetroPie/RetroPie-Setup/wiki/Transferring-Roms#samba-shares">is a Samba share.</a> This makes transferring ROMs from where you, er, get them to the Pi as easy and copy and paste over the share. But, as I said above, knowing a bit about the emulators is a good idea because you have to know what ROM goes in what folder.</p>
<p>Excuse me while I continue to <a href="https://en.wikipedia.org/wiki/Shining_Force">free my kingdom from the hordes of Runefast.</a></p>
Review "Mastering Emacs"2018-04-17T00:00:00-05:002018-04-17T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2018-04-17:/review-mastering-emacs.html<p>I've been trying to improve my emacs-fu for the past while. It was probably 18 months ago I declared bankruptcy on my duct-tape and bailing wire Emacs config and started fresh with <a href="http://projectile.readthedocs.io/en/latest/">Projectile</a> and haven't regretted it for a second. I started reading the <a href="http://projectile.readthedocs.io/en/latest/">Emacs Reddit</a>, which introduced me to …</p><p>I've been trying to improve my emacs-fu for the past while. It was probably 18 months ago I declared bankruptcy on my duct-tape and bailing wire Emacs config and started fresh with <a href="http://projectile.readthedocs.io/en/latest/">Projectile</a> and haven't regretted it for a second. I started reading the <a href="http://projectile.readthedocs.io/en/latest/">Emacs Reddit</a>, which introduced me to <a href="https://magit.vc">Magit</a> and <a href="https://orgmode.org">OrgMode</a>. Magit was hard for me to start and now it's become my preferred way to interface with git. OrgMode was even a shorter transition… I'm not running my entire life with OrgMode but I do use it for notes and my personal knowledge base.</p>
<p>But my fu stalled. I had a hump that I couldn't get over. I started to look if there was a current deep-dive book in the wondrous world of Emacs and I found one – <a href="https://www.masteringemacs.org"><em>Mastering Emacs</em> by Mickey Petersen</a>. It seemed to be the book that I needed but <a href="https://www.reddit.com/r/emacs/comments/3a21y2/anyone_bought_the_mastering_emacs_ebook/">the thoughts on Reddit were mixed.</a> Lots liked it but others pointed out that you could find most of it on the Internet or through the Emacs help. It was good for beginners but not for experienced users. I decided to give it a shot. And I'm glad I did.</p>
<p>I am a self-taught Emacs user. I glossed over things at the beginning of my Emacs venture that I didn't understand and never went back. I didn't know that then, but I know that now. <em>Mastering Emacs</em> is the first tech book in a long time I've read cover-to-cover, taking notes and making bookmarks as I've went. I've referred back to it many times in trying to get more helpful commands in my daily workflow. I gleaned a lot and – ironically – the biggest point Petersen makes is that Emacs is self-documenting. You can search the help with Emacs any time and it will actually be helpful. That, he claims, is the most important thing to mastering Emacs. I have to re-learn and re-orient myself to that idea… but I'm slowly getting there.</p>
<p>That said, there are things the Petersen talked about in depth that I never knew (or understood) before. Things from the book that I now use are:</p>
<ul>
<li><a href="https://www.emacswiki.org/emacs/OccurMode">Occur Mode</a> – basically search on steroids. And then edit said lines.</li>
<li>killing by s-expression (<code>C-M-k</code>)</li>
<li>browsing the kill ring (<code>M-y</code>)</li>
<li>The above is made easier/better by <a href="https://emacs-helm.github.io/helm/">Helm</a> (which I thought I was using but was not)</li>
</ul>
<p>Learning those four things would be enough.. but Petersen also gives a great guide to <a href="https://www.gnu.org/software/emacs/manual/html_mono/eshell.html">Eshell</a> (<a href="https://masteringemacs.org/article/complete-guide-mastering-eshell">available on his site</a>) as well ad Dired, and other goodies. But, overall, his idea is that you should be able to learn about Emacs through the help documentation. Type <code>C-h</code> and behold what you can find out about.</p>
<p>If you are an Emacs power user that knows about these things, then I don't recommend it. If you are an "normal" Emacs user then I really, really think you should. It's worth every penny.</p>
Confessions of an Online Paranoid2018-03-08T00:00:00-06:002018-03-08T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2018-03-08:/confessions-of-an-online-paranoid.html<p>I spend a lot of my day online. Searching for solutions for projects, restaurants, advice, etc. Online forums, restaurant review sites, and many other places … my browser history is big every day. Sometimes I get a little disturbed by how often my searches show up in ads showing to me …</p><p>I spend a lot of my day online. Searching for solutions for projects, restaurants, advice, etc. Online forums, restaurant review sites, and many other places … my browser history is big every day. Sometimes I get a little disturbed by how often my searches show up in ads showing to me – not just in GMail but Facebook, etc.</p>
<p>I know I'm not the only one that is concerned. This post describes all the steps I took. This post is filled with things I have done. The timeframe is about a year and a half.</p>
<h2 id="rid-myself-of-social-media-apps">Rid myself of social media apps</h2>
<p>I deleted my Twitter and Facebook app off my mobile devices and only access them via browser. That way I feel I have more control wiht permission on my device.</p>
<h2 id="multiple-and-alternative-browsers">Multiple (and alternative) browsers</h2>
<p>This is something I did before with limited success but doing it now seems to be better. I use Chrome for GMail and social media (Twitter, FB, etc) and do my daily browsing in <a href="https://opera.com">Opera</a> for everything else. Yes, I'm That Guy That Uses Opera. Actually Opera is basically Chrome with smaller memory and with built-in ad blocking. I find Opera really, really fast. And it can use <a href="https://addons.opera.com/en/extensions/details/download-chrome-extension-9/">Chrome extentions</a> with no problem. So, yeah, I use Opera for all my searching and day-to-day work. And it's lovely.</p>
<p>And I do this both on my desktop and mobile. So, yes, I use Opera on my phone as well. Actually their mobile browser is what I used first. Anyway this is not a commercial for Opera – it's just what I use.</p>
<p>I should also point out that Opera owns/is ran by <a href="https://www.adcolony.com">an ad company</a> . But I <a href="https://www.techdirt.com/articles/20090623/1924305338.shtml">trust Norway with my data</a> more than I do US Entities. Go figure.</p>
<h2 id="privacy-badger">Privacy Badger</h2>
<p>Now I felt pretty secure online but I kept reading about online fingerprinting… that even thought you were blocking ads, that advertising and bad people (which not all advertisers are) can finger print your browser characteristics and figure out who you are without sessions or cookies. While it is not full-proof, <a href="https://www.eff.org/privacybadger">Privacy Badger</a> does a good job of not only keeping the tracking toxins out of your browser make it look generic enough that you aren't tracked. It learns as you surf. So maybe it's not great on Day 1, but Day 3 gets a lot better.</p>
<p>You can test your own browser at <a href="https://panopticlick.eff.org">EFF's Panopticlick</a> . I dare ya.</p>
<h2 id="switching-search-engines">Switching Search Engines</h2>
<p>I like Google. It works better than anything else. <a href="https://www.usnews.com/opinion/articles/2013/05/10/15-ways-google-monitors-you">But is it worth the cost?</a> I decided to do an experiment and set my default search to <a href="https://duckduckgo.com">DuckDuckGo</a> and, if it didn't get an good answer (especially on my particularly thorny technical questions) I would then Google it. And you know – DuckDuckGo wasn't just merely adequate, in many situation I like it better.</p>
<p>DDG is smarter about showing you results. So <a href="https://duckduckgo.com/?q=how+to+install+emacs">if you do a search</a> where a video may be the best answer, it automatically takes you to the videos. If you <a href="https://duckduckgo.com/?q=how+to+create+pdfs+in+org-mode&ia=qa">search for a something</a> that has an answer in say, StackOverflow, <em>it will show you the accepted answer</em> on the top, as all as listing other results. Saves you a click. Features, not more results, is an important distinction.</p>
<p>Oh <a href="https://duckduckgo.com/about">and their ideas about privacy</a> are great too.</p>
<p>Therein lies my journey and my current status. Pardon me while I get a new tinfoil hat – I've worn this for over 2 hours.</p>
Notes During a Fast from Facebook2018-02-27T00:00:00-06:002018-02-27T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2018-02-27:/notes-during-a-fast-from-facebook.html<p>As I write this I'm in the middle of a break from Facebook. At this point, there is little reason for me to ever get back.</p>
<p>First – I'm not sure it's public knowledge that there is a way <a href="https://www.facebook.com/help/214376678584711/">to simply disable your account on FB.</a> You sorta disappear…. people can't …</p><p>As I write this I'm in the middle of a break from Facebook. At this point, there is little reason for me to ever get back.</p>
<p>First – I'm not sure it's public knowledge that there is a way <a href="https://www.facebook.com/help/214376678584711/">to simply disable your account on FB.</a> You sorta disappear…. people can't tag you, find your profile, see your photos, etc. but if you log back in everything will be back. At one point it was only for two weeks but now (as I read it) the account is disabled until you want it enabled again.</p>
<p>My wife, Gina, has done this a few times and I've tried to simply stay off of it. But I felt like I was failing since sometime this fall. I didn't interact with people, nor post much but I was always looking. Gina has just finished one of her Facebook breaks when I listened <a href="https://www.wnyc.org/story/manoush-advice-episode">to this episode of Note to Self</a> which talked about FB (and social media in general) and how it effects your mind. Once you free it up, you can get more done. And, honestly, I'm all for it.</p>
<p>I had more or less given up on all social media but Facebook. I do Instagram a bit (I might check once a day) and post to Twitter (but rarely read it). But Facebook … it was easy to get sucked in. It was kinda, "Well I have a few minutes so I'll see what's happening" and 15-20 minutes go by. Or I spend a lot of time on it while sitting on the couch in the evening (with no real posts happening). This was ridiculous. So I disabled my account just to see what happens.</p>
<p>And, honestly, it's been pretty great. My original two weeks got extended to April (after Easter) but now I'm thinking…. well, a whole lot longer. I'm trying hard to not saw "never" so I won't. But I want to.</p>
<p>The biggest change is that I've dived into things I've thought about being "nice to haves" but never did it until lately. For example:</p>
<ul>
<li>Using macOS's virtual desktop (which used to be called Spaces but now is called Desktops and <a href="https://www.howtogeek.com/180677/MISSION-CONTROL-101-HOW-TO-USE-MULTIPLE-DESKTOPS-ON-A-MAC/">it's integrated in Mission Control</a>, which is something I've always ignored)</li>
<li>When I loaded up a project in Emacs via <a href="https://github.com/bbatsov/projectile">Projectile</a> it was sometimes really slow. After a little searching <a href="https://github.com/bbatsov/projectile/issues/1183">I found that I'm not the only one</a> with that problem.</li>
<li>wrote another blog post for the company blog.</li>
<li>actually played some board games</li>
</ul>
<p>Here are things I discovered or re-discovered:</p>
<ul>
<li>Blogs are still a thing. <a href="http://feedly.com">Feedly</a> is my new best friend. I feel more informed.</li>
<li>Tweaked some keyboard shortcuts via <a href="https://www.boastr.net">BetterTouchTool</a>. Now I can put a window in another desktop via <code>Control-Option-<arrow></code>. There is much to be done with BetterTouchTool</li>
<li>actually using the before-mentioned Projectile in a better way.</li>
<li>Email newsletters are still a thing… perhaps a growing thing in a niche way. I've been enjoying <a href="http://ambassadors.thehustle.co/?ref=acb9a79a76">The Hustle</a> and <a href="https://kottke.org/newsletter/">Noticing</a>. (Yes the former is an affiliate link but I get no money from).</li>
<li>Reading a lot more.. <strong>a lot more</strong>. Not just blogs but books too. Brandon Sanderson has become one of my new favorite authors.</li>
</ul>
<p>The funny thing is – I've been so busy exploring that I haven't finished this blog post. Three weeks have went by since I first wrote this… and I've never looked at Facebook.</p>
May 2017 Media Diet2017-05-17T00:00:00-05:002017-05-17T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2017-05-17:/may-2017-media-diet.html<p>I think it's cool <a href="http://kottke.org/tag/media%2520diet">when Jason Kottke does it</a> so why not do it too?</p>
<ul>
<li><p><a href="http://www.imdb.com/title/tt2015381/">Guardians of the Galaxy</a> (the first one) – My daughter was recently sick on a Sunday and we watched this together. It was my third time and her first. It really holds up well. Still my …</p></li></ul><p>I think it's cool <a href="http://kottke.org/tag/media%2520diet">when Jason Kottke does it</a> so why not do it too?</p>
<ul>
<li><p><a href="http://www.imdb.com/title/tt2015381/">Guardians of the Galaxy</a> (the first one) – My daughter was recently sick on a Sunday and we watched this together. It was my third time and her first. It really holds up well. Still my favorite Marvel movie (A+)</p></li>
<li><p><a href="http://www.goodreads.com/book/show/76620.Watership_Down"><em>Watership Down</em></a> – a friend recommended this book to me in eighth grade. I read it at least twice before I graduated high school, once more in college, and I think one more time just after college. It has been about (<em>cough</em>) 20 years since the last time, so I picked it up and read it again. Still one of my favorite books. (A+)</p></li>
<li><p><a href="https://www.amazon.com/Wild-As-We-Came-Here/dp/B06XSC2YBK"><em>As Wild As We Came Here</em></a> by The Steel Wheels – I'm a big Steel Wheels fan and I was excited for new music. This albums is very different – less harmonies, less roots music… I'd even argue that there is a rock song on it. But it's growing on me. (B)</p></li>
<li><p><a href="https://dungeonsofchaos.wordpress.com/">Dungeons of Chaos</a> – an old-school type RPG for Android/iOS that reminds me of the Ultima-days. If you obsess about building a party, leveling up characters, different weapons, and killing monsters in a dungeon, then this is for you. I played the heck out of this and finally have a party close to the end, and I'm already thinking about making another party and starting over. (A+)</p></li>
<li><p><a href="http://www.goodreads.com/book/show/27068575-everybody-s-fool"><em>Everybody's Fool</em></a> – I wanted to read <em>Nobody's Fool</em> again but then I noted that Richard Russo came out with a sequel last year so I had to get it. The further adventures of Sully and events in North Bath. Not sure it was as good as the previous book but not many are (A-)</p></li>
<li><p><a href="http://www.imdb.com/title/tt0386676/">The Office</a> – my wife and I are re-watching the US version of <em>The Office</em> (which we also watched on Netflix). One of the things we sorta missed last time was how amazingly funny and creepy Creed is. I mean, we <em>knew</em> it but this time we notice it more. And Jim and Pam are the best TV couple ever. (A)</p></li>
<li><p><a href="https://open.spotify.com/album/73lnI3HzVdZ0xHiYrF8pdD?play=true&utm_source=open.spotify.com&utm_medium=open&play=true"><em>Five Man Accoustical Jam</em></a> by Tesla – another blast from my high school days. These guys are amazing musicians and the album holds up well. If released today, it would have a Parental Warning on it. There is a rumor that this album and it's success lead to <em>MTV Unplugged</em>. (A)</p></li>
<li><p><a href="http://www.goodreads.com/book/show/3636.The_Giver"><em>The Giver</em></a> and <a href="http://www.goodreads.com/book/show/12936.Gathering_Blue"><em>Gathering Blue</em></a> – the first half of The Giver Quartet from Lois Lowery. The former is quite good at showing a utopian world that is really dystopian. The second… not sure about. It's a good show of a total dystopian society but it feels like a first chapter. And the latter seemingly has nothing to with the first book but apparently they are tied together in the next book. Also, the pages seem to end when the story finally gets warmed up (A and B-).</p></li>
<li><p><a href="http://www.asmodee-digital.com/jaipur/">Jaipur</a> – toward the end of the month, one of the board games I've always want to play came out with an app. I can't compare it to the normal game, but the app is very well done (as most of <a href="http://www.asmodee-digital.com/">Asmodee's</a> apps are). I really like the campaign mode even though it hands my butt to me. (A)</p></li>
</ul>
Managing a Mountain of Music2017-03-23T00:00:00-05:002017-03-23T00:00:00-05:00Mike Hostetlertag:mike.hostetlerhome.com,2017-03-23:/managing-a-mountain-of-music.html<p>A few months ago I was going through various backups and online file storage places I have (and they seem legion) and noted that I had music files everywhere. Some dated back to my late days of college (just before Napster was a thing) up to much more recent downloads …</p><p>A few months ago I was going through various backups and online file storage places I have (and they seem legion) and noted that I had music files everywhere. Some dated back to my late days of college (just before Napster was a thing) up to much more recent downloads from <a href="http://noisetrade.com">Noisetrade</a>, which has become my usual source of music. In between was some iTunes and Amazon music as well. Of course, not all of it was unique – lots of my newer stuff was backed-up in several places. A few years ago, I once had this idea that I would put a bunch of music on a server and then sftp down what I wanted to listen to, when I wanted to listen to it. That never happened but it seemed at least half of my collection was there. But I wasn't sure that <strong>all</strong> of it was repeated. To top this off – I really wanted this music in a usable form. I have never really joined the Spotify/Pandora bandwagon (<a href="http://derekwebb.tumblr.com/post/13503899950/giving-it-away-how-free-music-makes-more-than">one of my favorite artists talked about this</a> a few years ago and colored my opinion on streaming services).</p>
<p>Organizing</p>
<p>I did a bit of web searching and I found some software named <a href="http://beets.io">Beets</a>. It's command line and nerdy but it seemed to do exactly what I wanted to do. Beets works better if you have a known music repository but I didn't have that, so I started with a blank directory on an external drive I had laying around. And then I started the long import process.</p>
<p>It took a long time… when I first started, I mounted my remote systems via <a href="https://osxfuse.github.io">Fuse</a> but Beets import process was extremely slow this way. So I started downloading bits and pieces of my collection locally and ran <code>beet import</code> each time. And, yes, I did it interactively – having it ask about duplicates and album names and so on. At this time, I was fortunate be working at home at least half the time, so I did this work during scrums and other pointless meetings that were going on (and there were many). I added more files overnight, and then fired up <code>beet import</code> just before the meeting started, and then tag away. I got more confident with Beet finding duplicates. This took about a week of work but worth doing.</p>
<p>At the end, I had 31GB of music in over 6,000 files. Did Beets find all the duplicates? No, but it found most of them. I think the ones I had left were from my confusion to the interface or (more probably) my unwillingness to lose any files so I always chose the <code>Keep Both</code> option. Did Beets tag all my files? No, but some of my stuff isn't in <a href="https://musicbrainz.org/">MusicBrainz</a> so that isn't a big deal. Overall, Beets gave me at least 80% of what I needed. And that was plenty for me.</p>
<p>Actually Listening To It</p>
<p>Now that I have it – how can I listen to it? I did some thinking and digging and suddenly remembered what <a href="https://edibleapple.com/wp-content/uploads/2009/06/sd-card-macbook-pro.png">that little slot on my MacBook Pro is</a>. A bit of shopping helped me realize how cheap MicroSDs have gotten. So I got a 128GB MicroSD card and it came with an SD adapter. Perfect! I had plenty of room on it for my music (even if it grew a lot) and also room for my rather large ebook collection. I can pop the SD card into my MBP and then once a week make sure it's backed up via rsync to drive at home. I also got another MicroSD card to put all my ebooks and music on <a href="http://mike.hostetlerhome.com/android.html">my Android tablet</a>. Now I have everything with me.</p>
<p>So how am I going to listen to it? On my tablet I use <a href="http://powerampapp.com/">PowerAmp</a> and on my MBP I use <a href="https://getnightingale.com/">Nightingale</a>. Nope, iTunes does not cut it for me. <a href="http://lifehacker.com/the-best-smart-playlists-for-automatically-organizing-y-476510080">Here is an old LifeHacker article</a> on SmartLists that more or less works in Nightingale. Storage is so cheap that got a thumb drive that I copied all my music to and put it in the USB slot in the car to listen to on car trips.</p>
<p>Managing all this</p>
<p>Now that I have my music nice and organized, I can't just download my next find from Noisetrade and put it on my SD card. I put a Beet <code>config.yml</code> on the SD Card that points to the music folder on that card. Now when I download music, I do the following:</p>
<ol>
<li>Unzip to it's own folder</li>
<li>Run <code>beet -c /Volumes/sdcard/beet/config/config.yaml import ~/Downloads/music_folder</code></li>
<li>Answer Beets questions (chances are they aren't tagged correctly)</li>
<li>Profit</li>
</ol>
<p>Nightingale will automatically find the new files (even if it's still running) and I can find it using the built-in "Recently Added" SmartList. Then the files are put on my backup drive the next time I run the script.</p>
<p>Todos</p>
<ul>
<li>Better way to get music from my card/backup to my tablet.</li>
<li>Make the backup of the card run automatically.</li>
<li>Share playlists between Poweramp and Nightingale.</li>
</ul>
New Printer2017-03-07T00:00:00-06:002017-03-07T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2017-03-07:/new-printer.html<p>We had to get a new printer this week. I was able to get it to talk and print from not one, not two, but three different devices in my house on the first try. Either printing is getting better or easier, or the anti-printing coalition forces aren't working against …</p><p>We had to get a new printer this week. I was able to get it to talk and print from not one, not two, but three different devices in my house on the first try. Either printing is getting better or easier, or the anti-printing coalition forces aren't working against me as they usually are.</p>
My New Android Tablet2017-03-02T00:00:00-06:002017-03-02T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2017-03-02:/my-new-android-tablet.html<p>Over the years I've had a lot of cheap Android tablets. I started with a Hisense Sero Pro 7, which was actually a good tablet until it decided to stop charging. I then started using my daughter's old (and no longer used by her Nexus 7), which also stopped charging …</p><p>Over the years I've had a lot of cheap Android tablets. I started with a Hisense Sero Pro 7, which was actually a good tablet until it decided to stop charging. I then started using my daughter's old (and no longer used by her Nexus 7), which also stopped charging not long after I started using it. And then I got a 2nd gen Kindle Fire. Which actually is still working but it's old hardware and it doesn't even run the latest Fire OS. If you can get a modern app on it, the tablet has to work so hard that the battery drains very quickly.</p>
<p>So for Christmas I bought my wife an iPad and myself a more top-of-the-line Android tablet – a <a href="http://www.samsung.com/us/explore/tab-s2-features-and-specs/">Samsung Galaxy Tab S2</a>. It has a seemingly square screen but that doesn't bug me like I thought it would. The screen is very clear, and the colors are crisp. The tablet is understandably snappy. The battery life is amazing (and as of yet hasn't caught fire. ☺). And it has a lack of cruft on it – Microsoft Office apps and a news app. That's about it.</p>
<p>As an experiment, I haven't put anything work-related on it. I have one Google Account, but not my work one and have not configure my personal email account on there either. And no Slack, no social media apps. Not even a streaming app. It's mainly for "consuming" – lots of board game apps and reading (Feedly, Instapaper, etc). Surprisingly I've been doing the most is reading books, thanks to the excellent <a href="http://www.moondownload.com">Moon+ Reader Pro</a> app. That deserves it's own blog post.</p>
<p>It's been nice having a device that does what you want and it not always trying to get your attention with notifications.</p>
Changes2017-02-23T00:00:00-06:002017-02-23T00:00:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2017-02-23:/changes.html<p>I wanted to do some changes around here and then got caught. I wanted to blog more but I didn't want to support any of the old blog. So i ripped the band-aid off, grabbed very few recent posts and then <a href="http://old-mike.hostetlerhome.com">left 12 years of blog posts over there</a>.</p>
<p>So …</p><p>I wanted to do some changes around here and then got caught. I wanted to blog more but I didn't want to support any of the old blog. So i ripped the band-aid off, grabbed very few recent posts and then <a href="http://old-mike.hostetlerhome.com">left 12 years of blog posts over there</a>.</p>
<p>So I'll change some things around here but this is will help me blog more often. I hope.</p>
Bad Phone is good2017-01-31T18:17:00-06:002017-01-31T18:17:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2017-01-31:/bad-phone-is-good.html<p>My Android phone has been weird lately and in the midst of troubleshooting it, I did a factory reset to figure out if that would fix it (it didn't). After the reset I installed very few apps because I wanted to narrow it down. Now that I have done that …</p><p>My Android phone has been weird lately and in the midst of troubleshooting it, I did a factory reset to figure out if that would fix it (it didn't). After the reset I installed very few apps because I wanted to narrow it down. Now that I have done that and have a work-around, I figured that I don't miss having social media on my phone. Yes I have Slack but that's different. Not being able to check FB and (rare for me) Twitter on a whim is so freeing.</p>Brew story2017-01-23T13:46:00-06:002017-01-23T13:46:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2017-01-23:/brew-story.html<p>My wife got my a little beginner home-brew kit for a late Christmas present. I was delighted and started the fermentation process that night.</p>
<p>As week later, I took a small sample from the fermenter and was excited by the result after such a short time. I gave a little …</p><p>My wife got my a little beginner home-brew kit for a late Christmas present. I was delighted and started the fermentation process that night.</p>
<p>As week later, I took a small sample from the fermenter and was excited by the result after such a short time. I gave a little more to my wife, who, upon tasting it, said "It tastes like warm, stale beer!"</p>
<p>Me: "I know, it's that great?!"</p>
<p>Wife: "No! Get me a breath mint!"</p>Best Feature of the Nest Thermostat2017-01-15T17:44:00-06:002017-01-15T17:44:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2017-01-15:/best-feature-of-the-nest-thermostat.html<p>Our favorite feature of the Nest Thermostat is <a href="https://nest.com/support/article/How-can-I-lock-Nest-so-that-it-can-only-be-adjusted-within-a-certain-temperature-range">the lock feature</a>. We found out about this feature after kids starting turning up our thermostat. One time up to 81 ℉! The nicest thing is what we can still adjust it on our phone without unlocking it.</p>Interactive Fiction2017-01-11T09:59:00-06:002017-01-11T09:59:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2017-01-11:/interactive-fiction.html<p>Once every few years I end up looking at Interactive Fiction and am surprised <a href="http://ifdb.tads.org/">that it's live and well</a>. People are making games like Zork for the fun of it. What a fun little niche that I'm glad is still going on.</p>
<p>Oh and if you have never played <a href="http://www.inklestudios.com/80days/">inkle's …</a></p><p>Once every few years I end up looking at Interactive Fiction and am surprised <a href="http://ifdb.tads.org/">that it's live and well</a>. People are making games like Zork for the fun of it. What a fun little niche that I'm glad is still going on.</p>
<p>Oh and if you have never played <a href="http://www.inklestudios.com/80days/">inkle's 80 Days</a> you are missing out.</p>Safari Books2017-01-06T14:42:00-06:002017-01-06T14:42:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2017-01-06:/safari-books.html<p><a href="https://objectpartners.com/">My fantastic employer</a> let me put <a href="https://www.safaribooksonline.com/">Safari Books</a> towards my (ample) education/training budget last year. Just last night I remembered that I hadn't used it in a while so I fired it up and undid some books that were in my queue that I didn't need anymore. Then I …</p><p><a href="https://objectpartners.com/">My fantastic employer</a> let me put <a href="https://www.safaribooksonline.com/">Safari Books</a> towards my (ample) education/training budget last year. Just last night I remembered that I hadn't used it in a while so I fired it up and undid some books that were in my queue that I didn't need anymore. Then I had to think about what I wanted to get this time. Oh a book on JPA. Yes, they have one and yes it's already become useful.</p>
<p>Hooray for great employers! </p>Star Realms Challenge2017-01-05T20:43:00-06:002017-01-05T20:43:00-06:00Mike Hostetlertag:mike.hostetlerhome.com,2017-01-05:/star-realms-challenge.html<p><a href="https://boardgamegeek.com/user/ShaunGames">Shaun Austin</a> often runs solo challenges for <a href="http://www.starrealms.com/">Star Realms</a>, which is one of my favorite games. <a href="https://boardgamegeek.com/thread/1699466/star-realms-challenge-1-2017">The challenge for this month</a> is especially good. Or I was really in the mood for a great game, which I got when I played it. I'm anxious to give it another go very …</p><p><a href="https://boardgamegeek.com/user/ShaunGames">Shaun Austin</a> often runs solo challenges for <a href="http://www.starrealms.com/">Star Realms</a>, which is one of my favorite games. <a href="https://boardgamegeek.com/thread/1699466/star-realms-challenge-1-2017">The challenge for this month</a> is especially good. Or I was really in the mood for a great game, which I got when I played it. I'm anxious to give it another go very soon.</p>