std::regex_search の第1引数に 一時的な string を入れるとよくない

match_results オブジェクトを引数に取る形式の場合、そのオブジェクトは引数で指定した検索対象文字列へのイテレータを保持する。 このため、検索対象文字列は本関数を呼び出した後も match_results オブジェクトを使用し終わるまで破棄されないようにする…

gdb ハッシュテーブル系 STL の要素を取り出す方法

std::unordered_map などの中身を取り出したい場合、gdb だと .at() や operator[] では print できなかった。 では、特定 key の要素を取り出すにはどうすれば良いか gdb には STL をいい感じに print してくれる拡張があり、ソースコードは python なので…

gdb においてスマートポインタは直接生ポインタに cast できる

shared_ptr 等のスマートポインタは フィールド _M_ptr に生ポインタを保管しているが、これはメモリ上では先頭にあたるので、 _M_ptr を取らなくても、先頭のアドレスから直接生ポインタに cast できる。 gdb でスマートポインタの値を表示したいときに便利…

Rust でどのようなライブラリが開発されているか(人気か)

Rust で trending がリポジトリを見てみると、unixの既存コマンドの高速実装的な物が多かった。なるほど。 いままではこの枠は Go だった気がするけど、こういうOSに近いものは Rust になっていくのかもしれない。 GitHub - sharkdp/fd: A simple, fast and …

swf ファイルの中身を書き換えて実行する方法

FFDec というすごいツール JPEXS Free Flash Decompiler - Opensource SWF decompiler and editor このソフトを使うと、swfファイルの読み込み、中身の書き換えまで全部できちゃう。それでいて完全無料(オープンソース)。良い時代になったものですね!! …

MySQL InnoDB でテーブル全体をロックしないようにする

mysqlで UPDATE をするときは、トランザクションを作るのが基本だが、 トランザクションを作るということは ロックがかかる UPDATE する行が1行であれば、その行だけにロックをかける。それだけなら特に問題ないが、テーブル全体にロックがかかる場合がある…

Javascript (Web) でファイルのドラッグ&ドロップのメモ

ドラッグ&ドロップ dragover イベントで preventDefault しないと、ブラウザがそのファイルを開いてしまいハンドリングできない dragOver ではなく、 dragover である。スペルミスとかに対してなんのコンパイラ警告とかも出してくれないので、やっぱりJSは…

ナンスとソルトの違い

コンピューターセキュリティ分野において、ナンス (nonce) と ソルト (salt) というものが登場する。 この2つはどちらも「セキュリティを高めるためのランダムな値」と説明されることが多く、同じものかと思ってしまうが目的が違う。 手法 目的 ナンス クラ…

Windows プロセスのどの関数がCPUを多く使っているか調べる (Windows Performance Analyzer)

explorer.exe のCPU使用率がずっと25%ぐらいになって困った。しかし「とりあえずクリーンインストール」という考え方だと再発したときに対処できないので、原因が知りたい Linuxでは perf コマンドというものがあり、どのような関数が多くCPUを使っているの…

なぜ Webしかできないプログラマは下に見られるのか

Web系のプログラマっていうと、よく2ちゃんねるなどのサイトで小馬鹿にされている感触がある。特にWebの中でも「PHPプログラマはレベルが低い」などの話題でよくネットが炎上しているのを見る。 それはなぜか Web系のサービスは乱立していて、怪しげなものが…

個人的 git ホスティングサービスの比較

git

リポジトリにアイコン画像があるとないとでは個人的に差が大きくて、アイコンがあるとぱっと見たときに「おっ!」ってなるので、ぜひgithubにも導入していただきたい。

Python で暗号化まわりをするときは pycrypto よりも pycryptodome をつかう

Pythonで暗号化まわりを触りたいときは、pycryptoを使うのが定番だったが、これからはpycryptodomeの方が良さそう 理由 pycryptodomeは2017年になってからも継続的にメンテナンスされている Windowsでも pip install がすぐ通る ←個人的にうれしい!! 参考…

「クソコード」と感じるのは具体的にどんなコードを見たときか

www.megamouth.info この記事を読んでちょっと思ったこと。 インデントがタブとスペースどちらかに統一されていないとか、フレームワークの誤用があるとか、またはフレームワーク自体が独自のものであったりすれば、じんわりと汗が滲み、異様に長大な関数や…

CUI の長所・短所

何かアプリを作る際に、CUI が良いか、GUIが良いか、と考えることがよくある。 GUI があるのが後発だが、今でも CUI のアプリは作られているし、一長一短あるみたい。 個人的に思う CUI の長所短所を考えてみる。 CUI のよいところ 開発が楽 開発者目線にな…

Electron の QuickStart を速攻で Typescript にする

Electronが公式でTypescriptの型定義ファイルを同梱してくれたことにより、Typescript + Electron での開発スタートが簡単になった。 それを記念して、公式のQuickStartをサッとTypescript仕様に変えてしまいたい。 公式にあるQuickStartの手順は次の通り。 …