投稿

世界一流エンジニアの思考法

  世界一流エンジニアの思考法を改めて読む. この本に書かれている内容は決して新しいものではない. 仮説思考,イシューからはじめよ,ポモドーロ・テクニック... でも,エンジニアが独自の経験から学んだ価値のある情報が詰まっている 知っていることやわかっているけど実践できていない. 気がついたらこの本にあるバッドパターンを爆走している. ということがあるので,この本は定期的に読み返す. この本に繰り返し登場するメンタルモデルという概念がいまいちわからん. 結構,イマイチわかっていないという点も多いので読み返そうと思う. 特に第一章でも下記の章は理解がいまいち 理解に時間をかける 技術をコントロールできている感覚 小さなドキュメントをコードの前に書く もちろん書いてあることはわかるけどなんて言えばいいんだろ. 生活習慣の章があるのがすごい好み. 生産性の話をするなら生活習慣の話をしないとだめだと思う. 仕事は生活の一部なので.

入門UNIXシェルプログラミング2

 第7章と第8章はコマンドの使い方なのでスキップ 第9章はシェル関数の章. せっかくなのでコードを書きながら読み進める なるほどな~と思いつつ書いて動かしてを繰り返していたけど, 微妙に挙動が違うことに気づいた. 写し間違えでもなさそう.. ぱっとわからなかったのでそのまま続ける. どのタイミングか忘れたけど挙動が違う原因に気づいた. 終了ステータスをパイプで渡して確認していたせい. 終了ステータスを確認したかったら,セミコロンで確認しないとだめだ. こうじゃなくて ``` hoge file | echo $? ``` こう ``` hoge file; echo $? ``` あとは,パイプだと同じ実行なのに結果が異なることがあった. 別プロセスで動くのでその関係? そういえば,この話どっかで読んだ気が..

入門UNIXシェルプログラミング

入門UNIXシェルプログラミングを読む 前半は知っている内容なのでさらっと飛ばす  制御構文 シェルでの;は単純にコマンドを1行に並べるだけ if文で必ず使わなきゃいけないものだと思っていた(1行に並べるには使わなきゃいけないのだが) ``` if [ -f file ] then  echo "hogehoge" fi ``` ``` if [ -f file ] ; then echo "hogehoge" fi ``` これ気付いたけど,セミコロンないとtestコマンドの引数として解釈されるからか.. if [ -f file ] then test(-f, file, ], then) なので if [ -f file ]; then もだめ test(-f, file, ];, then) と解釈されるので シェル変数 基本は ``` $ VARIABLE=value ``` で代入できるが以下のように変数を代入(利用?)することもできる ``` ${VARIABLE:=value} ${VARIABLE:-value} ${VARIABLE:?value} ${VARIABLE:+value} ``` 実は:なしの書き方もあり,パターンとして8通りある. ページ的には代入の項目になるけど変数の利用という見方もできるな. うーん.使うのか?こういう書き方がある以上便利なのだろうけど. コマンドに渡される引数の上限は9. 正確には位置パラメタにセットされる値. それ以上の引数を処理するにはshiftコマンドを使うひつようがある. shiftコマンド?

夏の終わり

少し時間ができたのでブログを書く まだまだ,夏と思っていたけどもう10月. 結局,鱧を食べるという目標達成できなかったな. 美味しいお店調べたけど見つからなかった. その代わりでもないけど,今年の夏はガスパチョを何回か作った. うーん.難しい.トマトが微妙なのかな.夏野菜の青臭さをうまく表現できない. 先日,入門UNIXシェルプログラミングという本を 読んだ. 買った.https://amzn.to/3Y79uh9 この本を読んで気づいたけどシェル芸の本で言っている内容はなんらキテレツな事ではなくUNIX的にはごくごく当たり前のことのようだ. 最近,スーパーエンジニアへの道を久しぶりに開いた. https://amzn.to/3ZPfQDc 以前はまったく刺さらなかったのが少しは刺さるようになった. この本はスルメ本というか座標というか定点観測みたいな本. それが今回理解できた.これは大きな収穫. 最後の方にあったけどやっぱカーネギーにいきつくのか? 1度読んだけどすぐやめちゃったよ. もう10月かぁ. 全然成長できてない.というか,1日が短すぎる. 言い訳ばかりで全然だめだめだな. 時間があるはずなのにない感じ.

小話

