がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

どこにリソースを突っ込むのか? って選択は大事だよねぇ

元ネタは、これ。 https://twitter.com/rootport/status/781680038844309504 ピクサーでは必要以上に丁寧な仕事を、「完璧な陰影をつけた1セント硬貨」と呼ぶらしい。非の打ち所のない1セント硬貨の3Dモデルを作ることに熱中しても、映画全体の品質が高まる…

パスワード文字数の超おおざっぱな最小長の計算

ふと軽く気になったので、おおざっぱに。 前提として「パスワード 定期的 変更」というキーワードがありまして。 個人的にパスワードの最適変更間隔とその定量的効果の評価 https://docs.google.com/document/d/1RWDerFjLc24nr_lDhF8s0vEOJ8DPKhEnEAYG9qr_oB…

歴史………

この世界は、数万年という長い歴史を持っている。 それに間違いはない。 なぜなら、記録にも文献にも、或いは痕跡にも遺跡にも、若しくは記憶にも語り部にも残っている「事実」だから、だ。とある異端の、狂った学者は言う。 「"数万年"の痕跡がおかしい。こ…

PMの必要条件に「技術力」は含まれるのか?

インスパイア元は、直近としてはこの2つのツイート。https://twitter.com/toukatsujin/status/1063208694123393024 いまだに「システム開発のプロマネは技術者でないと務まらない」と主張する人がいて愕然とした。ナンセンスな話で技術者ならやりやすいだけ…

「目で盗め」もきついけど「懇切丁寧」が良いってわけでもなくてねぇ………

直接の発端は、こちらのツイート。https://twitter.com/tatamin_ttmn/status/1062271330895056896 そういうことやるからあらゆる職人業界の技術継承が廃れていくんだろ… はっつけてある画像は、確か「将太の寿司」だったかな(うろ覚え)。 「この店では誰も技…

「手作業で30分掛かるものを3秒で終わらせるために3時間掛ける」のは正解なのか?

いやまぁほぼそのまんまな内容で、元ネタも、以前にツイッターで拝見した https://twitter.com/wakamesoba98/status/1020496602132180992 手作業で30分掛かるものを3秒で終わらせるために3時間掛けるのがエンジニア、という持論を大切にしていきたい https:/…

ポイントカードと会員ランク(比喩)

西原理恵子先生に曰く ・女の人の感情ってポイントカード ・日常の細かいことをずっとカードに判子で押して ・ポイントがたまると「キャッシュバックキャンペーン」 ってなお話をされてますが。 別に男でも同じようなものなんじゃないかなぁ、と思う事は、少…

準委任の請け方

後でまた整理をしたいのですが、ちょいと喫緊で説明をしたほうがよい状況が出てきてしまったので、半ば私信に近いですが、一旦記述します。 「半ば私信」なので、身もふたもない記述も多いので、その辺はお目こぼしいただければ幸い。さて。 請負は「発注側…

「燃えるプロジェクト」への一考

時々見かける「もったいないミスマッチ」なのですが。 前提としては「駄目ぽいプロジェクト」。そこに参画している、あるいは「した直後」のメンバーのうち、まず「5~6手以上先」を見る人間が「このままだとやばい」事に、割と早いタイミングで気づきます。…

「0.2+0.2+0.2+0.2+0.2」は1.0であって0.2ではないんだよ?

極めてまれに、レアケースとして、「無いこともない」くらいの確率で*1感じる事なのですが。ある人物Aさんがいます。 Aさんのある日のタスクとして ・Bさんから0.2を渡されました ・Cさんから0.2を渡されました ・Dさんから0.2を渡されました ・Eさんから0.2…

nullを含むデータのORDER BY

DB

いや普通に考えて「やらねぇしやらねぇだろ」ってお話なのですが……まぁ「諸般の事情」ってやつがございまして。 簡単にテストしてみました。 mysql> select * from test order by i; +------+ | i | +------+ | NULL | | 1 | | 2 | | 3 | | 4 | | 5 | +-----…

パンの残りでパンプディング

概ね備忘録。大体うまくいったので。 卵液 ・卵2個 ・牛乳130ml ・ラカンカ大さじ2弱 作り方 ・卵液混ぜて深い目のお皿に入れる ・パン(2枚分くらい)を適当に、キッチンばさみで切りながら入れる ・レンジ600wで2分(1分40秒くらいで良いかも)、チン ・軽く混…

特定のディレクトリ以下のファイルの文字コードをUTF-8に全部変換したい時

いやなんかググって動かしたら割とあちこちコケたので、面倒なんで一回ちゃんと調べて、その辺を備忘録。 ごく大まかには ・findで対象を引っかけて ・xargsつかって ・nkfに引き渡す 感じ。 find ./ -type f -name *.php | xargs -pL1 nkf -w -Lu --overwri…

database領域の作成とユーザの作成

最近少し、作り方が変わったのか変えたのか。 こんなやり方をしてることが多いです、ってのがあったので備忘録。 create database データベース名; CREATE USER 'ユーザ名'@'サーバ名' IDENTIFIED BY 'パスワード'; GRANT ALL ON データベース名.* TO 'univc…

