bash スクリプトでヒアドキュメントを変数に格納したいけどヒアドキュメントの中にカッコがあってエラーになってしまう場合の対策

最近ブログの記事タイトルが長い気がするのでなんとか短めに抑えたいのですがなんとかならないものでしょうかね。 さて、昨年あたりから shellcheck というツールを使ってシェルスクリプトの lint をするようにしたので自分の shell 力が少し上がった気がし…

ssh の ProxyCommand を .ssh/config に書かずにコマンドライン引数で指定する方法

ssh で踏み台ホスト経由で目的のサーバーに到達したいということはよくあると思います。 たくさんの先人たちが ~/.ssh/config に書くべき内容について書き残してくれていますのでここでは特に詳しくは触れません。 基本的には ProxyCommand を使って、踏み台…

git コマンドを alias してるときにも補完を効かせる方法

プログラマなら呼吸をするように git コマンドを使うと思うので、git っていう 3 文字でさえ長過ぎますよね。 ということでみなさま .bashrc などで alias g='git'みたいなことをしてると思いますが、この場合 git-completion.bash による補完が効かなくなっ…

Mac で SORACOM Air で接続している時に特定のルートだけ SORACOM 経由にしてそれ以外は Wi-Fi 経由にする方法

タイトルが若干長いですが、やりたいことは以下のとおりです。1. 通常は Wi-Fi などでインターネットに接続している 2. SORACOM Air 入りの USB 3G/LTE モデムを Mac に挿した時、SORACOM が提供するサービスには SORACOM Air 経由でアクセスしたいが、それ…

長時間かかったコマンドの実行完了を bash でも terminal-notifier でお知らせしたい

[2016.02.19 追記] スクリプトにバグがあったので修正しました [追記ここまで]世の中には CLI から OS X の通知を出せる terminal-notifier という素晴らしいツールがありまして、github.comこれを brew でインストールしたりなんかすると $ terminal-notifi…

SORACOM Air が使える IoT 向け基板のまとめ

さて、前回の記事では SORACOM Air が使える USB 3G/LTE モデムや Wi-Fi ルータをまとめましたが、今回はより IoT に特化した基板で SORACOM Air が使えるもの(動作報告がネット上で見つかったもの)をまとめてみたいと思います。例によって動作保証ではあ…

SORACOM Air が使える USB 3G/LTE モデム、WiFi ルーターのまとめ

SORACOM Air SIMカード(データ通信のみ) (標準)出版社/メーカー: 株式会社ソラコムメディア: この商品を含むブログを見るSORACOM Air とは、ひとことで言うと IoT (Internet of Things) 向けの SIM です。 API で通信速度のコントロールができたり、データ…

Go で DynamoDB Local を使った時にいろいろハマったのでメモ

AWS 公式の Go 言語用 SDK がありますが、Developer Preview ということもあってかドキュメントがちょっと不足しているように思います。github.com 私は Go のプログラムから DynamoDB を使いたかったのですが、検索するときのキーの指定の仕方とかがだいぶ…

最近のCygwinでbashのプロンプトにgitのブランチ名を表示する方法

以前はgit-completionパッケージをインストールして/etc/bash_completionをsourceすればよかっただけのような気がするのですが、最近はこれだとgitコマンドの補完は効くけどプロンプトに表示する__git_ps1が定義されていないようです。解決策としては、GitHu…

ドライブレコーダー Transcend D200 をコストコで購入

前から欲しかったドライブレコーダー。 Transcendの製品が安い割に評判が良かったようなので買うならTranscendにしようと思っていたところ、コストコで税込み11,800円で売られているのを発見。当時の価格.comの最安値よりも1,000円ほど安かったので購入を決…

$0書き換えが流行っているようなので一つ流行に乗っかってみるか

