kei-p3’s blog

kei-pによる技術共有と思考整理

2016-01-01から1年間の記事一覧

Gist で .git/hooks を管理する

個人的な開発の仕方として Rails を使った開発をするときは、そのコードの品質を保つために コミット のタイミングで rubocop の構文チェックを走らせるというスタイルで開発をしています。 プッシュ時だと編集量によっては多すぎるし、ファイル編集中は実装…

Swift で Benchmark して速度改善しよう

最近、 Ruby や Ruby on Rails から離れ、iOS のアプリ開発をするようになりました。 iOSアプリ自体は初めてではないのですが、1 - 2年ぶりでその時も言語としては Objective-C をメインにしていたので、 やっと Swift デビュー をする感じになりました。 そ…

Rakeを徹底解剖 - その4 "タスクの実行"

過去3回のソースリーディングに続き、今回はついにタスクの実行について調べていきます。 def run standard_exception_handling do init load_rakefile top_level ## 今回のキモになる部分 end end なお、まだその1, その2、その3を読んでない方はこちらから…

Rakeを徹底解剖 - その3 "タスクの定義"

前回はタスクの読み込みについて調べたが、今回は読み込んだrakefileをどう解釈し、タスクとして定義しているのかについて調べていく。 前回よりタスクの読み込みは、Rake.load_rakefile によって行われていることがわかりました。 ## rake/rake_module.rb d…

Rakeを徹底解剖 - その2 "タスクの読みこみ"

前回に引き続き、rakeの仕組みを知るべく、ソースリーディングをして処理を解読していく。 前回では、initの中身を調べて行ったが今回は、タスクの読み込みおよびタスクの定義に焦点を当てて、読み込んでいく。 ## rake/application.rb def run standard_exc…

Rakeを徹底解剖 - その1 "Rakeの実行から初期化まで"

はじめに 先日とあるハッカソンに参加した際に、rake の task を拡張したメソッドを追加する必要がありました。 単なるメソッド追加だろうと思っていたら、それが思いの外大変。 なかなかうまくいかず、どうやったら拡張できるのかを探るために rake の仕組…

爆速タイピングを目指して! プログラマのためのタイピング練習 「Typing.lk」

一日に何文字も入力する我々プログラマにとって、タイピングは切っても切れない関係にあります。 そんなタイピングですが、自分はまだまだタイピング速度に自信がありません。 というのも、どうも自分はタイプミスが多いのです。 基本的には予測変換でなんと…

データベース実践入門を読んでみた

購入のきっかけ 普段Webアプリケーションの開発をしているのだが、基本的に機能開発をすることが多く、細かなSQLのチューニングの仕方やインッデクスといったデータベースの知識に乏しく、不安がありました。 そんな中、データベースの設計についてググると…

rspecのdescribe, context, subject, letなどの書き分け

Everyday Railsを読んでみて、rspecの利便さに改めて気付かされました。 特にAPI周りの実装をすることの多かった自分としては、capybaraによるfeatureテストなんかはこんなことがこんなに簡単にできるのかと驚きました。 しかし、自分としては知りたかった、…

gitのコミットっていつ、どのぐらいするの?

git

ソースのバージョン管理といえば、gitと言われるほど定番のgit。 しかし、「いつ、どのぐらいの量をコミットするか?」っていう悩む声も多いと思います。 というか自分は悩みました。 そこで整理がてら、自分のコミット感を紹介したいと思います。 コミット…

Appraisalで依存ライブラリのバージョンごとに開発をする

はじめに Grape APIのdocumentをrspecから生成するためのライブラリとして、autodoc-grapeというGemを作っていたのですが、 新しく作成したプロジェクトに導入してみたところ、Grapeのバージョンが0.16.xになった際に大幅な変更があったようで、全然機能しな…

Chefでbundlerなどのgemをinstallさせる

アプリケーションだけでなく、インフラ部分も触るのでその構築によくChefを使っているのですが、bundlerのinstallもChefでやろうとしたらなかなかinstallされずはまってしまったので解決方法とはまりポイントを共有です。 要約 はまりポイントを要約すると以…

Qiitaのブログパーツをのせてみた

ブログでたまにサイドバーにQiitaのブログパーツを載せている人がいたので、 どうやっているのだろうと調べてみたところ、なんとQiita Widgetなるものを発見。 早速導入してみようと思ったら、そのまま載せてみると表示件数が多く、サイドバーに表示するには…

Vimの移動に矢印キーを使わず、hjklを強制する

Vim

普段からエディタにVimを使っているのだが、使いつずけて1年。 いい加減キーの移動を矢印キーを卒業し、"hjkl"での移動をマスターしたい! と思い設定しました。 矢印キーを無効化するオプション。 矢印を無効化 " vim練習用オプション if $VIM_TRAINEE "" …

『「成長する10年」で必ずあなたは変わる -“ワイ流”SE人生 成功の仕方 -』を読んでみた

エンジニアとしてこれから成長していくためになにをすればいいんだろう? と思って、ジュンク堂を物色してた時に発見した本。 『「成長する10年」で必ずあなたは変わる -“ワイ流”SE人生 成功の仕方 -』 この本は、著者が高卒、34歳、無職。という絶望的な状…

2次元配列をCSVのような座標系で値を取得するGemを公開しました

データを表現する手段として、エンジニアであればJSONやXMLといった形式のものを使いますが、 プランナーやデザイナーでは扱い慣れてるエクセルのような形式を扱うことがあります。 そのときに、csv上の座標とパースした二次元配列を対応させるのですが、 "2…

CSVのような二次元配列からHashの配列を生成

csvをパースしたときのように1行目にキー情報があり、 2行目以降に各レコード情報が複数あるようなデータをハッシュに置き換える方法です。 lines = [["num", "char", "hira", "char2"], [1, "a", "あ", "aa"], [2, "b", "い", "bb"], [3, "c", "う", "cc"]]…

Automaterでお手軽エンコード変換 UTF8 < - > SJIS

Automaterを使うと、MacのFinderと各種アプリケーションを連携させることができるようになります。 今回は、そのAutomaterで文字エンコードのUTF-8 <-> SJISを変換するAutomatorを作ってみましたので紹介したいと思います。 使い方 ファイルを右クリックやCt…

ActiveAdminでnewした時にparamsに対応した初期値を入力させる

Railsの管理画面の作成をサポートするプラグインとして、ActiveAdminというものがあります。 rails generate active_admin:resourceするだけで、基本的な一覧や編集画面、削除ボタンなどが作成されます。 さらにCSVでのデータの読み込みといった特殊なアクシ…

Vimで画面分割をして、編集終了時に"Vim: Caught deadly signal ABRT"し、画面が崩れ出す

Vim

最近自宅PCでも開発環境を整えようと思い、vimrcを社内のものと共有して使い出したのだが、 社内のPCでは起きないのに、個人のPCでは起きていた謎の現象に出くわしてしまいました。 その現象というのは、 Vimで縦画面表示(:vsplit)した状態で、なんらかの編…

ブログはじめてみました

どうもはじめまして、 都内でエンジニアをしているkei-p3です。 本日、ブログを始めてみました! というのも、 ITの勉強会やエンジニアの方々のブログを通じて、 まだ未熟な自分は、単純なプログラムの実装からエンジニアとしての勉強方法といろいろなことを…