POSIX原理主義の本 第3弾 File/Dir Hacks ver. 1.0
POSIX原理主義の本 第3弾
File/Dir Hacks ver. 1.0
SQLtoUNIXマイグレーション編
追記版
https://richlab.org/coterie/FDH1.html
FileとDirですべて解決、シンプル・超堅牢なアプリ・システム開発術
本文サンプル(1)
「シェルスクリプトでシステム開発」と言われても,「ろくな開発ライブラリーが
揃ってないじゃないか!」と不満を口にし,始めから眼中にないという方,多くありませんか?
見くびってはいけません.シェルスクリプトでも十分に開発ができます.
でも多くのプログラミング言語が持っているようなライブラリー類に頼るのではありません.
少々のUNIXコマンドと,ファイル・ディレクトリーを,頭を使って使いこなし,やりたい処理を実装していくのです. SQLiteは複数のプロセスやスレッドからの同時アクセスに弱い。 というかファイルも同じだな
だからわざわざロックをかけないといけない そんなあなたにOracle Database 21c。 PostgreSQLでもいいよ。ってか最近あまり聞かないね
昔はOracleに対抗するのはPostgreSQLで
MySQLはエンタープライズ向けじゃなかったのに
今はMySQLとその派生ばっかり この人何がしたいの?
データベース用コマンドを作りましたって話? 何百万回目かの再発明…
勤勉なマであれば誰しもこういうの手習いにシコシコ組んでるはずで、とっくに使えないことに気付いてるよ
俺も十年前に通った道 この人もう40代・・・
こういうのは20代のうちに終わらせておくべき
再発明して俺スゲーってなろう小説かよ ハッカーにでも憧れてるんじゃない?
やってることはただのバッドノウハウでしかないのにね
1ディレクトリファイルは1000個以下に抑ましょうとか
もうKENT WEBの時代のテクニックやで なんつーか、エクセルマクロでシステム作って小さな会社で表彰されて、
変な自信をつけて、本まで作っちゃいましたみたいなレベルなんよな
プロの世界では相手にされてないっつーか っていうかGoogle相手に
シェルスクリプトでビッグデータとか
恥ずかしすぎるからやめたほうがいい この本ひどいね。シェルスクリプトあまり知らない俺でも
わかるようなツッコミどころや間違いのオンパレードだっだ
遅くなるから1ファイルの行数は1万行未満にしろ&ファイルの中身はソートしておけとか
言ってるけど、途中に新たな行を追加したい時に、どうやってこの二つを満たすのかその方法すら書いてない
(やり方を思いつかないわけじゃないが、面倒かつ遅い方法だからやろうと思わない)
この人、考えが足らなすぎだと思う おれは無料でも落とすとアフィリエイトかなんかで金入りそうで止めたわ
レビューおつ 例えばこんなことががある
> HACK 2.4 NULL 値は、\-" や\*" などの記号一文字で表す
> この決め事に満足できないというなら、あなたのデータ設計はたぶん適切ではない。
自分の理論で相手を納得させられないやつの典型例。
「俺が正しい。理解できないやつは馬鹿だ。」 明らかな矛盾の一例
> HACK 2.3 改行・タブ等のその他特殊文字はバックスラッシュ記号でエスケープする
>printf のフォーマット記述と同じルールにしてしまえば、printf で簡単に元に戻せる。
この人がこれを書いた直前に言ったこと
> 文字列中の半 空白は、\_" アンダースコア で表現する。
> 同様に、アンダースコアは、手前にバックスラッシュを付けて("\_") エスケープする。
これだとprintf で簡単に元に戻せないのだろう。
だからその後でエスケープ・アンエスケープのコード例としてawkを使って
gsub(/\\/ ,"\022",s); # 2)"\"を一旦ダミー文字2に退避
gsub(/_/ ,"\\_" ,s); # 3)"_" → "\_"
gsub(/ / ,"_" ,s); # 4)" " → "_"
gsub(/\t/ ,"\\t" ,s); # 5)タブ→ "\t"
なようなコードが20行ぐらい書かれてる。
printf で簡単に元に戻せるとは? 見やすさの配慮とやらをを語る
17B243051100020049004
17B244064060020004048
↑これは見にくい
17B243 51 100 20 49 4
17B244 64 60 20 4 48
↑少しマシになった
> 最初のものに比べるとだいぶ見やすくはなったが、得点の桁数によって各生徒の列が
> ガタガタになっている。欲を言えば、各教科の列の位置は揃っていてもらいたい。
17B243 51 100 20 49 4
17B244 64 60 20 4 48
↑空白を入れて位置揃えをすることが見やすさの追求である(ドンッ!)
見やすくしたいなら、手動で位置揃えなんかせずに
column -tつかって桁揃えしろよ・・・ > 第 5 章
> 排他処理(トランザクション処理)
あのさぁ、排他処理とトランザクション処理って
別もんだからさぁ またあった。自分の理論で相手を説得できない場合は相手をけなす癖
> この性質だけ見れば、UNIX ファイルシステム上での実装はSQL での実装よりも劣るように見えるが、
> ただその一点だけをもって全否定するようでは、使う側の資質に問題があると言わざるを得ない。 あ?何やってんだこの人?
よくあるエスケープ処理、 \ を \\ にする処理で
なんで \ を \022 に一旦変換してから \\ にするなんて
無意味なことしてんだ?