<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>travis a. everett</title>
    <link>https://t-ravis.com/</link>
    <description>Recent content on travis a. everett</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    
	<atom:link href="https://t-ravis.com/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>modular bash profile scripting with shellswain</title>
      <link>https://t-ravis.com/post/shell/modular_bash_profile_scripting_with_shellswain/</link>
      <pubDate>Mon, 23 Jan 2023 23:36:46 -0600</pubDate>
      
      <guid>https://t-ravis.com/post/shell/modular_bash_profile_scripting_with_shellswain/</guid>
      <description>When I set out to build a history module for my bashrc/profile, the dearth of code re-use and collaborative ~unixy modularity struck me as a little sad.
I knew early on that I wanted to abstract its logistics layer out into a lightweight scaffold for others to build on, but the vision for shellswain didn&#39;t really crystalize until I stumbled on bashup.</description>
      
    </item>
    
    <item>
      <title>avoid trap-clobbering in nix-shell</title>
      <link>https://t-ravis.com/post/nix/avoid_trap_clobbering_in_nix-shell/</link>
      <pubDate>Sat, 07 Jan 2023 22:53:56 -0600</pubDate>
      
      <guid>https://t-ravis.com/post/nix/avoid_trap_clobbering_in_nix-shell/</guid>
      <description>If you&#39;ve used nix-shell to test anything with a server component, you&#39;ve likely added a trap to shellHook in order kill the server whenever you exit the shell.
I, for one, set up the trap and moved on with my life without giving it too much thought--but Nix and and the nixpkgs stdenv already have plans for the exit trap, and adding our own trap clobbers them.</description>
      
    </item>
    
    <item>
      <title>what color is your markup?</title>
      <link>https://t-ravis.com/post/doc/what_color_is_your_markup/</link>
      <pubDate>Sun, 02 Oct 2022 15:54:23 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/doc/what_color_is_your_markup/</guid>
      <description>I guess I&#39;ve been writing markup for 24 years already, but over the last year I realized I was missing the forest for the trees. This post lays out a markup categorization I came up with while prototyping some tools for single-sourcing documentation.</description>
      
    </item>
    
    <item>
      <title>no-look, no-leap Shell script dependencies</title>
      <link>https://t-ravis.com/post/shell/no_look_no_leap_shell_with_nix/</link>
      <pubDate>Thu, 14 Jul 2022 23:57:05 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/shell/no_look_no_leap_shell_with_nix/</guid>
      <description>When a Shell script&#39;s dependencies are missing, it tends to fail chaotically--or use run-time dependency checks to fail predictably.
But it doesn&#39;t have to work like this. We don&#39;t have to look before we leap.</description>
      
    </item>
    
    <item>
      <title>semantic: the 8 letter s-word</title>
      <link>https://t-ravis.com/post/doc/semantic_the_8_letter_s-word/</link>
      <pubDate>Sat, 09 Jul 2022 14:17:30 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/doc/semantic_the_8_letter_s-word/</guid>
      <description>I&#39;m writing to convince you to ban the word semantic from your work.
I actually like the word--I&#39;ve spent a lot of time thinking about the role of semantics in markup--but I&#39;ve come to see it as a hurdle to thinking and communicating clearly.</description>
      
    </item>
    
    <item>
      <title>the trouble with anonymous gizmos</title>
      <link>https://t-ravis.com/post/doc/the_trouble_with_anonymous_gizmos/</link>
      <pubDate>Sun, 19 Jun 2022 23:52:01 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/doc/the_trouble_with_anonymous_gizmos/</guid>
      <description>In which I call out LWMLs :)</description>
      
    </item>
    
    <item>
      <title>the gizmo&#39;s role in markup</title>
      <link>https://t-ravis.com/post/doc/the_gizmos_role_in_markup/</link>
      <pubDate>Sun, 05 Jun 2022 21:09:19 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/doc/the_gizmos_role_in_markup/</guid>
      <description>This post adds tagged markup to my set of gizmos (labels with automatic behavior attached--like functions and CSS classes) and then tries to apply my intuitions about gizmo-naming from the last post.</description>
      
    </item>
    
    <item>
      <title>the hard problem: naming functions and other gizmos</title>
      <link>https://t-ravis.com/post/doc/naming_functions_methods_and_other_gizmos/</link>
      <pubDate>Sat, 04 Jun 2022 23:05:16 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/doc/naming_functions_methods_and_other_gizmos/</guid>
      <description>The previous post discussed the subtle arts of naming things and not repeating yourself--and now I want to extend its observations beyond functions.
That post teased out 3 intuitions about writing lower-churn code:</description>
      
    </item>
    
    <item>
      <title>WHAT functions and WHY functions</title>
      <link>https://t-ravis.com/post/doc/what_functions_and_why_functions/</link>
      <pubDate>Wed, 01 Jun 2022 21:39:59 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/doc/what_functions_and_why_functions/</guid>
      <description>I want to tease out a small realization I had on two of programming&#39;s subtle arts and hard problems: naming things, and not repeating yourself.
