!kiyoka.blog.2012_05 RSSPLAIN

Related pages: !kiyoka.blog.list
555555544344444444444444444444444444444444444444444444444404444555555555555550555555555555055555535555555555555555555555555055555555555555555505555555555555555555555555555555555555555552105555555555555555555555555555555055555555555555555555555555555555555555055555355555555555555555555055555555505
5

kiyoka日記。NendoSekkaの開発や、最近思うことなど

5

最新10件!kiyoka.blog   過去記事一覧!kiyoka.blog.list

5

kiyoka.blog_header 

5

このブログを書いている人: 西山 清香(kiyoka) - twitter: @kiyokaEXT

5

5

 

5

 

4

kiyoka.2012_05_30[Sekka] Sekka 1.1.3.pre リリース

4

SKKライクな日本語入力メソッド Sekka 1.1.3.preをリリースしました。(リリースノート Sekka.ReleaseNote)

3
 iStock_000016378483XSmall
4

 

4

リリースの概要

4

辞書の容量削減のため、AZIK対応版とAZIK非対応版にわけました。

4

環境変数 SEKKA_AZIKが定義されている時だけAZIK対応版がインストールされます。

4

ちなみに私はAZIKを使ってないため、小さいほう(AZIK非対応版)を使っています。

4

 

4

だいぶ安定してきたので、もうしばらく使って1.2.0にしたいと思っています。

4

preリリース版であるため、次のように "--pre" オプションを付けないと 1.1.3.pre はインストールされません。

4
gem install sekka --pre
4

 

4

従来通り、最新版は次のコマンドで

4
gem install sekka
4

1.0.0(安定板)がインストールされます。

4

 

4

 

4

以下リリースノートです。

4

version 1.1.3.pre

4

辞書データの圧縮を行なった。

4
辞書バージョン1.2.2
4
キーの圧縮
4
  マスター辞書のユーザ名 MASTER という文字列を M 1文字に、
4
  デリミタ :: を : 1文字にした。 
4
 サイズ (MacOS X 64bit上 : Tokyo Cabinet version 1.4.47 for Mac OS X)
4
  圧縮前 version 1.2.0
4
   SEKKA-JISYO.SMALL.tsv             0.37GByte 399549310 Byte
4
   SEKKA-JISYO.SMALL.tch#xmsiz=256m  0.59GByte 631434784 Byte
4
   Redis-2.5.8 の消費メモリ          1.47GByte
4
  圧縮後 version 1.2.1
4
   SEKKA-JISYO.SMALL.tsv             0.30GByte 322684820 Byte  19%減
4
   SEKKA-JISYO.SMALL.tch#xmsiz=256m  0.50GByte 545817488 Byte  13%減
4
   Redis-2.5.8 の消費メモリ          1.40GByte                  5%減
4
AZIK非搭載の辞書を用意した。
4

AZIKの不要なユーザーはより少ないメモリ消費量で利用できる。

4
  サイズ
4
 AZIKを含むもの      SEKKA-JISYO.SMALL.A.tsv
4
  Redis-2.5.8 の消費メモリ          1.40GByte
4
 AZIKを含まないもの  SEKKA-JISYO.SMALL.N.tsv
4
  Redis-2.5.8 の消費メモリ          0.46GByte       67%減
4
環境変数
4
export SEKKA_AZIK=1
4

が定義されている時だけAZIKを含む辞書が選択される。

4

設定無しではデフォルトのAZIK非搭載の辞書がインストールされる。

4

 

4

 

4

次の目標

4

他に開発したい別事案があるので、Migemoインタフェースの開発は保留にしました。

4

すみません。しばらく別アプリに注力します。

4

 

0

comment (disabled)

4

 

4

4

 

4

 

5

kiyoka.2012_05_22[Internet] コンプガチャ問題で気付いたこと

5

今、世間ではコンプリート・ガチャの問題がホットだ。

5

悪い側面ばかりが強調されているが、一歩引いてみると興味深いことに気がついた。

5

 

5

それは、たんなるbitであっても希少性のある情報には高い金を払う人がたくさんいるということ。しかも10万円、20万円というお金を出す人もいる。

5

これは今後、クラウド上に置かれた音楽や映画など、コンテンツ全般に対して、限定版などのプレミアム価格を値付けして販売できるということを意味するのでは無いかな。

5

T9cABl

5

 

5

将来、10万円や20万円のデータを閲覧する権利なんかが売られるかもしれない。

