localStorageでcookieのexpireのようなことをしたい

とある事情でブラウザ上のデータの一部を expire したくなった。イメージとしては cookie の expire みたいなものなんだけど cookie でサーバに送る必要もないし、数が増える可能性があるので localStorage でやりたい。

まず、基本を調べてみると

ということになっている。

あれこれ探してみたけど、扱いやすそうなのは

かな。あと見つけたのは

で、有名っぽそうに見える

js-data

にはそういう API はなかった。

なるほど。需要がないとはあんまり思わないんだけど、JS は Model 周りがまだまだ弱いのか、自分の探し方が悪いのか。とりあえず localstorage-ttl 試してみようかな。

  1. 昨今のブラウザでは気にする必要ないんだっけ? 

Twitterのfollowerのgithubアカウント引っこ抜いてみた

今さらだけど今年は

  • Twitter 以外の follow を増やす
  • 具体的にまずは github と slideshare で増やす

ということをなんかどこかで思ったような気がしていて、その流れでなんとなく Twitter の API を眺めていたのが 1/4 の話。

18:13:38 followeeが持ってる他のサービスのアカウントを効率的に集める方法
         ないかな
18:29:51 Streaming API と User Streams ってベツモノなのか。そんなことす
         ら知らない。
21:14:54 昔と違ってfollowerを200ずつしか取得できないとかないんだな
21:16:08 でもidしか取れないし、これ全部screen_nameと照合させようとする
         とひどいことになるな
21:36:53 対応表作るには認証は要らないのか。鍵垢でもアカウント情報だけな
         ら取得できる。あとはこれを保存しつつ適当なタイミングで動かすと
         diffも出せるな。そこまでやるかどうか分かんないけど。

この時点で followee で考えていたものを認証が面倒くさいので follower に変更したらしい。

で、実際に書いたのが昨日。よく考えると金曜の夜のタリーズで何してるんだろう、おれ。

wtnabe/twitter2github - GitHub

github の方の API の確認はたぶん前日に小一時間やって、ざっと調査で1〜2時間くらい。で、コード書くのに2時間半くらい、なんだかんだ整えて github に上げるのに 2時間くらい、かなぁ。README 書くのって時間掛かる。もっとなんでも速く書けるようになりたい。

これ使って手動で github で follow しまくったので、github の dashboard がオレだらけになったみなさんごめんなさい。follow 返しお待ちしております。(引くくらい反響ないっす。ははは。)

特徴

  • Twitter も github も認証を要求しない
  • github のアカウントを一つ一つ確認するので結構時間掛かる

使い方

$ git clone git://github.com/wtnabe/twitter2github.git
$ cd twitter2github
$ bundle install
$ bundle exec ./bin/twitter2github -u TWITTER_USER > TWITTER_USER.csv

考えてないこと

  • follower が多すぎていっぺんに取得できなかった場合
    • 自分のアカウントでテストして ok だったけど 1000 くらいに壁がありそうな気がする
  • follower が多すぎて github の 5000 reqs/hour の制限を超えてしまった場合

Ruby の SSL の証明書検証の失敗でハマっていた

基本的な流れ

  1. TIG から tig.rb に移行しようと思い立った
  2. tig.rb が先日の DNS 障害の件を受けて SSL の証明書をちゃんと検証するようになった
  3. 自宅サーバの FreeBSD 上の Ruby で CA証明書が認識されておらず、結果 twitter.com のサーバ証明書を検証できずにコケていた。

tig.rb のアップデート - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech

を読む前にハマってました><

だらだらと言い訳

  1. 本番と検証で3種類のRubyを使っていた
    • ports ( Ruby 1.8.7 ) on FreeBSD
    • MacPorts ( Ruby 1.8.7 ) on MacOSX
    • Fink ( Ruby 1.8.6 ) on MacOSX
  2. ports のものだけ証明書がインストールできてなかった
  3. たまたま ports のものだけ tiarra と組み合わせていたので tiarra にあらぬ疑い
    • ここでしばらくハマる
  4. 最終的には RFC と tig.rb の中身を読んで tiarra を除外、エラーメッセージを検索して Net::HTTP に矛先が

最初はバグを疑った。

14:25:09 >wtnabe< http://bit.ly/4tHhtN この patch 適用したら
OpenSSL::SSL::SSLError 例外に出会えた。

このパッチを当ててみた。すると OpenSSL 周りの例外が出てきたので、とにかく SSL の問題だということで落ち着く。tig.rb を読むと SSL の verify_mode をセットしている部分があったので試しにこれを外してみたら動いた。

Twitter / wtnabe: さっきのパッチ当てた状態で tig.rb を htt …

14:38:26 >wtnabe<さっきのパッチ当てた状態で tig.rb を
http://gist.github.com/276924 こうしたら動いた。ここまできて残りは証明
書か。とりあえず tiarra のせいでもなんでもなかった。

Twitter / wtnabe: net/http を元に戻しても動いた。ということで …

net/http を元に戻しても動いた。ということで openssl で使う証明書の問題
だった。もしくは tig.rb で証明書をまともにチェックしないようにしちゃう
か、どっちか。

この状態で Net::HTTP を元に戻してみたがやはり正常に動作した。ということは本当に単なる SSL の問題。

その後、

Twitter / : @wtnabe tig.rb動かしてるのがFreeB …

18:18:54 <otsune> @wtnabe tig.rb動かしてるのがFreeBSDだったので
security/ca_root_nssいれた

と @otsune に情報をいただいたので、security/ca_root_nss を入れたけど、うまく動かず。最終的にはインストールされていたパスの問題で、

