mirror of
https://github.com/samsonjs/samhuri.net.git
synced 2026-03-25 09:05:47 +00:00
update makefile & gitignore, remove old feed
This commit is contained in:
parent
1fdeacb411
commit
f11752d894
3 changed files with 4 additions and 268 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,3 +1,4 @@
|
|||
.bundle
|
||||
public/feed.xml
|
||||
www
|
||||
|
||||
|
|
|
|||
6
Makefile
6
Makefile
|
|
@ -1,12 +1,12 @@
|
|||
all: compile
|
||||
|
||||
compile: posts
|
||||
compile: rss
|
||||
@echo
|
||||
./bin/compile.sh
|
||||
|
||||
posts:
|
||||
rss:
|
||||
@echo
|
||||
./bin/posts.rb public public
|
||||
./bin/rss.rb public
|
||||
|
||||
publish: compile
|
||||
@echo
|
||||
|
|
|
|||
265
public/sjs.rss
265
public/sjs.rss
|
|
@ -1,265 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="http://samhuri.net/css/style.css" type="text/css"?><rss version="2.0"><channel><title>samhuri.net</title><description>words mean things</description><link>http://samhuri.net</link><pubDate>Mon, 03 Feb 2014 18:05:49 -0800</pubDate><item><title>Structure of an Ember app</title><description><div id="article">
|
||||
<p class="time">February 3, 2014</p>
|
||||
<p>I made a diagram of an Ember app. There&rsquo;s <a href="http://discuss.emberjs.com/t/diagram-of-an-ember-apps-structure/4060">a discussion about it</a> on the
|
||||
<a href="http://discuss.emberjs.com/">Ember Discussion Forum</a>. Here is the source file, created with OmniGraffle: <a href="https://www.dropbox.com/s/onnmn1oq096hv5f/Ember%20structure.graffle">Ember structure.graffle</a></p>
|
||||
|
||||
<p><img src="/f/ember-structure.png" alt="Structure of an Ember app" /></p>
|
||||
|
||||
</div>
|
||||
</description><pubDate>Mon, 03 Feb 2014 18:05:49 -0800</pubDate><author>sjs</author><link>http://samhuri.net/posts/2014.02.03-ember-structure</link><guid>http://samhuri.net/posts/2014.02.03-ember-structure</guid></item><item><title>Linky</title><description><div id="article">
|
||||
<p class="time">September 27, 2013</p>
|
||||
<h2>Send links from mobile devices to your computers.</h2>
|
||||
|
||||
<p>The last few months I&rsquo;ve been annoyed by my workflow for sending links from my touch devices to my computers. For example if I come across a cool Mac app or an open source project I want to check out, or anything along those lines. Until now I have been mailing links to my work or home addresses, or saving links in Instapaper. The problem with both of those is the same: I have to remember to check something when I arrive at the correct machine. It sounds trivial but I have been annoyed by it nonetheless.</p>
|
||||
|
||||
<p>This weekend I finally decided to scratch that itch and ended up writing much less code than I imagined to accomplish it in a perfectly acceptable way. The components are:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://mail.google.com">Gmail</a></li>
|
||||
<li><a href="http://ifttt.com">IFTTT (If This Then That)</a></li>
|
||||
<li><a href="https://dropbox.com">DropBox</a></li>
|
||||
<li><a href="https://github.com/samsonjs/NorthWatcher">NorthWatcher</a></li>
|
||||
<li><a href="https://github.com/samsonjs/bin/blob/master/linky-notify">a (short) Ruby program</a></li>
|
||||
<li><a href="https://github.com/alloy/terminal-notifier">terminal-notifier</a> (which displays <a href="http://support.apple.com/kb/HT5362">native notifications in OS X</a>)</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>Yup, that is a lot of moving parts. It is rather elegant in a <a href="http://www.catb.org/~esr/writings/taoup/">Unixy way</a> though.</p>
|
||||
|
||||
<p><em>I experimented with Gmail &rarr; IFTTT &rarr; <a href="http://boxcar.io">Boxcar</a> &rarr; <a href="http://growl.info/">Growl</a>, but Boxcar&rsquo;s Mac app is really rough and didn&rsquo;t seem to pick up new messages at all, let alone quickly, so I fell back to a solution with more parts.</em></p>
|
||||
|
||||
<h3>Gmail</h3>
|
||||
|
||||
<p><a href="https://mail.google.com">Gmail</a> allows you to append extra info to your email address in the username, which you can use for filtering and labeling. I send links to sami.samhuri+linky@gmail.com and then filter those messages out of my inbox, as well as applying the label <em>linky</em>. Using email as the entry point means that basically every app I use already supports sending links in this way.</p>
|
||||
|
||||
<h3>IFTTT</h3>
|
||||
|
||||
<p><a href="http://ifttt.com">IFTTT (If This Then That)</a> can wire up services, so that events that happen in one place can trigger an action elsewhere, passing along some info about the event along with it. In this case when a new email arrives in my Gmail account with the label <em>linky</em> then I create a text file in Dropbox that contains two lines: the title, followed by the link itself.</p>
|
||||
|
||||
<p>For example, the following lines would be created in a file at <code>~/Dropbox/Linky/Ruxton/&lt;generated filename&gt;.txt</code> for my machine named <a href="http://en.wikipedia.org/wiki/Ruxton_Island">Ruxton</a>.</p>
|
||||
|
||||
<pre><code>Callbacks as our Generations' Go To Statement
|
||||
http://tirania.org/blog/archive/2013/Aug-15.html
|
||||
</code></pre>
|
||||
|
||||
<p>The filename field is defined as:</p>
|
||||
|
||||
<pre><code>{FromAddress}-{ReceivedAt}
|
||||
</code></pre>
|
||||
|
||||
<p>And the content is:</p>
|
||||
|
||||
<pre><code>{Subject}&lt;br&gt;
|
||||
{BodyPlain}&lt;br&gt;
|
||||
</code></pre>
|
||||
|
||||
<p>That means that when you email links, the subject should contain the title and the body should contain the link on the first line. It&rsquo;s ok if there&rsquo;s stuff after the body (like your signature), they will be ignored later.</p>
|
||||
|
||||
<p>I create one recipe in IFTTT for each machine that I want links to appear on. You could get fancy and have different Gmail labels for individual machines, or aliases, groups, etc. I&rsquo;ve kept it simple and just have every link I send go to both my home &amp; work computers.</p>
|
||||
|
||||
<h3>Dropbox</h3>
|
||||
|
||||
<p>Dropbox is fantastic. My files are <a href="http://5by5.tv/b2w/37">never not everywhere</a>. IFTTT creates the file in Dropbox, and then Dropbox makes sure it hits all of my machines. Did I mention that Dropbox is awesome? It&rsquo;s awesome.</p>
|
||||
|
||||
<h3>NorthWatcher</h3>
|
||||
|
||||
<p>This is a quick and dirty thing I whipped up a couple of years ago, and now it&rsquo;s come in handy again. It&rsquo;s a program that watches directories for added and removed files, and then launches a program that can then react to the change. In this case, on each machine I want notifications on, I have it watch the Dropbox folder where IFTTT creates the text files. e.g. <code>~/Dropbox/Linky/Ruxton</code></p>
|
||||
|
||||
<p>It has a text configuration file kind of like <a href="http://en.wikipedia.org/wiki/Cron">cron</a>. Here&rsquo;s mine from Ruxton:</p>
|
||||
|
||||
<pre><code>+ Dropbox/Linky/Ruxton ruby /Users/sjs/bin/linky-notify
|
||||
</code></pre>
|
||||
|
||||
<p>That tells NorthWatcher to run <code>ruby /Users/sjs/bin/linky-notify</code> when files are added to the directory <code>~/Dropbox/Linky/Ruxton</code>.</p>
|
||||
|
||||
<p><em><a href="https://github.com/samsonjs/NorthWatcher">NorthWatcher is on GitHub</a> and <a href="https://npmjs.org">npm</a>. Install <a href="http://nodejs.org">node</a> and then run <code>npm install -g northwatcher</code>. After creating the config file at <code>~/.northwatcher</code> you can run it automatically using <a href="https://gist.github.com/samsonjs/6657795">this launchd config file</a>. Drop that in <code>~/Library/LaunchAgents/net.samhuri.northwatcher.plist</code>. Don&rsquo;t forget to update the working directory path, and run <code>launchctl load ~/Library/LaunchAgents/net.samhuri.northwatcher.plist</code> to load it up (afterwards it will load on boot).</em></p>
|
||||
|
||||
<h3>A Ruby program, and terminal-notifier</h3>
|
||||
|
||||
<p>Finally, we have the last two components of the system. A <a href="https://github.com/samsonjs/bin/blob/master/linky-notify">short Ruby program (<code>/Users/sjs/bin/linky-notify</code>)</a> that reads in all the files NorthWatcher reports as added, and uses <code>terminal-notifier</code> to show a native OS X notification for each link. After displaying the notification it moves the text file into a subfolder named <code>Archive</code>, so I have a record of all the links I have sent myself.</p>
|
||||
|
||||
<p>You can get <code>terminal-notifier</code> with <a href="http://brew.sh">homebrew</a> in a few seconds: <code>brew install terminal-notifier</code>. After you have used <code>terminal-notifier</code> you will be able to go into <em>Notifications</em> in <em>System Preferences</em> and change it from <em>Banners</em> to <em>Alerts</em>. <em>Banners</em> are transient, while <em>Alerts</em> are persistent and have action buttons: <code>Show</code> and <code>Close</code>.</p>
|
||||
|
||||
<h2>Cool story, bro</h2>
|
||||
|
||||
<p>It may not be exciting, but as someone who typically suffers from <a href="http://en.wikipedia.org/wiki/Not_invented_here">NIH syndrome</a> and writes too much from scratch, I found it pretty rewarding to cobble something seemingly complicated together with a bunch of existing components. It didn&rsquo;t take very long and only involved about 10 lines of code. It&rsquo;s not exactly what I wanted but it&rsquo;s surprisingly close. Success!</p>
|
||||
|
||||
</div>
|
||||
</description><pubDate>Fri, 27 Sep 2013 21:49:02 -0700</pubDate><author>sjs</author><link>http://samhuri.net/posts/2013.09.27-linky</link><guid>http://samhuri.net/posts/2013.09.27-linky</guid></item><item><title>Zelda Tones for iOS</title><description><div id="article">
|
||||
<p class="time">March 6, 2013</p>
|
||||
<h2>Zelda</h2>
|
||||
|
||||
|
||||
|
||||
|
||||
<p>
|
||||
<a href="http://mattgemmell.com">Matt Gemmell</a> recently shared some
|
||||
<a href="http://mattgemmell.com/2013/03/05/iphone-5-super-nintendo-wallpapers/">sweet Super Nintendo wallpapers for iPhone 5</a>.
|
||||
Although I don't have an iPhone 5 I was happy to snap them up and crop them for my 4S.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p>
|
||||
If you like that sort of thing then you might want these tones that I whipped up. The first pack is a few Zelda
|
||||
ringtones along with a few more SMS tones. Most of them are from
|
||||
<a href="http://en.wikipedia.org/wiki/The_Legend_of_Zelda:_A_Link_to_the_Past">A Link to the Past</a>.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p align="center"><a href="/f/zelda-tones.zip">Get the Zelda tones</a></p>
|
||||
|
||||
|
||||
|
||||
|
||||
<ul>
|
||||
<li><audio controls><source src="/f/zelda-tones/Zelda Theme.mp3" type="audio/mpeg"></audio> Theme</li>
|
||||
<li><audio controls><source src="/f/zelda-tones/Zelda Overture.mp3" type="audio/mpeg"></audio> Overworld overture</li>
|
||||
<li><audio controls><source src="/f/zelda-tones/Zelda Song of Storms.mp3" type="audio/mpeg"></audio> Song of Storms</li>
|
||||
<li><audio controls><source src="/f/zelda-tones/Zelda Secret.mp3" type="audio/mpeg"></audio> Secret</li>
|
||||
<li><audio controls><source src="/f/zelda-tones/Zelda Item.mp3" type="audio/mpeg"></audio> Item</li>
|
||||
<li><audio controls><source src="/f/zelda-tones/Zelda Achievement.mp3" type="audio/mpeg"></audio> Achievement</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2>Pacman</h2>
|
||||
|
||||
|
||||
|
||||
|
||||
<p>The second pack is two Pacman tones.</p>
|
||||
|
||||
|
||||
<p align="center"><a href="/f/pacman-tones.zip">Get the Pacman tones</a></p>
|
||||
|
||||
|
||||
|
||||
|
||||
<ul>
|
||||
<li><audio controls><source src="/f/pacman-tones/Pacman.mp3" type="audio/mpeg"></audio> Pacman starts</li>
|
||||
<li><audio controls><source src="/f/pacman-tones/Pacman Dies.mp3" type="audio/mpeg"></audio> Pacman dies</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2>O Fortuna</h2>
|
||||
|
||||
|
||||
|
||||
|
||||
<p>
|
||||
Okay okay, one last one.
|
||||
<a href="http://en.wikipedia.org/wiki/O_Fortuna">O Fortuna</a> from
|
||||
<a href="http://en.wikipedia.org/wiki/Carmina_Burana">Carmina Burana</a>,
|
||||
composed by <a href="http://en.wikipedia.org/wiki/Carl_Orff">Carl Orff</a>,
|
||||
performed by the <a href="http://www.lpo.co.uk">London Philharmonic Orchestra</a>.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<ul><li><audio controls><source src="/f/Carmina Burana - O Fortuna.mp3" type="audio/mpeg"></audio> O Fortuna</li></ul>
|
||||
|
||||
|
||||
|
||||
|
||||
<p align="center"><a href="/f/Carmina Burana - O Fortuna.m4r">Get the O Fortuna ringtone</a></p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p>Enjoy!</p>
|
||||
|
||||
|
||||
</div>
|
||||
</description><pubDate>Wed, 06 Mar 2013 18:51:13 -0800</pubDate><author>sjs</author><link>http://samhuri.net/posts/2013.03.06-zelda-tones-for-ios</link><guid>http://samhuri.net/posts/2013.03.06-zelda-tones-for-ios</guid></item><item><title>Fujitsu has lost their mind →</title><description><div id="article">
|
||||
<p class="time">January 19, 2012</p>
|
||||
<p>Does this even warrant any comments on why it&rsquo;s already a massive failure?
|
||||
The many, many drawbacks seem so apparent I cannot believe this escaped
|
||||
from their drawing board.</p>
|
||||
|
||||
<p><a class="permalink" href="http://samhuri.net/posts/2012.01.19-fujitsu-has-lost-their-mind">&infin;</a></p>
|
||||
</div>
|
||||
</description><pubDate>Thu, 19 Jan 2012 20:05:33 -0800</pubDate><author></author><link>http://tablet-news.com/2012/01/17/fujitsu-lifebook-2013-concept-incorporates-a-tablet-for-a-keyboard-phone-and-digital-camera/</link><guid>http://samhuri.net/posts/2012.01.19-fujitsu-has-lost-their-mind</guid></item><item><title>SOPA lives - and MPAA calls protests an "abuse of power" →</title><description><div id="article">
|
||||
<p class="time">January 17, 2012</p>
|
||||
<blockquote><p>rather than coming to the table to find solutions to a problem that all
|
||||
now seem to agree is very real and damaging.</p></blockquote>
|
||||
|
||||
<p>No. All most certainly do <em>not</em> agree.</p>
|
||||
|
||||
<blockquote><p>It is also an abuse of power given the freedoms these companies enjoy in
|
||||
the marketplace today. It&rsquo;s a dangerous and troubling development when the
|
||||
platforms that serve as gateways to information intentionally skew the
|
||||
facts to incite their users in order to further their corporate interests.</p></blockquote>
|
||||
|
||||
<p>This must be a joke. It&rsquo;s a joke, right? Please tell me this joker is
|
||||
joking. The hypocrisy is too much.</p>
|
||||
|
||||
<blockquote><p>stop the hyperbole and PR stunts and engage in meaningful efforts to
|
||||
combat piracy.</p></blockquote>
|
||||
|
||||
<p>There is absolutely nothing reasonable that anyone can do to &ldquo;combat
|
||||
piracy&rdquo;. Digital copies are cheap. Adapt or die.</p>
|
||||
|
||||
<p>The VCR did not kill media industries. Nor the cassette, CD, DVD. Why
|
||||
should anyone believe that computers and the Internet are going to kill
|
||||
music and movies?</p>
|
||||
|
||||
<p>If the MPAA displayed even a shred of sanity maybe they would be taken
|
||||
seriously in their efforts to curb piracy. The biggest problem I can see is
|
||||
that studies have given us evidence that they are not hurt by it at all.
|
||||
Their tactic of choice seems to be to loudly decry &ldquo;Nuh-uh! Piracy
|
||||
<em>does</em> hurt us!&rdquo; and then strong arming everyone worldwide while suing anyone and
|
||||
everyone. If times are so tough maybe they should cut some of their budgets
|
||||
for lawyers and lobbyists.</p>
|
||||
|
||||
<p><a class="permalink" href="http://samhuri.net/posts/2012.01.17-sopa-lives-and-mpaa-calls-protests-an-abuse-of-power">&infin;</a></p>
|
||||
</div>
|
||||
</description><pubDate>Tue, 17 Jan 2012 02:46:40 -0800</pubDate><author></author><link>http://arstechnica.com/tech-policy/news/2012/01/sopa-livesand-mpaa-calls-protests-an-abuse-of-power.ars</link><guid>http://samhuri.net/posts/2012.01.17-sopa-lives-and-mpaa-calls-protests-an-abuse-of-power</guid></item><item><title>Recovering From a Computer Science Education →</title><description><div id="article">
|
||||
<p class="time">January 17, 2012</p>
|
||||
<p>Something to keep in mind.</p>
|
||||
|
||||
<p><a class="permalink" href="http://samhuri.net/posts/2012.01.17-recovering-from-a-computer-science-education">&infin;</a></p>
|
||||
</div>
|
||||
</description><pubDate>Tue, 17 Jan 2012 00:00:00 -0800</pubDate><author></author><link>http://prog21.dadgum.com/123.html</link><guid>http://samhuri.net/posts/2012.01.17-recovering-from-a-computer-science-education</guid></item><item><title>The $40 Standup Desk →</title><description><div id="article">
|
||||
<p class="time">January 9, 2012</p>
|
||||
<blockquote><p>Ultimately, I decided I might as well just do something cheap for now. So I built my own. I had thinking about doing it for a while when my coworker Steve Smith built his desk. After seeing his, I was convinced this was what I wanted to do. It turns out, the cheap option is pretty awesome.</p></blockquote>
|
||||
|
||||
<p>This looks great. Might have to consider it when or if I get a desk.</p>
|
||||
|
||||
<p><a class="permalink" href="http://samhuri.net/posts/2012.01.09-the-40-standup-desk">&infin;</a></p>
|
||||
</div>
|
||||
</description><pubDate>Mon, 09 Jan 2012 00:16:40 -0800</pubDate><author></author><link>http://opensoul.org/blog/archives/2012/01/09/the-40-standup-desk/</link><guid>http://samhuri.net/posts/2012.01.09-the-40-standup-desk</guid></item><item><title>Yak shaving →</title><description><div id="article">
|
||||
<p class="time">January 4, 2012</p>
|
||||
<p>The best plain-english explanation of yak shaving I have seen.</p>
|
||||
|
||||
<p><a class="permalink" href="http://samhuri.net/posts/2012.01.04-yak-shaving">&infin;</a></p>
|
||||
</div>
|
||||
</description><pubDate>Wed, 04 Jan 2012 13:24:00 -0800</pubDate><author></author><link>http://blog.hasmanythrough.com/2012/1/4/yak-shaving</link><guid>http://samhuri.net/posts/2012.01.04-yak-shaving</guid></item><item><title>The Broken Pixel Theory →</title><description><div id="article">
|
||||
<p class="time">December 25, 2011</p>
|
||||
<blockquote><p>For example, a clean desk tends to stay clean until a piece of paper stays on it for a couple of days. Similarly, I=92m much less likely to care about a 2-3 pixel UI bug when the whole UI is a mess.</p></blockquote>
|
||||
|
||||
<p>Great insight from Majd Taby.</p>
|
||||
|
||||
<p><a class="permalink" href="http://samhuri.net/posts/2011.12.25-the-broken-pixel-theory">&infin;</a></p>
|
||||
</div>
|
||||
</description><pubDate>Sun, 25 Dec 2011 18:54:20 -0800</pubDate><author></author><link>http://jtaby.com/2011/12/25/the-broken-pixel-theory.html</link><guid>http://samhuri.net/posts/2011.12.25-the-broken-pixel-theory</guid></item><item><title>New Release of Firefox for Android, Optimized for Tablets →</title><description><div id="article">
|
||||
<p class="time">December 22, 2011</p>
|
||||
<blockquote><p>On the other hand, watch this video. Even in Mozilla&rsquo;s own demo &ndash; which presumably puts Firefox for Android in its best light &ndash; doesn&rsquo;t the whole thing look a bit herky-jerky, in terms of touch responsiveness and scrolling smoothness?</p></blockquote>
|
||||
|
||||
<p>Surely they could do better on iOS though. I have faith in the Firefox
|
||||
team to provide a good experience because they have done so in the
|
||||
past. Modern versions of Firefox are excellent.</p>
|
||||
|
||||
<p><a href="http://blog.mozilla.com/blog/2011/12/20/new-firefox-for-android-ex=%0Aperience-optimized-for-tablets/">New Release of Firefox for Android, Optimized for
|
||||
Tablets</a></p>
|
||||
|
||||
<p><a class="permalink" href="http://samhuri.net/posts/2011.12.22-new-release-of-firefox-for-android-optimized-for-tablets">&infin;</a></p>
|
||||
</div>
|
||||
</description><pubDate>Sun, 25 Dec 2011 18:54:11 -0800</pubDate><author></author><link>http://daringfireball.net/linked/2011/12/22/firefox-android</link><guid>http://samhuri.net/posts/2011.12.22-new-release-of-firefox-for-android-optimized-for-tablets</guid></item></channel></rss>
|
||||
Loading…
Reference in a new issue