monthly gimite

試験運用中。

Flexboxとを組み合わせるときはsize="1"が必要

css

<div style="display: flex;"> <div style="flex: 1 1 auto;">hoge:</div> <input type="text" style="flex: 1 1 auto;"> </div> とした場合のこのinput要素、画面サイズが大きいぶんにはちゃんと伸びてくれるのですが、画面サイズが小さい場合にある程度以上小さくなってくれません。 <div style="display: flex;"> <div style="flex: 1 1 auto;">hoge:</div> </div>

[programming][mahjong] シャンテン数計算アルゴリズムで各言語をベンチマーク

ymatsuxさんのシャンテン数計算アルゴリズムをいろんな言語に移植して速度を比較してみました。結果(所要時間): C++ (GCC 4.4.3): 2.07秒 Java 1.6.0: 3.53秒 C# (Mono 2.10.8): 3.57秒 JavaScript (Node.js 0.10.18): 4.78秒 Scala 2.9.1: 14.51秒 Ruby 1.9…

[mahjong][tenhou] 天鳳牌譜の統計による麻雀危険牌分析

ネット麻雀の天鳳で公開されている、天鳳位の人の牌譜17670ゲームを集計して、牌の危険度を分析しました。詳細はこちら:統計による麻雀危険牌分析得られた主な知見: 大雑把な危険度: 字牌 = 中スジ = ノーチャンス 中スジ(2p, 8pに対する5pなど)は表スジ(4p…

[mahjong] 麻雀AIと麻雀AI対戦サーバを公開

最近麻雀AIを作っています。現状のAI同士を対戦させるとこんな感じです(たぶんChromeでしか見れません)。一応それっぽく動いています。まだまだナイーブで、あまり強くないですが。まだ役やドラの価値を考慮してないので、赤ドラをガンガン切ってますね…。こ…

[ruby][googledrive] Google DriveにアクセスするRubyライブラリを作りました

google-drive-ruby - Github作りました、というか、google-spreadsheet-rubyにスプレッドシート以外のファイルをアップロード/ダウンロードする機能を加えて改名しました。Google Drive Appを作るライブラリではありません。Google Driveにアクセスする2種類…

[android] Androidアプリ「かんたん検索」公開

かんたん検索というAndroidタブレットアプリを公開しました。かんたん検索パソコンや携帯電話が苦手な人でも簡単に使える、ウェブ検索アプリです。とても簡単に使えるので、Androidタブレットを持っていて、まわりに「パソコンは苦手/使わない」というご家族…

テスト

一般公開と聞いて作ってみました。こっちに移ってくるかどうかは未定。 無駄に色々スタイルを使ってみるテスト。 ブログパーツ系は現状無理っぽい?と思ったら出てきた。iframeも使えるのか。プレビューだと出ないんですね…。あと見たまま編集モードで挿入す…

Twitterの検索結果の1日単位のフィードを作った

Twitterの検索結果の1日単位のAtomフィードを作りました:Twitter daily search result Atom feed今までTwitter公式の検索結果フィードをGoogle Readerに登録していたのですが、これだと1 Tweetごとに別のエントリになってしまって、見にくいです。そこで、1…

[web][android] パスワードの代わりにAndroid携帯で認証するサイトのデモを作った

Touchauth Demo試すのが若干面倒(Androidアプリのインストールが必要)なので、動画も用意してみました。携帯で撮った低解像度手ぶれ動画ですが…。各PC/ブラウザに対して、 初回はブラウザ上に表示されたQRコードを携帯で撮ることで認証。 2回目以降はログイ…

Tweet Search Streamでキーワードに関連するハッシュタグを表示

tss

Tweet Search Streamにハッシュタグ以外のキーワードを入れたときに、そのキーワードに関連する(と思われる)ハッシュタグを(あれば)表示するようになりました。「このイベントのハッシュタグは何だろう」という時に便利かもしれません。「関連する」といって…

Yuyake - ブラウザ上でRubyでWebアプリ開発

色々未完成なのですが、放置気味だったのでとりあえず現状を公開することにしました。Yuyakeブラウザ上でRubyでWebアプリを開発してそのまま実行できる、というものです。フレームワークはSinatraのみをサポートしてます。利用にはGoogleアカウント*1が必要…

Tweet Search Streamが日本語ハッシュタグに対応

tss

Tweet Search Streamを日本語ハッシュタグに対応させました。例: #名言の文末を過去形にすると深みが増す - Tweet Search Streamバリデーションを弱めればいいだけかと思ったら、 Tweet Search StreamはJSONを解釈する前にキーワードでのgrepをかける Twitte…

[tss][websocket][js] web-socket-jsとTweet Search Streamのスライド

すっかり忘れていたのですが、しばらく前に社内でweb-socket-jsとTweet Search Streamについて発表する機会があったので、そのスライドを置いておきます。内容的にはこのブログに書き散らしたことの詰め合わせみたいな感じだし、文字ばっかりだし、なんか英…

Fiberを使ってem-http-requestとかを同期的に呼び出す

EventMachineの関数(em-http-requestとか)を多用すると、コールバックだらけになって訳が分からなくなるのが欠点です。Ruby 1.9のFiberを使うと、em-http-requestみたいな非同期関数を同期的に呼ぶことができます。em-synchronyというライブラリがそのような…

[js] 次世代JavaScriptのawait (Deferred Functions)

この記事で知ったのですが、次世代JavaScriptのawaitという機能が楽しそうです。 function sleep(ms) { var deferred = new Deferred(); window.setTimeout(function() { deferred.callback(); }, ms); return deferred; } function foo() { for (var i = 0;…

[coffeescript][js] CoffeeScript雑感

なんかCoffeeScriptというのが話題になっていたので試しにちょっとだけ使ってみました。パッと見の印象は「このRubyとPythonとJavaScriptのちゃんぽんみたいな独自文法は無駄に敷居を上げてるような気が…。JavaScriptに最低限の拡張を加えるなり、Mirahみた…

jruby-jars-*.gem のビルド方法

jruby-jars-*.gem をビルドする方法のメモ。 $ git clone git://jruby.org/jruby.git jruby $ cd jruby $ ant $ ./bin/jruby bin/gem install rake rspec $ ant gem $ ls dist jruby-complete-1.6.1.jar jruby-jars-1.6.1.gem jruby-complete-1.6.1.jar.md5 …

[ruby] rubygemsのダウングレード

諸事情でrubygemsをダウングレードする必要があったのですが、 $ sudo gem install -v 1.3.7 rubygems-update $ sudo update_rubygemsでいけたっぽい。

[priv] gimite.net, irc.gimite.net, tweet-search-stream.gimite.netは3/14に一時停止します

輪番停電のため、gimite.net, irc.gimite.net, tweet-search-stream.gimite.netは3/14 8:30〜22:30頃にサービスを停止します。実際の停電は9:20〜13:00、18:20〜22:00らしいのですが、途中で電源を入れられる人がいないので、ずっと止めます。停電の予定につ…

[web][priv] iframe → Google Gadget コンバータの不具合

201/4/18追記: 現在は(以前に変換されたものについても)直っています。Google Gadget側のバグが修正されたようです。iframe → Google Gadget コンバータで変換して貼りつけたガジェットが正しく表示されないという不具合が起きています。以前は http://gimit…

[tss][mobile] Tweet Search StreamのAndroid/iPhone対応

Tweet Search Stream元々動作はしていたんですが、ちょっと見にくかったので、Android/iPhone向けに見た目をいじりました。実際に確認したのはAndroidだけですが…。Tweet Search Streamの動作には、AndroidならAndroid 2.2以上 & Flash Player、iPhoneならiOS…

[css] CSSのmax-widthを指定しつつ中央寄せする方法のメモ

.hoge { width: 80%; max-width: 800px; margin-left: auto; margin-right: auto; } で 幅をウィンドウの80%に ただしそれが800pxを越える場合は800pxに 余った余白は左右均等に(中央寄せ) max-widthはIE6だと使えないらしい。IE7以降と他の最近のブラウザな…

Amazon EC2の無料ティアを試す

ec2

Amazon EC2が1年間無料というので、試してみました。とりあえずUnbuntuが立ち上がってSSHでログインできるようになりました。セットアップの仕方はしげふみメモ : 無料でAWS(Amazon EC2,S3等)を使ってみたとかに説明があります。なんか時々罠があって、う…

Tweet Search Stream上でtweetできるようになりました

Tweet Search Stream上でtweetできるようになりました。[Tweet here]というところをクリックしてください。Twitterアカウントでのログインが必要です。導入後1分でこの機能を使っている人がいたのでびっくり :)

[ruby][sinatra] Sinatraのハンドラ内でem-http-requestを使う

Sinatra+Thinで、どこかからHTTPで取得した結果を加工して出力したい、という場合、 require "open-uri" get("/") do open("http://example.com/"){ |f| f.read() } end でもいいのですが、これだとexample.comからの返答待ちの間、EventMachineが完全に止ま…

[tss][ruby] Tweet Search Streamの実装をem-websocketとem-http-requestに

Tweet Search StreamでTwitter Streaming APIの結果をWebSocketに流す部分は、元々web-socket-rubyとnet/httpを使って1コネクション1スレッドという実装だったのですが、em-websocketとem-http-requestを使うように変更しました。Webサーバもthinなので、こ…

[tss][twitter] Tweet Search StreamがTwitterからアクセス禁止された経緯と復活した経緯

10/3-10/5ぐらいにかけてTweet Search Streamが落ちていたのですが、これはTwitterからアクセス禁止をくらってました :) その後Twitter Streaming APIの使い方を変えることで制限に引っかからないようにして復活しました。以下はその経緯です。まずアクセス…

Devas, G Launchなど開発終了のお知らせ

namespace gimiteやVectorなどで公開している、以下のソフトの開発を終了します。 Devas G Launch 助さん G Check 大貧民 Guppy Pound X 今後のバージョンアップはおそらくないですが、どれも(記憶によれば)致命的なバグは見つかっていないと思うので、今の…

[tss][twitter] Tweet Search Streamのソースを公開

Twitterをリアルタイム検索するTweet Search Streamのソースを公開しました。tweet-search-stream - GitHubサーバ側がSinatra + Thin + web-socket-ruby + Ruby Twitter Gem、クライアント側がweb-socket-js + jQuery、という感じです。Ruby Twitter GemはSt…

[tss][twitter] 秒単位で更新されるTwitterリアルタイム検索

Twitter Streaming APIとWebSocketを使って、Twitterのリアルタイム検索を作ってみました。Twitter Search Stream英語、日本語のHot hash tags(あれば)を適当にクリックしてみてください。英語の盛り上がってるハッシュタグとかだと大変なことになります。読…