やわらかテック

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

【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 には連番の配列を簡単に生成するための機能が提供さ…

【2021/11月更新】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を作…

【JavaScriptで解説】部分適用って何?カリー化との違いは?

部分適用とは何か。またよく混同されるカリー化という手法とは何か。部分適用とカリー化の説明をしながら、2つの違いを明確にしていきます。解説にはJavaScriptのサンプルコードを用いています。関数型言語の概念や知識がなくても理解できるように書きました…

プロダクトにおいて営業と開発は対等であるという意識の重要さ

お客様の声 プロダクトが売れ始めて、ある程度、成長を続けていくとお客様から様々な声が上がってきます。 www.okb-shelf.work 中でも最も多いのは新機能の開発要望です。小さな変更からプロダクトのコンセプトを覆してしまうような大きな変更まで大小様々で…

ElixirのEnumモジュールがどのように作られているのか調べてみた

こちらは僕が主催している清流elixir - connpassで扱った内容の備忘録になります。 現在は1ヶ月に一度を目処にオンラインで活動をしています。 今回は愛用してやまないElixirのパワフルなEnumモジュールについて、果たしてどのように作られているのか、すな…

【コピペでOK】はてなブログでソースコードをエディタ風に表示するCSS

デフォルトのデザインが何ともいえない...🤔 こちらがはてなブログにソースコードを<pre>タグで表示した時に表示されるデフォルトのソースコードです。 自分はMarkdown記法を使用していまして、バッククオート3つで囲うことでソースコードを記述しています。 良くも</pre>…

ハッキリと「この機能必要ですかね」と言うことが一番重要だった話

お客様が増えると要望は増え続けていく⏫ 現在、国内でHRテックのアプリケーションの開発を担当しています。 ありがたいことに、今となってはかなり多くのお客様に使って頂いておりまして、成長期を抜けて成熟期に突入しました。 www.nri.com そんな運営中の…

【コスパ最強】Ankerのマグネットケーブルホルダーで机の配線を最終形態にしました

配線が見えなくなったものの... 僕は配線が見えるのが嫌で、極力、配線が見えないようにしてします。 今年の春頃に充電コード(lightning, type-c)やモニターの出力ケーブル(HDMI)を可能な限り見えない状態にしました。 ケーブル類はテーブル下のケーブルトレ…

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

きっかけ 最近、「入門Haskellプログラミング」という書籍を読み進めています。 入門Haskellプログラミング作者:Will Kurt翔泳社Amazon 毎日1章ずつと非常にスローペースではありますが、第27章のFunctorまで辿り着きました。このFunctorというものが非常に…