タグ

ブックマーク / r7kamura.com (13)

  • 『Sustainable Web Development with Ruby on Rails』を読んだ

    David Bryant Copelandさんが書いた、Railsについてのこだわりの詰まった。 takahasimさんも『Sustainable Web Development with Ruby on Rails』はRails使ってるなら絶対面白いと思うと言っていたように、面白い。これまでRailsを使ってきた中で、楽しいこともつらいことも沢山あったんだろう。そういうことが感じ取れるような話が展開されている。 幾つかの気になった話題を拾い上げて、自分の感想を述べていきたい。気になる話題は100個ぐらいあるが、がんばって10個ぐらいに留めたい。 Don’t Create Custom Actions, Create More Resources Railsが提供する7種類のアクション名以外使うな、必要なら新しくリソースをつくれ、という主張。つまりDHHはどのようにRailsのコントロー

  • RubyのDockerイメージでよく使う環境変数

    Ruby向けのDockerイメージで使いがちな環境変数について整理する。 GEM_HOME RubyGemsに対して、どのディレクトリにGemをインストールするかを指定する環境変数。例えば gem install foo を実行すると、この環境変数で指定したディレクトリにfoo gemがインストールされる。 Dockerでありがちな作戦として、/gem のような適当なパスにデータボリュームをマウントしておいて、そこにGemを永続化させておくというのがある。このときGEM_HOMEを /gem に指定しておくと、gem install bundler を実行したときそこにBundlerがインストールされ、更に /gem/bin/bundle も用意される。 BUNDLE_PATH Bundlerに対して、どのディレクトリにGemをインストールするかを指定する環境変数。例えば bundle i

    RubyのDockerイメージでよく使う環境変数
  • Rustでサイトを再実装

    このサイト r7kamura.com の実装言語をRubyからRustに変えてみた。 アプリケーションの概観 このサイトには、大別すると次の6種類のルーティングパターンがある。 GET / トップページ GET /articles/:article_id 記事ページ GET /feed.xml RSSフィード GET /links リンク集 GET /sitemap.txt サイトマップ (Google Search Console等が利用する) GET /* その他の静的ファイル (CSSや画像など) Rubyの実装では、適当なRackアプリケーション + rack-captureという構成で、Webアプリケーションとして実装しつつGitHub Pagesのために静的ファイルも吐き出せるという仕組みになっていた。 Rustの実装もほぼ同じで、適当なHTTPサーバー + 適当なHTTPクラ

    Rustでサイトを再実装
  • 『Railsアップグレード百景』という題で発表した

  • docker composeのserviceをグループ化

    docker composeではserviceごとにprofilesという属性を指定できて、起動時にこれを指定することで関連する一連のserviceだけを起動させられる。 どういうシーンで使えるのか。例えばとあるRailsアプリでは、一部の開発者はMySQLやRedisなどのデータストアだけdocker composeで起動して開発し、他の開発者は加えてRubydocker composeで起動して開発している。osxfsが遅すぎて、ファイルへの読み書きが頻発する処理がmacOSDockerでは使い物にならないからだが、この話は今回どうでもいい。さてこのとき、データストア用のserviceに適当な名前のprofileを割り当てておくことで、個々のserviceの名前を逐一指定しなくても起動でき、将来の変更にも強くなって嬉しい。 # profile導入前 docker compose u

    docker composeのserviceをグループ化
    lugecy
    lugecy 2021/10/11
  • 自作PC2021

    年始に部品を見繕ってPCを組んだ。 机に仮設置した様子 2020年に開発環境をMacBook ProからWindowsデスクトップPCに移行したので、開発に使うならもう少し投資することにしようということで、新しいPCを組むことにした。主にプログラミング、ゲーム、動画編集に使うことになる。 利用した各部品について、取り付け順に紹介しておく。 組み立て前 ケース ケースはNZXTのH510 Eliteにした。 Amazon.co.jp - NZXT H510 Elite 大きさはATX規格のマザーボードと320mmのGPUが入る程度。正面と側面が強化ガラスで出来ている。マザーボード背面やケース底面部分に配線スペースが設けられているため、初心者でも比較的綺麗に配線できる。 このあたりが標準で搭載されている。 LEDとファンを制御するコントローラー LEDストリップライト LED付き前面ケースフ

    自作PC2021
    lugecy
    lugecy 2021/01/09
  • Weneedfeed

    ウェブページからフィードを生成するweneedfeedというツールをつくった。 使い方 このツールはRubygemとして実装されているので、Rubyがインストールされている環境が必要になる。ツール自体はgem installでインストールできる。 gem install weneedfeed 利用者には、URLとCSSセレクタをweneedfeed.ymlというYAML形式のファイルに書いてもらうことになる。例えばこのウェブサイト、r7kamura.comの新着記事のためのRSSフィードを生成しようとすると、こんな内容になる。 pages: id: r7kamuracom title: r7kamura.com url: https://r7kamura.com/ item_selector: li item_description_selector: p:nth-child(3) ite

    Weneedfeed
  • シャンプーとかを壁に吊る

    浴室の掃除を楽にするために、シャンプーとかを壁に吊ることにした。 試行錯誤して吊っている様子 この辺のものを使うことにした。 山崎実業のマグネット式のタオルハンガー トスレのボトルハンギングフック 無印良品のPET詰替ボトル 無印良品の化粧水 最近の浴室は、壁面に磁石を付けられるようになっていることが意外と多い。トスレのフックは、セリアに行ける人であればそこで買うほうが安く手に入れられるかも。無印良品は、最近になってAmazonでの販売もはじまったけど、まだまだレパートリーが少なかったり、値段設定が高かったりしてなかなか難しい。 泡タイプの洗顔料だけボトルの口径が異なるので、あまり上手くいっていない。何か良い案があれば教えてほしい。スプレータイプの化粧水は、こういうところに雑に引っ掛けられるので便利。化粧水がなぜ洗面台ではなく風呂場にあるのかという謎は残るが、現状そういう運用になってしまっ

    シャンプーとかを壁に吊る
    lugecy
    lugecy 2020/10/11
  • Rails 設計 最強

    自分が目指したいRailsアプリの形とは何か、ということについて考えていた。 常日頃から考えていたRailsアプリでの不満をこの議論に合流させた結果、「Rubyを書くときに当たり前にやるようなことを、Railsアプリを書くときでも当たり前のようにやる」というところが肝で、自分が目指したいRailsアプリの形はその先にあるのではないか、と一旦結論付けてみることにした。 「普通にRubyでコードを書くときはやらないけど、Railsだったらこう書く」という何かが存在していることが、さまざまな失敗の原因をつくっていると思う。 RubyRailsが地続きに繋がっていないというか、どこかで断絶があり、そこから筋の悪い設計が生まれている ―あるいは持ち込めるはずの良い設計を持ち込めていない― のではないか、という話。 実際にはどの辺りが気になっているのか?という例を挙げると、氷山の一角を指摘するだけな

    Rails 設計 最強
  • キーボード、節記号、フルーロン

    lugecy
    lugecy 2020/09/26
  • 個人サイトについて

    なぜ個人でウェブサイトを運用しているのかについて、整理しておきたい。 要約すると、以下の理由でやっている。 ウェブの技術を学べて費用対効果が高いから 表示されるコンテンツを制御したいから フィードバックの場と適切な距離を置きたいから かっこいいから コスパが高い 個人でウェブサイトを持って運用していくことは、学習意欲の高い多くの人にとって費用対効果の高い活動だと思う。 ほとんどの技術が無料で利用できる時代になってきているので、ここで言う費用というのは時間や労力のことで、効果というのは得られる知識のこと。その仕組みを用意するにあたって、ウェブサイトというものがどういう仕組みで動くかということが、一通り理解できる。この辺の分野を職とするような人であれば、こういうことは最低限理解しておいてほしいし、何なら採用面接でもこういったことを質問する・される機会がある。 学習コストについて述べたけれど、

    個人サイトについて
    lugecy
    lugecy 2020/09/21
  • 『Oxygen Not Included』コロニー百景

    Oxygen Not Included という惑星入植シミュレーションゲームで、最近つくっているコロニーの様子を紹介します。 Oxygen Not Included on Steam 開拓の歴史 開拓の歴史 I これは開始時点の様子です。クローン人間製造機の前に突如放り出された3人。まずは生活に必要なものをつくりながら、周りに見える水源を整理していこうと思います。 開拓の歴史 II ひとまずトイレとベッドを用意し、治水工事を進めています。人力発電機や研究端末を設置し、今後の生活に必要な技術の研究開発も進めています。目下の問題は糧事情の改善です。 開拓の歴史 III 糧生産のために農業を開始しました。また、研究開発が進み、緑藻脱酸素装置が導入されました。これにより、採掘でたまに見つかる緑藻を分解し、生命維持に必要な酸素を供給できるようになりました。 治水工事も着々と進んでおり、水源が地下

    『Oxygen Not Included』コロニー百景
    lugecy
    lugecy 2020/05/04
  • るりまのパンくずリスト

    るりま (※) のパンくずリストのマークアップ方法について、これまでほぼプレーンテキストとして表現されていたのを、順序付きリストで表現するようにし、ついでにheader要素とnav要素で囲んでナビゲーションであることを表現するように変更した。 https://github.com/rurema/bitclust/pull/86 ※るりまとは、https://docs.ruby-lang.org/ja/ で配信されている、プログラミング言語Rubyの日語のリファレンスマニュアルの通称である。 <p>A &gt; B &gt; C &gt; D</p> これまで上記のような感じだったのが、下記のような感じになる。 <header> <nav> <ol> <li>A</li> <li>B</li> <li>C</li> <li>D</li> </ol> </nav> </header> CDN

    るりまのパンくずリスト
    lugecy
    lugecy 2019/12/08
  • 1