5

特定のアーティストのライブを観る権利とか、他に良い例が思いつかないけど…

5

あれ?コピーしてもデータ単体で使えてしまうものではダメか…

5

 

5

プラットフォームの上で行使できる権利をプレミアム価格で販売することが可能ということかな。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2012_05_20[OSS] MacOS X Lion上のsvnで濁点付きのファイル名を扱えるようにする方法

5

自分は本ブログ(というかWiki)をSubversionで編集しており、濁点付きのファイル名も扱う

5

MacOS X をLionに上げた時に、折角パッチを当てていたsvnを消されてしまった。

5

だが、すぐに次の情報が見つかった。

5
 Mac用SubversionクライアントsvnXで濁点付きのファイルを扱えるようにする - backyard of 伊勢的新常識EXT
5

 

5

自分的にはこの1行だけが重要。最近はMacPortsがパッチを作ってくれているのか。便利な時代になったなぁ。

5
sudo port install subversion +unicode_path
5

 

0

comment (disabled)

5

 

5

5

 

5

 

5

kiyoka.2012_05_19[Sekka] Sekka 1.1.1.pre リリース

5

SKKライクな日本語入力メソッド Sekka 1.1.1.preをリリースしました。(リリースノート Sekka.ReleaseNote)

3
 iStock_000016378483XSmall
5

 

5

リリースの概要

5

だいぶ安定してきたので、もうしばらく使って1.2.0にしたいと思っています。

5

preリリース版であるため、次のように "--pre" オプションを付けないと 1.1.1.pre はインストールされません。

5
gem install sekka --pre
5

 

5

従来通り、最新版は次のコマンドで

5
gem install sekka
5

1.0.0(安定板)がインストールされます。

5

 

5

 

5

以下リリースノートです。

5

version 1.1.1.pre

5
.sekka-jisyoファイルに次の平仮名フレーズの書式を追加した。
5
 既存仕様
5
  ひらがな  //[改行]
5
 追加使用
5
  ひらがな[改行]
5
sekka-serverに辞書バージョンの整合性チェック追加した。
5

 

5

 

5

次の目標

5

他に開発したい別事案が発生したので、Migemoインタフェースの開発は保留にしました。

5

すみません。しばらく別アプリに注力します。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2012_05_17[Life] 「幸福」になる方法を教えてくれるTEDのプレゼン

5

EC2G

5

ゴールデンウィークに見たTEDのプレゼンの中で気に入ったものを自分用にメモしておこう。

5

いつかもう一度見たくなるはず。

5

人間はどのような時に「幸福」を感じるかを研究している人達がわかりやすく教えてくれている。

5

 

5

全部日本語字幕があるので御安心を。

5

Video

5

ミハイル・チクセントミハイ フローについて EXT

5

ショーン・エイカー 「幸福と成功の意外な関係」 EXT

5

マーティン・セリグマンのポジティブ心理学 EXT

5

 

5

参考記事

5

「フロー体験」理論のあまりの凄さに戸惑いを隠せない:YLOGオルタナティブ:ITmedia オルタナティブ・ブログEXT

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2012_05_08[AWS][EC2] 失敗事例: Microインスタンスのスラッシング状態で 1日 $10課金された件

5

先日、Sekkaの辞書を作るためにAWSのEC2サービスを利用した。

5

Sekkaの辞書を作る処理は半年に1回程度しか必要にならないのだが、手元のMacBookで実行すると24時間位はかかるような重い処理だ。(CPUとメモリの両方を大量に使う)

5

手元のMacBook Proは電源を入れっぱなしにしたくないので、できればどこかのサーバー上で処理したかった。

5

 

5

一般的にいって、こういう用途にAWSのEC2はぴったりだ。Microインスタンスを使えば課金はタダのような値段だ。(少なくともそのハズだった)

5

しかし、EBSの重量課金の罠にハマってしまったので、広く失敗事例を公開しておこうと思う。

5

 

5

Microインスタンスでスラッシング発生

5

上記のような根拠でEC2のMicroインスタンスを使ってSekkaの重い処理を実行開始した。

5

急ぎでもなかったので、バッチを開始して1週間くらい放置しておけばできあがっているだろうと気楽に考えていた。

5

実際、1日放置してみたが、進捗状況から、あと6日前後で処理は完了することが推測できた。

5

 

5

2日間放置したところで、たまたまAWSの課金状況を他の件(DynamoDBがどうなってるか気になった)で確認することがあり、EBSの課金がとんでもないことになっているのに気がついた。

