サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
momota.github.io
最近 Slack クローンの mattermost のチャットボットを Python で作った。 そのコードをテストしたかったときに unittest を覚えたのでそのメモ。 1 2 $ python -V Python 3.6.4 :: Anaconda, Inc. ディレクトリ構成は以下。 1 2 3 4 5 6 $ tree . |____log | |____mattermost_bot.log |____mattermostbot.py |____test_mattermostbot.py mattermostbot.py: ボット本体 test_mattermostbot.py: テストコード log/ : ログ保存用のディレクトリ チャットボット mattermost の統合機能から「外向きのウェブフック」を設定する。 チャットボットは bot_name COMMAND AR
MySQL 5.7 のパフォーマンスチューニングについて、調べてたのでまとめる。 // 結構な文量になってしまった… 大きく、2つのアプローチがある。 DBチューニング システム変数 (my.cnf) のチューニング 全体最適 アプリ (SQL) チューニング 個別最適 まあ、地道に、計測→問題点の特定→修正→計測… のサイクルを回すしかない。 1. DBチューニング ディスク構成関連 ログファイルとデータファイル (たとえば、システム表領域データファイル) を別の物理ディスクに配置することでI/O性能が向上する InnoDBデータファイルをRawデバイスに置くことで、I/O性能が向上する OSマウントオプション noatime を無効化する Linuxのファイルシステムには、ファイル読み込み時刻が「atime」として保存される。1ファイルアクセス当たりのオーバーヘッドはささやかだが、大量
ネットワークエンジニアのみなさん、こんにちは。 ネットワークエンジニアのための junos.vim の cisco バージョンです。 cisco の configuration をカラーリングする vim プラグイン momota/cisco.vim を作ったのでご活用下さい。 対象は、cisco ルータと Catalyst スイッチ、Nexus スイッチです。 色を付けることによって、configuration の解釈を手助けしたり、 configuration 作成時のミスに気づきやすくしたりする効果が期待できます。 (誤ったタームを入力すると色が付かないので) 以下のようにカラーリングします。 (colorscheme は molokai) before after インストール NeoBundle で vim プラグインを管理している人は以下の行を.vimrc に追加して
ネットワークエンジニアのみなさん、こんにちは。 Juniper の configuration をカラーリングする vim プラグイン momota/junos.vim を作ったのでご活用下さい。 対象は、Juniper EX シリーズとSRX シリーズです。 色を付けることによって、junos configuration の解釈を手助けしたり、 configuration 作成時のミスに気づきやすくしたりする効果が期待できます。 (誤ったタームを入力すると色が付かないので) 以下のようにカラーリングします。 (colorscheme は molokai) before after before: display set モード after: display set モード cisco 版はこちら ネットワークエンジニアのための cisco.vim インストール NeoBundle で v
textlintで日本語テキストの文字校正を試してみた とかで、lint 系の記事を目にしたので そろそろ導入してみるか、と思い立った。 RuboCop はRuby の静的コードアナライザ。 bbatsov/rubocop The Ruby Style Guide に沿ったコーディングスタイルに矯正(注意)してくれる。 無駄なスペースが入力されている、とか、無駄な改行が入っている、とか、 この変数1度も使われてないよ?とかクラスの中の行数が多すぎる、とか、 1行の文字数が長すぎる、とか。 大人数で開発していると細かなコーディングスタイルを合わせるだけでも面倒なので こういうツールによって人間が矯正されると AI 時代に思いを馳せることができて良い感じですね。 RuboCop インストール gem でインストールする。
ブラウザ操作の自動化: Selenium と Ruby でも書いたが、 selenium が便利すぎて、最近よくスクリプトを書くようになった。 以下のようなノウハウが溜まってきたので、ここらで放出する。 ウィンドウサイズのリサイズ ウィンドウ位置の移動 スクリーンショットの取得 要素セレクタメソッドの使い分け ドロップダウンリストの選択 マウスオーバ (hover) フレーム移動 ポップアップダイアログの扱い コード量を減らすためのモンキーパッチ よく採るプログラム構造 インストール方法などは ブラウザ操作の自動化: Selenium と Ruby を参照。 selenium用スクリプト開発のノウハウというべきかコツといういべきかアレな感じだが、結局、 スクレイピングと同様にHTML構造を理解することが必要なのでブラウザ付属の開発ツールが 手離せない。 Firefox 開発ツール chro
selenium と ruby を使ってブラウザ GUI 操作を自動化する。 selenium は、Web アプリケーションの自動テストのためのツール。 レグレッションテストによく使われているようだ。 selenium は、ブラウザ操作シナリオを事前に設定して、シナリオ通りに実行してくれる。 シナリオ設定といっても、Firefoxプラグインの Selenium IDE などを使うと操作を 記録してくれる機能があるのでそこまで大変ではない。 詳細は、Ruby アソシエーション – selenium の “1.2 テストの作成” あたりを参照してほしい selenium は、クロスブラウザのツールで、IE を使って IE限定みたいなサイトでも使える。 IE や Chrome で使うには各 Selenium WebDriver が必要となる。 テスト用と言いつつ、使い道はいろいろとある。 社内の
CentOS 7 を USB メモリからインストール で書いたが、まっさらなCentOSが手元にあったので ansible を使っていろいろインストールしてみた。 ちょっと前に、Ansible 2.0 Has Arrived という記事も話題になってたし。 ansible は Chef のような構成管理ツール。 システムの設定や、ソフトウェアのデプロイ、オーケストレーションなどが可能なIT自動化ツール。 管理対象ノードが多いほどメリットが大きい。 Chef と比較すると、エージェントレスのアーキテクチャで、Chefのように特定言語(Ruby)を学ぶ必要はなく、YAMLで構成を表現する。 これは、Playbookと呼ばれる。Chef でいうレシピ。 マネージャ側は最近は大抵プリインストールされている python とansible さえインストールすればよい。 クライアント側は、マネージャか
チャットツール slack に常駐する bot をつくったので、そのときの導入メモ。 bot 開発には lita を利用した。lita は Ruby で書かれた chat bot フレームワーク。hubot にインスパイアされて開発されたようだ。 js (coffee script) よりも ruby のほうがとっつきやすかったので採用した。 環境は、ubuntu 14.04, ruby 2.1.5, lita 4.0.4. ゆくゆくは、iRKit とか使って家電と連携したりしたい。 今回の構成図を上記に示す。 1. 事前準備: もろもろインストールする 1.1 lita をインストール lita は gem でインストールできる。
rails には挫折したおれが、rails アプリケーション以外で ActiveRecord を使うようになった件について。 ActiveRecord は O/Rマッパーで RDB のテーブルエントリをオブジェクトとして扱えるようにするやつ。1インスタンスが、テーブルの1レコードに相当する。 Ruby on Rails 標準で、モデル層で使われる。 環境は以下。 Mac OSX ruby 2.1.1p76 MySQL mysqld5.6.17 最終的なディレクトリ構成は以下のようになる。 . ├── Gemfile ├── Gemfile.lock ├── README.md ├── Rakefile ├── app │ └── models │ └── hoges.rb ├── app.rb ├── config │ └── database.yml ├── db │ └
自分の windows マシンへのインストール記録として。ちなみに windows 7。 何かよいソフトがあれば追記していくつもり。 MS Office も毎日触っているけど割愛。 後半疲れて雑になっている感じはある。 テキストエディタ vim 会社標準は秀丸だが、kaoriya-vim を使っている。 別エントリにするつもりだが、機能が豊富かつ軽量なのが選定理由。 syntax highlight 正規表現での文字列検索・置換 ファイル横断の文字列検索 補完機能 レジスタ ウィンドウ分割 豊富なプラグイン IME Google 日本語入力 Google 日本語入力 を使っている。学生の頃、学校に講演に来てくれた工藤拓さんが開発者。なので、なんか親しみ深くリリースされてからずっと使っている。 “XX(会社名) YY(名前)です。” とか “お疲れ様です。” 的な定型文をいちいち登録しないで
一時期 wiki くらいの用途でしか使わなくなっていた redmine。 最近、問合せドリブンの雑多なタスクが増えてきてそれらのタスク管理と、チーム内への対応状況の シェアがめんどくさくなってきた。チケットでそのあたりのタスク管理とか、進捗管理、スケジュー ル管理して、チームメンバーには redmine さえ参照してもらえれば把握してもらえるようするため、 改めて redmine を使うようになってきた。 redmine ではチケットに期限を入れてあげるとガントチャートを自動生成してくれる。このガント チャートがデフォルトだとすこぶる不評だったのでもろもろいじった。そのメモ。 環境は、CentOS, Redmine 1.3.1.stable (MySQL)。 REDMINE-HOME は、/var/lib/redmine/。 redmine ガントチャートのチケット単位に担当者名を表示する
$ gem install bundle $ bundle -v Bundler version 1.3.5 $ bundle install --path vendor/bundle Fetching gem metadata from https://rubygems.org/......... Fetching gem metadata from https://rubygems.org/.. Resolving dependencies... Installing rake (10.1.0) Installing Platform (0.4.0) Installing open4 (1.3.0) Installing POpen4 (0.1.4) Installing archive-tar-minitar (0.5.2) Installing ffi (1.9.0) Instal
今回はこれまで作った sinatra アプリケーションを PaaS の heroku へデプロイする。 事前に heroku には sign up しておこう。 最初にできあがりを示す。 heroku: http://sample-mongo-app.herokuapp.com/ github: https://github.com/momota/heroku_sinatra_sample rails から外れた僕らは sinatra で i did it my way (1) sinatra の基本 (ルーティング、ヘルパー、フィルター、テンプレートエンジンなど) rails から外れた僕らは sinatra で i did it my way (2) sinatra で MongoDB を使ったデータ永続化 HTTP POSTへの対応 Bootstrap でのお化粧 rails から外
前回の “sinatra で rails から外れた僕らは sinatra で i did it my way” の続き 今回は、mongodb を使って簡単な sinatra web アプリケーションをつくってみる。 また、bootstrap3 で簡単に見た目を綺麗にしてみる。 rails から外れた僕らは sinatra で i did it my way (1) sinatra の基本 (ルーティング、ヘルパー、フィルター、テンプレートエンジンなど) rails から外れた僕らは sinatra で i did it my way (2) sinatra で MongoDB を使ったデータ永続化 HTTP POSTへの対応 Bootstrap でのお化粧 rails から外れた僕らは sinatra で i did it my way (3) sinatra の heroku へのデ
sinatra は ruby の web アプリケーションフレームワーク。rails よりもシンプルで柔軟なプログラムが可能となる。つまり、しかれた rails に乗り切れない人のためのフレームワーク。 本稿では以下について書く。 sinatra インストール hello world アプリケーション ルーティング フィルタ ヘルパー テンプレートの呼び出し rails から外れた僕らは sinatra で i did it my way (1) sinatra の基本 (ルーティング、ヘルパー、フィルター、テンプレートエンジンなど) rails から外れた僕らは sinatra で i did it my way (2) sinatra で MongoDB を使ったデータ永続化 HTTP POSTへの対応 Bootstrap でのお化粧 rails から外れた僕らは sinatra で
bash や tcsh でいいよ、って人もだまされたと思って zsh 試してほしい。もう元に戻れないくらい便利だと感じてもらえるだろう。本番環境のサーバにも入れたいくらい。 zsh そのままでも十分便利だけど、oh-my-zsh を入れるとさらに便利になるよ。 oh-my-zsh はオープンソースで zsh の便利設定やカラーテーマなどがまとまっているもの。 以下では、zsh インストールと oh-my-zsh の導入について記載するよ。 0. zsh の特徴, つまり導入メリット wikipedia に zsh の特徴がまとめられているが、その中でも特に以下が個人的に便利だと思う。 プログラム可能な補完機能に拠って、多くのユーザーコマンドのオプションや引数を打つのを支援する インストールの時点で数百のコマンドをサポートしている スペル修正機能 間違いを正すのはもちろん、大文字を小文字に変
man コマンドで表示するマニュアルページに色付けする man コマンド、man コマンド、マンコマンド… 連呼している私はもう今年で31歳です。こんばんわ。 ~/.zshrc [bash 使いなら ~/.bash_profile ] に以下を追記するとman に色がついて読みやすいっす。 man() { env \ LESS_TERMCAP_mb=$(printf "\e[1;31m") \ LESS_TERMCAP_md=$(printf "\e[1;31m") \ LESS_TERMCAP_me=$(printf "\e[0m") \ LESS_TERMCAP_se=$(printf "\e[0m") \ LESS_TERMCAP_so=$(printf "\e[1;44;33m") \ LESS_TERMCAP_ue=$(printf "\e[0m") \ LESS_TERMCAP
vimはhjklな変態的キーバインドから敬遠されがちだと思うけど強力なプラグインがあってこそ、やめられないとまらないわけであって、ここではプラグインの導入方法や管理方法を記載します。 ノーマルなプラグイン導入 プラグインファイルをダウンロードしてくる ダウンロードしたプラグインファイル一式を runtimepathで指定されたディレクトリ以下に放り込む 通常は $HOME/.vim 。runtimepathは以下のviコマンドで確認できる。
人気のカラースキーム Solarized を、PuTTYへ適用する。 ちなみにパティと発音するみたいですね。ずっとプティと発音してました。 適用イメージは以下。 before after 環境 windows 7 professional service pack 1 PuTTY 0.60-JP_Y-2007-08-06 ちなみにフォントは、”Osakaー等幅” を利用 solarized_dark.reg (solarized_light.reg)をダウンロードする https://github.com/brantb/solarized/tree/master/putty-colors-solarized solarized_dark.regをダウンロードし、C:¥Program Files (x86)¥PuTTY¥ に保存 solarized_dark.regを修正する http://
このページを最初にブックマークしてみませんか?
『momota.github.io』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く