2017-03-27

C++標準化委員会の文書: N4643-N4661

また新たなC++標準化委員会の文書が公開された。

[PDF] N4643:National Body Comments for PDTS 19216, C++ Extensions for Networking

ネットワークライブラリに対するNBコメント

[PDF] N4644: National Body Comments for PDTS 21425, C++ Extensions for Ranges

レンジに対するNBコメントコメント

[PDF] N4645: WG21 Telecon Minutes

電話会議の議事録。

[PDF] N4647: Working Draft, Extensions to C++ for Modules

#includeに変わる機能、モジュールのドラフト

[PDF] N4648: Editor's Report for the Module TS

モジュールのドラフトの変更点。さほど変更はない。

[PDF] N4649:Working Draft, Technical Specification on C++ Extensions for Coroutines

軽量な実行媒体、コルーチンのドラフト。

[PDF] N4650: Editor's report for the Coroutines TS

コルーチンの変更点。目新しい変更はない。

[PDF} N4651:Working Draft, C++ Extensions for Ranges

レンジのドラフト。

N4652: Editor’s Report for the Ranges TS

レンジのドラフトの変更点。だいぶ変更があるようだ。

[PDF] N4653: 2017-02 Kona Record of Discussion ISO/IEC

内容はN4654とほぼ同じだがなぜか標準化委員しかみられないようにBASIC認証がかかっている。

[PDF] N4654:WG21 2017-02 Kona Minutes

Kona会議の議事録。

[PDF] N4656: Working Draft, C++ Extensions for Networking

ネットワークライブラリのドラフト。

[PDF] N4657:Networking TS - Editor's Report

ネットワークライブラリの変更点。それほど大きな変更はない。

[PDF] N4658:Alternative accommodation (student residence) for the 2017-07 Toronto WG21 Meeting

2017年7月のトロント会議のために近くのホテルに割引を交渉した。

Pros: 安くて近い。

Cons: クーラーがない。7月のトロントは暑くなります。

[PDF] N4659:Working Draft, Standard for Programming Language C++

ドラフトC++規格

[PDF] N4660:C++17 DIS Ballot Document

C++ DIS(Draft International Standard)。もうこれ以上の変更はほとんどないはず。これが実質C++17となる。

N4661 Editors' Report -- Programming Languages -- C++

C++ドラフトの変更点。std::byteが入った。

ドワンゴ広告

ドワンゴは本物のC++プログラマーを募集しています。

採用情報|株式会社ドワンゴ

CC BY-ND 4.0: Creative Commons — Attribution-NoDerivatives 4.0 International — CC BY-ND 4.0

2017-03-23

4Kディスプレイを買った

出社中にふと思い立って秋葉原に立ち寄って27インチの4Kディスプレイを買った。今や、4Kディスプレイは5万円で買える時代だ。通勤途中にふらっと衝動買いできる程度の値段でしかない。

そして設置して今に至るが、もっと早く、10万円を切った頃に、いや買えるようになった時点で即座に4Kディスプレイを買っておけばよかったと後悔している。4Kディスプレイによってもたらされる圧倒的に快適な作業は素晴らしい。結局、我々健常者はコンピューターからの出力を目で得ているので、眼球にできるだけ多くのピクセルをぶち込むのが最も効率的な出力なのだ。

筆者の今使っているラップトップに内蔵のディスプレイは4Kなのだが、物理的な画面サイズが12.6インチしかなく、あまり4Kの恩恵を実感できていなかった。たしかに高いPPCMによりフォント描画は素晴らしい。フォントサイズを小さくしても、ピクセル数が多いので読むことは可能だ。しかし、物理的なサイズには限界がある。

そこで、今回は27インチとやや大きめのディスプレイを買うことにした。本当は33インチぐらいのディスプレイが欲しかったのだが、そのサイズのディスプレイは10万から15万ぐらいするのでやめておいた。

それにしても、10年前はひたすら高PPCMのディスプレイを待ち望み、サイズが小さくてもいいから高PPCMのディスプレイがほしいと思っていたのだが、まさかPPCMはもう十分だからサイズの大きなディスプレイがほしいと思う時代が来るとは思わなかった。

とにかく、27インチの4Kディスプレイを得たことでC++の規格書の閲覧がはるかに楽になった。C++の参考書執筆のためには必要な自己投資だ。

Ubuntuがブート時にmanual fsckが必要だとしてinitramfsで止まった時

Ubuntuが塊操作不可能になったのでREISUBでリブートしようとしたら、以下のようなメッセージを表示して止まった。

/dev/mapper/ubuntu--vg-root contains a file system with errors, check forced.
Inodes that were part of a corrupted orphan linked list found.

/dev/mapper/ubuntu-vg-root: UNEXPECTED INCONSISTENCY; Run fsck MANUALLY.
    (i.e., without -a or -p options)

fsck exited with status code 4.
The root file system on /dev/mapper/ubuntu--vg-root requires manual fsck

