bloggalleryaboutcontact

ふとしたきっかけで昔の自分に出会った

ホント偶然なんだけど。

携帯での記事閲覧を分割してページ分けする仕組み。
当時のiモードって表示するページサイズの限界が小さかったんですよ。
んで、PCからの投稿が普通にオーバーして見れない。

なので分割するんだけど、要求が「なるべく文章的に自然なページ分けをしたい」。
文章がぶつ切りになったらかっちょ悪いと。
かつ、なるべく1ページごとの表示量は均一にしたい。
次のページに行ったら2行で終わりだった、とかは無し。

構文解析とかそんなこむつかしい概念は全く知らないので、俺アルゴリズムを組むわけで。
んでまあ試行錯誤して、文章の切れ目をある程度いい感じに探し当てるプログラム組んだんです。
オレオレ条件分岐を駆使して。
で、当時のデータに対しては完璧に具合のいい分割ができたと。

でまあ、思い出したんでさっきそのサイト覗いてみたんだけど。
ざっと見た限りは完璧に分割できてた。
さすがに6年くらい前に作ったやつだし、誰かの手は多少加わってるだろうけど。
もし根っこの概念がまだ残ってるとしたら、ちょっと凄い。

間違いなく、知識で言えば今のほうがあるんだけど。
あれを今書けたかなーと考えると、ちょっと自信がない。
情熱とか執念とか、その辺が段違いだったので。

多分僕のベストワークです。
いろいろ作ったり作れなかったりしたけど、あれだけ気持ちいい結果を出せたことはない。
しかも、一から十まで自分で考え抜いたと言う点で。

そろそろ超えなきゃなー。
 Permalink

linuxのディレクトリサイズ

って普通4096bytesなのですよ。
でまあ、とある事情でバックアップ作業やってるんですがね。

ディレクトリサイズが20MB超えとる。

なんかやたらと時間かかると思ったらそういうことか。

ファイル数があまりにも多すぎて
ファイル追加->ディレクトリ拡張->ファイル追加->ディレクトリ拡張->ファイル追加->以下略
を繰り返しているらしい。
経過をls -la叩きながら見てるとディレクトリがどんどん広くなっていってる。
ちょっと笑える。いや笑えない。
 Permalink

FWWライトニングトークを聞きに行った

で、21:30には帰るつもりが朝まで飲んでるとかもうね。
エアトムヨークとエアブラーやったような気がする。
早朝に吐いて以降が記憶適当。
風呂入って超絶眠いけどとりあえず書く。
-> 後日追記とか補足とかリンク貼りとかしました。
ほかのレポはlivedoor clipを見るといいと思うよ。
http://clip.livedoor.com/tag/fww

・id:garyu
・Flashライブラリ紹介
 - AS2(Flash Player8が要件&AS2に慣れている)
  - デザイナ環境との整合性
   - Framework CASA
   - Tweener
   - gainer
 - AS3だとProgression Framework2がかなり素敵
- スライドはblogにうpするよ
  -> http://blog.cgfm.jp/garyu/archives/219

・id: k1LoW
- Coding for web Programmer
 - PGの作業域はUIに及んでいる
  - id, classを(できればDOMも)先に決めてしまうべき
  - 制約を先に決めてしまおう
  - 最終的な調整はPGがやる
 - Live Coding
  - Firefox + Mozlab + emacs
  - ノート取れんよ
  - 途中でトラブったりした
   - けどLive Coding面白いね
 - ブラウザのF5押すのめんどい
  - Reload勝手にやらせよう(emacs)
   - Lispで書く
 - emacs使おう
 - Code Checkinおもろいよ

・id: cohtan
 - vimいいよー(k1LoWに対抗)
 - 手書きHTMLer向けの話
 - ブラウザのF5押すのめんどい
  - Apple Script(超簡単) + vim
  - vim使うと楽
 - 武士語変換フィルタ
  - ブックマークレットを20分くらいで作ったよ
  - じきに公開するお
   -> http://svn.codecheck.in/lang/javascript/bushigo/bushigo_filter.js
  - AIPの文章もやわらかくなるお
  - みんなで変換辞書を充実させよう!

