カンテラの光の下で

dNaga392's memorandom

「ソ連製の世界地図 “レッド・アトラス”を読む」に行きました

`昨日2019/04/16に、下北沢の本屋B&Bにてトークイベントが開催されました。 bookandbeer.com イベントでは、ユーリィ・イズムィコの名でも有名な軍事アナリストの小泉悠さんと、「大砲とスタンプ」を連載している漫画家の速水螺旋人さんが登壇されました。 …

「レッド・アトラス」を読んで

地図は人間が生み出した最も美しい世界の描き方のひとつである。 そう思うほど地図好きな私がこの本を手にするのに時間はかかりませんでした。 レッド・アトラス 恐るべきソ連の世界地図作者: ジョン・デイビス,アレクサンダー・J・ケント,ナショナルジオグ…

【GitHub】issue template url ジェネレータを作った【GitLab】

Vue.jp を使って、GitHubとGitLabに対応する issue template url ジェネレータを作りました。 dnaga392.github.io dnaga392.gitlab.io GitLabを仕事で使っていて、issueのテンプレートが欲かったので作ってみました。 GitLabでのテンプレートには他の手法も…

【Qt】QSignalMapperは まいそうされます。

画像のような複数のUIの操作に応じて一つのUIを更新する処理は QSignalMapper が担ってきました。 しかし Qt5 では QSignalMapper は非推奨とされ、 ラムダ式 への置き換えが推奨されます。 そこで、実際にどのように置き換えていくかをここに記録します。 …

【Rust】Rustチュートリアルをはじめました

いまイケてる言語と噂の[要出典]Rustを触ってみました。 www.rust-lang.org まだチュートリアル第2節の「数当てゲームをプログラムする」までしか進んでないですが、 よさが感じられたのでここで記録しておきます(チュートリアルは付録込みで21節までありま…

ドヤ会のススメ( ・´ー・`)

ちょっと誇張タイトルです。 先日会社でドヤ勉強会(以降、「ドヤ会」と呼びます)を開催しました。 それまで不定期ながら会社で勉強会が開催されていたのですが、 しばらく開催されなくなっていたので、じゃあ自分がやるかと企画したのがドヤ会です。 ドヤ…

【C++】ifstreamで一行戻す

C++

ifstrean には「一行戻すため」の関数は存在しない。しかし、tellg() と seekg() を用いることで実現できる。 std::ifstream myReadFile("route.txt"); .... auto oldpos = myReadFile.tellg(); // stores the position getline(myReadFile, line); myReadFi…

【地理】ポケモン新作の「ガラル地方」をスコットランド地方とみた

要点 ポケモンの新作の発表があった。舞台は「ガラル地方」。 「ガラル地方」のモチーフをブリテン島と考える人たちがいた。 「ガラル地方」のモチーフをスコットランド地方と考え、類似性が挙げてみた。 「ガラル地方」とは ガラル地方は、昨日のニンテンド…

【C++11】スコープ列挙型(Scoped enumerations)

TL;DR enum classで定義した列挙型は、従来のenumに加えて、「整数型への暗黙の型変換を行わない」「列挙型のスコープを持つ」という機能を持つ。 enum class Color { Red, Green, Blue }; // 単にRedと指定するのではなく、どの列挙型に属するのかを指定す…

【Git】 コマンドを間違えたとき git reflog が便利だった

Git

導入 コミットをしたものの止めたくなったとき、 git reset HEAD^ をすることがあるでしょう。 あの日の私もそんな思いで git reset HEAD^ を叩いていました。 ところが思ったより一回多く git reset HEAD^ を叩いてしまいました。 これでは本来含めたかった…

【Qt】Qt 5.11.2 を MinGW 64 bit 向けにビルドした

Qt は Qt Online Installer により複数の環境に対応したライブラリがインストールできます。しかし、Windows 向け g++ が利用できる MinGW の 64bit 環境に対応するものはなく、該当の環境での開発を望む場合、開発者自身の手でQtのソースからビルドする必要…

【Hyper-V】VMのディスク領域を増やす

Hyper-VのVMのディスク領域を拡張しました。 要点 「ディスクの編集」で仮想ハードディスクを拡張します。 VMで「ボリュームの拡張」をします。 回復パーティションがある場合、ツール「AOMEI Partition Assistant」を使います。 内容 VMでライブラリをビル…

【Hyper-V】「一般のアクセスが拒否されました」

概要 Hyper-Vの仮想ハードディスク(Virtual hard disks)を移動して戻したら、「一般のアクセスが拒否されました」と出るようになった。 そもそもなんでそんな事したのかと言うと、チェックポイントがハードディスクを圧迫して削除すらできなっていたためで…

バッチファイルを実行ファイルにする

概要 DOSのバッチファイル(*.bat)を実行ファイル(*.exe)にする 「Bat To Exe Converter」というツールが便利 アイコンも指定できる 背景 普段はPythonを書いているのですが、Windows開発しているとバッチファイルを書くことがあります。 MS-DOSがあれば動く…

Excelのアドレス文字をPythonで組み立てた

概要 xlwings のAPIが遅いので、文字列処理でアドレス文字を求めました 動機 皆さんご存知の通り、Excelにはセルのアドレスを表すA1 とか C3 ってありますよね。 これってVBAだと、RangeオブジェクトのAddressプロパティで取得できて、 xlwingsでもxlwings.R…