Twitter / wtnabe: VERIFY_PEER でも /usr/local/ …

00:05:34 >wtnabe< VERIFY_PEER でも /usr/local/openssl/cert.pem@ ->
/usr/local/share/cert/ca-root-nss.crt の link で動いたっぽい。

ということで tig.rb を元に戻して link 張って解決。長かった!

結局、インストールしていた証明書を正しく認識していなかっただけ。でも Net::HTTP のエラーの出方も分かりにくいよねぇ?

ちなみに他にもハマっていた人が。

Twitter / Yugui (Yuki Sonoda): このRubyはどのOpenSSLとリンクされるんだー …

※ Ruby 1.9 の方は Ruby 1.9 - Feature #2579: Net::HTTP.start("www.ruby-lang.org", use_ssl: true) で SSL 利用を可能に - Ruby Issue Tracking System で証明書の検証をデフォルトで行うようになる新 API が入りました。

残り関連のログをコピペ。

2010-01-15:12:05:40 @yugui favられてたのでちょっとまとめる時間を端折っ
てお伝えしますと、RubyのNet::HTTP.new()はSSLの検証に失敗したときに
@socketがnilのままになるんだけど、考慮されてないパターンがあるという問
題でした。
http://groups.google.co.jp/group/linux.debian.bugs.dist/browse_thread/thread/27dae518c1c5d617
2010-01-15:12:19:11 @yugui SSLの検証失敗をどうやって知るのか、という意
味では.request()がnil.closed?()になってしまうとか、あるいはinspectした
ときのopen=falseだけだとちょっと分かりにくいかなとは思います。

Mac mini は欲しいけど高いぞ

「Mac miniはお買い得」は本当か (CNET Japan)

これ書いてる時点で TrackBack でも触れられている記事がなさげなので触れておくと、なんで今のレートで $500 マシンが 6万になるの?ってのが素朴な疑問でしょうよ。なんでこれみんな気にならないんだろう。5万で売ってよ。

あと、価格対性能比で話をずんずん進めちゃうのもどうなんだろうなぁ、と。だっていくらオプション積んだって市販 PC が Mac mini 並みに小さくなることってないし、逆に自作してこのサイズである程度性能を出そうと頑張ると、結構大変ですよ。

普通の人ってそんなに価格対性能比なんて気にするもんかなぁ。仕事に必要だから安いものの中から選びますとかっていうんなら別だけど、自分のモノを自分のカネで買うときは財布と所有欲が対決するだけだと思うんだけど。まぁ個人的には正直ほしいけど、SONY と同じで Apple のハツモノに手を出す度胸はない。

ただこれ、U2 バージョン出ないの? 日本限定で U2 バージョン出すといいと思うんですよ。そう、テーマは重箱。2台以上限定販売です。

2 に無理矢理こじつけて Mac mini 1台の値段で2本買える MIFES 7。標準価格3万、バージョンアップで1万するのにエディタっていうのはイマドキどうなんだーと思うんですが。まぁエディタは確かに重要ですけどね。MIFES にこだわる理由がないと思うんだな。それこそ価格対性能比で考えたらフリーのでいいじゃんとか思うわけで。

mod_perl2

Help Test mod_perl 2 Release Candidates (slashdot.org)

えー知らなかった。数週間でリリースになりそうってことだそうです。

input type="number"

っていうフォームの項目が HTML で作れたら楽なのに。

Zope、自分的復活

なんのこっちゃ分かりませんね。

いえね、わたしゃ去年の冬(2002-02?)くらいから Zope というシステムに大変興味を持っているのです。ところが、最初かじってみたときは Management Interface をちょっといじって、ほうほう、と思って、そこまでで挫折していたのです。よく分からんな、と。というか「なんだかすごそう」とは思うけど「具体的な使い方が想像つかない」状態でした。あと、なんとなくPython がいや、とか(笑)

それが、ここ最近の DAV とバージョン管理の話でふと思い出したのです。Zope の ZODB は自動的に履歴情報を残してくれるし、Zope は標準で DAV サーバじゃん、て。

そうです。Zope をコンテンツマネジメントだけで利用したらええんちゃうの、ということです。もちろん問題はあります。Zope に放り込んだデータを「実際のファイルに起こさないと」Apache だけで運用しているサイトには使えません。ZODB が更新されたら自動的にファイルを起こす仕掛けがあればいいんですが、そんなもの作ってる人はいないか。フツー、ZODB だけ利用する人なんていないし、ZODB だけ利用したいならわざわざ ZServer 経由にすらする必要がない。(おまけに ZODB 自身は信頼性の高さとかスピードとか求める場合には向いていない。)

でも、アイディアとしては悪くないような。これなら各ユーザーに CVS の使い方を教えることなく、ssh port forwading なんかを教えることなく、変更履歴の残る編集をセキュアに行えるじゃないですか。(本格的なバージョン管理システムほどの機能や使い勝手は求めませんよ、もちろん。)

ファンがうるさい

いや、僕はファンの方々にはとても感謝しているよ。ほとんどの人はとてもいい人なんだ。でもごく一部にはとても変わった人がいてね…

なんて当然人間の話じゃーなくて。冷却ファンです。岡持ベアボーンを一つ動かしたのですがね、これがけっこううるさいんですよね。普段ノートと古いデスクトップしかフツーの家ではいじっていなかったので、最近のマシンのうるささがよく分かっていませんでした。これはうるさい。

というわけでこんなの見つけました。これ簡単でいいかも。ベアボーンでも十分使えるくらい小さいし。

ファン静音化のための簡易電圧降下回路

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm