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

【LT】encrypted secretsについて社内LT大会でしゃべってきました。

はじめに Rails5.1で導入されたencrypted secretsについて所属する会社の社内LT大会で発表してきました。 0323社内LT大会 from Akira Ohta 内容 5分だったので大したことは書いていませんが、機能の説明以外はstaging問題やメインです。 所感(使えそう?) …

rebuild.fmのエピソード検索ができるwebサイトを作った

はじめに Rails5.1の新機能を試すために、簡単なRailsアプリを作りました。 rebuild.fmのゲストとshownoteにフィルタリングをかけて検索できるようにしたものです。 heroku: https://shielded-river-53880.herokuapp.com/ idcf: http://rebuildfm-search.wat…

【LT】Railsのyaml、巨大になる前になんとかしようという内容で発表してきました!

はじめに 最近しごとで巨大なyamlを何とかするという仕事をやっていて、いろいろ思うところがありました。 これは今後の糧にしよう!とおもい、スタートアップRails勉強会で発表してきました。 そのyaml放っておくと大変なことになりますよ from Akira Ohta …

Qiitaに初投稿!「hamlでタグを改行しない方法の整理」という記事を書きました

はじめに タイトルの通り、Qiitaデビューした。前々から投稿したいと思っていたのだが、「ネタがない」「時間がない」などの言い訳をしつつ渋っていましたが、この度初投稿しました。 なんでこの記事を書いたのか 以前働いていたところでは、デザインはデザ…

bootstrapとsimple_formのチュートリアル

目的 rails newしてから、bootstrapで管理画面を作るのに一番早い方法が何かを探っていた。 rails_adminやactive_admin等もあるが、今回はある程度自前カスタマイズを想定しているので、全部ビルトインみたいな感じのものは使わない。 bootstrap系のgemとsim…

これだけ抑えればOK!権限管理のDB設計デザインパターン

目的 最近仕事で権限管理の設計をやっていたのだが、設計でかなりはまってしまった。 今後ははまらないように、DB設計や判断基準をまとめておく。 ベースとなるパターン ユーザとロールは多対1で、ロールとアビリティは多対多に関連している。 権限管理やり…

【Railsチュートリアル】慣習的に正しいコードの書き方

目的 Railsチュートリアルで「このコードは慣習的に正しくない」という記述があるが、なぜなのかを説明する。 背景 Railsを仕事で書いていく上で、モデル同士の関連の定義とその使い方をわりと意識しているのだが、いつどこで勉強したのか怪しかった。 出典…

sendgrid-rubyを使ったSendGridでのメール送信

はじめに この記事は「Sansan Advent Calendar 2016」7日目の記事です。 昨日はerikoobeさんによる「エンジニア未経験者が Ruby を学んでみた件」でした。 特に「2. 未経験者から見た、エンジニアの世界」は共感できたのと同時に、やる気のある人へのサポー…

【Ruby】【Rails】RAILS ANTIPATTERNS、chapter3 viewのまとめ

目的 RAILS ANTIPATTERNSをのchapter3(view)の箇所を読んだのでまとめました。 Rails AntiPatterns: Best Practice Ruby on Rails Refactoring (Addison-Wesley Professional Ruby Series)作者: Chad Pytel,Tammer Saleh出版社/メーカー: Addison-Wesley Pro…

【Rails】【RSpec】【shoulda-matchers】validate_uniqueness_ofのscoped_toではまったときのまとめ

目的 shoulda-matchersでモデルのバリデーションのテストを書いていたときに、Railsのアトリビュートメソッドのキャッシュの動きで若干はまったため、簡単にまとめる。 github.com shoulda-matchersの簡単な導入 shoulda-matchersはgemで、RSpecやMinitestに…

【Rails】権限管理のgem「pundit」を使ってみたときのまとめ

目的 punditというgemを使う際に「Rubyist Magazine - 権限管理のgem、Punditの紹介」を参考に作ったときのまとめ。 railsにapp/policiesディレクトリって何を入れるのかというところを前回調べたのですが、代表的なものとしてpunditというgemを使うと出て来…

【Rails】policiesディレクトリの使い方

目的 railsにapp/policiesディレクトリを作るときに、中身には何を入れるのかまとめる。 パーフェクトRuby on Railsの9章を読んでいて、コールバック・バリデーションをモデルから分離して、独立したクラスを作る方法を学びました。 パーフェクト Ruby on R…

【パーフェクトRails】バリデーションをクラスに分離する

