<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>シェルスクリプト on dyama&#39;s page</title>
		<link>https://dyama.org/tag/%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/</link>
		<description>Recent content in シェルスクリプト on dyama&#39;s page</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Wed, 15 Jul 2015 22:55:54 +0900</lastBuildDate>
		
			<atom:link href="https://dyama.org/tag/%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>常駐監視型 Twitter メディアダウンローダー「berryjack/win32」</title>
				<link>https://dyama.org/2015/07/2397/</link>
				<pubDate>Wed, 15 Jul 2015 22:55:54 +0900</pubDate>
				<guid>https://dyama.org/2015/07/2397/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://dyama.org/wp-content/uploads/2015/07/bjw32.jpg&#34;&gt;&lt;img src=&#34;https://dyama.org/wp-content/uploads/2015/07/bjw32.jpg&#34; alt=&#34;bjw32&#34; class=&#34;img-center&#34; loading=&#34;lazy&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/dyama/berryjack&#34;&gt;Twitter の常駐監視型メディアダウンローダー berryjack&lt;/a&gt; の Windows 移植版を作成しました。品質無保証の人柱版として公開します。&lt;/p&gt;&#xA;&lt;h2 id=&#34;概要&#34;&gt;概要&lt;/h2&gt;&#xA;&lt;p&gt;監視対象となるアカウントを定期的に巡回して、メディアファイル(画像、動画ファイル)が投稿されていたら自動的にダウンロードしてくれます。投稿されたメディアファイルを一括ダウンロードする点では、他の Twitter ダウンローダーと変わりがありませんが、起動しておくだけで複数のアカウントを定期的にチェックしてくれるところが大きな特徴です。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ツイキャス録画スクリプト</title>
				<link>https://dyama.org/2015/03/2156/</link>
				<pubDate>Tue, 03 Mar 2015 00:00:08 +0900</pubDate>
				<guid>https://dyama.org/2015/03/2156/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://dyama.org/wp-content/uploads/Twitter_logo_blue.png&#34; alt=&#34;&#34; class=&#34;img-center&#34; loading=&#34;lazy&#34;&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;リアルタイム動画配信サービス「&lt;a href=&#34;http://twitcasting.tv/&#34;&gt;ツイキャス&lt;/a&gt;」の録画をしてくれるシェルスクリプトを書いてみました。…と言っても、ffmpeg の入力ソースに食わせるだけですので、スクリプトというよりは例によって自分の覚え書きのようなものになっています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;twitcast.sh&lt;/strong&gt; (&lt;a href=&#34;https://gist.github.com/dyama/c5b05b28abf83a663798&#34;&gt;Gist&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#!/bin/bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# coding: utf-8&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# twitcast.sh by dyama&lt;/span&gt;&#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;&lt;span style=&#34;color:#cf222e&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;[&lt;/span&gt; -n &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#953800&#34;&gt;$1&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#cf222e&#34;&gt;then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#953800&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;$(&lt;/span&gt;&lt;span style=&#34;color:#6639ba&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#953800&#34;&gt;$1&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; sed &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;s|^.*/||g&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#953800&#34;&gt;fname&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;${&lt;/span&gt;&lt;span style=&#34;color:#953800&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;_&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;$(&lt;/span&gt;date +&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;%F_%H-%M-%S&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;.ts&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ffmpeg -i &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;http://twitcasting.tv/&lt;/span&gt;&lt;span style=&#34;color:#953800&#34;&gt;$id&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;/metastream.m3u8&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -vcodec copy -acodec copy -f mpegts &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#953800&#34;&gt;$fname&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;else&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#6639ba&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;usage: &lt;/span&gt;&lt;span style=&#34;color:#953800&#34;&gt;$0&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt; twitcasting_account&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;fi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;使い方は、実行権限を付与して&lt;/p&gt;</description>
			</item>
			<item>
				<title>MD5ハッシュ値をURLセーフな文字列に変換</title>
				<link>https://dyama.org/2015/01/2110/</link>
				<pubDate>Sun, 25 Jan 2015 20:56:37 +0900</pubDate>
				<guid>https://dyama.org/2015/01/2110/</guid>
				<description>&lt;p&gt;大量に保存した画像ファイルなどの重複潰しも兼ねて、ファイル名を MD5 ハッシュ値にリネームして保存しています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/dyama/hashmv&#34;&gt;dyama/hashmv · GitHub&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;まったく同一のファイルであれば、ハッシュ値が同一になりますので、ファイル名が同一になります。上のスクリプト「hashmv」ではリネーム時に同一ファイルを上書きしますので、結果、重複ファイルを除去することができます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Twitterの画像を一括ダウンロードするシェルスクリプト「berryjack」を書いた。</title>
				<link>https://dyama.org/2014/10/2087/</link>
				<pubDate>Sat, 25 Oct 2014 11:00:37 +0900</pubDate>
				<guid>https://dyama.org/2014/10/2087/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://dyama.org/wp-content/uploads/Twitter_logo_blue.png&#34; alt=&#34;&#34; class=&#34;img-center&#34; loading=&#34;lazy&#34;&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;以下、スクリプトの解説が中心です。Windows で手軽に使いたい方は &lt;a href=&#34;https://dyama.org/2015/07/2397/&#34;&gt;berryjack/win32&lt;/a&gt; をダウンロードしてください。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;数年前、知人より「Twitterの特定アカウントで公開されている画像ファイルを一括ダウンロードするスクリプトがないかな」と相談を受けて、Perl で&lt;code&gt;Net::Twitter::Lite&lt;/code&gt;を使ってがりがりコーディングしました。そして、今年になってから Ruby を使う機会が増えたため、そのコードを Ruby で書き直してみました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>シェルスクリプトによる簡易Wikiシステム</title>
				<link>https://dyama.org/2014/05/1280/</link>
				<pubDate>Fri, 16 May 2014 23:55:19 +0900</pubDate>
				<guid>https://dyama.org/2014/05/1280/</guid>
				<description>&lt;p&gt;以前、PQI Air Card でも動く簡易 Wiki を書いてみました。PQI Air Card 自体、標準で Perl が動いていますし実用性はあんまりないですが、シェルスクリプトベースでも簡単に出来てしまいます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ANSI エスケープシーケンスについて</title>
				<link>https://dyama.org/2014/04/1234/</link>
				<pubDate>Sat, 05 Apr 2014 00:10:30 +0900</pubDate>
				<guid>https://dyama.org/2014/04/1234/</guid>
				<description>&lt;p&gt;端末の色やカーソル制御を行うには、curses を利用するのが一般的ですが、ライブラリを利用しなくとも、シェル経由である決まりのエスケープシーケンス文字列を端末に投げることにより、色やカーソル制御を行うことができます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>シェルスクリプトでCGIチャットを書いてみました。</title>
				<link>https://dyama.org/2014/03/1178/</link>
				<pubDate>Sun, 09 Mar 2014 00:00:02 +0900</pubDate>
				<guid>https://dyama.org/2014/03/1178/</guid>
				<description>&lt;p&gt;CGIは、標準入出力と環境変数を用いて動的コンテンツを生成する仕組みなので、これらを扱うことができるプログラムだったら記述言語は問いません。CGIと言えば「CGI/Perl」の組み合わせだけが突出して有名ですが、CGI/Cだって世の中にはたくさんあります。 さらに極端な事を言えば、CGI/awkだってCGI/shだって不可能ではありません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>音声合成エンジン Open JTalk について</title>
				<link>https://dyama.org/2013/06/820/</link>
				<pubDate>Sat, 01 Jun 2013 00:00:11 +0900</pubDate>
				<guid>https://dyama.org/2013/06/820/</guid>
				<description>&lt;p&gt;動画の生放送サイトを見ていると、リアルタイムに視聴者から来るコメントを合成音声によって読み上げている人が増えているようで、合成音声のジャンルも賑わってきたようです。ボーカロイドの初音ミクが登場するよりも前、AquesTalk をいじってみて調整次第ではかなり「聞ける」音声になるんだなあ、と実感した覚えがあります。 自分は合成音声を入れた動画を作成したり、配信したりするわけではないのですが、IRCのログやTwitterのタイムラインの読み上げ程度には使ってみたくなりました。 ということで、今更感が拭えませんが、Open JTalkを使ってみた時のメモを書いておきます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>自炊ZIPをスマホや電子ブックリーダー向けに最適化する</title>
				<link>https://dyama.org/2013/05/816/</link>
				<pubDate>Sat, 11 May 2013 00:00:20 +0900</pubDate>
				<guid>https://dyama.org/2013/05/816/</guid>
				<description>&lt;p&gt;去る2月、楽天の Kobo を中古購入しました。投げ売り価格の2500円でした。私は風呂でよく本を読むので、浴槽に落としてもそんなに凹まない安価な端末を探していました。期待をまるでしていない、という意味では Kobo は最高の端末です。&lt;/p&gt;</description>
			</item>
			<item>
				<title>tumblrの画像を一括ダウンロードするスクリプト</title>
				<link>https://dyama.org/2013/02/689/</link>
				<pubDate>Sat, 02 Feb 2013 00:00:26 +0900</pubDate>
				<guid>https://dyama.org/2013/02/689/</guid>
				<description>&lt;p&gt;tumblrの画像を一括ダウンロードするbash向けシェルスクリプトを書いてみました。&lt;/p&gt;&#xA;&lt;p&gt;あまり効率的ではないですが、投稿を1ページずつ取得して、含まれる画像を抜き出しています。また、ダウンロードが完了したらZIPファイルに固めてくれます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>PDFを連番画像ファイルを含むZIP圧縮ファイルに変換</title>
				<link>https://dyama.org/2012/12/650/</link>
				<pubDate>Sun, 30 Dec 2012 00:00:16 +0900</pubDate>
				<guid>https://dyama.org/2012/12/650/</guid>
				<description>&lt;p&gt;安価な Android 端末が出回っています。&lt;br&gt;&#xA;&lt;a href=&#34;http://www.amazon.co.jp/gp/product/B007OZO03M/ref=as_li_ss_tl?ie=UTF8%EF%BF%BDcamp=247%EF%BF%BDcreative=7399%EF%BF%BDcreativeASIN=B007OZO03M%EF%BF%BDlinkCode=as2%EF%BF%BDtag=dyama0c-22&#34;&gt;Amazon キンドル&lt;/a&gt;が発売されて、投げ売り状態だった楽天の Kobo が、新品でも3000円程度で流通するようになりました。&lt;br&gt;&#xA;ようやく、電子書籍を読むというライフスタイルが日本にも定着するんでしょうか。今後が楽しみです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Bash, Perl, Ruby, Pythonで正規表現置換</title>
				<link>https://dyama.org/2012/10/464/</link>
				<pubDate>Tue, 23 Oct 2012 23:35:38 +0900</pubDate>
				<guid>https://dyama.org/2012/10/464/</guid>
				<description>&lt;p&gt;前回の&lt;a href=&#34;https://dyama.org/2012/10/386/&#34;&gt;C++/boost&lt;/a&gt;、&lt;a href=&#34;https://dyama.org/2012/10/456/&#34;&gt;.NET&lt;/a&gt;に加え、各種インタプリタ言語でも同じ動作をするスクリプトを書いてみました。&lt;/p&gt;&#xA;&lt;h1 id=&#34;シェルスクリプトbash&#34;&gt;シェルスクリプト(bash)&lt;/h1&gt;&#xA;&lt;p&gt;シェルスクリプトはそもそもグルー言語ですので、他のコマンドを呼び出して処理をすることが一般的です。下のサンプルではsedコマンドで置換処理をしています。bashだと正規表現マッチングは可能なので、ガリガリとスクリプトを書けばsedを使わずに実現できるかもしれません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>NEC Life Touch NOTE に Debian GNU/Linux を導入</title>
				<link>https://dyama.org/2012/03/302/</link>
				<pubDate>Mon, 19 Mar 2012 00:00:21 +0900</pubDate>
				<guid>https://dyama.org/2012/03/302/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/gp/product/B004NWFZ24/ref=as_li_ss_tl?ie=UTF8%EF%BF%BDcamp=247%EF%BF%BDcreative=7399%EF%BF%BDcreativeASIN=B004NWFZ24%EF%BF%BDlinkCode=as2%EF%BF%BDtag=dyama0c-22&#34;&gt;NECのAndroid端末「Life Touch NOTE」&lt;/a&gt;にDebian GNU/Linux をインストールした時の覚え書きです。&lt;/p&gt;&#xA;&lt;h2 id=&#34;root-権限の奪還&#34;&gt;root 権限の奪還&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://dyama.org/2012/03/298/&#34;&gt;ホストマシンにAndroid SDKのインストール&lt;/a&gt;したら、USBでホストとLTNをつないで、以下の手順でroot権限を取り返します。&lt;/p&gt;</description>
			</item>
			<item>
				<title>カセットテープにデータを記録</title>
				<link>https://dyama.org/2012/03/52/</link>
				<pubDate>Mon, 19 Mar 2012 00:00:06 +0900</pubDate>
				<guid>https://dyama.org/2012/03/52/</guid>
				<description>&lt;p&gt;人生で初めて使い始めた Macintosh には、既に内蔵ハードディスク、CD ドライブ、FD ドライブが搭載されていたので、コンパクトカセット(音楽カセットテープ)を補助記憶媒体としてリアルタイムに使った事がありません。父が使っていた MZ-700 を譲り受けて持っていますが、肝心のデータレコーダのゴムが劣化していて、まともに使えないのが残念です。&lt;br&gt;&#xA;中学生の頃までコンパクトカセットを使って、よくラジオで流れていた好きな音楽を録音していました。そんなコンパクトカセットにデジタルデータが記録されるのが、ひどくアナログな雰囲気だけど、ちゃんとデジタルなところが魅力的で、試してみたいなあ、と考えて、MP3 プレイヤーが 500 円で買えるご時世に、安いステレオラジカセを購入した事もありました。&lt;br&gt;&#xA;古いコンピュータのエミュレータ環境のツールの一つとして、コンパクトカセットの情報をデジタルデータに変換するコンバータ・ソフトは、Windows ではよく見かけていました。&lt;br&gt;&#xA;Linux で使えるものはないな、と思いリポジトリを漁ってみましたが、需要がなかった模様。&lt;br&gt;&#xA;アマチュア無線関連のツールや本物(？)のテープレコーダ用のツール( tar )はあっても、民生用カセット向けのツールは乏しいみたいです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Android SDK の導入</title>
				<link>https://dyama.org/2012/03/298/</link>
				<pubDate>Sun, 18 Mar 2012 00:00:21 +0900</pubDate>
				<guid>https://dyama.org/2012/03/298/</guid>
				<description>&lt;p&gt;Ubuntu 11.10 に NEC LifeTouch NOTE をつないで、いじくる時に操作したメモです。基本的には、以下の手順で OK なはず。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;android-sdk_r*-linux.tgz のダウンロード、解凍。&lt;/li&gt;&#xA;&lt;li&gt;tools/android update sdk --no-ui の実行。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;下記では、Java SDK をインストールしていなかったので、その導入からしています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Xv6を使ってみる</title>
				<link>https://dyama.org/2011/12/131/</link>
				<pubDate>Fri, 16 Dec 2011 00:00:45 +0900</pubDate>
				<guid>https://dyama.org/2011/12/131/</guid>
				<description>&lt;p&gt;Xv6 というのは、マサチューセッツ工科大の院生向け教材として、UNIX V6 を ANSI の C で書き直し、x86 CPU 向けに書き直したオペレーティング・システムです。&lt;/p&gt;&#xA;&lt;p&gt;講義用の資料とソースコード、ビルド環境( MakeFile や QEMU オプション )などの一式が、無料で公開・配布されています。 詳しい情報は、下記のページを参考にしてください。&lt;/p&gt;</description>
			</item>
			<item>
				<title>端末キャプチャツール「captty」</title>
				<link>https://dyama.org/2011/10/87/</link>
				<pubDate>Mon, 24 Oct 2011 00:00:54 +0900</pubDate>
				<guid>https://dyama.org/2011/10/87/</guid>
				<description>&lt;p&gt;筑波大の古橋貞之(viver)氏が開発されたターミナルのキャプチャツール&lt;a href=&#34;http://d.hatena.ne.jp/viver/20080313/p2&#34;&gt;captty&lt;/a&gt;を使ってみました。ターミナルサイズの動的な変更のサポートに対応しています。&lt;/p&gt;&#xA;&lt;p&gt;また、氏の提供されているサービス &lt;a href=&#34;http://www.partty.org/about/ja&#34;&gt;partty!.org&lt;/a&gt;を組み合わせる事により、ターミナルの内容を他の人とシェアしたり、ブログに貼り付ける事が出来るなど素晴しい仕様。&lt;/p&gt;&#xA;&lt;h1 id=&#34;準備&#34;&gt;準備&lt;/h1&gt;&#xA;&lt;p&gt;github より、cloneして、ビルドします。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/frsyuki/captty.git&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./autogen.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./configure&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make all&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;エラーが発生しなければ、src ディレクトリにバイナリが生成されます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>JAN コードのチェックスクリプト</title>
				<link>https://dyama.org/2011/09/60/</link>
				<pubDate>Tue, 27 Sep 2011 00:00:30 +0900</pubDate>
				<guid>https://dyama.org/2011/09/60/</guid>
				<description>&lt;p&gt;財団法人 流通システム開発センターで公開されている &lt;a href=&#34;http://www.dsri.jp/jan/check_digit.htm&#34;&gt;JAN コードの仕様&lt;/a&gt;に基き、与えられた文字列が正しい JAN コードであるか否かを返すシェルスクリプト関数です。&lt;/p&gt;&#xA;&lt;h2 id=&#34;janコードの仕様&#34;&gt;JANコードの仕様&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;0 から 9 までの数字 8 桁または 13 桁から構成される。&lt;/li&gt;&#xA;&lt;li&gt;桁数に関わらず、末尾の 1 桁はチェックデジット(誤り検出符号)として用いられる。&lt;/li&gt;&#xA;&lt;li&gt;チェックデジットを除く部分は、企業コードとアイテムコードから成る。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;チェックデジットの算出方法&#34;&gt;チェックデジットの算出方法&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;奇数桁にある数の和に 3 をかける。&lt;/li&gt;&#xA;&lt;li&gt;チェックデジットを除く偶数桁にある数の和を求める。&lt;/li&gt;&#xA;&lt;li&gt;1 と 2 の和で求められた数の下 1 桁を n とする。&lt;/li&gt;&#xA;&lt;li&gt;n が 0 の時、チェックデジットは 0 である。&lt;/li&gt;&#xA;&lt;li&gt;n &amp;gt; 0 の時、チェックデジットは 10 – n である。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;計算して求められたチェックデジットと、与えられた JAN コードのチェックデジットを比較し、一致すれば正しい JAN コードとして判断します。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ビープ音でモールス信号を再生</title>
				<link>https://dyama.org/2011/09/57/</link>
				<pubDate>Mon, 12 Sep 2011 00:00:48 +0900</pubDate>
				<guid>https://dyama.org/2011/09/57/</guid>
				<description>&lt;p&gt;以前、ブログでも取りあげた&lt;a href=&#34;http://d.hatena.ne.jp/dyama/20101109/p1&#34;&gt;bsdgamesパッケージ&lt;/a&gt;にあるmorseコマンドを利用して、ビープ音(PCスピーカー)でモールス信号を再生するスクリプトを書いてみました。 ビープ音の再生には、自由に周波数と再生時間を指定する事が出来るbeepコマンドを利用しました。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#!/usr/bin/env bash&#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;f=1800 # 周波数&#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;#正確な再生単位&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;b=60 # 単位長さ&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;t=$(($b*1)) # 短点長さ&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;w=$(($b*3)) # 長点長さ&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;s=$(($b*1)) # 無音長さ&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;n=$(($b*3)) # 次の文字との無音長さ&#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;#こっちの方が聞き易い気がする&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#b=50 # 単位長さ&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#t=$(($b*2)) # 短点長さ&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#w=$(($b*6)) # 長点長さ&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#s=$(($b*1)) # 無音長さ&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#n=$(($b*3)) # 次の文字との無音長さ&#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;morse $@ | while read line&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;do&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    echo $line&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    opt=$(echo &amp;#39;$line&amp;#39; | sed \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -e &amp;#39;s/dit/ -n -f $f -l $t -n -f 1 -l $s/g&amp;#39; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -e &amp;#39;s/daw/ -n -f $f -l $w -n -f 1 -l $s/g&amp;#39; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -e &amp;#39;s/^ *-n *//&amp;#39;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    if [ &amp;#34;$opt&amp;#34; ]; then&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        beep $opt -n -f 1 -l $n&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    else&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        beep -f 1 -l $n&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fi&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;done&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;$(()) での計算を行っている為、bash依存です。適宜、exprなどに置き換えれば他のシェルでも使えるはずです。 無音部分は、周波数1Hzの音を再生する事によって実現しています。 実行すると、以下のように表示され、ビープ音でモールスが再生されます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>コマンドラインから Google 翻訳を利用するスクリプト</title>
				<link>https://dyama.org/2011/03/44/</link>
				<pubDate>Tue, 08 Mar 2011 00:00:58 +0900</pubDate>
				<guid>https://dyama.org/2011/03/44/</guid>
				<description>&lt;p&gt;単語の意味が分からなかったり、定形文でコレは何て言ったっけ？ など、ちょこっと意味を調べたい場合、いちいち GUI のウェブブラウザを開くのもナンセンス。&lt;/p&gt;&#xA;&lt;p&gt;そう思って、コマンドラインから Google 翻訳を使って翻訳をしてくれるスクリプトを書いてみました。 タイムスタンプを見ると 2011 年の 11 月 22 日でしたが、今でもちゃんと動いているようです。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
