タグ

ブックマーク / nyaruru.hatenablog.com (38)

  • 2013年やったこと - Chromium 編 - NyaRuRuが地球にいたころ

    2013年やったこと - Chromium 編,いつもどおりコードが公開されている範囲で. HTML5 Forms の type 指定と InputScope の対応作業 Issue 13768 - chromium - InputScope support on Windows (a better IME integration) - An open-source project to help move the web forward. - Google Project Hosting HTML5 Forms の type 指定と Windows 環境での InputScope を連携させるという変更です.Windows 8 以降のオンスクリーンキーボードは InputScope でレイアウトを切り替えるため,IME を必要としない言語でも有効なのがポイントです. 変更自体はそれほど難

    2013年やったこと - Chromium 編 - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2014/01/05
  • boost xpressive で数列に対する文法を作る - NyaRuRuが地球にいたころ

    果ては Xpressive みたいな、正規表現を文字列以外の方法で記述できる実装だと、「文字」の「列」ですらなくても「文字とおなじようにふるまうもの」の「列」に対して正規表現使えちゃったりとか。intの配列から、100未満の値が繰り返されてる部分を取り出し! というお話を聞いて以来ずっと気になっていた boost Xpressive を使ってみる. お題としては,以前も解いたこの問題, 問題設定はnを1から初めてその2乗を足していき、和が2000を初めて超えたとき和はいくつになるかという問題を考えます。 を以下のように置き換える. 与えられた int の数列を調べ,2000 を超えた初めての要素を表示する.そのような要素が無ければ,"not found" と表示する. regex_match で解く 以下コード. #include <iostream> #include <limits>

    boost xpressive で数列に対する文法を作る - NyaRuRuが地球にいたころ
  • Ruby 1.9.0 Enumerable モジュールと LINQ Standard Operators 対応表 (書きかけ) - NyaRuRuが地球にいたころ

    書いたわけ yhara くんの『それany?で』を読んでいて,Enumerable.Any メソッド (System.Linq)」が来るのが面白かったので作ってみた.「同化はすでに始まっているのだ!」 対応表 るりまの「http://doc.loveruby.net/refm/api/view/class/Enumerable:title=」と MSDN Library の「Enumerable メソッド (System.Linq)」とをにらめっこしながらざっと分かる範囲でマッピング.間違いありそうなのでご注意を.さらに対応関係が微妙な奴も ? マーク付けてたりそもそも対応するものが無いことにしていたり結構適当なのでご注意を. とりあえずコピペしたものをひな形に使う等して,誰か完成させて下さいませ.あとついでに prototype.js の Enumerable とのマッピングもやってくれ

    Ruby 1.9.0 Enumerable モジュールと LINQ Standard Operators 対応表 (書きかけ) - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2011/05/16
    Rubyのバージョンあげよう
  • ローカルストレージに保存するデータの暗号化 ― Windows の場合 - NyaRuRuが地球にいたころ

    Gumblar による FFFTP への攻撃について GumblarによるFFFTPへの攻撃について FTPのアカウントを盗み、サイトを改竄するGumblarウイルスが猛威をふるっております。 このGumblarウイルスの亜種が、FFFTPを狙って攻撃していることが報告されております。 詳しくは以下のサイトを参照してください。 smilebanana UnderForge of Lack FFFTPはパスワードをレジストリに記録しております。簡単な暗号化をかけてありますが、FFFTPはオープンソースであるため、暗号の解除法はプログラムソースを解析すれば可能です。 Gumblarウイルスの亜種は、レジストリに記録されているパスワードを読み取り、サイト改竄に使用しているようです。 上記理由により、以下のいずれかの対策をお取りください。 ●接続先のFTPサーバーがSSL等に対応している場合。 →

    ローカルストレージに保存するデータの暗号化 ― Windows の場合 - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2010/01/31
  • 別スレッドでリソースを解放することのあれそれ - NyaRuRuが地球にいたころ

    Boost.SmartPtr:shared_ptr + weak_ptr(Cryolite) の 24 分目あたり. shared_ptr<void> による遅延解放 vector<shared_ptr<void *> > to_be_disposed; shared_ptr<HeavyToDispose1> px(…); shared_ptr<HeavyToDispose2> py(…); … // ここで削除して処理が止まると困る… to_be_disposed.push_back(px); px.reset(); to_be_disposed.push_back(py); py.reset(); … // 適当なタイミング or 別スレッドで // to_be_disposed.clear() を実行 の部分に関して, 別のスレッドでのリソース解放は,スレッド親和性をもつリソースを破

    wata_d
    wata_d 2009/12/15
  • 単位の話 - NyaRuRuが地球にいたころ

    だいぶ前に書こうと思って書き忘れてたのを今頃書いてみたり. ishisaka さんが Units of Measure をいたくお気に入りの様子. F#のUnits of MeasureはそれだけでF#を勉強してもいいと思えるぐらいすごいんだけど、世の中的には反応薄いか。無事ね素アプリばっか作っているプログラマに見せてもだめなんだろうなぁ F# Units of Measure - OPC Diary Java 7 JSR 275: Units Specification - OPC Diary 素アプリすらまともに作れていない気がする自分ですが,単位込みで計算するという発想自体は割と何度も目にしている気が.例えば Mathematica 使いで,単位込みの計算ができることを知らない人はモグリさんじゃなかろうか. google:Mathematica 単位 Mathematica では,ど

    単位の話 - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2009/10/05
  • 文字列に頼らないリフレクション - NyaRuRuが地球にいたころ

    C#でシンボルを実現する Expressionを使ってプロパティ名を文字列ではなくてラムダ式で与える方法 タイプセーフにINotifyPropertyChangedインターフェースのPropertyChangedイベントを発行する 拡張メソッド+ラムダ式でメンバ名をエレガントに取得 なんかまた最近流行っぽいので. 拙作 Achiral では,ConstructorInfo や PropertyInfo を以下のように文字列に頼らずに取得可能です. using System; using System.Linq; using System.Reflection; using Achiral; using Achiral.Extension; static class Program { static void Main(string[] args) { var member_info_lis

    文字列に頼らないリフレクション - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2009/09/17
  • DPI が足りない - NyaRuRuが地球にいたころ

    マイクロソフトが「普通の会社」になった日 - 東葛人的視点:ITpro ん?! んんん!! あわせて読みたい 私たちがWindows7のプラニングを始めた頃、ディスプレイについてのユーザー データを調べている際に、非常に興味深い (そして驚くべき) ことを発見しまた。ほぼ半数のユーザーがフル ネイティブ画面解像度を使用するためのPC設定を行っていなかったのです。下の表は、以前の記事でChristinaが取り上げたWindows Feedback Program から得られたデータを示したものです。 なぜユーザーが低解像度に設定しているのかを明確に把握する方法はありません。しかし、私たちが目にした多くのコメントは、「高解像度のディスプレイでは、デフォルトのテキストが読みづらいので、低解像度にしているのではないか」、という私たちの仮説と一致していました。もしかしたら、たまたまこのような設定にな

    DPI が足りない - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2009/09/05
  • C# でローカル変数の再代入を禁止したいとき - NyaRuRuが地球にいたころ

    とりあえずみんな一回 let 句使ってコード書いてみるべき. var seq = from _ in Enumerable.Repeat(1, 1) let x = 1000 let xs = new List<int>{x} let y = Math.PI / 2.0 let z = "hauhau" select _; var pixelsQuery = from y in Enumerable.Range(0, screenHeight) let recenterY = -(y - (screenHeight / 2.0)) / (2.0 * screenHeight) select from x in Enumerable.Range(0, screenWidth) let recenterX = (x - (screenWidth / 2.0)) / (2.0 * screenW

    C# でローカル変数の再代入を禁止したいとき - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2009/07/28
  • C++ の const の問題点 - NyaRuRuが地球にいたころ

    バグというのは、意図しないところで状態が変更されることにより発生することが多く、 C++のconstメンバ関数は、メンバの状態が変更されないことを保証する、という強力なチェックを 提供してくれるので、mutableとconst_castという例外を除いてメンバの状態変更によるバグは起こりえません。 constメンバ関数はとても強力なので、const操作な関数には常にconst付けてほしいです。 というか、付けてくれないと当に困るので付けてください。const付けてください。 C++ で const メンバ関数にすべきところで const になってないと当に迷惑ってのは同意. ただ,const T なオブジェクトを直接触れるときはいいんだけど,現実問題として const T* とか const T& で引き渡されてくることが結構あって,その場合は const メンバ関数だろうがそうじゃな

    C++ の const の問題点 - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2009/07/28
  • if が文とは限らない話と,条件分岐で参照を返す話 - NyaRuRuが地球にいたころ

    (略) でも、「式」しか書けない所ではそうはいかない。 例えば、(C++ で) 初期化リストの中や TMP では if 文なんて使えないので条件演算子を使わなければならない。 // ちと作為的な例だけど class hoge { const piyo& ref_p; public: hoge(int a, int b, const piyo& p1, const piyo& p2) : ref_p(a < b ? p1 : p2) {} }; これは if 文では絶対に書けない。 おまけ: C++ では、条件演算子を含む式を左辺に持ってくることも可能なのは覚えておいても損はない。 でも使うなよ?絶対使うなよ? (a < b ? a : b) = c; なんか話が混ざってる感があるので,もう少し成分分解してみる試み. if が常に文になってしまう言語の話 条件分岐の結果として,参照を返しうる

    if が文とは限らない話と,条件分岐で参照を返す話 - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2009/07/13
  • Address Space Layout Randomization - NyaRuRuが地球にいたころ

    --なぜSafariだったのですか。IEやFirefoxでなかったのは? 簡単なことです。Mac上のSafariの方が攻撃が簡単だからです。Windows上のいくつかの技術は攻撃を成功させるのを難しくしていますが、Macではそういうことはしていません。Macをハッキングする方がずっと簡単です。曲芸をして、Windows上で見られる耐攻撃措置を相手にする必要がないからです。 これは、対象となるプログラムではなくオペレーティングシステムの問題です。Mac上のFirefoxも比較的簡単です。その下にあるOSに、攻撃に対抗する仕組みが組み込まれていないからです。 (参照:10 questions for MacBook hacker Dino Dai Zovi) 私が使ったSafariに対する攻撃では、コードをプロセスに埋め込むと、そのコードの場所を正確に知ることができます。ランダム化されたりはし

    Address Space Layout Randomization - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2009/03/24
  • 電球を替えるのにMicrosoft社員は何人必要か? - NyaRuRuが地球にいたころ

    RegisterHotKey API に MOD_NOREPEAT フラグを追加するコストはどれぐらいだったんでしょうねぇ? hito_hpp 2009/02/10 13:56 なるほど、これで「お前らPCを高速化する裏技見つけたぜ。Winキー+Eをしばらく押し続けてみろ」というジョークが通じなくなるわけですね。 しかしもっと早く実装しなかったのでしょうね。 初心者がキーを押しっぱなしにしてウインドウが大量に開き、VRAM足りなくてAeroも無効化され、PCのスペックも非力なためしばらく応答不可能なんて、 MSの主張するユーザーエクスペリエンス(笑)的には最悪だと思うのに。 NyaRuRu 2009/02/10 14:29 >これで「お前らPCを高速化する裏技見つけたぜ。Winキー+Eをしばらく押し続けてみろ」というジョーク これが実は Microsoft の偉い人が引っかかったため今回修

    電球を替えるのにMicrosoft社員は何人必要か? - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2009/02/28
  • Windows 7 時代のスクリーンショットの撮り方 - NyaRuRuが地球にいたころ

    といっても私の場合は Vista 時代と変化無し.Window Clippings を愛用しています.$18 のシェアウェアです. Windows Vista や Windows 7 標準のスクリーンショットで困るのが,ウィンドウの透過部分にある背景イメージがそのままキャプチャされてしまうことです.この点,Window Clippings で撮るスクリーンショットはウィンドウの背景に影響されず,しかも透過色のままキャプチャすることができます.この透過色は,上記のように背景画像と重ねたり,PowerPoint に張り込んだりするときに活躍します.上記イメージ背景の格子模様は CSS で表示位置を固定しているものです.ウィンドウをスクロールさせると,Aero の透過部分がよく分かると思います. Windows 7 で初めて Aero 環境に触れるという方も今後増えてくるでしょうから,改めて紹介

    Windows 7 時代のスクリーンショットの撮り方 - NyaRuRuが地球にいたころ
  • C# 3.0 と while(true) と Iterator - NyaRuRuが地球にいたころ

    前置き よくある(ファイルなどから)複数行テキストを一行ずつ読み込む場合のソースコードですが using (StreamReader sr = new StreamReader(filePath)) { string line = string.Empty; while((line != sr.ReadLine()) != null) { // do something... } } とするよりも using (StreamReader sr = new StreamReader(filePath)) { for (string line = sr.ReadLine(); line != null; line = sr.ReadLine()) { // do something... } } の方が好きなんですが仲間はいるかなぁ? 行数の問題ではなく、一時変数 line の有効スコープが必

    C# 3.0 と while(true) と Iterator - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2009/02/19
  • IEnumerator 色々 - NyaRuRuが地球にいたころ

    .NET の IEnumerator の欠点 C#の似たようなものとして、IEnumeratorというのがありますが、それの方式は、 MoveNextで次の要素に移動 移動できたら真、移動できなかったら偽を返す Currentで現在の要素を取得する というインターフェイスです。 これだと上のような問題は起きません。 欠点としては、要素をCurrentメソッドで取得できるよう、現在の要素を保持していないといけない、ということでしょうか。 そして、Javaの方式でもC#の方式でも同様に当てはまる欠点として、「一回の反復につき、2回以上のメソッド呼び出しが必要となってしまう」という問題があります。 確かに. C# (あるいは BCL) 設計当時は値型の boxing を排除することで頭がいっぱいで,そっちまで考慮されてなかったんですかねぇ.来週来日される中の人(id:NyaRuRu:200708

    IEnumerator 色々 - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2009/02/19
  • Intel X25-M と ICH7 標準ドライバ - NyaRuRuが地球にいたころ

    先週末に Intel X25-M (80GB) を購入,これを Lenovo T60 のシステムディスクに変更し,Windows Vista SP1 の再インストールを行いました. 感想としては速いの一言です.Vista はとにかくディスク I/O の多い OS ですが,Intel X25-M はこれを十分にさばききります.ブロッキング I/O が全く気になりません.このクラスの SSD が一般的になるであろう Windows 7 世代では,PC のカジュアル用途でディスク I/O は問題にはならないということになりそうです. ここまでディスクアクセスが高速化されると,ディスクアクセスを無理して減らすことがメリットにならなくなるやもしれません.がんがんインデックスファイル/キャッシュファイルを生成する方がおもしろいソフトウェアにつながるケースがあると良いですね.それはそれで,プログラム屋さ

    Intel X25-M と ICH7 標準ドライバ - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2008/09/30
  • Chromium (Chrome) のソースを読む - NyaRuRuが地球にいたころ

    Chromium (Chrome) のソースを読んでみた. まず Chromium の位置づけがややこしい. Google 発のオープンソースなブラウザである Chromium があって,Google Chrome はこれをカスタムビルドしたもの,という位置付けらしい.まあ大多数の人間にとっては,Google Chrome のソースを読めるという認識で問題ないんだろう. ソースをダウンロードしてビルドまで,の手順はここにまとまっている. Getting Started - Chromium Developer Documentation 推奨ビルド環境は Visual C++ 2005 SP1.ソリューションファイル同梱なので,Windows っ子も安心. 巨大な tar ファイルの展開が終わると,Visual C++プロジェクトファイルが大量に現れる.各プロジェクトの概要はこちら. G

    Chromium (Chrome) のソースを読む - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2008/09/10
  • Microsoft が提供する C/C++ ヘッダファイルにおける事前条件・事後条件の充実っぷりは異常 - NyaRuRuが地球にいたころ

    ぴーびーしー - 東方算程譚 ふむ. むしろ Microsoft の開発現場で,一番 DbC が流行っているのが Visual C++ 関連だと思うのですが.Header Annotations とか SAL Annotations,C/C++ コード障害の検出と修正 等. 最近の Visual C++ のインクルードファイルや Windows SDKs 以下のインクルードファイルを見ていても,事前条件・事後条件の充実っぷりは異常.その規模は既に COM 全盛期の IDL を凌ぎます. あれは手で書いているんでしょうかねぇ? 何か DSL から C/C++ のヘッダファイルを自動生成していてもおかしくない気もしますが,はて. 整数範囲注釈 そういえば Visual C++ 2008 SP1 のコード検証は,Header Annotations の整数範囲注釈を活用していないように見えるので

    Microsoft が提供する C/C++ ヘッダファイルにおける事前条件・事後条件の充実っぷりは異常 - NyaRuRuが地球にいたころ
    wata_d
    wata_d 2008/06/23
  • 日記の登録ボタンを押してみたら,はてなが長時間のメンテナンス中だったときするべきこと - NyaRuRuの日記

    ……いま登録ボタンを押した記事,バックアップ取ってないんだが. 注意:ここで普段なら「戻る」で問題ないのだが,メンテナンス中は色々な URL へのアクセスが軒並みエラーページを返すせいか,戻っても画面が真っ白になってしまったのだ.予告メンテナンスなら書き込みフォームにも一工夫欲しいように思う. アレの出番 タスクマネージャを起動 タスクマネージャから iexplorer.exe を選び,右クリック→「ダンプ ファイルの作成」 バイナリエディタでダンプファイルを開く バイナリエディタは Shift-JIS, EUC-JP, UTF-8, UCS2 あたりのエンコーディングでの文字列検索をサポートしているものがおすすめ. 今回は DANDP Binary Editor を使わせていただきました.感謝. 執筆中のデータらしきものを探す 投稿内容に含まれていた特徴的な文字列で検索する. エンコーデ

    日記の登録ボタンを押してみたら,はてなが長時間のメンテナンス中だったときするべきこと - NyaRuRuの日記
    wata_d
    wata_d 2008/06/11