Pythonのデフォルト引数で注意すること

概要 引数のデフォルト値は 1 度だけしか評価されない つまり、デフォルト引数で指定した値は、関数実行ごとには初期化されない (list や dict のような)変更可能なオブジェクトを指定したい場合は、代わりに None を指定するとよい 現象 関数のデフォルト…

【markdown-it】markdownをパースするHTMLを作ってみた

要点 Fetch API と markdown-it で markdown をパースする HTML を作った githubにも上げた(https://github.com/dNaga392/md-index) 動機 これまで、 markdown ファイルは markdown viewer (Firefox Add-on)を使って表示していたのだが、 他人に見せると…

【matplotlib】散布図を3D描画する

要点 matplotlib.axes.Axes.scatterを使います matplotlib.backends.backend_qt5agg.FigureCanvasQTAgg に描画すると、クリック&ドラッグで角度(仰角・方位角)を変えられます 使用例 import matplotlib.pyplot as plt import seaborn as sns from mpl_too…

【matplotlib】散布図を描画する

要点 matplotlib.axes.Axes.scatterを使います。 使用例 import matplotlib.pyplot as plt import seaborn as sns df = sns.load_dataset('iris') x = df['sepal_length'] y = df['sepal_width'] fig = plt.figure() ax = fig.add_subplot(1, 1, 1) ax.scatt…

実を言うとTab Groupsはもうだめです。

今朝 Firefox を開くと、Tab Groups からの last notify のページが開きました。 記事によると、これまでアドオンとして提供されていたTab Groupsの開発が中止されるとのことでした。 タブグループ機能がFirefox本体から廃止され、その代わりになったのがこ…

【Git】 fatal: not under version control, source=A.txt, destination=B.txt

Git

Gitで表題のようなエラーが出た。 ファイル名をチェックすると、ファイル名の一部が大文字小文字で異なっていた。 これは git を介さずにファイル名を変更したためとのこと[1]。 解決法には以下の2つがある。 元のファイル名に戻す。 ファイル名変更をgitに…

【Qt】ウィジェットのスクリーンショット

メインウィンドウをスクリーンショットする メインウィンドウのスクリーンショットを撮る場合、 QPixmap::grabWidget を利用する。 // メインウィンドウのスクリーンショット pixmap = QPixmap::grabWidget( this ); // クリップボードにビットマップをコピ…

【Qt】Sleep()の実装例

QtによるSleepメソッド実装方法を記します(ほぼ参考資料の転載です)。 Sleep は指定時間の間、処理の実行を中断するメソッドです。 実装により次の2種類が存在しています。 秒指定 ミリ秒指定 前者には C++標準ライブラリ のSleepメソッドが、 後者には W…

Slack への Hubot 導入はじめ

導入でつまずいたので、記事で残します。 環境とインストールしておくツール windows 10 git (version 2.6.4.windows.1) node.js (v5.2.0) git は必須ではないですが、git bashから構築及び実行をしているため挙げました。 git と node.js については公式配…

【QtTest】 テストプロジェクトでテストデータにコンテナクラス(QList、QMap、...)を使う

Qtはテストプロジェクト向けパッケージでテストデータを受け渡す方法として、 次の方法が提供されている。 QTest::addColumn() メソッド QFETCH マクロ 標準組み込み型およびQtライブラリ提供クラスの多くは、 addColumn メソッドで登録したテストデータを、…

【Qt】View-QStandardItemModel 導入リンク集

ブックマークが溜まってきたので、内容をまとめる前に一度リンクを記事にしました。 まとまりはないので、たどり着いてしまった人は自分の目で確認してくだし。。 http://doc.qt.io/qt-4.8/modelview.html http://www.thedazzlersinc.com/source/2012/06/04/…

QtDesigner の custom widget plugin を作る

参考 %%QTDIR%%/examples/designer/worldtimeclockplugin 構成 ファイル 例(worldtimeclockplugin) ウィジェットクラスファイル worldtimeclock.h worldtimeclock.cpp プラグインクラスファイル worldtimeclockplugin.h worldtimeclockplugin.cpp プロジェク…

【QLibrary】DLL内の関数を呼び出す

今回は関数の定義されたDLLの作成と、DLLの関数の呼び出しについて。 QtライブラリのDLL読み込みクラスは、QLibraryとQPluginLoaderがありますが、 今回は QLibrary を使用して読み込みます。 やりたいことはだいたい以下の感じ。 // アプリケーションと同じ…

【QScrolArea】中身のサイズに応じてスクロールバーを表示する

QScrollArea はスクロールバーを表示するウィジェットです。 スクロールバーは内包するウィジェットのサイズを受けて設定されます。 他のツールでも同様ですが、意味のあるスクロールバーを表示するにはコツがいります。 もし QScrollArea を見て、「これで…

ドイツ語のあれそれ

しばしば調べるドイツ語のTipsです。 接尾辞 -dorf 村 Düsseldorf [地名]デュッセルドルフ(DEU) デュッセル村。付近を流れるデュッセル川に由来 Himmelsdorf [地名]ヒンメルスドルフ(WoT) 天国の村