This first post uses a simple example to focus on function names.</description>
      
    </item>
    
    <item>
      <title>nix-shell, but make it lovely</title>
      <link>https://t-ravis.com/post/nix/nix-make/</link>
      <pubDate>Sun, 24 Apr 2022 12:11:08 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/nix/nix-make/</guid>
      <description>I&#39;m pretty happy with a pattern I stumbled into last year for using Nix to provision dependencies for a task-/utility-oriented Makefile.
For a while I&#39;ve wanted the rough equivalent of a nix-shell shebang--but for Makefiles.</description>
      
    </item>
    
    <item>
      <title>neighborly Shell with bashup.events</title>
      <link>https://t-ravis.com/post/shell/neighborly_shell_with_bashup.events/</link>
      <pubDate>Thu, 13 Jan 2022 23:48:26 -0600</pubDate>
      
      <guid>https://t-ravis.com/post/shell/neighborly_shell_with_bashup.events/</guid>
      <description>In mid 2019, I fell in love (with a small Bash library): bashup.events.
In the short term it helped sand down some frustrations with Shell, but in the long term it&#39;s inspired/shaped a vision for modular neighborly Shell.</description>
      
    </item>
    
    <item>
      <title>the missing comprehensive package manager for Shell</title>
      <link>https://t-ravis.com/post/shell/the_missing_comprehensive_package_manager_for_shell/</link>
      <pubDate>Wed, 12 Jan 2022 19:48:26 -0600</pubDate>
      
      <guid>https://t-ravis.com/post/shell/the_missing_comprehensive_package_manager_for_shell/</guid>
      <description>I posted a comment on the red site (a few months ago, in a thread about GNU and POSIX) that ended with:
 I’m noticing a lot of wind-shaped trees, all deformed by the vacuum where the missing comprehensive package manager for shell could be.</description>
      
    </item>
    
    <item>
      <title>modularity in the age of antisocial Shell</title>
      <link>https://t-ravis.com/post/shell/modularity_in_the_age_of_antisocial_shell/</link>
      <pubDate>Sat, 08 Jan 2022 19:38:03 -0600</pubDate>
      
      <guid>https://t-ravis.com/post/shell/modularity_in_the_age_of_antisocial_shell/</guid>
      <description>Since late 2018, I&#39;ve been accumulating the knowledge that comes from shaving forbidden yak: I started a substantial project in Bash. As with any good yak-shave, one thing led to another.</description>
      
    </item>
    
    <item>
      <title>advanced shell packaging: resholve YADM&#39;s nixpkg</title>
      <link>https://t-ravis.com/post/nix/advanced_shell_packaging_resholve_yadm/</link>
      <pubDate>Tue, 14 Sep 2021 18:40:00 -0600</pubDate>
      
      <guid>https://t-ravis.com/post/nix/advanced_shell_packaging_resholve_yadm/</guid>
      <description>I&#39;ve been working on resholve to improve Nix packaging for shell projects since early 2020, but the new v0.6.0 release is a decent leap forward in the fraction of Shell scripts and programs resholve can handle.</description>
      
    </item>
    
    <item>
      <title>write a simple shell package with resholve</title>
      <link>https://t-ravis.com/post/nix/write_a_simple_shell_package_with_resholve/</link>
      <pubDate>Sun, 24 Jan 2021 08:17:32 -0600</pubDate>
      
      <guid>https://t-ravis.com/post/nix/write_a_simple_shell_package_with_resholve/</guid>
      <description>This past year I&#39;ve been working on resholve to improve Nix packaging for shell projects, and it&#39;s recently landed in nixpkgs-unstable. This is a first-look at how you can put it to use.</description>
      
    </item>
    
    <item>
      <title>GMCP negotiation in LDMud</title>
      <link>https://t-ravis.com/post/mud/ldmud-gmcp-negotiation/</link>
      <pubDate>Mon, 10 Dec 2012 08:01:44 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/mud/ldmud-gmcp-negotiation/</guid>
      <description>A player on our MUD recently inquired about whether it would be possible for us to support GMCP, or the Generic Mud Communication Protocol.
