コマンド

シュシュポポと汽笛を鳴らしながら走り抜けるslコマンドにしておく

蒸気機関車2012 〜今年も感動をありがとう〜 - YouTube 蒸気機関車の映像を観ていると心に染み入る。力強く上がる真っ黒な煙、シュシュポポと噴き出す蒸気の音、遠くに響く悲しげな汽笛の音などなど、映像を見ていると癒され、心地良さを感じる。いつまでも…

なるべく理解したいffmpeg

ストリーム・フィルターチェーン・フィルターグラフ・リンクラベルという概念に注目して調べてみた。 ファイル情報を見る ファイルに含まれるビデオとオーディオの形式を確認してみる。 $ ffmpeg -i sample.flv ffmpeg version 2.5.4 Copyright (c) 2000-201…

優先順位の高いローカルIPアドレスを取得するコマンド

iMacのIPアドレスを確認したい。そんなの簡単、簡単。システム環境設定 >> ネットワークで確認すればいい。 上段のネットワークサービスほど優先順位が高くなる。よって、現在のIPアドレスは特に指定しない限り、10.0.1.20が利用されることになる。 このよう…

エスケープシーケンスを体感する

エスケープシーケンス(escape sequence)とは、直訳すれば「エスケープに続く数列(文字コード列)」といった意味合いになると思う。広い意味では、特別な文字表記(エスケープ記号)で始まる一連の文字列を連想してしまう。例えば、\nが改行を表現するのも…

ASCIIコードの秘密

本当はエスケープシーケンスのことを調べていたのだが、その前にASCIIコードについて調べることになってしまった...。文字コードの基本として知っているつもりだったASCIIコードについて、あらためて見直してみると、実は本当の意味をよく分かっていなかった…

pentominoコマンドをgemに公開する最小の手順

前回のpentominoコマンドをgemに公開するまでの手順のメモ。次回公開する時に、悩まず・素早く・苦労最小限で公開できますように! 必要な環境 RubyGems.orgで1度でも何らかのgemを公開した環境であること。 つまり、RubyGems.orgにユーザー登録して、~/.gem…

途中経過を表示しながら解くpentominoコマンドに仕上げる

前回までにc言語なら0.9秒(さらなる高速化を追記した)でペントミノパズル(6×10)の全解を出力できるようになった。1秒切ったので、高速化についてはこれで満足。しかし、何かまだ満たされないものがある。 最速を狙ったコマンドは1度試せばそれで満たされ…

RubyとC言語でもペントミノバズルを解いてみる

前回からの続き。 明治ミルクチョコーレートパズルの解をすべて探す - ザリガニが見ていた...。 ペントミノの解を求めるプログラム高速化 - ザリガニが見ていた...。 ペントミノパズルを解くPythonコードは、順調に高速化の道を歩んできた。 3時間以上 → 50…

タブを閉じてもログアウトしても実行し続けるジョブにしておく

前回までにバックグラウンドでジョブを複数管理できるようになった。ところで... ターミナルでタブを開く度に、あるいはsshでどこかの端末にログインする度に、 シェルが起動して、コマンドを入力・実行・出力する環境を整えてくれる。 そして、タブを閉じた…

裏と表のジョブを使い分ける

かつて... 今どきのターミナルはタブやウィンドウをいくつでも開けるから、 フォアグラウンドでコマンド実行中に何か別のことがしたくなったら、新たにタブを開いて、そこでコマンドを実行すれば十分用が足りる。 バックグラウンドでコマンドを実行できるこ…

プロンプトにRubyのバージョンを表示したい

rbenvによって、Rubyバージョンは素早く、簡単に切り替えられるようになった。 すると、作業中にいったい自分はどのRuby環境にいるのか、見失ってしまうことがある...。 そうならないように、コマンドプロンプトにRubyのバージョンを表示しておきたい。 やっ…

ログインシェルを変更する方法

作業環境 MacBook Pro Retina15 OSX 10.9.5 手順 システム環境設定 >> ユーザとグループを開く。 左下の鍵アイコンをクリックして、ロックを解除する。 ユーザを選択して二本指タップして、詳細オプションを開く。 二本指タップ = 右クリック = control-クリ…

OptionParser底力+ARGFを使ったコマンド作り

前回からの続き。マニュアルがあるのだから、ちゃんと読めばそこにすべてが書かれているのだけど、自分はマニュアルを読むのが苦手。それよりもサンプルコードを実行して、その結果を体感しながら覚える方が好き。自分にとってはそうやって覚えた方が、忘れ…

Closure Compilerを利用するワンライナーとサービス

前回からの続き。その後、JavaScriptを圧縮・整形するコマンドjs-compile.rbを何度か使っているうちに、あることに気付いた。js-compile.rbにオプション指定の選択肢はあるのだけど、自分が使う条件はたった3種類しかない。 --compilation_level=WHITESPACE_…

JavaScriptを圧縮・整形するコマンド作り

最近、ブックマークレットを書く時には、Closure Compilerをよく使う。Closure Compilerは、Googleが提供しているJavaScriptコードの圧縮・整形サービスの一つである。 Closure Compilerを使う! - トップページ 圧縮といってもzip圧縮などとは違う。正確に…

