inari111 blog

Webエンジニアの備忘録

CentOSにGo言語をインストール

最近気になるGo言語。
まずは環境構築をしてみました。

CentOS release 6.5 (Final)にインストールします。

Goのバージョンはこちらを確認
https://golang.org/dl/

インストール

cd /usr/local/src/
wget https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz

バージョン確認

go version
go version go1.5.1 linux/amd64

プログラム書いてみる

vim hello.go

package main
import "fmt"
func main() {
    fmt.Printf("Hello\n")
}

実行

go run hello.go
Hello

Helloが出力されました。
少しずつGo書いていきたい。

参考になりました。ありがとうございます。
Go言語のインストールからHelloworldまで

hateb stockerをCakePHPでリビルドしました

プライベートで作った自己満サービスを作り直しました。
hateb stocker

hateb stockerとは

はてブのホットエントリー(テクノロジー)をまとめて見るためのサービスです。
忙しくてこまめにはてブを見る時間がないときに、まとめて見れたらいいなーと思って1年くらい前に作りました。

作り直した理由

1年以上前に書いていたコードなので、とにかく汚い状態でした。。。
コントローラーになんでも書いていたり...
あと、Cakeの勉強もしたいなと思い作り直すことを決めました。

変わったところ

  1. フレームワークそのものが変わりました。
    今回のリビルドでFuelPHP1.7.2 から CakePHP2.7.1 に変わりましたが、Cake3系で作った方がよかったのかなと今は思います。当時は迷って2系を採用しました。

  2. 検索機能を追加
    普通ですね。。。

  3. APIを作成
    ちゃんとしたものを作ろうとすると時間がかかるのだと思いますが、思っていたよりも簡単にできました(簡単なAPIです)

やり残したこと

  • モバイル対応(Material Design Liteを中途半端に導入して嫌になった)
  • インフラ面の整備
  • gulp導入
  • テスト書く

プライベート開発の楽しさ

プライベート開発のいいところは自分の思うように作れるところですよね。
しかし、好きに作れるが故に、サボりがちになることも。。。
サボらないためには、モチベーションを一定に保つことが必要だなーと思いました。
モチベーション低下させないために、早く実装できるならと良くないコードも書いたりしました...
プライベート開発において完璧を求める必要はないし、新しいことを学びつつ楽しく開発できればいいのではないか。僕はそう思います。

hateb stockerに限らず、これからも自己満サービス作っていけたらと思います。

YAPCにボランティアスタッフとして参加してきた #yapcasia

昨年も参加したYAPC、今年はボランティアスタッフとして参加した。

写真はスタッフTシャツとアロハシャツと腕章

なぜボランティアスタッフ?

今年のYAPCにボランティアスタッフとして参加したのには理由がある。
それは、昨年のYAPCが今まで参加してきたイベントの中で1番素晴らしく、心打たれたからである。
そんなYAPC::Asia Tokyoが2015年で最後ということで、ボランティアスタッフに応募した。
「今年スタッフやらないと後悔する」って直感が言ってた。

主な仕事

初めてのスタッフだったので不安もあったけど、周りの方に支えていただきながら、楽しく仕事できました!

0日目

  • Tシャツ畳み
  • ノベルティ詰め
  • 前夜祭の受付

1日目

  • 受付

2日目

  • 受付
  • 入場誘導

トーク

空いた時間で気になるトークも聞きに行けた。

  • Electron: Building desktop apps with web technologies
  • サーバーサイドエンジニア(特にPerl)のためのiOSアプリ開発入門
  • LT(1日目、2日目)

まとめ

大変だったけど、それ以上に楽しいと思えるYAPCだった。
PHP最高!!

ビルドしただけでNSUnknownKeyExceptionというエラーがでた

storyboardのパーツとプログラムを繋ぐときに、Actionで接続するところを間違えてOutletで接続してしまった。。。
コードの方はすぐに消して接続し直したんだけど、ビルド時にエラーがでた。 エラー文の詳細は忘れてしまったがこんな感じ。

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason:

storyboardの間違って接続してしまったパーツをクリック

サイドバーを見ると1つのパーツに対して、2つ接続したことになっていた。
間違えて接続したものを ✕ を押して解除する。

