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の手順は次の通り。 …

テーブルを正規化するほど、アプリから使うのは難しくなる

DBのテーブル設計で、正規化するときれいだけど、アプリから使うとき難しくなる問題。 とても有名で今更な話ではあるけど、明文化したことはなかったので書き残しておく。 正規化していると、複数のテーブルから取る必要がある たとえば、ユーザー一覧を表示…

すごいプログラマーは、根拠をだすのが早い

すごいプログラマーの人は、ある技術についてとても詳しいというよりは、 「xxがうまくいかないのはなぜ?」 「どれくらい速くなったか?」 といった問題に対して、わかりやすい根拠をさっと出せる人だと思った。 初心者がやりがちなこと 「問題なく動いてそ…

言うは易く行うは難し プログラミングでも

技術記事などで「我々は以下のような実装をして実運用できた」というのはよくある。 それを見て 「あ〜これ有名な手法じゃん、簡単にできるわ〜〜」 とか思いがちなのだが、実際にコードを書いてみると思いの外上手くいかないもの。 「ぐだぐだ言ってないで…

アナザーエデンの非同期オートセーブの記事の感想

gamebiz.jp 要約 データ管理の大部分がクライアント側。これによって、通信状況が悪くても待たされることが少ない。 クライアント内部にDB (LevelDB) がある シーン遷移時に内部DBの差分を request queue にためていく 基本バックグラウンドで非同期通信 ガ…

UDPの状態は判定可能?

UDPといえば、ステートレス(内部状態を持たない)単純なプロトコルなので、 「今どんな状態か」は見れないはず。 しかし、ある日サーバーで netstat -anu を実行すると UDP かつ状態が ESTABLISHED のものが見つかった。 これは一体どういうこと? 答え 以…