忘れたらググればいい

2017年1月21日土曜日

数字しか表示できないフォントを作ってみた

セキュリティフォントだって

作ってみたい

作った

bloggerから参照できる場所にフォントファイルを置けなかったので、画面キャプチャだけ。 数字にしか見えない部分もコピペしてみると、元の文章と同じだと分かる。

Font Bookで見るとなかなかカオス...。

フォントはこちらを参考に作りました。

「コピペできない文章」がコピペできなかった理由 - てっく煮ブログ

2016年10月11日火曜日

radikoの仕様変更で録音ができなくなる問題を修正(2016年10月)

2016/10の機能追加でPC用アプリ(flash)が更新された

radiko.jp

以前のスクリプトの修正

radikoの仕様変更で録音ができなくなる問題を修正 | 忘れたらググればいい

radikoの録音の失敗する問題に応急処置 | 忘れたらググればいい

  • playerurl=http://radiko.jp/apps/js/flash/myplayer-release.swfに変更
  • X-Radiko-App: pc_tsに変更
  • X-Radiko-App-Version: 4.0.0に変更
  • /opt/local/bin/swfextract -b 12 /dev/stdin -o /dev/stdoutに変更

全変更を適用したのが以下

2016年1月29日金曜日

民主党の例のポスターを作るやつ作った

どう考えてもイジられるポスター

「民主党は嫌いだけど…」 民主が自虐的な新ポスター:朝日新聞デジタル

Canvasの学習ついでにやってみた

民主党ポスター ジェネレーター

特徴

  • Canvasなのでブラウザ内で処理が完結
  • 画像として保存できる
  • 画像ファイルを指定すればロゴ画像も入れられる
  • SafariとChromeで動作確認

2016年1月1日金曜日

年賀状メーカー2016

今年も

去年作ったやつをコピペ.

ここに年賀状のプレビューが表示されます.

2015年5月9日土曜日

Pythonで一定長のリスト初期化にかかる時間の比較

元ネタ

あなたのPythonを爆速にする7つの方法

あと時間計測ならば1回だけじゃなくて,何回か実行した平均を取った方がいい.

条件を揃えてやってみた

全要素が0のリストの生成

  • 空の配列に1つずつ0をappend (list_0_append)
  • リスト内包表記 (list_0_comp)
  • 乗算 (list_0_multi)
  • array (list_0_array)
  • rangeで作ったリストに0を代入 (list_0_range)

要素が[0, 1, ..., n-1]のリストの生成

  • 空の配列に1つずつ数値をappend (list_i_append)
  • リスト内包表記 (list_i_comp)
  • 全0のリストを作ったあとに代入 (list_i_multi)
  • array (list_i_array)
  • range (list_i_range)

実証スクリプト

結果

% python bench.py -n 1000000
--Python version--
2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]

--list_0--
list_0_append(1000000) in 0.229992(s)
list_0_comp(1000000) in 0.087843(s)
list_0_multi(1000000) in 0.016838(s)
list_0_array(1000000) in 0.212526(s)
list_0_range(1000000) in 0.175999(s)

--list_i--
list_i_append(1000000) in 0.241931(s)
list_i_comp(1000000) in 0.112636(s)
list_i_multi(1000000) in 0.155012(s)
list_i_array(1000000) in 0.237255(s)
list_i_range(1000000) in 0.050963(s)

全要素0であっても乗算が一番速かった. [0, 1,...,n-1]の場合は,乗算よりリスト内包表記の方が速い.が,range(n)の方がもっと速かった.

pypyでもやってみた

pypy bench.py -n 1000000
--Python version--
2.7.9 (9c4588d731b7, Mar 23 2015, 16:20:40)
[PyPy 2.5.1 with GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]

--list_0--
list_0_append(1000000) in 0.152410(s)
list_0_comp(1000000) in 0.014103(s)
list_0_multi(1000000) in 0.010896(s)
list_0_array(1000000) in 0.022531(s)
list_0_range(1000000) in 0.022315(s)

--list_i--
list_i_append(1000000) in 0.143897(s)
list_i_comp(1000000) in 0.014448(s)
list_i_multi(1000000) in 0.016995(s)
list_i_array(1000000) in 0.023090(s)
list_i_range(1000000) in 0.000005(s)

CPythonよりだいぶ速い.list_i_rangeは異常 (笑).

結論

全要素同じの場合は乗算,[0, 1,...,n-1]ならばrangeが速い. そしてpypy超速い (もちろんメモリやCPUの使い方まで比較してないので一概にpypyがいいとは言えない).

