読者です 読者をやめる 読者になる 読者になる

Yamakichi’s blog

yamakichiの技術ブログ

Rails Routing Constraints

Constraintsとは Railsのroutingに存在する機能 routingに制限を設けることができる デフォルトで定義されている カスタムで制約を作成することも可能 セグメントの制限 get "books/:id" => "photos#show", constraints: { id: /[A-Z]\d{5} } 上記はconstrai…

社会人1年目

無事3月に大学を卒業し、今日から社会人になりました。 都内のWeb系の企業でRailsアプリの企画と開発をやっていきます。 まだまだひよっこエンジニアなので日々精進していきたいです。 今年の目標は、去年よりもブログ記事を多く書くことなので、日々の開発…

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メディア: 単行本(ソフトカバー)この商品を含…

Reactでテストを行う まとめ その2

実際にテストを書いていきたい 前記事で紹介したツール。 React enzyme Mocha sinon power-assert chai jsdom アサーションライブラリは好みで選ぶ。今回はpower-assertを使ってみる。 前提 今回はReactのコンポーネントに対してのテストを行います。 かつ、…

Reactでテストを行う まとめ その1

Reactでテストを行う まとめ Reactのテスト環境を構築する際に色々と調べた結果。 もうツールとか色々ありすぎてわけがわからん。 となったので。 もし自分と同じ境遇にいる人がいたら少しでも手助けになれば良いなと思い、自分が調べたことをまとめておく。…

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…

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

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

Rails ActiveRecordで値が変更する前後の値を取得する

ActiveRecordで値が変更する前後の値を取得することがあったのでメモ Rails 2.1あたりからActiveRecordの変更前後の値を取得する機能が備わっている。 method 意味 changed? 変更されているかどうか changed 変更されているattribute名の配列 changeds 変更…

Singletonパターン Ruby

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

acts_as_listとjQueryで並べ替えを実装する

jQueryのsortableを用いて並べ替えを実装する Rails acts_as_list モデルの並び順を簡単に操作できるようにするGem 昔のRails1系あたりでは標準で搭載されていたらしいが、 途中でGemとして切り離されて現在は独立したGemとして存在する。 Rails 1.x の時代…

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 出版 プログラミングにおいて繰り返し…

MySQL5.7 JSON型の使い方メモ

MySQL5.7から実装されたJSON型 使い方メモJSON型のテーブルを作成する CREATE TABLE `blocks` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(120) NOT NULL, `content` varchar(200) NOT NULL, `meta` json DEFAULT NULL, PRIMARY…

Rails select2でajax処理を行い1万件以上でもスムーズに動くようにする。

jQueryのライブラリでいい感じに選択機能を実装するselect2があります。 今回はselect2でajax処理を行う方法を紹介します。 本家サイト Select2 - The jQuery replacement for select boxes本家サイトのExamplesにもあるようにselect2にajax処理でデータを取…

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

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

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

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

slackからピザの注文に挑戦してみた

slackからピザの注文に挑戦してみた。\ピザ駆動開発/参考記事 qiita.com家入和真さんがQiitaに投稿しているのを見つけて面白そうだと思ってやってみました。 しかもちょうど小腹が空いた時にせっかくだしデリバリーでピザでも食べようかな、と思ったので。…

pixiv 2016 SPRING BOOT CAMPに参加してきたぞい

この春最後のインターン参加エントリーになります。 先週3/14(月) ~ 3/18(金) で行われたpixiv 2016 SPRING BOOT CAMPに参加しました。この記事を読む人はたぶんpixivインターンに興味を持っている人だと思うので、 今後pixivインターンに参加を検討している…

Rails URLにランダムな文字列を使いたい時に良い感じにやってくれるやつ

RailsでURLにランダムな文字列を使いたい時、他の人はどんな感じで実装しているんだろうかとおもってググってみると良い感じのgemを作っちゃってる人がいたので使わせてもらいました。詳細はこれ。 qiita.com記事が書かれたのが1年前と古いのでちゃんと動く…

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を見つけで、これでいけるのかなぁ。。。と半ば不…

プログラマー風林火山

プログラマー風林火山なるものがあるらしい。詳細はこちら。 小野和俊のブログ:プログラマー風林火山スターエンジニアの特徴をうまく四つに分けてそれに風林火山の名称をつけた分類、 確かにいろいろな特徴をもつエンジニアの方がいるけど、大きくこの4つの…

最近の学び 雑記

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

Werckerが450万米ドルの資金を調達

