あなくつと愉快なソフトウェアたち|| CLKs
Ceekz Logs||RyoのFacebook||Ryoのmixi|| 登 大遊@筑波大学情報学類の SoftEtherVPN日記
はてなブックマークをマッシュアップした情報推薦サービス
TOFU-G||高校時代の活動|| 分散マシン操作ライブラリ Svengali
Linkedin|| Google+||個人サイト( ryogrid.net )|| ひらめいったー
Ryoのつぶやき ||Ryoに響いた言葉 ||Ryoの本棚 ||そのうちやりたい
2013-03-06
■神林式数字暗記術
脳トレの一種としてn-back課題というものがあって、少しだけやっていたことがあった。
http://ja.wikipedia.org/wiki/N%E3%83%90%E3%83%83%E3%82%AF%E8%AA%B2%E9%A1%8C
http://cognitivefun.net/test/5
n-back課題についていいかげんに説明すると、任意のサイズの縦横同じ個数のマス目があって、その中で以下をやるもの。
1)ランダムにマス目が点滅していくのでそれを順番に覚えていく
2)点滅する度に、そこの点滅のn個前の点滅が同じ場所であるかをYes or Noで回答する
とりあえず、本稿では雰囲気だけ分かってもらえば良いので、上記の体験できるサイトに行って青いボタンを押してみて欲しい。
で、この課題をやっていたのだけど、点滅したマスを覚えておくというのが難しく、なかなかうまくできなかった。
そこで、編み出したコツが点滅の順番を一筆書きで追いかけて、その形を覚えておくという方法。
これを駆使することで大分できるようになった。
数字をマス目にマッピングして、数字列を一つずつ追いかけていった軌跡を一つの形として覚える。
# ちなみに、これをやるときは指で軌跡を描くなどすると、体の感覚も駆使できるので更に良い。

