date コマンドつらい

タイトルどおりですが、date コマンド色々つらいですよね。 同じ名前の date コマンドが、OS や環境によって、似て非なるものであるという辛さがまず第一に挙げられるかと思います。 macOS 上でデフォルトで使える date コマンドは BSD 版の date です。 BSD…

Arduino で SORACOM SIM を使ってなるべく安く通信する方法

[追記 2017/10/30]SORACOM から以下のデバイスが発売されたのでこの記事の内容にしたがって頑張るよりも安く(1万円以下で) Arduino で通信できるようになっちゃいましたね!soracom.jp当記事には AT コマンドなど Wio LTE 他のデバイスでも使えたりしそう…

SORACOM LoRa Space に「接続ポイント」を登録してみた!

SORACOM の共有型 LoRaWAN 接続サービス「SORACOM LoRa Space」ですが、私の手元にもようやく、ようやくデバイス(LoRa Arduino 開発シールド AL-050)が届きまして、さてどんな事をして遊ぼうかなと考えていたところ、SORACOM LoRa Space のホームページ が…

Go のプログラムで Windows 上で chmod しようとしただけなのになぜか golang.org/x/sys/windows にバグっぽい挙動を見つけたばかりかなぜかアセンブラを読むハメになった話

何を言ってるかわか(ry ファイルのパーミッションを変更する chmod コマンド相当の関数は、私の知る限り Golang の標準ライブラリには 2 つあって、しかもそのいずれもが Windows 上では期待したような動作にならないって、みなさん知っていましたか? まず…

リモートホスト上のパケットキャプチャをリアルタイムに手元のマシンの Wireshark で見る方法

ワンライナーで行けちゃいます😁 wireshark -k -i <(ssh user@host "tcpdump -U -n -w - -i eth0 'not port 22'") しかもリモートホスト側で何かしら特別な準備とかが不要なので非常にお気楽・お手軽です。 前提条件 手元の環境に Wireshark がインストールさ…

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 のプログラムを起動しようとする…