このエントリーをはてなブックマークに追加

2016年12月6日火曜日

幸せになる勇気

「幸せになる勇気」の画像検索結果

今回は「嫌われる勇気」の続編となる「幸せになる勇気」
前作でアドラー心理学を学んだ青年が実際に実行してみた結果を哲人に報告するところから始まります。

本書は5部で構成されている

第一部:悪いあの人、かわいそうな私

第二部:なぜ「賞罰」を否定するのか

第三部:競争原理から協力原理へ

第四部:与えよ、さらば与えられん

第五部:愛する人生を選べ


本書の中で個人的に関心が高かったのは
「問題行動を5つの段階に分けて考える」
いかなる目的を持って問題行動にでるのかを5段階に分けて考えることで、エスカレートする前に対策を講じることができるというもの。
どの環境にいても問題行動を起こす人は存在する。
この章を読んでいるときに、問題行動を起こす人がどの段階にいるのか、いたのか、それを答えあわせしてる感覚となった。

【Git】マージコミットを消したい

こんにちは、Taroです。
今回はGitのケーススタディ的なものを書きたいと思います。
反面教師として利用してください。

例えば、下図のようなことってないでしょうか?


同じ開発ブランチで、既にリモートブランチが進んでいると、「プルしなさい」と怒られてしまいます。
ここで「git pull --rebase」を使用すれば、マージコミットもできず、綺麗にリモートを取り込めます。
「git pull」と「git pull --rebase」の違いはこちらのサイトで紹介されております。

ただ、頭が弱い私はrebaseオプションを付け忘れ、ふつうにpullしてしまいました。
そうすると、下図のようなブランチになります。

このマージコミットが非常に邪魔です。
コミットを巻き戻すときには「reset」や「revert」が使用されるかと思います。
「revert」だと「消したというログができてしまうため、「reset」を使用します。
「reset」にも大きく2種類あり、コミットと一緒に変更したファイルまで消してしまうhardオプションと、変更したファイルは残しておくsoftオプションがあります。
ケースバイケースで使い分けるとして、今回はsoftオプションでコミットだけ消し、rebaseしたいと思います。

# マージコミットをなかったことに
$ git reset --soft
# 自分のコミットをなかったことに
$ git reset --soft
# 1回stashで逃がす
$ git stash save "テンポラリ"
# rebaseして綺麗な状態に
$ git rebase origin/ブランチ名
# stashした差分を取り込む
$ git stash pop stash@{0}
「reset」を2回やって巻き戻していますが、1回でも良いかと思います。
これで、Bさんはローカルブランチを修復できましたとさ。
めでたしめでたし。
(このようなケースでもっとスマートな方法があれば、ぜひ教えてください!!)





2016年12月5日月曜日

新型MacBook Pro(Late 2016)使用レビュー

こんにちは。h_ono_222です。
先日、新型MacBook Pro (15-inch, Late 2016) 15 inchモデルが届きましたので、3日間使ってみた感想を軽くまとめようと思います。

1. 仕様

購入したモデルのスペックは下記の通りです。

ディスプレイ15.4インチ(2880 × 1800)
プロセッサ2.7GHz Core i7(4コア)
グラフィックRadeon Pro 455(2GB GDD)
メモリ16GB
ストレージ512GB
重量1.83kg

2. サイズ比較

下の写真はMacBook Pro (13-inch, Mid 2012)モデルとの比較です。


1枚目の写真の通り、2012年の13インチ版(非Retina)とのサイズの差はわずかで、開封した時は間違って13インチ版が送られてきたのかと勘違いしました。

また、厚みも非常に薄く重量的にもなんとか持ち運びできます。
(ちなみに前モデルの重量は13インチ版で1.58kg、15インチ版で2.04kg)

3. Touch Bar

スリープから復帰した際など、Touch Barの右端をタッチするだけでパスワード入力なしにロックを解除できます。


下の画像はSafari、Xcode(実行中)、Finder(未選択)、Finder(表示切り替え)画面でのTouch Barの表示です。


基本的には、画面内のボタンと同じアイコンが表示されています。
まだ使い始めて間もないので、Touch Bar?フーン…という感じ(音量操作などは2タップしなければならないので若干面倒)なので、今後のアップデートに期待です。

4. 気になる点

現状殆ど不満はありませんが、一点気になることはキーの打鍵感です。
ストロークが浅く、パコパコとした感覚で、音も大きい?です。

5. おまけ

