git-completion.bashが無い・・・!

背景

新しいEC2インスタンスyumでgitを入れようとしました。 git v2.13.6が入ります。気にせずにgit向けの設定を用意していたら 下記のファイルが見つかりません

$ sudo find / -name git-completion.bash -type f

このファイルはsourceコマンドで呼び込むとgitコマンドの補完をしてくれる公式が配布しているファイルになります。

よく調べてみたところ、下記ディレクトリの下に「git-completion.tcsh」というファイルがありました。

$ sudo find / -name git-completion.*-type f
/usr/share/git-core/contrib/completion/git-completion.tcsh

tcshファイルの設置を試してみる

$ yum install tcsh
$ cp /usr/share/git-core/contrib/completion/git-completion.tcsh ~/.git-completion.tcsh
$ chmod u+x ~/.git-completion.tcsh
$ source ~/.git-completion.tcsh
-bash: /home/ec2-user/.git-completion.tcsh: line 127: syntax error: unexpected end of file

シェルに詳しくないもので気づくのが遅かったのですが 単純にbashで実行されているだけですね

sourceはデフォルトで設定しているシェルで実行されるので 私の環境の場合はbashで実行されました。

なので、bashではなくtcshcshをデフォルトのシェルとして使ってる環境では問題ないかと思います

が、私はbashやshで精一杯なので、tcshを使うのは辛いです!今は!

ということでGithubにアップされているgitブランチを確認すると

https://github.com/git/git/tree/v2.13.6/contrib/completion git-completion.bashが・・・!

$ cd ~
$ wget https://github.com/git/git/tree/v2.13.6/contrib/completion/git-completion.bash
$ tail -n 1 ~/.bash_profile
source ~/.bash_profile
$ source ~/.bash_profile

これでいけますた:)

Rubyのクラス変数・インスタンス変数・クラスインスタンス変数

qiita.com

なるほど。。 細かいところはリンク先がとても参考になります(ありがたや・・・)

クラス変数

  • クラス共有の変数
  • クラスオブジェクト内の関数上で定義
  • @@hoge

インスタンス変数

  • 対象のクラスの全てのインスタンス内で使える変数
  • クラスオブジェクトで定義
  • @hoge

クラスインスタンス変数

  • クラス変数に近い機能
  • クラスオブジェクト内の関数上で定義
  • @hoge

GoでWebアプリを作りたい

資料を拝見

コチラの資料を見つけた

知らない名前のフレームワークやツールが多いので 気になったものをそれぞれちゃんと見てみる Webエンジニアとしてはこの辺の情報が固まってるの、とても有難い:pray:

GoによるWebアプリ開発のキホン

ここより先は内容的に保証できないので、あまり参考にしないでください!
調べつつ追記していけたらと思います。

フレームワーク

Goji / Gorilla

シンプル(ルーティングのみ)

revel / mux

フルスタック(セッション管理などできる)

マイグレーション

goose

DBのマイグレーション SQLかgoで書く

ORマッパー

GORM

高性能。ActiveRecordっぽい

genmai

クエリビルダに近い

テンプレートエンジン

Ace

SlimやJadeにちかい

パッケージマネージャ

Godep

スター数が多い

gom

Bundler + Gemfileに近い

オートビルドツール(?)

Flesh

ファイルが保存されたタイミングでリビルドしてくれる 導入コストも低い

$ go get github.com/pilu/fresh
$ fresh

どう組み合わせる?

まだ詳しくは分かってないけども、このような感じになるのかな・・・?

ミニマム

中規模サービス

  • フレームワーク: revel(mux)
  • ORマッパー:GORM
  • マイグレーション:goose
  • テンプレートエンジン:Ace
  • パッケージマネージャ:Godep(gom) ※ revelの機能でオートビルドはされるっぽい

Goやっていきメモ

良い加減進捗なさすぎるので、少しずつやってメモをのこしておこうとおもいます(日本語がおかしい)

型情報の調べ方

import(
    "reflect"
)

..(省略)..

func main(){
    reflect.TypeOf(hoge) // これな
}

参考

Golangで型情報を調べる - Misc Notes

Getリクエス

実行

import (
    "net/http"
    "io/ioutil"
    "fmt"
    "reflect"
)

func main(){
    url := "http://hogehoge.com/api/v1/xxxxx"
    resp, _ := http.Get(url)
    defer resp.Body.Close()

    // htmlをstringで取得
    byteArray, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(byteArray))
}

レスポンスヘッダーを取得

import (
    "net/http"
    "net/http/httputil"
    "fmt"
    "reflect"
)

func main(){
    url := "http://hogehoge.com/api/v1/xxxxx"
    resp, _ := http.Get(url)
    defer resp.Body.Close()

    // レスポンスヘッダー取得
    dump, _ := httputil.DumpResponse(resp, true)
    fmt.Printf("%s", reflect.TypeOfdump) // 型:[]uint8
}

参考

Goでhttpリクエストを送信する方法 - Qiita

structの書き方について

// 階層ぽくかける
type Repos struct {
    Repo struct{
        id string
    }
}

やりのこし

レスポンス(json)データを扱えるようにしたい。この辺を参考にしてみる

stackoverflow.com

珍しかった働き方

数年前、仕事で2ヶ月くらい出向したことあって

・チーム内でほぼ、会話無し
(日に一度話せば多い方)
・要件はチャットかRedmine
・仕事はRedmineのチケットベース
・週1で遠方にいる営業さんとSkypeミーティング

 

こんな感じで仕事してた。ホントに会話がない。

でもその分静かで集中して仕事できたし、

やりとりがチケットに残るから良かった(˘ω˘)

 

会話が無いと雰囲気悪そうだけど

夜飲み、ランチ、花見で結構仲良くなった。

 

静かすぎていたたまれなくて

毎日カフェオレ2㍑飲んで4㌔太ったけど

またやりたいなと思う仕事の仕方だった(˘ω˘)

上京して2年(˘ω˘)

上京してもうすぐ2年経とうとしてる。
その間で勉強会に参加したり紹介していただいたりで

FacebookとかTwitter上で新たに繋がった人は200人くらいかな。

地元にいた時は、

『都会の人は愛想悪くて、怖い人ばかり』

って思ってたけど

実際そんなことは全然なかった。

 

色んな人と出会って、その出会いが次の出会いに繋がってた。

 

まだまだ地元が好きですが、人との繋がりという面で上京してよかった。

 

はじめてのとうこう

ブログは自作しようと思って早1年超。
未だに用意できてないので、しばらくはてぶにお邪魔ます。

あっ、 Cymer(CyberMergina) と申します。
東京都内某所でエンジニアをやっているものです。
雑多なことはTumblr, Qiita, Twitterに書いていきます。
長ったらしい雑多なことはこちらに書いていきます。
よろしくお願いいたします。