Go言語でWebSocketを使ったチャットアプリを作ってみた
Rubyにもだんだん慣れてきたので、今度はGoを触ってみようと思ってGo言語によるWebアプリケーション開発を買ってみた。Goを学びながらチュートリアル形式でいい感じのWebアプリを作ることができる。そこそこ高度な内容っぽかったので、Goの基本的な文法などはA Tour of Goで予習しておいた。
アプリのソースはGitHubに公開した。今はまだ基本機能だけで、チャット画面を複数のタブやウィンドウで開くと、Postした内容が同期されるだけ。今後進めていけば、OAuth2でのログインやプロフィール画像の設定などが行えるようになる。
追記:OAuth2によるログインやSNSからのプロフィール画像の取得までは実装した。まだプロフィール画像のアップロード機能などが残っているが、いまのところそこまではやらない予定。
タイトルはWebアプリケーションだが、コマンドラインツールやREST形式APIなども対象としている。この本に沿って開発を進めていけば結構幅広くWeb開発を学べそう。GWはこれをいっきに進めようと思う。
以下メモ。
Goのインストール
$ brew install go
Goの設定
環境変数
環境変数GOPATH
等の設定が必要なので、僕の場合は以下のように.zshrc
に追記した。
export GOROOT=/usr/local/opt/go/libexec export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
goimportsのインストール
$ go get golfing.org/x/tools/cmd/goimports
と実行してgoimports
をインストールする。そうすると、
$ goimports -w *.go
と実行するだけでソース内で使用されているのにインポートされていないパッケージを自動でインポートの文を挿入してくれる。
Goの実行
ソースファイルが1つだけの場合は、
$ go run app.go
でコンパイル、実行できる。複数のファイルに分けた場合は、
$ go build -o <アプリ名>
でビルド、
$ ./<アプリ名>
で実行できる。
参考
あわせてどうぞ
SinatraでTwitterアプリを作ってみた
動機
何ができるか
- 自分のツイートから画像を探して一覧を表示する。
- それだけ。
- 「あー、こんなんアップしたなぁ」と思い出してみてください。
ソース
使い方
git clone https://github.com/kohei-kimura/images-on-my-twitter.git ruby app.rb
課題
- 重い
- めっちゃ重い
- ツイートから画像付きのPostを探してくるのでめっちゃ時間がかかる
- herokuにデプロイしてみたけど動かない
原因探るのも面倒なので諸事情により原因特定が不可能になりました
- instagramの画像が取得できない
あわせてどうぞ
AWSビギナー勉強会 in Yokohamaに行ってきた
AWSビギナー勉強会 in Yokohamaについて
横浜で勉強会ないかなーと思って探してたらAWSの勉強会が見つかったので、試しに行ってみた。
AWSは知っているけど、どんなサービスがあるの?
使ってみたいけど、どんな風に役立てたら良い?
ビギナーだから知識を深めたい!
そんな方はいらっしゃらないでしょうか? みんなで集まってAWSについて勉強してみませんか?
自分一人じゃ心細くても、みんなでやれば怖くない。
感想
- 発表者の方々もAWSビギナーで、使ってみた率直な感想が聞けてよかった。
- AWSのサービスがこれほどあるのすら知らなかったのでいい機会になった。
- AWS Mobile Hub便利そう
- 横浜会場の勉強会もっと増えてほしい
あわせてどうぞ
R/RStudioに関するメモ 基本編
前回の続き的なやつ。検定編的なやつもやるかもしらないしやらないかもしれない。
ファイルの読み込み
- Import Dataset → From Local File...
- csvの一行目にタイトルを入れておくと使いやすい
- 読み込んだらファイル名で呼び出しできる
- データセットというらしい
data.csv
が↓の場合、data$Sec
でSecの列を呼び出せる
No.,Title,Sec 1,ttttt,20 2,yyyyyyy,7 3,hhh,12
sum関数
合計値のほか、条件に一致する要素のカウントもできる。
# Titleが”ttttt”の行の個数を返す sum(data$Title == "ttttt")
subset関数
データセットから特定の要素を切り出すことができる。
# データセットからTitleが”ttttt”に一致する行のSecの平均を求める subt <- subset(data, Title == "ttttt") mean(subt$Sec)
プロット関数
# 棒グラフ barplot(c(data$Old, data$New), names = c("Old ver.", "New ver.") # 箱ひげ図(外れ値を表示しない) boxplot(data$Old, data$New, outlin = F) # ヒストグラム(2つのデータを重ねて表示) hist(data$Old, col = "0000ff50", breaks = "Scott") # 青、不透明度50 hist(data$New, col = "ff000050", breaks = "Scott", add = T) # 赤、不透明度50
あわせてどうぞ
RStudioを使ったら楽にR再入門できた
RStudio初めて使ってみたけど
— Kohei Kimura (@cohhei) 2016年4月6日
ええやん?
— Kohei Kimura (@cohhei) 2016年4月6日
Rは学生時代に少し使っていたのだが、いろいろと面倒な面があって最近はずっと使っていなかった。仕事で統計っぽいことをする必要が出てきたので、またRについて調べていたらRStudio*1に行き着いた。
RStudioはR用のIDEで、エディタとコンソールとプロット画面がひとつになっていて使いやすい。Rは素晴らしいツールなのだが、ユーザビリティがあまり良くない。R使うなら絶対RStudio!という人もいるらしいので、Rを触ってみようという人は一緒にインストールした方がいい。
RとStudioについては以下の記事が詳しい。
書籍ならデータサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)がおすすめ。
今はRStudioでグラフ書いたり簡単な検定かけたりしている。プログラムも書けて統計もそこそこできますって言うと、ちょっとイケてるエンジニア感出るだろうか。
あわせてどうぞ
今聴いてるおすすめ英語Podcastまとめ
ちょうど1年ほど前から英語学習のためにいろいろなPodcastを聴き始めたのだが、最近ようやく固まってきたのでまとめておこうと思う。
英語のみのPodcasts
All Ears English Podcast
おすすめ度 | ★★★★★ |
難易度 | ★★★☆☆ |
教育カテゴリで常に上位の定番のPodcast。特定のシチュエーションで使えるフレーズを紹介することが多い。現代の自然なアメリカ英語を聴けるし、よく使われる言い回しや単語を学べるのでおすすめ。「その言い方だと伝わるけどフォーマルすぎる」「大きなカンファレンスの司会者みたい」「古臭くて小説みたい」「ものすごくカジュアル」といった感じで微妙なニュアンスについて詳しく説明されるので、とても勉強になる。週に4エピーソードと更新頻度も高いのもいい。平日の通勤時に聴くようにするとちょうど消化できる。
Hostのふたりがやや早口なので、難易度はやや高め。僕も1度聴いただけだと概要はわかるが聞き取れない箇所が多い。ただし大抵1エピソードにつき1つの話題なので、まったくついていけないことはないはず。たまにゲスト会があるのだが、電話の会話を録音しているのか音質が悪い。僕は聞き取れないので聞き流している。
続きを読む