久しぶりの投稿.前回から一ヶ月経ってる... 毎週投稿するつもりではいたのに. 今回はシェルスクリプト?ワンライナー?小話 フォルダ内のファイルに同じ処理をかけたいということがあった. たとえば,フォルダ内のファイルに含まれる#を@に置換したいみたいな. 基本的に1ファイルでの処理しかやってこなかったので複数ファイルで少し複雑な処理だと手も足もでない. 大人しく制御構文を使って処理する. `` for i in ${ls}; do sed 's/#/@/' $i > ${i%.txt}_replaced.txt ; done `` 以外と制御構文でも簡単にかける. 驚いたのが,簡単に変数を置換できること. ワンライナーの本にはあまり制御構文を使わないほうがいいって書いてあったので ほぼ使わない(使えない)ままきたけどある程度はできたほうがいいな. 次にソートの話. たとえば, a,1 a,12 a,4 b,3 こんな感じのcsvファイルがあった時に,1列目を辞書ソート,2列目を数値ソートしたい その場合は,sortのkオプションで各列毎にソート方法を指定すればよい. だけど,何度やってもうまくソートできなかった. 大した話じゃないのでオチを先に話すとsortはデフォルトだと区切り文字がスペース. 今までは複数列をソートするパターンがないため気づかなかった. あと,シェルスクリプトの基礎が身についていない状態でワンライナー書いているので 歯がゆいときが多々ある. ある程度の分量の処理になるけどどうやるんだ...というパターン. 新しいシェルプログラミングの教科書再販されないかなぁ...

シス管系女子

イメージ
 # シス管系女子 なんの影響かわからないけど小さい時からCLI(黒い画面)に憧れがあった. 正確にはCLIを叩いている人.そのためインフラエンジニアになろうと思っていた. まぁ,インフラきつそうなのでやめたけど.. でも,CLIを叩く人への憧れは変わらずあって. それと,もんやりした気持ちがずっとあった. 1日中パソコンをカタカタしてるけど,全然パソコンを使いこなせていないなぁと. こういうことできたらすぐ終わるのにと思っても調べるの面倒だから力技ですませるということが多かった. そんな中で出会ったのがシェル芸の本. どこで知ったのか覚えていないけど.この本を読んで少し憧れに近づけた感があった. https://amzn.to/3XemfpH 少し近づけたけどやっぱパソコン全然わかっていない気持ちは変わらず. ある日,本屋で偶然見つけたのがシス管系女子(正確にはまんがでわかるLinuxだけど) シス管系女子とはIT雑誌で連載されていたゆるふわコマンドライン学習まんがのこと https://system-admin-girl.com/ パラッと立ち読みしてすぐに全巻買ったと思う. https://amzn.to/3T2ltd7 システム部に配属された女の子が少しずつLinuxの知識を身に着けていく内容. いつも,先輩に泣きついて教えてもらうって感じ. こういうエンジニアになりたかったなぁと思った. 大野桜子さん(先輩)がかな~り好み. 実際にいたら惚れてしまう...患者がナースに惚れる的な? 意外と内容はシェルスクリプトプログラミングと被っていて, 勝手に副読本としてる. パソコンに興味ない人は面白くないと思うけど,CLIに興味がある人は買って損は しないかと. "パソコンがわかる"という言葉には色々なレイヤーがある. 例えば,HW的な意味,OSやプログラミング,エクセルなどなど. 自分が思っていたパソコンがわかるに一番近いのがこの本. まだまだ思い描いたCLIを叩く人には遠いけど道が見えた気がする.

へっぽこのweb技術入門 part1

イメージ
 # プロになるためのWeb技術入門 途中の章からまったく内容が頭に入らなくなったので実際に動かしてみる. 本書には書いていなかった(たぶん)けど技術評論社のページに見るとサンプルコードが配布している. とりあえず,サンプルをwebサーバーで動かしてみる. ローカルでがちゃがちゃやるのは面倒なので,Azureを利用する. まず,VMを立ち上げる.ssh接続. 毎回鍵のパーミッション関係でつまづく. wslだとCドライブにあるファイルの権限って変更できないんだっけ. 仕方ないのでwsl管理下に鍵を移して権限を変更して接続する. 次に,Apachのインストール サーバーのインストールが完了したのでアクセスしてみる もちろん穴開けしてから. きちんと表示される 同様にしてphpもインストール. 準備ができたのでペントミノを動かしてみる. ローカルにサンプルコードがあるのでscpで送る. scp自体は知っていた(シス管系女子,shell芸)が使ったことがなかった, わかっていなかったけどscpってsshプロトコルを利用しているるらしい. つまり,デフォルトでは22番ポートを使う.sshでvmに入っているので別のポート開けて できないかな~(sshの複数接続)と調べたけど時間かかりそうなのでsshを抜けて普通にscp叩いた. 今気づいたけど,wgetでよかったじゃん... 再度,sshでvmに繋いでファイルを解凍してapachの管理下?に持っていく. 第4章の内容に沿ったサンプルがあるので適当に動かす. クッキーにログイン情報をもたせるパターン クッキーにセッションIDをもたせるパターン セッション情報をサーバーに持たせるということはそれがサーバーのどこかにあるはず. 今回の環境だと,/var/lib/php/sessionsに保存されていた. こういうときどういうコマンド打てばいいんだろ... ファイル名がそのままセッションIDになっていて非常に簡単なものということがわかった. 以上が,4章の内容. 次に5,6章の内容である,appサーバーとwebサーバーの2層構成を実現する. appサーバーを立てる. apacheとtomcatの連携だけどここがうまくいかなかった. apacheの設定ファイルを書き換えて所定のパスにきたリクエストはtomcatに飛ばす 部分までは...