以下の記事では $0 での偽装を見破るため ps コマンドに c オプションを指定して /proc/<pid>/commを表示させればよいというようなことが書いてあると思いますが、/proc/<pid>/commも容易に書き換え可能みたいですのであまりあてにしないほうが良いでしょう。(偽装さ</pid></pid>…

Intel Edison の Ubilinux をシングルユーザモードで起動する方法

Intel EdisonをUbilinuxに入れ替えて遊んでいたら、起動スクリプトの書き方を間違えたせいでEdisonが起動しなくなってしまいました。Intel Edison Breakout Board Kit Edison本体+Breakout基板出版社/メーカー: Intelメディア: Personal Computersこの商品を…

Intel Edison に InfluxDB をインストールする方法

http://influxdb.com/download/から最新版をダウンロードします。 Go もインストールしてあるのでソースからビルドしても良いかと思ったのですが、意外とビルド方法が難しそうだったので linux/386 版のバイナリパッケージを利用することにしました。パッケ…

Intel Edison で動かした Arduino のスケッチを停止・削除する方法

Edison を入手して、「"Lチカ" してみました!」という記事は世の中に履いて捨てるほどありますが、じゃあそのアップロードしたプログラムを消去したい場合はどうすればよいの?と思って調べてみるも、なかなか第一次情報ソースに行き当たりません。Intel Ed…

Intel Edison に Go をインストールする方法

Go はクロスコンパイルが簡単で、出来上がったバイナリの配布も簡単なので、わざわざ Edison 上で Go コンパイラを動かす必要もないのですが、、、 やってみたかったからやってみただけです。Intel Edison Kit for Arduino出版社/メーカー: Intelメディア: …

Docker コンテナに Android SDK をインストールする方法

Android の開発環境を Docker コンテナにしたかったので Dockerfile を書いたのですが、意外とハマったのでここにメモを残しておきます。

Android L Preview のデバイスで Heads-up Notification を表示する方法

注:この記事は 2014年 7 月上旬現在の Android L Preview の ROM イメージおよび SDK の内容に基づいて書かれています。Android L が正式バージョンとしてリリースされるまでの間に、この記事の内容は obsolete になるかもしれません。Android L Preview で…

Vim で数のインクリメントやデクリメントをするキーバインド

vim

Vim には Ctrl-A (以後 C-a) を押すとその時カーソルの下にある数をインクリメントしてくれるというプログラマに嬉しいキーバインドがあります。(C-x でデクリメント)これはたとえば 1 という文字の上で C-a を押すとその文字が 2 になり、続けて押してい…

useradd コマンドでユーザのパスワードを指定する方法

スクリプトなどで自動で Linux のユーザを追加して、そのユーザにパスワードまで設定したいということはあると思います。たとえばテスト環境の構築を自動化していてダミーユーザをたくさん作らないといけない場合など、たとえパスワードがバレても特に問題な…

Ubuntu 14.04 にしたら mount cifs がエラー

最近、開発のサブで使っている環境を Ubuntu 12.04 から 14.04 にアップグレードしたのですが、いろいろ細かいことで変化があって困っています。 なのでメイン環境の移行はもうちょっと先ですね。その困りごとのうちの一つが、Windows Server のフォルダをマ…

valgrind の track-fds=yes オプションを指定した時に fd=0,1,2 が open されたままだと指摘されるのをどうにかする方法

たとえば以下のような無害なプログラムをコンパイルして valgrind にかけて実行します。main.c int main() { return 0; } $ gcc main.c $ valgrind --track-fds=yes ./a.out ==2227== Memcheck, a memory error detector ==2227== Copyright (C) 2002-2011, …

Eclipse の Tooltip の背景が真っ黒になって文字が読みづらいのを直す方法

おそらく Ubuntu 限定の問題だと思います。Eclipse(およびその派生プロダクト)を使っていてエラーのある行の波線が引かれているところにカーソルを合わせると出てくる Tooltip があると思いますが、これが背景色が真っ黒なのに文字の色も黒っぽい色でハイ…

WinDBG によるデバッグ方法(ダイジェスト)

Visual Studio のプロジェクトが存在せず、nmake や cl などを使ってビルドされる C/C++ プログラムをデバッグしようとして、いろいろ困ったのでメモ。 1. WinDBG のインストールWindows SDK をインストールすれば一緒に入ってくる。2. プログラムは /Zi オ…

Windows の PATH 環境変数の各パスは ” ” (ダブルクオーテーション)で囲まなくても良い ー むしろ囲っちゃダメ

Visual C++ のコンパイラをコマンドラインから起動しようとして、その準備として vcvarsall.bat を実行しようとしてハマったのでメモ。vcvarsall.bat は cl.exe などの置かれているディレクトリへのパスを環境変数として設定したりするバッチファイルですが…

Cygwin の PATH 文字列と Windows の PATH 文字列の相互変換

答えを先に書くと、cygpath コマンドを使います。Cygwin の形式(/cygdrive/c/... )→ Windows 形式(C:\... ) $ cygpath -w /cygdrive/c C:\ Windows 形式 → Cygwin 形式 $ cygpath C:\\ /cygdrive/c Cygwin から Windows のプログラムを起動しようとする…

エレクトロラックス エルゴラピード

コードレス掃除機を探していて、コストコで見つけたのがこちら:エレクトロラックス エルゴラピード 型番は ZB2901 というものなので一世代前のものだと思いますが、コストコでは 1万2,800円くらいで売っていました。 ( ネットで探した最安価格より1,000円…

xinetd で走らせてるサービス(デーモン)の状態を知る方法

xinetd でどのポートでどのサービスを動かしていたかをお手軽に調べたりしたい場合の方法をメモ。http://superuser.com/questions/318040/how-to-get-status-information-form-xinetd より。 $ sudo pkill -USR1 -x xinetd $ cat /var/run/xinetd.dumpUSR1 …

渋谷でレゴブロック売ってない問題

[2015.01.29追記]以下の記事によると、2月5日にビックカメラ渋谷東口店がリニューアルすると玩具売場ができ、レゴも販売されるようです。これは楽しみです。オープンしたらチェックしに行こうと思います。渋谷駅東口にビックカメラ「別館」-スポーツ用品初…

テキストファイルの中に書かれた数字をコマンドラインで集計する方法

何らかの文字で区切られたデータファイルがあって、その中の特定のカラムの合計を計算したいとします。たとえばデータファイルは以下のような感じです。 $ cat datafile.dat data1: 0, 123, 222, "some text" data34: 11, 3, 24, "another text" data209: 45…

boot2docker で Docker の使用するポートが CrashPlan と競合するときの対処法

OS X で Docker を使えるようになったとのことだったのですが、私の環境でも下記の記事と同じように CrashPlan がインストールされていたのでポートが競合してしまい、boot2docker init がエラーになってしまいました。 $ boot2docker init [2014-02-15 15:3…