2002年05月15日(Wed) 早く職場に来たら廊下がピカピカ
● 昨夜のHEAD修行
パスワード認証のsshでログインできなくなった。/etc/ssh/sshd_configを編集するべし。sshdのデフォルトが変わったのかな?
作れなくなったのは、ggv (undefined reference)とash(pmakeが必要)、そういえばしばらく前からskipstoneがmozillaのバージョンのしばりで作れてませんですね。その他ソースが取れないのがいくつか。
● 昨夜のRPM更新情報
親ディレクトリも作らなあかんやん。
● 今朝のHEAD修行
こんなのもありました。
file /usr/lib/perl5/man/man3/Carp::Clan.3.bz2 from install of perl-Date-Calc-5.0-2k conflicts with file from package perl-Bit-Vector-6.1-2k
● iiimf-skk
famaoさんの開発はどんどんど〜んどん進んでます。CannaとかPoboxも使えるようになりつつある…。僕もソースを見られるまとまった時間がほしいよう。もちろん時間だけの問題じゃないんだけどねぇ。
● 今日のKondara-iiimf-skk-HOWTO
せめてこちらは更新。MLに流れる情報を追っているだけというカナシイ状態ですが…。
● /a/付近のこと
ツッコミありがとうございます。anegoさま。 RPM更新情報の方は、 ぢつは/a/に移してからはまだ一度もマトモに活動していないという状態なのですが、 次のcron.dailyのときは、たぶん、ちゃんと動いてくれる、と、いい、なぁ…。
tama.rbさんは、ファイルのパスを一部絶対パスで持っているので、
そのままではmakeできないみたいです。
手元では、29行目くらいをとりあえず、$outdir = "."
にして、
conf/sites.cfg
を空のファイルに
(WWWサイトを見てまわるのはちょっと嫌なので)して、
makeしてやると、index.html
ができました。
RPM更新情報を作る、specrcs2html.rb
の方は、
ローカルにCVSのレポジトリ(ワーキングコピーじゃなくて)
を持っていないといけないので、たぶんmakeできない
…と思ってやってみたら、globできないだけで、パッケージの無い
specfiles.head.html
と
specfiles.STABLE_2_1.html
ができました。
あと、specfiles/以下のディレクトリとcoしたspecファイルも作ります。
RPM更新情報の体裁は、超弩級アンテナの体裁に合わせようと思ってますので、
よろしうお願いします。
もしどなたかがいじってくださるようでしたら、
RPM更新情報のHTMLのモトは、specrcs2html.rb
にあります。
● iiimf-skk-0.1.20.7
iiimf-skk-0.1.20.7がリリースされました。それにしても、こっちが本職でアウアウやって、息抜きにHEADメモをHTMLにして、とかいう間に…。すごすぎるです。
2005年05月15日(Sun) にわか雨の一日
● 久々洗車
Vogで自動車がずいぶん汚くなってきた。火山灰らしき赤い砂がいっぱいついている。そもそももう何ヶ月も洗車していない気もするので、おもいきって洗車した。
雨の日にやるとすすぎが楽でいいよ、と思ってたのだけど、すすいでる時は晴れてました。うーむ。
洗い終わると車の色が薄くなったような気がしてドキドキしていたのだけれど、今朝外で見たら元の通りの色だった。気のせいか光のせいか。よかったよかった。
2006年05月15日(Mon) また雨ですかそうですか
● メール書きが仕事になってるかも
最近仕事で出すメールの数が増えたように思う。
メールのファイルから自分が書いたものを選びだして、重複するIDを除きながら引用を除く本文のバイト数を数え、時期別に集計したくなった。いや、時間ないんだけど。
2007年05月15日(Tue) なんだか体がガタガタですよん。困ったな。
● Microsoft takes on the free world (CNN)
新山さんのメモより、Richard Stallmanさんの写真がなかなか :) これたぶんemacs教のはなしをしてる時だよ、と思ったけど、emacs教のはなしをしてるときはでかいハードディスクをかぶってたよな。
● GaucheNight 感想 (黎明日記)
Matzにっきより、Theoriaさんによる、GaucheNightのとっても濃い感想。僕もサイヤ人になるためにLisp知りたーい!と思うのだけれど、時間がない。最近は体力もない…。
とりあえずUIM-skk改造したいんだけどね。
● [Momonga] x86_64に行こうとする (2)
前回からの続き。gcc、まだできません。
まず、gccは置いておいてglibcを作ってみようと思いました。
これは下記のエラーで失敗。
もう一度gccに挑戦。makeの前に下記の操作をしてみました。
あいかわらずx86_64-unknown-linux-gnu/libmudflapのconfigureが失敗する。
じゃあシステムのlibcを使わせてみようと、-L/usr/libを追加してみました。
エラーは下記のとおり。
だめじゃん。glibcを作るにはコンパイラが必要で コンパイラを作るにはglibcができていないといけないようです。
つぎはとりあえず使えそうなlibcをみつけてくるのかな。
● 海底ケーブル切断中…かどうかは知らないけれど今日は専用線なし。でも、日本のIPアドレスじゃないのにセキュリティホールmemoを見させていただけるようです。ありがたや。
2009年05月15日(Fri) 内臓が疲れてるんだろうね
● 分解好きずんか、あるいはマグライトのLED化
いつも携帯しているマグライトがしばらくの間行方不明になっていた。今日やっと発見して見てみると、電球が無くなっていた。きっとずんかが分解してどこかに放置してしまったのだろう。けがをしないといいのだけれど。(追記) 電球はずん夫人によって確保されてました。さすが!どうもありがとう。
これを気に、以前やりかけてやめた、LEDへの換装をしてみた。以前は出張の直前で、なんとなく電池が熱くなった気がしたのでやめたのだった。飛行機に持って乗るの怖いしね。
LEDをつけると、明るくなるのだけれど合焦する範囲がせばまる。山頂で使う時には、予備の懐中電灯もあるので問題があれば戻れる。しばらく様子をみてみよう。
● 借金生活のはじまり
先日、Amazonのカードが良いと聞いて資本主義の奴隷になる決心をしたのだけれど、あっさり却下された。借金の経歴が記録されていないとアメリカではクレジットカードは作れないのだそうです。クレジットカード無しで借金するのはけっこう大変らしいよ。
しばらくはそのまま放っていたのだけれど、現実問題としてアメリカで借金できないというのは困る場面もありそうだと気づいたので、ちょっとがんばってみることにした。口座のある銀行のブランドのカードを申し込んで…やっぱり却下された。しかし却下の手紙をよーく見ると、Amazonのカード会社からの手紙とはちょっと違うことが書いてありました。「再考の可能性がある情報をお持ちの方はお知らせください (超意訳)」デビットカードの利用履歴のずらっと並んだ、銀行からの口座明細をコピーして、念のため口座番号を消して、「なにとぞよろしう」という手紙と一緒に送ったら、何週間かしてなんとカードが来ましたよ。
このクレジットカードを利用できるようにするには、まずはカードの表面に貼ってあったステッカーに書かれた電話番号に電話をして、カード番号の一部を伝えました。
カードと一緒に来た手紙には、wwwサイトも利用できますよ、とURLが書いてありました。さっそくhttpをhttpsに変換して閲覧しようとすると…サーバ証明書のドメイン名が一致しない。んなアホな。おそるおそるhttpで閲覧すると、さくっと別のドメインにリダイレクトされました。リダイレクト先はhttps。firefoxのアドレスバーが緑色になって、EV SSL証明書だと主張してるようです。証明書のCNはリダイレクト先のもの。証明書は手紙で来たhttp専用URLをhttpsで閲覧した時と同じもののようです。なーんだ、それ。ここは、リダイレクト先のEV SSL証明書の発行対象の組織名が、カードを送ってきた会社のものと一致してることで、リダイレクト先のサイトを信用することにしました。
いったん信用することにすると、このサイトはなかなか便利でした。あまり信用できない業者にカード番号を渡すときには、限度額と有効期限を指定して、一時的なカード番号を発行してもらえます。この番号はひとつの業者に対してしか有効ではないことになっているとのことで、万が一番号が漏れても被害は最小限にできます。(いや、たぶん普通のカード番号が漏れても被害は保障されるんだろうけどさ、いろいろややこしい手続きをしないといけないだろうと考えると、最初から被害が少ない方がいいじゃん。)
というわけで入手したクレジットカード。実はこれまで持ってたデビットカードの方がマイレージが貯まりやすかったりして良いのだけれど、少しずつ使っていかないとね。
● というわけで借金第一号は、Free Software Foundationの会費にしました。これだけお世話になってるのに最近はコードを出力できてなくて悔しいけんね。Happy Hacking!今後ともよろしくお願いします。でもミーハーなのでgNewSenseのカード型USBメモリ付き。悠西さんの日記のようにメンバー番号のついたボタンがあるとカッコイイのだけれど、FSFのサイトに不具合があるのか何なのか今はつくってもらえないようなので、とりあえずそれは無し…どこかに報告するべきかしらん。(追記) webmaster宛てにお手紙を書いてみた。
2013年05月15日(Wed) Google I/O 2013 Day 1
● [io13] キーノート
今年のキーノートは一日目の午前中全部を使うという長丁場でした。内容は、Googleによる録画や各記事 (adakoda.com*1)に譲るとして、多数の大画面で見る映像は楽しいものです。
疲れたらGDGラウンジで中継を見るのも一興です。僕なんか昼ももらってきちゃったよ。
上記も含めてキーノートの雰囲気のわかる写真を置いておきますね。
*1 すばらしい一覧をありがとうございます
● [io13] What's New in Android Developer Tools
Googleによる録画 あれ?メモが残ってないよ。 Android Studio (version 0.1だ!)の紹介。
Some part are rock solid. Some part are not
● [io13] The Next Frontier: Indoor Maps
Googleによる録画。 この記事はzundaのメモからの講演内容の再現です、発表内容を網羅しているわけではありませんし、誤りが含まれるかもしれません。
現状での測地精度。GPSは15m (屋内不可)、Wifiは25m。 屋内で自分の位置を知るには精度が足りない。 気圧計で高度が測れるが気圧の変化は±20ほどでどの階に居るかわからない。
しかし今後Indoor mapの需要は増えるだろう。 インターネットのドメイン名が1999年ごろに爆発的に増え (1999年に150万を突破し、現在450万)て 今はwwwページの無い企業が時代遅れに見えるように、 Indoor mapの無い場所*1が時代遅れになるかもしれない。 この講演ではIndoor mapの現状を説明します。 サンフランシスコ空港ではエスカレータも含めた徒歩ナビゲーションができるし、 Smithonian Air & Space Museumでは飛行機のかたちがわかる。
Indoor mapに必要なもの。地図のカバレッジ、High quality indoor location。 これらをセルフサービスで用意できるようになっている。
High quality inddor locationの用意。 AndroidにFused locatin providerが用意されていて、 GPSだけでは測地できない場所でもなんとかできる。 Google Maps Floor Plan Markerを起動して、端末を持ち歩きながら、 現在地をIndoor mapに記録していく。 この結果をGoogleに送信しておくと、 端末が感じているGPS信号WiFi信号加速度計ジャイロなどのセンサの記録と照合して、 ユーザーの現在位置を推定できるようになる。
WiFiは測地用には作られていなくて、 特にアクセスポイントと端末の間に人間が入ると結果が狂うのだけれど、 とにかくたくさんあるので活用できる。 (測地用に使うことのできるWiFiの規格も提案されている。 )
Fused location serviceには、 電池の消耗を抑えつつ ユーザーが歩いているか自転車に乗っているか自動車に乗っているかを 判断できる機能もあり、 今後、コンテクストを考慮した屋内での測位の結果の利用が進むだろう。 たとえば、モールで友だちを見つけるとか、 近くの店によって検索結果を最適化するとか。
*1 商業施設のことかな
● [io13] Design Decisions in AngularJS
Googleによる録画。 この記事はzundaのメモからの講演内容の再現です、発表内容を網羅しているわけではありませんし、誤りが含まれるかもしれません。
AngularJSに込めた指針: D.R.Y.、Structure、Testability
Google Feedbackは17k行だったのが、 AngualrJSでつくりなおしたら3週間かかって1.5k行になった。
1ページウェブアプリのデータの流れ。 DOMとそれに対応するメモリがブラウザの中にあり、 メモリの内容がデータベースとやりとりする。 それをAngularJSで単純化(simpify)したい。
DOMをテンプレートとして活用する
ロジックの導入、MVCへの分離。index.htmlから 例えば下記のようなコントールを呼ぶ (動画8:20付近)。 UI/View/DOMが、Logic/Controllerを通して、あるいは、直接に、 Data/Modelとやりとりをする。
Dependency Injection。動画12:50付近
の替わりに、動画13:10付近
などとできる。(この記事の執筆時よくわかってない(´・ω・`)
Imperative worldとDeclarative world。AngularJSではどちらも使える。
● [io13] A Trip Down Memory Lane with Gmail and DevTools
Googleによる録画。 この記事はzundaのメモからの講演内容の再現です、発表内容を網羅しているわけではありませんし、誤りが含まれるかもしれません。
パフォーマンスとメモリの関係。 使うメモリを増やせば速度は速くなるという逸話は本当か?
ChromeでGMailがメモリを食うというハナシがあった。 本当か?Googleの同僚も言ってる。パワーユーザーだけ? 検証しようにもデータが無かった。 Chromeは各タブにプロセスを割り当てるが、 プロセス数が最大を越えると1つのプロセスが複数のタブを管理するよになり、 プロセスあたりのメモリ使用量が増えることになる。
基本 - Javascriptのメモリ管理。 Javascriptの型は、Boolean、Number、String、Object、External object。 これだけ。 プログラムから見えないroot node ("e;document"e;)から 参照している先のnode/valueがあり、 Object nodeが参照を続け、Scalar nodeで参照木が終端される。 Root nodeから続くRetaining pathによって参照されているnodeは Garbage correction (GC)されないが、 Root nodeから届かないnodeはGCされる。 GCはRoot nodeから届くLive valueを見つけて、 そうではないDead valueを改修する。 ここで、「Retaining size」は、そのnodeを消すとGCできるようになるnodeの数。
V8でのメモリ管理。 Javascriptからnewを呼ぶコストは、通常は小さく、メモリの割り当ては速い。 しかし、GC(Chromeの場合はgenerational GC)が必要になると 10msec程度のGC Pauseが起きることになってしまう。 V8の世代別GCでは、 Young generationの割り当ては速く、 長い間生きてきたValueの回収*1は速く、 頻繁に回収されれう。 これに対して、 Old generationの割り当ては速いが、 回収は遅く、時々しか行なわれない。 GCのコストはLive valueの数に比例するので、 Young generationの回収を頻繁に行うことで、速度を保つ。
Young generationのGC。 To spaceとFrom spaceのふたつのメモリ領域があり、 普段はTo spaceに新しいnode/valueのメモリが割り当てられる。 To spaceが足りなくなると、GCとPage pauseが起きる。 To spaceへのポインタとFrom spaceへのポインタが交換され、 From space中のlive valueをマークして、To spaceにコピーする。
Crhomeで使えるツールやテクニック。 Chrome 22からwindow.performance.memoryでメモリの状況
- jsHeapSizeLimit
- totalJSHeapSize
- usedJSHeapSize
が得られるので、これをUIのレイテンシと一緒に記録しておく。 これで、メモリ使用量が多いほどUIが遅いことがわかった。
Chrome developer tool。 右上の「Hot dog menu」から辿るかCtrl+Shift+IでDeveopler Toolsを開く。 たとえばメモリのTimelineを見ると、 ゴミ箱アイコンから強制的にGCしても開放されない メモリリークの量を確認できたりする。
Object Tracker/Heap Profiler。現在はCanaryのみ。 タイムラインと一緒に、ヒープのプロファイルを記録できる。 Profile - Track Allocations。 記録が終わった時に開放されていないnode/valueがいつ割り当てられたかわかる。
気をつけるべきポイント。 あなたの書いたページはどれだけのメモリを使っているか、 メモリリークはないか、 GCの頻度は?
質疑応答。理想的なヒープの大きさは? 無限。
*1 Old generationへの?
● [io13] Using Drive as the Storage Solution on Android
Googleによる録画。 この記事はzundaのメモからの講演内容の再現です、発表内容を網羅しているわけではありませんし、誤りが含まれるかもしれません。
最近赤ちゃんが産まれたのでいろいろログを取りたくなった。 名前、誕生日、性別を入力して記録を取り(なかなか使いやすい)、 そのうちにデバイスを乗り換えたら、
- 設定が同期されない
- 記録していたデータが来ない
App is treating the device as a user
Google Driveをアプリに組み込んで使いましょう。 全てのGMailユーザーは5GBの無料領域を持っているし使ってもらいやすい。
アプリのための記録領域としては、
- ユーザーからは直接は見えないApp Data
- ユーザーからも見える通常ファイル - 例えば、CSVファイルとして記録しておき (Google Spreadsheetsでも参照できる)、 アプリ内のSQLiteと、ユーザーの設定に応じて同期する。 アプリ内ではユーザーの入力をSQLiteに記録する
の可能性がある。コード例 (動画 17:00、17:40)
こうしておくことによって、 デバイス間、Schemaが公開されていればアプリケーション間、そして、 ユーザー間でポータブルなデータが作れる。
ユーザーから見たアプリのデータ。 ユーザーがGoogle Drive側から何をできるか、選択できる。 View: No、Edit: No、See quota: Yes、Delete Yes…など。 各プロジェクトに複数のoAuth2.0クライアントを設定できるので、 iOSクライアント、Androidクライアント、…と 様々なクライアントを横断して使ってもらえる。 認証スコープは、 https://www.googleapis.com/auth/drive.appdata *1 に記載されている。 SharedPreferencesを、 onSharedPreferenceChanged()やonPerformSync()など経由で記録しておける。
サンプルアプリは https://github.com/googledrive/appdatapreference-android *2 に。
質疑応答。コンフリクトが置きた場合はどう処理される? 後からの更新が勝ちます。
● [io13] 7 Techmakers and a Microphone
Googleによる録画。 女性ギークによるエンジニアリングなシゴトに関する講演。
始まる時には部屋がいっぱいで入れなかったのですが、 20分ほどして再挑戦したら入れました。
> anego [RPM 更新情報ありがとうございます。 超弩級コンダラアンテナ<->更新情報<members li..]
> かずひこ [もしできれば、超弩級アンテナも、自動で最新 spec (および Antenna ファイル) を取得するような仕組みに..]