forget for get

覚えるために忘れる

第4回CodeIQ感謝祭「CodeIQ夏の陣」

第4回CodeIQ感謝祭「CodeIQ夏の陣」に行ってきました。


Rubyの開発者まつもとゆきひろさんの話。


「許可を求めるな、謝罪せよ」
「この新技術を使うとよりシステムが良くなると思うんですけど、やっていいですか?」
と上司に言っても、失敗するリスクを考えると、上司は断らざるを得ない。
だから、勝手にやって成功した後に上司に報告する。
成功していれば上司は認めてくれる。

 

実際の経験談。
3ヶ月間アプリのコードを1行も書かずにライブラリをつくった。
その間周りはみんな大丈夫かとドキドキしていた。
その後1ヶ月でアプリを完成させ、上司に「1ヶ月余りました」と報告した。

 

憲法改正が話題になってるけど、修正範囲が広すぎるという理由でリジェクトしたい。
憲法GitHubで管理すればいい。修正箇所はdiffで見たい。

 

生産性を上げればたいていの問題は解決する
人生の中のほんの短期間でブーストをかける。そこでハードワークして一気に生産性を上げてしまう。
そうすれば後の人生は楽できる。


ハードワークは悪だという風潮があるが、低い生産性で長時間働くのが悪。
無駄な時間がないとアイデアが生まれないから余裕は必要。

 

ラストワンマイル
ファイナルファンタジー14の開発で、攻撃をよけるのに何フレームの遅延まで許すのかが問題になった。
対象が日本だけなら、通信が高速なので問題にならないが、北米やヨーロッパでは通信が高速でない地域もあるので注意が必要。

 

UI・UXはゲームの方がはるかに進んでいる。
業務系のUI(例えばATMなど)は操作がわかりづらい。

 

プロトタイプの作り方は職種によって違う
エンジニア:実装にかかる工数を考えた実現可能なアイデアを出す
デザイナー:実現できるかどうかあやしいエレガントなアイデアを出す
プランナー:ビジネス的な成功を考えたアイデアを出す
これらをすり合わせたアイデアがいいプロトタイプ

 

マネジメントをやりたがらない人がいるけど、一度はやってみた方がいい。
マネージャーが考えていることがわかるようになると、エンジニアとしての価値が上がる。

 

チャットはOFFにする。無限に時間をとられるので。

 

懇親会では主に「一休」のエンジニアの人と話してました。
ガイアの夜明け」で見たことがあったので。
システムは主にC#で書かれてるそうで、でも一部ASP使ってるレガシーコードがあるそうです。
私の今の現場でもPHPのバージョンが古かったり、独自フレームワークのバージョンが古かったりといったレガシーコードがあって、タイムリーな話題。
前の現場では2~3年で.NETからPerlへ、PerlからPHPへシステムを完全移行してました。
なんでそんな無駄なことをするのかと思ってましたけど、古いシステムを使い続ける方がリスクだなと最近感じてます。

Apache Solrの使い方を日本語で

Apache Solrとは

Apache Solr(ソーラー)は全文検索エンジンです。
全文検索エンジンには他にElasticsearch、Groongaなどがあります。

Apache Solrの日本語のドキュメントがない、、

「Solr 入門」「Solr 使い方」と検索しても、日本語でよくまとまったものがみつからなかったので、
公式ドキュメント(英語)を見ながら、こんな感じでやると勉強しやすいというのを日本語でまとめてみました。

 

まずはチュートリアル

チュートリアルどおりにやると、だいたいどんなことができるのかわかります。

こちらからチュートリアルと同じバージョンをダウンロードすると、スムーズかと思います。

リファレンスで詳しく

チュートリアルの最後にリファレンスを読め、とあるので、リファレンスを読みます

こちらからPDFのリファレンスをダウンロードしてください。(Webで見れるのは最新バージョンのドラフトだけみたいです)。

 

英語だらけで挫折しそうになったので、目次だけ日本語にします。

  • はじめかた(Getting Started)※チュートリアルとだいたい同じ
  • 管理画面の使い方(Using the Solr Administration User Interface
  • ドキュメント、フィールド、スキーマのデザイン(Documents, Fields, and Schema Design)
  • アナライザー、トークナイザ、フィルターの理解(Understanding Analyzers, Tokenizers, and Filters)
  • インデックス、基本データの操作(Indexing and Basic Data Operations)
  • 検索(Searching)
  • Solrのパフォーマンスチューニング(The Well-Configured Solr Instance)
  • Solrの運用管理(Managing Solr)
  • Solrクラウド(SolrCloud)
  • スケーリングと負荷分散(Legacy Scaling and Distribution)
  • クライアントAPI(Client APIs)

 「管理画面の使い方」で画面からデータを登録する方法がわかります。

「検索」で検索の仕方がわかります。

登録するデータのつくり方は「ドキュメント、フィールド、スキーマのデザイン」と「インデックス、基本データの操作」を読めばいいです。

 

日本語の参考書

英語のドキュメントを時間をかけて読むより、日本語の参考書を読んだ方が早い気がする、、

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)

テキストファイル(.txt)をiOS(iPhone)のブラウザ(safari)で開いた時の文字化け対応

テキストファイル(.txt)をiOSiPhone)のブラウザ(safari)で開いた時に文字化けしたので、その対応。

 

SJISでもUTF8でもダメでした。

結論、Unicodeだと文字化けしませんでした。

 

サクラエディタUnicodeでテキストファイルを保存して解決!

 

自作曲の歌詞をスマホをカンペにして見たい時に、

テキストファイルをサーバに置いて見たい時に困ったので、

今回調べました。

築地ッカソンでWebVRやってみた

