Silo, a Bay Area food supply chain startup, has hit a rough patch. TechCrunch has learned that the company on Tuesday laid off roughly 30% of its staff, or north…
このエントリは、C++11 Advent Calendar 2011の参加記事です。 今回は、C++11の統一初期化記法(Uniform Initialization)を使用したスタイル改善を紹介します。 統一初期化記法とは まず統一初期化記法というのは、コンストラクタの呼び出しを、関数呼び出しで使用する丸カッコだけでなく、Cからあった集成体初期化の波カッコも使えるようにしよう、というものです。 struct X { X(int a, double b, const std::string& c) {} }; X x1(1, 3.14, "hello"); // これまでの初期化構文 X x2{1, 3.13, "hello"}; // C++11で追加された初期化構文 初期化子リストとの統一 C++11では、ユーザー定義型でも配列の初期化構文を使えるようにするためにinitializer
ちょうど今、initializerの項目を執筆している。この部分は、結構難しい。分かりやすく説明しようとすれば、不正確になってしまうし、規格に忠実であることを求めると、規格のように無味乾燥とした、正しいが分かりにくい文章になってしまう。 このため、なかなか執筆が進まないのだが、このままではいけないので、ともかくこのブログで、何か解説をしてみようと思う。 たまたま2chのスレで、aggregateの話題が出ているので、これについて、なかなか複雑な部分を、解説する。 C言語では、配列や構造体(C言語の用語)を初期化リストで初期化できた。 struct Foo { int x ; int y ; } ; struct Foo foo = { 1, 2 } ; 同じことは、C++でもできる。ただし、C++には「構造体」というものはない。すべて、クラスである。C++では、ある特殊な制限を満たした配列
ハッシュテーブル実装に対する攻撃とは 昨年12月末にドイツで開催されたCCC(Chaos Communication Congress)において、"Effective Denial of Service attacks against web application platforms"(Webアプリケーションに対する効率的なDoS攻撃)と題した発表が行われました。タイトルに「Webアプリケーション」とついてはいますが、この問題はWebアプリケーションに限ったものではありません。以下の三つの条件が揃ったアプリケーションであれば例外なく、DoS攻撃の餌食となる危険があります。 ハッシュテーブルというデータ構造を使っている ハッシュ値を計算するアルゴリズムが「脆弱」である ハッシュテーブルに登録するデータをプログラム外部から指定できる ハッシュテーブルとその問題 Wikipedia(日本語版)
問題 Vimではデフォルトで500種類以上の言語をシンタックスハイライトすることができます。 また、シンタックスハイライト以外の設定も充実しており、 デフォルトでは約100種類の言語で専用の自動インデントが行われるようになっています。 この約100種類は普段使用する範囲ならば何の問題もないのですが、 人口比率の少ない言語で何かを書こうとしたら デフォルトでは専用インデント設定がなかったというケースは案外あります。 文法がC系の言語であれば'smartindent'で誤魔化すことができるのですが、 人口比率が少ない言語は大抵の場合 'smartindent' が使えない言語です。 という訳で独自の自動インデントの設定を書く必要が出てきました。 しかしどう書けばよいのでしょうか。 解決方法 例として Haskell 用のインデント設定を書くことにしましょう。 Haskellはメジャーな言語では
時事ネタ いや、「今、fj.comp.lang.cが熱い!」という話は ちょっと前から聞き及んではいたのですが、 流量が尋常じゃないらしいので、 忙しさもあって読むのを控えていたんですけど、 先日、大筋を拾い読みしてみました。 確かに熱いですねえ。 いったん収束するかなあ、と思ったら、なんかまた泥沼の気配が(^^; fjを読んでない人のために説明すると(って、 私も普段はあんまり読んでないんですが)、 「malloc()で確保した領域は、必ずfree()で解放しなきゃいけないか?」という 話題でして、「exit()する時には、OSが解放してくれるんだから 別にfree()しなくてもいいじゃん」という主張と、 「いや、malloc()には常に対になるfree()があるべきだ」という主張があって、 議論を呼んでいたのでした。 んで、私がどう思うかなんですが、 私は面倒臭がりなので、free()
Chordアルゴリズムの解説ページです。 掲載コンテンツへのリンク先を変更する可能性があるので、ブックマークやリンクは、このページにお願いします。 Chordは、DHT(Distributed Hash Table)と呼ばれる種類のPeer-to-Peerアルゴリズムです。 特に、構造化オーバレイ(Structured Overlay Network)と呼ばれるルーティング手法に特徴があります。 解説スライドでは、そもそもDHTとは何なのかという初歩的なことから、successorやpredecessor、finger tableと呼ばれるChordの有名な経路表の解説や、多くの解説ではあまり触れられることがないけれどもきわめて重要である、ネットワークの構築方法(join・stabilize)についても詳細に解説しています。 スライドのページ数は多いですが、1ページ当たり平均数秒で読めるは
Linuxのディストリビューションの配布などで配布サーバの回線速度などがボトルネックになり(図1)、円滑にファイルを配布することはコストがかかります。BitTorrent(図2)は配布者の負担を軽減して、素早くファイルを配信することを目的にBram Cohenによって開発されたP2Pソフトウェア(図3)です。 BitTorrentでは、トラッカーとよばれる全てのピアとピアのアップロード/ダウンロード能力、ファイルの取得状況を管理するサーバが存在します。一般的なP2PシステムではP2Pネットワーク内を検索してからファイルの取得という動作を行いますが、BitTorrentでファイルの検索という作業は行ないません。代わりにトラッカーにファイルを持っているピアを問い合わせます。ファイルを持っているピアの検索をクライアント・サーバで行うということで、従来の分類ではハイブリッド型P2Pシステムになりま
id:nyaxt氏との共同開発の分散ストレージ「Cagra」(かぐら)のアルファ版をリリースしました。 cagra α3リリース cagra テクニカルデモ α2リリース 分散ストレージエンジンテクニカルデモ α版リリース cagraのα版試してみたよ - takumalog Cagraは以下のような特徴を持った(目指した)P2P分散ストレージです。 Zeroconf マルチマスタでレプリケーションするWrite 高速な分散Read オプションで高速な非同期Write インターネットレベルよりもLANレベルのマシン台数に特化 巨大データサポート 高速イベント駆動システムコール+軽量スレッド 超アジャ〜イルな開発体制 まだα版で全部が実装されているわけではないですが、とりあえず動きます。 Zeroconf UDPマルチキャストでノードを自動的に発見するので、一切設定ファイルを書かずに動作せる
並行言語であるErlangでPeer-to-Peer Network技術の一つである分散ハッシュテーブルを実装してみたところ,わずか1000行程度で実現できました.ノードが頻繁に出たり入ったりする,いわゆるchurn下でもそれなりの性能が出せたので,SourceForge.netで公開してみます.興味のある方はどうぞ. http://sourceforge.net/projects/ermdia/ 内部アルゴリズムはKademliaと呼ばれるものを利用しています.BitTorrent等でおなじみのアルゴリズムですが,データのput/getなどの通常のメッセージの交換時にルーティングテーブルをアップデートするため,ルーティングテーブルの維持コストがChord等に比べて低いという特徴があります.実装もそれなりに簡単で,過去にSymphonyと呼ばれる分散ハッシュテーブルを実装したのですが,それ
■ Nyzillaをリリースすべきか迷う 29日補足: 以下について「u-aizu.ac.jpは国立大学ではない」といった指摘を受けた。「ある国立大学」とは図1のことではないのだが、最初の段落が長過ぎて読み難かったようなので、改段落を2つ挿入して段落を3つに分割する修正を施した。 大学や会社で稼働するWinny ある国立大学の事務系部局のものと思われるドメイン名のIPアドレスが、2006年からずっとWinnyネットワーク上に観測されている。これは何なのかと以前から気になっていた。[改段落挿入29日] 最近はどうなっているのかと、2009年1月20日〜24日の期間に「WinnyWalker」で観測されたWinnyノードの全部について、IPアドレスをDNSで逆引きしてドメイン名を集計してみたところ、他にも大学のドメイン名上で稼働しているWinnyノードがいくつか見つかった。[改段落挿入29日]
■ ドワンゴ勉強会でお話ししたこと 8月28日の夕刻、ドワンゴ主催の「技術勉強会」にお招き頂き、少しお話をしてきた。テーマは「P2Pネットワーク」。もしもニコニコ動画をP2P方式で配信する(回線コスト軽減のため)としたらというテーマが暗に想定されているようだったので、それに沿ってお話しした。講演者は他に、金子勇氏と、NTTの亀井聡氏、P2P型掲示板「新月」の開発者でドワンゴ社研究開発部の福冨諭氏ほか。 私からお話ししたのは主に以下の2点。 そもそもなぜP2Pにするのか。手段が目的になってしまってはいけない。 利用者のプライバシーを確保する設計の必要性と可能性。 1点目は、以前からあちこちで話してきたことで、そもそも「P2P」とは何かというときに、peer-to-peer方式のネットワークという元来の意味に立ち返れば、decentralizedな構成にできて、ad hocに構成できるといった
SD is a new distributed issue tracking system designed for the open web.Read less
共有ソフト「Winny」開発の東大助手を逮捕 京都府警 逮捕されたからといって有罪になるとは限らない、と留保をつけた上で、持論を少々。(予め断っておきますが、以下、P2P 技術として主に想定しているのはファイル共有・転送技術です。それ以外の P2P 技術はインターネット白書2003年版によれば利用者の絶対数が少ないので、ここでは無視します) 包丁は有用な刃物だから、誰でも買ってよいのだけれど、用もないのに持ち歩いていると面倒なことになります。カッターナイフは、飛行機に乗るとき(これも法で禁じられているわけではない、と思う)以外は携帯していても OK です。日本刀は家に置いておくだけでも登録が必要ですね。猟銃も登録制、そして拳銃は基本的に所有が認められません。 Winny 開発者の逮捕で、P2P 自体の未来を危ぶむ声が非常にたくさんあるのですが、私はそう思いません。匿名性を高める方向へ進化し
BlackBerryは、「日本撤退か」という報道に関して、コメントを発表しました。 「BlackBerryは、信頼できるパートナーであるNTTドコモとの建設的な関係を築いており、今後も同社による国内でのBlackBerryの販売をサポートしていきます。日本でBlackBerry 10に関する予定は発表しておりませんが、それが日本のビジネスユーザーおよび一般のBlackBerryユーザーの両方にBlackBerryサービスと強力なサポートを提供し続ける、という当社の優先事項に影響するものではありません。」 日本から撤退する計画などは現時点はなく、今後日本での製品展開がないわけでもないようです。 今回の報道に関連して、NTTドコモの広報にも質問しました。 ・新機種のBlackBerry Z10とQ10をドコモで取り扱うご予定はありませんか? ⇒新機種の提供について、現時点で決まったことはありま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く