blog

紫陽花

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

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

Railsの画像遅延ロードにはlayzr.jsがいいぞ

Webサービスのパフォーマンスを向上させるために表示する画像の遅延ロードを実現したい! そんなときにオススメなlayzr.jsを紹介します。筆者は実際にプロダクトに実装しました。 画像の遅延ロードをすることで得することは? 読み込み速度が速くなったり通…

git cherry-pick is 良い

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

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

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

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

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

DBひでんのしょ

データベース(以下:DB)に関する自分の知見を整理しておきます。 DB秘伝の書という記事タイトルですが、公開した時点でもはや秘伝でもなんでもないですね。 ここにはDB設計に関するごく普通の考え方をまとめて書いています。 前述 なぜDBが必要なのか? DBを…

Rails5 に Draper 導入した際にエラーが出た

Rails5を使ってて出たエラーをメモRails5が正式にリリースされてもうすぐ2ヶ月ほど経とうとしています。Ruby on Rails最近新しく作り始めたアプリケーションにRails5を採用して開発を始めました。 そこで開発を効率よく進めていくために色々とGemを導入して…

Rails 複数のカラムに 一意制約 (ユニーク)を設ける

Rails ActiveRecordで複数のカラムに対して一意制約を設ける。複合一意制約複数のカラムの組み合わせがユニークであってほしい場面に遭遇しました。例えば、Siteテーブル Keywordテーブルが存在する時、Keywordテーブルにある site_id と name そして date …

Rubyのあれこれ、

あれこれ 普段Rubyを触っていてこれは学びとして記録しておきたいなと思ったものを紹介していきます。 OpenStruct Rubyには手軽に構造体を作成することができるOpenStructクラスが用意されています。 require 'ostruct' ab = OpenStruct.new ab.foo = 25 p a…

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

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

メタプログラミングRuby 第2版 読んだ。

読み終えました。メタプログラミングRuby 第2版メタプログラミングRuby 第2版 : Paolo Perrotta, 角 征典 : 本 : Amazon.co.jp この記事を書く前に内容を理解するために3週ぐらい読み直してるので、最初に読み終えたのは半月ほど前になります。最近、雨が降…

Emacs Magit使い方

Emacs の拡張パッケージ Magitを紹介します。 Magitってなに? MagitとはテキストエディタEmacsの機能を拡張するパッケージの一つです。 Emacs上でGitの操作を行うことができるようになります。github.comこんな感じにEmacs上でGitログを追えたりもします。 …

RubyのブロックとProcと、ときどきlambda

Rubyはほぼ全てがオブジェクトである。 ブロック ブロックとは、 {}もしくはdo...endで定義するもののこと。 ブロックを定義できるのはメソッドを呼び出すときだけ。 メソッドに渡されたブロックはyieldで呼び出される。 def method(a, b) a + yield(a, b) e…

Swift CocoaPod setup 導入手順

CocoaPods とは? CocoaPodsはObjective-C そして Swift のライブラリ管理ビルドツールです。 RubyでいうRubyGemsと同じ位置付けになります。CocoaPods 公式 CocoaPods.org CocoaPodsを導入する CocoaPodsはRubyGemを使用するためRubyが入った環境を必要です…

Rails 自分なりのapp以下のディレクトリ構成

RubyのアプリケーションフレームワークRailsは便利なもので、コマンド1つでアプリケーション開発を行うために必要な環境を一瞬で構築してくれます。さらにRailsは開発を快適にかつ、素早く行っていけるように設計されており、近年のWebスタートアップ系の企…

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

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

はてな伊藤直也氏MIJS講演「プログラマでいること」を読んで

小野和俊さんのブログがとても面白く読み漁ってます。記事タイトルの、はてな伊藤直也氏MIJS講演「プログラマでいること」で語られている伊藤直也さん自身のお話がぐっとくるものがあったので紹介web界隈でお仕事している人なら知る人ぞ知る達人プログラマー…

【メモ】盗む側にもキャリアが必要なんだよって話

今どきの若手育成にひそむ3つの思いこみ というタイトルのスライドが"なるほど"といった感じだったのでメモがてら投稿。 今どきの若手育成にひそむ3つの思いこみ from Mariko Hayashi www.slideshare.net若手の育成者向けに作られたスライドですが、育成され…

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

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

プログラミング作法を読んで

プログラミング作法 を所々かいつまんで読んだ。技術本の中でも、名著の中の名著と言っても過言でもないこの本。C言語とUNIXの開発者のブライアン・カーニハンとロブ・パイクがスタンダードなプログラミング、そしてその本質的について書いた本です。 初版は…

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.さんにお世話になり、開発を行ってきました。…

ソードアート・オンラインのエントリーしたっ

エントリーしました、選考倍率やばそうだけど。笑www.vrmmo-project.jpもともとOnlineMMO RPGは小学生の頃からやっていたので大好きです。睡眠時間削りながらもレベル上げに励んでいたりしました。 もちろんアニメのソードアートオンラインも2012年放送時に…

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

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

プログラマー風林火山

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

最近の学び 雑記

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

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

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