これはエラーメッセージの通りファイルシステムに不整合な問題が発生している。おそらく原因は先程正しくunmountできなかったためで、ストレージの故障ではないだろう。おそらくBを早く押しすぎたのだ。

この問題を解決するには、そのまま、fsck /dev/mapper/ubuntu--vg-root とコマンドを入力すればよい。そしてaと入力すると、運が良ければファイルシステムの不整合が修正される。

2017-03-20

パラノイアで遊んだ

最近、有名なTRPGのパラノイアを遊んでいる。すでに3回遊んだ。次はGMをやろうとルールブックを読んでいるところだ。この休みの月曜日を使ってだいぶ読み込んだので、パラノイアのGMがやれそうな気がする。パラノイアの世界観はだいぶ頭に叩きこんだが、TRPGのGMの経験はないので、まずは練習が必要だ。

私がパラノイアを遊んだ時のGMは、残念ながらパラノイアのルールブックを熟読してはいなかった。彼らの他の楽しくないTRPGでは十分なGM経験を積んではいるが、真に楽しいTRPGであるパラノイアのGMとしては未熟だった。ルールブックを確認するといかに彼らのプレイスタイルが極端なZapスタイルであったかわかる。

私が遊んだパラノイアでは、自分のセキュリティクリアランスより上の色を触ると即座に監視カメラが捉え、天井に設置されたレーザーにZAPされるルールになっていた。これは1,2時間の短いセッションならば面白いのかもしれないが、ゲームの大半は色の確認と色の迂回に用いられた。

さて、現在、私の手元にはパラノイアの25周年記念のトラブルシューターとインターナルセキュリティとレッドブックの日本語訳がある。アマゾンでインターナルセキュリティとハイプログラマーの原書を注文した。トラブルシューターの原書は、現在アマゾンでとても高いのでやめておいた。

古くてもいいのでサプリメントのルールブックやミッション集も欲しいところだが、なかなか入手が難しい。

2017-03-09

新しいラップトップRazer Blade Stealthの2016年版を中古で買った

タイトル通り、会社の同僚が買ったまま持て余していたRazer Balde Stealthの2016年盤を中古で買った。大まかなスペックは以下の通り。

  • 12.5インチ
  • 4Kディスプレイ
  • Skylake Core i7
  • DDR4 8GB
  • SSD 256GB
  • HDMIx1, USBx2

さっそくWindowsを無慈悲に消してUbuntuを入れる。特に問題なく入った。

Ubuntuの動作には問題がないので、後はこのラップトップのハードウェア的な評価になる。

まず4Kディスプレイなのは今更言うまでもない。もはや4Kディスプレイ未満の解像度のディスプレイの使用は基本的人権の侵害であり幸福で文化的な最低限度の生活を満たさない。

ディスプレイのサイズが12.5インチというのは一長一短がある。PCを持ち運んで様々な場所で作業したい場合、この大きさは悪くない。しかし、一カ所にとどまって長時間作業する場合、このサイズはやはり小さい。これでも4Kディスプレイなので、むしろppcmは大きい。したがってフォント描画もとても綺麗だ。それにしても人間の目には限界がある。物理的にディスプレイが小さいとつらい。

メモリ量は、VMを立ちあげず、主にターミナルエミュレーター上でvimを使ってテキストを編集するのであれば問題のない量だ。

外部ポートが乏しいのもつらい。Ethernetポートがないのはつらい。できれば外部画面出力は2つほしいし、USBポートも4つぐらいはほしいところだ。EthernetやUSBはUSBハブを使えばいいのだが、USBハブを持ち運ぶのは面倒だ。

充電はUSB Type-Cで行う。これによりACアダプターの紛失や破損の際に代替品をすぐに用意できるという利便性があるが、USB Type-Cの規格に準拠した充電器やケーブルの入手は一苦労すると聞いている。世の中には規格違反の粗悪で危険なケーブルが出回っている。

また、このラップトップの元持ち主によれば、Windowsで使っていたところ頻繁に熱によりCPUがダウンクロックされてスペック通りのパフォーマンスがでないのと、12インチという小ささと、8GBというメモリの少なさと、GPUを積んでいないことによりグラフィックパフォーマンスの悪さにより、使いみちがなく持て余していたそうだ。

多少の不満はあるものの、現在使っているIvy Bridgeのとても重たいゲーミングラップトップを置き換えるには十分だ。流石にこの2017年にIvy Bridgeを使うのは無理があり、あまりにも遅いため日々の作業にも支障が出ていたので、12インチという難点はあるが、この際メイン環境として置き換えることにした。

これで現在、筆者が日常的に使うラップトップは3台。Razer Blade Stealthと、Toshibaのdynabook T95/NGと、DellのLatitude E7470だ。

Toshibaのdynabook T95/NGは、中古で9万なので購入した。4Kディスプレイが付いていて比較的最近の製品なのにこの値段なのは、ディスプレイに縦一直線に常時白点灯ピクセルがあるからだ。とりあえず白背景にして黒文字でテキストを編集するとあまり気にならないので自宅で使っている。不思議なのは、東芝のWebサイトのスペック表を見ると、GPUにAMD Radeon R9 M265Xを使っているらしいのだが、Ubuntuからは認識されず、GPUはHaswell Mobileと表示される。HD GraphicやIrisなどではない不思議な表記だ。ただしlspciをしてみると、

