やわらかテック

興味のあること。業務を通して得られた発見。個人的に試してみたことをアウトプットしています🍵

Rustの標準でプライベートとする考え方に感銘を受けた

Rustを学び中のこと... 最近、ぼちぼちをRustを書き始めました。とはいったものの、まだFizzbuzzを見ずに書ける程度で理解はまだまだの状態です。 doc.rust-jp.rs 上記の公式コミュニティが運営しているドキュメントを見ながら学習を進めているのですが、非…

【書評】メンタルが弱い人こそ「いい人戦略」を読むべきだと思った

こちらの書籍は現在(2022年8月)、Amazonプライムの会員であれば無料で読むことが出来ます。以下のリンクからぜひ、ご一読ください。 プライム会員ではない方はこちらから。 超情報化社会におけるサバイバル術 「いいひと」戦略作者:岡田斗司夫 FREEex株式会…

【書評】「リーダーの作法」は当たり前のことを当たり前にやろうという本だった

リーダーの作法ってどんな本 2022年6月にオライリーから「リーダーの作法 ささいなことをていねいに」という書籍が発売されました。表紙はミツバチです。 www.oreilly.co.jp 元々、海外では「The Art of Leadership small things, done well」という名前で発…

Rustのトレイト(trait)に衝撃を受けた

トレイト(trait)すごい 「コンセプトから理解するRust」を読んで衝撃を受けました...。 トレイト(trait)は今まで自分が出会ったことがない概念です。 コンセプトから理解するRust作者:原 旅人技術評論社Amazon 多くの言語ではinterfaceや基底クラスを作って…

そもそも疑問に思うことがないという事実

心理的安全性の重要性について知る 日々の開発の中で、お互いに新機能に対して意見を言い合うことなどがあるかと思いますが、自分が所属するチームではなかなか、意見が出ずに意見交流が発生しないことが多々ありました。 これに対して自分の答えの1つとして…

M1mac+homebrewでpostgresql.confがある場所

探してみるも見つからず SQLの統計情報の記録の設定しようと思い、以下を参考にpostgresql.confを探してみるも見つからず... stackoverflow.com homebrewを使っているところは同じようだけど、どうやらOSが違う、いやM1macなのが原因かと思い調べているとや…

postgresqlにおけるテーブルスキャンの実行例

テーブルスキャン postgresqlでは、テーブルスキャンに該当する演算子が5つあります。 Seq scan: インデックスを使用せず、全件を検索 Index scan: インデックスを使用してスキャン Bitmap scan: ビットマップを使用してスキャン Index only scan: 問い合わ…

【SQL】結合によって結合元テーブルの行数が増えるケースについて

質問サイトを巡回中に発見 LEFT JOINを実行した際に、NULLの値を持つレコードが増えるケースについては認知していましたが、ただのJOINの時にもレコード数が増えることを経験しました。 SQLに詳しい方から見れば、当たり前でしょと思われるかもしれませんが…

スッキリわかるSQL第3版の発売に合わせて手元PCで実行できるようになっていた

SQLの習得にはスッキリわかるSQLでしょ 私がSQLが全く分からなかった時に非常にお世話になったのがインプレスから出版されている「スッキリわかるSQL入門」という書籍です。 www.okb-shelf.work 対話形式で図やイラストが多く、SQLをほとんど全く知らなかっ…

「恐れのない組織」はリーダー必読の本だった

心理的安全性を求めて 自分は開発チームのマネージャー(EM)的なポジションをやっていた時に「何か意見がありますか」とか「質問はありますか」とメンバーに投げかける場面がよくありました。しかしながら、メンバーからは沈黙が返ってくるだけで、自分が期待…

Pythonからはじめるアルゴリズムトレードはトレード入門者向けの本ではない

衝動買いをした www.oreilly.co.jp 著者作成のレポジトリ github.com 2022年の4月のNewBooksに記載されており、前から気になっていたPythonからはじめるアルゴリズムトレード。立ち寄った書店に置いてあったので、衝動買いをした。 これで自動売買のトレード…

pandasでの保存形式はcsv、h5、pklでどれが良いのか

h5というファイル形式があることを知る オライリーから発売されたpythonではじめるアルゴリズムトレードを読み進めていた所、金融の取引データをpandas.DataFrameからh5という形式のファイルに出力していました。h5というファイルは階層的データを扱うための…

【2022年版】DB-ENGINESよりデータベースの人気ランキングを見てみる

海外のDB-ENGINESというサイトで紹介されています。以下の画像は2022年5月度の集計結果です。 データベースランキング Oracle MySQL Microsoft SQL Server PostgreSql MongoDB 1位から5位まではランキングにほとんど変更がないようで、ほとんどがRDBです。自…

pythonでブルームフィルターを作って覚える

ブルームフィルター(Bloom Filter)とは ブルームフィルターというのは1970年にブルームさんが作った確率的データ構造と呼ばれるデータ構造の1つです。 データ構造というのは 配列 連想配列 リスト などをイメージしてもらえば良いのですが、確率的データ構造…

【エンジニア教育の壁】ティーチングとコーチングの違いを教えてもらった

どこまで教えてあげれば良いのか問題 教育というのは非常に難しく、私が担当したエンジニア教育についても全く同じことが言えます。 その一例として「どこまで教えてあげれば良いのか分からない」という問題があります。自分の中では答えがあるものの、相手…

