コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

2018-06-01から1ヶ月間の記事一覧

暑いし土曜日なので本日の更新は1回休み

たまにはこういう回があってもいいと思う。 余談 そもそも1日記事書こうと思ったのは5月ぐらいの記事に思いをある程度詰めたのですが、モデルケースが実はあって以下のサイト。 koicの日記 RailsDMで登壇されていたの情報集めよーとか思ってみたら毎日投稿し…

JetBrains系IDEでRubyもPHPも使いたい場合はInteliJ Ultimateを使えば解決

実は知らなかったレベルの雑記 発端 とあるスクリプト言語別検証をやりたかったのでRubyもPHPも同じIDEでやりたい All Products Packは買っている いい方法ないかなーと思ったらUltimateがあった 難点 大本はJavaのIDEなのでに各IDEほど特化部分の機能がない…

Rubyで違う種類のErrorをrescueで補足して同一処理をやらせたい場合はカンマで区切る

なんかググってもストレートにヒットしなかったのでメモ 環境 $ ruby -v ruby 2.3.5p376 やりたいこと IOError と RangeError のときだけキャッチして同じ処理してほしいなーとかそういう時にどうやって書くか 答え IOError, RangeError みたいにカンマで区…

Chromeの翻訳しますか?をやんわり避ける方法

特定の言語ばかり使っていると、Chromeが気を利かせて「翻訳しますか?」と言って来てしまうのでそれを避けるための話 挙動 漢字だらけのサイトだと以下のようになる。 対策 その1 htmlタグにてlangを指定する <html lang="ja"> 見てのとおりで、Japaneseであることを主張す</html>…

HTMLメールでエスケープに使われる &amp; の出典元を軽く調べてみた

AMPっていうとGoogleが提唱する⚡のほうがひっかりやすくなっててググラビリティがすごい低くなっていたので軽く調べてみたメモ &amp の出元 アンパサンドのエスケープようの記述方法ではあるのですが、その流れを調べた。 おそらく一番最初の出元はXML アン…

DBに入れる系の時間比較のときは .to_s(:db)だとUTCになり懸念点が減る

表題で全てを表現してしまっているシリーズ。 to_s(:db) とすると UTC に変換される 環境 rails (5.2.0) 実演 RailsアプリケーションはJST Rails.application.config.time_zone => "Tokyo" target_time = Time.zone.now # => Mon, 25 Jun 2018 15:31:29 JST …

二重波括弧で変数展開を表現する記法をmustacheと言ったりする

トリビア的なメモで裏付けゼロなので本当の雑記。 背景 ansibleのjinja2テンプレートの変数展開に {{ 変数名 }} というような記法があるのだが、これの名前があるということを聞いて調べた 調べた結果 {{ mustache }} ムスタッシュとかマスタッシュとか呼ば…

YAMLの記号の意味がググりにくいので調べやすい記事を書いた

Qiitaに書いたよシリーズ。 qiita.com 先日以下の記事を書いて Ruby2.5時点のYAML標準ライブラリはYAML1.1 - コード日進月歩 YAMLって案外にも1.1ばっかで、かつ記号に関して調べると熱心に1.2の仕様に関して書いてくれている人がいたりするので、情報として…

BigQueryで現在から見た先月月初日、先月月末日を求める

非エンジニアからもらったクエリがすごかったので紹介 前提条件 STANDARD SQLです やり方 先月月初日 FORMAT_DATE("%Y%m%d",DATE_TRUNC(DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 1 MONTH), MONTH)) 原理 # 当日東京時間 CURRENT_DATE('Asia/Tokyo') #…

iOSシミュレーターでJavaScriptのデバッグを始める方法があんまり一緒にはまとまってないので書いた。

話の本筋はQiitaに記事を投稿した。 qiita.com なんでこんな記事を書いたかというと、iOS の とあるバージョンのみWebページが閲覧不可になるという事象が発生したためだった。 トランスコンパイルするようなJSだと環境によってはない関数があったりなどする…

ActionMailerのrpsecで件数を計りたいときはActionMailer::Base.deliveriesのsizeを測る

