タグ

*プログラミングに関するpneumasterのブックマーク (196)

  • 楕円曲線暗号に 512 bit は存在しない | はったりエンジニアの備忘録

    新しい SSH 鍵を作るために ssh-keygen のマニュアルを読んでいたら、おもしろい記述を見つけました。鍵のビット長を指定する b オプションの説明です。 For ECDSA keys, the -b flag determines they key length by selecting from one of three elliptic curve sizes: 256, 384 or 521 bits. 「ECDSA キーの場合、b オプションは 3 つの楕円曲線サイズのいずれかを選択することでキーの長さを決定する」。ここまでは理解できるのですが、示された 3 つ目のビット長が 521 bit なんです。 「えっ、2^9 の 512 bit じゃなくて 521 bit なの?」エンジニアなら違和感を感じて、まずタイポを疑いますよね。自分もタイポだと思って Fedora で試

    楕円曲線暗号に 512 bit は存在しない | はったりエンジニアの備忘録
    pneumaster
    pneumaster 2014/09/17
    rfc5639/rfc5656/それぞれのビット長に対して、別々の楕円曲線が使われるべきだが、それを満たせないので512 bitではなく521bitを使う
  • 【まとめ】Haskellでの正格評価とWHNF

    Haskellは遅延評価を特徴とする言語ですが、seq関数や!パターンを使うことで正格評価をさせることもできます。 ただし、最終的な値まで完全に評価(deepseq)されるわけではなく、WHNF(Week Head Normal Form)に簡約されるまでの評価です。 WHNFとは、簡単にいうと、以下のいずれかの形をもつ式です。 プリミティブである 式の一番左にデータコンストラクタがある 式の一番左にλがある 正格評価を使ったときにコードの挙動がどう変わるのか、具体的には以下のようになります。 ケース1(遅延評価)$ cat case1.hs loop 0 i = i loop n i = loop (n-1) (i+1) n = 100000000 main = let x = loop n 0 in putStrLn "1" $ ghc --make -O case1.hs $ tim

    【まとめ】Haskellでの正格評価とWHNF
    pneumaster
    pneumaster 2014/05/28
    WHNF(Weak Head Normal Form)について.名前呼び戦略で内部の簡約をする色々な段階.
  • 2004-06-05

    CRTPについてちまちま書いていたのをまとめてみました. CRTP(Curiously Reccursive/Reccuring Template Pattern)とは以下のように基底クラスのテンプレート引数として自分自身を代入するテクニックのことを指します. template class Base{/*.....*/}; class C : public Base{/*.....*/}; よく見かけるパターンなので,これがどういう使われ方をしているかを適当にまとめてみました. あるクラスの機能の一部を変えてコードの再利用を行う場合,変えたい機能を提供するメンバ関数を仮想関数にしてそれを派生クラスでオーバーライドするのが通常の方法ですが,CRTPを使えば仮想関数を用いずに行うことができます. 自分で何か良さそうな例を書こうと思ったのですが,あんまり適切な例が思い浮かばないので,このCRTP

    2004-06-05
    pneumaster
    pneumaster 2012/07/27
    CRTPをパラメタとする関数テンプレートを使うとコンセプトの不整合に対するFirewallを形成する。
  • Redirect DPE book CPP code | NetObjectivesSite

    pneumaster
    pneumaster 2012/07/25
    オブジェクト指向のこころのコード例
  • MVCは死んだ。MOVEするときがきた - きしだのHatena

    Conrad Irwinさんの「MVC is dead, it's time to MOVE on.」を訳してみました。 MVC is dead, it's time to MOVE on. この訳文も原文のライセンスを引き継いでCC-BY-3.0ライセンスで利用可能とします。 追記13:58 すでに訳してた方がいました。MVCの時代は終わった。MOVEを使い始めましょう。 - ふじこのプログラミング奮闘記 MVCは死んだ。MOVEするときがきた MVCはすばらしいアイデアだ。モデルを持ち、モデルは内部に少しの状態をもつ。ビューは内部に少しのUIをもつ。そして、コントローラは内部に少しの・・・ 何を持つ? 私は確かにこのことに気づいた最初の人物ではない。しかし示されたようなMVCの問題のために、あなたは最後には過剰なコードをコントローラに詰め込むことになる。なぜなら、他にどこに入れていいか

    MVCは死んだ。MOVEするときがきた - きしだのHatena
  • Big Sky :: Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事

    絶対パスの先頭に/が来る事を期待してはいけない しかしながら絶対パスの先頭にドライブレターが来る事を期待してはいけない UNCパスのホスト名やシェア名はディレクトリではないのでファイルシステムAPIは使えない事を意識しておく unixに比べパス内に空白文字が入る可能性が高い事を意識しておく ホームディレクトリを意味するパスの先頭チルダは自前で展開する必要があり、またパスの途中にチルダが混じる事は日常的にある ソケットディスクリプタに対してもread/writeで送受信できる事を期待してはいけない パイプでない標準入力のselectはやっても意味がない ディレクトリ内にあるファイルを開き、ハンドルを保持したままディレクトリを消せるのは当たり前だと思わない パスのセパレータが/¥である事を期待してANSI APIを使ってはいけない Cランタイム(POSIX互換API)とWindows API

    Big Sky :: Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事
  • Note - privateメンバ変数へのアクセス

    pneumaster
    pneumaster 2012/02/14
    同じクラスなら、他のインスタンスの private メンバ変数にアクセスできる。 これは、Java や C# など他の多くの言語でも同様の仕様だが、できないと思い込んでいないだろうか
  • Vim scriptでquickfixバッファのタイプを取得する方法 - yeast’s blog

    2011/09/01 レアケース対応 2011/09/04 レアケースでecho表示されない件修正。その他微修正 quickfixバッファのタイプ(Quickfix List か Location List)をVimスクリプトから判断する方法がないと言っている方が居たのでちょっと作ってみました。 Vim scriptは殆ど書いたこと無いので突っ込みどころ満載とは思いますが、これで判定できるんじゃないでしょうか? ウインドウ数を保存。 ウィンドウサイズ情報を保持 現在のウィンドウのビューを保存 lopen を実行。 Quickfix List (通常)だったら例外発生するので捕捉してreturn。 もしウインドウ数変わっていれば、Quickfix List (レアケース)なので lclose 実行。 カレントウィンドウをlopen前のものに復帰。 ウィンドウサイズを復元 ウィンドウのビューを

    Vim scriptでquickfixバッファのタイプを取得する方法 - yeast’s blog
  • PHP5.3.7のcrypt関数のバグはこうして生まれた

    昨日のブログエントリ「PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)」にて、crypt関数の重大な脆弱性について報告しました。脆弱性の出方が近年まれに見るほどのものだったので、twitterやブクマなどを見ても、「どうしてこうなった」という疑問を多数目にしました。 そこで、このエントリでは、この脆弱性がどのように混入したのかを追ってみたいと思います。 PHPのレポジトリのログや公開されているソースの状況から、PHP5.3.7RC4までこのバグはなく、PHP5.3.7RC5でこのバグが混入した模様です。RC5はPHP5.3.7最後のRelease Candidateですから、まさに正式リリースの直前でバグが入ったことになります。 バグの入る直前のソースは、ここの関数php_md5_crypt_rから参照することができます。以下に、おおまかな流れを図示します。まずはバ

    PHP5.3.7のcrypt関数のバグはこうして生まれた
  • GitHub人気レポジトリランキング Best50 全解説 - 方向

    GitHubで人気レポジトリのランキングが公開されているようなので全解説してみました. どれも素晴らしいものばかり! あなたのプログラミングライフを快適にしてくれるライブラリがきっと見つかるはず!! rails rails 9835 watching Ruby on Rails. 説明不要だよね! フルスタックWebフレームワーク jquery jquery 8710 watching JavaScriptライブラリ.これも説明いらないよね! node joyent 8572 watching 旧名node.js.昔の名前の方が通りがいいです.JavaScriptエンジンのV8用のノンブロッキングIOな何か.主にWebサーバ/アプリケーションに使われる. html5-boilerplate paulirish 6998 watching HTML5とかのテンプレート集.ただし公式ページのデ

    GitHub人気レポジトリランキング Best50 全解説 - 方向
  • 電話番号、郵便番号にマッチする真の正規表現 : にぽたん研究所

    Shibuya.pm #16 「夏の正規表現祭り」で、正規表現のお話をさせていただきました。 まぁ、「電話番号にマッチする正規表現」とか「郵便番号にマッチする正規表現」とかよく書かれてるけど、「どれもこれも手緩いよね」って話。 あ、だいぶはしょったかな。 とりあえずスライドに書いたので、発表をご覧になってない方はスライドからご覧ください。 ふと見返すと、このブログで電話番号の正規表現を公表するのは 3 度目ですが、あれからだいぶ経ってますね。 今ではもっと厳密な正規表現を作っています。 そして、Number::Phone::JP に続き、Number::ZipCode::JP という酔狂なモジュールが公開された記念で、郵便番号にマッチする正規表現を今回初めて公開しますが、そもそもここまで厳密な正規表現が公開されること自体、邦初公開ってヤツでしょう。 Shibuya.pm でも言いましたが

    電話番号、郵便番号にマッチする真の正規表現 : にぽたん研究所
    pneumaster
    pneumaster 2011/07/07
    正規表現/状態遷移図からの自動生成?/長いものについては、単に除外テーブルから引いたほうが早そうだけどどのくらい違うのかな/クォートしないでシェルエスケープしたものが見たい
  • TFS 2015 build drop folder explorer link not opening - MSDN Blogs

    In Visual Studio 2022 17.10 Preview 2, we’ve introduced some UX updates and usability improvements to the Connection Manager. With these updates we provide a more seamless experience when connecting to remote systems and/or debugging failed connections. Please install the latest Preview to try it out. Read on to learn what the Connection ...

    TFS 2015 build drop folder explorer link not opening - MSDN Blogs
  • ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会

    システム開発や保守、運用の現場においてドキュメントは必須のものです。 しかし、ドキュメントの作成・維持には多くのパワーがかかるため、ドキュ メントが存在しない、資料が古いままになっているなどといった現状を多く 耳にします。 勉強会ではこれらのドキュメントでよく利用される「図」にフォーカスし、 みるみるうちに図を作成できる「blockdiag」をご紹介します。 「blockdiag」はシンプルなテキスト記述からブロック図、ネットワーク図などの 画像ファイルを出力可能なオープンソースの画像生成ツールです。書き やすさ、メンテナンスしやすさを中心にデザインされており、図を作るのに 配置や並べ替えに苦労する必要はありません。 blockdiagのサンプルはこちら このような特徴を持つ「blockdiag」と、シンプルな記述でドキュメントを作成 するツール「Sphinx」を組み合わせることによって

    ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
  • 致命的すぎるバグがgithubで話題

    github上で公開されているグラフィックドライバのbumblebeeで見つかったバグ修正のコミットが話題になっています。インストールスクリプト内にあってはならないスペースがあり、インストールを実行すると /usr を根こそぎ削除するという悲惨なバグです。(しかもインストールはrootでしか行えない) このバグ修正のコミットはさながら掲示板の様に盛り上がっており、いろいろなネタ画像も貼られています。 「普段はbumblebeeをインストールしないけど、 インストールしたら /usr フォルダを削除しやがったぜ」 「我らの命を奪うことはできても、我々の/usr は決して奪えない」 「僕たちは宇宙を守るために君たちの /usr のエントロピーが必要なんだ」 githubが開発者向けのツールであると同時にコミュニティとして発展している事を伺わせる一コマです。とはいえbumblebeeをインストー

    致命的すぎるバグがgithubで話題
  • いいから聞け! 俺が文字コードについて教えてやるよ その1(前提知識編) - 谷本 心 in せろ部屋

    ちょっと久々のJavaネタですが、 前から書き溜めていた、文字コードやエンコードについてのノウハウを書きます。 今回は、詳細な説明に入る前に、前提になる知識や用語について説明しておきます。 文字コードとエンコードって違うの? 新人くん「では、HTMLの文字コードはUTF-8でお願いします」 先輩社員「文字コードじゃなくてエンコーディングでしょ?」 新人くん「えっ。あぁ、はい、それで」 文字コードとエンコード(エンコーディング)を混同して使ったりすると、 ちょっと原理主義的な人に怒られたりするんですけど、 大まかに言えば、「文字コード」は文字に割り当てられた「数字」のことで、 「エンコード」は文字と数字をマッピングする「方式」のことだと捉えていれば、大きくは外れません。 ただ、「文字コード」という言葉は、「数字」「方式」の両方で使われるほか、 文字一覧を示す「Charset」という意味で使わ

    いいから聞け! 俺が文字コードについて教えてやるよ その1(前提知識編) - 谷本 心 in せろ部屋
    pneumaster
    pneumaster 2011/06/15
    技術評論社から出てる文字コードの本もいいよ。新人と先輩はいないけど。包摂の基準がカオスに変わってきた歴史とかバックスラッシュの問題とかよく見る営業時間「9:00?17:00」とかとかなどなど
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • 第2回 C++アプリケーションの効率的なテスト手法(CppUnit編)

    第2回 C++アプリケーションの効率的なテスト手法(CppUnit編):連載 C++開発者のための単体テスト入門(2/4 ページ) ■CppUnitテスト環境の構築 では、CppUnitを使った単体テストの方法を、順を追って説明します。簡単なカウンタ・クラス(=カウントを数える機能を持つクラス)をテスト対象としましょう。 さっそくVS 2005でソリューション「CounterSolution」を作成し、その中にテスト対象となる(「Win32」の)スタティック・ライブラリのプロジェクト「Counter」を用意します(※プロジェクトの作成方法については、前回の記事などを参照してください)。 そしてもう1つ、Counterプロジェクトをテストする「Win32 コンソール アプリケーション」のプロジェクトとして、「CounterTest」をCounterSolutionソリューションに追加します(

    第2回 C++アプリケーションの効率的なテスト手法(CppUnit編)
    pneumaster
    pneumaster 2011/03/08
    cppunit / C++用テストライブラリ / テストフレームワーク / TestFixture
  • 世界初のAndroidの技術者認定試験が開始へ | スラド

    GAPSISの記事によれば、Androidの組込みシステムへの普及・開発を促進する業界団体であるOpen Embedded Software Foundation (OESF)が、世界初となるAndroid技術者向け認定試験を実施すると発表した。試験は11月29日より開始となり、問題数は全70問。必要な料金は15,000円。合格者にはOESFから認定証が授与される。 まぁ良くも悪くもAndroidが社会に認められたということなのか? GAPSISの記事によれば、試験が開始される背景として、現在は実績のある一部の企業へAndroid関連業務が集中する状態にあり、Androidへ新規参入を図る企業にとっては厳しい状況になっているために各社・各人のスキルを測る指標を設けるということがあるようだ。OESFは特にGoogleとは関係はなく、OESFの会員企業が組み込み系事業者の集団であることから、

    pneumaster
    pneumaster 2011/02/15
    試験は11月29日より開始となり、問題数は全70問。必要な料金は15,000円。合格者にはOESFから認定証が授与
  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年5月時点の調査。

    pneumaster
    pneumaster 2011/02/06
    インスタンスメソッドを表すのに#はどう扱うの? / staticなメソッドの場合は、ピリオド(.)で表します。 / インスタンスメソッドはnon-staticなので、シャープ(#)で表します。 / クラスとメソッドの区切りにシャープ / パウンド
  • Should we avoid C implementation? - Islands in the byte stream

    先日のPycon mini JPでは、Tenjinのトークが好評だったようでした*1。 How to Create a Highspeed Template Engine in Python このスライドの中で述べられているのは以下のような事です。 Web Appの実行時間の中でViewコンポーネントが占める割合は意外と大きい テンプレートエンジンをCで実装する必要はない 様々な言語*2のテンプレートエンジンの実行速度を比較してみると、Perlが最速だった Djangoのテンプレートエンジンは遅い このスライド、見せ方が非常にうまいので一見なるほどという感じがしますが、この二番目の「テンプレートエンジンをCで実装する必要はない」という結論には疑問があります。 このスライドの前半にあるような最適化手法は私もずいぶん熱心にやったものです。しかし結局のところスクリプト言語はCには敵わないので、

    Should we avoid C implementation? - Islands in the byte stream