下記に13インチ版と15インチ版の簡易な比較を載せました。少しでも購入を検討されている方の参考になれば幸いです。

13インチ版15インチ版
ディスプレイ13.3inch15.4inch
プロセッサ2コア(低電圧版)4コア
グラフィックスCPU統合Radeon Pro(+CPU統合)
重量1.37kg1.83kg

13インチ版と15インチ版とで大きく異なるのはディスプレイ、プロセッサ、グラフィックだと思います。
ディスプレイは言わずもがななので割愛します。プロセッサは13インチモデルは低電圧版となります。
ですので、13インチ版のカスタマイズ(特にCPU)をするくらいなら、思い切って15インチ版を購入することをお勧めします。

ちなみに、15インチ版の最下位モデルのCPUの共通L3キャッシュは6MBで15インチ版の他のモデルと比べて2MB少なくなっています(体感速度は変わらないかもしれませんが一応)

また、最新の第7世代であるKaby Lakeではなくその前のSkylake(13インチ版はBroadwell)です。
現状、不具合もあるようですし、待てる人はマイナーチェンジ版を待つのもいいと思います。

6. 参考

2016年12月4日日曜日

はじめの一歩 -Rails 時間・タイムゾーン編-

どうも、はじめです。
本日から「はじめの一歩 -時間・タイムゾーン編」ということで、
何度かに分けてRailsの時間・タイムゾーンについての記事を連載していきます。

今回の内容は「strftime」についてです。

はじめに

strftimeとは、

Rubyの組み込みオブジェクトとして用意されており、
時刻を指定したフォーマットに沿って文字列へ変換してくれるものになります。

例
time = Time.now # Sun Dec 03 16:06:18 +0900 2016
time.strftime('%Y年%m月%d日 %H:%M:%S')
# => 2016年12月04日 16:06:18

それではフォーマットについて見ていきたいと思います。
今回は例としてTime型での実行結果をまとめてみました。

フォーマット


フォーマット説明実行結果
年
%Y西暦を表す数 2016
%y西暦の下2桁16
月
%m月を表す数字(01-12)12
%B月の名称(January,February,March,April,May,June,July,August,September,October,November,December)December
%b月の省略名(Jan,Feb,Mar,Aprl,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)Dec
日
%d日(01-31)04
%x日付 ('%m/%d/%y')と同じ意味になります12/04/16
%j年中の通算日(001-366)339
曜日
%A曜日の名称(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday)Sunday
%a曜日の略称(Sun,Mon,Tue,Wed,Thu,Fri,Sat)Sun
%w曜日を表す数。日曜日が0(0-6)0
週
%U週を表す数。最初の日曜日が第1週の始まり(00-53)49
%W週を表す数。最初の月曜日が第1週の始まり(00-53)48
時
%H24時間制の時(00-23)16
%I12時間制の時(01-12)04
分
%M分(00-59)06
秒
%S週秒(00-60)(60はうるう秒)18
その他
%c日付と時間"Sun Dec 4 16:06:18 2016"
%p午前または午後(AM,PM)PM
%X時刻"16:06:18"
%ZタイムゾーンJST
%%パーセント%

下記はオプション一覧です。


オプション
フォーマット説明
^大文字で出力
#小文字は大文字に、大文字は小文字に変換
-左寄せ
_空白埋め
00埋め
数値指定した表示桁数での表示

オプションを幾つか組み合わせて実行した結果がこちらになります。
桁数指定をしている状態で左寄せを行うと通常と同じ表示になるようです。

time.strftime('%^10A') # => "    SUNDAY"
time.strftime('%0#6Z') # => "000jst"
time.strftime('%Y/%-m/%-d %X') # => "2017/1/4 16:06:18"
ちなみに、、、
曜日を日本語で表示したいときは以下のように書きます。
Time.now.strftime("#{%w(日 月 火 水 木 金 土)[Time.now.wday]}")
# => 日

まとめ


年月日、曜日、週に関してはTime型、Date型、DateTime型、TimeWithZone型のどれであっても
表示される内容は同じでした。
ですが、時刻やその他のフォーマットに関してはデータ型によって出力内容が異なってきます。
実際に使用する際には、一度想定通りに表示されているかを確認してから使用する用にしましょう。
(今回の時刻、その他の項目に表示されている実行結果はTimeWithZone型となっております。)

次回


今回の最後に出てきましたデータ型について、
時刻だけでも幾つかのデータ型がありますのでそちらをやってみようと思います。

2016年12月3日土曜日