go-twitterへのpull requestがmergeされた

Go用Twitterクライアントライブラリ「go-twitter」に送っていた私のpull requestがmergeされました。 github.com 直したバグは自分がこの記事で指摘しているbufio.Scannerの仕様に起因するバグで、うちのbot並にfollowingsが多いアカウント(7,000くらい)だ…

TensorFlowのtf.contrib.layers.batch_normの注意点

TensorFlowのtf.contrib.layers.batch_normは他のtf.contrib.layersの関数(conv2d、fully_connectedなど)にnormalizer_fnパラメーターで渡すことができ、Batch Normalizationを含めひとつの関数呼び出しにまとめることができるのでコードがスッキリして便…

Deep Learningで「いらすとや風人間画像生成モデル」を作った話(DCGAN、Wasserstein GAN)

フリー素材サイト「いらすとや」に出てくる人間風の画像を自動生成するモデルをDeep Learningで作りました。実装にはGoogle製のライブラリ「TensorFlow」と機械学習アルゴリズムの「DCGAN」「Wasserstein GAN」を用いています。 以下は生成された人間画像の…

うちのbotが「いらすとや風の人間画像」を製造できるようになった

mickey24_botが機械学習を使って「いらすとや風の人間画像(?)」を無料で製造できるようになりました。 人間製造した pic.twitter.com/dezDC1y2yy— mickey24_bot (@mickey24_bot) 2017年6月28日 まだ以下のようにぐちゃぐちゃな画像を製造する場合がありま…

Goのbufio.Scannerは入力データの1行の長さが一定以上になるとスキャンをやめてしまう

Goのbufio.Scannerの落とし穴について。 概要 Goのbufio.Scannerはio.Readerを一行ずつ読み込んで行く時に非常に便利なライブラリなのだけど、タイトルの通り、入力データ(io.Reader)の1行の長さがScannerのバッファサイズを超えるとスキャンをやめてしま…

はてなブログに移行しました

今更ですがはてなダイアリーからはてなブログに移行しました。はてなダイアリーの新規開設受付が終了してこのままはてなダイアリーを使い続けていても近い将来にはてなブログに移行させられそうだったので、余裕があるうちにやっておきました。 旧ダイアリー…

雨予報bot「mickey24_bot」の使い方 ver 3.0

mickey24_botは主に以下の機能を備えているTwitter botです。 短時間雨予報&天気予報 週間天気予報 雨予報自動配信 漢字天気予報 人間画像製造 臓物占い Brainf*ckインタプリタ おまけ どんなbot? 短時間雨予報用bot。「○○の雨」もしくは「○○の天気」から…

mickey24_botの雨予報自動配信の仕様が変わりました

mickey24_botの雨予報自動配信が配信専用bot(@rainforecast0, @rainforecast1, ...)によって行われるようになりました。この変更によって、mickey24_bot本体のツイート数が少なくなり、rate limit exceededエラーによってbotがしばらく会話できなくなると…

Cucumber+Mockで悩んでいる

CucumberでMockに対するmethod呼び出しのexpectation(should_receive)をどのように書くか悩んでいる. 動くけど好きじゃない例 CucumberのexamplesにMockを使う例がある. https://github.com/cucumber/cucumber/tree/master/examples/rspec_doublesこの例…

Ruby 2.0.0-p0がリリースされてた

Ruby 2.0.0-p0 リリースノートわーい.開発・リリースに関わった皆さん,本当におつかれさまでした&ありがとうございました. 非互換 リリースノートにRuby 2.0.0の「特筆すべき非互換」について書いてあったので真っ先に確認してみた. デフォルトのスクリ…

うちのbotがエアコンの操作方法を覚えた

追記:2017-07-09現在この機能は利用できません。最新の情報は雨予報bot「mickey24_bot」の使い方 ver 3.0 - ぬいぐるみライフ?をご覧ください。ぼくの自宅のエアコン限定ですが,mickey24_botがエアコンを操作できるようになりました. どんな機能なの う…

unite.vimで:UniteWithBufferDirのsourceにfile_recを指定すると失敗する

Vim

現在開いているバッファのディレクトリでUniteのfire_rec (file_rec/async)を実行したいことが結構あるのだけど,以下のように:UniteWithBufferDirとfile_recを組み合わせて実行すると何故か結果がひとつも表示されない. :UniteWithBufferDir file_rec:Unit…

JavaScriptの等値演算は==ではなく===を使うようにする