築地ッカソン vol.4 ~VRをテーマにアプリを作ろう~

に行ってきました。

 

7時間くらいでテーマに沿った作品をつくる築地で行われるハッカソン
終わったら寿司が食べられます。

 

VRに興味はあって何かつくってみたいなと思っていたけど、
なかなかやる時間がない、
いや、時間はあるけど手をつけてない、、
ハッカソンに参加すればやらざるを得ないじゃないか!
ということで、参加しました。

 

WebVRについて調べてみると、
ThreeJS、Aframe、WebVR starter kit、VR Viewなどのライブラリがあるそうで、
(参照:WebVR はじめよう - Qiita

この中のMozillaが発表したAframeを今回使いました。

 

新しいWebVRフレームワークA-Frame入門 - Qiita

を参考に。

 

jsを読みこんで、
<script src="https://aframe.io/releases/latest/aframe.min.js"></script>

 

htmlタグのように書くだけで、
<a-scene>
<a-cube></a-cube>
</a-scene>

 

簡単に直方体が描画されます。
スマホだと向きを変えると、表示も変わります。

 

サンプルを動かしつつ、
どんなことができるのか確認しながら、
時間内でどんなことができそうか考えて、、

 

「VRで探せ!」というのをつくりました。

http://lightwill.main.jp/vearch/

 

画面上にランダムで現れるコイキングを探すというもの。

 

背景の全球画像はGoogleストリートビューアプリで撮影しました。
スマホのカメラで全球画像がつくれちゃうんですね。

 

時間内にはできなかったですが、
コイキングをみつけたら自動でリロード、
カーソルをモンスターボールに、
したかったです。

 

もうひとつ、
先日、お台場でやってる「DMMプラネッツ」に行ったときに撮ったパノラマ画像を360度で見れるのもつくりました。

http://lightwill.main.jp/vearch/planets

 

写真だとキラキラ感が薄れてしまいますが、
実際はキラキラして動いてるのが360度広がってるような世界です。
全球カメラで動画を撮ったりして見れたらいいですね。

 

今回、ハッカソンというものに初めて参加したのですが、
限られた時間の中で何かつくるというのは、
取捨選択を素早く行う必要があり、頭の回転も早くなるので、
短時間で急激に成長できる場だなと思いました。

 

参加者の中にはプログラム始めて1ヶ月です、みたいな人もいて、
誰でも参加できるような雰囲気です。

 

場所が築地ということで、寿司がとてもおいしかったです。
無料でおいしい寿司が食べられるというだけで素晴らしいイベントです!

 

というわけで、WebVRおもしろいのでやってみてはどうでしょうか?

 

ハッカソンおもしろいので参加してみてはどうでしょうか?

 

築地ッカソン facebookhttps://www.facebook.com/tsukijickathon

第3回CodeIQ感謝祭「春のエンジニアまつり」

第3回CodeIQ感謝祭「春のエンジニアまつり」に行ってきました。

マイクロソフトの澤さんのプレゼン塾はとてもわかりやすく参考になりました。
「ビジョン」「核」「話術」
ビジョンが一番大事。プレゼン後に聴衆にどう行動させたいか。
核。言いたい事は簡潔に。
話術は色々なテクニックを。

パネルディスカッションでは厚切りジェイソンさんも参加。
日本の企業文化ってクソだよね、、という話。
アメリカで始業時間をあまり気にしないのは、国内でも時差があるからというのは妙に納得。
マイクロソフトでは本社で役職に応じた給与がドルで決まって、その国のレートや物価などを考慮した額が支払われるそうです。

厚切りジェイソンさんの講演は熱かったです。
大学卒業後GEで働いてたけど、日本で働きたかったから辞めたそう。
人生一度きりなんだから、やりたいことやんなきゃ。
あきらめたら終わりだけど、あきらめなかったら叶うまで終わりじゃない。
明日R-1グランプリあるからdボタンで参加してねとも。

懇親会ではドッカンバトルのUIを作ったakatsukiの人と話ができて、
Oculus Riftの話をしたら、2台持っていてゲームを自作して社内で発表したと聞いて、
やっぱりそういうことができるクリエイターになりたいなと思いました。

色んな企業や技術者の話を聞いて、大変刺激になりました。
普段自分の仕事をしているだけでは得られない世界なので。

また機会があれば。

apacheでバーチャルドメインの設定


apacheでバーチャルドメインの設定を簡単にメモ。

/etc/httpd/conf/httpd.confに以下を追記
NameVirtualHost *:80
Include /etc/httpd/conf/virtualdomain/httpd-oreore.conf

/etc/httpd/conf/virtualdomain/httpd-oreore.confは以下のように書く。
<VirtualHost *:80>
    DocumentRoot /var/www/html/oreore/
    ServerName oreore.jp
</VirtualHost>

apacheの再起動を忘れずに。
再起動の前に設定が間違っていないかは以下のコマンドでチェックできる。
apachectl configtest

hostsファイルを以下のように編集
192.168.xx.xx       oreore.jp
詳しくは「hostsファイルを編集してローカルサーバにテストドメイン名で接続する」を参照。

これで、ブラウザで「http://oreore.jp」でアクセスできる。

hostsファイルを編集してローカルサーバにテストドメイン名で接続する

ローカルサーバにテストドメイン名で接続したい場合、
hostsファイルを編集するとよい。

Windows7の場合
メモ帳を右クリックして「管理者として実行」する。
「ファイル>開く」で
C:\Windows\System32\drivers\etc\hosts
を開き、以下のように追記する。
--
192.168.xx.xx       testdomain.jp
--

すると、ブラウザで「testdomain.jp」にアクセスすると、「192.168.xx.xx」につながる。