PBP(Possession, Behaviour, Presence) for Coaching

I read 'The Basics of Coaching' to learn about Coaching. I got the viewpoints of PBP(Possession, Behaviour, Presence) by reading. They are important viewpoints that a Coach should have for understanding clients. What should my client get? …

How to spend the period from 6th until 10th years for learning?

I've read Learning from Experience, and summarize how to spend the period from 6th until 10th years for learning based on what's written in this book. What is the period from 6th until 10th years for learning? It's said that I have to have…

FX Retrospective (6/22 - 6/26)

Keep the points of profit taking was set higher than those of loss cutting. learned each economic indicators. learned how to stop and limit order to close deal. Problem cross traded without attention to US dollar rate. Try forecast market …

FX Retrospective (6/15 - 6/19)

Keep followed some uptrends and downtrends with market order. leaned how to IFDOCO with smartphone. cut loss within expectations. Problem tried to follow some temporary fluctuation of the market prices. ordered without any information for …

無線LANでインターネットに接続してみた[CentOS6]

ネットワークの勉強を兼ねて、CentOS6.6で無線LANの各種設定をして、インターネットに接続してみました。以下に手順をまとめます。なお、暗号化方式は、WPA2-PSK(AES)方式を採用します。 1. パッケージをインストールする 2. ルーターのSSIDとKEYを設定ファ…

WindowsとCentOSのデュアルブート構成にしてみた

インフラの勉強を兼ねて、Windows7搭載のPCにCentOS6.6(以下、CentOS)をインストールし、デュアルブート構成にしてみました。 以下に手順をまとめます。 0. 事前準備 1. CentOSイメージを外部記憶媒体に書き込む 2. 1.で作成した外部記憶媒体からPCを再起…

SICP(1.1 プログラムの要素)の問題を解いてみた

計算機プログラムの構造と解釈(SICP)の「1.1 プログラムの要素」を読んで、問題を一部解いてみました。 sicp/chapter_1 at master · matk2/sicp · GitHub 以下に、一部の回答について説明を行おうと思います。 問題1.3 三つの数を引数としてとり、大きい二…

Rubyワーストプラクティスの問題点と解決策

Rubyベストプラクティスを読みました。 「Rubyワーストプラクティスの問題点と解決策」という観点から学んだことをまとめようと思います。 サブクラス化を許すクラスに、クラス変数を使う 問題点 想定していない定義や変更が起きる class Car @@instances = …

動的な機能を使ったコードを解説してみる

Rubyベストプラクティスの第1章〜第3章を読みました。 特に印象的だった第3章から学んだことを活かして、「動的な機能を使ったコード」を解説してみようと思います。 コード ※ 本著 p.107より引用 module NaiveCampingRoutes extend self def R(url) rout…

RubyによるScheme処理系の実装

つくって学ぶプログラミング言語 RubyによるScheme処理系の実装を読みました。 RubyによるScheme処理系の実装内容をまとめようと思います。 実装内容 組み込み関数 計算式の評価 無名関数 λ式の評価 局所変数 let式の評価 letrec式の評価 名前つきlet式の評…

RubyでUnixプロセスを活用する

なるほどUnixプロセスを読みました。 「RubyでUnixプロセスを活用する」という観点から、学んだ事をまとめようと思います。 子プロセスを生成する Kernel.fork 実行中のプロセスから新しいプロセスを生成できる。 子プロセスは親プロセスで使われているすべ…

良いデザインができるようになるために実践したいこと

ハッカーと画家を読みました。 「良いデザインができるようになるために実践したいこと」をまとめたいと思います。 良いデザインの原則 当著では、良いデザインの原則として以下14種類の原則が紹介されていました。 良いデザインは単純である 良いデザイン…

正規化とB-treeインデックスの設計方針

達人に学ぶDB設計-徹底指南書を読みました。 「正規化とB-treeインデックスの設計方針」という観点から学んだことをまとめようと思います。 正規化 【正規化を行う目的】 データの冗長性を排除し、データの登録・更新時の不都合を防ぐため。 例えば、下記の…

Webアプリケーションの各種脆弱性の影響・原因・対策【処理に起因する脆弱性】

体系的に学ぶ 安全なWebアプリケーションの作り方を読みました。「Webアプリケーションの各種脆弱性の影響・原因・対策」という観点から、学んだことをまとめようと思います。 「重要な処理(取り消しできない処理)」の実行 【クロスサイト・リクエストフォ…

Webアプリケーションの各種脆弱性の影響・原因・対策【出力に起因する脆弱性】

体系的に学ぶ 安全なWebアプリケーションの作り方を読みました。「Webアプリケーションの各種脆弱性の影響・原因・対策」という観点から、学んだことをまとめようと思います。 表示処理 【クロスサイト・スクリプティング(XSS)】 影響 サイト利用者のブラ…