f:id:tky-24:20150509232146p:plain

これで再度ビルドすれば大丈夫。

誤って接続したものはコードから消すだけではダメということみたい。
初心者はここでハマる人も多そうな感じがするのでメモとして残しておこうと思う。

VimからAtomに乗り換えた

ずっとVimを使っていたんだけど、Atomに乗り換えて1ヶ月半ほど経った。
Vimが嫌いになったわけではない。
思ったよりもAtomがよかった、それだけである。

入れたPackageを紹介していく。

Packageインストール方法

コマンドラインで(エディタからもできる)

apm install package_name

(例) apm install vim-mode

インストールしたPackage

vim-mode

vimのキーバインディング再現。
これ大事。
しかし、物足りなさは否めない。

file-icons

ファイルリストの横に種別アイコンを表示してくれる

term2

ターミナル用拡張
最初はエラーで入らず。
解決はこれが参考になりそう
AtomにTerm2を入れた時に若干ハマった話

sublime-style-column-selection

sublime風の矩形選択

docblockr

コメントのテンプレを足してくれる
意外と便利

autoclose-html

閉じタグの自動入力
Vimでは自動入力にしてなかったんだけど、自動入力に慣れてしまった

git-log

commit logとかbranchとかを見やすく表示

git-plus

git のコマンドをパレットから利用可能にする
編集したファイル数が少ないときは、Atom上でcommitしている

merge-conflicts

gitのconflictを直しやすいらしい
git merge しやすい UI を表示
使ってない

pretty-json

JSON を整形できる

regex-railroad-diagram

正規表現をダイアグラムで可視化してくれる

autocomplete-plus

入力補完

autocomplete-paths

path入力時の補完

linter

いろんな言語のシンタックスエラーとかを表示してくれる

compare-files

diffを見る
たまに使ってる

tabs-to-spaces

Space⇒Tab、Tab⇒Spaceの置換を行う
タブとスペースが混じったソースコードはこれで一括で変換するのもあり。
便利だと思う

Ctrl+Shift+Pでコマンドパレットを起動

tabs-to-spaces:tabify
tabs-to-spaces:untabify

tabifyがスペース⇒タブ、untabifyがタブ⇒スペース

カーソルの行にアンダーラインをつける

f:id:tky-24:20150506213316p:plain

Vimもアンダーラインつけてるから、ないと落ち着かない。

Syntax Themeの設定を編集

.line.cursor-line {
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
}

他にも convert-to-utf8 や ConvertToUtf8Plus を入れたけど、結局UTF8以外の案件はVimでやることにしてる。

まとめ

起動は遅いんだけど、他の部分は満足している。
編集したファイルはツリーの色変わってて見やすいし。
Sublimeとの違いは何なのかって聞かれると、うまく答えられないけど、、、
なんかSublimeは好きになれなかった。
便利なプラグインもあるし(今後も増えていくだろうし)、使い続けて損はない。

しっくりくるSyntax Themeないので、時間あったら自作しようかな。

おすすめのPackageやSyntax Themeあったら教えてくださいm( )m

リファラー偽装スパム対策

最近Google Analyticsを見ていると、site4.free-share-buttons.comやguardlink.orgといったスパムbot?によるアクセスが多くてウザい。

.htaccessででアクセスを遮断する。

SetEnvIfNoCase Referer guardlink.org spambot=yes
SetEnvIfNoCase Referer site4.free-share-buttons.com spambot=yes
Order Allow,Deny
Allow from All
Deny from env=spambot

新しいスパムが現れる度にブロックするのはちょっとだるいが。。。
とりあえず、これでいいのだろうか。

ここがとても参考になった。
https://w3g.jp/blog/block_referer-spam-bots

ビルド時にSource Kit Service crashingというエラーが出る

Swiftデビューした。
プロジェクト作ってビルドしただけなのに
Source Kit Service crashing
というエラーが出た。 Xcodeのバージョンは6.2

Xcodeを一度終了した後、

rm -rf ~/Library/Developer/Xcode/DerivedData/
rm -rf ~/Library/Caches/com.apple.dt.Xcode

サイド起動すると、ビルドできた。

http://stackoverflow.com/questions/27083848/xcode-source-kit-will-not-stop-crashing-with-swiftが参考になった