カテゴリー別アーカイブ: Diary(日記)

RubyKaigi 2016に行ってきた


RubyKaigi 2016 に行ってきた。
京都開催ということで美味しいものもいっぱいあったし、なにより懇親会で「まつもと」という日本酒がとてもうまかった。
技術的ことはもっと身につけないとという意識が高まったし、英語のトークが資料を見ながらふんわり理解できるくらいなのがだいぶ悔しい感じだったので、どっちももっと頑張らないとという意識が高まったのが参加したメリットだったかも。

まつもと

以下からは簡単なメモ。

スライドなどは以下のサイトにまとめられていました。動画も後日公開されるかもです。

「RubyKaigi2015」全公開済みスライドまとめ #rubykaigi | TechStars Blog

Binding(How to create bindinngs 2016)

GObject Instropection を使うのが良い
C拡張Lib だけど Bindingではないものもある。
Ruby FFI(libffi implを使ったライブラリ)

require 'gi'
GI.load

Scalable Job Queue System Built with Docker

Cookpad Barbeque というジョブキューの発表でした。
とてつももなく参考になる内容だった!!

Modern Black Mages Fighting in the Real World

fluentd1.4系の黒魔術のすごさ。。。

シェルのreadlineについて改めて調べてみた


ターミナルで作業していると、よくカーソルを行頭・行末へ一気に移動したいとか
入力した文字列をコピーしておきたいとか。。。などなど、色々やりたくなります。

そこで、、、readline だ!!!ということで色々とショートカットを調べてみました。

よく利用するショートカット達

C-a  行頭へ
C-e  行末へ
C-j  改行

C-b  一文字戻る
C-f  一文字進む

C-h  Backspace
C-d  delete

C-k  現在のカーソルから行末までをyank
C-u  現在のカーソルから行頭までをyank
C-w  単語単位でバックスペースでyankする
C-y  ペースト

C-l  画面をクリア

C-p  コマンドヒストリを戻る
C-n  コマンドヒストリを進める

C-r  コマンドヒストリをインクリメントサーチ(向きバック)
C-s  コマンドヒストリをインクリメントサーチ(向きフォワード)

注意)

  • man readline でその他のコマンドが調べられます。
  • 自分はzshの環境を使って実際に動かして試したので、各々の環境で少し違う点が出てくるかもしれません。

YAPC Asia 2013 へ参加してきた(メモ)


YAPC Asia 2013に参加してきました。初めて大型のカンファレンスへ参加しました。
単純にすごい刺激を受けました。

カンファレンス中に1つのモジュールをCPANにリリースする @tokuhirom さんとかすごすぎと思いました。
でも、とはいえやっぱりエンジニアとしてやっている以上、何か作って残していこうと思いました!!

それから数日後、初めてPull Requestが取り込まれたりして今後の1年間は積極的にオープンソースと関わったり、自分のプロダクトを出していこうと思います!!

ホント刺激になった。。。

ここからはあYAPCの時に気になったことのメモ

いまどきのカジュアルなデータベース開発

知らなかったMysql型 : utf8mb4

モダンPerlリファクタリング

  • CUIのプログラム
    モジュールをテストしやすい形に直す。
    テストから利用しやすいインターフェースにする。
    end2endのテスト(Test::Base)

  • Webアプリ
    Plack化する
    Plak::App::WrapCGIでPlack化する
    Plack化もできない場合はやはりEnd2Endのテストをする( Capybara )

  • 繰り返す
    より粒度の細かいテストを追加して、リファクタリングを進める

  • バグ
    バグを見つけたらバグを再現するテストを書く(回帰テスト)

  • 継続的に
    Travis-ci
    Guard + guard-tap
    テストは ほどほど にやる

  • リファクタリング
    リファクタリングの最初の一歩のEnd2Endのテストを書く。
    回帰テストで細かく進めていく

perl な web application のためのテスト情報

File::Temp
ファイルのアップロードなどのてすとで並列実行させたい時にアップロードするファイル名を変更する
tempfs

Programming AWS with Perl

AWS Command Line Interface とかの話

スライド:http://sssslide.com/http://www.slideshare.net/horiyasu/programming-aws-with-perl-at

AWS_CLIの使いかた
インストール方法
% pip install awscli

~/.aws/config にACCESS_KEY などを設定する

What’s new in Carton & cpanm

スライド:https://speakerdeck.com/miyagawa/whats-new-in-carton-and-cpanm-at-yapc-asia-2013

アンインストール
% cpanm uninstall Hoge

本当にあったレガシーな話

  • ログを取る
    • コメントアウトしているwarn()とか意味ない
    • スイッチ一発でログ出力したい
    • 基本はLog::Minimul
    • 本番環境にログを制御するコードを
    • 定数フラグでログ出力を制御する(if文で丁寧に細かくログ出力するコードを入れていく)
    • ログを丁寧に仕込むことで
  • mod_perlのApache::RequestをPlack::Requiestにする
  • Server::Starter
    –spawn-interval オプションでワーカープロセスの再起動を間隔空ける
    Server::Starter、Starman、Starletを使ったオレオレ運用方法
watchコマンドでプロセスの起動状況が見られる
% watch  -n 1 "ps -ef "
  • Rubyのkage