Slim docsの解析; Cook book

これは……重量級かも。 URIが個々に違うので、頑張れるところまで。 Trailing / in route patterns https://www.slimframework.com/docs/v3/cookbook/route-patterns.html 「スリムは、末尾にスラッシュが付いたURLパターンを、スラッシュなしのものとは異な…

SQL識別子のエスケープ処理とか、どうすっぺか??

PHP

発端としては。 Slimを色々いじってるなかで「まぁちょっとしたツールくらい欲しいよねぇ」になり、その過程の一つとして「ほんのりしたModelクラス欲しいなぁ」がありまして。 でまぁ $r = モデルクラス::insert(データのハッシュ配列);とかって書式でいけ…

情報の扱い方

元ネタは仏教なのですが。 Kesamuttisutta(ケーサムッティ・スッタ)とかKālāma sutta(カーラーマ・スッタ)とかKalama sutta(カラマ・スッタ)とか呼称されているようです。 Aṅguttara Nikāya, Tikanipāta(増支部三集篇)に収録されているもの、だそうです。 …

Slim docsの解析; System Error Handler

https://www.slimframework.com/docs/v3/handlers/error.html 地味に大事なあたり。 Default error handler 「デフォルトのエラーハンドラは非常に基本的です。 Responseステータスコードを500に設定し、Responseコンテンツタイプをtext / htmlに設定し、Res…

Slim docsの解析; 寄り道してCookie

Slim docsには記載がないっぽいのですが。 まぁ普段「sessionとCookieはよく使うよねぇ」というあたりで、その辺を少し検証。 なおセッションはどうも、公式のSkeletonですら ・自力でsession_start()発行 ・sessionっぽい字面のクラスがない ので、「おとな…

Slim docsの解析; Middleware

https://www.slimframework.com/docs/v3/concepts/middleware.html ネタ的には「最重要クラス」に重要なネタなので、腰を据えて。 とりあえず、こちらの画像が一番わかりやすいんだろうなぁ、って思う。 https://www.slimframework.com/docs/v3/images/middl…

Slim docsの解析; Routing

https://www.slimframework.com/docs/v3/objects/router.html まごうことなき大物。 腰据えていきませう。……下手したら二分割かも。 How to create routes。 うん、ここはまぁOK。 おいちゃん的には $app = new \Slim\App(); $app->get('/books/{id}', クラ…

Slim docsの解析; The Response

https://www.slimframework.com/docs/v3/objects/response.html ここも結構な大物だろう、と予想。 How to get the Response object いやまぁHow to言われても「呼ばれる関数(メソッド)の第二引数でゲトれる」くらいだしなぁ。 get('/foo', function (Ser…

Slim docsの解析; The Request

https://www.slimframework.com/docs/v3/objects/request.html 多分、ここは大物w とりあえずルーティング設定。 関数とか「設定できる」んだろうけどやる気はないんで、無視w The Request Method ………まぁ一通り。GET,PUT,POST,DELETEくらいしか使う気ない…

Slim docsの解析; The Application

https://www.slimframework.com/docs/ の中から「The Application」をざっくりと見て、興味深いところをメモ。 https://www.slimframework.com/docs/v3/objects/application.html $config = [ 'settings' => [ 'displayErrorDetails' => true, 'logger' => […

Slim skeletonの解析

さて続きましては slim/slim-skeleton の解析。 https://github.com/slimphp/Slim-Skeleton なので、なんとなし「多分公式が推奨してるんじゃないかと思われる方向性」が確認できるんじゃないかなぁ、と期待。 ……で調べたら、別の人が作ったスケルトンもある…

解析その4

核心……、の、はず!!w 「Routeの__invoke」からのstartでございます。 vendor/slim/slim/Slim/Route.php public function __invoke(ServerRequestInterface $request, ResponseInterface $response) { $this->callable = $this->resolveCallable($this->ca…

解析その3

そろそろ核心………かなぁ?w 前回出てきた、本命くさい vendor/slim/slim/Slim/App.php の__invoke()メソッド。 // Get the route info $routeInfo = $request->getAttribute('routeInfo');なんとない想像はできるんだけど、躊躇なくvar_dumpして確認w NULL …

解析その2

さて。本丸のrun()メソッド。 多分、ここからが長丁場な予感(笑 vendor/slim/slim/Slim/App.php public function run($silent = false) { $response = $this->container->get('response'); try { ob_start(); $response = $this->process($this->container->…

解析その1

一瞬「解析シリーズ」とかやってみようかしらん? とか、思ってみたりみなかったり。 おいといて。 さて、ゆるゆると解析開始。 まぁ大概のWebアプリケーション、最近は「ここから始まる」1点があるので、そこを確認。 よっぽどヒネてない限り、大概は「Doc…

フレームワークで「使われてる関数&クラス&メソッド」簡単に調査してみた

すんげぇ斜めに調査。 一旦の対象は、cakePHP、Laravel、CodeIgniter、Slimの4種。 ちと前に「その当時の最新版」をインストールした環境が残ってたので、一旦はそれつかって簡単に確認。 「全フレームワークで使われている関数&クラス」と「各フレームワ…