やわらかテック

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

大学生の時にプログラミングのアルバイトをして良かったこと・悪かったこと

前回の記事で、大学生でも出来るプログラミングのアルバイトをする方法を紹介しました。 www.okb-shelf.work 本当は合わせて「自分が大学生の時にプログラミングのアルバイトをして良かったこと・悪かったこと」を紹介したかったのですが、記事が長くなりそ…

【経験者は語る】大学生でも出来るプログラミングのアルバイトをする方法

「プログラミングが出来るアルバイトを探してるんだけど、全然見つからない」 こんな話を昨日、友人から聞きました。 確かに、そのようなアルバイトをやりたくて実際には募集があまりないのが現状です。Yahoo知恵袋などでも同じような悩みを持った方が多いよ…

異世界転生してエンジニア騎士とクエリの魔女のSQL問題を全問解いてみた感想

以前、SQLについて勉強したという話をしました。 狙いはActiveRecordたるORMによってSQLを直接書く必要がないためRDBとのやりとりが隠蔽されており、自分の書いたコードから発行されるSQLがパフォーマンスの良いものか悪いものかが判断出来なかったからです…

モニター出力に対応した最高のtype-cケーブルを購入した

前回の記事で、ずっとごちゃついて気になっていたモニターの配線をtype-c出力対応のBenQ GW2785TCを購入した結果、配線を圧倒的に排除することに成功しました。 www.okb-shelf.work もう非常に大満足で、上記のサムネの配線が必要なくなりました。 BenQ GW27…

【書評】[試して理解]Linuxのしくみがちょうど良いレベル感で分かりやすかった

