なまもの備忘録

気になったことをつらつらと書いていきます

(Ruby) Hashの要素を非破壊的に削除する

こういう欲求に出くわすたびに一々調べて、思い出すのに割合時間を喰っている気がするので。 "Ruby"、"Hash"、"要素"、"非破壊的"、"削除"、でこの方法が引っかかる様にしたかったのが大きいです。 結論 rejectを使う。 [41] pry(main)> hash = {a: 1, b: 2,…

tmuxでのコピー内容をMacのクリップボードに共有する[emacsキーバインド]

tmuxでコピーしたものをMacのクリップボードに流し込めると割合便利なことは多い。 ただ、いざこの方法を調べようとするとviキーバインドの場合の設定方法ばかり出てくるので、せっかくなので纏めて置くことにした。 必要なソフトをインストールする。 $ bre…

scipyによる3次スプライン補完

未知の関数に出会った時3次スプライン補完をしたいと思うのは人類の普遍的欲求です。 普遍的欲求はだいたいpythonのライブラリが満たしてくれるもので、今回のケースではscipyがその役割を担ってくれます。 scipyの3次スプライン補完についてはいくつか日本…

バランスドネットワーク理論

「バランスドネットワーク」という言葉は、Computational Neurosience界隈では割とよく聞く言葉じゃないのかな、と思うのですが、日本語で検索をかけても引っかかる文献があまりないので、勉強がてらにメモを残すことにしました。下記の記事が綺麗にまとまっ…

関数的メソッドをメソッド引数として渡す

関数的メソッドを引数にとる関数の定義がしたかったのだが、調べてもなかなか丁度良い記事がなかったのでメモ代わりに。 関数的メソッドとは明示的なレシーバを持たないメソッドのこと。素直にグローバルスコープにメソッドを定義するとこれになる。 def tes…

ブロック付きgsubの返り値の違いについて

基本的な話なのだがRubyのブロックには二通りの記法がある。 Objects.each { |object| object.method } と Objects.each do |object| object.method end だ。 僕は、手続き上両記法は等価なものだと思っていたのだが、どうもそうでは無いらしい、ということ…

Ubuntu 16.04 LTSに最新のrbenvを入れた

概要 手持ちのUbuntu 16.04 LTSにaptでrbenvを入れたのだが、バージョンが古くて2.4系のrubyがインストールできなかった。 どうしても2.4系が使いたい気持ちだったため、purgeして野良ビルドを試みた。 その時の記録。 参考 rbenvのGithubページ ruby-build…

group_collection_selectメソッドでのエラー[Ruby on Rails 5 アプリケーションプログラミング]

Table of Contents 1. grouped_collection_selectメソッドでのエラー 2. アソシエーション 3. 対処 4. 参考 grouped_collection_selectメソッドでのエラー 最近「Ruby on rails 5 アプリケーションプログラミング」の本を読みながらrailsの勉強をしているの…

テンプレートフレンド演算子の宣言方法

テンプレートクラスにフレンド演算子を定義しようとした時に嵌ったのでメモ。 新たに作ったテンプレートクラスに対する演算子を定義しようとする時、それらをフレンド演算子にすることはままあると思う。管理人もそのような場面に出くわし、素直に定義しよう…

仮引数が同じメンバ関数のオーバーロード

std::arrayの中身を読んでいたところ、以下のようなコードに出くわした。 template<typename _Tp, std::size_t _Nm> struct array { ... iterator begin() noexcept { return iterator(data()); } const_iterator begin() const noexcept { return const_iterator(data()); } } 仮引数と名前</typename>…

aggregate typeの初期化子リストによる初期化

C++11から統一初期化記法が登場した。それによって、配列やstd::arrayなどを初期化子リストで初期化することができるようになった。 具体的に言うと、下のようなことができるようになった。 #include<array> ... int arr[3]{1, 2, 3}; std::array<int, 3> arr2{1,2,3}; ... </int,></array>…

STL std::arrayの実装を読む(読めていない)

訳あって2次元コンテナの実装を目論んだのだがどのようにすればいいかよくわからない。 何か参考になるようなソースコードを探すことにしたのだが、そこで、STLのarrayは配列を単にラップしただけ、という話を思い出した。 これは参考にするにちょうど良いの…

EmacsからMastodonで遊ぶ

MastodonのEmacsクライアント github.com があったので導入してみた。まずレポジトリをクローンしてくる。 僕の場合、.emacs.dにelispディレクトリを作っているのでそこにクローンしてきた。 $ cd .emacs.d/elisp/ $ git clone https://github.com/jdenen/ma…

Ubuntu16.04でウインドウをディスプレイ間移動させるショートカットの設定

立ち上げたウィンドウが思っていたディスプレイと違う場所に配置されてしまった時、動かしたいけどいちいちマウスに手を伸ばすのは癪、ということはあると思う。 そういう時は下記の方法でショートカットを設定するとストレスがなくなる。ちなみに「Ubuntu …

大腸菌の脂質二重膜組成

大腸菌の脂質二重膜の成分は割と知りたくなる機会が多いのだが、わかりやすくまとめてくれている論文を今まで知らなかった。 今日ちょうど良い具合の論文を見つけたので貼っておく。Atefeh Shokri and Gen Larsson:Characterisation of theEscherichia colim…

typedefで配列型に名前をつける

C++

typedefは基本的に以下のように使う。 typedef int size;//以降size型をint型として使うことができるようになるただ、配列をtypedefしたい場合は表記法が直感に反したものになる 例えばint型の配列をsizesと定義したい時は以下のように表記する。 typedef in…

matplotlibでのオブジェクト指向的な描画

matplotlibには主にpyplotの関数を用いてオブジェクトを明示的に操作せず簡単に描画する方法と、オブジェクトを明示的に操作する方法がある。以下後者の方法について。matplotlibではグラフは一度FigureCanvasに描画され、それがバックエンドのmatplotlib.ba…

matplotlib version2.0.0をインストールした作業記録[Ubuntu 16.04]

Ubuntu 16.04に何も考えずaptでmatplotlibを入れたらversionが1.5.1だった。バージョンの確認は $ python >>> import matplotlib >>> matplotlib.__version__でできる。 最新版は2.0.0なのでこちらに更新したい。また、今まではpythonで使っていたが折角なの…

C++のconst指定子とポインタのややこしい話

C++

C++でよく変更する予定のない変数の型の前にconstを付けるが、あれは唯の目印のようなものではなく、const ホニャララという新しい型を宣言している感覚に近いっぽい。 このconstの仕様はC言語時代からの負の遺産で大分ややこしいものになっているため、ここ…

(C++)大きさ不明の2次元配列データを2次元vectorに読み込む方法

C++

3/22 17:10大きさの分からない2次元配列データを2次元vectorに格納する方法がいくら調べても見つからなかったので、分からないなりに調べつつコードを作成してみた。 下記のコードであれば、データが数値のcsvファイルならなんでも読み込めるはず。2017/10/2…

C++でのファイルの入出力

C++

2/25 17:28 C++でのファイルからの入力、ファイルへの出力の仕様がよく分からなくてもやもやする。検索をしてもどうもC仕様のやり方とC++仕様のやり方があるようで、この二つが混ざって出てくる上に痒いところに手が届かないサイトしかない。あまりにイライ…

OpenCVの環境構築を頑張ってみた(Mac)

TLでOpenCVの環境構築に苦戦している人がいたので、それに刺激されて僕の方も一度放棄したOpenCVの環境構築に再挑戦してみることにした。 とりあえず参考になりそうなサイトとして http://stackoverflow.com/questions/24985713/opencv-undefined-symbols-fo…

El Capitanで日本語の入力速度が我慢ならないほど落ちた場合の対処レポ

Mac

日記をつけている最中に変換の重さが気になり、直す作業をしながらログがてらにとっていた記録をそのままあげているので乱文、かつ序盤は問題を誤認識しています。 それと、今自分はrtdfファイルをテキストエディットで編集してに気をつけているのだが、これ…

時間差で発症した流行性結膜炎の治る時期はどうなるのか

1/16 14:01 少し前から右目に結膜炎を患っていたのだが、今日左目も発症した。大して辛くない割には体の調子は劇的に変わるのでちょっと経過観察をしてみようと思う。 ちなみに、先ほど調べて知ったのだが、結膜とはまぶたの裏側を眼球の白目の上を透明に覆…