タグ

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

  • Erlangについて思うところ

    職場の今までいた部署が潰れてしまったので、新しい部署で仕事のためにErlangを学んでいる。基礎的な文法については学び終わったので、現時点でのErlangについての雑感を書いておこうと思う。 Erlangは多数派のプログラミング言語とはだいぶ違う文法を持っている。終端記号がドットであることもそうだが、比較演算子もだいぶ違っている。多くの言語が!=を使うなか、Erlangは/=を使っている。Less than or equal toが=<であるのも多数派とは異なっている。ただし、Greater than or equal toは>=だ。一貫性がない。 終端文字はドットだが、関数の中には一つの式しか書くことができない。式はカンマで区切ることができるので、以下のようになる。 func() -> expr1 , % カンマ expr2 , % カンマ expr3 . % ドット このような文法はリ

  • 膝の痛みがなかなか治らない

    スノーボードによる膝の痛みがなかなか治らない。 30を超えてから新しい運動を始めると悩まされるのが靭帯と腱の損傷だ。筋肉痛というのは数日で回復するが、靭帯と腱の回復には数ヶ月かかる。これまでにボルダリング、ダンス、スノーボードと新しい運動に挑戦し続けているが、そのたびに靭帯と腱を損傷している。 残念ながら今の日語圏のインターネットにはまともな情報がないので、せめて自分の怪我の状況と回復時の自覚症状ぐらいは書き残しておこうと思う。 ボルダリングでは指の腱を損傷した。原因は単純で、足を滑らせて指だけで極端な荷重変化を支えてしまったのが原因だ。指の腱を損傷すると、指の曲げ伸ばしと手首、手首の下辺りに違和感を感じる。回復の自覚症状はかなり急峻だ。病院に行ったところ、抗炎症作用のある塗り薬を処方された。塗るとわずかに痛みが減る。最初の一ヶ月ぐらいはほとんど回復が見られず絶望的になるが、ある日を境に

  • 2020年の日本には2020年にふさわしい日本語の掲示板がない

    情報の流通において最も効率的なのはテキストだ。テキストを効率よく流通させる方法として、古典的なインターネットにはメール、チャット、掲示板があった。 このうち、メールは古典的なEメールがまだ生き残っている他、現代的なSNSがメールの機能を代替し始めてきた。日では今の所LINEが最も普及しているようだ。 チャットもそうだ。古典的なIRCはまだ生き残っている。しかし現代的なSNSや、Slackのようなサービスが代替し始めてきている。 では掲示板は? 現代の日には現代的な掲示板サービスが欠けている。 もちろん、掲示板機能を提供するWebサービスはたくさんある。しかし、日語圏でWebサービスを提供しているものは、いずれもかなり限定的な目的に特化したものだ。例えばユーザー同士で質問と回答をしあうサービス(Yahoo知恵袋など)とか、ソーシャルニュースアグリゲーション(はてなブックマーク)のような

  • Arch Linuxがパッケージ圧縮フォーマットをxzからzstdに変更

    Arch Linux - News: Now using Zstandard instead of xz for package compression Arch Linuxがパッケージの圧縮に使うフォーマットをxzからzstdに変更した。 Archでは圧縮レベル20を使うことにより、xzにくらべて0.8%サイズが増加するが、デコード速度が1300%向上するという。 CanonicalによるUbuntuは2018年にzstdに移行するテストをしていて、その結果による、圧縮レベル19を使うことにより6%のサイズ増加だったということだ。 zstdとはFacebookのYann Colletが2016年に発表した圧縮フォーマットとそのリファレンス実装のことだ。軽く調べてみたところ、メモリ使用量が多く並列実行に力を入れている設計と実装のようで、現代のコンピューター向けという感じがする。 hrrom

  • 未来のタクシーはネットカフェになる

    深夜にのんびりとRedditを眺めていたところ、以下のような1年前の記事が話題になっていた。 Mean streets: Self-driving cars will "cruise" to avoid paying to park 内容はこうだ。自動運転が実用化されたならば、車は駐車せずに自動運転で周辺を運転するようになる。なぜならば、燃料費と摩耗費よりも駐車料金のほうが高くつくからだ。 たしかに一理ある。都市部の駐車料金は高い。なぜなら土地が高いからだ。自動運転により人件費がなくなれば、後は「車の燃料費と摩耗費<駐車料金」であるならば車を運転し続けたほうが安い。 この考えを推し進めると、将来、タクシーはネットカフェになる。 ネットカフェは簡易的な個室とインターネット、マンガや映画を提供している。貧乏人はネットカフェを簡易宿として利用している。これらネットカフェの機能は、自動運転による無

  • Outer Worldsでコンパニオンが死んでいないのに死亡したと認識されるバグ

    https://twitter.com/_taylorswope/status/1205252714680045568 今日、#TheOuterWorldsのパッチ1.2をリリースした。これには「ゲームがコンパニオンを死んだとみなす」バグの修正も含まれている。このバグは俺のキャリアで最も長い時間を費やしたデバッグ作業となった。 このバグの概要は、一部のプレイヤーで、コンパニオンクエストが失敗とクエストログにでる。その理由はコンパニオンが死んだからだ。しかし字祭にはコンパニオンは死んでいないにもかかわらずだ。 これは解せないもので、というのも超新星モードでもなければ、コンパニオンは死なないからだ。 リリース前に1度か2度だけこの問題が発生したが、QAチームは再現できなかったので、その原因を特定することはできなかった。 原因の特定が困難だった理由は、どこで問題が発生しているかわからなかったこと

  • 違法な職務質問をされたので東京都を訴えた裁判の控訴審は棄却、理由は突然に

    職務質問裁判の控訴は棄却された。判決文は以下から読むことができる。 https://github.com/EzoeRyou/calling-110-is-suspicious 2年前の7月3日、職務質問を受けた。 警察官に職務質問をされた話し この職務質問は明らかに違法であると感じたので、弁護士に相談の上、東京都に対して国賠訴訟を起こした。警察官というのは各都道府県の下に位置する行政組織なので、警察を訴えるというのは、その警察の所属する都道府県を訴えるということになる。 一審判決は請求棄却。理由としては、「最初の10分間は不審事由がないが、刃物などの危険物を入れることができるリュックを背負っていたから声をかけ10分間その場にとどめて話をするのは違法ではない。このとき110番通報を要請したことは不審事由にあたりその後の1時間20分の職務質問は不審事由が存在するために合法である」というわけのわ

  • Googleがブログ記事を検閲

    私のBloggerのGMailアカウントに以下のようなメールが来ていた。 Hello, Google has been notified that content in your blog contains allegedly infringing content that may violate the rights of others and the laws of their country. The infringing content that has been made unavailable can be found at the end of this message. For more information about this removal and how it affects your blog, please visit https://support.goog

  • かぐらスキー場に行ってきた

    11月23日のオープン初日にかぐらスキー場に行こうと計画していたが、あいにくの雪不足でオープン延期となっていた。その後もオープンのアナウンスもないので、11月30日は諦めていた。それに、ちょうど自宅でボドゲ会を開く予定もあった。 ところが、29日になって急に30日はオープンすると告知されていることに気がついた。しかしライブカメラをみるとまだ雪は多くない。それに滑走できると告知されているのはかぐら第1ロマンスリフトの範囲の滑走距離600m、幅20mの部分だけだ。幅だけみると軽井沢よりマシだが、距離は軽井沢の400mよりはマシだが大差がない。それに、みつまたエリアに十分な雪がない場合、とても悲惨なことになる。 悲惨なことというのはこうだ。みつまたからロープウェイで雪のないみつまたに上がり、歩いてみつまた第1高速リフトに乗り、そこから徒歩、ブラシ、あるいは今年から第二2ロマンスリフトで下ることで

  • ダンスを学んで半年たった

    ダンスを学んで半年たった。始めた頃はリズム感もなくルーチンも覚えられず散々だったが、最近はリズム感も向上し、ルーチンも覚えられるようになり、ダンスレッスンをまともに受けられるようになった。 次に突き当たった壁は、手足が独立して同時に動かないという問題だ。これはどうも独立して動くようになるまでひたすら訓練するしかないようだ。今は少しづつ改善されてきている。 今抱えている問題は、体が十分に正確に動かないという問題だ。リズムには合わせているし、その場で振りも覚えられるのだが、速いビートに体がついていかない。これはどうもリズム感ではなく単純に体が動かないようなので、体を鍛えるしかないとは思うのだが、なかなかそうはいかない事情がある。靭帯だ。 筋肉痛は数日で回復する。しかし靭帯の回復には1-2ヶ月を要する。どうもダンスは足首にかなり負荷がかかるらしく、ダンスを初めて2ヶ月目に足首の靭帯を痛めてしまっ

  • 侮辱的な報酬額の大学講師の仕事依頼がやってきた。その額なんと月2.7万円

    あるミッション系の大学から講師委嘱の依頼がやってきた。その科目は私の個人的な知識と経験から興味深い話がたくさんできるであろう分野で、具体的には、著作権特許権と検閲、電子書籍とDRM、著作権特許権の保護する範囲を越えようとする不自由なソフトウェアライセンス、岡崎図書館事件、兵庫県警Alertループ事件神奈川県警CoinHive事件、あるいはの出版事情や再販制度といった内容を取り扱うことになる。 例年70-80人の履修者がいて、1学期間に1コマ100分が14回に加えて内容の理解の確認のための課題と評価だ。 単純計算で一ヶ月に7時間の授業と、準備時間を授業時間と同じぐらい確保し、課題作成と80人分の回答を評価する時間を考えると、最低でも月に20-30時間ぐらいは必要だ。質をあげようとすればもっと長時間の労働になるだろう。大学なので報酬は安くても引き受けるとして、期間を定めた個人請負なので時給

  • John Carmack、人工汎用知能に取り組むと宣言

    John Carmack - Starting this week, I’m moving to a... | Facebook 今日から、OculusのコンサルCTOの立場になる。 まだ開発に口を出すが、そんなに時間は割かない。 残りの時間をどのように費やすべきか。振り返って見るに、私はゲーム、ロケット、VRの分野において成果を上げてきた。ただ、今までは曖昧ではあるが解決策の道筋は見えていた。その当時は非現実的であったりまだ動くと証明されていなかったとしてもだ。そこでたまに考えていたのだが、解決の道筋すら見えない問題に取り組むのはどうだろうと。私が歳を取りすぎる前に挑戦すべき課題であるように思われる。 私は人工汎用知能(Artificial general intelligence, AGI)に取り組むことにした。 AGIは可能で、とても有益で、かつ私は何らかの成果を上げられるのではない

  • スキー場のシーズン券の購入を考えている

    今シーズンは11月から5月まで全力でスノーボードをする予定だ。週に2回はスノーボードに行きたい。そこでシーズン券を買うことを思いついた。同じスキー場に何度も行くのであればシーズン券を買ったほうが得だろう。前シーズンは旅行会社のツアーで新幹線とリフト券を割安で手に入れていたが、旅行会社でツアーに申し込むのも面倒だったし、前シーズンでは東京-越後湯沢を日帰り往復するだけの割安ツアーもあったので、損はしない。 ではどこのシーズン券を買うべきか。都内から日帰りできるスキー場というと、軽井沢か越後湯沢だ。ただ、軽井沢プリンスホテルスキー場は土日祝日に混むのと、スキー場の作りがそんなに面白くはないので、越後湯沢駅から短時間で行けるスキー場になるだろう。 去年はガーラ湯沢によく行っていた。駅直結で行きやすいスキー場ではあるが、ある程度滑れるようになった今、他のもっと面白いスキー場でもいいだろう。特に今年

  • Using enum

    C++20にはusing enumが入る。この機能、すっかり見逃していた。 どのような機能かというと、scoped enumを名前空間のusing directiveのように使うことができる。 using enumがないと以下のように書かなければならないが enum struct color { red, green, blue } ; void f( color c ) { switch( c ) { case color::red : break ; case color::green : break ; case color::blue : break ; } } using enumを使えば以下のように書ける。 enum struct color { red, green, blue } ; void f( color c ) { using enum color ; switch

  • スキー/スノーボードの怪我統計の考察

    そろそろシーズンが近づいてきたのでそわそわしている。去年は3月末で滑るのを辞めてしまったのでもったいないことをしたと反省している。4月も滑ればよかった。とはいえ、右膝に痛みもあったし辞めておくのは正解だったのだろう。 滑りたいのにまだ滑ることができない憂を紛らわすために、全国スキー安全対策協議会のスキー場障害報告書を読んでいる。 全国スキー安全対策協議会 統計は1998年から始まっている。調査に参加したスキー場には増減があるので、単純に年ごとに比較することはできないが、時代の変遷を感じる面白さがある。 1998年は、カービングスキーに主流が移ってきた時代で、スノーボードが流行り始めた時代でもある。カービングスキーによってアスリートではなくてもカービングターンができるようになり、スノーボードがもたらしたパークをスキー場が設置するようになってきた。 1998-1999シーズンではスノーボード

  • また初心者にプログラミングを教える機会があった

    プログラミングでわからないところがあるので教えてほしいと以下のようなことを聞かれた。 こういうJavaScriptの関数がある。 // valuesは配列 // elementはvaluesの要素型の値 // 配列valuesに値elementと等しい要素があるならばそのインデックスを返す。 // それ以外の場合、-1を返す function find_index( values, element ) { for ( let i = 0 ; i !== values.length ; ++i ) { if ( values[i] === element ) return i ; } return -1 ; } 質問は、「なぜreturn -1にelseはいらないのか」というものであった。 似たような問題に、昔遭遇した気がするが、別人だ。 まずここにelseを書くべき文法はJavaScrip

  • MSVCのSTLがGitHubで公開

    https://github.com/microsoft/STL MSVCのSTLがGitHubで公開された。ライセンスはLLVM例外条項付きのApache 2.0。更に興味深いことに、今後のSTLの開発はGitHubに移行する予定だそうだ。マイクロソフトも変わったものだ。 C++のテンプレートの都合上、STLのソースコードはMSVCに付属していて、読むことは誰にでもできた。理論的には、MSのEULAに縛られない読み方もできたはずだ。例えばEULAに同意せずにMSVCを入手し、インストラーを実行せずに手動でアーカイブを展開すればソースコードを読むことはできたはずだ。もちろん、わざわざそんな手間をかけてまで不自由ソフトウェアのソースコードを読みたいとは思わないし、民事上のリスクも背負いたくない。 そのため、私がC++教育するときは、MSVCの存在は単に無視していた。libstdc++とli

  • 江添亮のC++入門が出版された

    江添亮のC++入門が出版された。もうすでに一部書店では店頭に並べているところもあるようだ。 9/18新刊『江添亮のC++入門』KADOKAWA(978-4-04-893071-0)江添亮 著◆「C++」棚にて展開中!次の規格として標準化が進められているC++20を意識しながら、現行の規格に準拠したC++プログラムの書き方を徹底的に解説。C++による格的なプログラム開発に必須の知識を網羅した格的な入門書。 pic.twitter.com/fZEu6Sm1xa — 書泉ブックタワーコンピュータ書売り場 (@shosen_bt_pc) September 18, 2019 このはタイトル通り入門書だ。C++のソースコードのコンパイル方法から初めて、GNU Makeによるビルドシステムを少し触り、基的な文法を解説し、一部のライブラリの仕組みまで解説する。 このの執筆にあたっては、知識のブ

  • CADDi C++勉強会4回目

    C++勉強会 #3 - connpass 今回は式と文の違いといった、C++の用語の解説をする。 今回の勉強会の動機は、CADDi社員がうっかり未評価式の文脈でラムダ式を使ってしまったところ、つまり using type = decltype([]{}) ; のようなコードを-std=c++17でコンパイルしたところ、「未評価の文脈でラムダ式は使えない」というそのままのコンパイルエラーメッセージが出力されたが、はて、未評価とは?という疑問でこのエラーメッセージの意味するところを理解するのに相当苦労した経験をしたことが元となっている。なぜC++コンパイラーがこのようなエラーメッセージを出すかというと、未評価という言葉は規格上の用語なのだ。ちなみに、Clangのほうがエラーメッセージは親切で、「未評価オペランドの中のラムダ式」としている。これは規格そのままの表現だ。GCCの表現は規格どおりの表

  • CaddiのC++勉強会3回目

    Caddiによる3回目のC++勉強会が8月30日に開催される。 C++勉強会 #3 - connpass 今回はメタプログラミング。Boost.Hanaを解説する。 最近、私自身はメタプログラミングをしていない。というのも、C++のメタプログラミングは来計算に使うはずではなかった言語機能を無理やり計算に使っているので、いろいろと無理がある。メタプログラミング機能はコア言語に入るべきだ。C++20ではrequires式がはいる。後は静的リフレクションがはいればBoost.Hanaなど用済みになる。静的リフレクションはC++23かC++26には入るはずなので、あと5年ぐらい待てばいいと思うのだが、そこを待てないのが悩みどころだ。D&Eにも書いてある通り、今使える技術が重要なのであって、来年使える技術には価値がない。 勉強会の内容としては、Boost.Hanaのユーザーマニュアルがよくかけてい

    lugecy
    lugecy 2019/09/01