forget for get

覚えるために忘れる

mysqlでカナでソートしたら濁音の並びがおかしかったので対策

mysqlでカナでソートしたら濁音の並びがおかしかった

 

普通に

ORDER BY kana

とやったら、

 

ハマカーン
ハライチ
バカリズム
バナナマン
パンクブーブー

 

となった。

 

本当は

 

バカリズム
バナナマン
ハマカーン
ハライチ
パンクブーブー

 

のように並んでほしい。

 

COLLATE 節を使うとよい。

ORDER BY kana COLLATE utf8_unicode_ci

 

laravelだとorderByRawを使って。

->orderByRaw("kana COLLATE utf8_unicode_ci")

 

これで意図した並びになった。

 

バカリズム
バナナマン
ハマカーン
ハライチ
パンクブーブー

Vimの設定

新しい環境をつくる度に毎回やってることをまとめておく。

 

色分け (syntax on) するために拡張版Vimをインストール

$ sudo yum install vim-enhanced
$ sudo mv /bin/vi /bin/vim-tiny
$ sudo ln -s /usr/bin/vim /bin/vi

php-docプラグインをインストール

https://www.vim.org/scripts/script.php?script_id=1355
ここからダウンロードして、~/.vim配下に置く。
77~83行目のAuthorやCopyrightなどをプロジェクトに応じて修正。

~/.vimrcを作成

set lcs=tab:>.,trail:_,extends:\
set list
highlight SpecialKey cterm=NONE ctermfg=7 guifg=7
highlight JpSpace cterm=underline ctermfg=7 guifg=7
au BufRead,BufNew * match JpSpace / /
set ambiwidth=double
set binary noeol
set viminfo='20,\"1000
source ~/.vim/php-doc.vim
inoremap <C-P> <ESC>:call PhpDocSingle()<CR>i
nnoremap <C-P> :call PhpDocSingle()<CR>
vnoremap <C-P> :call PhpDocRange()<CR>

 

※~/.vimrcでやってることは以下。
・タブや全角スペースを可視化する
set lcs=tab:>.,trail:_,extends:\
set list
highlight SpecialKey cterm=NONE ctermfg=7 guifg=7
highlight JpSpace cterm=underline ctermfg=7 guifg=7
au BufRead,BufNew * match JpSpace / /


・全角記号でカーソルがずれるのを防ぐ
set ambiwidth=double

 

・ファイル末尾に勝手に改行コードがつくのを防ぐ
set binary noeol

 

・ファイル間でのヤンク(yy)行数を増やす

set viminfo='20,\"1000

 

・Ctrl+Pでphpdoc生成

source ~/.vim/php-doc.vim
inoremap <C-P> <ESC>:call PhpDocSingle()<CR>i
nnoremap <C-P> :call PhpDocSingle()<CR>
vnoremap <C-P> :call PhpDocRange()<CR>

(C-Pの箇所を変えれば好きなキーバインドにできる)

参照サイト

vim で 色分け (syntax on) できない

vim でタブや全角スペースを表示する

Vimで全角記号を扱うと色々とおかしくなる

vimでファイルを保存したときに勝手に改行コードがつい...

Vim - Vimでヤンクした内容がファイルをまたぐと50行までしか保持されていない。|teratail

phpDocumentor形式のドキュメントブロックを生成するvimプラグイン | バシャログ。

リクルートの無料で使えるAI(A3RT)TextSuggestAPIを使ってみた

リクルートが無料で公開しているAI「A3RT」から、

TextSuggestAPIを使って、

リクルートのAI(A3RT)TextSuggestAPIちゃんと会話してみるアプリ

をつくってみました。

 

リクルートのAI(A3RT)TalkAPIちゃんと会話してみるアプリ」に引き続いて、

ちょっとした修正で完成。

f:id:lightwill:20170603231044p:plain

 

リクルートの無料で使えるAI(A3RT)TalkAPIを使ってみた

リクルートが無料で公開しているAI「A3RT」から、

TalkAPIを使って、

リクルートのAI(A3RT)TalkAPIちゃんと会話してみるアプリ

をつくってみました。

 

とっつきやすいように擬人化してみたのですが、

絵がヘタクソなので誰かに描いてもらいたい、、

 

f:id:lightwill:20170518003252j:plain

 

難しいことは何もしてなくて、ajaxで入力値を投げて、裏でTalkAPIにリクエストして、結果をそのまま返して、表示しているだけ。

 

実際会話してみて、

 

「おはよう」
→「おはようございます」
は基本として、

 

「恋人はいますか?」
→「ご想像にお任せします」
「寒いですね」
→「寒すぎて抱きしめられたいです」
など思わせぶりな発言も。

 

ドラえもん
→「どんな秘密道具が欲しいのですか?」
なんてピンポイントな回答も。

 

おもしろいシナリオとして、
「ゴキブリ好きですか?」
「食べられますか?」
「おいしいですか?」
「本当に?」
「きもい」
実際に試してみていただきたい。。

 

築地ッカソンでほしい物リスト公開サイトをつくりました

築地ッカソン vol.5 - connpass

に行ってきました。

 

築地の美味しい寿司が食べられるハッカソン、二度目の参加です。

 

そして、優勝してしまいました、メリークリスマス!

 

今回のテーマは「クリスマス」。

ということで、「プレゼンとウィッシュリスト」というWebサービスをつくりました。

 

子どもの頃、サンタさんにプレゼントをお願いしたと思います。

親に「良い子にしてないとプレゼントもらえないよ」とか言われて、

クリスマスの時期は特に良い子でいようと心がけていました。

 

そこで、サンタさんにプレゼントをお願いできるサイトをつくろうと決めました。

 

amazonほしい物リスト(ウィッシュリスト)という機能があります。

これ欲しいな、でも今買うのではないなというとき、備忘録として使える機能。

それだけではなく、

ほしい物リストを公開すると、それを見た誰かが買ってくれるかもしれない。

 

ブログにほしい物リストを公開したら本当に届いたという記事がたくさんヒットします。

これとかこれとか。

 

このウィッシュリスト機能を使えば、サンタさんにお願いが実現できる。

ブログにウィッシュリストを公開してる人はいるけど、

ウィッシュリストを公開するポータルサイトみたいなのはなさそう。

 

ウィッシュリストをただ公開しただけでは買ってもらえない。

どうしてそれがほしいのか、手に入ったらどう活用していくのかなどを

プレゼンすることによって買ってもらえる可能性を上げる必要がある。

 

それはまるでクラウドファンディングのようだ。

 

プレゼンとウィッシュリストを公開してほしい物を手に入れちゃうサイト

プレゼンとウィッシュリスト」、ぜひ使ってみてください。

 

築地ッカソン当日はトップページと詳細ページにテストデータを表示するだけのプロトタイプでしたが、その後機能を実装していってひと通り動作するようにしました。

 

ハッカソンは時間が限られているので、発表に耐えられるだけの作品にするために、これは実装できる、これは一旦ダミーで置き換えるなど、判断しなければいけません。

今回は投稿機能はあきらめて、ダミーデータを使うことにして、UIの実装に時間をかけたのがよかったのかなと思います。

 

優勝商品はこんなのでした。

f:id:lightwill:20161220004117j:plain

エゾシカの肉!

 

また、クリスマスバージョンということで、寿司だけではなくケーキもふるまわれました。

f:id:lightwill:20161220004438j:plain

 

また次回も参加したいなと思う築地ッカソンでした。。

第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)