2015年2月4日水曜日

twitterスパムアプリを集めるbotを作ってみた.が,やめるかも.

とにかく連携アプリを認証しまくるbot

スパム収集bot (フォロー禁止)(@__spamcollect__)さん | Twitter

仕様

  1. ツイートを検索.含まれるURLをとにかく開く.
  2. リダイレクトやリンクを辿って,連携アプリの認証ページに行きついたら,認証.
  3. 以上を30分ごとに繰り返し

スパムアプリの増やし方

以前書いた記事のとおり, 最近のスパムアプリは別のユーザの広告ツイートをRTさせたり, スパムアプリへのリンクを含むツイートを書かせたりする.

twitterスパムは意外に賢い | 忘れたらググればいい

したがって,適当にスパムアプリをいくつか見つけて認証すれば, 自分のTLに自動的に新たなスパムアプリへのリンクがやってくる. これを認証すると,さらに新たなスパムアプリがTLにやってくる...を繰り返すだけで, 面白いぐらいスパムアプリを収集できる.

ある程度増やすと,スパムアプリの認証ページへのリンクは,他ではあまり見かけない短縮URLやドメインを使っているのに気づく. そこで,これらのドメインで検索するとさらにたくさんのスパムアプリを効率良く見つけることができる. ちなみにこれらの短縮URLはほとんど広告かスパムアプリへのリンクにしか使われていないのが多いので,広告側が運営しているサービスと思われる.

この数日で集めたドメインはこんな感じ.153.127.25x.*はかなり広範囲に見られるので,それなりの規模でスパムアプリを運営していると思われる. [broccoli.deca.jp, biy.us, k4wu.com, justsv.com, puq.pw, p8q.pw, info.48s.jp, urx2.nu, twdb.sakura.ne.jp, asparagus.vivian.jp, 73n2u.info, mit2ep.com, rro.sakura.ne.jp, twipo.sakura.ne.jp, 153.127.247, 153.127.248, 153.127.249, 153.127.250, 153.127.251, 153.127.253, 153.127.254, 153.127.255]

結果として純度の高いスパムアカウントができてしまった

スパムアプリを狙って認証してるから当たり前だけど, 広告とスパムアプリへのリンクしかツイートしない純度の高いスパムアカウントができてしまった. 作って1週間経ってないけど,すでに8000ツイート(RT含む)超えている. 結構早い段階で凍結されてしまうかもしれない.

スパムアカウントが一発で分かる

このbotはスパムアプリ収集以外に何も操作を加えていないので, このbotがフォローしているアカウントはスパムアプリに勝手にフォローさせられたアカウントであり, 普通のアカウントではないことが一発で分かるという副産物も得られた. 中には,一見害のないように見えるbotが,実はスパムアプリへのリンクをちょいちょい入れたりしているのも分かった. ちょっと恐い.

また,スパムとして純度が高いので,普通の人間はこんなアカウントをフォローしたりはしない. なので,フォローしてきているのは余程の物好きか,スパムアカウントしかない. 少なくとも人間ではない.

今後の改善

早めに凍結されてしまう可能性もあるので,もっと効率よく,広く集めたい. TLの内容を学習してスパムアプリに特徴的な検索ワードを自動で選んだり,単位時間内の処理数を上げるための高速化もやりたい. あと,凍結対策として,ツイートを消したりRT取り消す処理も必要になるかもしれない.

とにかく連携アプリを認証しまくるbotが認証したアプリをツイートしまくるbotも作ってみた

認証したアプリの情報とこれまで収集したアプリの数をツイートする. アプリ数が増えるとbotの成長が感じられてちょっと楽しみになってきた.

スパム以外に誹謗中傷,殺害予告にも使われている

ここまで書き終わってから,botのツイートをチェックしてたら,リンクなしでmention飛ばしてるのがあった.

ちょっと調べてみると同じ内容のツイートがいろんなアカウントから,かなりの勢いで投げられまくっている. もちろん全ての投稿はスパムアプリから.

こうなってくると,単なる遊びで続けるのは難しいかもな... とりあえずmetion飛ばしたアプリは連携を外しておいた.確認できたのは以下.

  • 【ラッスンゴレライ】オリラジが完コピwww
  • ワンピース最大の謎である「D」がついに解明。。。?!
  • 【ドラゴンボール】悟飯は悟空の息子ではなかった事が判明した!!
  • 【心理テスト】直感で3つの色を選んで下さい
  • 【爆笑】柳沢慎吾の始球式で「ひとり甲子園」が始まるwwww
  • 【唖然】SEKAI NO OWARI深瀬さんのアピールが痛いww