購読者数とブックマーク数のログを記録する

Google Readerも、Fastladderも、とっくの昔に終了しているのに、自分のMacBookの中ではRSS_counter.appが、その購読者数のログを綿々と記録し続けていた。 Fastladder:2012/6/1終了 Google Reader:2013/7/1終了 いかん、いかん、何とかせねばならない...…

なるべく覚えないbashのキー操作

ターミナル&bashでコマンドラインを編集する時、実にいろいろなキー操作がある。便利そうだからと、あれもこれも覚えようと欲張るのだけど、すぐに忘れてしまう...。もっと厳選して覚えておかなくては。自分にとって必要最小限のキー操作を探ってみた。 勝…

ファイル末尾の改行を自在にコントロールする

テキストファイルとは、いくつかの行の集合である。そして、行とは改行コードで区切られるまでの、一連のテキストデータの連続である。 ところで、すべての行の末尾は改行コードで終わるかと言えば、そうとも限らない。改行コードが1つもないテキストファイ…

なるべく書かないawkの使い方

awkという、古くからのスクリプト言語がある。(1977年生まれ。読み方は「オーク」である。エイ・ダブリュ・ケイではない)man awkをPDFに変換してみると、たったの3ページ強しかない。 $ man -t awk|pstopdf -i -o ~/Downloads/awk.pdf とてもシンプルな言…

連続する数列をハイフンでまとめるシェルスクリプト

おもしろい!こうゆう問題が大好き。実用的であり、かつ頭の体操になる。 問題並んだ数字を確認用にわかりやすくする為に、ソートされた数字の列をハイフンで繋ぐにはどうすればよいでしょうか? 数列は見づらいものです。ただ数字を並べているだけでは、ソ…

UTF-8にもいろいろある

前回からの続き。 改行コードの違いを体感してみる - ザリガニが見ていた...。 文字エンコードとロケールを体感する - ザリガニが見ていた...。 改行コードの違いも知った。文字コードとロケール、ターミナルの言語環境との関係も知った。これで文字にまつわ…

文字エンコードとロケールを体感する

前回からの続き。 改行コードの違いを体感してみる - ザリガニが見ていた...。 今時、OSX環境ならUTF-8で使っていれば何の問題もないだろう、と信じていると痛い目に遭う。 文字化けする現象 AppleScriptエディタで、ファイルフォーマット=テキストで保存し…

改行コードの違いを体感してみる

テキストを入力して、保存して、再び画面に入力したままを表示する。これはコンピュータを操作する上で、最も基本的な欲求である。出来て当然のことなのだけど、稀に出来なくて思い悩むことがある。 最近のGUI環境は気が利いているので、ほとんどの場合、良…

bashの履歴展開を堪能する

最近、コマンド履歴の達人を目指していたが、未だ成れずじまい。少年とは言わないが、老いやすく、達人成りがたし...である。コマンドを知るほどに、倍返し*1で新たな知らないことに気づく。さあ、ターミナルを開いて、コマンドを入力する準備が整った。bash…

rubyのワンライナーに見る驚きの省略記法

rubyには、省略されたコードが隠されていることがある。その省略されたコードをちゃんと理解しておかないと、rubyの中で何が起こっているのか?見失ってしまう...。調べてみた。 一般的なソースコードの中では、可能な限り省略せずに書いた方が良いと思われ…

bashとrubyの連携に見るエスケープな悩み

問題 突然ではあるが、以下のコード...ruby -pe に続けて、シングルクォートを取り除くワンライナーを完成できるだろうか? 出力結果が「私はzariganiです。」となればOK。 ちなみに、作業環境はOSX 10.9 Mavericksである。 GNU bash, version 3.2.51(1)-rel…

日本語と英語のテキスト境界のスペースをどうするか?

こうゆう発想のワンライナー的スクリプトが大好き。 uedamac:MEMO ueda$ echo "わたしは aho です。4 さいです。" | sed 's/\([^a-zA-Z0-9]\) \([a-zA-Z0-9]\)/\1\2/g' | sed 's/\([a-zA-Z0-9]\) \([^a-zA-Z0-9]\)/\1\2/g' わたしはahoです。4さいです。 出…

コマンド履歴の達人を目指してみる

ターミナルのコマンド履歴をインクリメンタルに検索して実行するにはControl + R - Macの手書き説明書 自分も知らなかった...。まだまだ知らないことって、いっぱいある。それにしてもコマンド履歴というのは、自分はよく使う。直接入力するより、過去の履歴…

プロセス・パイプ・リダイレクション・ファイルディスクリプタの実体を見に行く

プロセス置き換えとか、名前付きパイプとか、とても便利な機能なのだけど、その仕組みはどうなっているのだろう?断片的な知識ばかりでは、その核心にはなかなか辿り着けない。サンプルコードの真似はできるけど、それ以上の発想はできない...。もっと根本的…

名前付きパイプでプログレスバーを操作する

標準入力からプログレスバーを利用する仕組み - ザリガニが見ていた...。 プロセス置換とリダイレクションでプログレスバーを操作 - ザリガニが見ていた...。 上記日記からの続き。 CocoaDialogのサンプルコード まずは論より証拠、CocoaDialogのサンプルコ…