Tech
Pythonは雰囲気で使う言語なのかもしれない。
ReactでUIライブラリに依存しないクリーンなアーキテクチャにするのを試してみようと思って、MaterialUI(以下、MUI)のコンポーネントをラップした自作コンポーネントの作成を試してみた。
Pythonの文法キャッチアップノート。クラス編。
テストの規模が大きくなってきたタイミングで、jest でメモリリークしてしまいなかなか回避できなかった。 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 以下のissueを見てる感じ、根が深く…
TypeScript ではEnum型が標準で用意されているが、使いづらい。 多くの場合、Enumで列挙したいような値は、as const で代用するのがいい。 例えば、自社で扱う果物を列挙する場合、 const FRUITS = { APPLE: 'apple', ORANGE: 'orange', BANANA: 'banana', }…
CONSTANT_CASE -> lowerCamcelCase コンスタントケースからロウアーキャメルケースに変換します。 function toLowerCamelCase(v: string) { const upperCamel = v.toLowerCase().split('_').map((str) => str.charAt(0).toUpperCase() + str.slice(1).toLowe…
トップラインとはいわゆる「売上」のことで、ボトムラインとは「営業利益」のこと。 トップラインを上げるためにとるべき開発手法と、ボトムラインを上げるためにとるべき開発手法は違うだろうとふと思った。 トップライン開発は、とにかく100万円払ってでも…
Prismaとリポジトリパターンのポエム。※結論や答えのようなものはこの記事には含まれていません。
どうやらUnionTypeはimplementsできないらしい。
CLIツールを作るときに引数の順番どうしようかなと迷ったので、その記録。
TL;DR An email address must not exceed 254 characters. メールアドレスの長さは254文字を超えてはならない 背景 RFC5321 メールの送信のプロトコルについてのRFC。これが定義のようなもの。 ローカル部(@より前)の最大長は64文字 ドメイン部(@より後)…
イントロ Rustの文法勉強のためにatCoderのA問題解いてみたのでその記録です。 ほんとうに最初の文法を少しかじったくらいなので、間違っていることはあると思います。ご容赦ください。 実装 Submission #28516468 - AtCoder Beginner Contest 187 use std::…
イントロ Rustの文法勉強のためにatCoderのA問題解いてみたのでその記録です。 ほんとうに最初の文法を少しかじったくらいなので、間違っていることはあると思います。ご容赦ください。 実装 https://atcoder.jp/contests/abc189/submissions/28515807 use s…
NestJSのLoggerをいい感じにしていきたいが、ドキュメント見ただけでは最終的にどう動作するのかよくわからない。 いくつか試してみた。 参考ドキュメント Logger | NestJS - A progressive Node.js framework 準備 とりあえず色付きのログが出るようにロガ…
TypeScriptを書き始めて一ヶ月くらい経ったのだけど、まだまだ型を上手く使えている感じがしない。TSを書き始める前はPHPメインで書いていて、その時もある程度タイプヒンティングは使っていた。しかし、PHPは名称的型付けでTSは構造的型付けだし、PHPは実行…
永続化処理の返り値が、値orFalseになるのはいい実装といえるか? 単純なUserモデルの値を永続化する処理を考える。 このメソッドで、どういった値を返すのが適切なのかいまいち答えが出ない。 たまに、成功したら保存したオブジェクト、失敗したらfalseが返…
PHP書いていて、整数キャストした時にちゃんとバグなく動くのか気になったのでちょっと調べてみた。 調べた時のコードは以下。 GitHub - AnDeriens/type_researcher at v.0.1 int value result NULL int(0) 0 int(0) 1 int(1) '' int(0) '0' int(0) '1' int(…
たくさん開発用のディレクトリを作ってると、たまにローカルのディレクトリとGithubで管理しているリポジトリ名が異なってしまっていたりして、どこで開発していたかわからなくなったりします。 そういうときに、Githubのリポジトリ名で検索できたらいいです…
用語 この記事が一番整理されている? 自然キー・ナチュラルキー 人工キー・アーティフィシャルキー 代替キー・サロゲートキー 代理キー・オルタネートキー 複合キー blog.zelkova.cc AUTO_INCREMENTなサロゲートキーで困ること 主キーに外部キーを貼ること…
Pythonでリストをつくるときは乗算をつかって作ることができる。 x = ['.'] * 3 print(x) x[1] = '*' print(x) code しかし、二次元にすると、ちょっとおかしなことになる。 (1,1)だけ変えたいのに、(0,1), (2,1)も変わってしまう。 def present(l): for i i…
抽象クラスで定義したタイプヒントは、その子クラスで厳密に守られなければならない。 通常のクラスのタイプヒントだと、タイプヒントで指定したクラスの子クラスまで許容されるが、抽象クラスでは許容されない。
MacでMySQL立ち上げるときに結構ハマる。Failed to find valid data directory. Failed to find valid data directory.
AtCoder ARC107でつまづいたので、復習note。 桁が大きい計算で除算を使うと浮動小数の誤差が現れる。 なので、桁が大きいときは、切り捨て除算を使う。 # 桁が大きい計算で除算をすると誤差が出る n = 987654321 # 987654321 print(n) # 487730529388812672…
シェルスクリプト難しい…。 結論 pattern=[ABC] if [[ "$i" == $pattern ]]; then echo "$i mathces pattern $pattern." else echo "$i does not mathces pattern $pattern." fi その他 #! /bin/bash for i in A B C ABC "[A]" do if [ "$i" = 'A' ]; then e…
Monoar Rahman RonyによるPixabayからの画像 概要 2038年問題というのがあるらしい。 多くのケースで、timestampが内部的には32ビットの符合付き整数で、2038年1月19日3時14分7秒(UTC)にその上限を迎える。 ja.wikipedia.org MySQLも例外ではなくtimestamp型…
iTermを起動する際に、tmuxとzshも起動するようにしているのだが、突然zshの起動に失敗し、普段出している情報とかが表示されなくなった。 zshが動いているかを見ると、 $ echo $SHELL /bin/zsh となるので、一応起動しているよう。 次に、zshを再度起動して…
親クラスに定義したメソッドの中から、同じクラス内のメソッドを呼んだとき、 子クラスでオーバーライドしたメソッドが呼ばれるのか、親クラスのメソッドが呼ばれるのか? メソッドをprotectedにする name = $name; } // このメソッドを子クラスでオーバーラ…
計画書を作成する機会があったので、それに伴って何を書くべきかをまとめた。 今後の参考のために。 計画書に必要なこと PM初心者でも出来る?プロジェクト計画書の作り方~無料サンプル付き!~ | プロジェクト管理・工数管理「イノピーエム」 組み込みソフ…
RubyOnRailsめちゃ多くないですか。 一回くらい触ってみなきゃなってことで、開発環境構築に着手。 参考ページ Dcokerの公式ページがこれ Quickstart: Compose and Rails https://docs.docker.com/compose/rails/ それをちょっと噛み砕いてくれているのがこ…
boostnote.io Boostnote、とても使いやすいMarkdownエディタで重宝しています。 ただ、基本的にはローカルで使うエディタで、複数端末間で同期しようとすると少し工夫がいるっぽいので、どうしたもんかと思ってました。 まあエンジニアらしくGit管理がいいか…