初めてOSSにPRを出したらマージされた

Githubトレンドを徘徊中のこと 技術トレンドを追うために定期的にGithubのトレンドを月単位で集計されたものを見ています。 最近、データベースにお熱なのですが、何やら「sqlmap」という面白そうなレポジトリを発見しました。 github.com 最初はSQLを効率よ…

モチベーションがなくなった結果、データベースについて2ヶ月間勉強した

概要 新卒4年目にして業務の慢性化、スキルアップの実感の無さからモチベーションが低下した 得た知識が業務で高確率で役に立つ知識(投資効果の高い)を得ようと思い立つ 投資効果の高いスキルはほぼ100%どのプロジェクトでも使われるデータベースだと考えた …

【悪質な代理店を見分ける】インターネット契約時に確認すべき3つのこと

この記事の概要 新規でインターネットを契約する時は、今から申し込みしようとしているサイトが信頼できるサイトかどうか必ず確認することをオススメします。必ず確認するべき点は3つあります。 ドメイン(例: google.com)が信頼出来るドメインなのかどうか …

【新卒でベンチャーを考えている人向け】ベンチャー企業で5年働いて辛かったこと7つ

この記事の概要✒️ 新卒で大手企業に入社するか、ベンチャー企業に入社するか迷っている方がそこそこ多いようで、過去にも何度か相談に乗ったことがあります。 自分は新卒でITのベンチャー企業に就職しました。今年で社員としては3年目になりましたが、実態は…

【JavaScript】await可能なintervalの書き方

setIntervalが使いにくい setIntervalはPromiseのオブジェクトではないため、awaitさせて実行終了を待つことが出来ません。例えば、3秒毎にカウントを1ずつ増やしていく処理をsetIntervalで実装をすると以下のようになります。 const sleep = (ms) => { setT…

【JavaScript】連番の配列を生成する4つの方法と速度比較

連番の生成に関して 意外と使用する頻度が高かったりします。他言語であればRange(eg: 1..10)のようなClassやデータ構造が定義されており、簡単に連番の配列を作成することが出来ます。しかし、JavaScript には連番の配列を簡単に生成するための機能が提供さ…

【2022/7月更新】WEB開発エンジニアがM1 MacbookAirを購入して使い続けた感想

M1 Macbookを買うかどうか 4年前にずっと愛用していたWindowsからMacbookに乗り換えました。当時、アルバイトしていた開発会社がMacbookをメインに使っていたので、その流れに乗ったという感じです。早いものでMacbookを使い始めてから4年の歳月が流れており…

あえて無言でいたら怒っていると勘違いされた

この記事の概要 [前回の記事] 沈黙が怖くて、自分からいつも喋り出してしまっていた 自分ばかりが喋ることでメンバーの意欲をそいでしまっていた 外部メンターの方からのアドバイスを元に「あえて無言でいるウィーク」を行なった メンバーの意欲を引き出すこ…

【Elixirで実装】関数型言語でカプセル化をする方法

この記事の概要 関数型言語の多くでは値は束縛されるため、不変である 値を再束縛(≒再代入)することが出来ないため、値を更新する際には新たなデータを作る必要がある 更新の度に新たなデータを作ることで、関数型言語でもカプセル化をすることが可能になる …

数学全然わからないけどElixirでEitherを作ってみる

概要 Haskellではエラーが発生した際に対応するためにEitherというモナドを使う EitherはLeft(エラー時)とRight(正常時)の2つの値を持ち、それぞれ別の型の値を受け取ることが可能(Either = Left a | Right b) LeftにはStringがよく用いられ、エラーメッセー…

あえて無言でいることが重要だと気づいた

この記事の概要 バグを減らすためにモブプログラミング(3人以上で1チームを作って開発を進める手法)を導入した 積極的にアイディアや意見を出すメンバーとあまり喋らないメンバーに分かれてしまった 沈黙の時間が訪れた時に「気まずいなぁ...」と思い、自分…

型のある言語は一度は経験するべきだと思った出来事が起きた

型があるのが良いのか この話題は度々、議題に上がり、多くの人が討論をしています。 個人的な近年の傾向としては、golangやTypeScrpitの流行、PythonやRubyが型アノテーションが導入されるなど、型のある言語(静的型付け言語)への需要が高まっているように…

数学全然わからないけどElixirでMonadを作ってみる

前回までのあらすじ 「入門Haskellプログラミング」を読み進めながら、理解を深めるためにElixirを使ってHaskellのFunctorとApplicativeを再現してみました。 www.okb-shelf.work www.okb-shelf.work Functorは上手く再現出来ましたが、Applicativeはデフォ…

【読書レビュー】「岩田さん 岩田聡はこんなことを話していた。」を読みました

どんな本なのか タイトルにもある「岩田さん」とは、とある人物の実名です。 「岩田 聡」さんは皆さんがご存知の任天堂(Nintendo)の社長をされていた方で、我々がよく知る「Nintendo DS」や「Nintendo Wii」「カービィシリーズ」「スマッシュブラザース」な…

数学全然わからないけどElixirでApplicativeを作ってみる

前回のあらすじ www.okb-shelf.work 「入門Haskellプログラミング」という書籍を読み続けながら、理解を深めるために自分でFunctorを実装してみました。今回は、Functorに引き続き、Applicativeに挑戦してみます。 先に結論ですが、ElixirでApplicativeを作…