目的 パーフェクトRuby on Railsの9章の9−2「複雑なバリデーションとコールバックを整理する」を読んでいて 「バリデーションをクラスに分離する」について、知らないことがいくつかあったのでまとめます。 パーフェクト Ruby on Rails作者: すがわらまさ…

【パーフェクトRails】コールバックをクラスに分離する

目的 パーフェクトRuby on Railsの9章の9−2「複雑なバリデーションとコールバックを整理する」を読んでいて コールバックをクラスに分離する場面ややり方がよくわからなかったのでまとめる。 パーフェクト Ruby on Rails作者: すがわらまさのり,前島真一,…

【Ruby】【キャッシュ】dalli(memcachedのクライアントgem)を使ってみました

目的 memcachedとrubyのmemcachedクライアントであるgemのdalliを使ってみたのでまとめ memcached.org github.com 少し前に、キャッシュについていろいろやらないといけない機会があったのですが キャッシュを実現するミドルウェアを触ったことがなかったた…

【DB設計】T字型ER入門

目的 T字型ER手法を勉強することになったので、概略とまとめ データベース設計論 T字形ER―関係モデルとオジブェクト指向の統合をめざして作者: 佐藤正美出版社/メーカー: ソフトリサーチセンター発売日: 2005/09メディア: 単行本購入: 3人 クリック: 42回こ…

なぜ実践DDDが理解できないのか

目的 実践ドメイン駆動設計を読んでいたが、思うように理解が進まないので、なんでなのかを分析する。 実践ドメイン駆動設計作者: ヴァーン・ヴァーノン出版社/メーカー: 翔泳社発売日: 2015/03/19メディア: Kindle版この商品を含むブログ (2件) を見る 最近…

【DB設計】「楽々erdレッスン」のまとめ

