weblog of key_amb

主にIT関連の技術メモ

(メモ) Mac に nodebrew と Bower と AngularJS をインストール

nodebrew 参考: Mac OSXにnodebrewをインストールする brew install nodebrew # 最新の nodejs をインストール nodebrew install latest インストールした nodejs を使う設定をする。 $ nodebrew list v0.11.14 current: none $ nodebrew use v0.11.14 PATH …

Middleman を使って GitHub Pages に静的サイトを公開する

だいたい下記のブログの通りです。 middleman で構築したサイトを GitHub Pages で公開するまでの流れをまとめてみた - C++でゲームプログラミング 環境としては Mac OS X Mavericks, ruby 2.2.0 (on rbenv), middleman 3.3.7 で実施しました。 (1) gem inst…

Released Perl5 AWS::CLI::Config

Sometimes I wanted to access the configuration information of AWS CLI in Perl. So I've created a perl module -- AWS::CLI::Config. It's available in CPAN. There has already been nice module Net::Amazon::Config which fetches info from ~/.ama…

(メモ) Perl でテストのときに依存する外部 daemon を上手く取り扱う

mysql とか memcached とか。 Harriet というのを使うといいらしい。 Harriet ー テストのときつかうにデーモンの取扱を簡単にするためのフレームワーク - blog.64p.org

AWS ElastiCache Redis のイケてないところ ※2014/12/21 時点

CONFIG GET ができないとかいう制約があるのは別として、最近ハマって、他の人もハマりかねないだろうと思うことを書いておきます。 Cache Cluster のスペックアップができない RDS のように作成した Cache Cluster のインスタンスタイプを変更することはで…

Perl でテスト可能なスクリプトを書く

職場でとある Perl スクリプトを改修する機会があった。 元々ぺら一枚のスクリプトだったのだが、これを機に App::Hoge::CLI (仮称) のようなモジュールを作ろうとした。 すると、pull-request の時に「使い回しのできないものをモジュールにしないほうがい…

(メモ) Perl で動的にモジュールをロードする方法いろいろ

現在の結論 Module::Load::load でよさそう。 参考 Perl のモジュールローダー選定委員会 - blog.64p.org [技術継承の現場] useとrequireの違い - NDiS Tech http://perldoc.perl.org/Module/Load.html

Perl Module のバージョンを調べるいろいろな方法

半分メモです。 下の記事に色んな方法が載ってました。 モジュールのバージョンを確認するときどうやってますか? - JPerl Advent Calendar 2010 Casual Track 自分のシェル環境にもなにか入れておこうと思いました。 最初はかんたんに alias にしようかと思…

プロジェクトで使用するライブラリが増えてきたので git submodule を使ってみる

Git

(1) submodule を配置するディレクトリを決める 今回は単純に submodule/ とします。 (2) プロジェクトに submodule を追加する git submodule add https://github.com/key-amb/bash-pmver.git submodule/bash-pmver git commit -m "add submodule key-amb/b…

Perl で非ループなブロックで last を使う