JavaScriptの==は予想外の結果を返すことがある JavaScriptの等値演算子==は,左右のオペランドの型が等しい場合,両者の値が等しければtrueに,そうでなければfalseになります.しかし,2つのオペランドの型が違う場合,==はオペランドを型変換してから比較…

Vimで行末の空白文字をハイライトする

Vim

.vimrcに以下のように書いておくと自動的にハイライトされるようになる. augroup HighlightTrailingSpaces autocmd! autocmd VimEnter,WinEnter,ColorScheme * highlight TrailingSpaces term=underline guibg=Red ctermbg=Red autocmd VimEnter,WinEnter *…

「Arduinoをはじめようキット」を購入したよ

全くの初心者なのでとりあえずキットを買ってみた.Arduinoをはじめようキット出版社/メーカー: スイッチサイエンスメディア: おもちゃ&ホビー購入: 64人 クリック: 1,164回この商品を含むブログ (50件) を見るついでに本も注文してみた.Arduinoをはじめよ…

mecab-rubyのMeCab::Tagger#parseToNodeの戻り値が気に入らないのでアレする

mecab-rubyでテキストを形態素解析するときによく使うMeCab::Tagger#parseToNodeですが,戻り値がMeCab::NodeのArrayやEnumeratorではなく,以下のようにMeCab::Node#nextを使って各要素にアクセスしなければならないので使い勝手が悪いです. # -*- coding:…

Ubuntu 10.04でMeCabをRubyから使えるようにする

MeCabのインストール MeCabと辞書のインストールはapt先生にお任せします.辞書はUTF-8のものを使います. $ sudo apt-get install mecab mecab-ipadic-utf8MeCabが正常に動くことを確認します. $ echo "俺、この戦争が終わったら結婚するんだ。" | mecab …

rbenvでインストールしたRubyのgemコマンドがzlib云々ほざいて動かない時の対処法

rbenvでインストールしたRubyのgemを動かしたら以下のようなエラーを吐いて死にました. $ gem install -V twitter ERROR: Loading command: install (LoadError) no such file to load -- zlib ERROR: While executing gem ... (NameError) uninitialized c…

JavaScriptで記号だけを使ってFizzBuzz

