うまとま君の技術めも

2015年新卒入社した社畜の勉強内容などなど

エクストリームプログラミング

エクストリームプログラミング エクストリームプログラミング(XP)はアジャイルソフトウェア開発手法の1つである。 XPとは、効果のない技術的・社会的な古い習慣を捨て、効果のある新しい習慣を選ぶことである XPとは、自分が今日やるべきことを十分に理解…

アジャイルプラクティス

アジャイルプラクティス 効果的なプラクティス無しにプロジェクトを進めてしまうと、問題が多発し品質の悪いソフトウェアを作り続ける羽目になってしまうことだろう。 そのような苦い経験をすると、同じ過ちを繰り返さないよう過去の経験を元に成功したプロ…

アジャイル設計

アジャイル設計 アジャイル設計とはプロセスやイベント等の事ではない。ソフトウェアの構造や読みやすさを向上させるため、原則・パターン・プラクティスを継続的に適用する行為である。 ソフトウェアは時間が経つにつれ腐敗していく。汚いコードが溜まって…

SOLID原則 - the SOLID principles

SOLID原則 - the SOLID principles ソフトウェア設計をより理解しやすく、柔軟で、メンテナンスしやすくする為の5つの原則である。 SOLIDとは以下の5つの原則の頭文字を取ったものである。 Single Responsibility Principle | 単一責任の原則 Open Closed …

React + Redux 入門

React・Reduxの基本的な仕組み・使い方ついて解説します。

MeCabで形態素解析 Node.jsバインディングを作ってみた

概要 Node.jsを使ったアプリケーションで形態素解析を行う必要があるので、MeCabを勉強してみようと思いました。 しかし、公式で提供されている言語バインディングにNode.jsは含まれていません(;´∀`) 公式以外で提供されているOSSも幾つかあるようですが、…

Node.jsでリトライ処理を実装してみる

概要 HTTPリクエストが失敗した場合や、DBへの接続に失敗した場合など 何回かリトライ処理を含めたい場合ってありますよね? そこで、Node.jsを使ったリトライ処理用モジュールを試しに作ってみようと思います。 環境 Node.js v4.4.7 OS Mac OS X 10.11.5 リ…

Chef-Zero 入門 (Local Mode)

概要 Chef-Client/Server構成で最近開発を行っているのですが、 Cookbook等を開発している時に毎回Serverにアップロードしたりするのは面倒くさいです。。。 そこで、Chef Zeroを使用すればローカル(Chef-Client側)のみで完結するChef環境が作れるらしいの…

sequelizeでidに0が入ってしまう

sequelizeでidに0が入ってしまう 環境 MariaDB 10.1.9 (Homebrew) 概要 SequelizeでdialectとしてMySQLをした際に、 AUTO_INCREMENTカラムを含むテーブルに対してINSERTすると0が入ってしまう可能性がある。 Sequelize SequelizeはNode.js用のORMである。 ま…

RMagickでフォントが使用できない、unable to read font `(null)'

環境 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で使用できるフォントを見てみると、使用可能…

.btn-groupにtooltipを使うとデザインがズレる

環境 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>

Drawableに設置したpngファイルのオリジナルサイズを取得する

AndroidにてDrawableに設置したpngファイルのサイズを取得しようとしたら、ちょっとはまったのでメモ。 前提 drawableに 50 * 50 px の画像ファイルを設置。 res/drawable/sample.png 画像サイズを取得 リソースIDからBitmapを生成して#getWidth, #getHeight…

Enumerable#map and Array#flatten vs Enumerable#flat_map

目的 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で独自クラスにバリデーションを実装してみる

環境 Rails 4.1.5 ruby 2.1.2p95 独自クラスにValidationを実装 独自クラスでRailsのValidationを実装したい場合はActiveModel::Validationsをincludeしてあげればよいらしい。 class Hoge include ActiveModel::Validations validates :hoge_id, presence: …

CoffeeScriptのファットアローって何だ?

ファットアロー jQueryのコールバック関数で呼ばれた関数でthisを使うと関数内のjQueryオブジェクトを指しているため、 that = @等と関数外で別の変数に置き換えて使用することがあると思います。 coffee class User constructor: (first_name, last_name) -…

Railsでf.selectにclassが設定できない時

環境 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でdefault_scopeの解除方法

環境 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…

Macで作るLaravel 4.1 開発環境

環境 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にMySQLをインストール

環境 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…

Nginx, Unicornで作るRailsアプリ

環境 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とか言って怒られる。 何故だろうと思い$ …

初めてのRuby on Rails

目的 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を…

Macでシステム情報を確認する方法

Mac

Linuxでは /proc/cpuinfo とかを見ればシステム情報がわかるが、 Macでシステム情報を見たいときは system_profiler コマンドを使えばいいらしい ハードウェア情報が見たいときはこんな感じ $ system_profiler SPHardwareDataType Hardware: Hardware Overvi…

rbenvで作るRuby開発環境 for Mac OS X

目的 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 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 基本情報, 応用情報 ファイト…