2015年1月1日木曜日

年賀状メーカー2015

今年も

去年作ったやつを更新.

ここに年賀状のプレビューが表示されます.

2014年9月13日土曜日

radikoの録音の失敗する問題に応急処置

また録音失敗が続く

以前と同じく失敗が連続してた.たぶん仕様変更.

radikoの仕様変更で録音ができなくなる問題を修正 | 忘れたらググればいい

原因はサーバ変更

水曜JUNKまでは問題なくできていたが,木曜のANN以降全て失敗していた.調べた結果,配信サーバが変わった?のが原因ぽい.

これまでは w-radiko.smartstream.ne.jp だったが, f-radiko.smartstream.ne.jpに変わっていたようだ.配信先URLは http://radiko.jp/v2/station/stream/LFR.xmlなどで確認できるので, 本当は録音スクリプト実行時に毎回配信先を確認した方が確実だけど,めんどうなので,とりあえずスクリプトに直に書くことにする. radiko.kshのrtmpe://w-radiko.smartstream.ne.jp/${ID}/_definst_/simul-stream.streamをrtmpe://f-radiko.smartstream.ne.jp/${ID}/_definst_/simul-stream.streamに変えれば一応動く.

2014年7月10日木曜日

twitterスパムは意外に賢い

最近この形式のツイートの公式RTをよく見かける

元ツイートが22:06で,これを書いている01:15頃には22929件公式RTされている. 単なる広告なのにRT数が多すぎないだろうか? しかも元アカウントはこのツイート1件のみ,フォロワーは6人のみ.

公式RTを実行したアプリ(クライアント)はほぼ全て同じ

どのクライアントから公式RTされたかを集計. 最新の100件程度しか取得できないので,全部は分からないけど,ほとんど以下の1種類のみ.

<a href="http://j.mp/kiyaku1" rel="nofollow">【衝撃】AKB握手会で 「いつも大島優子さんで抜いています」</a> 

クライアントのリンク先の文書が超怪しい

クライアント情報として設定されているリンクのhttp://j.mp/kiyaku1の 転送先は http://twtwapp.sakura.ne.jp/kiyaku.pdf. そのPDFには何かの利用規約的文章が出てくる.

第五条(認証したアカウントへのツイート投稿について)
1.当社は、アプリ認証を行ったアカウントに対して、継続して、本サービスの提供を行うものとします。
2.当社は、アプリ認証を行ったアカウントに対して、アプリを認証すると同時にアプリの紹介文をツイート投稿(リツイートも含む)することがあります。
3.当社は、アプリ認証を行ったアカウントに対して、第三者のインターネットサービス(脱毛・美容関連サイト、無料アプリダウンロード関連サイト、金融サイトなど)、及びそのサービスへのリンク入りの紹介文を不定期にツイート投稿(リツイートも含む)することがあります。当社は、利用者がこれらのインターネットサービスを利用することに関して一切責任を負いません。
4.当社は、アプリ認証を行ったアカウントに対して、不定期にアプリ情報をツイート投稿(リツイートも含む)することがあります。
5.当社は、アプリ認証を行ったアカウントに対して、不定期に関連アカウントをフォローする場合があります。

http://twtwapp.sakura.ne.jp/kiyaku.pdf

このアプリ(クライアント)を認証したら勝手に広告を公式RTしたり,ツイートしたり,別のアカウントをフォローしたりします. ってことだろう. なお,最後まで読めば分かるけど「当社」がどんな会社かは書いてない (会社かすら分からない). 一応問い合わせ先のメールフォーム的なものはあるけど,フリーのメールフォームサービス(?)を使っていて連絡先からは何も分からない.

釣り用ツイートがいっぱい

検索すると釣り用のツイートがいっぱい見つかった. ちなみに,このツイート自体もこのアプリ(クライアント)か類似アプリからツイートされている.

「こちら」のリンク先はもちろんアプリ認証. 認証したら広告botの仲間入り.

試しに認証してみたら, 認証直後に釣りツイートを勝手にツイートされた (もちろんすぐ消した).

さらに謎のアカウント8件を勝手にフォローさせられる. 「カモリスト」ということだろうか. ツイートが1件もないので,フォロワー数が十分増えたら後々誰かに売るためのアカウントなのかもしれない. 監視しておいてもいいかも.(もちろんハライチ岩井さんは違う(笑))