I won&#39;t spend a long time going into back-history or preliminary details of how we&#39;ll actually use GMCP--we&#39;re still in the process of feeling the project out, but I had to do some digging to figure out just what exactly we needed to do, ourselves, so I figured I would make a quick post collecting the info for others.</description>
      
    </item>
    
    <item>
      <title>Rotating configs for advanced scenarios</title>
      <link>https://t-ravis.com/post/mud/doxygen_7/</link>
      <pubDate>Thu, 18 Oct 2012 07:30:00 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/mud/doxygen_7/</guid>
      <description>Aha, finally to the end. This post, like the 5th post, is largely optional. One of the restrictions of our development environment is that, while our senior admin is active enough to make requests of, none of our active coders have root server-level access.</description>
      
    </item>
    
    <item>
      <title>XML-powered MUD-side interface</title>
      <link>https://t-ravis.com/post/mud/doxygen_6/</link>
      <pubDate>Tue, 16 Oct 2012 18:26:00 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/mud/doxygen_6/</guid>
      <description>update log:    10-17-12: I&#39;ve updated read_function to better detect the start of a function, which should resolve some circumstances under which the function definition didn&#39;t appear in the read function text.</description>
      
    </item>
    
    <item>
      <title>Convert LDMud docs to a Doxygen-friendly format</title>
      <link>https://t-ravis.com/post/mud/doxygen_5/</link>
      <pubDate>Tue, 09 Oct 2012 12:18:00 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/mud/doxygen_5/</guid>
      <description>update log:    10-10-12: Two tweaks to the process_classes function; 1, a file with the same name as the folder containing it is now parsed with rewrite_doc_lines instead of rewrite_function_doc_lines, and 2: the &amp;quot;index&amp;quot; variable was declared outside of the foreach loop when it should have been declared inside of it.</description>
      
    </item>
    
    <item>
      <title>Writing guides and code comments for Doxygen</title>
      <link>https://t-ravis.com/post/mud/doxygen_4/</link>
      <pubDate>Wed, 03 Oct 2012 14:41:00 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/mud/doxygen_4/</guid>
      <description>While our mudlib documentation standards aren&#39;t fixed yet, and they consist of stylistic decisions for the most part, a few of the standards are necessary for working with LPC. Additionally, we&#39;ve included some examples, and a discussion of developing guides which should save others time down the road.</description>
      
    </item>
    
    <item>
      <title>Input filtering to smooth LPC/doxygen issues</title>
      <link>https://t-ravis.com/post/mud/doxygen_3/</link>
      <pubDate>Thu, 20 Sep 2012 16:00:00 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/mud/doxygen_3/</guid>
      <description>In the previous parts, I&#39;ve discussed the fact that we use an input filter to translate our LPC into something a little more doxygen-friendly. This is a bit of a kludge, really--I hope you&#39;ll report in if you find improvements on this method.</description>
      
    </item>
    
    <item>
      <title>Basic configuration</title>
      <link>https://t-ravis.com/post/mud/doxygen_2/</link>
      <pubDate>Thu, 20 Sep 2012 08:00:00 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/mud/doxygen_2/</guid>
      <description>This post discusses the basic configuration options we&#39;ve used to configure Doxygen to cope with LPC, while some later posts in this series will also deal with some more advanced topics along these lines.</description>
      
    </item>
    
    <item>
      <title>Doxygen series introduction</title>
      <link>https://t-ravis.com/post/mud/doxygen_1/</link>
      <pubDate>Wed, 19 Sep 2012 15:56:00 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/mud/doxygen_1/</guid>
      <description>One of the bigger projects I&#39;ve undertaken this year, then, has been one to clean up our documentation and the methods we have of accessing it. Our existing manual system has a number of issues:</description>
      
    </item>
    
    <item>
      <title>Verbs, add_action() and quests</title>
      <link>https://t-ravis.com/post/mud/verbs_add_action_quests/</link>
      <pubDate>Tue, 11 Sep 2012 16:00:09 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/mud/verbs_add_action_quests/</guid>
      <description>Background   While my historical perspective on LP/LDMud practices is limited since I&#39;ve only seriously played a single LDMud and I&#39;ve only spent about two years and 3 months coding for it, I will speak to some more historical conditions as best I can.</description>
      
    </item>
    
    <item>
      <title>MUD-flinging</title>
      <link>https://t-ravis.com/post/mud/flinging/</link>
      <pubDate>Sun, 18 Mar 2012 09:47:00 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/mud/flinging/</guid>
      <description>I don&#39;t want to spend too much time dwelling on the past, but I&#39;ll give a brief introduction.
Tsunami was founded in the wee-90s while I was busy eating paste and playing with shaving cream in kindergarten.</description>
      
    </item>
    
    <item>
      <title>problems</title>
      <link>https://t-ravis.com/post/mud/problems/</link>
      <pubDate>Sun, 18 Mar 2012 09:47:00 -0500</pubDate>
      
      <guid>https://t-ravis.com/post/mud/problems/</guid>
      <description>Here&#39;s a review of some of the problems facing our MUD.
Player-facing   These are obviously, as far as players are concerned, the most important of these issues.
PVP   Most of Tsunami&#39;s legacy is as a rough-and-tumble PVP MUD, with multiple PVP venues including traditional playerkilling and mudwide &amp;quot;wars&amp;quot; being the bigger of these.</description>
      
    </item>
    
  </channel>
</rss>
