エクストリームプログラミング エクストリームプログラミング(XP)はアジャイルソフトウェア開発手法の1つである。 XPとは、効果のない技術的・社会的な古い習慣を捨て、効果のある新しい習慣を選ぶことである XPとは、自分が今日やるべきことを十分に理解…
アジャイルプラクティス 効果的なプラクティス無しにプロジェクトを進めてしまうと、問題が多発し品質の悪いソフトウェアを作り続ける羽目になってしまうことだろう。 そのような苦い経験をすると、同じ過ちを繰り返さないよう過去の経験を元に成功したプロ…
アジャイル設計 アジャイル設計とはプロセスやイベント等の事ではない。ソフトウェアの構造や読みやすさを向上させるため、原則・パターン・プラクティスを継続的に適用する行為である。 ソフトウェアは時間が経つにつれ腐敗していく。汚いコードが溜まって…
SOLID原則 - the SOLID principles ソフトウェア設計をより理解しやすく、柔軟で、メンテナンスしやすくする為の5つの原則である。 SOLIDとは以下の5つの原則の頭文字を取ったものである。 Single Responsibility Principle | 単一責任の原則 Open Closed …
React・Reduxの基本的な仕組み・使い方ついて解説します。
概要 Node.jsを使ったアプリケーションで形態素解析を行う必要があるので、MeCabを勉強してみようと思いました。 しかし、公式で提供されている言語バインディングにNode.jsは含まれていません(;´∀`) 公式以外で提供されているOSSも幾つかあるようですが、…
概要 HTTPリクエストが失敗した場合や、DBへの接続に失敗した場合など 何回かリトライ処理を含めたい場合ってありますよね? そこで、Node.jsを使ったリトライ処理用モジュールを試しに作ってみようと思います。 環境 Node.js v4.4.7 OS Mac OS X 10.11.5 リ…
概要 Chef-Client/Server構成で最近開発を行っているのですが、 Cookbook等を開発している時に毎回Serverにアップロードしたりするのは面倒くさいです。。。 そこで、Chef Zeroを使用すればローカル(Chef-Client側)のみで完結するChef環境が作れるらしいの…
sequelizeでidに0が入ってしまう 環境 MariaDB 10.1.9 (Homebrew) 概要 SequelizeでdialectとしてMySQLをした際に、 AUTO_INCREMENTカラムを含むテーブルに対してINSERTすると0が入ってしまう可能性がある。 Sequelize SequelizeはNode.js用のORMである。 ま…
環境 Mac OS X 10.10.2 Ruby 2.2.0 ImageMagick 6.9.0 RMagick 2.13.4 unable to read font `(null)' rmagickでテキストを表示しようと思ったら何故かunable to read font(null)'`とかいうエラーが。。。 rmagickで使用できるフォントを見てみると、使用可能…
環境 Mac OS X 10.10.2 Google Chrome 41.0.2272.101 (64-bit) Bootstrap 3.3.4 .btn-groupにtooltipを使うとデザインがズレる .btn-group内のbuttonにtooltipを使用すると、 tooltipが発動した時に1px程度ズレが生じてしまいます。 <div class="btn-group" role="group"> <button type="button" class="btn btn-default" data-toggle="tooltip" title="Tooltip"> Left </button></div>
AndroidにてDrawableに設置したpngファイルのサイズを取得しようとしたら、ちょっとはまったのでメモ。 前提 drawableに 50 * 50 px の画像ファイルを設置。 res/drawable/sample.png 画像サイズを取得 リソースIDからBitmapを生成して#getWidth, #getHeight…
目的 Enumerable#map, Array#flatten と Enumerable#flat_map でどちらがパフォーマンスに優れているかを調べる。 環境 Mac OS X 10.10.1 ( Yosemite ) ruby 2.2.0 (rbenv) Enumerable#flat_map flat_map (Enumerable) - APIdock : http://apidock.com/ruby/…
環境 Rails 4.1.5 ruby 2.1.2p95 独自クラスにValidationを実装 独自クラスでRailsのValidationを実装したい場合はActiveModel::Validationsをincludeしてあげればよいらしい。 class Hoge include ActiveModel::Validations validates :hoge_id, presence: …
ファットアロー jQueryのコールバック関数で呼ばれた関数でthisを使うと関数内のjQueryオブジェクトを指しているため、 that = @等と関数外で別の変数に置き換えて使用することがあると思います。 coffee class User constructor: (first_name, last_name) -…
環境 Rails 4.1.1 ruby 2.1.0p0 f.select <%= form_for @user do |f| %> ... <%= f.select :job, { engineer: "Engineer", ... }, class: "myclass" %> ... <% end %> ここでセレクトタグに.myclassが設定されていることが期待されるが、 実際に生成されるHT…
環境 Rails 4.1.1 ruby 2.1.0p0 default_scopeの設定方法 orderやwhere文などをdefault_scopeメソッドに渡してあげればおk class User < ActiveRecord::Base ... default_scope { order(email: :asc) } default_scope { where(deleted_at: nil) } ... end o…
環境 OS X 10.9.2 Homebrew 0.9.5 PHP 5.5 Laravel 4.1 PHP 5.5 をインストール $ curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5 pathを追加する $ vim ~/.bash_profile export PATH=/usr/local/php5/bin:$PATH 設定ファイルを反映させる $ sour…
環境 Ubuntu 12.04 LTS MySQL 5.5.37 mysqlをインストール まずはインストールされるバージョンを確認 まだ5.6は登録されていないみたいですね。 $ sudo apt-get update $ apt-cache show mysql-server | grep Version Version: 5.5.37-0ubuntu0.12.04.1 Ver…
環境 Ubuntu 12.04 LTS nginx 1.2.7-1 precise Rails 4.1.0 unicorn 4.8.2 Railsアプリ Railsはインストール済みとする。 とりあえず適当にプロジェクトの作成 $ rails new blog nginxのインストール aptでnginxの公式リポジトリを使うように設定する。 $ su…
環境 Ubuntu 12.04 所属グループが消えとるんだが(;´Д`) よしhogeユーザーをnewgrpグループに追加しようと思い、下記コマンドを実行した $ usermod -G newgrp hoge その後に、sudoを使ったら何故かpermission denyとか言って怒られる。 何故だろうと思い$ …
目的 Railsをインストールして動作確認する 環境 OS X 10.9.2 Homebrew 0.9.5 Ruby 2.1.1p76 RubyGems 2.2.2 環境の確認 $ ruby -v ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0] $ gem -v 2.2.2 Railsのインストール Gemを使ってRailsを…
Linuxでは /proc/cpuinfo とかを見ればシステム情報がわかるが、 Macでシステム情報を見たいときは system_profiler コマンドを使えばいいらしい ハードウェア情報が見たいときはこんな感じ $ system_profiler SPHardwareDataType Hardware: Hardware Overvi…
目的 Macに複数バージョンのRubyを入れる 環境 OS X 10.9.2 Homebrew 0.9.5 デフォルトで入ってるRubyの確認 $ ruby -v ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13] Homebrew Mac OS X 用のパッケージ管理ソフト 今回はこれを…
Markdown Markdown(マークダウン)は、文書を記述するための軽量マークアップ言語のひとつである。 Wikipedia:Markdown Elements Block Elements Paragraph and Line Breaks Headers Blockquotes Lists Code Blocks Horizontal Rules Span Elements Links E…
現在のエンジニアとしてのスキルは皆無なので 2015年入社まで残り約1年 どれだけ成長出来るか分からないけど とにかく頑張るしかないよね とりあえず、入社までに次の資格が取れるくらいにはなりたいですね LPIC Level1, Level2 基本情報, 応用情報 ファイト…