僕は卒論でVB.netを使って「センサーで計測したひずみ値を描画・記録するアプリケーションの作成」を行いました。学部では土木・建築を専攻しましたが、先生が「プログラミングを極めたい」という僕の気持ちを汲んでくれたことを今でも感謝しています。目的…
最近のことですが、コードを全く書かない・書こうと思わない日がやってくることに気づきました。 新卒で現職に就いてからこんなことを感じたことはほとんどなかったので、自分でも驚いていますし、本当にショックです。ついに自分にも無気力期間がやってきて…
2023年3月31日をもってRuby2.7がEOL(EndOfLife)となりました。安らかにお眠りください...🪦 Ruby | endoflife.date 業務でRubyを触り始めたのが、ちょうど2.3~2.7系の時だったので感慨深いものがあります。 Ruby2.7のEOLに伴って、プロダクトのレポジトリ内でR…
はてなブログから素敵なメールが届きました。なんとブログを開設してから早くも4年が経過したそうです。 開設したのは学部を卒業して新卒になる前の2019年3月のこと。 当時の僕は、インターンからアルバイトを経てすでにエンジニアとして業務経験を積…
最近は技術書だけではなく、さまざまな書籍を読むようになりました。 今回はヴィクトール・E・フランクル著の「夜と霧」を読みました。今更、自分が紹介するまでもなく名著して語り継がれている書籍です。著者のフランクルが第二次世界大戦渦にて、ユダヤ人…
みなさんはRailsの開発にて、サービスクラス(ServiceObject)を使っているでしょうか。 モデルやコントローラーがファットになるのを防ぐために導入される設計方法で、ドメイン知識におけるサービス(eg: 商品の購入処理)の一連の処理をまとめたクラスを作成す…
Railsでトランザクションを扱いたい時はActiveRecordに実装されたtransactionメソッドを呼び出します。 ActiveRecord::Base::transaction do : end 今までRailsでトランザクションのブロックを宣言した時は、他のトランザクションからデータの取得、更新は出…
昨日、ミヒャイル・エンデ作の「モモ」という書籍を読了しました。 この本は児童文学として書かれているので、普段の自分とは縁もゆかりもない書籍です。一週間前にアップロードされたアバタローさんの解説動画を見て「何だこの本は...面白そう」と思い、い…
Railsではマイグレーションファイルを作成してマイグレートを実行することで、テーブルが作成されます。 非常に便利で手軽にテーブルの定義・作成ができるのですが、マイグレートされた結果、どのような型が選択されるのかが隠蔽化されるという問題があると…
2022/12/28に「Manning Publishing: Unit Testing Principles, Practices, and Patterns」の翻訳書である「単体テストの考え方/使い方」という書籍が発売されました。買うか迷っていたのですが、TDD(テスト駆動開発)で有名なt_wadaさんがツイートされている…
日々のリモートワークでミーティングをしていると、相手と同時のタイミングで話し始めてしまうことがよくあります。特に自分から話を振ってから、返答を待ってる間に何かを追加で自分が話し出した時なんかひどいもので、せっかく相手が話しだしてくれたのに…
データベースの設計において正規化の結果、中間テーブルを作ることがよくあると思います。 以下のようなテーブル群があったとします。登録されたユーザーと登録された商品を誰が出品した商品なのかを中間テーブルへ記録しています。 users products user_pro…
先日、Rubyで巨大な配列(Array)を扱うことがありました。 気になるのは巨大な配列を宣言したときのメモリ使用量です。試しに、要素数が10,000個の配列を宣言してみると89,712Byteほどメモリを使用していることが分かります。 require 'objspace' # memsize_o…
Rubyのブロック引数についてご存じでしょうか。 非常に便利な機能で皆さんもよく使っている、正確にはブロック引数に対してブロックを渡していますが、ブロック引数を定義する機会がほとんどない方も多いでしょう。 例: eachの場合 # do以降の処理がブロック…
ある日のこと。Rubyのコードを読んでいるとboolean型の値が引数となる関数の呼び出し処理を見て「なんじゃこりゃ...」という気持ちになりました。簡単な例を紹介します。 def say_hello(is_morning) if is_morning puts 'おはようございます' else puts 'こ…
僕は毎年、母の誕生日に「知識は力なり」という...思いを込めて何かしらの本をプレゼントしています。 過去には「フランス人は10着しか本を持たない」や「52ヘルツのクジラたち」などジャンルを問わず様々な本をセレクトしてきました。「今年は何にしよう…
「RubyでつくるRuby ゼロから学ぶなおすプログラミング言語入門」を読了しました。 非常にチャレンジングな本で、なんとRuby初心者の方に向けてRubyを動かすプログラム、つまりRubyインタプリタを作ってみようという本です。「え、そんなのプログラミング初…
副業をしてみたいけど、何をしたらいいか分からない 副業に興味があるけど、どこで見つけたらいいか分からない 副業に興味があるけど、自分のレベルでも出来るのか分からない このような悩みを持つエンジニアの方をよく見かけます。 確かに、どうすれば副業…
お題「オタクグッズの処分方法を教えてください。金額を考えてふと我に返ってるところです。」 面白いお題を見つけたので元グッズ集めアニメオタク、現ミニマリストの自分も「オタクグッズが処分できない!」とお困りの方に自分のグッズ処分経験を書いてみよ…
ある日のこと。Rubyのコードを読んでいると配列の要素が特定の値を含んでいるかどうかの判定にinclude?を使っている箇所とany?を使っている箇所があることに気づきました。 lst = [1,2,3,4,5] puts lst.any?(1) # true puts lst.include?(1) # true たしかに…
Railsを使っていて何かと便利なのが「enum」です。 他の言語では列挙型(Enumerable)と呼ばれることがありますが、実態としてはActiveRecordに定義されたenumという関数です。modelファイルの中でカラム値のバリエーションを指定することが出来るのが非常に便…
こちらの記事を見て、自分も別のテーマでやってみたいと思います。 ちょうど同じ任天堂のスプラトゥーン3にドハマりしているので、スプラトゥーン3を題材にやってみます。 qiita.com なかなか、新規にデータベース設計をすることはないので、良い練習になり…
今回は少し照れくさいですが、自分のマインドを支える「恩送り」という考えについて紹介しようと思います。 そもそも「恩送り」という言葉をご存知でしょうか。 この言葉はマイナーな言葉らしいですが、改めて「恩送り」について説明すると、自分が誰かから…
Amazonを徘徊していたところ、面白そうな本を見つけました。 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法作者:増田 亨技術評論社Amazon 目次を見ると、オブジェクト指向の考えとドメイン駆動設計(DDD)を組み合わせて…
昨日、社内の公開勉強会であるMeets Professionalになんと!あの伊藤淳一さんにご登壇を頂きました。 n2i-engineer.connpass.com MeetsProfessionalとは活躍されているプロフェッショナルな方々をお招きし、これからのキャリア、ビジネス論、仕事の考え方、…
紅茶や緑茶にはもちろん、カフェインが含まれています。 元々はカフェインの含有量なんて気にしたことはなかったのですが、今は彼女と同棲をしており、彼女が生理の日にはカフェインの摂取量に気をつけています。 出来ることなら、一緒にお茶を楽しみたいの…
普段は家でリモートワークをしていますが、オフィスに出社したり、実家に帰ったり、外で作業したりと家以外の場所で仕事やPCで作業をすることが割とあったりします。 その度に、家のデスクで使用しているアダプターやケーブルを抜いて、リュックに詰めて...…
少し前にShopifyのCOO(最高執行責任者)のカズ(Kaz)さんが以下のツイートをされていました。 Meetings are a bug. Today, we shipped a fix to this bug at @Shopify. To start 2023, we're cancelling all Shopify meetings with more than two people. Let'…
近年、ハードの発展に伴って関数型言語の名前をよく聞くようになりました。 当時、何も知らなかった自分は「バグが出ないコードが書ける」という噂を聞きつけて、elixirというプログラミング言語に出会いました。その後、Haskellの学習を通じて関数型言語と…
前回の記事で、大学生でも出来るプログラミングのアルバイトをする方法を紹介しました。 www.okb-shelf.work 本当は合わせて「自分が大学生の時にプログラミングのアルバイトをして良かったこと・悪かったこと」を紹介したかったのですが、記事が長くなりそ…