一日一吉

遊びをせんとや生れけむ、戯れせんとや生まれけん

std::begin, std::endで固定長配列のイテレータを取得する

C++学習メモ。 C++11で導入されたstd::begin、std::endを利用すると、固定長配列に対するイテレータを取得できる。 static void std_begin_t() { { int ar[] = { 1, 9, 4 }; for (auto it = std::begin(ar), end = std::end(ar); it != end; it++) { std::co…

templateクラスを書き慣れるための練習帳

C++のテンプレートクラスに慣れるために練習として書いてみた。僕が慣れるために書いた、完全なるチラシの裏の記録である。 template <typename T> class Point { T _x; T _y; public: Point(T x, T y) : _x(x), _y(y) {} T x() { return _x; } T y() { return _y; } std</typename>…

GPL v2のライセンス文書が作られたのは1991年

プログラマーが仕事でプログラミングするときに、OSSのライブラリをよく使う。 そのときに気をつけるのがライセンスで、GPLとかLGPLとかAGPLとか、「GPL」がつくものは気をつけよう、というような認識でいる。 で、そもそも、そのGPLってライセンス文書の中…

センスは知識からはじまるらしいのでつべこべ言わずにとりあえず知識を蓄積してみる

水野学さんの『センスは知識からはじまる』を読んだ。 センスは知識からはじまる 作者: 水野学 出版社/メーカー: 朝日新聞出版 発売日: 2014/04/18 メディア: 単行本 この商品を含むブログ (9件) を見る 水野さんの名前は知らなかったのだけれど、彼の仕事に…

【C++】同じ生ポインタを二度shared_ptrに渡してはいけない

はじめに C++のshared_ptrは、クラスのインスタンスをC#やJavaのクラスのインスタンスと同じように扱えるので便利である。 その一方で、C++では生のポインタを取り扱うこともある。 shared_ptrと生のポインタの混在環境で僕がしでかしたミスで、原因追求にし…

【C++】ファイルから丸ごと読んだ文字列でコンパイルエラー

動作確認バージョン 現象発生、エラー内容などはVisual Studio 2015。 現象 C++ ファイルを全て読み込む - 備忘録 このサイトを参考に、ファイルの内容をすべて読みこんでstd::stringに格納しようとした。 すると、以下のようなコードでコンパイルエラーが起…

ruby学習日記19:p地獄

irbでpメソッドを使ってみて気が付いた。pメソッドは出力した文字列を返す。 irb(main):055:0> p 'a' "a" => "a" なので、pが返した結果をさらにpに渡して...ということが可能である。 irb(main):056:0> p p 'a' "a" "a" => "a" irb(main):057:0> p p p 'a' …

Ruby学習日記18:慣れるためにRUBY_VERSIONと戯れる

慣れるには繰り返したり、いろいろ試したり、いじったり遊んだりするのが一番。 というわけで、Rubyのバージョン番号確認方法。 RUBY_VERSIONという定数に格納されている。 RUBY_VERSION #=> "2.5.3" 文字列で返される。どんな値で返されるかは、実行環境に…

【bash】使い捨ての変数、関数を活用する

短い名前の変数を利用してタイプ数をへらす シェル上であれこれと作業しなければならないときーーーたとえば、gitでいろんなリビジョンを行き来したり、マージしたりを繰り返すとき。 そんなときに、少しでもタイプ数を減らして仕事を楽にしたい。 例えば、v…

落書き、音楽、言語万能主義への疑問

最近、音楽を聞くときの耳の解像度が上がった気がする。 正確に言うと、かつての解像度を取り戻しつつある、だろうか。 僕は高校大学時代、パソコンを使って作曲をしていた。いわゆるDTMというやつだ。 その頃は、自分が好きな音楽を聞いては「この高揚感を…

無駄なことでも、やりたければやり続けよう:『無駄なことを続けるために』を読んで

藤原麻里菜さんの『無駄なことを続けるために - ほどほどに暮らせる稼ぎ方』を読んだ。 無駄なことを続けるために - ほどほどに暮らせる稼ぎ方 - (ヨシモトブックス) 作者: 藤原麻里菜 出版社/メーカー: ワニブックス 発売日: 2018/11/16 メディア: 単行本(…

積読撲滅奮闘記4:読んでない本を無責任に紹介してみる

積読を解消するには、読む時間を確保しなければならない。 読む時間を確保するには、「この本が読みたい」と意欲を持つことが大切だ。 そうすれば、自ずと、仕事の昼休みや、通勤時間、休日のちょっと空いた時間などにも、その本を手に取るであろう。 という…

【C++】vectorの各要素の和を求めたり積を求めたり

std::vectorの各要素の和や積を求めるのに、for文を使わない方法を知ったのでメモ。 std::accumulateを使えば良い。 cpprefjp.github.io 利用例は以下。 #include <numeric> int main() { std::vector<int> vals = { 1, 2, 3, 4, 5 }; // 各要素の和 int sum = std::accumu</int></numeric>…

コンピュータの性能は上がれど人の性能は変わらず:"Quotes from IEEE Software History"を読んで

IEEE Software Vol. 35 No. 05 の記事 "Quotes from IEEE Software History" を読んだのでメモ。 この記事は無料公開されているようで、以下から読める。 www.computer.org この記事は、1980年代の、つまり今から30年以上前のIEEE Softwareの記事と、ここ10…

IEEE Computer Societyが予測した2019年10大技術トレンド

すご~くじっくり読んでいるうちに、もう2019年1月も終わりそうだけど。 IEEE Computer Societyが2019年の技術トレンドを予測した記事を発表しているので、読んでみた。 www.computer.org 消化のために、挙げられている10項目を自分なりにまとめておく。 1. …

Ruby学習日記17:特異メソッド

特異メソッドという用語を理解し、覚えたいがためのメモ書き。 通常、メソッドはクラスに属する。しかし、特定のオブジェクトにだけ属するメソッドを定義できる。 以下のコード例では、Stringクラスのオブジェクトmsg1にwithBangという特異メソッドを定義し…

積読撲滅奮闘記3:ノーベル賞を受賞した動物行動学者のエッセイ

ノーベル賞を受賞した動物行動学者のエッセイが、こんな書き出しなのである。 旧約聖書の述べるところにしたがえば、ソロモン王はけものや鳥や魚や地を這うものどもと語ったという。そんなことは私にだってできる。 あるいはまた、こんな書き出しのものもあ…

記事 "Five Predictions for the Coming Decades of Software" を読む

以下の記事を読んでメモ。 M. Kersten, "Five Predictions for the Coming Decades of Software," in IEEE Software, vol. 35, no. 5, pp. 7-9, 2018. doi:10.1109/MS.2018.3571232 www.computer.org これはIEEE Softwareという学会誌の記事である。この学会…

Ruby学習日記16:階乗を求める関数を実装してみる

Rubyの小さな練習ってことで、階乗を求める関数。 実装 def fuctorial(n) 1.upto(n).inject(1) do |k, i| k * i end end 検証 irb(main):001:0> def fuctorial(n) irb(main):002:1> 1.upto(n).inject(1) do |k, i| k * i end irb(main):003:1> end => :fucto…

COMPSACという学会の存在を知る

IEEEの学会誌を読んでいて知ったことを、どんなに小さくてもいいから書く。 "IEEE Software" という学会誌の Vol. 35 No. 6 (2018年11-12月号) を読んでいた。 https://www.computer.org/csdl/mags/so/2018/06/index.html (こうした学会誌の名称を書くとき…

Ruby学習日記15:オープンクラス

オライリー社の『メタプログラミングRuby』を読んでいる。 メタプログラミングRuby 第2版作者: Paolo Perrotta,角征典出版社/メーカー: オライリージャパン発売日: 2015/10/10メディア: 大型本この商品を含むブログ (3件) を見る 2章に入った。オープンクラ…

【C++】現スレッドを任意の時間だけ止める(sleepさせる)

小さくても技術記事を書こう。調べて試したことを書く。 C++で現スレッドの動きを数ミリ秒、ないし数秒止めたい場合はこれ。 #include <thread> int main() { std::cout << "start." << std::endl; std::this_thread::sleep_for(std::chrono::milliseconds(500)); st</thread>…

Nuget.exeを単体で使ってNugetパッケージを復元

.NETのパッケージマネージャNuGet。 Visual StudioでC#の開発をしている僕にとってはおなじみだが、単体でも利用可能だと初めて知った。 https://www.nuget.org/downloads Visual Studio 2015でコマンドラインからプロジェクトをビルドする(すなわち、MSBui…

Ruby学習日記14:静的メタプログラミングと動的メタプログラミング

オライリー社の『メタプログラミングRuby』を読んでいる。 メタプログラミングRuby 第2版作者: Paolo Perrotta,角征典出版社/メーカー: オライリージャパン発売日: 2015/10/10メディア: 大型本この商品を含むブログ (3件) を見る 1章の後半、p.8のコラムの中…

Ruby学習日記13:単体でActive Record使えると知る

オライリー社の『メタプログラミングRuby』を読んでいる。 メタプログラミングRuby 第2版作者: Paolo Perrotta,角征典出版社/メーカー: オライリージャパン発売日: 2015/10/10メディア: 大型本この商品を含むブログ (3件) を見る 1章、メタプログラミングの…

【2019年】IEEE Computer Societyのメンバシップをまた更新した

去年の同じ頃に、同じような内容の記事を書いた。 baikichiz.hatenablog.com 今年も数百ドルの会費を払い、学会員の資格を更新した。 理由も去年と同じような感じ。去年、「更新した」というブログをポストした直後は、ちょこちょこ学会誌を眺めていたけれど…

ゲーム機は1ヶ月に1台まで

昔、高橋名人は「ゲームは1日1時間」と言ったものだ。 それは、子供がゲームをやりすぎることで学業が疎かにならないように、また、ゲーム以外にも面白いことは世の中にいっぱいあるので、そちらに目を向けるように、という彼からのメッセージであった。 さ…

積読撲滅奮闘記2:積読を趣味ととらえる

成毛眞さんの『大人はもっと遊びなさい』という本を1年ぶりくらいに再読した。 大人はもっと遊びなさい (PHPビジネス新書) 作者: 成毛眞 出版社/メーカー: PHP研究所 発売日: 2016/07/16 メディア: 新書 この商品を含むブログを見る この本の主旨は、遊べば…

用語の整理メモ:RISC、MIPS、SPARC

この記事を読んでいて気になったことをメモ。 www.publickey1.jp この記事から、この度、MIPSというコンピュータアーキテクチャの命令セットがオープンソースで公開されることとなったようだ。「MIPSアーキテクチャのプロセッサは、1990年代に盛り上がりを見…

Ruby学習日記12:イントロスペクションを試す

オライリー社の『メタプログラミングRuby』を読んでいる。 メタプログラミングRuby 第2版作者: Paolo Perrotta,角征典出版社/メーカー: オライリージャパン発売日: 2015/10/10メディア: 大型本この商品を含むブログ (3件) を見る クラスのメソッドやメンバ変…