blog

紫陽花

思考の整理

AmazonCloudFrontでRailsのAssets周りにある静的ファイルをCDN配信する

AmazonCloudFrontでRailsのAssets周りにある静的ファイルをCDN配信する RailsでアプリのassetsをCloudFront経由で配信した時の話 問題と解決 Railsのアクションキャッシュ導入時、Webサーバ内からassetsの配信を行っていた。 その場合、Deploy時にassets pre…

Rails ActionCacheを導入する

Webアプリケーションのパフォーマンス改善として、RailsのActionCacheを導入しました。 Railsのキャッシュに関する概要はRailsGuidesが一番わかりやすかったです。 Rails のキャッシュ: 概要 「キャッシュ(caching)」とは、リクエスト・レスポンスのサイク…

Rails CarrierWave アップロード画像を良い感じに圧縮するGem作った

Rails CarrierWave アップロード画像を良い感じに圧縮するGem作った Railsで画像アップロードを行うGemにCarrierWaveがあります。 そのCarrierWaveのextension的位置付けの圧縮機能を簡単に実装するGemを作りました。 carrierwave-optimize_image Ruby Gems …

オブジェクト指向のこころ 読んだ まとめ

オブジェクト指向のこころを読み終えました オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)作者: アラン・シャロウェイ,ジェームズ・R・トロット,村上雅章出版社/メーカー: 丸善出版発売日: 2014/03/11メディア: 単行本(ソフトカバー)この商品を含…

Rails, Carrierwave, MiniMagick, Piet, 画像アップロード, 画像圧縮

Railsで画像をアップロードし、かつ画像圧縮も行いたい時の実装をメモで残す。 環境 Macbook OSX 10.11.6 Rails 5.0.0 Ruby 2.3 Carrierwave Piet MiniMagick Gem 実装に必要なGemをインストール gem "carrierwave" gem "piet" gem "mini_magick" bundle ins…

リファクタリング:Rubyエディション 読んだ

「リファクタリング:Rubyエディション」 読みました。 リファクタリング:Rubyエディション作者: Jay Fields,Shane Harvie,Martin Fowler,Kent Beck,長尾高弘出版社/メーカー: アスキー・メディアワークス発売日: 2010/02/27メディア: 大型本購入: 9人 クリッ…

あけましておめでとうございます 2017

2017年もよろしくお願いします。 4月からはついに社会人としてスタートします! イケてるRubyエンジニアになれるように頑張ります!

Singletonパターン Ruby

シングルトンパターンとは 作成したクラスのインスタンスが唯一であることが保証される 唯一であるがゆえに、生成した1つだけのインスタンスにアクセスすることができる。 実装 Rubyにはsingletonと呼ばれるモジュールが定義されているためこれをrequireし、…

Compositeパターン Ruby

Compositeパターン コンポジットパターンとは あるものが同じような下位のもので作られているという考え方 大きなオブジェクトが小さな子オブジェクトから構成されていて、その子オブジェクトもさらに小さな孫オブジェクトでできていたりする 階層構造やツリ…

開発での小ネタ その2