また,ただの偶然かもしれないけど認証直後に「爆笑おもしろ画像bot」にフォローされた. もしかしたらこのアカウントのフォロー先が「カモリスト」なのかもしれないし, このアカウントも広告botにされた被害者で勝手にフォローさせられているのかもしれない.

認証後は,本当にまとめ記事に飛ぶのでそれほど怪しまれないだろう. しかも記事を読んでいる間にTLは流れていくから, 自分が釣りツイートを勝手にさせられていることには気づきにくい.

AKB握手会でのワイ「いつも大島優子さんで抜いてます」って言った結果wwwwwwww : AKB48速報

広告botと化したアカウントの役割

アプリ認証してしまった広告botの役割は, 広告botをさらに増やすための釣りツイートの生成と, 本来の目的である広告ツイートの公式RTだろう. 広告しつつ,コントロール対象を増やしていくという意味では本当にspam bot的な動作だ.

わざわざ公式RTさせる理由

広告botにそのまま広告ツイートをさせず, わざわざ別アカウントの広告ツイートを公式RTさせているのは, twitter側にspamと気づきにくくさせる(同一内容のツイートが別々のアカウントから同時多発的に出て来るのは不自然)ためか, 公式RTだとアプリ(クライアント)名が表示されず気づかれにくいからだろう. アプリ名が表示されるクライアントを使っていても, 表示されるのは元のツイートのアプリ名なので怪しく見えない. 冒頭の広告ツイートも TweetDeck を使っている.

また,広告bot自身に広告をツイートさせると, そのツイートに対して,replyが返ってきたり,そのツイート自体を公式RTされたり,お気に入りに登録されると, すぐ本人に気づかれてしまうから,というのもあるだろう.

全体的な動作から見ても,本人に気づかれないように随所に工夫されていると感じた. ウイルスとは違い,気づかれたらすぐに駆除(アプリ認証解除)されてしまうので,重要なポイントかもしれない. なかなかよくできている.

アプリ認証を取り消そう

広告botをやめたい人はアプリ認証を取り消そう.

Twitterのアプリ連携を解除する方法。勝手にDM・ツイート時は要注意! - たのしいiPhone! AppBank

安易にアプリ認証はしない

認証解除すれば,勝手な操作は止められるけど, 認証直後に自分のアカウントがアプリ認証をしたことをどこかに記録されている可能性もあるので,安易にアプリは認証すべきではない. 今回はtwitterだったけど,facebookも同様. むしろfacebookは操作権限も広いし,引き抜ける情報もよりクリティカルだからもっと慎重にならないといけない (個人的には占いとか診断とかの類いのアプリは全部怪しいと思う).

ウイルスチェックとか需要ありそう

アプリのブラックリストを作って, 認証アプリ一覧ページで一つずつ照合するスクリプトとかブラウザ機能拡張とかあると, ウイルスチェックとして役に立つかも. すでにあったりするのかな?

2014年3月30日日曜日

MTV VMAJ2014に自動で投票するbookmarklet

前回と同じく

MTV EMA 2013に自動で投票するbookmarklet | 忘れたらググればいい

使い方

Chrome, Safariで動作確認 (iOSは未確認.たぶん動く)

  • MTV VMAJ2014でももクロに投票 ←のリンクをブックマークに登録.(右クリックとかドラッグアンドドロップで)
    • iOSの場合は,適当なページをブックマーク.その後で,下のフォームの中身を全部コピーしてから,作ったブックマークのURL部分にペースト.
  • http://www.mtvjapan.com/vmaj2014/jp-best-group-video/を開く
  • ブックマークからブックマークレットを開くと,5±2秒間隔で投票.投票回数がボタンの下に表示される.

2014年1月1日水曜日

年賀状メーカー2014

去年のやつを更新

去年作ったやつが動かなくなってたので,更新.(gist直読みがダメになってた).

ここに年賀状のプレビューが表示されます.

2013年12月31日火曜日

宝くじの当せん番号を書き換えるbookmarklet

これをやりたい

もはや誰がオリジナルか不明なくらい出回っているようだ...

追記:元画像が消されていくようなのでコピー

使い方

この 当せん番号書き換え ブックマークレットを発表ページで実行して,組と番号を指定するだけ.

追記:写真を入れ替え

2013年10月31日木曜日

MTV EMA2013の投票制限とその対策

新たに制約が追加になった?