5

以下が画面キャプチャ。

5
 FFN5
5

なんと、EBSのI/Oリクエストで1日 $10程度課金されていた。(後で、AWSの"Account Activity"からCSVを出力して詳細な操作ログを確認したが、本当に1日 $10相当のI/Oがあった)

5

心当たりはスワップしか無い。

5

Sekkaの辞書作成用処理はメモリを1.5GByte程度消費するので、常時1GByte程度がスワップアウトする計算になる。

5

 

5

スワップパーティションはEBSを2GByte割りあてており、1GByte程度が常時スラッシングしていたに違いない… なんということだ…

5

EBSのI/Oリクエスト回数はどうせ安いだろうと気にしたこともなかったので盲点であった。

5

もし、7日間放置していたらどうなっていたことか… 単純計算で$70になるじゃないか…

5

 

5

EC2でのスワップはどこに確保すべきか

5

少しググってみたが、OSのスワップ領域をEBS以外に取る方法は見つけられなかった。

5

大勢の人がEBS上にmkswapしているようだ。

5

くれぐれもその方達のMicroインスタンスがスワップしないことを祈ろう。

5

エフェメラル領域に確保すれば良いのかもしれないが、Microにはエフェメラル領域は無い。これも重ねて落とし穴にハマりやすい仕様になっている。

5

 

5

解決策は?

5

基本はEC2ではスワップさせないこと。

5

一時的にスワップするのは問題無いが、何日もスワップする場合は使い方が間違っている。

5

一つ上のスペックのインスタンスタイプを使ってスワップしないメモリ容量を確保しよう。

5

 

5

まとめ

5

EC2ではスワップさせていけない。

5

スワップしても長時間はダメ。EBSへのI/Oリクエスト課金がEC2のコンピューティング課金を上まわる。

5

 

2

COMMENTそういえば

少し高いですがSSDのEBSでは、I/Oリクエスト課金がなくなりました。

http://aws.amazon.com/jp/ebs/details/

新しいt2.microインスタンスは、メモリが1GBになっている点もいいですね。

1

COMMENTkiyoka

本当ですね。情報ありがとうございます。

SSDのEBSでは1GB単位で予めI/O料金を含んでいるんですね。

http://aws.amazon.com/jp/ebs/pricing/

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2012_05_07[透明性][オープンソース] 自分にしみついたオープンソース的な感覚について

5
 uS5P1u
5

私は趣味のプログラミングを全部オープンソースにしているが、仮にそうでなかった場合どうだっただろうと考えた。

5

考えるきかっけになったのはこの記事のこのくだり。

5
 透明性への耐性を備えた組織を設計する - Joi Ito's Web - JPEXT
5
 まるで、ソフトウェアが書かれた後に「オープンソース化する」ことになった
5
 プロジェクトのようなものだ。コードがごちゃごちゃで、ほとんど不可能とい
5
 う場合が多い。ソフトウェアをオープンにする場合には、外の人間にも理解で
5
 き、恥ずかしくないような書きかたをするのが普通だ。例えば変数に卑猥なこ
5
 とばを使ったり、コード内のコメントのところで恋愛関係の不満をぶちまけた
5
 りする開発者も何人か知っている。彼らはコードが突然オープンになったら、
5
 職や伴侶を失うことになりかねない。
5

 

5

実は、このくだりはこの記事の極端な例え話として使われている話題であり、テーマそのものでは無い。

5

しかし、テーマには関連する。

5

テーマは、インターネットが主流になった世界においては、透明性に対する耐性を普段から上げておくために普段からそれを意識した組織にしておく必要があるということ。

5

いつオープンにするよう求められてもその耐性を組み込んでおけということ。

5

 

5

で、前置きが長かったが自分の話に戻ると、普段からオープンソースを自分のニュートラルな状態としてしみこませていると、クローズドな環境であっても恥しくないコードを書こうとするということ。

5

これはエンジニアとしてコダワリにも通じる。(悪くいえばコストをいくぶん度外視した自己満足的なところあるかもしれないが)

5

結果的に、透明性に対する耐性を上げているということになる。

5

 

5

そうしておくと、突然いま書いているコードを他者に転売・譲渡(納品という形が一番多いが)する時に問題が無い。

5

実際に過去のプロジェクトで自社商品から派生したシステムのソースコードが納品されることもあったなぁと思い出した。