if if ブロックを途中で抜けたいときにたまに使うことがありました。 if {{ # do something last if $error; # do something }} {{ にしているのがミソで、if {} の内側の {} がブロックということです。 eval eval は last で抜けられないのですが、同様の…

LTSV なログをコマンドラインでさくっと吐くやつ作った

GitHub - key-amb/bash-logltsv: A Handy CLI to print LTSV logs いざ手元でやろうとすると date コマンドのオプションを調べたりするのが面倒だったので、書いた。 使い方はこんな感じ: $ logltsv key1:value1 key2:value2 [...] time:2014-12-10T20:55:11…

git clone 時に最新の履歴だけを取得する

Git

git clone すると、通常は過去の履歴をまるごと取ってきますが、歴史の深いプロジェクトだとそれだけで時間が掛かる、ということは往々にしてよくあることだと思います。 そんなとき、--depth <N> オプションをつけると、履歴を <N> 個しか取得しません。 以下は例</n></n>…

(メモ) bash でコマンドラインオプション解析

getopts を使うこともできるが、ロングオプションをサポートしてないとかあるので、下の記事によれば自前解析が一番よさそうとのこと。 bash によるオプション解析

(メモ) Ruby on Rails - Assets on Cloud

Rails の機能の1つで、静的コンテンツ(assets)を Amazon S3 などクラウド上に配置できるようだ。 参考 Railsアプリケーションを公開するならAssets on Cloudパターンを使おう - 働かないプログラマのメモ帳

openssl コマンドで POODLE 脆弱性を確認する

openssl コマンドにはいろんなサブコマンドがありますが、その内の s_client というコマンドで SSL/TLS クライアントを動かすことができます。 指定のサイトで SSLv3 が動いているか(POODLE脆弱性があるか)は以下のコマンドで確認できます。 openssl s_clien…

MySQL 5.6 Delayed Replication

アプリケーション開発などで意図的にレプリ遅延を起こして検証したいようなときがあります。 そういうとき、MySQL 5.5 以前では mk-slave-delay - Make a MySQL slave server lag behind its master. のようなツールを使う必要がありましたが、MySQL 5.6 で…

RSS はオワコンか?

去る2014年10月1日、livedoor Reader のサービス終了が発表されました。 【重要】 livedoor Reader サービス終了のお知らせ : livedoor Reader 開発日誌 【重要】 livedoor Reader サービス終了のお知らせ|livedoor Reader 開発日誌 ※(追記) 10月15日にサー…

MySQL Seconds_Behind_Master とレプリケーション監視

MySQL の Seconds_Behind_Master はレプリケーションの遅延具合を手軽に確認できる指標ですが、いくつか問題もあるようです。 公式ドキュメントでは次の制限が示されています。 ネットワークが遅い環境では有用な指標ではない また、MySQL 5.5, 5.6 のドキュ…

Perl 関数の Export/Import

Perl の標準モジュール Exporter を使った関数の Export/Import のやり方をまとめておく。 この機能を使って関数をインポートすると、"MyApp::afunc" のようにパッケージ名を指定せずとも関数を組み込み関数のように "afunc" だけで呼び出せる。 基本的な使…

メモ - ctags で Vim 開発を快適にしたい

やりたいこと: tag ジャンプ tag 一覧表示 tag の自動更新 tag 保存先カスタマイズ …とあるが、 ctagsをちゃんと使う に書いてあることを真似すればできそう。

Perl でプロジェクトのモジュール全部について use_ok のテストをしてくれるテストモジュール

See Test::UseAllModules - search.cpan.org use Test::UseAllModules; BEGIN { all_uses_ok(); }

File::Which を使って perl で which

See File::Which - search.cpan.org use File::Which qw(which); my @paths = which('perl');

YAML のバージョンについて

YAML にもいくつかバージョンがある。 The Official YAML Web Siteを見るとよい。 2014/8/16 現在、 YAML 1.0 - 1st release YAML 1.1 - 2nd release YAML 1.2 - 3rd release だそうだ。 プログラムで YAML を呼び出すとき、YAML のどのバージョンを前提とす…

メモ - Perl で Readonly の変数を変更してテストする

Julius Plenz - Blog - Modify a Readonly scalar in Perl for testing purposes の方法で上手く行った。

メモ - Mac で Zsh を使う

.zshrc は下記を参考にしている。 少し凝った zshrc

はてなブログで使える Markdown 記法のメモ

既に非常によくまとまった記事を見つけたので、詳細はそちらを参照下さい。 はてなで使えるMarkdown記法まとめ - 開発メモ はてなブログで「Markdown記法一覧」を書いてみるテスト - そっと、はてなブログ 個人的に特筆したいことだけ以下に書きます。 シン…

Zsh メモ - git ブランチ名の表示

Mac の zsh だと git-completion はデフォルトで入っていたのですが、git ブランチ名はどう表示したらいいのかな、ということで調べました。 とりあえず下の記事に倣うことにしました。 Git だろうと Mercurial だろうと、ブランチ名をzshのプロンプトにスマ…

Mac のキーボードで Vim の paste モードを素早く切り替える Tips

vimrc にこう書くことにしました。 " paste nnoremap ,i :<C-u>set paste<Return>i autocmd InsertLeave * set nopaste 通常モードで「,i」入力で set paste 付きの挿入モードに移行できます。 挿入モードを終えると、自動的に paste モードも抜けます。 ぐぐるとよく ima</return></c-u>…

メモ - CentOS で sudo 時に /sbin にパスを通す方法

下記のようなコマンドで上手く行かないことがありました。 $ ssh $host "sudo service httpd restart" sudo: service: command not found どうも /etc/sudoers の設定が足りないそうです。 下記の記述を有効にすればよいとのこと。 $ sudo visudo : Defaults…

Git メモ - 日本語ファイル名の表示

Git

下記設定で行けます。 $ git config --global core.quotepath false これで日本語ファイルが git status や git log などで表示されるようになります。 参考 git/日本語ファイル名をgit statusなどで表示する方法 - TOBY SOFT wiki