こんにちは。元クロコスCTOの sotarok です。 元というのは、「クロコス」という会社が吸収合併にされてなくなったからですね。 「CTOとはどういう人だ」という話は、ここ1−2年ホットで、定期的に話題になります。自分の元上司であるグリーふじもとさんやnaoyaさんをはじめ、立派な諸先輩方が語ってくれているところではあります。 よりまとまった話をわかりやすく聞くには彼らの話を聞いてみるというのが良いかもしれませんね。GREEのエンジニアブログとか、wadapのブログとか、WEB+DBとか。 で、まあとはいえ、CTOというのをやってみた身として、自分なりに思っていることを、自分の言葉でまとめておくことをやってみようかな、と思っていたのでせっかくなのでブログに書いてみようと思います。 ただし、はじめに言っておきますがCTOとはこうでなければいけないとか言うつもりはありません。自分が意識して
Django アプリとはいっても非常に小規模なサイトの話です。 機能としては、 サイト全体が Django のテンプレートを使用 お申し込みフォーム(確認画面あり) お問い合わせフォーム(確認画面あり) お知らせ更新機能(今は html 直書きだったりするけどついでに DB から読み込みたい) Gin は高速という噂の golang の Web フレームワークで、pongo2 は Django 風の記述ができるテンプレートエンジンです。 Gin にもテンプレートエンジンは付属していますが、 pongo2 を使って既存の Django 向けに書かれているテンプレートを極力活かしたいので使うことにしました。 とりあえず、単純に html を読み込んでレンダリングするのと静的なファイルの配信までやってみます。 ディレクトリ構成は、 . ├── main.go └── static ├── ima
VagrantではSahara pluginを使うことで、VMの状態を以前の状態に巻き戻すことができます(sandobx mode)。 VMの中でいろいろいじっている際に変更前の状態に戻せるのはとても便利なのですが、Saharaでは戻せるチェックポイントをひとつしか作れません。 自分の場合、深遠なChefのレシピを書いている過程で、戻せるポイントを何個か置きたくなることがよくあります。 さて、VagrantのバックエンドとしてVirtualBoxを使っている人は多いかと思います。 バックエンドがVritualBoxの場合、SaharaのsandboxはVirtualBoxのsnapshotを使って実現されています。 VirtualBoxのsnapshotはひとつだけでなくいくつでも作ることができます。 CUIでVirtualBoxの操作(snapshotを作ったり)をするには、vboxma
Goのコードを読んでいると変数名がやたらと短いことにすぐ気がつくと思う。c, i, nみたいな1文字変数や、br, wr, errみたいな2〜3文字の変数がいたるところで使われている。これは他の言語、特にJavaみたいな言語と比べるとぱっと見でずいぶん違うところだ。 どうしてこんなに短い変数名でよしとしているの? という疑問を抱くのはもっともなことだ。でもそれに対しては、なぜそんなに変数名が長くなくてはいけないの? という質問を返すことになると思う。 Goは、最近では当然のものとして受け止められている(が昔は特にそうでもなかった)「プログラミングの常識」を改めて問い直した言語だ。 たとえば、複雑なクラス階層のあるオブジェクト指向言語機能は、本当にプログラミングを簡単にするのに役立っているのだろうか? 例外機構はそれが持ち込むややこしさに見合う存在意義があるのだろうか? ジェネリクスやテンプ
2014/07/13に開催された「Golang Cafe #38」についてのまとめです。 開催からかなり経ってしまいましたが、記録としてまとめておきます。 今回はGorilla is a web toolkitを試してみる会となりました。 Gorilla is a web toolkitとは何か、簡単言うと、Go言語でWeb系のプログラミングを行うのにルーティングやらクッキー(セッション)の処理やらを上手くやってくれるツールキットのようです。フレームワームでは無いようです。 有名所でいうと最近何かと話題のDockerで使われていたり(確認した当時では)、GoogleI/OのGo言語のcodelaboで使用されていたりなど、Go言語ではスタンダードになりつつあるパッケージのようです。 Gorilla is a web toolkitには gorilla/context gorilla/mux
Webブラウザで広告を非表示にするライブラリとしてAdBlockが知られていますが、契約した企業の広告は表示するなどとあまり良い噂を聞かなくなっています。また、アドブロックを入れると表示速度が速くなるはずが、AdBlockは遅くなるとさえ言われています。 そこで作られはじめたのがuBlockです。オープンソースでシンプルなアドブロッカーです。 uBlockの使い方 uBlockはChrome ウェブストアで配信されています。 入れる前。 入れた後。すっきり! uBlockはAdSenseはもちろん、MOONGIFTの独自の仕組みであるサイドバー部分においても非表示にしてくれるなど独自の広告判定エンジンがあるようです。uBlockを入れておくと表示が高速化されたり、不用意なトラッキングを防げるなど、Webブラウジングが快適になるのではないでしょうか。 uBlockはGoogle Chrome
動機 前々からtwitterのデータを使って何かやってみたいな、と思っていました。そこで、MeCabとcabochaを入れるところから、SQLiteを活用した簡単な分類器を作るってみた次第です。 (遊びでやってみただ(ry ) 以下、やったことを適当にまとめていきます。 インストールしたもの MeCab 0.996 mecab-python-0.996 Virtual C++ 2008 Express Edition(vcvarsall.batが必要なためです) Cabocha(今回は使いませんので説明も全くしませんが、今後のために...) インストール方法などに関してはWindowsにmecab-pythonを導入を参考にして下さい。 このサイトでも太字で書いてあるのですが、mecab.hを書き換える時は必ず管理者権限で開いて変更を行って下さい。でないと、変更されたと認識されません。僕も
WebRTCは変化が速いのできちんとキャッチアップしているPeerJSとEasyRTCがよさそうです。 ただし、EasyRTCはなぜかサンプルのビデオチャットが真っ黒になってうまく動きませんでした。原因は調べていません。 ICEサーバー 上記のOSSにはICEサーバーは含まれておらず、だいたいstun.l.google.com:19302というGoogleのSTUNサーバーをデフォルトで指定しています。 本番で動かすにはICEサーバーも自前で立てるのが望ましいです。 ICEサーバーは元々いろいろなOSSがあります。 表にまとめるのは力尽きたので、リストで。一番上のがいいんじゃないかなってなんとなく思っています。 rfc5766-turn-server - High-performance free open source TURN and STUN Server implementatio
go 言語において呼び出し元に interface のみを公開することで実装の詳細を隠ぺいすると、gomock を使ったテストがやり易くなります。 ざっくり結論だけ書くとこんな感じのコーディングパターンにすると良いよって感じなので、これだけ見て、何が言いたいのかすぐに分かる人は続きを読まなくても良いと思います。 package intf type Duck interface { Quack() string} type duck struct {} func NewDuck() Duck { return &duck{}} func (d *duck) Quack() string { return "QUUAAAACCCCKK!!!"}コピー interface と実装が分離されたアヒル#最初のポイントは、公開する interface として定義された Duck と非公開の struc
いつ頃からか、Macbook Proでの日本語入力がもっさりするようになってしまっていた。Mavericksの頃にどうだったのかよく覚えていないのだが、テキストエディットやらTerminalやら、とにかくなにで入力をしていても、とてつもなく動作が重い。 普通に日本語を入力していてもついてこれていないし、適当にあsヵjlsfkじゃslとか勢いよく入力してみると、もう全然ついてこれず、あとからゆっくりとプリエディットが更新される。Windows 95でももうちょっと快適だったんじゃないかってぐらいに遅い。 【解決】Yosemiteで日本語の入力が遅くなる件について を参考にしてスペルチェッカを減らしてみたりもしたのだが、自分の場合、問題は解決されなかった。あまりにもストレスフルだったので「Yosemite 日本語入力 遅い」などで検索して見ると、次のページが見つかった。 https://dis
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く