今日 | 05/07 | 05/06 | 05/05 | 05/04 | 05/03 | 05/02 | 全参加数 | |
---|---|---|---|---|---|---|---|---|
総合ランキング(IN) | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 1,034,672サイト |
INポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
OUTポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
PVポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
写真ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 32,673サイト |
今日撮った写真 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 1,534サイト |
本ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 14,714サイト |
書評・レビュー | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 3,909サイト |
IT技術ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 9,768サイト |
プログラム・プログラマー | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 929サイト |
今日 | 05/07 | 05/06 | 05/05 | 05/04 | 05/03 | 05/02 | 全参加数 | |
---|---|---|---|---|---|---|---|---|
総合ランキング(OUT) | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 1,034,672サイト |
INポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
OUTポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
PVポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
写真ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 32,673サイト |
今日撮った写真 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 1,534サイト |
本ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 14,714サイト |
書評・レビュー | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 3,909サイト |
IT技術ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 9,768サイト |
プログラム・プログラマー | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 929サイト |
今日 | 05/07 | 05/06 | 05/05 | 05/04 | 05/03 | 05/02 | 全参加数 | |
---|---|---|---|---|---|---|---|---|
総合ランキング(PV) | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 1,034,672サイト |
INポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
OUTポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
PVポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
写真ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 32,673サイト |
今日撮った写真 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 1,534サイト |
本ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 14,714サイト |
書評・レビュー | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 3,909サイト |
IT技術ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 9,768サイト |
プログラム・プログラマー | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 929サイト |
IntelliJ IDEA の右クリックから Atom でファイルを開けるようにする (ついでに Thunar からも)
IntelliJ IDEA File > Setting > Appearance & Behavior > Menus and Toolbars に各ポップアップメニューの項目があるので、そこの任意の位置に External tools に登録 (後述) しておいた Atom を配置します。 External tools に登録 File > Setting > Tools > External Tools の [+] ボタンをクリックして登録を行います。コマンドラインから開く時と同じように設定すればそれで動きます。 ただ Open console のチェックをはずす、 Parameters…
Terminator (ターミナル拡張) のタイトル部を、ウィンドウごとに任意のものに変更する (bash)
ターミナルを立ち上げまくっていると上のようなことになってどれがどれだかわからず大変につらい。 このタイトルはプロンプトの変更と同じく PS1 に食わすことで変更できます。プロンプトを生かしたままで変更しなければならないので ~/.bashrc などに関数を定義して一発で変更できるようにします。 set_title () { ORIG=$PS1 TITLE="\e]2;$*\a" PS1=${ORIG}${TITLE} } set_title EC2 Terminator ではフォーカスがあたっているターミナルのタイトルが表示されるので、分割しまくっている場合は Broadcast all など…
Amazon Linux で普通に yum install した Nginx の auth_request_module を有効にしたい
現在の設定をそのままにコンパイルし直すという手を使いました。 nginx -V で現在の configure を得る 1 で得た configure に --with-http_auth_request_module を加える Nginx 同バージョンのソースを得る ./configure が通るまで足りないライブラリを追加する make && make install nginx -s reload $ sudo nginx -V # 略 $ wget https://nginx.org/download/nginx-1.10.3.tar.gz # 移動とか略 $ sudo yum inst…
そもそもきちんとログに出してログを見ろという話ですが、 return を使えばどの変数になにが入っているかを簡易に確認できます。 server { listen 9998; location = /check-header { add_header Content-Type text/plain; # ステータスコードとボディ文字列 return 200 $http_user_uuid; } }
特に夏だからというわけではないが体重を 10 kg 減らしたのでグラフ
減りました。 2017/3/27 開始の本日までのグラフです。(記録がとんでる部分があるので日数は一致しない) test なぜ? 2017/3/27 に行った人間ドックの最後の説明で空腹時血糖値が境界を超えてアウトだったので「ヤバいマジ糖尿」という雰囲気のことを言われた。 (なお HbA1c は普通で、しかも後日普通の健康診断で普通に血液検査をしたところ、ちょっと高めではあるが境界にも達していない平常値だった。脅しすぎ医者 + ビビりすぎ私) どうやって? 食事を減らした 減らした後の食事はおおむね以下の通り 朝: 魚肉ソーセージ 4 本 朝から昼にかけて: サラダチキン 3 枚 夜: 100…
Rails の ActiveRecord での lock! の細かい話
前プロジェクトでログを眺めていて気づきました。仕組みを考えれば確かにという感じだった。 class User < ApplicationRecord after_initialize -> { logger.info('Instantiate!') } end User.find(1).lock! # User Load (0.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1 # Instantiate! # User Load (0.3ms) SELECT `users`.* FROM `users` WHER…
みなさん、静かな環境で心穏やかにお仕事されていますでしょうか? わたくし、前職は非常におしゃべり好きな人間がおおい職場で、さまざまな会話音声により集中力をそがれておりました。他人のくだらない音声ほど集中力をそぐものはないと思います。 そんなわたくしに心の平穏をもたらした 2 つの道具を紹介させていただきます。 ぶっちゃけた話、耳栓 イヤホンなどで大音量で音楽を流すという手もあるのですが、それはそれで音に集中力を持っていかれるので、やはりここは静寂を求めていきたいところです。 そこで、以下の 2 つを組みあわせることで、比較的安価にあなたの耳に静寂を取り戻すことができます。 イヤーマフ PELT…
あの震災から時間が経つうちに、身の回りで人間結構死んだな〜みたいな感慨があった。 (先週ぐらいに震災と人間が紐づく品が出てきたのだった)
Ruby on Rails + webpack-dev-server で Development.
Rails で JavaScript が必要なプライベートプロジェクトでは、ながらく Npm + Watchify + Gulp + Rails を手動起動などしながらすすめていましたが、最近、意を決して Yarn + Webpack + Rails に変更しました。そこで、Rails と JavaScript の接合点も Railsway にのった設定に変えようと思いました。(今までは public/css を直接参照していた) ざっと検索したところ、webpack-dev-server 経由で JavaScript を参照する場合、あらたな helper を用意する方式しか見つけられなかっ…
一人暮らしももう 20 年に近くなりますが、洗濯機が家にあったことがありません。家に洗濯機がないので、コインランドリーを利用しています。利用料金は洗濯に 1,200 円、乾燥機に 700 円ほどです。 15kgの洗濯物も22kg対応の横ドラムで一発よ— おふくろさま (@o296sm) February 7, 2016 乾燥機は 25 kg対応の大型のものが 700 円で 56 分ほどまわります。本来はそこまでの容量のものを、そこまでの時間回す必要がないのですが、とにかくパリパリにするのが好きなのでまわします。 俺が洗濯機を買わないのは、適切に干すのが苦手で、なおかつ乾燥機でパリパリにするのが…
top コマンドで得られる結果をどう見ていけばいいのかわからないので、とりあえず視覚化した
もともと一つの処理であるとか、一つのメソッドであるとかの処理時間には興味があって、測定などをしていました。ActiveRecord を使うにあたって発行クエリを抑えることにより、本当に早くなるのか確かめたりするのがすきです。 全体的なパフォーマンスを測定し、改善に繋げる知識がない そういう局所的なものは何度もまわして処理時間を取って、という方法でなんとなく測定をできるのですが、Web アプリケーション全体の負荷の把握方法や、運用においてのスローダウンの原因究明などに使える情報などの取得については、ほとんど知識がありません。 ぐぐることにより、各種コマンドで負荷を数値化できることはすぐにわかりま…
Go 言語でつくったもののメモリとかをなんとなく見れるようにする
pprof を用いた詳細な情報を得る方法はさんざん紹介されており、しかしその詳細の情報のどこを見ればいいのかわからないので、とにかく簡単に見れるような施策を打ってみました。 これは社の Slack で動いてるボットの一つの強制停止画面ですが、ボットは継続して動いているので、メモリリークなどが気になるところです。ということで、グラフかつ、前後の増減がスッと把握できるようにしました。(これは短期すぎて役に立たなさそうですが) グラフの描画は雑に C3.js で行っており雑な JavaScript なので特にあらためて何もないのですが、グラフを描画する用のデータ配列に関しては、今後もちゃんと把握して…
Go 言語で struct を url.Values に展開した
現在勉強用に作っているボットでは、Slack の API を使います。勉強用なので、ライブラリを使わず、独自に実装しています。API ではエンドポイント毎にさまざまな要求パラメーターがあって、その引数を自由な形式にすると間違いのもとになるので、専用の struct を用意して間違いが起こらないようにしています。 func (a *API) ChatPostMessages(p ChatPostMessageParameters) (ChatPostMessagesResponse, error) { var r ChatPostMessagesResponse err := a.postAnd…
Go 言語でつくったボットを GitHub -> CircleCI -> Bluemix と自動デプロイできるようにした
Golang でのボット作成では、1 個目は自 PC で動かすことしか考えていませんでしたが、2 個目はきちんとどこかにデプロイすることを目標に作成していましたので、ついでに自動でやれるようにしました。 Heroku では 24 時間稼働のボット用途には不向きだと思われたので、IBM Bluemix にデプロイ先に選びました。Bluemix もデフォルトで Golang をサポートしていますが、ビルトインの buildpack だと Godeps のバージョンをきちんと読んでくれなかったり (これは気のせいかもしれない) したのでgithub にあるものを利用したりして色々とあれでしたが、うま…
Slack で動いてるボットの処理が長い場合、フィードバックとしてインジケーターを出すということをやった
いま golang の練習用に作成しているボットには、URL をわたすと、そのサイトのキャプチャを撮影する機能があります。諸事情からボットのいるマシンとは別の場所、Heroku に設置していますが、起動が遅かったり、キャプチャ自体が遅かったりするので、ちゃんとやっていってるのかわかりません。そこで、ローディングインジケーターを出すことにしました。 できあがり 「こはる」とは社の Slack にいるボットですが、対抗して golang でつくっているのが「ごはる」です。かわいいですね。 アイコンの元ネタには以下を使わせてもらっております。 github.com インジケーター まずインジケーター…
Ruby 外から Web アクセスする何か (Capybara とか、cli とか) を RSpec でテストするときのアクセス先をモックする
mmmpa.mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmpa.net のテストをこの方法で行いました。 本編 たとえば、Capybara は各種ブラウザを介するアクセスのため、webmock が効かず、別の gem が必要なのは有名です。 https://github.com/oesmith/puffing-billy Capybara でテストする際はこれでいいのですが、Capybara をテストする場合には不便かもしれませんね。 また、バッククォートや Open3 を用いて呼びだすような cli、たとえば sie…
siege をラップして多少細かい情報をまとめる gem 書いた。
github.com Usage たとえば Rails 内でこうやる。 re = SiegeSiege.run( time: 20, concurrent: 4, user_agent: false, urls: [ "http://localhost:3002#{students_path}", "http://localhost:3002#{students_path} POST name=abc", SiegeSiege::URL.new("http://localhost:3002#{students_path}", :post, {name: 'abc'}), ] + Student…
Capybara で Chromedriver をつかってモバイルモードでテストする時の Capybara.register_driver とか
だいたいのサイトは User Agent で切り替えてると思うので、わざわざモバイルモードでテストが必要なのかしらとか思わないでもない (ダブルタップとか、スワイプをテストする?)、が一応メモ。 Capybara に Driver として登録 # chromedriver configuration # chrome の起動オプションが使える http://peter.sh/experiments/chromium-command-line-switches/ # デフォルトではサブのディスプレイに表示してしまうので、ずらしている default_args = %w( --window-pos…
RSpec とか Capybara の Example 内で使いたいメソッドをクラス単位でまとめて使いやすくする gem を書いた。
これ github.com 先週の gem は 80 行ぐらいだったんですが、今回は 40 行です。 なぜ 入社してからこっち、ずっと Vue.js で SPA 制作という業務に従事していましたが、UI 系の宿命で (一部しか) テストがない。 そんななかで、わりと分岐の多い (難しくはない) 実装をすることになって、これは手作業では (変更の都度に) 確認しきれんなということで Capybara に出張ってもらっていました。テスト維持コスト問題というものがあるので、業務リポジトリには入っていない、ローカルでのみ存在する Capybara です。かわいいよ。 そんななかで find や all…
最近 SQL にはまっているので、ついでに Rails というか ActiveRecord で発行された SQL query をカウントする gem を書いた。
Installation gem 'a_r_q_logger' github.com せつめい ActiveRecord::Base サブクラスのインスタンス生成をできるだけ抑えれば、それだけ処理時間が抑えられるのは自明とされています。 そこで、今は、できるだけ少ない queries に抑えることを目的として SQL の練習をしていますので、すぐわかるようにしました。 その練習を進めていく上で、その 1 query の処理時間が気になっており、SQL のみの処理時間もとれるようにしましたというか、出発点はこっちです。 pry(main)> ARQLogger.log { 3.times { T…
「ブログリーダー」を活用して、mmmpaさんをフォローしませんか?