表題だけですべてを表現してしまう系Tips記事 環境 rails (5.2.0) 計り方 RSpec.describe "なんかメール送るやつ" do after(:all) { # 意図的にテスト後にクリアにする ActionMailer::Base.deliveries.clear } describe "#send_mail的な" do subject {"なん…

RubyのHash代入記述のパターンまとめ

JSONをそのままRubyのコードに貼ってrspecのダミーデータを作ろう!とかやると あれ、ここ文字列じゃなくシンボルになってるじゃん… みたいな意趣違いをよく起こすのでメモ。 環境 $ ruby -v ruby 2.5.0p0 ケース別サンプル キーを文字列にしたい ポピュラー…

Railsの整数で表せる時間シリーズ

忙しすぎてすごい小ネタ。 環境 てっきりrubyの標準かと思ったら違った系 rails (5.2.0) つかえるもの # 1秒 1.second # 2分 2.minute # 3時間 3.hour # 4日 4.day # 5週間 5.week # 6週間 6.month # 7年 7.year

オフィスで肩が凝ったときは肩甲骨はがしがオススメ

マジで勉強会行ったツケで徹夜相当の作業になってしまったので本当に小ネタ雑記 ima.goo.ne.jp 月イチで整体に行くのですが長時間労働だと首、肩甲骨、腰がめちゃくちゃやられるので適宜マッサージしています。肩甲骨は自分でも際を指圧するのですが、全体グ…

「DevLOVE201 越境ジャーニー」に行ってきたよメモ

忙殺されているけど、前回のお話がとてもよかったので DevLOVE201 越境ジャーニー| Doorkeeperに行ってきたので、そのメモ 今回はずっとB会場にいたので、B会場の話をメインに。 各発表の感想 妄想散歩・妄想ジャーニー (ボクの越境ジャーニー) speakerdeck.…

FactoryBotのcreateはRailsコンソール上でもつかえる

本当にタイトルままのTips 環境 rails (5.2.0) factory_bot (4.8.2) factory_bot_rails (4.8.2) やり方 以下のようにやればよい FactoryBot.create({{作りたいファクトリのシンボル}}) FactoryBot.create(:user) いざrspec書き終わったあとにfactoryが動かな…

InteliJ系には範囲指定拡張・縮小のショートカットがある

しばしInteliJから離れて戻ってきた時に使いたかったのに全然ググっても引っかからずやっと思い出したので紹介 バージョン RubyMine 2017.3 やり方(Mac) 範囲拡張をしたいところにカーソルをおいて「Option(alt)+↑キー」 範囲縮小をしたいところにカーソル…

Railsのkey名変更系便利メソッドには deep がつくより強力なバージョンがある

ハッシュにキーがややこしいことになっている時につかえるものたち 環境 rails (5.2.0) 効能 deep がつくものは値にハッシュ値がある場合、それらの値のハッシュのキーも対象として処理を行う。 例 deep_symbolize_keys はすべてシンボル化する ▼変化前 hash…

Rubyのgem, kaminari での pagenationの値の始まりは1から

普通に勘違いしていたのでメモ 要約 kaminariはページネーション用のgemでページ指定ができるが、ページは0始まりではなく、1始まり。0を指定すると1と同等の動きをする。 環境 rails (5.2.0) kaminari (1.1.1) 実演 kaminari は Model.page({{ページ数}}).p…

URLの最大長は2048文字ぐらいまでと考えておくほうが無難

2018年今現在の所感ですが、いろいろな方面で考えてみます 各視点ごとの見解 RFC定義としての見解 3.2.1 一般構文 HTTP プロトコルでは、URI の長さにどんな制限も設けていない。 サーバは、自身が持つどんなリソースの URI も扱えなければならないし、もし…

Ruby2.5時点のYAML標準ライブラリはYAML1.1

YAML1.2の仕様がある割には対応していないなーと思ったので対応状況を調べてみた。 YAMLのバージョンに関して YAMLの最新バージョンは1.2、2009年の10月1日にリリースされている Rubyの標準に関して 公式サイトに言語ごとの状況が書いてある Rubyで扱われる…

GoogleのマテリアルデザインアイコンはWebでも使い勝手のいいスグレモノ

本日ABCに行ってきたんですが、しっかりスライドメモとか取れなかったので聞いてきた話で面白かったトピックスを。 マテリアルデザイン用のアイコンっていうものが存在します。 Icons - Material Design Googleが提唱するマテリアルデザインに沿ったアイコン…

Rubyでファイルの文字列を変数に代入、変数の文字列を出力

『コンソール上で二バイト文字いれたいけどRailsコンソールだと文字化けしちゃって…』とか『処理中のJSONみたいけどログだとすげー切れちゃって…』とかそういうときに使うスニペット的なメモ Railsコンソール上でやると(当たり前ですけど)Railsルート配下…

InteliJ系のIDEはキャメルとスネークを切り替えるショートカットがある

完全にトリビアなメモ バージョン RubyMine 2017.3 やり方 範囲指定をして「Option+Shift+U」 で順次切り替わる 実際にやってみた 本当は指定範囲をよしなにやってくれるショートカットを探してたんだけど見つからない…

RubyにはBooleanというクラスは存在しないがYARDでは指定できる

YARDのドキュメントみたら、え、とおもったのでメモ 前提の話 RubyにはTrueClassとFalseClassしかなく、Booleanというクラスは存在しない。 x = true => true x.class => TrueClass x = false => false x.class => FalseClass YARDでの記載 []内に複数指定で…

Railsでi18nをView以外、Railsじゃないクラスでも使いたい

やり方 I18n.t("yamlのキー") を指定すれば良い。しかもHelperクラスなどとは違い、Rails管轄下のクラスを継承していなくても使える。 例 ▼ja.yml ja: thanks: result: default: message: "ありがとうございました!" name: message: "%{name}さん\ありがと…

Railsのfind_byは文字列を指定すると使えてしまうので注意

普通に凡ミスしてたのでメモ やりたかったこと # パラメータからとってきたID id = "1" User.find(id) 実行されるSQLの想定 SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1 起きたこと # パラメータからとってきたID id = "1" # タイプミス…

iOSのDeveloperCenterでの端末登録タイプ毎に100台までで、1年間消せない

いろいろ書きたいものがあるんだけど、書く時間が捻出できないのでマジで小ネタ。 iOSDeveloperCenterでUUIDを入力することで端末を登録できるのですが、いろいろ気をつけなければいけない仕様がある。 デバイスタイプごと(iPhoneとかAppleTVとか)100台ま…

WEBアプリケーションへのHTTPヘッダにアンダースコアを使うと到達前に弾かれることがある

表題の通り。毎度調べるんだけどちゃんとした理由は知らなかったのでまとめてみた。 理由 ざっと調べた限りの原理 RFC3875 4.1.18. の仕様としてヘッダは以下のように加工する仕様がある 元の名前に付随して HTTP_ をつける - を _ に変換する ヘッダをすべ…

Railsでタイムゾーンを気にする日時変換をするなら、to_timeよりもin_time_zone

開発環境がローカルで、サーバーはAWSとかだったりすると起きる問題。 環境 rails (5.2.0) 事象 to_time は環境のタイムゾーンで算出する。 to_i とかすると顕著にわかる ▼JST環境 > "2018-6-1 20:00".to_time => 2018-06-01 20:00:00 +0900 > "2018-6-1 20:…