ブラウザ環境ではalert関数で,Rhinoなどではprint関数でFizzBuzzの結果を出力するようになっています.ブラウザで実行して出たダイアログのOKボタンが押せない場合はエンターキーを押してください. $=+[];$={___:$++,__$:$++,_$_:$++,_$$:$++,$__:$++,$_$:…

JavaScript勉強中

2ヶ月くらい前からJavaScriptの勉強を始めました.とりあえずJavaScript: The Good Partsを読んで「JavaScriptの良い部分」だけを使ったコードを書く練習をしているところです.JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス作者: Do…

Rubyの文字列リテラルの種類と使い分け方

Rubyでは文字列リテラルの記述にダブルクォート("),シングルクォート('),そして%記法が使える.Rubyでコードを書く上でそれぞれをどのように使い分ければいいか迷ったことがある人も多いのではないかと思う.というわけで自分なりの使い分け方を簡単にまと…

Google Chromeのabout:flagsを無効にして起動する

--no-experimentsオプションを指定してGoogle Chromeを起動すると,about:flagsの設定を一時的に無効にすることができる.Mac OS Xの場合は,ターミナルで以下のコマンドを実行すればOK. $ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome…

日本全国の地震の推移をggplot2で可視化する

RubyやRでスクリプトを書いて可視化してみた. tenki.jpの地震情報を取得するRubyスクリプト (fetch_quake_info.rb) 以下は2011/3/11 0:00から現在時刻までのtenki.jpの地震情報を取得するRubyスクリプト.Nokogiriを使ってスクレイピングする. #!/usr/bin/…

Tsukuba.R#9は延期します

http://wiki.livedoor.jp/syou6162/d/Tsukuba.R%23920日(日)開催予定のTsukuba.R#9は,余震や交通機関の乱れなどの状況を鑑み,延期することになりました.新たな開催日は後日告知させていただきます.申し訳ありませんがよろしくお願いします.

ggsave関数でggplot2のグラフをファイルに保存する

ggplot2で描画したグラフをファイルに保存するにはggsave関数を使う. library(ggplot2) p <- qplot(carat, price, data = diamonds, color = clarity) # 描画して確認 print(p) # PNG画像として保存 ggsave(file = "diamonds.png", plot = p) 解像度/画像サ…

福島原発のγ線量測定データをggplot2で可視化してみた

東京電力が福島原発周辺におけるγ線量などの測定データをPDFで随時公開しているが,これを奥村先生がCSV形式に加工して配布なさっている.http://oku.edu.mie-u.ac.jp/~okumura/stat/data/このデータをRのggplot2ライブラリで可視化してみた. CSVデータの特…

Tsukuba.R#9の開催/延期については16日(水)までにお知らせします

http://wiki.livedoor.jp/syou6162/d/Tsukuba.R%239Tsukuba.R#9は3/20(日)に東京大学で開催する予定でしたが,東北地方太平洋沖地震の状況を鑑み,予定通りに開催するべきかどうかを検討中です.開催/延期については16日(水)までに決定してお知らせします.…

Rubyによるワンライナーのまとめ

Rubyでワンライナーを書く際によく使うコマンドライン引数と具体例をまとめてみた. 基本 -e : コマンドラインからスクリプトを指定 コマンドラインからスクリプトを指定する場合に使う.ワンライナーでは必須. $ ruby -e 'puts "Hello, world!"' 行単位の…

開発合宿してきます

明日から熱海の旅館で開発合宿をやってきます.2泊3日.温泉を楽しみながらひたすらコードを書くだけの合宿です.参加者は8人. iNut syou6162 twittoru wakuteka y_benjo yag_ays yuyarin mickey24 私は主にうちのbotのソースを一新する作業をやります.で…

ぱらぽぺった ろっぷんぬいぐるみ 〜登場編〜

ロップイヤー(垂れた耳が特徴のウサギの品種)のキャラクター「ろっぷん」のぬいぐるみ.かわいい.ロップイヤーなだけあって耳が長い.耳先がふにふにしてて触り心地がいいのだけど,割と重くなってるのでぶんぶん振り回すとやばい.次に酔っ払った時は是非…

Phillip KoehnのStatistical Machine Translationを買った

NLP

頑張って読みます.Statistical Machine Translation作者: Philipp Koehn出版社/メーカー: Cambridge University Press発売日: 2009/12/17メディア: ハードカバー購入: 1人 クリック: 12回この商品を含むブログ (16件) を見る

PKU JudgeOnlineのProblem 1000をBrainf*ckで解いてみた

解いた問題 Problem 1000: A + B Problem http://poj.org/problem?id=1000 問題説明 a + bを計算せよ. Input 二つの整数a,b (0 Output a + bの計算結果を出力せよ. Sample Input (stdin) 1 2 Sample Output (stdout) 3 解答 PKUにはCのコードがsubmitでき…

転移学習とか統計的機械翻訳とか

NLP

読みたい論文,読みたい本が溜まってきた.ううう.とりあえず興味があるものの一部を列挙してみる. 論文 最低限読んでおきたい論文 Sinno Jialin Pan and Qiang Yang. A Survey on Transfer Learning. IEEE Transactions on Knowledge and Data Engineerin…

Rubyで配列の条件を満たす要素を列挙するor取り除く(select, reject, partition)

Arrayの以下のメソッドについてまとめてみた. select (select!) reject (reject!) partition select : 条件を満たす要素を列挙 条件を満たす要素を列挙するにはselectを使う.selectはブロックの評価結果がtrueとなる要素からなる配列を返す.非破壊的. a …

Rubyで文字列をn文字ごとに区切って配列に格納する

String#each_charとEnumerable#each_sliceを使えば簡単にできる. "ABCDEFGH".each_char.each_slice(3).map{|a| a.join} #=> ["ABC", "DEF", "GH"] ただしRuby 1.8.7以降が必要.each_charやeach_sliceなどのイテレータメソッドはブロックを与えないで呼び出…

mickey24_botのソースコード書き直し計画

雨予報bot「mickey24_bot」のソースコードが肥大化して管理が難しくなってきたので1から書き直し始めた. Ruby 1.9を使う gem twitterのver 1.0以降に対応する なるべくRSpecでテストを書く User Streamsに対応する 雨予報自動配信を分散化する Ruby 1.9を使…

bit.ly API ver 3.0をRubyから使う

URL短縮サービス「bit.ly」のAPIがいつの間にかversion 3.0になっていた.それに関連してversion 2系のAPIが今日の昼頃から利用できなくなった.雨予報botのmickey24_botが各種URLをポストする時にbit.lyのAPIを使って短縮するようにしているのだけど,この…

ggplot2のqplot関数のまとめ

Rのステキグラフィックスライブラリ「ggplot2」のqplot関数についてまとめてみた.少し頑張りすぎた.関連記事:ggplot2の概要 - ぬいぐるみライフ?

ggplot2の概要

Tsukuba.R#9での発表に向けてggplot2の勉強を始めた.これまで調べたことを軽くまとめてみる. ggplot2とは 高度な2Dグラフィックの描画について統一的な操作を提供してくれるライブラリ.「The Grammar of Graphics」という思想に基づいていて,ユーザがデ…

Tsukuba.R#9は3/20に東京大学で開催です

会場が決まったみたいなので再度宣伝します.統計処理言語Rの勉強会「Tsukuba.R#9」が3/20(日)に東京大学で開催されます.興味を持たれた方はぜひ↓のWikiに名前を追加して参加表明してください.懇親会もありますのでよろしくお願いします. http://wiki.liv…

映画「The Social Network」の脚本をNLTKで解析して遊んでみた

※この記事には映画「The Social Network」のネタバレがそれなりに含まれています.これから映画を観る予定の方は逃げた方が賢明です.

C++のSTLアルゴリズムには関数ポインタよりも関数オブジェクトを渡そうという話

C++

C++のalgorithmヘッダーで宣言されているSTLのアルゴリズム関数テンプレートには,引数に関数ポインタや関数オブジェクト(ファンクタ)を取るものが多い.例えば,引数が一つの関数を受け取るstd::transformは以下のコードと等価である. template <class InputIterator, class OutputIterator, class UnaryOperator> OutputIte</class>…

さくらVPSにカスタムOSのUbuntu 10.04をインストール+セキュリティ設定などをした時のメモ

仮想サーバひとつの管理権限をまるごともらえるさくらVPSが便利そうだったので契約してみた.これならレンタルサーバでは動かせないような高負荷のサービスも運用できそうだ. デフォルトのOSはCentOS 5.5 x86_64だったけど,カスタムOSとしてUbuntu 10.04 L…

自然言語処理,始めます

NLP

周りの人には少しずつ言ってきたけど,ブログでも宣言してみる.最近自分の興味が自然言語処理の方向に向いてきてしまった.というわけで自然言語処理の勉強を始めることにした.これはやってみるしかないだろう.思い立ったが何日という感じの言葉もあるし…

RubyでFizzBuzzのコードゴルフ(61バイト)

やってみたけどコードゴルフの定石を知らないのでこれくらいしか縮まらない. 1.upto(100){|i|print(i%3<1?:Fizz:i%5>0?i:'',[:Buzz][i%5],$/)} 記号プログラミングの方が楽だ.anarchy golfのランキングによると,RubyでFizzBuzzを書いた場合の最短コードは…

Rのインタプリタを改造して->(){}で関数を書けるようにしてみた

何やったの Rのインタプリタのソースコードを改造してfunction(x){ statement }をRubyのlambdaライクに->(x){ statement }と書けるようにした. 何がうれしいの わざわざ"function"という長いキーワードを入力しなくて済む 記号だけで関数が記述できる ソー…

Tsukuba.R#9は3/20(日)に東京都内で開催です

統計処理言語Rの勉強会「Tsukuba.R#9」の開催日が3/20(日)に決定しました.今回は東京都内で開催予定(場所は未定)です.興味を持たれた方はぜひ↓のWikiに名前を追加して参加表明してください.懇親会もありますのでよろしくお願いします. http://wiki.lived…

Mac OS XにAWStatsをソースからインストールする

Mac

Webサーバ用ログ解析ツールのAWStatsをMac OS Xにインストールしたときの作業メモ. 動作環境など ApacheはMac OS X付属のものを利用 (MacPorts版ではない) MacPortsは使わずソースからインストール インストール先は/Library/Webserver/awstats-7.0 AWStats…

オンラインで使えるコンパイラ&インタプリタのideoneが便利

ideoneはフリー(つまり無料)で使えるオンラインコンパイラ&インタプリタ. http://www.ideone.com/ソースコードをフォームに書いてsubmitするとそれの動作結果が表示され,submitしたコードのページへの固定リンクも用意される. 40以上ものプログラミング言…

cout << trueで"true",cout << falseで"false"を出力する

C++

std::boolalphaを使う. #include <iostream> using namespace std; int main () { bool b = true; cout << boolalpha << b << endl; cout << noboolalpha << b << endl; return 0; } 出力は以下の通り. true 1 参考資料 boolalpha - C++ Reference</iostream>