amasok's blog

Archive for Jan 2014

oh_my_zshがすごい

2014/01/30 21:12 tags: zsh, このエントリーをはてなブックマークに追加

職場のshellを最近zshにしたのだが、便利すぎたのでとうとう家でもzshに切り替えた話。

なぜかちょっとだけはまったので、そのときのことをメモ

http://qiita.com/udzura/items/0d08d71d809bfd8c5981

基本的には上記URL通りやるだけ。 何も変わらないです。

前提条件

  • brewが入ってる

方法

zshのインストール

1
brew install zsh

oh-my-zshのインストール

1
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh

https://github.com/robbyrussell/oh-my-zsh

公式ページのsetupをうつだけ。

zshに切り替えるのにパスワードを求められる。
ここでミスった。

多分パスワードを間違えたんだと思う。

本当なら新しいターミナルを立ち上げたらzshに切り替わってるはずが、bashのままだった。

なのに、.zshrcを編集して再読み込みしようとしていた。

その時のエラーがこれ。

1
2
~/.oh-my-zsh/oh-my-zsh.sh: line 13: syntax error near unexpected token `('

で、同じようにはまっている人がgithubのissuesにいらっしゃった。

https://github.com/robbyrussell/oh-my-zsh/issues/989

まあ、要はzshに切り替えてからじゃないとoh-my-zsh.shのシェルスクリプトは動かないよってことだ。

1
chsh -s /bin/zsh

これで、再度パスワードを求められるので正しく入力してターミナルを再起動。

そうすると、zshで立ち上がってくれるようになった。

便利な点

これは、何が便利ってoh-my-zshのプラグインが便利

.zshrc

1
plugins=(git ruby osx bundler brew rails emoji-clock)

ここらへんのプラグインが便利だ。

特にgitはすごい。

1
2
3
source-amasok.github git:(master) ✗ git checkout slim Switched to branch 'slim'source-amasok.github git:(slim)

このように、自分が今なんのブランチで作業しているのかが一目でわかる。

まじ、すげぇ。

knife soloの使い方

2014/01/29 21:16 tags: knife-solo, このエントリーをはてなブックマークに追加

反映したいサーバにchefがはいっていない時のknife soloのコマンド。

1
$ knife solo prepare <ユーザ名@ドメイン>

サーバに反映cookbookを反映したい時のコマンド

1
2
#自分のcookbookディレクトリで実行 $ knife solo cook <ユーザ@ドメイン>

たまに使うと、すぐに忘れる。。。

「情熱プログラマー」読了

2014/01/22 17:25 tags: 読書感想文, このエントリーをはてなブックマークに追加

※あくまで個人の感想文です。

ネタバレあり(問題無いと思うけど)

情熱プログラマー ソフトウェア開発者の幸せな生き方を読み終えました。 この本は技術書というよりも、エンジニア(特にソフトウェア)はこう生きるべき! という指南書的な本です。

全体で53項目あり、1項目につき2〜3ページで書かれています。

とりあえず全体的な感想だけ述べようと思う。

今すぐ始めよう

項目毎に「今すぐ始めよう!」というのが書かれているのだが、それらは本当にちょっとしたことから始められるものが多かった。

  • キャリアに関する最大の不安はなにか考えてリストアップしてみよう
  • 新しいプログラミング言語を学ぼう
  • 自分にとって「一番下手くそになる」状況を見つけよう
  • ビジネス屋(エンジニア職ではなく営業職とか?)の連中をランチに誘ってみよう

などなど、エンジニアとして伸び悩んだ時にどう行動すべきかの指針を示してくれている。 このあたりはまた読み返そうと思う。

スペシャリスト

当たり前のことだけど以下の内容に焦りを感じた。

ほかに何も知らないことがスペシャリストだって勘違いしてるんじゃないか?

Javaのコードしか書いたことないJavaのスペシャリスト()
Railsのコードしか書いたことないRailsのスペシャリスト()
iOSアプリしか書いたことないiOSアプリのスペシャリスト()

その周辺技術も知らないと(もしくは同じ機能を有する別の技術)本当の意味で自分が使っている技術の旨味ってわからないですね。

そのためだと思うけど、この本の項目には以下の内容が並んでいる。

  • 万能選手になろう
  • スペシャリストになろう

一見、対照的に見えるかもしれないけど、スペシャリストになるためにあらゆる技術に精通する必要があるということだ。
まあ、その中で最も得意といえるものが必要になってくるんだろうけど。

僕はいろんな技術を中途半端にやっているので勘違いこそしていないが、これなら任せろと言えるものもあまりない。 がんばらなければならないと思う。

キャリア

  • 自分の人生を他人任せにするな

という項目でこのように書かれている。

僕は従業員の一人にこう尋ねた。 「これからどんな方向に進みたい? 何になりたいんだい?」 返ってきた答えは「JavaEEのアーキテクトになりたいです」だった。 ~中略~ 彼は雇われているわけでもない特定の会社によって作られた特定のテクノロジの上にキャリアを築こうとしていたわけだ。

ベンダ中心の見方はよろしくないというのはまさにそのとおりだと思う。
特にIT技術は進歩が早すぎる。

まあ、当たり前かもしれないけど、投資先は必要なわけで(投資しないよりは投資したほうがマシというレベルの低い目線)それに比べたら全然マシだよと思ったりもするが。。。
視野が狭くなりがちな人に対してのアンチテーゼとなっているが、最近は逆に「あれもしたい。これもしたい。もっとしたい。もっともっとしたい。。。」というようにいろんな技術に目がいっている気がする。

あせりばかりが先行して身についていない気もする。

あせっていないで、ここに書かれている「やってみよう」を少しでも実践してみようかな。。

iOSアプリを実機で動かすまで

2014/01/15 10:23 tags: iOS, このエントリーをはてなブックマークに追加

iOSのディベロッパー登録めんどくさいです。

http://mushikago.com/i/?p=917

こことかを見てやるといいです。

前提条件

  • iOSのディベロッパー登録を済ませておく
  • シミュレータでiOSアプリを動かしたことがある

Provisioning Profileの入手

https://developer.apple.com/

iOS Dev Center

> [iOS Developer Program] Certificates, Identifiers & Profiles
> [iOS Apps] Provisioning Profiles
上記をたどっていくと、 「iOS Team Provisioning Profile: *」をダウンロードしておく

実機をxcodeに登録

今回はデバイス登録で動かすまでのmemo

  • xcodeを起動
  • Window -> Orgnizer(shift + command + 2)に移動
  • iOSでバイスをMacとUSB接続する
  • 「接続されたPCを信頼しますか?」的なダイアログがiOSでバイスで表示されるのでOKする
  • Orgnizer - Devicesで接続したデバイスが認識されているかを確認する
  • 「Use for Development」というボタンをクリックして全部Requestをおす
  • 左のバーから「Provisioning Profiles」を選択
  • 下にあるAddから先ほど入手したProvisioning Profileを追加する

アプリを動かす

  • Xcode右上の [アプリ名] > iPhone(シミュレータ名) をクリックして実際のデバイス名を選択
  • ▶(Run)をクリック

Objective-Cのクラスとかメソッドについて

2014/01/12 23:25 tags: iOS, Objective-C, このエントリーをはてなブックマークに追加

最近、ちょっとずつiOSアプリ開発のお勉強をしているので、それのメモ

xcodeの使い方がまずよくわかってない。

とりあえず、プロジェクトから始める。

iOS > Application > Single View Application

1
2
3
4
5
AppDelegate.h AppDelegate.m Main.storyboard #見た目をこれで作る ViewController.h #ViewControllerのヘッダファイル ViewController.m #基本的にプログラムを書くのはこのファイル

ViewController.mの中身を見てみる。

ViewController.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end

objective-cのクラス

7行目にクラスのはじまりが書かれている。

1
2
3
4
5
@implementation クラス名 // ここにメソッドを実装していく @end

objective-cのメソッド

9行目や15行目にメソッドが書かれている。

1
2
3
4
- (戻り値の型)メソッド名 { //ここにコードを書いて行く }

どのタイミングでどのメソッドが呼ばれるかは、またいつか書きたいと思ってる。 UIViewController ライフサイクルは大事。