<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cli on traviscj/blog</title>
    <link>https://traviscj.com/blog/tags/cli/</link>
    <description>Recent content in Cli on traviscj/blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 23 May 2019 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://traviscj.com/blog/tags/cli/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>macos log command</title>
      <link>https://traviscj.com/blog/post/2019-05-23-macos_log_command/</link>
      <pubDate>Thu, 23 May 2019 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2019-05-23-macos_log_command/</guid>
      <description>&lt;p&gt;My work laptop has been randomly shutting itself off.&#xA;I came across &lt;a href=&#34;TODO&#34;&gt;this&lt;/a&gt; stackoverflow post, it said to run&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;log show &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --predicate &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;eventMessage contains &amp;#34;Previous shutdown cause&amp;#34;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --last 24h&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;which, for me, returns&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;risksys  ➜ log show --predicate &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;eventMessage contains &amp;#34;Previous shutdown cause&amp;#34;&amp;#39;&lt;/span&gt; --last 24h&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Filtering the log data using &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;composedMessage CONTAINS &amp;#34;&lt;/span&gt;Previous shutdown cause&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Skipping info and debug messages, pass --info and/or --debug to include.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Timestamp                       Thread     Type        Activity             PID    TTL&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2019-05-23 11:29:01.874486-0700 0xaf       Default     0x0                  &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;      &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;    kernel: &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;AppleSMC&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; Previous shutdown cause: -128&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2019-05-23 11:44:49.786722-0700 0xaf       Default     0x0                  &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;      &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;    kernel: &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;AppleSMC&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; Previous shutdown cause: -128&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--------------------------------------------------------------------------------------------------------------------&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Log      - Default:          2, Info:                0, Debug:             0, Error:          0, Fault:          &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Activity - Create:           0, Transition:          0, Actions:           &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This, combined with these &lt;a href=&#34;https://georgegarside.com/blog/macos/shutdown-causes/&#34;&gt;MacOS Shutdown Causes&lt;/a&gt; paints a pretty bleak picture: I&amp;rsquo;ve got RAM issues :-(&lt;/p&gt;</description>
    </item>
    <item>
      <title>smart arguments</title>
      <link>https://traviscj.com/blog/post/2019-02-21-smart-arguments/</link>
      <pubDate>Thu, 21 Feb 2019 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2019-02-21-smart-arguments/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s easy to love the terseness one can get out of a command-line tool with a &amp;ldquo;pass by order&amp;rdquo; convention.&#xA;For example, maybe I run something like&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;deploy myapp sea2 production&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;to deploy an application called &lt;code&gt;myapp&lt;/code&gt; to the second &lt;strong&gt;production&lt;/strong&gt; datacenter near Seattle.&#xA;This works great, except now I need to remember the order of arguments is: &lt;code&gt;deploy [app] [datacenter] [environment]&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The typical solve for this problem is introducing named arguments, so you&amp;rsquo;d end up with&lt;/p&gt;</description>
    </item>
    <item>
      <title>watching progress in mysql</title>
      <link>https://traviscj.com/blog/post/2019-01-04-watching_progress_in_mysql/</link>
      <pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2019-01-04-watching_progress_in_mysql/</guid>
      <description>&lt;p&gt;Pretty frequently at work, I end up &lt;a href=&#34;https://traviscj.com/blog/post/2014-10-15-dont_poll/&#34;&gt;polling&lt;/a&gt; a database with some command like&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;MAX&lt;/span&gt;(id) &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; my_tbl;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;MAX&lt;/span&gt;(id) &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; my_tbl;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;MAX&lt;/span&gt;(id) &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; my_tbl;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;MAX&lt;/span&gt;(id) &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; my_tbl;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- .... ad nauseam ....&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I&amp;rsquo;ve eventually noticed a few patterns I use pretty consistently:&lt;/p&gt;&#xA;&lt;h3 id=&#34;estimate-eta-by-including-nowunix_timestamp&#34;&gt;estimate ETA by including &lt;code&gt;NOW()&lt;/code&gt;/&lt;code&gt;UNIX_TIMESTAMP()&lt;/code&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Generally, the point of hovering over the table is to get an estimate of when it will finish/catch up/whatever.&#xA;For that, you generally want to include a timestamp in the query output, so when you come back a while later, you can know exactly how much time has elapsed.&#xA;I might transform the above query into&lt;/p&gt;</description>
    </item>
    <item>
      <title>sfpark api</title>
      <link>https://traviscj.com/blog/post/2018-04-24-sfpark-api/</link>
      <pubDate>Tue, 24 Apr 2018 16:29:39 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2018-04-24-sfpark-api/</guid>
      <description>&lt;p&gt;I recently came to learn of the &lt;a href=&#34;http://sfpark.org/wp-content/uploads/2013/12/SFpark_API_Dec2013.pdf&#34;&gt;SFpark API&lt;/a&gt;, which lets one make queries like:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;LAT=37.787702&#xA;LONG=-122.407796&#xA;curl &amp;quot;http://api.sfpark.org/sfpark/rest/availabilityservice?lat=${LAT}&amp;amp;long=${LONG}&amp;amp;radius=0.25&amp;amp;uom=mile&amp;amp;response=json&amp;quot; | pbcopy&#xA;pbpaste | jq &#39;.AVL[] | select (.TYPE | contains(&amp;quot;OFF&amp;quot;))&#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;and get a response including records like:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;{&#xA;  &amp;quot;TYPE&amp;quot;: &amp;quot;OFF&amp;quot;,&#xA;  &amp;quot;OSPID&amp;quot;: &amp;quot;950&amp;quot;,&#xA;  &amp;quot;NAME&amp;quot;: &amp;quot;Union Square Garage&amp;quot;,&#xA;  &amp;quot;DESC&amp;quot;: &amp;quot;333 Post Street&amp;quot;,&#xA;  &amp;quot;INTER&amp;quot;: &amp;quot;Geary between Stockton &amp;amp; Powell&amp;quot;,&#xA;  &amp;quot;TEL&amp;quot;: &amp;quot;(415) 397-0631&amp;quot;,&#xA;  &amp;quot;OPHRS&amp;quot;: {&#xA;    &amp;quot;OPS&amp;quot;: {&#xA;      &amp;quot;FROM&amp;quot;: &amp;quot;7 Days/Wk&amp;quot;,&#xA;      &amp;quot;BEG&amp;quot;: &amp;quot;24 Hrs/Day&amp;quot;&#xA;    }&#xA;  },&#xA;  &amp;quot;OCC&amp;quot;: &amp;quot;381&amp;quot;,&#xA;  &amp;quot;OPER&amp;quot;: &amp;quot;670&amp;quot;,&#xA;  &amp;quot;PTS&amp;quot;: &amp;quot;1&amp;quot;,&#xA;  &amp;quot;LOC&amp;quot;: &amp;quot;-122.407447946,37.7876789151&amp;quot;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Pretty cool!&lt;/p&gt;</description>
    </item>
    <item>
      <title>osquery</title>
      <link>https://traviscj.com/blog/post/2018-01-12-osquery/</link>
      <pubDate>Fri, 12 Jan 2018 08:43:17 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2018-01-12-osquery/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve known about [osquery][] for a while, but recently spent some time digging around in it.&#xA;[osquery]: &lt;a href=&#34;https://osquery.io&#34;&gt;https://osquery.io&lt;/a&gt;&#xA;The basic idea is to provide a consistent SQL interface to a bunch of system data, instead of learning idiosyncrasies of individual commands (which themselves vary across operating systems).&#xA;My hacker buddy Sharvil has worked on osquery a fair bit and explained to me a couple years ago that it actually uses [sqlite][]&amp;rsquo;s [virtual table functionality][vtab] to provide the interface &amp;ndash; it&amp;rsquo;s a fascinating and brilliant project!&#xA;[sqlite]: &lt;a href=&#34;https://sqlite.org/&#34;&gt;https://sqlite.org/&lt;/a&gt;&#xA;[vtab]: &lt;a href=&#34;https://sqlite.org/vtab.html&#34;&gt;https://sqlite.org/vtab.html&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>.sqliterc</title>
      <link>https://traviscj.com/blog/post/2017-03-31-sqliterc/</link>
      <pubDate>Fri, 31 Mar 2017 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2017-03-31-sqliterc/</guid>
      <description>&lt;p&gt;I came across &lt;a href=&#34;https://blog.chmouel.com/2009/07/16/better-output-from-sqlite3-command-line/&#34;&gt;Better output from sqlite3 command line&lt;/a&gt;.&#xA;His &lt;code&gt;.sqliterc&lt;/code&gt; file did not work for me, but the simpler&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;.mode &amp;quot;column&amp;quot;&#xA;.headers on&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;did work nicely.&lt;/p&gt;&#xA;&lt;p&gt;I also found out that &lt;code&gt;brew install sqlite3&lt;/code&gt; does not install the &lt;code&gt;sqlite3&lt;/code&gt; binary to &lt;code&gt;$PATH&lt;/code&gt;, which stinks.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;sqlite3&lt;/code&gt; environment is still much less pleasant than the &lt;code&gt;mysql&lt;/code&gt; cli.&#xA;A few things on my wishlist:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;tab completion of tables, fields, keywords, and functions.&lt;/li&gt;&#xA;&lt;li&gt;nicer &lt;code&gt;.schema&lt;/code&gt; output &amp;ndash; I&amp;rsquo;ve just gotten really used to reading them in mysql output&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;It sounds like maybe &lt;a href=&#34;https://github.com/rogerbinns/apsw&#34;&gt;apsw&lt;/a&gt; can be something useful?&#xA;Or maybe Navicat? (but that&amp;rsquo;s expensive)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Useful homebrew formula</title>
      <link>https://traviscj.com/blog/post/2016-12-01-useful-brew-installs/</link>
      <pubDate>Thu, 01 Dec 2016 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2016-12-01-useful-brew-installs/</guid>
      <description>&lt;p&gt;Last week I was telling &lt;a href=&#34;https://pauljoos.com/&#34;&gt;Paul&lt;/a&gt; about things I have &lt;code&gt;brew install&lt;/code&gt;ed on my work laptop.&#xA;I pulled a &lt;a href=&#34;https://traviscj.com/ZeroBin/?4aad6b057954d42e#8VJqyn80/+WkRlFiwY3KGfQAYxKB+CKs6FhbdyZOP+s=&#34;&gt;full list&lt;/a&gt; as I was doing some upgrades and stuff this morning.&lt;/p&gt;&#xA;&lt;p&gt;Glancing over it a bit, here are some of my favorites/most usefuls:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;autojump&lt;/code&gt; for a usage-adjusting &lt;code&gt;cd&lt;/code&gt; &amp;ndash; given a partial string it just goes to the most-used directory with that prefix. I have &lt;code&gt;autojump&lt;/code&gt; aliased to &lt;code&gt;j&lt;/code&gt; to shorten it up even more.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;colordiff&lt;/code&gt; to make diffs/grep/etc nicer to look at in the terminal.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;coreutils&lt;/code&gt;/&lt;code&gt;dateutils&lt;/code&gt; is nice because it installs the GNU versions of a lot of standard linux commands like &lt;code&gt;du&lt;/code&gt; and &lt;code&gt;ls&lt;/code&gt; and &lt;code&gt;date&lt;/code&gt; that work a bit strange/differently on OSX.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;jq&lt;/code&gt; is amazing — lets you query JSON objects.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;ledger&lt;/code&gt; to manage bank balances in plain text.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;newsbeuter&lt;/code&gt; to subscribe to RSS feeds.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;osquery&lt;/code&gt; lets you do SQL-like queries to find out about the system it’s running on (sharvil did a bunch of work on it, actually…)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;terminal-notifier&lt;/code&gt; to pop up notifications from terminal/cron jobs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;tmux&lt;/code&gt; to have long-running terminal windows without having terminal windows open.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;watch&lt;/code&gt; instead of &amp;ldquo;some command&amp;rdquo;+uparrow+enter+uparrow+enter+&amp;hellip;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;wget&lt;/code&gt; as shorthand for “curl http://xyz/tuv.json &amp;gt; tuv.json” (old habits…),&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;youtube-dl&lt;/code&gt; for downloading youtube videos.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>debugging internet</title>
      <link>https://traviscj.com/blog/post/2014-10-28-debugging_internet/</link>
      <pubDate>Tue, 28 Oct 2014 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2014-10-28-debugging_internet/</guid>
      <description>&lt;p&gt;My standard plan for debugging internet connections:&lt;/p&gt;&#xA;&lt;ol start=&#34;0&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Can we reach stuff from some other device?&lt;/p&gt;&#xA;&lt;p&gt;Usually, connection problems are something like &amp;ldquo;My iPad isn&amp;rsquo;t working,&amp;rdquo; which is caused  by a flash of light in the sky, like when Swamp gas from a weather balloon gets trapped in a thermal pocket and reflects the light from Venus.&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;So try something other than your iPad on your WiFi to isolate whether it is a WiFi network problem or a &amp;ldquo;iPad&amp;quot;problem.&lt;/p&gt;</description>
    </item>
    <item>
      <title>mnemonicode-0.73</title>
      <link>https://traviscj.com/blog/post/2014-07-10-mnemonicode-0.73/</link>
      <pubDate>Thu, 10 Jul 2014 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2014-07-10-mnemonicode-0.73/</guid>
      <description>&lt;p&gt;I found&#x9;a really cool tool called &lt;a href=&#34;https://github.com/singpolyma/mnemonicode&#34;&gt;mnemonicode&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It basically encodes an&#x9;arbitrary string into some easily-sayable and understandble phrases:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;Traviss-MacBook-Pro% echo &amp;quot;hello world&amp;quot; | ./mnencode&#xA; Wordlist ver 0.7&#xA;square angel stone. blitz pacific tango. zebra shave basic&#xA;Traviss-MacBook-Pro% echo square angel stone. blitz pacific tango. zebra shave basic | ./mndecode&#xA;hello world&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>piping for fun and profit</title>
      <link>https://traviscj.com/blog/post/2014-05-29-piping_for_fun_and_profit/</link>
      <pubDate>Thu, 29 May 2014 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2014-05-29-piping_for_fun_and_profit/</guid>
      <description>&lt;p&gt;I recently discovered something pretty cool: groovy, and in particular groovysh. It lets you do cool stuff like run&#xA;JVM functions:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;➜  ~  groovysh&#xA;Groovy Shell (2.3.3, JVM: 1.8.0)&#xA;Type &#39;:help&#39; or &#39;:h&#39; for help.&#xA;-------------------------------------------------------------------------------&#xA;groovy:000&amp;gt; new Random().nextInt()&#xA;===&amp;gt; 909782845&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;But the sad part is that it seems pretty slow on my machine:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;➜  ~  time (echo :q | groovysh)&#xA;Groovy Shell (2.3.3, JVM: 1.8.0)&#xA;Type &#39;:help&#39; or &#39;:h&#39; for help.&#xA;-------------------------------------------------------------------------------&#xA;groovy:000&amp;gt; :q&#xA;( echo :q | groovysh; )  16.56s user 0.31s system 201% cpu 8.384 total&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;That&amp;rsquo;s more than 8 seconds just to start up and shut down a prompt that I might just run one command in!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Numerical Development on OSX (in the Command Line)</title>
      <link>https://traviscj.com/blog/post/2013-08-19-numerical_development_on_osx_in_the_command_line/</link>
      <pubDate>Mon, 19 Aug 2013 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2013-08-19-numerical_development_on_osx_in_the_command_line/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been working on C implementations of my research projects, which can of course be a perilous project. I&amp;rsquo;ve found some tools that make it hugely, hugely better.&lt;/p&gt;&#xA;&lt;h2 id=&#34;homebrew&#34;&gt;Homebrew&lt;/h2&gt;&#xA;&lt;p&gt;You can&amp;rsquo;t do a list like this without mentioning homebrew. You want homebrew instead of MacPorts or Fink or bailing twine and chewing gum or whatever else you were thinking about using. Just do it: You can find the homepage at brew.sh or just install with:&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZSH and scp/rsync globbing</title>
      <link>https://traviscj.com/blog/post/2010-05-25-zsh_and_scprsync_globbing/</link>
      <pubDate>Tue, 25 May 2010 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2010-05-25-zsh_and_scprsync_globbing/</guid>
      <description>&lt;p&gt;I finally got annoyed at typing&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;tjohnson&amp;gt; scp tcj:*txt .&#xA;zsh: no matches found: tcj:*txt&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I’d always fixed this by the up-CTRL-A-over-over-over-over-quote-CTRL-E-over-over-quote method, ie&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;tjohnson&amp;gt; scp &amp;#34;tcj:*txt&amp;#34; .&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;but the more proper and less annoying version is&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;tjohnson&amp;gt; scp tcj:\*txt .&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;However, in the spirit of inspired overkill, there are a couple other options. You can define some new aliases with&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;alias scp=&amp;#39;noglob scp&amp;#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;but that hardly counts as overkill, so instead I edited my .zshrc to include&lt;/p&gt;</description>
    </item>
    <item>
      <title>Minor OS X Shell Shortcomings</title>
      <link>https://traviscj.com/blog/post/2008-10-19-minor_os_x_shell_shortcomings/</link>
      <pubDate>Sun, 19 Oct 2008 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2008-10-19-minor_os_x_shell_shortcomings/</guid>
      <description>&lt;p&gt;In spite of the fact that a lot of people seem to loathe the colorized ls functionality, I sortof grew up on it(so to speak). OS X, by default, does not have this functionality(well, at least, GNU&amp;rsquo;s &amp;ndash;color option never works). I figured the quick and easy way to solve this was to install coreutils, but I found another option. It appears OSX included a version of ls that works with ls -G. The coreutils one is (by it&amp;rsquo;s virtue as a GNU tool) probably more feature-driven, but realiasing it as&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