こんな記事を見つけました。 thebridge.jp今、というかここ最近werckerを触りまくっているのでとてもタイムリーな情報でした。 この規模で450万米ドルは結構大きめの資金調達ですね。werckerに関してはGithubやBitbucketの二つに対応しているところや、Docke…

CI wercker v2の使い方

この記事は2016年2月で動かす場合の使用方法を紹介しています。wercker自体が開発途中で仕様が変わったりするので注意してください。 また、この記事は常時更新して書き換えていきます。よりわかりやすくより読みやすくを目指していくので、読みにくさがあっ…

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

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

プロコンにはまりつつある

最近プロジェクトオイラーを解いてます。 projecteuler.net有名な数学者、レオンハルト・オイラーさんの名前をとったプロコンの問題を集めたサイトでこれを1日1問ペースで解いてます。 自分は高校から文系に進んだので数学は理系進学の人ほどの知識や経験は…

ブログをちょっぴり変えてみた

ブログのデザインをちょっぴり変えてみました。 何も手を加えずにいたのですが、ちょっといい感じにしようと思いいろいろといじってみました。 前よりは見やすいというか、サイトの雰囲気は良くなったんじゃないかなぁと思います。 ちょくちょく修正を加えて…

TeamGeek 読んだ。まとめ

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

Cookpad TechConf 2016 落選

題名の通り落選しました。。。techconf.cookpad.com250人の枠に1000人以上応募しているので落選してる人の方が多いのですが、行きたかったな〜 Cookpadの技術についても学びたかったのですが(Ruby on Railsを採用しているので)、クックパッドが運営しているH…

クオリティの高いコードを書こう、rubocop

最近、一回りも年が違う先輩のそばでプログラムを書いていてたくさんのことを学ばせてもらってます。 普段はRubyを書いているのですがそのRubyコードを先輩にレビューしてもらうとひどい書き方をしまくっていて笑われてしまいました。笑 ただ動くだけのコー…

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

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

2015年の振り返り

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

docker コマンド

Docekr コマンド一覧Dockerのくじらちゃんを動かすコマンドを紹介します。 docker pull イメージのダウンロード $ docker pull centos: 7 CentOSのすべてのタグのDockerイメージを取得する $ docker pull -a centos aオプションを指定すると、すべてのタグを…

ヨーダ記法について。 スターウォーズ公開記念

ヨーダ記法 if文を書いた際に定数を左辺に書く記法のことをヨーダ記法と言います。 # 普通の書き方 if(star == 10){ return NoYoda; } # ヨーダ記法 if(10 == start){ return YesYoda; } ヨーダ記法を使う理由 ヨーダ記法で書くと、比較(==)を誤って代入(=)…

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

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

Dockerのツールについて

Dockerはさまざまなツールや、サービスの総称そんなツールたちをを紹介します。 Docker Engine (Dockerのコア機能) Dockerイメージの生成やコンテナの起動などを行うためのDockerのコア機能, Dockerコマンドの実行や、Dockerfileによるイメージの生成も行い…

Railsで複雑なSQL文を投げたい時に使うArelTable

ActiveRecordについて Railsには標準でActiveRecordと呼ばれる機能が付いています、ORマッパーとも呼ばれ、modelとデータベーステーブルがリンクしていて、オブジェクト指向でデータを扱うことができる機能です。 詳しい話は以下を参照してください。 railsg…

Dockerについて

Docker 可愛いクジラのdocker Dockerとは、 コンテナ仮想化環境でアプリケーションを管理 / 実行するためのオープンソースのプラットフォームです DockerはLinux上で動作するのが特徴で、Go言語で書かれてます。2013年3月15日 カリフォルニア州サンタクララ …

Ruby On Railsについて

Ruby On Railsについて書く。 普段触っているフレームワークはコレ。 もう触り始めてちょうど11ヶ月ぐらい経つ。だいたい1年くらい Ruby On Railsはその名の通りプログラミング言語Rubyで動いています。 フレームワークってなんぞや、って人はカンタンにア…

簡単にカレンダー機能を実装できるライブラリ、FullCalendar

簡単にカレンダー機能を実装できるfullcalendarというライブラリがあるので紹介します。 fullcalendar.io ダウンロードは以下から http://fullcalendar.io/download/ 簡単にHTML内に埋め込み実装できます。 ダウンロードしてきた中身の、 「fullcalendar.min…

Gitで変更を破棄したい時

Gitでローカルに変更を加えたがそれらすべて破棄して変更前に戻したい。 git checkout ファイル名 これをgitを使っているディレクトリで実行、指定したファイル名へ加えられている変更は破棄される。 特定のファイルだけでなくディレクトリすべてを破棄し、…