タグ

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

  • C++17をすでに現場で使っているというキャディ株式会社に話を聞いてきた

    CTOが「日C++のトップ人材の過半数が所属するイカれた会社にする」という宣言をした会社がある。なんとも壮大な話だ。C++プログラマーの業種は多岐にわたっているので、文字通りに考えると、そのような会社は自動車や旅客機の製造業であり、防衛庁の入札に参加する受注業者であり、OSや独自のプロセッサーを開発するためC++コンパイラー開発者も雇い、さらにはゲームもブラウザーも検索エンジンもクラウドホスティングもと挙げ続ければきりがないほど多方面に展開する大企業である。おそらくすでに名の知れた有名なIT系の大企業をほとんど買収すればそのような状態にはなるのではないかと思うが、金がいくらあっても足りない。 それはともかく、すでに現場でC++17を使っているという。 C++17は2017年に出たばかりの規格で、まだGCCもClangもコア言語はともかくライブラリーまでは完全に実装し終えてない状況だ。そ

    syuu1228
    syuu1228 2018/07/04
  • 麻布十番で職務質問を受けた話

    残暑も残る8月27日の日曜日のことであった。その日、私は知人のぽんこつさんが自宅でボードゲーム会を行うというので、昼からぽんこつさんの住んでいる麻布十番に出かけた。 ぽんこつボドゲVer17.08 - connpass その日の私の出で立ちは、7月3日に受けた違法な職質のときと同じ、帽子、即乾シャツ、即乾アームカバー、デニム生地風ストレッチパンツ、半長であった。 の虫: 警察官に職務質問をされた話 また、リュックの中にはボードゲームを満載し、かつボルダリングの道具も入れていた。これはぽんこつさんの自宅近くにスパイダーというクライミングジムがあり、ボドゲ会が終わった後に行こうと考えたためである。 約束の12時に間に合うよう、余裕を持って家を出たつもりであったが、待ち合わせ場所の麻布十番駅についたときにはすでに12時20分。ぽんこつさんの姿は見当たらない。 これはうっかり出遅れた。ぽんこつ

    syuu1228
    syuu1228 2017/08/28
  • マストドン会議で技術と自由を語る

    マストドン会議というものがあり、清水亮も登壇するというので行ってきた。 マストドン会議 ―― その無限の可能性を、いま語らずしていつ語らう! ~コミュニティもマーケティングも揺るがすTwitterのライバル出現~ | Peatix マストドンは日ではやってからまだ2週間しかたっていない。一体そんな状況で誰が集まるのだろうか。主催は角川が絡んでいるらしいが、まあ、あまり期待はせずに行くことにした。 その日は来るべき超会議2017のリハーサルの日だった。会場の幕張メッセではマストドンブースが設営されていた。私が担当なので当然私も現地にいた。そして少し遅れてマストドン会議の会場に着いた。清水亮は私よりも更に少し遅れて会場入りした。 会場に入ってみると、ぬるかる氏のmastdn.jpにサーバーを提供しているさくらインターネットの人とぬるかる氏が、サーバーの運営上の話をしていた。とても技術的な話だ

    syuu1228
    syuu1228 2017/05/10
  • 超会議2017でマストドンブースの運営スタッフをした

    序 私は江添亮、ドワンゴ社員だ。超会議2017で運営スタッフをした。このブログ記事は個人的なものだ。株式会社ドワンゴの見解ではない。こう書かなければならないのは悲しいことだ。結局、国語教育で存在しない作者の意図を答えさられた人が多いようだ。ちなみに、この文章はマストドンとfactorioがやりたくて仕方がない合間を縫って後ろ髪を引かれながら書いた。もし将来、この文章を使って「作者の意図を答えよ」という問題が出題されたときには、「作者はマストドンとfactorioの中毒者であるが我慢しながらこれを書いた」と答えるのが正解だ。 超会議2017リハーサル 概要 | ニコニコ超会議2017 公式サイト 超会議2017での私の割当は、神エクセル方眼紙で公開された。自由な表計算ソフトウェアであるLibre Officeでみてみると、私はゲームエリアにアサインされていた。 やった。事前に提出した希望通り

    syuu1228
    syuu1228 2017/05/10
  • ここらでもう一度マストドンについて語っておくか

    オレが間違っていたぞ、清水亮。 なんで「オレが間違っていた」と最初に書けないのか。つまんねープライドもってんなー -- 清水亮 https://mstdn.onosendai.jp/users/shi3z/updates/1002 前回、前々回と、マストドンについての批判を書いた。結論を先に書くと、私の技術上の懸念以外の懸念はすべてあたらなかった。 の虫: そろそろマストドンについて語っておくか の虫: マストドンが直面している問題はすでにP2P技術が15年前に遭遇した問題だ そうこうしていると、ドワンゴがマストドンのインスタンスを立ち上げた。 https://friends.nico/ これはなかなか興味深い。というのも、私はドワンゴに雇用されているので、ドワンゴが悪意を持っているかどうかについては内部の情報があるため判断しやすい。マストドンはインスタンスの管理者が悪意を持っているか

    syuu1228
    syuu1228 2017/04/21
  • 本の虫: カプコンのPC版ストリートファイター5にチート対策として誰でもカーネルモードで任意のコードを実行できるルートキットが仕込まれている問題

    カプコンのPC版ストリートファイター5にチート対策として誰でもカーネルモードで任意のコードを実行できるルートキットが仕込まれている問題 Double KO! Capcom's Street Fighter V installs hidden rootkit on PCs • The Register カプコンのPC版ストリートファイター5のアップデートで、チート防止機能の実装に、rootkitが含まれている問題。 PC版ストリートファイター5のアップデートに含まれているカーネルドライバー、capcom.sysは、IOCTLでサービスを提供する。その挙動は、まずSMEPを無効にし、呼び出し元の指定したポインターの参照するユーザーモードのアドレス空間上のコードを実行し、SMEPを再び有効にする。 とんでもない脆弱性で、ユーザーモードからカーネルモードでの任意のコード実行を可能にするので、roo

    syuu1228
    syuu1228 2016/09/26
  • Linuxにleftpad()というシステムコールを入れる提案

    LKML: Richard Weinberger: New syscall: leftpad() Linuxカーネルに興味深い日付でleftpad()というシステムコールが提案されている。 最近のnode.js業界の事件を振り返るに、leftpadのような基的なアルゴリズムの依存はソフトウェアを脆弱にすることが判明した。ledpad[原文ママ]を提供するnode.jsパッケージが消失し、多くのソフトウェアが動かなくなった。 この事件に注目すると、node.jsベースのソフトウェアがLinuxの「ユーザースペースは壊さない」原則に将来的に頼ることができるので、このような機能を提供するのはカーネルの役目であるという結論に至った。 glibcとAndoid[原文ママ]のbionicは、早急にこの新しいシステムコールのラッパー関数を提供してくれることを望む。 leftpadをカーネルに入れたのは

    syuu1228
    syuu1228 2016/04/02
  • Linus Torvalds、Microsoftが「ジャンプしてみろよ」と言えばIntelとAMDはジャンプする

    Linus Torvalds、Microsoftが「ジャンプしてみろよ」と言えばIntelとAMDジャンプする LKML: Linus Torvalds: Re: [PATCH 0/3] TLB flush multiple pages per IPI v5 IntelのCPUのTLBの挙動に、頻出するパターンにおける最適化らしきものが施されていることが観測できることに対して議論した後で、 前にも言ったように、Transmetaで働いていた時期、俺はNT以前のWindowsがどういう世界だったかということを垣間見た。GDI protection traversalはGDIがカーネル側に入るたびにTLBを全部フラッシュするらしく、また当時の一部のグラフィックベンチマーク(これはまだハードウェア支援されたVGAグラフィックが一般的ではなかった時代のことだ)は、5千から1万命令以内にTLBを全

    syuu1228
    syuu1228 2016/01/09
    “Microsoftが、「おう、ジャンプしてみろよ」と言ったならば、IntelとAMDはどちらも「どれだけ高く飛べばいいのでしょうか?」と言ったものだ。”
  • Linuxカーネル、Rockchip暦に対応

    kernel/git/torvalds/linux.git - Linux kernel source tree Linuxカーネルにあふれる文才と皮肉の無駄遣いを感じるコミットメッセージがある。 西暦1582年、ローマ教皇、グレゴリウス十三世は既存のユリウス暦が現実を十分に正しく表現していないことを見出され、不足分を補うために、うるう年を計算する規則を変更なされた。同様にして、西暦2013年に、Rockchipのハードウェアのエンジニアは、新しいグレゴリオ暦がまだ誤りを含むことを見出した。すなわち、11月は31日まで存在するよう改めた。遺憾ながら、暦の変更が広く浸透するには時間がかかる。先のプロテスタント国家がグレゴリウスの発案を受け入れてから、まだ300年しかたっておらず、すべての宗教とオペレーティングシステムカーネルがRockchip暦の改良を受け入れるにはまだ長年を待たねばならない

    syuu1228
    syuu1228 2015/12/22
    本の虫: Linuxカーネル、Rockchip暦に対応
  • HTTPステータスコード451(政治的な検閲)が正式に承認される

    mnot’s blog: Why 451? draft-ietf-httpbis-legally-restricted-status-04 HTTPステータスコード451がIETFで正式に承認された。近いうちにRFCとしても発行される。 元ネタは、Ray BradburyのFahrenheit 451(華氏451)というタイトルの小説で、これはディストピアな検閲社会を描いている。 451の意味は、403(禁止/権限がない)と似ているが、正確な意味は、ドラフトを引用すると、以下の通り。 このドキュメントはサーバーオペレーターが、あるリソース、あるいはあるリソースを含むリソース群に対し、閲覧を検閲するよう法的な命令を受け取った時に使うHypertext Transfer Protocol(HTTP)ステータスコードを規定するものである。 このステータスコードは、法律や一般大衆の雰囲気がサーバー

    syuu1228
    syuu1228 2015/12/20
  • Grub2の認証でバックスペースを28回押すとレスキューコンソールに入れる脆弱性が発見された

    Back to 28: Grub2 Authentication Bypass 0-Day Grub2のバージョン1.98(2009年12月)から、2.02(2015年12月)までにおいて、脆弱性が発見された。 脆弱性はGrub2の認証機能を使っていた場合に、ユーザー名を入力すべきところで、バックスペースを28回入力すると、レスキューコンソールに入れてしまうものだ。これにより、コンピューターに物理アクセスを得ている人間が、Grub2の強力なレスキューコンソール機能を使うことができる。 脆弱性の原因も詳しく書かれていて興味深い。grub2のコードでは、'\b'が入力されるたびに、unsigned型の変数をデクリメントする。この時、アンダーフローをチェックしていない。その変数は配列の添字に渡されて、ゼロが書き込まれる。 結果として、関数のreturn addressを0x0にすることができ、関

    syuu1228
    syuu1228 2015/12/17
  • GoogleのエンジニアがAmazonで片っ端からType-C USBケーブルをレビューしている

    Amazon.com: Profile for Benson Leung GoogleChromebook PixelのエンジニアであるBenson Leungが、アマゾンで売られているType-C対応を謳っているUSBケーブルとアダプターを片っ端からレビューしている。 なぜそんなことをしているのか。Googleの製品であるChromebook PixelはUSB Type-Cによる充電ができるが、巷に出回っている自称USB Type-C対応の製品の多くが、USB規格に違反していたり、十分な性能がない欠陥品だったりするからだ。 そもそも、USB Type-C規格は、3A, 5V, 15Wの電力供給ができる。3Aの電力供給は、途中の経路がすべてUSB Type-C対応の製品である場合に限る。例えば、途中にUSB 2.0などのレガシーケーブルを挟む場合は、USB Type-C規格準拠のケーブ

    syuu1228
    syuu1228 2015/11/05
    その割に充電すらうまくいってないみたいだけど…
  • Sarah Sharp、Linuxカーネルコミュニティの暴力性に嫌気がさして貢献をやめる

    Closing a door | The Geekess ドアは閉められた この記事は一年もの間、下書きフォルダーに入れてた。いまこそ投稿すべき時。炎上は怖かったので、この問題について触れるのはなるべく避けてきたのだけれど、部屋の中の象を指摘しないのはもやもやする。そういうわけで、公開する。 つまりこういうこと。私はもうLinuxカーネル開発者じゃなくなった。2014年の5月にUSB 3.0ホストコントローラードライバーのメンテナーの座を明け渡したし、2015年の1月には女性向けFOSS推進計画(FOSS Outreach Program for Women)のLinuxカーネル部門とかその他の役職も降りたし、2014年12月6日には、最後のLinuxカーネル開発のプレゼンをした。2015年8月のシアトルでのLinux Plumbers Conferenceへの協力は断った。Linux財団

    syuu1228
    syuu1228 2015/10/07
    "本の虫: Sarah Sharp、Linuxカーネルコミュニティの暴力性に嫌気がさして貢献をやめる"
  • XKCD 1513: コード品質

    江添亮 自由ソフトウェア主義者 C++ Evangelist C++標準化委員会の委員 ドワンゴ社員 C++11を執筆した。 株式会社ドワンゴで働いている。 Mail:boostcpp@gmail.com Twitter:@EzoeRyou GitHub: https://github.com/EzoeRyou 江添亮のマストドン@EzoeRyou 筆者にブログのネタを提供するために、品物をアマゾンお気に入りリスト経由で送りたい場合: Amazon.co.jp: 江添亮: 江添のほしい物リスト 筆者にブログのネタを提供するために、直接に品物を送りたい場合、住所をメールで質問してください。 View my complete profile ► 2020 (31) ► December (2) ► November (2) ► September (2) ► August (4) ► Jul

    XKCD 1513: コード品質
    syuu1228
    syuu1228 2015/04/19
    “IKEAで口論してるカップルの書き起こしを土台にエラー無しでコンパイルが通るまで適当に書き換えたらこうなるのかしら”
  • 何でWindowsは俺のワイヤレスキーボードをトースターだと認識するんだ?

    device manager - Why does Windows think that my wireless keyboard is a toaster? - Super User 俺は彼女の父親から古いPCを相続したんだが、プリンターを設定していると、ちょっとおどろきのものが現れた。 画像 さて、二つの疑問がある。 なんでWindowsは俺のワイヤレスキーボードをトースターだと認識するんだ? なんでWindowsはデバイスメニューにトースターのアイコンを持っているんだ? なぜか、質問者のワイヤレスキーボードに、トースターのアイコンが表示されている。Windowsはなぜそんなアイコンを用意しているのだろうか。 答えは。 理由1 Microsoftはトースター用ドライバーというサンプルを作っている。このサンプルでは、<DeviceIconFile>Toaster.ico</DeviceI

    syuu1228
    syuu1228 2014/08/06
  • ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で?

    ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で? c++ - Replacing 32bit loop count variable with 64bit introduces crazy performance deviations - Stack Overflow stackoverflowで、興味深い質問が行われている。 簡単にまとめるとこうだ。std::uint64_t型の配列の各要素にx86-64のpopcnt(1になっているビット数を数える命令)を適用したい。 コードの肝心の部分を書くと、以下のようになる。 for (unsigned i=0;i<size/8;i+=4) { count+=_mm_popcnt_u64(buffer[i]); count+=_mm_popcnt_u64(buffer[i+1]); coun

    syuu1228
    syuu1228 2014/08/05
    本の虫: ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で?
  • rm -rfしちゃったけどどうする

    rm -rf remains rm -rfの後に残りしもの 遊びのために、筆者は新しいLinuxサーバーを立ち上げて、rootでrm -rf /を実行して、何が残るかをみてみた。どうやら、今のrmというのは筆者のようなアホを相手にしなければならない未来に生きているようなので、実際に実行するには、--no-preserve-rootをつける必要があった。 # rm -rf --no-preserve-root / かかるおろかなる行為の後では、 /bin/ls /bin/cat /bin/chmod /usr/bin/file のような、偉大なるツールのたぐいはみな消え失せてしまった。まだ、ssh接続とbashセッションは生きているはずだ。つまり、bashの組み込みコマンドであるechoとかは残っているということだ。 Bashマクガイバーたれ root@rmrf:/# ls -bash: /

    rm -rfしちゃったけどどうする
    syuu1228
    syuu1228 2014/06/15
    /dev/tcpはあまり使われていないけどこうやって何かの役にはたつのでちゃんと覚えておきたいよね。ポート待ち受けはできないけど、この際まぁいいか。
  • みなさんスラッシュドットから出てこないほうがいいですよ。

    Objective-Cという汚らしい言語を長年強制し、プログラマーを絶望の淵に叩き込んでいたAppleが、とうとう新言語を発表した。名前はSwiftという。 iTunes - Books - The Swift Programming Language by Apple Inc. ただし、現時点で、Swift言語仕様書のダウンロードと閲覧に、Appleの独自仕様満載の不自由なデバイス、の上で動く不自由なOS、の上で動く不自由な閲覧ソフトウェアが必要だ。そのため、筆者は未だに言語仕様書を読めずにいる。これをもってこれをみると、Appleの新言語にかける姿勢が如実に現れていると言えよう。すなわち、Appleの不自由なシステム以外は、市場として考慮する必要がないということに違いない。事実、Objective-Cは、Appleの不自由なシステムでプログラミングするにあたって、仕方なく使わなければな

    syuu1228
    syuu1228 2014/06/05
    “追記:Appleの公式Webサイト上から読める仕様書を発見した”
  • 池袋バイナリ勉強会に行ってきた

    「kernelvmの発表者に、プログラミングを学んでわずか半年にして、PDP-11エミュレーターを実装した強者がいる」 kernelvmに参加した南山まさかず君は筆者に言った。なんと、プログラミング初心者が半年でPDP-11エミュレーターを実装し得ただと? いったい我々は何をやっていたのだ。その強者と話がしてみたい。きっとまだプログラミングの基礎を覚える過程を記憶していて、プログラミングを学ぶ方法がわからない筆者として、興味深い話が聞けることであろうし、半年でPDP-11エミュレーターを実装できたのであれば、物のプログラマーの素質を持っているであろうから。 聞けば、その強者は、七誌氏の主催する、池袋バイナリ勉強会なる勉強会で学んだという。一体どのような勉強会なのだろうか。ひとまず、その勉強会に参加してみよう。幸い、今週の土日に、初心者向けの講座が開かれる。 池袋バイナリ勉強会の会場は、東

    syuu1228
    syuu1228 2014/06/01
    “ところが、現地は思いの外に入り組んでおり、30分以上迷った末に、ようやく、数時間単位で部屋を貸す変わったホテルに囲まれた会場を発見した。”
  • Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子

    Linus Torvalds - Google+ - One of the things I end up doing is do a lot of performance… Linus Torvaldsが、最近のIntelのCPUは、通常以外の処理のコスト、つまりPage faultのコストが上がっているので、問題であるとしている。 俺はよくカーネルコードのパフォーマンスプロファイリングをやる。特に、VMとかファイルシステム周りに対してだ。 俺がよくやるのは、「うまくいってるとき」に対する計測だ。つまり、だいたいほぼ完璧にキャッシュされてる状況だな。というのも、俺はもちろんIOのことは気にかけているが、俺の個人的なワークロードはたいてい、うまくキャッシュされてるからだ。たとえば、俺にとってよくあるロードは、pullした後のフルカーネルビルドだ。これにどのくらいの時間がかかるかが問題になる

    syuu1228
    syuu1228 2014/05/02
    32bitと64bitの環境比較するのは、ページング周りの仕様(というか単に段数?)違うからアレのような気もするけど:本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子