chevron_left

メインカテゴリーを選択しなおす

cancel
やわらかテック https://www.okb-shelf.work/

リモートワークでWEBエンジニアをしています。 自称ミニマリストが配線と戦いつつ、快適なデスク環境を目指し「これは買うしかない」と思ったオススメのガジェットなどを紹介中。 エンジニア教育やプログラミング言語に関する内容も。

ぎょうざ
フォロー
住所
未設定
出身
未設定
ブログ村参加

2023/01/11

arrow_drop_down
  • Rails Discussionに投稿をしてみた

    「今年こそは...今年こそは...OSSに貢献するぞ...!」と思い気づけはや3年。 気持ちだけが先行して何をしたら良いのか分からず。結局、それらしいことは何もしていませんでした。 ですが、先日開催されたRubykaigi2023(コロナになって行けなかったけど)へ参加した方のツイートや、参加レポートを見て何かOSSに貢献できればなぁ...と改めて感じました。 product.st.inc 言ってみれば業務でよく書くRubyもRailsも誰かが日夜、メンテナンスしてくださっているお陰で僕は飯が食べられています。本当に感謝しかありません。よく「〇〇言語はイケてない」だの「gemがメンテナンスされ…

  • コーチングがない組織が行き着く先はBADENDでしかない

    最近はチームビルディングについて思い悩まされる日々を過ごしています。僕は過去に外部メンターの方からマネジメントにおいて重要なのは「ティーチングとコーチングの違いを理解すること」だと教えて頂きました。 www.okb-shelf.work 当時は教育を担当しているエンジニアの方に言語の文法や仕様についてなど、今よりも低い視座で経験を積んでいました。しかし、時が立ってメンバーが成熟したことで、文法や仕様について僕がとやかく言うことはなくなり、より組織構成やチームビルディングといった視座の高い課題に取り組めるようになりました。 今になって思うと、当時の僕はティーチングとコーチングの違いについて認識し…

  • PostgreSQLでboolean型のカラムを持つレコードを取得するとt, fとなる

    Rubyでpg gemを使って、postgresqlに接続してクエリの実行結果を見ていたところ、boolean型のカラムの戻り値がTRUEの場合にt、FALSEの場合にfとなる現象を確認しました。 CREATE TABLE test1 (a boolean, b text); INSERT INTO test1 VALUES (TRUE, 'sic est'); INSERT INTO test1 VALUES (FALSE, 'non est'); SELECT * FROM test1; a b ---+--------- t sic est f non est 最初はpg側で…

  • binding.irbでdebugコマンドが使えないのはirbのバージョンが古いため

    僕はRubyで何かしら開発をする時にbinding.pryというデバッグツールを愛用してきました。 Rubyを書き始めたのが確か、2.3系の頃で当時からbinding.pryは非常に人気のデバッグツールでした。 しかし、Rubyのバージョンアップにつれてbinding.irbが標準gemとなりインストールをしなくても使用可能になったため、最近はbinding.irbを使うようになりました。 しかし、なぜかコード中にbinding.irbと挿入してIRBは立ち上がるものの、debugと入力してもエラーが表示され、デバッグ画面に遷移できませんでした。しかし、プライベートで使っているPCではdebu…

  • ファイルをオープン(open)したらクローズ(close)しないといけない理由について

    僕がプログラミングを始めたばかりの頃、よく「ファイルをクローズし忘れてるよ」と指摘されていました。 当時は「ファイルはオープンしたらクローズするもの...」と反射的にファイルをクローズするようにしていました。しかし、今になって思うと「なぜオープンしたファイルをクローズしなければならないのか」を疑問に思うべきでした。 実を言うと、未だにファイルをオープンしたらクローズしなければならない理由をハッキリと理解していません。メモリの使用量が増えるから...という何となく...の理解をしています。今回はオープンしたファイルはなぜクローズしなければならないのか調べてみました。

  • 【Ruby】なぜeach関数よりもfor inが遅いのか

    先日、以下の記事を公開しました。 www.okb-shelf.work Rubyで配列からハッシュを作る際に、どの方法が一番パフォーマンスが良いのかを計測したのですが、過去にJavaScriptで似たような計測をした時はシンプルなfor文が最速だったので、Rubyでも同じような結果になると思っていたらfor inが最も遅く、each関数が最も速いという結果になりました。 一体、なぜこのような結果になるのか。Rubyの深い部分まで把握する必要がありそうだと判断し、前回の記事では調査を行わなかったのですが、今回はその謎に迫ってみたいと思います。 そもそもRubyにはfor文がない この記事を書く前…

  • 【Ruby】配列からハッシュを生成する4つの方法と速度比較

    Rubyで開発をしていると配列からハッシュ(連想配列)を生成するコードを書くことがあります。 個人的にはreduce関数を使ってバシッと書くのが気持ちよくて好きなのですが、最近、人によってこの処理の書き方が違うことに気づきました。 4つの書き方 僕が個人的に観測しているのは以下の4つの書き方(方法)です。 for文を使った方法 each関数を使った方法 each_with_object関数を使った方法 reduce関数を使った方法 それぞれ、簡単なコードを再現してみました。 処理は非常にシンプルで配列の各要素を文字列にした値をハッシュのキーとし、各要素を2倍にした値をバリューとします。

  • Elm Architectureに感銘を受けた

    最近、Elmを学びはじめました。 Elmの存在は元から認知していて、Haskellに似た文法を持つ関数型言語にカテゴリーされる言語だそうで、そんな言語でフロントエンドが作れるとのこと...で非常に興味がありました。また、個人でアプリケーションを作るにあたってフロントエンドの開発は避けて通ることが難しいです。現時点で一番の選択肢として考えられるのはReact.jsですが、業務で散々書いたので個人的にはもういいかなと感じています。何か新しいことをやりたいなぁ...と思っていたので、Elmを選択しました。 ellie-app.com 一週間ほどElmを学んで簡単なTodoアプリまで作ることができたの…

  • あなたのチームに悪者はいない。だから対話が必要なんだ

    チームの人数がだんだんと増えてきてポジションが明確化されて来た今、「対話が必要だ...」と思わされる日々を過ごしています。 何年も前に「ポジションは役割に過ぎない」という記事が話題になりました。当時、ポジションというのは上下関係を構築するものだと思っていたのですが、記事の通りポジションは役割でしかなく、人と人の間に上下関係を構築するものではないという学びがありました。 logmi.jp ポジションの明確化による副作用 しかし、ポジションが明確化されてくると上下関係に近いものが生まれます。 開発組織においてよく発生するのが発注者と受注者という関係です。テックリードや技術責任者が技術決定や設計を行…

  • 第8波にてはじめてコロナになりました

    しばらく更新が止まってしまい申し訳ありません。 事後報告になりますが、コロナウイルスに感染して5日間ほど寝込んでいました。とても記事を書ける状態ではありませんでした。まさかのGW真っ最中での感染...によって、全ての予定が吹き飛びました。 軽い旅行に出かけたのですが、出先で拾ってしまったのでしょうか。 マスクは常に付けていましたし、アルコール消毒は欠かさないようにしていました。また、ワクチンも4回接種済みで感染対策を怠っていたわけではないと思うので、感染力の高さには驚かされます。 人によって症状の違いがあるそうで、自分の場合は熱は38.7度まで出たのですが、体のだるさ・しんどさはそれほどありま…

arrow_drop_down

ブログリーダー」を活用して、ぎょうざさんをフォローしませんか?

ハンドル名
ぎょうざさん
ブログタイトル
やわらかテック
フォロー
やわらかテック

にほんブログ村 カテゴリー一覧

商用