こうすると、何も工夫しないと短時間で忘れてしまうところが、長い間・確実に覚えておける。
あと、記憶って、いろんな形態で頭に入れておくと忘れにくいので、本稿のテクニックと併せて以下などを組み合わせると更に記憶の強度があがる。
・語呂合わせ
・数字の関係を覚える (ex: 4832なら4x8=32、248なら倍々、2525なら5の2乗が2つ、とか)
さすがに、数字を観る度に上述のテクニックをやっているわけではないが、どうしても一定期間は覚えておかないといけないような数字があった時は駆使して覚えるようにしている。
我ながらなかなか良いテクニックだと思っているので、本稿で共有しておく。
【応用】
任意の情報も数字にマッピングすることでこのテクニックを適用できる(と思う)
# 自分はやっていないのだが...
・ひらがな → 母音、子音に番号をつければ、数字2つでひらがな一文字が表現できる。
・アルファベット → A〜Zを10個ずつに分割して並べれば、分割グループの番号とグループ内のインデックスの2つの数字で1文字が表現できる
やる気のある人がいたら試してみて効果のほどを報告して欲しい。
2012-01-21
■仕事を速くしたい - 作業時間のプロファイリング-
「仕事を速く終わらせたい」
働く人の誰しもが思うことだと思う。
今回はこれらについて考えてみる。
まず作業を大きく2つに分類してみた。
Aは経験を積むか、頭が良くならないとどうにもならないが、
Bは工夫したり、適切なツールを使うことで短縮できるはず。
で、Bは思っているより大きな割合を占めているのではないかというような気が最近している。
では仮にこの仮定が正しいとすると、そのようなBは何か。
分析するために、作業内容をそれなりに細かい単位まで分解してみた。
# かなり適当です
http://ryogrid.net/~ryo/dist/working_profile.pdf
"個別に挙げた"がメイン。
"まとめてみた"は"個別に挙げた"の中に共通に現れるものをブレークダウンしたもの。
"常に発生"は何をするにも必要となる動作をくくり出したもの。
これらのうちのどこに時間がかかっているのだろう。
各々の割合を知りたいが、毎日自分が繰り返していることなのに良く分からない。
# 人もプロファイラとかで解析できれば良いのになぁ。
以下の情報ありましたら教えてください。
> 皆様
# こちらの方がすぐ反応出来て良い?
2011-09-18
■名古屋の人たちが参加しているオフ会や勉強会を捕捉する(1)
日々、TLを見ると周りの人達はいろんなイベントに参加していたりする。
自分もそれらのイベントに参加したいが、事前に開催情報を知ることが出来ていないので参加のしようがない。
といっても方法がまったく無いわけではなくて、勉強会であれば、IT勉強会カレンダー( http://bit.ly/qpPgrS ) とかを見るという方法はある。しかし、IT勉強会カレンダーは大量にイベントがありすぎて、自分の場合どれに参加すれば良いか決められないし、そもそも日々開催されているイベントのうちどれだけが網羅されているのか良く分からず、これに頼って良いのかか不安。能動的にチェックするというのも面倒くさくて、自分の場合は続かない。
# Googleカレンダーを使っている人は自分のにインポートすれば良いかもだけど、あの量をそのままインポートしても辛いものがある
そこで、自分のTLや、自分で作成したlistの中で発言されたイベントの情報を収集するスクリプトを書いてみたので紹介する。
動作概要
指定したリストのTweetsから、指定したキーワードのいずれかを含む Tweet を抽出し指定したディレクトリへテキストファイル形式で書き出す。
コード ( collect.rb )
# -*- coding: euc-jp -*- require 'rubygems' require 'pp' # for Twitter require 'twitter' # for Userstream require 'userstream' require 'kconv' CONSUMER_KEY = "<取得した値を設定>" CONSUMER_SECRET = "<取得した値を設定>" OAUTH_TOKEN = "<取得した値を設定>" OAUTH_TOKEN_SECRET = "<取得した値を設定>" LIST_NAME = "<自分で作ったリスト名を設定>" FILE_OUT_PATH_BASE = "./" KEYWORDS = ["オフ","勉強会"] # @brief 指定されたリストのメンバを返す # @param [in] list_name 取得するリスト名 ( String ) # @param [in,out] # @param [out] # @retval 所属するユーザ screen_nameリスト( Array <String> ) # @note Twitterクラスの初期化(認証)が完了した後で呼び出すこと def get_list_members(list_name) if list_name == "" return nil end list_names_arr = Array.new() cursor_num = -1 loop do result = Twitter.list_members(list_name, {:cursor => cursor_num}) result[:users].each{ |elem| list_names_arr << elem.screen_name } cursor_num = result[:next_cursor] break if cursor_num == 0 end return list_names_arr end class TweetAnalyzer def initialize() end # @brief 文字列がキーワード群を含むか判定する # @param [in] str 検索対象文字列 ( String ) # @param [in] keyword_arr キーワード群 ( String ) # @param [in,out] # @param [out] # @retval true いずれかのキーワードが含まれた # @retval false どのキーワードも含まれない # @note Twitterクラスの初期化(認証)が完了した後で呼び出すこと def is_contain_keyword(str, keyword_arr) keyword_arr.each{ |keyword| if str.index(keyword) != nil return true end } return false end # @brief 与えられたテキストを処理する # @param [in] tweet_text tweetテキスト ( String ) # @param [in,out] # @param [out] # @retval 無し # @note Twitterクラスの初期化(認証)が完了した後で呼び出すこと def process_tweet(tweet_text) # キーワードを含んでいるようであれば保持 if is_contain_keyword(tweet_text, KEYWORDS) == true ofile_path = FILE_OUT_PATH_BASE + Time.now().strftime("%Y-%m-%d") + ".txt" `echo "#{tweet_text.tosjis()}" >> #{ofile_path}` end end end # ログイン(1) Twitter.configure do |config| config.consumer_key = CONSUMER_KEY config.consumer_secret = CONSUMER_SECRET config.oauth_token = OAUTH_TOKEN config.oauth_token_secret = OAUTH_TOKEN_SECRET end # ログイン(2) consumer = OAuth::Consumer.new( CONSUMER_KEY, CONSUMER_SECRET, {:site => 'https://userstream.twitter.com/'} ) access_token = OAuth::AccessToken.new( consumer, OAUTH_TOKEN, OAUTH_TOKEN_SECRET ) list_members = get_list_members(LIST_NAME) analyzer = TweetAnalyzer.new() userstream = Userstream.new(consumer, access_token) userstream.user do |status| begin # 指定されたリストに含まれるユーザの発言のみ抽出 if status[:text] && ( list_members == nil || list_members.include?(status[:user][:screen_name])) analyzer.process_tweet(status[:text].toeuc()) end rescue => e p e end end
使い方
まず、以下の4つを取得する。取得方法はコチラ ( http://bit.ly/qDrJtM ) を参照。
取得できたらコードの同名の定数に設定。
- ・CONSUMER_KEY
- ・CONSUMER_SECRET
- ・OAUTH_TOKEN
- ・OAUTH_TOKEN_SECRET
2.キーワードを集めるリスト名をLIST_NAME定数に設定する。
リストを指定しない(TLのtweets全てを指定)する場合は空文字("")を設定。上のコードでは私が作ったnagoyaリスト ( http://twitter.com/#!/list/ryo_grid/nagoya ) になっている。
# ちなみに、このリストは名古屋近辺在住(とおぼしき)方々のリストで、コレ ( http://bit.ly/nCM7Pp ) を使って芋づる方式で作成。ソーシャルハックおいしいです^p^
3.フィルタをかけるキーワードをKEYWORDS定数に設定する。
他にも足したい方はどうぞ。
4.あとは以下で起動するだけ。
ruby collect.rb
バックグラウンドで実行するならこんな感じ?
nohup ruby collect.rb 2>&1 > /dev/null &
例
自分は以下に作成して、Webからアクセスできるようにしている。
http://ryogrid.net/~ryo/dist/nagoya_evt_tweets/
能動的にチェックしようとするとうまくいかないので、自分は作成されたファイルのURLをケイタイ(スマートフォン)にメールするようcronを設定している。
% crontab -l 55 23 * * * /bin/sh /home/ryo/cron_script/mail_evt_txt.sh % less /home/ryo/cron_script/mail_evt_txt.sh #! /bin/sh echo "http://ryogrid.net/~ryo/dist/nagoya_evt_tweets/"`date +%Y-%m-%d.txt` | mail -s "nagoya_evt_tweets "`date +%Y-%m-%d` xxxxxxxxxxxxxxxxx@xxx.xxx -c ""
これから
Tweetの選別方法が単純すぎるのでもう少し賢くするつもり。
例えば、"オフ"というキーワードを設定した場合、"オフィス"とか"オフライン"なんてのも引っかかってしまう。これはあんまり。
ひとまず、正規表現でも使うのかな。
あと、Tweet全文はいらないのでキーワードだけ抜き出してカウント数でランキングするとかしたい。
これをやるためには、形態素解析とか必要な気がするけどRubyで出来るのだろうか。
複数文字列から一致するキーワードを抽出することができれば形態素解析しないで済むだろうが、処理コストはリーズナブルな範囲に収まるだろうか。Rubyだとアルゴリズムが賢くても厳しいかな。
先に言っておく
Twitterクライアントでフィルタかければ良いじゃんとか思った人もいるかもしれない。
2011-06-26
■今日のつぶやき
- 01:44 wrote new entry -> 今日のつぶやき http://bit.ly/mQI1wK
- 02:23 @ryo_grid は9314日生きた。人生あと20686日しかない。今日は有意義だったか? #30thou http://30thou.com/258737
- 11:32 なんかやる気が湧いてこない。
- 11:33 やはり、深酒はいかんな。
- 18:44 本屋で暇つぶし用の本 ( いつもはあまり買わない小説とか、ラノベとか ) を買い込んできた。 しめて12k¥成り。
- 18:45 あと、書籍レンタルでめぞん一刻借りてきた。
- 19:00 コレの第一版(1980年出版、ブックオフにて中古を購入) を読み終えた。バブル崩壊前の好景気が感じられる書きっぷりが面白かった。 > 最新版 入門の入門 経済のしくみ―見る・読む・わかる: 大和総研, DIR=: 本 http://amzn.to/lAD96q
- 19:27 やりたい事があり過ぎて、手をつけるものが決められない。
- 19:30 @ebipan7 趣味の話だと優先度が皆変わらないので、GTDはあまり有効じゃない気がしますね^^; [in reply to ebipan7]
- 19:37 めぞん一刻、何か展開が変だと思ったら2巻から読んでた・・・。早めに気づいて良かったわ。
- 22:14 案の定、turntable .fm がライセンスの問題でアクセス不可になったみたい ( US民はOK ) > http://bit.ly/jm2POq
- 22:14 はぁ。
- 22:22 @Dominion525 ライセンスしている楽曲も持っていたみたいですが、そうでない曲の方が多分多かったでしょうね。 USでOKなのは権利団体が比較的寛容とか、そんな話なんじゃないですかねー。きっと (根拠は特に無いですw)。 [in reply to Dominion525]
- 22:27 @Dominion525 確かに日本人には出来ない芸当ですよねw さすが Youtubeを生み出した国w [in reply to Dominion525]
- 22:43 @Dominion525 まぁ、日本でビジネスしようと考えていれば、仕方がないのではないでしょうかね。 ( 日本という国を理解していれば、国外の人間でもきっと同じように振舞うはず ) [in reply to Dominion525]
Powered by twtr2src
