ブックマーク / cpplover.blogspot.com (16)

  • 本の虫: GCCのgit移行が難航中

    GCCはgitへの移行を計画しているが、GCCの既存のsubversionレポジトリをgitレポジトリに変換する作業が難航している。 GCCの移行作業を検証しているのは他ならぬEric S. Raymond(ESR)だ。 ESRお手製の変換ツール、reposurgeonはsubversionからgitへの変換ができる。 Resource page for reposurgeon 3.44 しかしGCCは30年もの歴史を持ち、そのsubversionレポジトリも複雑だ。 ESRはGCCのためにreposurgeonのバグを潰し、勢い変換しようと試みたが、意外な障害に出くわした。メモリ不足だ。 GCC's Conversion To Git Is Being Held Up By RAM, a.k.a. Crazy DDR4 Prices - Phoronix ESRの所有する64GBのメモリ

    trashtoy
    trashtoy 2018/07/31
    これは大手術
  • 警察官に職務質問をされた話

    とても日差しの暑い7月、木場の自宅から銀座にある職場まで5kmの道を、5kgはある荷物を背負って徒歩で通勤していた。その日の私の出で立ちは、日焼けを防止するための大きな帽子、OD色の即乾シャツ、クライミング用のジーンズ風ストレッチパンツ、半長であった。勝鬨橋を超えて自販機で飲み物を買うと、急に警察官が3人近寄ってきた。 警察官「ちょっといいですか」 私「何ですか」 警察官「荷物の中を確認させていただきたい」 私「嫌です」 警察官「なぜですか」 私「応じる義務がないからです」 警察官「危険なものが入っているのではないですか」 私「入っていません」 警察官「では見せて証明してください」 私「見せる義務はありません」 このような問答がしばらく繰り返された挙句、私は出社をしなければならないのでその場を離れようとした。すると、警察官は回り込んで私の往来を妨害してくるではないか。人の往来を妨害するの

    trashtoy
    trashtoy 2017/07/24
    「急いでいるから」という理由だけでこの対応を取ったのだとしたら完全に悪手としか思えない. 自分が警察官の立場でも絶対何か隠していると思うし.
  • Chrome 51のV8の興味深いバグ

    以下のコードを実行した結果を予想してみてほしい。 function foo() { return typeof null === "undefined" ; } for ( var i = 0 ; i < 1000 ; ++i ) { console.log( foo() ) ; } typeof nullの結果は"object"なので、"undefined"と===で比較するとfalseになる。したがって、関数fooは必ずfalseを返すはずである。1000回実行しようと常にfalseを返す関数は常にfalseを返すはずである。 では実際に実行して確かめてみよう。 実行(何度かクリック) コンソールにコピペするのとは挙動が違うが、何度もクリックすると、なぜかtrueを返すようになる。おそらく、コンソールにコピペすると毎回JITが走るので、挙動が違うのだろう。 ちなみに、workaroun

    trashtoy
    trashtoy 2016/06/22
    バージョン 52 系なので再現しなかった(対応済み?)
  • Old New Thing: 未定義動作はタイムトラベルを引き起こす(他にもいろいろあるけど、タイムトラベルが一番ぶっ飛んでる)

    Old New Thing: 未定義動作はタイムトラベルを引き起こす(他にもいろいろあるけど、タイムトラベルが一番ぶっ飛んでる) Undefined behavior can result in time travel (among other things, but time travel is the funkiest) - The Old New Thing - Site Home - MSDN Blogs 久しぶりに紹介するRaymond Chenのブログ記事。 C言語とC++では、様々な部分が、ドラゴンの住まう地というレッテルを貼られている。いや、正式には、未定義動作とされている。 未定義動作が発動した場合、何でもありだ。例えば、変数は同時にtrueでもfalseでもありえる。John Regehrは興味深い例のリストをまとめて、未定義動作コンテストの受賞者もある。 以下の関数を

  • 全人類が一斉にジャンプしたらどうなるのっと

    Everybody Jump もし全人類が出来るかぎりお互いに近寄って同時に跳躍し、同時に着地したならば、どうなるのか。 --Thomas Bennet(とその他多数) このブログに寄せられる質問で多かったのがこれだ。これは、すでに考察されている。特に、ScienceBlogsとかStright Dopeの記事とかで考察されている。ここでは、運動量についてはよく考察されている。しかし、その余りの考察が足りない。 もっと詳細を考えてみよう。 まず状況を考える。全人類が魔法のように一箇所に集められたとする。 この人間の群れは、ちょうどロードアイランド州ほどの大きさの面積を占める。しかし、ここでは、そんな仮定の話のように、「ちょうどロードアイランド州ほどの大きさの面積」などとは言わない。この状況では、我々は具体的に考える。実際にロードアイランドに集まるのだ。 正午をもって、皆が跳躍する。 すでに

    trashtoy
    trashtoy 2015/06/23
  • プログラミングを学ぶ方法がわからない

    最近、プログラミングをどうやって学べばいいのかわからなくなってしまった。 筆者はドワンゴに雇われている。ドワンゴに入社して早4ヶ月になろうとしている。ドワンゴに雇われている名目は、C++の啓蒙である。C++の啓蒙にはC++教育も含まれる。したがって、筆者はそろそろC++教育をしなければならない。 筆者は、プログラミングを教育する最良の方法は、参考書を執筆することだと考えている。直接対面して教えるのは非効率的だ。文章を書いておけば、大勢が学べる。では、どのような参考書を執筆すればいいのか。すでにC++11のコア言語の参考書は書いた。 EzoeRyou/cpp-book C++14対応も、正式なC++14規格制定後に行わなければならない。そしてライブラリは、もし他にやる人がいないのであれば、やらなければならないだろう。 しかし、これらのは、C++をこれから学び始める人向けではない。C++

    trashtoy
    trashtoy 2014/05/22
    ドワンゴ広告が一番面白かった。それを消してしまうなんてとんでもない。広告は広告としてマークアップされるべきというのは言われてみれば確かにそうで、W3Cで仕様化してくれないかな
  • ドワンゴの女子マネという過酷な訓練

    ドワンゴ現在、ドワンゴでは「女子マネ弁当」という企画が復活している。 過去の女子マネ弁当の様子については、すでに社外にも相当の情報が出回っているので、例えば以下のような情報を参考にしてもらいたい。 【第1回】ドワンゴ大改革の鍵は、インフラと女子マネージャー。|川上量生の胸のうち|川上量生|cakes(ケイクス) ドワンゴ「助けて! エンジニアが朝出社しないの!」→ 女子マネージャーが弁当を手渡してくれる「女子マネ弁当」システム導入で生活習慣改善へ - ねとらぼ 今回は、その女子マネ弁当の実情に迫る、社内からのレポートをお届けする。 女子マネ弁当の概要とは以下の通りである。 3月17日から、4月25日までの一ヶ月間、午前10時30分までに出社すると、以下の特典がある 午前10時30分から、エンジ色のジャージを来た女子マネ人員(なぜか若い女性のみで構成されている男女比率の偏った集団)が、エンジ

    trashtoy
    trashtoy 2014/03/24
    “メモリをたったの8GBしか積んでいないクソみたいなスペックのラップトップ一台” えぇ~そんな。by 32bitWin7ユーザー
  • Jenkinsの開発者、間違えて一ヶ月前のローカルレポジトリをgit push --forceしてしまう

    Jenkinsの開発者、間違えて一ヶ月前のローカルレポジトリをgit push --forceしてしまう Jenkin developers accidentally do "git push --force" to over 150 repos on github | Hacker News Jenkinsの開発者、Luca Milanesioによって、Jenkinsの多くのgitレポジトリに対してpushが行われた。不思議なことに、pushをしたというのに変更点はほとんどみられない。一体ルカは何をやったのだ。 Dominik Bartholdi やあみんな、とくにルカ。 昨日、GitHub上のJenkinsの多くのレポジトリ(50以上)に、なにか変なことが起こった。 どうやら、Luca Mmilanesioが、何の変更もないのに、たくさんのたくさんのレポジトリにpushしたらしいのだ。

    trashtoy
    trashtoy 2013/11/12
  • 最悪のプログラミング言語、BANCStar

    Following is the email I received from Google for this article. This is so unhelpful to identify the cause. After carefully reviewing the article, I found one URL that was flagged to contain malware(probably usual old domain expired and purchased by other problem) so I removed that link. Please review and re-publish this article. I hope Google's flagging system tells me why it trigger the flagging

    最悪のプログラミング言語、BANCStar
    trashtoy
    trashtoy 2013/09/02
    バイトコードだけが残されたJavaプログラムみたいなものか(そっちのほうが、そこそこの可読性を持った状態で逆コンパイル出来るだけずっとマシ)
  • LinuxカーネルのMLにおける悪口の励行についての議論勃発

    Linuxカーネルのメーリングリストは、常に罵詈雑言に満ち溢れているが、そういうのは辞めて大人になろうという主張がSarah Sharp[1]によってなされた。なかなか面白い。 きっかけは、いたって日常的な罵倒混じりの議論に、Sarah Sharpが横槍を入れたところから始まった。 LKML: Sarah Sharp: Re: [ 00/19] 3.10.1-stable review On Fri, 12 Jul 2013 18:17:08 +0200, Ingo Molnar <mingo@kernel.org> wrote: * Linus Torvalds <torvalds@linux-foundation.org> wrote: On Fri, Jul 12, 2013 at 8:47 AM, Steven Rostedt <rostedt@goodmis.org> wrote

    trashtoy
    trashtoy 2013/07/17
    わかる気がする>単に「そういうことはしないでいただけるとありがたいんだけど」とか言ったんでは伝わらない
  • UNIX風OSで同じプログラムの複数起動を防ぐ方法

    若い頃、OSに不自由なWindowsを選んでしまったがばっかりに、今GNU/Linuxに移って、UNIXの流儀を飲み込むのに苦労している。 さて、UNIX風OSで、同じプログラムの複数起動を防ぐ方法は、一体どうやって実装すればいいのか。 クローズドソースのWindowsならば、ある決められた名前付きのカーネルオブジェクトを作成すればよい。カーネルオブジェクトはいくつも種類があるが、なんだっていい。カーネルオブジェクトの作成はアトミックに行われる。すでに同じ名前のカーネルオブジェクトが存在する場合、その情報も伝えられる。これにより、すでにカーネルオブジェクトが作成されたかどうかがわかり、重複起動も判断できる。プロプライエタリなWindowsのカーネルオブジェクトはリファレンスカウントされており、参照するプロセスが存在しなくなった時点で破棄される。そのため、プロセスがクラッシュしたり外から強制

    trashtoy
    trashtoy 2013/06/12
  • ソフトウェアの思想が設計にもたらす影響

    Emacsは死んだ Emacsの設計は、思想上の理由から、わざと貧弱であるという話。 Emacsの内蔵言語であるelispは、貧弱だそうだ。私はLisp系の言語に詳しくないが、少なくとも今まで出会ったLisperは皆elispは貧弱だと答えている。それにも関わらず、今まで出会ったLisperは全員、LispのコーディングにはEmacsを利用しているのは不思議だ。おそらく、Emacsとその資産を再実装する手間を考えたら、Emacsを使ったほうが得策なのだろう。 elispが近年のLispの進化を反映していないというだけではない。Emacsのelispはマルチスレッドに対応しておらず、ちょっと重い処理をしようとするとユーザーに応答できなくなってしまうし、共通の処理は共有のライブラリとしてまとめるという普通のことが難しく、ファイルI/Oなどの低級なAPIも不足しているという。 自然として、Ema

    trashtoy
    trashtoy 2013/06/03
    Windowsのバッチファイルも似たような感じ
  • もし大工の採用面接がプログラマーのように行われていたら

    If Carpenters Were Hired Like Programmers | DawO_od 面接官「なるほど、あなたは大工なのですね」 大工「そうです。私は大工として今までやってきています」 面接官「実務経験は何年ほどでしょうか?」 大工「10年です」 面接官「すばらしい。それはいい。さて、これから職場にふさわしいかどうか、いくつかの技術的な質問に答えてもらおうと思うのですが、よろしいでしょうか?」 大工「はい」 面接官「まず、弊社は茶色の家の建築が主な仕事内容でして。以前に茶色の建築の経験はおありで?」 大工「えーと、私は大工です。だから家は建てますよ。塗装の色の好みは人それぞれでしょう」 面接官「ええ、それはわかります。ですが、茶色経験は何年ほどでしょうか?」 大工「おいおい、分からんよ。建築したあと、どういう色で塗装されるかなんて私の知ったことじゃありません。たぶん、6ヶ

    trashtoy
    trashtoy 2013/05/31
  • 全プログラマーが知るべきレイテンシー数

    Latency numbers every programmer should know — Gist L1キャッシュ参照 0.5ナノ秒 分岐予測失敗 5ナノ秒 L2キャッシュ参照 7ナノ秒 Mutexのロックとアンロック 25ナノ秒 メインメモリー参照 100ナノ秒 Zippy[Snappy]による1KBの圧縮 3,000ナノ秒 1Gbpsネットワーク越しに2KBを送信 20,000ナノ秒 メモリーから連続した1MBの領域の読み出し 250,000ナノ秒 同一データセンター内におけるラウンドトリップ 500,000ナノ秒 ディスクシーク 10,000,000ナノ秒 ディスクから連続した1MBの領域の読み出し 20,000,000ナノ秒 パケットを、カリフォルニア→オランダ→カリフォルニアと送る 150,000,000ナノ秒 Jeff Dean著(http://research.googl

    trashtoy
    trashtoy 2012/06/01
  • Dartで誤って無限ループに陥るコード

    Dartは非常にシンプルな言語であるが、恐らく初心者が、誤って無限ループに陥ると思われる箇所がいくつかある。 ファクトリーコンストラクター class X { factory X() => new X() ; // 無限ループ } void main() { X x = new X() ; } このコードは、無限ループに陥る。なぜならば、new X()というのは、ファクトリーコンストラクターXを呼び出す式である。これは、つまり自分自身を再帰呼び出ししていることになる。結果として、無限ループになる。 正しいファクトリーコンストラクターの書き方は、別のコンストラクターを呼び出すものである。 class X { X.internal() { } factory X() => new X.internal() ; } クラスのゲッターとセッター クラスのゲッターとセッターは、クラスの変数への簡単な

  • DartのOptional Typeについて

    Dartの素晴らしさがまだ分からない無知無識の者が、Dartの型システムについて深刻な誤解をしている。ここでは、Dartの型システムであるOptional Typeについて、ひとつ解説をする。これを読めば、Dartの如何に大昔のJavascriptより優れているかが、一目瞭然であろう。 強い静的な型付けは、C++のような、ほとんどを静的に決定する言語では非常に便利である。しかし、動的な言語では、むしろ邪魔にさえ感じる。 Dartの型システムは、Optionalである。型を明示的に書こうが書くまいが、自由である。 変数には、型を指定してもしなくてもよい。 var x = 0 ; int x = 0 ; 関数の引数には、型を指定してもしなくてもよい。 int f( int x ) => x ; f( x ) => x ; ジェネリックのタイプパラメーターには、型を指定してもしなくても良い。 L

    trashtoy
    trashtoy 2011/10/17
    なるほどこれは分かりやすい。静的型付けと動的型付けの利点の良いとこ取りをした感じか
  • 1