プログラミング

ActiveAdmin のフィルターでAND検索する

ActiveAdmin の filter では Ransack を利用することができる。 例えば以下のように定義してあげると、 nameカラムに対して LIKE検索することができる。 ActiveAdmin.register User do fitler :name_matches end Ransackでは cont_allを利用することで、特定…

warden のコードリーディング

warden gem のコードリーディングしたのでメモ warden とは rack ベースの認証フレームワーク。 devise でお馴染みの gem ですね。 github.com rack middleware の登録 warden は rack middleware として動作します。 rails とかだと config/application.rb …

sidekiq の scheduled jobの性能

sidekiq と scheduled job ruby でよく使われるジョブキューにsidekiqというものがあります。 Rails などでは Active Job のバックエンドとして使うこともできます。 sidekiq は即時的に処理を行うだけではなく、Scheduled Jobという機能があり、例えば以下…

コンソールで動くインベーダーゲームっぽいやつ作った

何か急にゲームっぽいものを作りた衝動にかられて、インベーダーゲームくらいならシュッと作れるかなと思ってインベーダーゲームっぽい何かを作ってみた。 本物のインベーダーゲームはやったことありません。 工夫したところというか、この手のものを作る時…

アンテナサイト作った話

同期のブログのアンテナサイト作りましたhttp://six-antena.herokuapp.com/作った経緯 飲んだ勢いで、同期の一人に「同期ブログのアンテナサイト作るぜ!!!!!1」 と宣言したのがはじまりです。 環境 言語 :ruby フレームワーク:ruby on rails インフ…

visual studioで動くbebop drone用の制御ライブラリを作った

必要になったので、bebop drone用の制御ライブラリ「CV Bebop」を作成しました。 github.com 環境 visual studio 2012 言語:visual c++ 2012 画像処理ライブラリ:OpenCV3.1 使い方 必要なライブラリはすべて入っているので、visual studioのソリューション…

Q学習で迷路を学習

昔、授業でQ学習を習ったの思い出したのでQ学習使って迷路学習させるスクリプトをrubyで書いたgithub.com Q学習とは Q学習は機械学習手法の方策オフ型TD学習の一つである。概念自体は古くから存在するが、Q学習(Q-learning)という名前で今日の手法がまとめ…

rubyでRANSAC

研究で必要になったから調べてみた観測したデータから最小二乗法などでモデルを推定する際に、観測したデータに外れ値が混じっていた場合、推定したモデルは外れ値に引っ張られてしまいます。そこで、RANSACアルゴリズムを利用することで、外れ値を無視した…

c++でイベント駆動っぽくTCPを書いた

github.com 思いつきでc++でイベント駆動っぽいTCPのクラス書いてみた これでTCPのサーバーとクライアント両方ともイベント駆動っぽくかける試しにエコーサーバサーバ #include <iostream> #include "TCPEventServer.h" int main(void) { eventTCP server(5432); serve</iostream>…

rubyでオセロのコンソールアプリ作った

rubyの勉強のためにオセロのコンソールアプリ作った最近、C/C++しか書いてなかったから良い息抜きになったできれば、webアプリまで発展させてオンライン対戦的なのも実装してみたい その前に、ひどい実装になってしまったので時間あるときに直そう github.com

プロキシ切り替えるクロム拡張作った

学校のネットワークに繋いだら学校のプロキシに、家に戻ったらプロキシの自動検出に手動で切り替えてたのだけれども、 面倒くさかったから勉強も兼ねてクロム拡張を作った。マニュフェストファイルはこんな感じ { "manifest_version": 2, "name": "Proxy Cha…

バイト列の任意の位置から32ビット読み込んでint型として扱う

TCPやUDPなどのネットワークプログラムを書いてると、受信したバイト列の任意の位置から32ビットを読み込んでint型として扱いたくなる時がある。例えば、受信したバイト列に整数「123」が含まれているとする。整数「123」はバイト列に直すと00 00 00 7bとな…