開発での小ネタ その2 普段の開発で得た知見を書き留めておく YouTubeへのリンクでクエリを付加するロジック DBにURLが保存してありすでに存在すればそのまま。タグが付いていなければ付加する こちらを参考にしました。 def youtube_url uri = URI.parse("h…

Observerパターン Ruby

Observerパターン オブザーバーパターンとは Observerとは「観測者」 あるオブジェクトの状態が変化した際に、そのオブジェクト自信が「観測者」に「通知」をする仕組み。 オブザーバーは3つのオブジェクトで構成される。 サブジェクト(subject):変化する側…

Strategyパターン Ruby

Strategyパターン ストラテジーパターンとは 抽象的な処理と具象的な処理を分離することで、 変化に強い構造を実現する。 委譲を用いてアルゴリズムを変更可能にする。 目的の部分としてはテンプレートメソッドパターンと似ているが、 問題に対する解決のア…

TemplateMethod パターン Ruby

TemplateMethodパターン テンプレートメソッドパターンとは 抽象的な処理と具体的な処理を分離することで、 変化に強い構造を実現する。 2つのオブジェクトによって構成される。 骨格としての「抽象的なベースクラス」 実際の処理を行う「サブクラス」 用い…

Rubyを用いてデザインパターンを学ぶ

オブジェクト指向には設計原則とデザインパターンが存在する。 デザインパターンとは Gang Of Four(GoF)が定義したもの Javaで書かれた本がある。 「オブジェクト指向における再利用のためのデザインパターン」 1999/10 出版 プログラミングにおいて繰り返し…

Rubyの配列展開 *[a, b, c]

Rubyの配列展開 array = ["a", "b", "c"] *array # => a # => b # => c arrayのオブジェクトが入った変数の先頭に*(アスタリスク)をつけることでarray[0] array[1] array[2] の出力をしてくれる。 Rubyの中でも地味な機能ではあるけれども便利。筆者はこの機…

git cherry-pick is 良い

学びをメモ:Gitを使っていて特定のブランチの特定のコミットのみを新しく作ったブランチに反映させたいなという場面がありました。 git rebaseもあるけどそれだと全てが過去のコミットとして反映されるから嫌だな〜、何か良い方法はないかな〜、と探していた…

Rails kaminariにモンキーパッチをあててmetaタグをいい感じにする。

Railsでページネーションを実装するライブラリ、kaminariに対してモンキーパッチを当てました。 人生初のモンキーパッチでもあったのでやったことをまとめておこうと思います。 なにをやるのか? 環境は、Ruby 2.3.0 Rails 5.0.0 kaminari 0.17.0今回モンキ…

メタプログラミング まとめ

メタプログラミングRuby 第2版 を読んで学んだことをまとめておく。 メタプログラミングの中身 メタプログラミングとはコードを記述するコードを記述することである。Rubyはほぼ全てがオブジェクトでできている、純正オブジェクト指向の言語。 オープンクラ…

基本情報技術者試験に合格しました。

4月の第3週目に行われた基本情報技術者試験に合格しました(できました)。パチパチ合否の発表だけ先日発表されて受験番号を確認しました、なおまだ合格証書は手元に届いてません。6月上旬あたりにはくるのかな?基本情報を取ろうと思った理由は、特別に就活で…

LINE botでレストラン検索してみた

LINE botが先日公開されました。公式プレスリリースはこちら。 linecorp.comLINE CONFERENCE TOKYO 2016で LINE bot オープンAPIを公開する告知があり、 2016.04.07日からトライアルとして1万人限定でAPIの提供が開始されました。それに伴ってweb界隈では続…

Wantedly Spring Intern 2016に参加してきた

インターン参加エントリー タイトル通り、3月2日から3日まで、Wantedly Spring Intern 2016に参加してきました。 たった3日間という短い時間でしたがたくさんのことを学べて気付けて充実した時間を過ごしました。忘れないようにやったことなどを書き留めてい…

PR TIMESインターンに参加してきた。

これはインターン参加エントリーです。2/22(月)から2/24(水)までの3日間 PR TIMES ウィンターインターン2016 内定直結ハッカソン 3days に参加してきました。詳細はこちら。↓ prtimes.co.jp3日間、PR TIMES, Inc.さんにお世話になり、開発を行ってきました。…

Capistrano3 でsudo passwordを要求された時に入力できるようにするGemに助けられた。

題名のとおりです。Capistrano3でdeployを行った際にsudoコマンドでmkdirを行いたい際にpasswordを要求されて処理が止まってしまう事案が発生してしまいました。 2時間ほど悩んだところちょうど良い感じのGemを見つけで、これでいけるのかなぁ。。。と半ば不…

最近の学び 雑記

最近学んだことを雑記として残しておきます、あくまで雑記なので読んでもあまり理解できないかもしれません。 最近職場の方にビシバシ教わっているのでそのまとめになります。めちゃくちゃわかりやすく教えてもらっていて2004年ごろから開発されているエンジ…

GithubとbitBucketに対応しているCIツールwercker

この記事はWIPですBitbucketにCIを導入しようということになってwerckerを実装したのでまとめておきます。 色々とネットにある情報を見ながら実装したのですが、まずサービス自体が日本語対応していません。 また、Qiitaやブログにある情報も少なく、かつ201…

TeamGeek 読んだ。まとめ

TeamGeek Googleのギークたちはいかにしてチームを作るのかwww.amazon.co.jp読みました。前から読みたいと思っていたのでちょうど小説が読み終わったタイミングで書店をぶらついたら見つけたのですぐ手にとってさっと読み即買いしました。 この本は技術書と…

ストレングスファインダー 自分の強みを知る

自己分析は色々とやってきたのですがストレングスファインダーってやつが凄すぎるので紹介。 就活生とか自分の過去を掘るだとかやりたいことを見つけるだとか色々とやるけど、自分の強み知りたいならストレングスファインダーをやっておけばだいたいおk www.…

2015年に読んだ本、まとめ。

昨日書いた記事を今年最後の記事にしようと思っていたのですが、時間があるので読んだ本でもまとめてみようかなと思います。 主に技術書の紹介(書き留め)になります。これから新しくWeb開発の勉強を始める方の参考になればなと。 楽しいRuby www.amazon.co.j…

2015年の振り返り

2015年もあっという間でした。簡単に振り返ってみます

許可を求めるな、謝罪せよ

久しぶりにイベントに参加してきました。 careergohan.connpass.com 昔ほど積極的に外部イベントに参加することは多くはなくなりました。 今回はおしゃれな代官山で行われた、@type (転職@type - マッチする求人情報が分かる、探せる、転職サイト)とエンジ…