タグ

ブックマーク / r7kamura.hatenablog.com (11)

  • amakanでyarnを使うようにした - ✘╹◡╹✘

    amakanをUnicornからPumaに移行した - ✘╹◡╹✘ に引き続き、小さい改善を加えた。 変更の概要 https://amakan.net/ への今後の変更に備えて、テストやデプロイに掛かる時間を短くする恩恵が良いだろうと思い、node_modulesの管理に使うツールとしてyarnを使うことにした。結果的に、テスト用ビルドの所要時間が130秒から70秒に、デプロイ用ビルドの所要時間が300秒から200秒になった。 CircleCIの設定変更 継続的なテストとデプロイ作業の実行のために、amakanではCircle CIを利用している。Circle CIを使っている理由は、仕事でも使っている上にPrivateでも無料だから。 yarnを利用するためにCircle CIに追加する必要があった設定は、以下の通り。 指定したバージョンのyarnが入っていない場合はインストールする グ

    amakanでyarnを使うようにした - ✘╹◡╹✘
    kitokitoki
    kitokitoki 2016/12/08
    --prefer-offline
  • Ruby on Rails on React on SSR on SPA - ✘╹◡╹✘

    amakan での設計を例に、RailsでSingle-Page Applicationをつくるときの自分のやり方をまとめてみます。 GemJavaScriptで書かれたReactのコンポーネントからHTMLを生成する」というのをRubyでやるために、RubyのV8エンジン実装であるmini_racerというGemを使う。この処理を楽に実行するために、react_on_railsというGemも使う。 gem "mini_racer" gem "react_on_rails" View body要素内のHTMLは全てReactで生成するので、layout以外にviewのテンプレートは存在しない。 Controller 初回リクエストの場合はHTMLを返す ページ遷移時に呼ばれるリクエストの場合はJSONを返す 外部サイトからブラウザバックで戻ってきたときにJSONを見せない という要求に

    Ruby on Rails on React on SSR on SPA - ✘╹◡╹✘
  • モデルからJSON生成するときこうやってます2016 - ✘╹◡╹✘

    最近RubyReact.jsをよく利用していて、Rubyで扱っている値をJSONとして表現したいケースが増えてきた。こういうのどうやっていますかと人に聞きたいので、自分はこうやっていますよというのを説明のためにまとめておくことにする。 概観 自分の場合、次のような方法で実装することが多い。 JSONとして表現したいオブジェクトをコンストラクタで受け取るクラスを定義する クラスに #as_json を定義して適当なHashを返すようにする Object#to_json が再帰的に #as_json を利用するようにする (ActiveSupportがやってくれる) コード 具体的には、以下のようなクラスをつくっている。これは最近つくっている掲示板での例で、Megaboard::Resources::Comment はコメントのJSON表現のためのクラスである。いわばコメントのJSON表現に

    モデルからJSON生成するときこうやってます2016 - ✘╹◡╹✘
  • 「オブジェクト指向でなぜつくるのか」を読んだ - ✘╹◡╹✘

    オブジェクト指向でなぜつくるのか 第2版 作者: 平澤章出版社/メーカー: 日経BP社発売日: 2014/03/05メディア: Kindle版この商品を含むブログ (2件) を見る TL;DR 多くの人の「このを読むべきかどうか」という関心事に先に回答しておくと、「万人が読んでおいて損は無いとまでは言い切れないけれど、オブジェクト指向に興味があって元気もあるという奇特な人間は読んでも良い」です。 オブジェクト指向とは何か 平澤 章さんが書いた「オブジェクト指向でなぜつくるのか」というを読みました。オブジェクト指向を「難しいソフトウェア開発を楽に行うための総合技術」と表現しながら、「オブジェクト指向とは何か」という問いに対して現実的な解を与えようという一貫した姿勢に親しみを覚えました。 保守や再利用を目的とした技術 目的という側面では「オブジェクト指向はソフトウェアの保守や再利用をしやす

    「オブジェクト指向でなぜつくるのか」を読んだ - ✘╹◡╹✘
  • Qiitaのトップページのフィードの設計 - ✘╹◡╹✘

    @ainame user.articles.preload(:comments, :stocks_count) みたいにstocks_countのようなassociationを生やしており、stocks_countの内部実装はPreloaderが弄られていてIDだけ取ってる— 内製フレームワーク (@r7kamura) 2015, 8月 23 @ainame これを抽象化するために、Article.has_many(:stocks, counter: true) みたいにすると、article.stocksとarticle.stocks_countがほぼ同じSQLで同時に定義されるようになってる— 内製フレームワーク (@r7kamura) 2015, 8月 23 @ainame それを実現している実装がこれです / k0kubun/activerecord-precount https:

    Qiitaのトップページのフィードの設計 - ✘╹◡╹✘
  • デザイン変更するときキャプチャ撮りまくると捗る - ✘╹◡╹✘

    これまではどちらかと言うとDBやWeb APIみたいな開発作業が多かったけど、最近はHTML/CSSを触るようないわゆるWebデザイン的な作業をする機運が高まってきた。あんまりちゃんとやったことが無いために年始から色々と考えてて、まあその結実としてキャプチャ撮ると捗るという体験があったので書き残しておく。ちなみにキャプチャは無い。あとでデザイン変えたやつ公開したら過程を整理して紹介できると良いと思う。 過程を残すと意見をもらいやすい 『藤村龍至 プロトタイピング-模型とつぶやき』というの中に、プロトタイプとして建築模型をつくっていく過程の話がある。与えられた条件を元にまず最もシンプルな状態から始め、課題を見つけながら少しずつ改善を加えていく様子が実例とともに紹介されている。この作業を反復しながら適用していくことで、模型の状態を都度更新していく。この方法には、設計者以外の人でも設計過程を見

    デザイン変更するときキャプチャ撮りまくると捗る - ✘╹◡╹✘
    kitokitoki
    kitokitoki 2015/01/24
    「Command + Shift + 4 」
  • HerokuのつくってるAPI関係の便利なやつ - ✘╹◡╹✘

    JSON Schema for the Heroku Platform APIでも紹介されているように、HerokuAPIはJSON schemaで記述されたAPIの仕様を返すようなAPIがあって(ややこしい)、Auto-generating a Go API client for Herokuのようにこれを利用してAPIクライアントを自動生成するようなこともやってる(単なるアート作品じゃなくて実際に運用されているので偉い)。Herokuが出してるAPI関連作品の1つにcommittieというのがあって、JSON schemaを利用してAPIの仕様を定義して、それをRack middlewareで利用しようというもの。前に試しに似たようなのつくってたので良いのが出てきて良かった。 Committieは大きく分けて3種類の機能を提供していて、1つは番環境で普通に使うやつで、リクエストをv

    HerokuのつくってるAPI関係の便利なやつ - ✘╹◡╹✘
  • ハロウィンなのでHTMLをぶるぶる震わせてみました - ✘╹◡╹✘

    使い方 ぶるぶる震える ↑このリンクをブックマークに登録して使ってください 説明 適当なJavaScript製のHTML-Lintを実行して、検知されたHTML要素をCSSでぶるぶる震わせます。 チャットで雑談してたら急に震わせたくなって10分ぐらいで作ったのでだいぶ雑です。 実装 jQuery + jRumble + curtisj44/HTML-Lint https://gist.github.com/r7kamura/bc1577d4410891ade243 誰かJavaScript製のかっこいいHTML-Lintつくってください Webサイトつくってる人は開発環境に入れておくと便利かもしれません

    ハロウィンなのでHTMLをぶるぶる震わせてみました - ✘╹◡╹✘
  • Webtail - ✘╹◡╹✘

    https://github.com/r7kamura/webtail 昨日ブログに書いたものをつくった。 使い方 標準入力を受け取ってブラウザに出力する。 $ gem install webtail $ tail -f log/development.log | webtail 拡張 ~/.webtailrc にJavaScriptを書けば、1行出力されるたびにそのコードが実行される。 var line = $('pre:last'); var text = line.text(); // Change empty line to border with lime color if (text == '\n') { line.css({ margin: '3em 0', height: 1, background: 'lime' }); } // Change SQL lines to

  • httpd.confについて調べたのでまとめたよ - とある技術の備忘録

    最近学科の友人3人とサーバ/セキュリティについての勉強会を週1で行っていて、毎回何か調べてくることになっており、今回は apache の設定について少し調べてきました。初心者がまとめたので間違っている部分があるかもしれませんが、勉強の役に立てて頂ければ幸いです。 httpd.confはどこにある? 最小限のhttpd.conf 3つのセクション セクション1: GlobalEnvironment セクション2: MainServerConfiguration セクション3: VirtualHosts モジュールの追加 外部設定ファイルの読込み サーバリソースの監視方法 httpd.confはどこにある? OSによって異なりますが、以下の階層に置いてある可能性が高いです。 CentOS、FedoraなどRed Hat系 /etc/httpd/conf/ SUSE系、MacOSX /etc/a

    httpd.confについて調べたのでまとめたよ - とある技術の備忘録
  • Mechanize1.00を解説するよ - とある技術の備忘録

    Ruby(!!注意: 未完成)目次 Install Usage--------------------------------------- 友人とMechanizeを使って作業することになったので、拙いながらも解説します。Mechanize1.00ってのはWeb2.0みたいな感じじゃないです。ライブラリのバージョンです。まずは公式のドキュメントに軽く目を通しましょう。概要が書いてありますね。MechanizeはRubyRubygemsライブラリで、これを使えばHTMLベースのWebページへのスクレイピングを行うことができます。Mechanizeを使えば、Webサイトへの操作を自動化できます。 (公式ドキュメントから抜粋) The Mechanize library is used for automating interaction with websites. Mechanize a

  • 1