Posts on tips

vimのテンプレート機能でコーディングを3倍楽にする方法。

コードを書き始めるとき、毎回同じことを書くのは時間の無駄ですよね。 典型例がソースコードのライセンス条文だったり、HTMLの雛形タグだったり、Markdownの章立てだったりすると思います。 .vimrcを設定する vimであれば、こんな風な設定を.vimrcに書いといて、テンプレートとなるファイルを${HOME}/.vim/templateに置くだけで無駄を省くことができます。 autocmd BufNewFile *.py 0r $HOME/.vim/template/python.txt autocmd BufNewFile *.md 0r $HOME/.vim/template/markdown.txt autocmd BufNewFile *.uml 0r $HOME/.vim/template/plantuml.txt plantumlソーステンプレートを作成する 特にオススメなのがplantumlソースのテンプレート。 こんな形で予め網羅的に書いといて、.vimrcと一緒に適当なVMSにpushしておくと良いです。 ' sequence diagram @startuml hide footbox actor Foo1 boundary Foo2 control…

bashでファイル末尾を0埋めする方法。例えばLinuxカーネルのページサイズでalignしたい場合。

文字列の先頭や末尾を0埋めする方法はよくあるんですが、ファイル末尾を0データで埋める方法って、なかなか見つからなかったので、書いてみました。 こんなの一体いつ使うのか? と聞かれたら、使う機会は早々ないのであまり役に立たないかもしれないです(・_・; が、例えばinitramfsイメージファイルをLinuxカーネルのページサイズでalignしたい場合に役立ちます。 …絶対使わなそうですが、以下のようなスクリプトを書いてtest.shとして保存しておき、test.sh target.bin 4096のように実行すれば、target.binの後に0データを付加して4096バイトでalignしてくれます。 #!/bin/bash FILE_TARGET=${1} SIZE_PAGE=${2} function get_file_size() { FILE=${1} echo $(LANG=C ls -l ${FILE} | cut -d' ' -f5) } function get_printf_format() { SIZE_PAD=${1} while [ ${SIZE_PAD} -gt 0…

意外と知らない、超基本コマンドcdの便利なオプション。

近い将来、Windowsにも組み込まれるbash。これでLinux、OSX、Windowsで共通のシェルが使えるようになって、嬉しい限り。 Windows 10のbash on Windowsを試す - kkamegawa's weblog https://t.co/24T68tN00y— 情弱 (@pudding_info) 2016年7月25日 そんなbashの組み込みコマンドには、超基本なcd (change directory) がありますよね。以外と知られていない (であろう)、ハイフンだけのオプションがあるの、ご存知でしょうか? tmp $ cd /var var $ pwd /var var $ cd /tmp tmp $ cd - /var var $ cd - /tmp 要するに「元いた場所に戻る」オプションです。 よく似た動作をするコマンドにpushd/popdがありますが、…

Amazon Cloud Driveが無制限プラン開始。さすがのAmazon品質… 驚きです。

Amazon Primeに入ると、自動的についてくるPrime Photoサービス。写真であれば、たとえRAWデータであれ、無制限にオンラインストレージに保存できます。年額3900円、月額に直すとたったの325円のPrime会費で、このオンラインストレージがついてくるのだから驚きです。 それが今度は、別途料金にはなりますが、無制限オンラインストレージサービスを開始しました。お値段13800円/年、月額に直すと、たったの1150円にて。大丈夫か? Amazon。 以前Bitcasaというサービスで、月1000円で無制限ストレージを提供したことがありましたが、あれよあれよと無制限プランは消えて無くなってしまいました。採算が合わなかったんですかね…。 Amazonはいつまで継続できるのかわかりませんが、3ヶ月の無料試用期間があるので、試してみました。 まずは申し込み 無料試用期間が3ヶ月もあるので、まずは試してみましょう。ここから申し込みます。 既にクレジットカード情報を登録済みであれば、そのまま確定。なければ「クレジットカードを追加」から登録します。 たったこれだけで、無料トライアルが開始されます。 自動契約更新の解除 が、このままだと3ヶ月後に自動的に契約が継続され、使用料が発生するので、まずはそれを解除します。私のAmazon Driveの右上にあるストレージの管理をクリック。 以下のように、現在のプランが表示されます。継続しないをクリック。 すると、以下のように登録を再開始となれば設定完了。 と同時に以下のようなメールが届いて、「無料体験をキャンセルしました」?! と一瞬ビビりますが、ちゃんと継続されています。…

スマホから電源スイッチのリモート操作を可能にするシステムをDIYしよう。

サーバ管理経験者なら、これって意外と夢だったりしませんかね? パソコンの電源スイッチをリモート(自宅の外)からON/OFF操作する。 これ、意外と簡単にできちゃいます。電子工作経験とRaspberry Piみたいな小型低消費電力サーバと、低消費電力無線機能付きマイコンXBeeが2つあれば。 XBeeを使ってできること こちらに概要を書いていますが、Arduinoほどの自由度はありません。 でもXBee自身が結構な数のI/Oを持つ上、ADCもあったりするので、ちょっとしたことならXBeeだけで出来てしまいます。今回のようなリレー操作なら超簡単。 とあるピンにリモートで0か1を指定して、それがそのままリレーのON/OFFに変換されるというだけでの仕組みです。 そんなシステムの構成 それなりにシーケンス図を書いてみるとこうなります。 PC電源をON/OFFするには、マザーボードの電源スイッチ端子をショートさせればいいので、リレーを使います。 リレー制御は3.3V highにできるGPIOがあれば十分なので、XBeeのdigital I/O操作APIを叩くだけというお手軽さ。 設定やら構築やらの手順 RaspberryPi + XBee Coordinatorの組み立てと設定 RaspberryPiがWebサーバとして動作して、ユーザはブラウザ経由でXBee Coordinatorを操作することになります。 家庭菜園リモート監視の記事のCoordinatorの設定とRaspberry Pi側のサーバ環境構築を参考にXBeeとRaspberryPiを設定してみてください。 この辺も整理しないと・・・。 小型リレーボードキットLK-RB1 + XBee Routerの組み立てと設定 お手軽にリレーを使えるようにしたキットがあります。小型リレーボードキットLK-RB1です。 エレキット 小型リレーボードキット (5V用) LK-RB1posted with…

Pythonで実行中のコードの情報を取得する方法。例えば関数名とか。

テスト実装していて、ふと「今実行中の関数名を取得するにはどうするんだろう?」と思って調べてみると、いつもお世話になっているQiitaに投稿している人がいた。助かります。 m(._.)m Pythonネタ。実行中の関数・メソッド名を取得したい on @Qiita https://t.co/CJsM5lp2Uh— takashi ando (@takashi7ando) 2016年7月16日 ちなみにPython2でも3でも同じ方法で取得できました。 >>> def printFuncName(): ... print sys._getframe().f_code.co_name ... >>> printFuncName() printFuncName ただ、さすがにこのコードは覚えにくいな・・・。sysモジュールのprivateな関数使ってるし・・・。 ということで「frame」をキーワードに調べてみると、ちゃんと用意されていました。inspectモジュールを使って、もっとスマートに取得できるようです。 inspectモジュールでスタック情報を参照する inspect: インタプリタスタックから引用します。ちなみに、Python3.5はまたちょっと違うようですが、…

lua有効版vimをOSXターミナルで使いたい。

vim使ってますか? vimでコード書く人ならほぼ100%使っているであろう、コード補完プラグインneocompleteをOSXターミナル版vimでも使えるようにする方法の紹介です。 有名なので知っている人は多いと思いますが、neocomplete動作要件は7.3.885+ compiled with if_lua.です。 んで、OSXにデフォルトで入っているvimは7.3なのです。 luaなしvimでも使えるneocomplcacache 同じ作者様のコード補完プラグインに、neocomplcacacheがあります。 が、github README.mdに記載されている通り、neocomplcacacheは既にメンテされておらず、使っているとその旨の警告が出たりします。 Shougo/neocomplcache.vim@github **neocomplcache** ================= Note: It is not maintained well. You should use neocomplete instead. https://github.com/Shougo/neocomplete.vim neocompleteを使いましょう neocompleteのREADMEには以下のように書かれていますが、誇張でもなんでもなく、ほんとに強力なキーワード補完をしてくれます。下手なIDEよりいいんじゃないでしょうか。vimの方が軽量で起動も早いですし。 Shougo/neocomplete.…

スマホ使用料75%減。大手キャリアiPhoneをSIMフリー化して格安SIMを使いましょう。

ソフトバンクiPhoneをファクトリーアンロックしてから早1年。何の問題もなく使えています。 ファクトリーアンロックとは何か? 脱獄(Jail Break)とはどう違う? 手順は? 本当に大丈夫? などの情報をまとめてみました。 そもそもSIMロックとは? 大手キャリアからiPhoneを買うと、囲い込みのためにSIMがロックされています。ソフトバンクで買ったiPhoneはソフトバンクSIMでしか使えないよう、アクティベーションサーバが情報を管理しています。 iPhoneを使い始めるのにインターネット環境が必要な理由は、このアクティベーションサーバに接続するためなんですよね。 引用元:週刊アスキー SIMロックによるデメリット SIMロックによる制限のおかげで、用途に合わせてキャリアを替えたり、海外旅行でプリペイド型のSIMに差し替えたり、といったことができません。 そして、端末の実質0円キャンペーンとかでばらまいた端末代をキャリア側が回収するため、なんだかんだオプション付けられて、どう頑張って節約しても毎月6〜7千円スマホ代で消費します。夫婦合算で1万5〜6千円。年間だと19万円にもなるんですよね。 様々な自由を奪う憎きSIMロック…。 ファクトリーアンロックとは? SIMロックされたスマホ端末、実はロック解除できるのです。 先ほど出てきたアクティベーションサーバの情報を業者さんに書き換えてもらいます。これをファクトリーアンロックと呼びます。脱獄みたいな非正規ルートではなく、一応正規の方法らしいです。 アクティベーションサーバの情報を書き換えるだけなので、スマホ端末を業者さんに送るといった面倒な手続きが一切ないのがいいですね。 詳しくは週アス記事で図解されているので、詳細はそちらを参照ください。 ファクトリーアンロックの具体的な手順 私の場合はソフトバンクiPhone5s 16GBをファクトリーアンロックしてもらいましたが、申し込んでからおよそ2ヶ月くらいかかりました。 どうしてもSIMロックフリー版iPhoneが欲しかったので、Apple Storeで買い直すことも考えましたが、アグボグブロシーのようなこともあるので、…

gmailのメールアドレスは、エイリアス(別名)が無制限に作れるって知ってた?

驚愕の小ネタ。 gmailのアカウント一つあれば、エイリアス(別名)を無制限に作れてしまうとは…。 Googleのヘルプにも、以下の通りしっかり記載されています。 Gmail では、従来のエイリアスはご利用いただけませんが、your.username+any.alias@gmail.com 宛のメッセージを受け取ることができます。 たとえば、jane.doe+notes@gmail.com 宛のメッセージは jane.doe@gmail.com に配信されます。 フィルタを設定すると、これらのメッセージを [ごみ箱] に振り分ける、ラベルやスターを付ける、受信トレイ以外の場所に振り分ける、他のメール アカウントに転送するなどの操作を自動的に行うことができます。 ちょうどいい機会なので調べてみると、これ以外にも様々なパターンでエイリアスが作れる… というより、無視されるけとメールヘッダに情報が残るので、エイリアスとして使えるパターンがあることがわかりました。 詳細はE-mail addressed to me intended for someone elseに記載されていますが、実際に試してみると確かにその通りでした。 ドット "." は無視される どういうことかというと、以下のメールアドレスは等価です。…