・ユーザビリティの話とか

・yamamoto from U.S.
 - Mountain Viewの話いろいろ
 - 天神Wi-Fi化計画がいろいろ凄いと言う話

・Making of CGFM
 - 資料公開
  -> http://blog.cgfm.jp/mutsuki/archives/456
 - 実際に使った粘土細工を持ってきてたり
 - やはり映像はいろいろ手間がかかるそうな

。ユーザビリティの話再びとか

・id: rytich
 - svn+git
 - git svn ... とかで割と連携できるんだよって話
 - gitのいいクライアントがないなーとかそういう話

・nishijima (nishiaki = probo)
 - CSS Splite使おう
  - YoutubeとかGoogleとか
  - 背景画像をまとめてしまう
  - imgタグ+position
  - CSS切るとかこわるい
   - どうなん?
  - Googleは何してもGoogleやし
  - 使いどころ:背景かつGlobal Design
   - 背景サイズ固定できる
   - liquid designの場合は大変そう
  - ご利用は計画的に
 - 辞書超活用しよう
  - お -> お疲れ様です
  - よ -> よろしくお願いします
 - 補足 -> http://nishiaki.probo.jp/2008/06/fww-weekend-seminar-vol4.html

・id: kowske
 - 映像プレゼン

つーかぼけっとしてたら我流の人が凄くきれいにまとめてた。
http://blog.cgfm.jp/garyu/archives/217

と言うわけで、改めましておつかれさまでした。
Comments (1)  Permalink

Fukuoka.pm定例会に行ってきた

id:cohtanに誘われるままに行ってきた。
YAPC::Asia 2008行ってきたレポの発表があったので最前列で聞いてきた。
詳細は各自でぐぐろうぜーということで、とりあえず手元のメモ書き写し。

・1日目
- Larry Wall
 - Perl6出るよ!->いつかのクリスマス
 - Ruleをさらに強力に
 - 文法や演算子を自由に定義できる
- Tokuhiro Matsuo
 - Perl5.10いいよ!
 - dor operatorいいよーいいよー
- $c = $a // $b; # if defined($a) ? $a : $b
- Dan kogai
 - Perl as a Second Language
 - オブジェクトを学ぶのに適している言語
 - オブジェクト=自分の振る舞いを知っているデータ
 - DWIM(Do What I Mean)
  - 空気を読む言語
- Daisuke Maki
 - 全自動テスト大事
 - Javascript使うならjsan超使える(id:cohtan情報)
- たけまる
 - Practical AtomPub Servers
  - AtomPubとRESTの違いについて
   - Webに落ちてるよ
    - Catalystプラグインあるよ
- Kazutake Hiramatsu
 - Parrot
  - Perl6のVMに相当
  - コンパイラ作成のためのコンパイラ
  - オレ様言語 -> 作成可能になったけど難しい
- Gosuke Miyashita
 - Punc
  - Func = システム管理アプリを作成するためのFW
  - Punc = Linuxで汎用的に使えるためのPerl版
- Livedoor
 - すぱむちゃんぷるー
  - ベイジアンフィルタ
  - あけましておめでとう問題
  - サイトポリシーによって切り替え
  - リジェクト通知
- YAPC会計
 - 今年は赤がない
  - 超すげー
- yusukebe
 - Webservice::Simple
 - ええい、エロはまだか!(当日のIRC風景)

・2日目(の話とか脱線しつつの話とか)
- OpenID
 - XS使おうよ
- Use Encode::JP::Mobile
 - /tools/.../dat
 - Catalystプラグインもあるよ
  - Unicode::Encoding::Mobile::MobileAgent
- 20 modules I haven't yet talked about
 - 続きはwebで
  - なので後でぐぐる
- JavascriptでPerlを使うのか、PerlでJavascriptを使うのか
 - Jemplete
 - YAML
 - JS.pm
 - JQuery
 - origami
- 初音ミクの障害警報
- O/R
 - DBI::Class
 - Data::ObjectDriver
  - キャッシュとかパーティションとかが充実
 - Fey::ORM
