@kyanny's blog

理想主義のない現実主義は無意味である。現実主義のない理想主義は無血液である - ロマン・ロラン フランス思想家

「人手が足りないので人手を増やした結果、分担できるようになって負担は減ったがサイロ化と官僚化が進み、なんとなくカバーされていた境界線上が隙間だらけになってさらに人手が必要になり、終わりがない」という苦い失敗経験。

どうしてこうなった、に二つ心当たりがあり、

  1. 「単一障害点は悪である」という価値観にこだわりすぎた。これは自分の落ち度。
  2. 戦線を拡大しすぎた。正確には、もともと(自分たちの戦力に比べて)広すぎる戦線を支えていた部隊のあとを引き継ぐときに不用意すぎた。自分の意思ではなかったので落ち度ではない(不可抗力だったので誰の落ち度でもないが)

どちらも「次は失敗しません」と言うのは難しい。

  • 「単一障害点は悪である」は真だ。これは譲れない。しかし冗長化の先にあるのは「空虚な健全さ」だった。なんたるディストピア。それでも「やり方が悪かっただけ」と思いたい、が、うまくやれる気はしない。
  • 戦線拡大はほとんどの場合、宿命みたいなものだろう。よほど例外的な立ち位置にいない限り、抗えないと思う。戦線拡大と兵站整備の速度比をコントロールせよという話、なのか?どちらも相当にアンコントローラブルじゃないのか。

結論、「そういうことを考えずに済むポジショニングを(個人として)する」を、要は逃げだけど、着地点とするくらいしかない。

DataGrip が生成する ER 図から不要なテーブルを消したくていろいろ試しているがなかなかうまくいかない。

Selecting Tables for DataGrip Diagram – IDEs Support (IntelliJ Platform) | JetBrains

同じ問題に言及している人。解決策は提示されていない。

試したこと

UML (XML) エクスポート→ ER 図を GUI 編集できるツールで読み込み(→ツール上で不要なテーブルを削除→画像としてエクスポート)

ER 図を GUI で編集できる(できそうな)ツールは多過ぎて全部試していられない。

かつ、無料で商用利用できるものは少なそうな雰囲気なので、せっかく使えるやつが見つかったとしても仕事で使うわけにはいかない(これだけのためにライセンス費用を払う気にはなれない。この手のツールはそれなりの値段もするし)。

オープンソースライセンスのやつなら安心だろうということで主に Eclipse 周辺でいくつか試したが、

  • Eclipse Modeling Tools
  • ↑ + Papyrus Plugin
  • ↑ + ERMaster
    • この辺は DataGrip がエクスポートした .uml を読んでも図を描いてくれない
  • Papyrus が単体の .app として配布されてるやつ
    • macOS のセキュリティの関係で起動すらできなかった
  • Umlet とかいうツール
    • これも .uml を図にしてくれない

この辺で「ひょっとして DataGrip がエクスポートする .uml ファイルって、 UML と言いつつ独自仕様の XML ファイルなんじゃ・・?」と勘ぐる。裏は取れてないが、そんな予感がする。

UML (XML) エクスポート→テキストエディタで編集→ DataGrip で再読み込み

適当に作ったテーブルだとうまくいったが dvdrental で試したところ、編集後の .uml ファイルを DataGrip に読ませると消したテーブル情報を復元して ER 図を描写しやがる。なぜ復元されてしまうのかカラクリがわからない。おそらく内部的にスキーマ定義と照合しているのだと思う。 XML ファイルを極限まで削ってもダメだったので。

うまくいくケースでは今のところこれが一番早くて楽だが、うまくいかない(復元される)ケースだと手も足も出ないのが悔しい。

必要なテーブルの分だけ DDL を別データベース・別スキーマにコピー(→コピー先で ER 図を出力)

最後の手段、流石にこれならいけるだろうと思っていたがうまくいかなかった。 PostgreSQL に慣れてないせいもあり、

  • 同一データベース内に別スキーマを作ってそこに DDL を流す
    • sequence とかはデータベースレベルで定義されるので重複が発生してエラー
  • 別データベース内に DDL を流す
    • ↑とは逆に sequence とかが未定義なのでエラー
  • 別データベース内にスキーマ丸ごと DDL を流す(→不要なテーブルを削除)
    • 消したい(ER 図に出したくない)テーブルへの外部キーがあると消せない
    • 残したいテーブルから消したいテーブルへの外部キーを全部外す必要がある

と、相当面倒くさいことがわかった。ちまちま外部キーを消したりすればいずれできるとは思うが、やってられんと思って心が折れた。とてもじゃないが他人に勧められない。


まだ試してないが有望かもしれないオプション

ER 図を GUI で操作できるツールから直接 DB に繋ぐ→そのツールでうまいことやる方法があることを祈って探す

探し当てる手間が多そうなので有望でもない。運が良ければあたりを早く弾ける。もしくは諦めて定評ある有料ツールを買う(astar とか)

Lightning - SDカードカメラリーダー 写真を削除できなくなった

写真を取り込んだ後に SD カード内の写真を削除する機能があるが、削除を選んでも途中で止まってしまうようになった。

カードを抜き差しして(すでに全て取り込み済みなので)取り込みはせずに「すべて削除」を実行しても、やはり削除が始まらない。

カメラ側では数枚だけ削除されていることが確認できる。カメラ側では削除可能なので、カードではなくリーダー側の問題だと思う。故障だろうか。

心当たりとしては、

  • 1500枚くらい写真が入った SD カードを読み込んだところ、なにかおかしなファイルがあるのか読み込み途中で落ちることが何度かあった(数回試したところ iOS ごと落ちた)
  • 読み込み途中で固まってしまったとき仕方なくリーダーを iPhone から抜いたことが何度かある。リーダーを挿したまま SD カードの方を抜いたこともある
  • 古い SD カードから写真を取り込んで削除し始めたところ、書き込み速度が遅すぎたので途中で SD カードを抜いてしまったかもしれない(記憶が定かでない)。これが原因なのが濃厚か
  • カメラ側で RAW+JPEG で撮ってるので RAW も転送している(これはサポートされてるので問題ないはずだが)

問題切り分けには同じものをもう一つ買って消せるか試す、というのがあるが、読み込み自体はできてるので買い直すのはもったいない。カメラ側で消すのもたいした手間でもない。ただ、原因不明は気になる。

micro SD カードを読みたい事情があるので、サードパーティーのカードリーダーを買うという手もある。が、ストレージ容量やバックグラウンドアップロードの関係で母艦は iPhone にしたいので端子は Lightning 縛り。であれば micro SD - SD アダプターだけ手に入れれば安上がりだし、リーダーが純正な安心感もある。が、そのリーダーが故障疑いだし、アダプターだけなんて売ってるのかわざわざ買うのか、とも思う。

Apple Lightning - SDカードカメラリーダー

Apple Lightning - SDカードカメラリーダー

  • 発売日: 2015/12/10
  • メディア: Wireless Phone Accessory