タグ

ブックマーク / memo.sugyan.com (21)

  • Rubyでバイナリデータに対するrindex検索の挙動でハマったので調べたことメモ - すぎゃーんメモ

    自分の手元の環境でこんなことが起きた。 $ ruby -v ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21] $ irb irb(main):001:0> "\x01\x80\x00\x00".index("\x01") => 0 irb(main):002:0> "\x01\x80\x00\x00".rindex("\x01") => 1 \x01 は 0 番目にしかないのだから、 .index でも .rindex でも 0 が返ってくるはずではないの?? 先に結論 きっかけ String#rindex の謎挙動 もう少し深く追う Encodingと実行環境 つまり再現条件は Rooの問題 Rubyのバグではないの? 3.2 先に結論 バイナリデータを扱うときには必ずEncodingを ASCII-8BIT

    Rubyでバイナリデータに対するrindex検索の挙動でハマったので調べたことメモ - すぎゃーんメモ
  • 顔画像生成のためのデータセットを作る - すぎゃーんメモ

    動機 TensorFlowの登場をきっかけに 機械学習によるアイドル顔識別 という取り組みをしていて、3年以上かけてコツコツとアイドルの自撮りを収集してラベルをつけてデータセットを作ってきたけど、 アイドルヲタクはもう辞めてしまって 現場にも全然行かなくなり、卒業・脱退の情報を追いながらラベルを更新していく作業を続ける情熱はすっかり薄れてしまった。 もうアイドル顔識別プロジェクトは終了にしよう、と思った。 しかし折角今まで集めたデータを捨ててしまうのは勿体無い。せめて最後に何か活用できないものか。 と考えて、「画像生成」に再び取り組んでみることにした。 過去に試したことはあったけど、それほど上手くはいっていない。 TensorFlowによるDCGANでアイドルの顔画像生成 TensorFlowによるDCGANでアイドルの顔画像生成 その後の実験など この記事を書いたのが2016年。 この後

    顔画像生成のためのデータセットを作る - すぎゃーんメモ
    seiunsky
    seiunsky 2020/01/20
    すごい
  • 斜めに写った画像をCanvasで矩形に補正する - すぎゃーんメモ

    将棋駒画像分類の話の続きのような、あんまり関係もないような。 memo.sugyan.com memo.sugyan.com 結局、素材を組み合わせて自動で生成しただけの駒画像ではやはりデータが足りていないようで、「やはりもっと様々な画像から人力でラベル付けしてデータセットを作っていく必要がありそう」ということになった。 とはいえ、インターネットから画像を拾ってこようと思うと、例えば以下のような感じで (引用元: フリー写真素材ぱくたそ) 多少ならともかく 斜めの角度から写っているものは、そのまま矩形に切り出して学習用画像データに利用するのは難しそう。 これらはうまいこと変形して使いたい。 いわゆるperspective projectionの逆変換のような操作が必要になる。 JavaScriptを使ったCanvas APIでの変換では簡単な拡大・縮小などの変換は可能だけど こういったpe

    斜めに写った画像をCanvasで矩形に補正する - すぎゃーんメモ
  • TensorFlowによるDCGANでアイドルの顔画像生成 - すぎゃーんメモ

    アイドル顔識別のためのデータ収集 をコツコツ続けて それなりに集まってきたし、これを使って別のことも…ということでDCGANを使ったDeep Learningによるアイドルの顔画像の「生成」をやってみた。 まだだいぶ歪んでいたりで あまりキレイじゃないけど…。顔画像を多く収集できているアイドル90人の顔画像からそれぞれ120件を抽出した合計10800件をもとに学習させて生成させたもの。 分類タスクとは逆方向の変換、複数のモデル定義などがあってなかなか理解が難しい部分もあったけど、作ってみるとそこまで難しくはなく、出来上がっていく過程を見るのが楽しいし とても面白い。 DCGANとは "Deep Convolutional Generative Adversarial Networks"、略してDCGAN。こちらの論文で有名になった、のかな? [1511.06434] Unsupervise

    TensorFlowによるDCGANでアイドルの顔画像生成 - すぎゃーんメモ
    seiunsky
    seiunsky 2016/05/16
    すぎょい
  • 全裸bot for LINE - すぎゃーんメモ

    BOT API Trial Account Overview - LINE Business Center が公開されて、LINEのbotが作れるようになった、ということで 遅ればせながら自分も 過去に作ったTwitter bot を移植してみた。 テキストを受け取ってちょっと改変してオウム返しする、というのは練習としては良い題材ですね。kagome を使えばPure Go形態素解析できるし、ということでGoで書いてみた。 source code https://github.com/sugyan/line-zenra-bot Callback URLにSSLが必須、送信側はIP Whilelistに登録している必要がある、ということでちょっと制限があるけれど、これくらいのお遊び程度のものならherokuで受けて fixie addonを使えばIP固定させて使うことができる。もっと格的

    全裸bot for LINE - すぎゃーんメモ
    seiunsky
    seiunsky 2016/04/13
    全裸で読んだ
  • TensorFlowによるディープラーニングで、アイドルの顔を識別する - すぎゃーんメモ

    以前は MNISTの例を使って画像識別を試してみた けど、次はカラー画像についての識別を試してみる。 「アイドルなんてみんな同じ顔に見える」って 最近も言われてるのかどうか知らないけど、自分もつい5年前くらいまではそう思っていたわけで。その識別を機械学習でやってみよう という試み。 最近はほとんどライブに行かなくなってしまったけど大好きなももいろクローバーZちゃんを題材にしてみることに。 5人のメンバーの顔は機械学習によってどれくらい分類できるようになるのか?? CIFAR-10 CIFAR-10 という、32×32サイズのカラー画像を10種類のクラスに分類する識別課題があり、そのデータセットが公開されている。これを実際にTensorFlowで学習するための畳み込みニューラルネットワークのモデルや関数などがtensorflow.models.image.cifar10パッケージに同梱されて

    TensorFlowによるディープラーニングで、アイドルの顔を識別する - すぎゃーんメモ
  • Heat mapで動きが活発な地域を可視化する - すぎゃーんメモ

    Ingressの話。 先月 にA14になり、もはやGold Medalは不要になったしGuardianはキッパリ諦めることにした(Max Time Portal Heldが19 daysで壊される、というのを3回経験した…)わけだけど。 実際のところ自分の活動圏付近でどのあたりで入れ替わりが激しくてどのあたりが平和なんだろうか、というのを調べてみようかな、と。 Heat mapというものを使ったことがなかったので作ってみることにした。 こんなカンジ。 ゴニョゴニョ することで Intel Map のCOMMのALLに流れるログからPortalがcapturedされたものを取得。それを使ってGoogle Maps上にHeatmapを描画。してみると、どのあたりで活発にPortalが塗り替わっているのかが可視化されてちょっと面白い。 モノとしては Ingress Damage Reports

    Heat mapで動きが活発な地域を可視化する - すぎゃーんメモ
    seiunsky
    seiunsky 2015/02/07
    しゅごい!!!!
  • #isucon 2013で優勝しました - すぎゃーんメモ

    第三回 ISUCONの選に、参加しました。予選から引き続き、@kazeburoさん、@tagomorisさんとの「LINE選抜チーム」。 #isucon 2013予選に参加した - すぎゃーんメモ 第三回 #isucon 選リアルタイムフォトレポート【更新終了】 : ISUCON公式Blog 結果はなんと、優勝!! おや、優勝2回目だ。→第1回のとき タイムライン 予選のとき同様に、自分の手元にある記録と記憶を辿ってどんな雰囲気だったか書き残してみます。間違っていたらゴメンナサイ。 使用言語はPerlです。 〜10:00 出社…じゃなくて会場入り。ちゃんと前日に早寝したので寝坊せずに済みました。 〜11:00 開会待ち。早くきすぎた、でも他の参加者さんたちも早くからしっかり集まってる。 ルール説明。ストーリー仕立てで緊張感が走る。画像系サービスか〜。 11:00〜 開始。用意されたのは

    #isucon 2013で優勝しました - すぎゃーんメモ
  • gitのdiffとかで長い行の表示が切れないように設定する - すぎゃーんメモ

    git diffした時に、横に長い行の表示がコンソールの右につきぬけてしまって、右のほうが見えなくなってしまうんだけど、どうすればコンソールの右で折り返して表示してくれるのか誰か教えてくれませんか。MacTerminalです。 http://twitter.com/shin1ogawa/status/13489861413 というのがあって、 git diff --color | less -Rとかで出来るっぽいという話になったんだけど、そんなのやらなくても設定でどうにかできるはずだよね、という話をhokaccha氏にしてみたら、すぐに調べて教えてくれた。ありがとうございます! $HOME/.gitconfig に、 [color] ui = auto [core] pager = less -rと書いておけばいいだけらしい。 git diffとかで表示が切れてしまうときの対象方法 -

    gitのdiffとかで長い行の表示が切れないように設定する - すぎゃーんメモ
  • げんきだしてbot - すぎゃーんメモ

    @sugyan げんきだして! 2013-02-06 21:50:53 via Twitter for Mac to @sugyan って自分で言うの面倒なので自動的に励ましてくれるbotが欲しいと思って。 https://github.com/sugyan/genki-bot 今ならherokuでUserStreamとか使ってネガティブワードに反応してtweetするとか簡単に書けるのかな、と require 'tweetstream' TweetStream.configure do |config| config.consumer_key = ENV['TWITTER_CONSUMER_KEY'] config.consumer_secret = ENV['TWITTER_CONSUMER_SECRET'] config.oauth_token = ENV['TWITTER_ACCES

    seiunsky
    seiunsky 2013/02/10
    っていうか、今までのボットか定期ポストだと思ったら手動だったのか……
  • 以前作ったSinatraアプリをPadrinoで書き直した - すぎゃーんメモ

    ももクロの人気上昇ぶりをグラフで可視化する - すぎゃーんメモ という記事で作ったアプリをちょっと作り直した。 Sinatra + pg + Haml というかんじでシンプルなSinatraアプリでpgから直接SQLを叩いて云々してhamlでレンダリング、というかたちだったものを、 Padrino + Sequel + Slim を使った構成に。 あとはTwitter bootstrapやHighstockのアップデートなど。 app: http://momoclo-visualizer.herokuapp.com/blog_comments/ source code: https://github.com/sugyan/momoclo-visualizer Padrinoメモ gemでPadrinoをインストールしてpadrino gen project hogeみたいなかんじでスケルト

    以前作ったSinatraアプリをPadrinoで書き直した - すぎゃーんメモ
  • 「JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技」を読みました - すぎゃーんメモ

    JavaScriptテクニックバイブル」献いただいたのでありがたく読んでるけど内容盛りだくさんでなかなか読み終わらない! URL 2012-08-31 00:44:04 via Instagram JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技 作者: JSサポーターズ出版社/メーカー: 技術評論社発売日: 2012/08/31メディア: 単行(ソフトカバー)購入: 38人 クリック: 1,796回この商品を含むブログ (12件) を見る縁あって少しだけレビューをお手伝いさせていただきまして、献いただきました。わざわざ謝辞にまで載せていただきましてありがとうございます。 全11章、400ページ超にわたる見事な作品。 とりあえず各章読んだ感想をざくっと書かせていただきました。 Chapter01: 開発を取り巻く環境を改善する まず最初に環境をしっかり整える

    seiunsky
    seiunsky 2012/08/31
    書評すごい!!
  • 目からビームな画像を生成するWebサービスを作った - すぎゃーんメモ

    ももいろクローバーZのニューシングル「Z女戦争」が6月27日に発売されます。 Z女戦争(初回限定盤A)(DVD付) アーティスト: ももいろクローバーZ出版社/メーカー: キングレコード発売日: 2012/06/27メディア: CD購入: 4人 クリック: 433回この商品を含むブログ (57件) を見る で、それに先立って公開された新衣装でのアー写が、何故かメンバーが目からビームを放っているものだった。 ももクロ「いいとも」テレフォンショッキングに再び登場 - 音楽ナタリー これに影響を受けて、周りのももクロクラスタの方々が次々にTwitterの自分のアイコン画像を加工して目からビームを放っているものに変更していたりしたのだけど、それなりに画像を加工するツールやテクニックがないと難しいし、手間もかかる。「もっとカジュアルに目からビームを放ちたい!」という需要もあるのではないかと思い、自動

    目からビームな画像を生成するWebサービスを作った - すぎゃーんメモ
  • ターミナルエミュレータに"Ctrlキー+何か"で送信できる範囲 - すぎゃーんメモ

    (※補足記事 2012-02-28: ターミナル上のEmacsで来使えない"Ctrlキー+何か"を使う方法 - すぎゃーんメモ) Emacs.appでC-;(Ctrlキー + セミコロン)をよく使うコマンドに割り当てていたのだけど、思うところあってTerminal上で動くemacsに乗り換えようと思って色々と設定をいじっていたところ、Terminal上ではC-;が効かないことが分かった。 なんでダメなのかTwitterで訊きつつ調べてみた。 Control character - Wikipedia, the free encyclopedia アスキーコードについて調べてみた - 昨日と今日とそれから明日 azurecube » Blog Archive » ターミナル上でのCtrl-記号の扱いについて keybind 自分で理解した範囲では、「Ctrlキーは0x00-0x1Fの制御文

    ターミナルエミュレータに"Ctrlキー+何か"で送信できる範囲 - すぎゃーんメモ
  • Developers Summit 2012: 2日目 - すぎゃーんメモ

    Developers Summit 2012: 1日目 - すぎゃーんメモに引き続き、入社3日目だけど(ry 断片メモ 【17-E-2】Ruby PaaS「MOGOK」 〜 ソフトウェアエンジニアのためのクラウドサービス 〜 (藤原 秀一さん) heroku使ってるヒトがそこにシフトする感じもあまりしないしどうなんだろう? herokuとの違いについて直接質問させていただいた 現状ではあまり違いはない IIJの他のサービスと連携しやすい、国内にあるためレイテンシは少ない、など (herokuは日近辺の場所にサーバ置かないんでしたっけ?) どのように実現するかも含めて現在計画中、とのこと (そこが達成されてしまうとますますMOGOKの優位性が…) (そもそも日人専用サービスでも無い限り日に置く必要ないか) 【17-A-3】スマートフォンにおけるHTML5実装の最先端 (@tkihira

    Developers Summit 2012: 2日目 - すぎゃーんメモ
  • MySQLのコマンドたち - すぎゃーんメモ

    http://mysql-casual.org/2011/11/mysql-casual-advent-calendar-2011.html の6日目の記事として書かせていただきます、sugyanです。 勢いで参加表明してしまい、今日慌てて久しぶりにMySQLを触りました。 MySQLでFizzBuzz ストアドプロシージャって使ったこと無かったので初めて触ってみました。 DROP PROCEDURE IF EXISTS FizzBuzz; delimiter // CREATE PROCEDURE FizzBuzz(n INT) BEGIN DECLARE i INT DEFAULT 1; WHILE i <= n DO SELECT CASE WHEN i % 3 = 0 AND i % 5 = 0 THEN 'FizzBuzz' WHEN i % 5 = 0 THEN 'Buzz'

    MySQLのコマンドたち - すぎゃーんメモ
    seiunsky
    seiunsky 2011/12/07
    ¥cは知らなかった……! これはライフチェンジングな予感やでぇ
  • rbenvの切り替えの仕組み…と、他言語での実験 - すぎゃーんメモ

    rbenvを使ってみる - すぎゃーんメモの続き。 現時点でのrbenvのバージョンは0.2.1。 rbenvを使っていると.rbenv-versionファイルの有無でrubyコマンド打ったときに実行されるrubyが違うものになる、というのがちょっと新鮮で、これはどういう仕組みで動いているのだろう?と思って少し調べてみた。 上記記事のようにrbenvの設定をした環境では、 $ which ruby /Users/sugyan/.rbenv/shims/rubyとなり、${RBENV_ROOT}/shims以下のrubyを指すことになる。ここへのPATHは$HOME/.rbenv/libexec/rbenv-initに echo 'export PATH="'${RBENV_ROOT}'/shims:${PATH}"' と書かれているので、eval "$(rbenv init -)"してあれ

    rbenvの切り替えの仕組み…と、他言語での実験 - すぎゃーんメモ
    seiunsky
    seiunsky 2011/11/28
    rbenvの仕組み!!
  • WEB+DB PRESS vol.64 にNode.js入門記事を書かせていただきました - すぎゃーんメモ

    色々と縁がありまして、「WEB+DB PRESS vol.64」にて、"JavaScript最前線"という特集の1章としてNode.jsの入門記事を7ページほど書かせていただきました。まだNode.jsを触ったことがない、触り始めたばかり、といった方々がこの先Node.jsを使い始める際のとっかかりになれば幸いです。 憧れの愛読誌に自分の名前が載る、っていうのはすごく嬉しいものですね。今後も何か縁があればまた書かせていただけるよう、精進していきたいと思います。 技術評論社様、ありがとうございました! WEB+DB PRESS Vol.64 作者: 柏木泰幸,松野紘明,林聖高,杉義宏,飯塚直,高橋征義,徳永拓之,Tehu(張惺),中島聡,おにたま出版社/メーカー: 技術評論社発売日: 2011/08/24メディア: 大型購入: 17人 クリック: 714回この商品を含むブログ (16件)

    WEB+DB PRESS vol.64 にNode.js入門記事を書かせていただきました - すぎゃーんメモ
    seiunsky
    seiunsky 2011/08/23
    キャーすぎゃーんさーん!
  • 手作りiPhoneTracker - すぎゃーんメモ

    これは不気味―iPhoneには過去の位置情報が逐一記録されていることが判明 | TechCrunch Japanという記事が話題に。 iPhoneで取得した位置情報が記録されている、というもの。そのデータを抜き出して可視化するツールが公開されている。 petewarden/iPhoneTracker @ GitHub ソースが公開されているので覗いてみたところ、どうやら"$HOME/Library/Application Support/MobileSync/Backup"以下のファイルにそれらの情報を格納しているsqliteのファイルがあるらしく、そこからすべて抜き出しているらしい。ただBackupディレクトリ以下には無数のファイルがあり、どれがどれか分からない。それを判別するために"Manifest.mbdb", "Manifest.mbdx"というファイルを解析しているようだ。解析方

    手作りiPhoneTracker - すぎゃーんメモ
    seiunsky
    seiunsky 2011/04/24
    すてきやん
  • Quine ruBy Perl版 - すぎゃーんメモ

    Quine ruBy - まめめも 僕みたいなruby素人には何やっているのかよくわからない >< のでperl版を作ってみた。 eval (($q ||=q{1; $b=qq{$ q\x7d))}. join(chr( 2 +30)x11,( ";","BEGIN" .'{$^H|=' . ( "0x800000"),q"}eval$b"));$b=~s/\e\[.* ? m //xg;for(28,5,45,5,53,58,86,30,1, ( ( 43)),58,86,30,1,53,58,31,2,43,58,31,2 , 55,5,45,5){$~=(0,"48;5;9","48;5;1","48;5" .";15")[$_/28];substr($b,517+$i+($_%28),0 ,() ."\e[$~m");$i+=length($~)+3+($_%28) };( $n=

    Quine ruBy Perl版 - すぎゃーんメモ
    seiunsky
    seiunsky 2011/04/20
    全裸のQB