5

 

5

最近、Web系企業から多くのプロダクトがオープンソースになっている。

5

この流れは加速しそうなので、今クローズド前提のコードを書いている人も心掛けておいて損は無いと思う。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2012_05_06[DynamoDB][AWS] DynamoDBのスループットを減らす場合に制約がある理由について考えてみた

5

 

5

Amazon DynamoDBのスループットを減らす時は、以下の画面キャプチャように1日1回しかできないようになっている。

5

その理由を考えてみた。ほとんど推測なので、間違っているかもしれない。目くじら立てないで欲しい。

5

これはもしかして、これはアザトい仕様なのかもしれない… とか少し思った。

5
 dGy0
5

 

5

理由1 技術的(理論的?)制約があるため

5

スループットを増やす時

5

DyanmoDBは基本的にDHT(Distributed Hash Table)なのでconsistent hashingアルゴリズムを使っている。

5

スループットを上げる時は、内部でマシンの数を増やして、スケールアウトしているはず。

5

例えば、スループットを倍に上げるためには、単純にマシンの数を倍にすれば良い。単純複製をすると、半分のデータはアクセスされずゴミになるが…

5

マシンの数を増やすためには、ストレージの内容を複製する必要がある。

5

実際にDynamoDBを使ってみるとわかるが、Webコンソールからスループットを倍に上げる指示を出してから約1分程度で反映される。

5

また、ガーベッジコレクションとして、アクセスされる可能性の無くなったゴミデータは少しずつ消しているはず。これは後でゆっくりやっているはずだ。

5

 

5

スループットを減らす時

5

次にスループットを下げる時は、内部でマシンの数を減らす必要がある。

5

そうしないと、遊んでいるマシン分をAWS側が負担しなければならず、原価割れするだろう。

5

問題はスループットを下げる時は、複数のマシンとストレージに入っているデータをマージする必要があることだ。

5

そのとき、primaryキーのインデックスを再構築する必要がある。

5

DynamoDBの仕様として、primaryキーはレンジサーチができる必要があるので、おそらくB+ツリーなどのインデクスを利用していくだろう。

5

いづれにしても再構築には時間がかかる。

5

なので、スループットを下げる時は、どうしてもなんらかの時間的制約を入れる必要がある。

5

 

5

理由2 スループット設定を下げ忘れさせるため

5

ちょっといじわるな見方をしてみよう。

5

もしかして、ユーザーにスループットを下げることを忘れさせて、課金を最大化するためにやっているのではないか?

5

 

5

まとめ

5

良心的な目でみるなら、理由1だろう。

5

私が初めてこの制限を知った時には、結構失望したが、技術的・理論的な理由が考えられなくも無いということで、一応メモ。

5

 

5

もしあなたが、急激なアクセスピークをDynamoDBで乗りきった後、上司やクライアントにすぐ設定を減らすように言われたが、すぐにはできないというこの制限に気がついた時は一つの釈明として使ってもらえればと思う。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2012_05_05[Sekka] Sekka 1.1.0.pre リリース

5

SKKライクな日本語入力メソッド Sekka 1.1.0.preをリリースしました。(リリースノート Sekka.ReleaseNote)

3
 iStock_000016378483XSmall
5

 

5

リリースの概要

5

開発版のため、まだ安定しているとは言えません。

5

preリリース版であるため、次のように "--pre" オプションを付けないと 1.1.0.pre はインストールされません。

5
gem install sekka --pre
5

 

5

従来通り、最新版は次のコマンドで

5
gem install sekka
5

1.0.0(安定板)がインストールされます。

5

 

5

 

5

以下リリースノートです。

5

version 1.1.0.pre

5
distributed-trieEXTを使って曖昧辞書検索を高速化した。
5
Tokyo Cabinetのメモリキャッシュ指定を64MByteから256MByteに増やした。
5

 

5

 

5

次の目標

5

開発版のブランチ 1.1系で引き続きmigemo互換インタフェースなどに挑戦してみます。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2012_05_04[本] 昭和16年夏の敗戦

5

よくぞここまで取材したなぁという感想を持った。

5

4122053307  昭和16年夏の敗戦 : 猪瀬 直樹

5

なんというか、第二次世界大戦当時とは違うと思いたいけれど、この本を読む限り、今の日本もあまり変化してないと考えさせられる。

5

空気という見えない力が働いて、誰も大きな流れを止めることはできない現実。

5

 

0

comment (disabled)

5