01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Venus PRO [Radeon HD 8850M / R9 M265X] (rev ff)

と表示される。factorioでしばらく遊んでいるとカーネルがエラーメッセージを吐いて停止する。ブラウザーでWebGLを動作するぐらいでは問題が無いようだ。

DellのLatitude E7470は私の所有物ではなく、会社の支給PCだ。私はこれにUbuntuを入れて使っているが、どうも具合が悪い。マウスやキーボードやタッチパッドといった入力を度々取りこぼす問題がある。内蔵のキーボードとタッチパッドが悪いのかと思い、他の環境で正常に動作するマウスやキーボードを繋いでみても、やはり入力を取りこぼす。ハードウェアかLinuxカーネルかXに問題があるように思われる。Unityは使えたものではなくGnomeだとだいぶマシになるが、やはりたまに入力を取りこぼす。Ubuntu 17.04のDaily buildをいれてLinux kernel 4.9を試してみたが、多少改善された程度でやはり入力を取りこぼす。4.10はまだ試していない。

私の理想のラップトップは、15インチ、4Kディスプレイ内蔵、USキーボード、メモリ16GB以上、内蔵Ethernetポート、ディスプレイ出力が2ポート、USBポート、ストレージが交換可能なこと、nVidiaのGPUを積んでいないこと、高パフォーマンス高消費電力なGPUを積んでいないこと、なのだが、なかなか条件にあったラップトップが見つからない。

5万円もするヘッドフォンATH-DN1000USBを買った話

オーディオテクニカのATH-DN100USBというヘッドフォンを買った。5万円した。

きっかけは、使っていた安物のヘッドフォンが壊れたことだった。そのヘッドフォンは値段を正確に覚えていないが、せいぜい5,6千円で買ってきた安物だったはずだ。故障は断線だ。断線が判明してから数週間ほど、だましだまし使っていたが、やはりたえられなくなったので新しい物を買うことにした。

筆者は長く金のない生活を送っていたせいか、あまり金を使わない生活をしている。たまには贅沢をしてもいいだろうと、ある程度の金を使うつもりでいた。思うに、ヘッドフォンは数年は使うものであるから、1万か2万の金をつぎ込んでもいいだろう。また、今のPCのマザーボードに内蔵のオーディオデバイスはあまりよろしくないので、新しいオーディオデバイスを買ってもいいかもしれない。オーディオデバイスにはPCIe接続のサウンドカードと、USB接続のオーディオデバイスがある。筆者はUSB接続の方が優れていると考えている。というのも、タダでさえノイズの多いPCのケース内にオーディオデバイスを設置するのは馬鹿げているからだ。

筆者は音楽をほとんど聞かない。聞くのはゲーム内の音と音楽だ。すると、USBオーディオとヘッドフォンが一体化したものでもいいのではないか。調べてみると、Bluetooth接続のヘッドフォンはたくさんあるが、USB接続のヘッドフォンはほとんどなかった。オーディオテクニカのATH-D900USBとATH-DN1000USBぐらいなものだ。ATH-D900USBは普通にUSBオーディオデバイスとヘッドフォンが一体化したものだ。これは安い。ATH-DN1000USBは変わっている。USBオーディオデバイスとして振る舞うヘッドフォンであることは変わらないのだが、その仕組みが変わっているのだ。

通常、音を鳴らすには、まずPCMデータを電流に変換してその電流で振動板を動かす。ATH-DN1000USBは、PCMから直接振動板を動かす。振動板は4つあり、PCMからどの振動板を組み合わせて動かすかを決定して動かすそうだ。

さて、実際に店頭に行っていろいろとヘッドフォンを聞いてみると、ATH-DN1000USBの音が気に入ってしまった。音が正確に聞こえる気がする。しかし値段は5万円。買うしかない。

帰宅後、まずはGNU/Linux機に接続してみる。何も問題なく使えた。ただし、PulseAudioの設定がデフォルトでは16Bit 48kHzだ。このUSBオーディオデバイスは24bit 192kHzまでの入力をサポートしているので、より良い音源を生成する場合には、PulseAudioの設定を買える必要があるだろう。どうやら/etc/pulse/daemon.confの内容を変更すればいいようだ。以下をコメントアウトして内容を変更する。

; default-sample-format = s16le
; default-sample-rate = 44100

いろいろと試してみると、ひどく圧縮された音源を再生すると、ホワイトノイズが聞こえる。これはアナログのヘッドフォンでも聞こえるのだが、このヘッドフォンでは特によく聞こえる気がする。

さて、不自由なWindows機に接続してみると、動かなかった。どうやら専用のドライバーをインストールする必要があるようだ。Windowsは実に不便だ。

新しいヘッドフォンでゲームをしてみると、音楽がくっきり聞こえる気がした。

たまには散財するのもいいだろう。