Webを支える各種技術の設計作法

Webを支える技術を読みました。 「Webを支える各種技術(URI、HTTP、ハイパーメディアフォーマット)の設計作法」という観点から学んだことをまとめようと思います。 URIの設計作法 シンプルなURIにする シンプルなURIにすると、変わりにくいURIとなる。本著…

Replace Subclass with Fields(サブクラスからフィールドへ)

コードの臭い 定数を返すメソッド以外に違いのないサブクラスがある。 リファクタリングコード refactor (replace subclass with fields) テストコード # rspec describe Female do let(:bree) { Female.new } describe 'female?' do subject { bree.female?…

Replace Type Code with State/Strategy(タイプコードからState/Strategyへ)

コードの臭い クラスのふるまいに影響を与えるタイプコードが使われており、タイプコードは実行時に変更される。 リファクタリングコード refactor (replace type code with state/strategy) テストコード #rspec describe MountainBike do let(:rigid_param…

Replace Type Code with Module Extension(タイプコードからモジュールのextendへ)

コードの臭い クラスのふるまいに影響を与えるタイプコードが使われている。 リファクタリングコード refactor (replace type code with module extension) テストコード # rspec describe MountainBike do let(:instance_params) { { :type_code => :rigid,…

Replace Type Code with Polymorphism(タイプコードからポリモーフィズムへ)

コードの臭い クラスのふるまいに影響を与えるタイプコードが使われている。 リファクタリングコード refactor (replace type code with polymorphism) テストコード # rspec describe MountainBike do let(:instance_params_of_rigid) { { :type_code => :r…

Encapsulate Collection(コレクションのカプセル化)

コードの臭い メソッドがコレクションを返している。 リファクタリングコード refactor (encapsulate collection) テストコード # rspec describe Person do let(:kent) { Person.new } describe 'courses=' do before do courses = [] courses << Course.ne…

Change Unidirectional Association to Bidirectional(片方向リンクから双方向リンクへ)

コードの臭い 互いのメンバを使わなければならない2つのクラスがあるが、片方向のリンクしかない。 リファクタリングコード refactor (change unidirectional association to bidirectional) テストコード # rspec describe Order do let(:order) { Order.n…

Replace Hash with Object(ハッシュからオブジェクトへ)

コードの臭い 異なる種類のオブジェクトを格納し、複数の目的のために渡され、使われているHashがある。 リファクタリングコード refactor (replace hash with object) テストコード # rspec describe Client do let(:new_network) { { :nodes => [], :old_n…

RspecでRails.envを変更する方法

例えば本番環境のみで実行したいメソッドをrspecでテストしたい時に、環境を一時的に変更する必要が出てくる。その方法をメモ。 # beforeで実行 Rails.stub(:env).and_return(ActiveSupport::StringInquirer.new("production"))

社会人3年間のふりかえり

今月から、社会人4年目に入りました。 現在の会社には24歳で新卒1期生として入社し、本日まで本当にさまざまなことがありました。最初に入る会社には少なくとも3年間はいようと思いながら入社し、実際に3年が過ぎた現在、1つの節目としてその3年間を…

配列からオブジェクトへ(Replace Array with Object)

コードの臭い 一部の要素が別の意味を持つようなArrayがある。 リファクタリングコード refactor (replace array with object) テストコード # rspec describe Client do let(:row) { [] } let(:client) { Client.new(row) } describe 'name' do before do r…

参照から値へ(Change Reference to Value)

コードの臭い イミュータブル(書き換え不能)で小さく、管理しにくい参照オブジェクトを持っている。 リファクタリングコード refactor (change reference to value) テストコード # rspec describe Currency do let(:currency_1_new) { Currency.new("USD"…

値から参照へ(Change Value to Reference)

コードの臭い 同じインスタンスをいくつも生成するクラスがある。 リファクタリングコード refactor (change value to reference) テストコード # rspec describe Client do describe 'self.number_of_orders_for(orders, customer)' do let(:order_1) { Ord…

データ値からオブジェクトへ(Replace Data Value with Object)

コードの臭い データやふるまいの追加を必要とするデータ項目がある。 リファクタリングコード refactor(replace data value with object) テストコード # rspec describe Client do describe 'self.number_of_orders_for(orders, customer)' do let(:orde…

自己カプセル化フィールド(Self Encapsulate Field)

◯ コードの臭い フィールドに直接アクセスしているが、フィールドとの密結合が不都合になってきている。 ◯ リファクタリングする理由 サブクラスが情報の取得方法をメソッドでオーバーライドできるため、データの管理方法に柔軟性が生まれる。 ◯ リファクタ…