目的 「楽々ERDレッスン」を読んだので、そのまとめ 楽々ERDレッスン (CodeZine BOOKS)作者: (株)スターロジック羽生章洋出版社/メーカー: 翔泳社発売日: 2006/04/18メディア: 単行本(ソフトカバー)購入: 72人 クリック: 940回この商品を含むブログ (120件…

【読書ノート】SOFT SKILLS ソフトウェア開発者の人生マニュアル(学び方を学ぼう、後半)

目的 soft skilsに載っている独学の方法をまとめる。(後半) 前回の記事は以下 waterlow2013.hatenablog.com soft skilsという本がちょっと前に話題になっていたのですが、その中に「学び方を学ぼう」という章があります。 SOFT SKILLS ソフトウェア開発者…

【読書ノート】SOFT SKILLS ソフトウェア開発者の人生マニュアル(学び方を学ぼう、前半)

目的 soft skilsに載っている独学の方法をまとめる。(前半) soft skilsという本がちょっと前に話題になっていたのですが、その中に「学び方を学ぼう」という章があります。 SOFT SKILLS ソフトウェア開発者の人生マニュアル作者: ジョン・ソンメズ出版社/…

【備忘録】Atomの今後使っていきたいキーバインディング

目的 勉強の復習と自分用チートシート目的。 最近Atom実践入門という本を読んで、まだまだAtomには知らない機能がたくさんあることを改めて感じました。 Atom実践入門──進化し続けるハッカブルなエディタ (WEB+DB PRESS plus)作者: 大竹智也出版社/メーカー:…

【Rails】DatabaseCleaner導入でテストが遅くなった話

現在仕事のrailsプロジェクトで、feature specの導入のところでdatabase_cleanerの設定でいろいろ時間を費やしたため、時間を費やした箇所についてまとめておこうと思います。 その時のRailsバージョン/Rubyバージョン:3.2.11/1.9.3。古い! DatabaseCleane…

【Ruby】配列の&と|の機能について

特殊なルールで配列を並び直す。たとえば ['いち', 'に', '', 'よん', 'なな', 'ご'] から ['に', 'よん','いち', 'ご', 'なな'] を作りたい(奇数が優先、2で割る等の数値演算はできない)ときはどうするか。 ①まず以下のようにやることを思いついた。 ['い…

【ActiveRecord】exists?の引数にwhereクエリの内容を書いてみたらうまくいかない。

Person.exists?(1) # => true # SELECT 1 AS one FROM `job_offers` WHERE `job_offers`.`id` = 1 LIMIT 1 Person.exists?('id = 1') #=> false # SELECT 1 AS one FROM `job_offers` WHERE `job_offers`.`id` = 0 LIMIT 1 なぜか? exists?にArrayもしくはH…

railsエンジニアの勉強法(読む本とか)まとめ

初心者レベルを脱却するための記事とか読む本とか、いろいろと溜まってきたのでまとめておこうと思います。 勉強するのは常に一人なので、歩みは非常に鈍いのですが…Rails で "とりあえず動くコード" を書けるようになった人が次に遭遇する問題とそれを解決…

【ruby】モジュールをextendした時の動き

タイトルそのまんまです。 疑問だったのでいろいろ調べてみたのですが、メタプログラミングRubyの特異クラスのところを読んでいたらわかりました。 オブジェクトからモジュールをextendすると、そのメソッドはオブジェクトのクラスではなく特異クラスに入る…

【Google Analytics】簡単!メルマガの開封数を取得する方法

お仕事で使ったTipsです。 メールマガジン(以下メルマガ)がどのくらいの人に開封されているかを探る方法のメモです。 ※以下の方法はHTMLメールの開封数しか取れません。簡単に言うとimgタグを使ってサーバにリクエストを送るものです。 前提として日本語の…

【ruby】【備忘録】ユーザをいくつかのグループに分ける・カウントする

備忘録 記事のタイトルと冒頭文のテストをする。 そのために、オブジェクト(ユーザ)を4つのグループに分けたい。 分け方に対する議論は一旦置いておいて、ひとまずidで順番にグループ分けをしてみる。 User = Struct.new(:id, :email, :test_pattern) user…

【ruby】破壊的操作がなければdupは使って良さそう

最近rubyでdupというメソッドを使いました。dupと言うのはオブジェクトの”コピー”を作るのですが、一般的には以下の様な懸念点が有ります。 Marshalで配列やハッシュをディープコピーする 簡単に言うと a = ["foo", "bar", "baz"] b = a.dup a[0].upcase! p …

たのしいRubyもらった

今日から頑張ります!!!!!

Effective Rubyを読んで気になったこと(reduce・each_with_object・inject)

途中までですが、Effective Rubyを読んでみました。Effective Ruby作者: Peter J. Jones,arton,長尾高弘出版社/メーカー: 翔泳社発売日: 2015/01/09メディア: 大型本この商品を含むブログ (8件) を見る「項目19 reduceを使ってコレクションを畳み込む方法を…

【番外編】ニッポンのジレンマ

技術関係なしです。ニッポンのジレンマという番組のスペシャルが年始1/1にやっていたので見ました。 どんな番組かというと、1970年生まれ以降の人が集まってあるテーマに沿って議論するというもの。真剣10代しゃべり場(死語?)のターゲット変えた版のよう…

Railsのソースレビューで印象に残ったこと

・ link_to、image_tagを使おう。 erbやhamlでは(slimも?)link_toを使わずとも以下のようにコードを埋め込めます。 <a href="<%= url>">"><%= text %></a> %a{ href: url}= text しかしながらモデルのインスタンスを渡すだけでパスを作ってくれたり、config/routesのasの指定を取…

私のよちよち.rb活用法

この記事はよちよち.rb Advent Calendar 2014 - Adventar11日目の記事です。 10日目はbonbon_0605さんによるSeleniumで明示的に要素検索の待ち時間を設定するでした。 Seleniumに対しては前々から使ってみたい気持ちと、怠け癖が均衡していたのですが、bonbo…

【Ruby】【RSpec】The RSpec BookをRspec3系とTurnipで読み替え

yosemiteにアップグレードしたせいなのかわかりませんが、Ruby1.9.2以前のRubyがインストールできなくなってしまいました。RSpec Bookは1.9.2か1.8.7ベースで書かれているのですが、Rubyは2.1.3、RSpecは3.1.7、またCucumberではなくTurnipを用いてこの本を…

【CoffeeScript】書き方いろいろメモ

最近はRubyよりもCoffeeScript使う時間のほうが長いwaterlowです。 触りつついろんなソースを読みつつしてるうちに書き方がなんとなくわかってきたので書き留めておきます。 極力かっこは省略したい! 理由:インデントで文が解析されるのをフル活用したい。…

【haml】【sublime】【はまってる】build systemをautomaticにするとビルドされない

sublime textでhamlの勉強をしようと思った矢先にはまりました。 下記の記事を参考にsublimeで保存時に自動的にhtmlに変換してくれるような環境を作ろうとしてました。 Hamlで開発効率アップ|Sublime text 2でビルドしてみました。 | Developers.IO Haml …

【haml】【Ruby】ちょっとした処理をrubyで書く

htmlからhamlを作ってくれる便利なサイト HTML2Haml | Convert HTML Snippets to Haml htmlでデザインが上がっているときはこれでhamlを作って、あとrailsなのでaタグやinputタグをlink_toやform_forなどに書き換えているわけですが、いくつか難点が。1.→%…

【JS】【Coffee】CoffeeScriptはじめました

最近RubyよりJavaScriptのほうがなんかいいです。 viewをしっかり作るなら避けては通れないJSの話です。 そして最近は書くのはCoffeeScriptのみとなってしまいました…。自分で書けるように少しづつ勉強してきます。環境は以下のどちらかを使う。http://coffe…

【偉大なプログラマに学ぶ】アジャイルソフトウェア開発宣言の17人(2)

アジャイルソフトウェア開発宣言 プロセスやツールよりも個人と対話を 包括的なドキュメントよりも動くソフトウェアを 契約交渉よりも顧客との協調を 計画に従うことよりも変化への対応を 間が開いてしまいましたが第二弾です!! 最近新しいコミュニティに…

【Rails】modelでroutes.rbが作ったpathを使うとき

先週から詰まっていた所がやっと解決した。 Railsのmodel内のクラスからuser_うんたら_かんたら_pathを一生懸命呼ぼうとしてた。 でも未定義と言われる…。 でもあてはただのstringだしどうしたもんかと…。正解としては、まずmodelからは基本は上のようなpath…

【Rails】なんたらかんたら_pathって実際はなにしてるんだっけ?的な話

RubyとRailsの環境 $ruby -v ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0] $rails -v Rails 4.1.5ここで土台作りする。 $rails new study_path $cd study_path $rails g scaffold book isbn:string title:string price:integer publish:s…

hamlやるときに詰まったとこ

最近ちょっと触っているhamlについて触れました。 ただこいつ、Railsを書くとやたらはまります。(私だけ?) しかも大体の場合が構文エラーなので、割としょうもない。 なのでそういった手間を少しでも省こうということでここにまとめます。 兄弟のタグ(?…

【偉大なプログラマに学ぶ】アジャイルソフトウェア開発宣言の17人(1)

アジャイルソフトウェア開発宣言 プロセスやツールよりも個人と対話を 包括的なドキュメントよりも動くソフトウェアを 契約交渉よりも顧客との協調を 計画に従うことよりも変化への対応を 今まではプログラムの入門書をただただ読んで楽しみながら勉強してい…

【haml】もうhtmlもJavaScriptも直には書かないの??

Railsの本は数冊手元にありますが、どの本もerbを使ってviewを記述していました。 しかしながらerbを使うのはスタンダードではないようで…。 急ピッチでhamlの勉強です。 Hamlとは? マークアップ言語。簡単な記述でHTMLを生成できる。haikuのようにシンプル…

僕も書きます退職エントリ

関東のベンダー子会社系SIerを退職しました。 退職前の仕事 通信事業者相手の部署のインフラチームに所属していました。チームとしてはかなり手広くやっていましたが自分はインフラのセットアップ(OSやミドルウェアのインストール)をしてました。また常駐…

【JS】Chart.jsで簡単な勉強タイマー

waterlowです。お盆あけましたね!お盆前からJavaScriptをちょこちょこ触っていたわけですが、非常に簡単なものを作ったので公開します。 勉強タイマー 30分/1サイクルで25分間インプットして5分間アウトプットするためのタイマーです。 この25分、5分のサイ…

【JS】テストコード書き書きしながら関数の勉強3

引き続き下記の本を読んでの感想です!テスト駆動JavaScript作者: Christian Johansen,長尾高弘出版社/メーカー: アスキー・メディアワークス発売日: 2011/11/25メディア: 大型本購入: 19人 クリック: 331回この商品を含むブログを見る(これを読んだらなに…

【JS】テストコード書き書きしながら関数の勉強2

前回に引き続きJavaScriptの関数の勉強です。今回はスコープ 5.3スコープと実行コンテキスト ホイストと呼ばれる現象が起こる。 仮引数:変数オブジェクトに対応するプロパティを追加。値は実引数と一致 関数宣言:変数オブジェクトに対応するプロパティを追…

【JS】テストコード書き書きしながら関数の勉強

テスト駆動JavaScript作者: Christian Johansen,長尾高弘出版社/メーカー: アスキー・メディアワークス発売日: 2011/11/25メディア: 大型本購入: 19人 クリック: 331回この商品を含むブログを見る読んでます! 5.1関数の定義 関数の定義の方法には3種類 1.…