2023年になって、最初に読んだ本がこちらになります。 [試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】作者:武内 覚技術評論社Amazon 以前から、話題になっていたそうで書籍自体は過去に出版されたものの増…

2022年に読んでよかった本・ベスト3

みなさん、あけましておめでとうございます。早いもので2023年がスタートしました。 昨年度は本業のエンジニアリングや技術に関連する本からインテリア、植物、お料理と様々なジャンルの本を読みました。正確にカウントしていませんが、漫画も含めれば60冊程…

【ええな〜コード】OSSのコードから学ぶ設定値(configure)の作り方

こちらは「ええな〜コード」の記念すべき第一本目の記事です。「ええな〜コード」とはOSSのコードから勉強・参考になる箇所を抜粋して、記事として紹介するという趣旨の不定期シリーズです。 今回はよくある設定値(configure)について「ええな〜」と思うコー…

type-c対応のモニター(BenQ GW2785TC)を買ったら配線が消え去った

ついに買いました 以前の記事でモニターの配置を紹介しつつ「実はtype-c対応の外部モニターが欲しい!」と記載しました。 結局、記事を書いてたらめちゃくちゃ欲しくなってしまって、その日に衝動的に買ってしまいました。 www.okb-shelf.work 購入したのはB…

日々、自分のベストプラクティスは変化している

ある日のこと、久しぶりに過去に自分が実装した機能のコードを見ていると「何だこのコードは...」と悪い意味で驚愕しました。内容はデータベースから取ってきたデータをひたすら加工し、集計して最終的に画面に表示するというものです。 ひたすら加工と書い…

Nature Remo mini 2をコンセントへ直挿しすることに成功した

師走のせいか、最近はよく買い物の衝動に駆られています。とはいっても服や趣味のものを買ったりではなく、相変わらず配線をスッキリするためのアイディアを試行錯誤しています。前回の記事でモニターの配置についての話と、type-cに対応した外部モニターが…

リモートワーク3年目のエンジニアがたどり着いた最強のモニター配置

近年、多くの方がリモートワークをされているかと思います。自分もその一人で、WEBアプリケーションの開発を担当しているエンジニアですが、2019年にリモートワークへの移行が決定して、すでに3年の月日が経ちました。当時は自宅に職場と同等、それ以上の作…

社内で毎日開催している輪読会を紹介して頂きました

自分が主催して、運営している社内輪読会についてインタビューを受けて、Wantedlyの記事にして頂きました。「運営している」と言いましたが、すでに形式化されて、参加メンバーがファシリテーターをしてくれるので、自分がやっていることはもうほとんどなか…

【ActiveRecord】レコード数を取得するにはlengthやcountではなくsizeを使っておけば良さそう

単体テストのコードを見ていて、対象のテーブルに存在するレコード数を取得する際の記述が統一されていないことを発見しました。ある箇所ではUser.all.sizeと記述されており、ある箇所ではUser.countと記述されており、どの方法で取得するのが効率が良いのか…

idの絞り込みにfindを使わずfind_by!を使っていたのはなぜなのか

コードレビューをしていていた日のこと。あるテーブル(users)からidで絞り込んでレコードを1件取得する際に、以下のようなコードが頻出していることに気づきました。 User.find_by!(id: params[:user_id]) 処理の内容としては、idカラムでusersテーブルから…

Rspecのモック(double)はどのように作られているのか

普段の業務でrspecのモック機能には非常にお世話になっています。使い方は非常に簡単で、既存クラスに定義された関数の振る舞いを変更することが出来ます。 (※実際に既存クラスの定義が書き変わるわけではありません) class Hoge def foo 'foo!' end def bar…

vec型に対してiter関数からslice::Iterが返ってくるのはなぜか

Rustの学習を進めています。前回に引き続き、イテレーターの章で気になった結果を発見しました。vec型の値に対してinto_iter関数を実行した場合にはvec型に定義された構造体vec::into_iter::IntoIterが返るのですが、iter関数を実行すると...slice型に定義さ…

未経験エンジニアにインフラエンジニアを勧めているのマジか

yahoo知恵袋にて回答中 ちょっとした気分転換や「誰かの役に立てれば」という思いで、不定期でyahoo知恵袋にて質問へ回答をしています。自分が回答しているのは、回答がない・少ない質問が主です。こういった質問は内容が複雑であったり、文章量が多い、答え…

リモートワークの一番のデメリットは「見て盗む」がやりづらいこと

自分は、いわゆるビジネス書というのはあまり読みませんが、立ち寄った書店でいつもは通らない棚をふらふらしていたところ、僕が尊敬してやまない落合博満さんの書籍「決断=実行」を見かけたので即購入しました。 決断=実行作者:落合 博満ダイヤモンド社Amaz…

ActiveRecordにてSELECT * FROM table_nameを避ける方法について

ActiveRecordって本当に便利ですよね。SQLを隠蔽して、データベースへのCRUD操作をオブジェクトとメソッドで完結させることが出来ます。一例として、usersテーブルから権限(authority)がadminのレコード一覧を取得する操作は以下のようになります。 (※分かり…

ActiveSupportのtravel_toの仕組みについて

ActiveSupportには、時間を固定することが可能な便利なtravel_toという関数があります(よく単体テストでお世話になっています)。travel_toを呼び出した後にTime.nowで現在時刻を取得してみると、何とtravel_toで指定した日時が取得されるではありませんか。 …

Rails外でActiveSupportのtravel_toが使えない時の解決方法

前提条件 Rails外でActiveSupportを使用している テストフレームワークにRspecを使用している エラーについて Railsではなくsinatraを使ったAPIを書いていて、時間停止の便利関数travel_toを呼び出そうと思ったら以下のようなエラーが出てActiveSupportに定…

【Rust】for文でiter関数を使う時に&(参照)をなぜ書くのか

rustの公式ドキュメントであるThe Rust Programming Language 日本語版を読み進めていると、第10章のジェネリックなデータ型の章で、以下のコードが記載されていました。 fn largest_i32(list: &[i32]) -> i32 { let mut largest = list[0]; for &item in li…

OSSのコードを読んでたらコードの書き方が変わった

最近はRubyとRubyOnRailsを使って仕事をしています。RubyやRailsは日本語の情報量が特に多く、やりたいことの多くはGoogleで調べると既に誰かがやっていたり、ライブラリがあったりと誰かが作ったありがたい...コードを使わせて頂くことがよくあります。 し…

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

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

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

こちらの書籍は現在(2023年11月)、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: 問い合わ…