何回か投票すると,ある時から「投票ありがとうございます!」が表示されなくなる. javascriptコンソールを見ると,投票先のサーバから400のエラーが返されている.

制約まとめ

いろいろ試行錯誤して制約を調べた.これまであった制約と合わせてまとめる.新制約はあくまで推測なので参考程度に.

  1. PCブラウザ(iPad含む)からの投票は24時間で100回まで.ブラウザごと(cookieごと)に100回ずつ.
    • ただしcookie内のカウンターを改変したり,消せばいくらでも可能.cookieにIDっぽいものもあるので消すなら全部消した方がいい.
  2. スマートフォン(iPhone, Android)の投票は(おそらく)上記のような回数制限をしていない
    • ただし,cookieを使ってどのブラウザからの投票かは識別してるかもしれない
  3. (新制約) 同一IPからの投票は1時間で25回まで.端末は問わない.IPが同じならば全端末で合わせて25回.

対策

上記を踏まえた対策をまとめる.

家庭内ブロードバンド

家庭のブロードバンド環境だとあまりグローバルIPが変わらないので,ブラウザを変えたとしても100票入れるのに4時間かかる. ブラウザをとっかえひっかえしても24時間で600票.

スマートフォン,モバイルルータなど

スマートフォンはグローバルIPが変わるタイミングがよく分からないけど,ブロードバンドよりは短いっぽい(検証はしてない)ので, 1時間で25票以上入れることも可能. 最近の携帯なら3GとLTEを切り替えたり,モバイル通信自体をOFF/ONしたりしてIPが変わるのを狙う(iPhoneなら↓の設定画面でOFF/ONしてみる). 基地局が変わっても変わるかも? また,駅やコンビニで使えるフリーなWi-Fiも使えるので,発見したら投票.

なお,2回戦は日本時間2013/11/1 AM7:59までなので注意.

ブックマークレット

25回を超えてしまって投票できなくなったら止まるように対策を入れた(けどiPhone, Android用はたまに判定に失敗する.停止してもまだ投票できることもある). Chrome, Safari, iPhone, iPadで動作確認 (Androidのブラウザ未確認.たぶん動く).

  • MTV EMA 2013でももクロに100回投票 ←のリンクをブックマークに登録(右クリックとかドラッグアンドドロップで).
    • iPhone, iPad, Androidの場合は,適当なページをブックマーク.その後で,下のフォームの中身を全部コピーしてから,さきほど作ったブックマークのURL部分にペースト.
  • http://jp.mtvema.com/vote#cat=japan-koreaを開く
  • ブックマークからブックマークレットを開く

iPhone, Android向け

iPad向け

PC,iPad向け投票回数確認bookmarklet

その日に何回投票したかを表示するだけのbookmarklet.→ 投票回数を確認

iPad向け

2013年10月30日水曜日

MavericksにしたらMail.appでGmailの未読数がおかしくなった

gmail上の未読数と一致しない

gmail上ではすべて読んでいるはずなのに,Mail.appのメールボックス(とアプリのアイコン)には未読数が表示される.

googleアカウントを再度設定

システム環境設定→インターネットアカウント でgoogleアカウントの設定を表示してOKを押したら直った. たぶん同期し直した?

2013年10月25日金曜日

MTV EMA2013に自動で投票する2

日本代表決定

あなたの国の受賞者は...

2回戦向けbookmaklet

前回の記事と同じく100回クリックするbookmarkletを作った(と言ってもtwitterへ投稿する時のURLしか修正してない).仕組みなどはこちらを参照.

使い方

Chrome, Safari, iOSで動作確認 (Androidのブラウザは表示できなかった..).

  • MTV EMA 2013でももクロに100回投票 ←のリンクをブックマークに登録(右クリックとかドラッグアンドドロップで).
    • iPhone, iPadの場合は,適当なページをブックマーク.その後で,下のフォームの中身を全部コピーしてから,さきほど作ったブックマークのURL部分にペースト.ちなみにiPhone向けはサイト側で回数制限を入れていないようなので,無限に投票できてしまう.一応100回で止まるようにしてある.
  • http://jp.mtvema.com/vote#cat=japan-koreaを開く
  • ブックマークからブックマークレットを開く

(2013/10/26 追記) iPad向けはiPhone向けと同じかと思ってたけど,PCと同じだった...

iPhone向け

iPad向け

PC,iPad向け投票回数確認bookmarklet

その日に何回投票したかを表示するだけのbookmarklet.→ 投票回数を確認

iPad向け