- Moose
 - Perlのオブジェクト指向がきれいに書ける(大盛り上がり)
- Pastraqでモニタリング
 - データサイズが運用年数に比例する場合
  - 最適化は最初の3年 あとはムーアの法則に支配される
   - 3年を目処に見直すのが大事

・気になったこととか
- 平日開催の乗り切り方
 - 3月から根回し根回し
- 会場運営が素晴らしかった話
 - IRC同時通訳とかそういう話
- 次回は京都?
 - みんな行きたい

思い出したら追記するかもしんない。
来月も都合つきそうなので、仕事忙しくならなければ行きたいなー。
直前(当日)に参加COしたにもかかわらず、気軽に参加させていただきました。
本当にありがとうございました&またよろしくおねがいします。>ALL
 Permalink

JPUG福岡勉強会に行ってきた

ざっくり。

・PostgreSQL8.3の話
- HOT!HOT!
 - 追記型なのでUPDATE/DELETE繰り返すにつれて肥大化していたのを改善
 - FILLFACTORの設定値も大事よー
 - UPDATEやらDELETE繰り返して汚しまくったゴミDBでベンチ測ってみよう
- 順スキャンを改善したおー
- 同期コミット
 - 非同期コミットのほうが速い まあ用途で使い分け
- ORDER BY ... LIMITの高速化
 - OFFSET使ってない場合のみ
  - 意識せずに使ってる場合が結構あるので8.3にしたら速くなったーはありえる話
- 負荷分散チェックポイント
 - 徐々にチェックポイントの負荷をかけていくイメージ?
  - 設定値次第で結構変わる 増やしすぎもダメ
- WALログ簡略化
 - I/O減らす
- INDEXアドバイザーを作れる土台ができた
 - そのうち誰かが実装してくれるでしょう。
- ソート処理モニタリングできるようになったよ
- Auto vacuumがデフォルトONに
- ログ項目追加
- CURSORにFOR UPDATE付ければ更新可能に
- JIS2004対応
- 全文検索tsearch2が取り込まれた
 - 日本語使うならわかち書き必須
- XML対応
- ENUM型追加

・合宿でのチューニング大会の話
- Sunから怪物マシンが提供された
 - Sun Fire X4100(特筆すべきはメモリ16GB)
  - テストデータが1~2GB程度だったので全部メモリに乗ってしまったw
- ベンチテスト結果は悲喜こもごも
 - Cチームはキワいことやりすぎてマシン壊したとかなんとか
- 非同期コミットにするとかなり数値が変わった
- 統計情報はOFFにすると当然負荷減ってパフォーマンス上がるお

・チューニングポイント
- とにかくINDEXを正しく張るのが第一で最重要(すげー強調)
- 次にパラメータチューニング
- 以下略

・I/Oを制するものはDBを制する(らしい)

・INDEX張るときのポイント(B-tree INDEX)
- UNIQUEなほどいい
- 前方一致検索には結構有効
- ORDER BYのときも影響するよ
- GROUP BYのときも影響するよ
 - PostgreSQLはGROUP BYが速い
- あとは複合INDEXとか部分INDEXとか

・チューニングの時に気をつけたい設定値
- shared_buffers
 - デフォルト小さすぎ
 - 適正値はぐぐれ
- max_connections
 - 8.xからかなり改善してる
- wal_buffers
 - 必ず書こう
- 他にもいろいろ
 - 書くのめんどくさいので略

・やっちゃだめなこと
- full_page_writes = off
 - データの整合性が保証されなくなる
- fsync = off
 - どこまでデータ消失したかわからなくなる

・ついでに
- multi coreは8.xでないと効果ないよ
 - multi coreで7.x使ってる人涙目

他にもたっぷりあるんだけど、とりあえず小出しにしときます。
書くのめんどくさい。orz
あ、JPUGのサイトで「pdf」で検索すると幸せになれるそうですよ。

次回は8月くらいを予定してるとか、100人くらい集めたいとか。
あとDB使いをオタクと呼ばないで!とか。
いやこれは言ってないかも。
そんなこんなで勉強になりました。まる。
 Permalink
1-5/5