リンク集

Kansai.pm 第15回ミーティング 参加しましたー


Kansai.pm 第15回ミーティング
* 2013/2/23 14:00 -Yahoo大阪(大阪富国生命ビル27F)

ビルはとても綺麗だった。部屋も広くてとても快適に過ごせましたー!!参加した際の備忘録としてのメモ書き程度に。。。

『Webサービスのつくり方』のつくり方[@yusukebeさん]

オモロキでの仕事を7割。ボケて の開発。オモロキで爆速開発
Webサービスの作り方 著者

  • 2010年から2012年の間に執筆
  • MarkDown + Byword で執筆
  • DropBoxでファイルを共有
  • 自作アプリ「Dropdown」
    • マークダウンっぽい拡張子のファイルを Text::Markdown でWebページでプレビュー
    • WebService::DropBox を使ってDropbox内のファイルをプレビュー
  • Webサービスの作り方で書けなかった内容
  • Mojolicious推し
  • MVCモデルについて
  • Model重要・・・使いまわせる

BokeのWebアプリは以下の様なレイヤ構成になっている(上から順に高レイヤ)

  1. Bokete::Web::Controller::Boke
  2. Bokete::Model::Boke
  3. Bokete::DBx
  4. SQL::Abstract::Limit +DBI
  5. MySQL

Validationも工夫
* Form::FormValidator::Lite
* data on Model -> Data::Validator

  • AWS
    自動化、冗長化を助けてもらう
  • Cinnamon かわいい
    naoyaさんのレシピほぼまんま使っている

【感想】
WebService::DropBox(使ってみたい)
Cinnamonの評判が色んな所でいいとあるよな


MovableTypeについて[@junnamaさん]

WordPressのテンプレートとCakePHPのViewを 書ける

【感想】
MTの話ちょうど気になっていたので参考になった!!


コピペ検出器について(仮)[@goccy54さん]

動くコードを書く上でコピペが必要になるケースはある。(りふぁくたりんぐはしないとね)

PerlやJavaScriptいはコピペ検出器がない 何故無いのか??

作ってみた 

https://github.com/goccy/p5-Compiler-Tools-CopyPasteDetector

日本語での使い方


デプロイツールの作り方[@shiba_yu36さん]

Cinnamon について

有名なデプロイツール

  • Cappistrano
  • Archar

Cinnamonとは

  • perl製デプロイツール
  • perlでDSLっぽく設定を書ける

コンセプト

  • Minimum
  • Role(環境(productionなど)) + Task(実行するコマンドの単位)

Cinnamon側では サーバへのコマンド実行のみを提供。デプロイの方法は利用者に任せる

開発Tips

Net::OpenSSH 外部サーバにSSHでコマンドを実行してくれる
DSL 単なる関数 export Exporter::Lite 
Plack::Bulderを参考


全体を通しての感想

手を動かして作っていくことがいいなーと思った。なんでも手を動かして作ってみたい。ホントkansai.pmにでてやる気が出た。出張帰りと寝不足で懇親会に参加席なかったことが残念だったーー

【メモ】  

  • Milter(MailFilter)

参加しました「第二回 JetBrainsユーザーグループ in 大阪 #jbugj」


1/30(水) 第二回 JetBrainsユーザーグループ in 大阪 #jbugj に参加しました。

vimとかemacsをメインに使っている会社ではなかなか IDEのネタを共有することがないので、IntelliJ IDEAのかゆいところにも手が届く感じとかとても勉強になったし、楽しかった。


講演者の方のスライドまとめてみました

  • JetBrains製品のライセンス形態 や Community、Ultimate の違いなどとても分かりやすいです。13ページ目にUltimate Editionにしか存在しない機能の説明があります。使えない機能が結構あるのでUltimate Editionを買うべきなんだろうなー!


気になったことのメモ

  • IDEAの読み方は「イデア」じゃなくて「アイデア」

  • Commercial License $499
    業務用

  • Personal License $199
    個人用 (個人で購入してねという事, 業務で使用してもいい)

  • ひとりIntelliJ IDEA Advent Calendar 2012 インデックス

  • ピンチアウト、ピンチインでコードのビューを拡大縮小出来る!

  • Option + Enter => 出来る操作の候補を出す(テスト)

  • Productivity Guide を使おう
    help -> Productivity Guid
    IDEA内でよく使っている機能を抽出してヘルプを一覧できる。
    各ユーザによって表示される機能が違う。
    @mumoshuさんはコードナビゲーション(Goto系)の機能をよく使う

    • Cmd + n => クラス、ファイルを開く
    • Option + Shift + Cmd + n => メソッド名変数名など検索してジャンプ
    • Cmd + b => メソッド、変数の定義元へジャンプする
    • Cmd + Option + F7 => このメソッドを使用している箇所を特定する
    • Cmd + Shift + a => Goto Action (何かしらの機能(Action)を検索する)
    • Cmd + e => 最近使ったファイルを開く
       
  • Docコードのサポートが手厚い

  • Gitの操作

    • ステータスやDiffが見やすい (Cmd + d)

気になるツイートまとめてみました


* やっぱりそういうことかー