mysqlで UPDATE をするときは、トランザクションを作るのが基本だが、 トランザクションを作るということは ロックがかかる UPDATE する行が1行であれば、その行だけにロックをかける。それだけなら特に問題ないが、テーブル全体にロックがかかる場合がある…
ドラッグ&ドロップ dragover イベントで preventDefault しないと、ブラウザがそのファイルを開いてしまいハンドリングできない dragOver ではなく、 dragover である。スペルミスとかに対してなんのコンパイラ警告とかも出してくれないので、やっぱりJSは…
コンピューターセキュリティ分野において、ナンス (nonce) と ソルト (salt) というものが登場する。 この2つはどちらも「セキュリティを高めるためのランダムな値」と説明されることが多く、同じものかと思ってしまうが目的が違う。 手法 目的 ナンス クラ…
explorer.exe のCPU使用率がずっと25%ぐらいになって困った。しかし「とりあえずクリーンインストール」という考え方だと再発したときに対処できないので、原因が知りたい Linuxでは perf コマンドというものがあり、どのような関数が多くCPUを使っているの…
Web系のプログラマっていうと、よく2ちゃんねるなどのサイトで小馬鹿にされている感触がある。特にWebの中でも「PHPプログラマはレベルが低い」などの話題でよくネットが炎上しているのを見る。 それはなぜか Web系のサービスは乱立していて、怪しげなものが…
リポジトリにアイコン画像があるとないとでは個人的に差が大きくて、アイコンがあるとぱっと見たときに「おっ!」ってなるので、ぜひgithubにも導入していただきたい。
Pythonで暗号化まわりを触りたいときは、pycryptoを使うのが定番だったが、これからはpycryptodomeの方が良さそう 理由 pycryptodomeは2017年になってからも継続的にメンテナンスされている Windowsでも pip install がすぐ通る ←個人的にうれしい!! 参考…
www.megamouth.info この記事を読んでちょっと思ったこと。 インデントがタブとスペースどちらかに統一されていないとか、フレームワークの誤用があるとか、またはフレームワーク自体が独自のものであったりすれば、じんわりと汗が滲み、異様に長大な関数や…
何かアプリを作る際に、CUI が良いか、GUIが良いか、と考えることがよくある。 GUI があるのが後発だが、今でも CUI のアプリは作られているし、一長一短あるみたい。 個人的に思う CUI の長所短所を考えてみる。 CUI のよいところ 開発が楽 開発者目線にな…
Electronが公式でTypescriptの型定義ファイルを同梱してくれたことにより、Typescript + Electron での開発スタートが簡単になった。 それを記念して、公式のQuickStartをサッとTypescript仕様に変えてしまいたい。 公式にあるQuickStartの手順は次の通り。 …
DBのテーブル設計で、正規化するときれいだけど、アプリから使うとき難しくなる問題。 とても有名で今更な話ではあるけど、明文化したことはなかったので書き残しておく。 正規化していると、複数のテーブルから取る必要がある たとえば、ユーザー一覧を表示…
すごいプログラマーの人は、ある技術についてとても詳しいというよりは、 「xxがうまくいかないのはなぜ?」 「どれくらい速くなったか?」 といった問題に対して、わかりやすい根拠をさっと出せる人だと思った。 初心者がやりがちなこと 「問題なく動いてそ…
技術記事などで「我々は以下のような実装をして実運用できた」というのはよくある。 それを見て 「あ〜これ有名な手法じゃん、簡単にできるわ〜〜」 とか思いがちなのだが、実際にコードを書いてみると思いの外上手くいかないもの。 「ぐだぐだ言ってないで…
gamebiz.jp 要約 データ管理の大部分がクライアント側。これによって、通信状況が悪くても待たされることが少ない。 クライアント内部にDB (LevelDB) がある シーン遷移時に内部DBの差分を request queue にためていく 基本バックグラウンドで非同期通信 ガ…
UDPといえば、ステートレス(内部状態を持たない)単純なプロトコルなので、 「今どんな状態か」は見れないはず。 しかし、ある日サーバーで netstat -anu を実行すると UDP かつ状態が ESTABLISHED のものが見つかった。 これは一体どういうこと? 答え 以…