コード日進月歩

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

2019-08-01から1ヶ月間の記事一覧

『builderscon tokyo 2019』の二日目に行ってきたよメモ

builderscon tokyo 2019 の二日目に行ってきたよメモです。一日目のメモはこちら 各発表の感想 ※資料スライドは見つけたら貼ります。 OSS Security the hard way Published my talk on #builderscon #bc100a Thank you for attending this. https://t.co/zxG…

『builderscon tokyo 2019』の一日目に行ってきたよメモ

builderscon tokyo 2019 の一日目に行ってきたよメモです 各発表の感想 ※資料スライドは見つけたら貼ります。 対戦ゲームに学ぶ、フレームワークの設計技法とAIのアルゴリズム入門 #builderscon #bc100a 「対戦ゲームに学ぶ⁰、フレームワークの設計技法とAI…

ファイルパスをbashでかんたんに取るときは dirname を使うとかんたんに取得できる

$0とあわせての話 環境 $ bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18) Copyright (C) 2007 Free Software Foundation, Inc. 事例 例えば "/hoge/huga/example/text.txt" が渡されたときに "/hoge/huga/example/ を取得した…

bashを使ってスクリプト内でファイルパスをを知りたい場合は$0を使うと取れる

あー、なるほどと思ったのでメモ 書き方 $0 とするだけ 例 下記のようなシェル dirs=$0 echo "$dirs !!!" を実行するとこんな感じ $ sh fileout.sh fileout.sh !!! パスを変えたりすると以下の感じ $ sh hoge/fileout.sh hoge/fileout.sh !!! 注意点 あくま…

sidekiqの終わらせ方

公式のwikiより、イマイチ意味が理解できてなかったので再整理も込めて。 出典元 Signals · mperham/sidekiq Wiki · GitHub 止め方 新たなプロセスの受付を止める TSTP のシグナルを送る $ ps -ef | grep sidekiq 779199931 22540 18659 0 9:28PM ttys013 0:…

UNIX/Linuxシステムにおけるシグナルとkillコマンドに関してざっくりまとめる

ド基礎を見直そうというたぐいのもの プロセスとシグナル Unix/Linuxシステムではプロセスという単位でシステムが動いている。そのプロセスは外からシグナルという形で情報を受け取ることができる シグナルの使い所 シグナルは他のプロセスから飛んでくるも…

AWSにてリソース作成数には上限があるし、緩和しないと作れなくなる

やっているとぶつかる系だけどそういえば書いたことなかったな系メモ 参照元 AWS サービスの制限 - AWS 全般のリファレンス AWS曰く AWS アカウントの AWS サービスに対するデフォルトの制限 (クォータとも呼ばれます) を示しています。特に明記されていない…

モデルとはなにかを説明する前に読み直したいスライド『モデルとは何であって、何でないのか』

スライド回顧録です speakerdeck.com モデルという言葉の成り立ち 「解決したい問題領域から必要だと思われる情報を抽出して(逆に不要だと思われる情報を捨て)記号化、可視化したもの」ということの説明 というのが(LT用の資料ということもあり)数枚で説…

Rubyのblockはrescueで拾えるし、eachの場合は後続処理は実行される

あれ、そうなんだ!というの、原理としてはなんとなくわかるが情報のソースがないのでとりあえずできるよというところまで 環境 $ ruby -v ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin18] コード例 def kicker(array) vals = array.each_with…

Googleアドマネージャの仕込まれている状況を見るためのコンソールはURLに特定のパラメータをつけると見ることができる

2019年8月時点の公式の見解のうちの一つ。 使いたくなるケース Googleアドマネージャ(旧名 DoubleClickPlatformことDFP)にて配信状況を確認したい Googleアドマネージャの設定が正常にできているかを確認したい やり方 URLのクエリストリングとして ?google…

Rubyで 0 を 判定するなら zero? のほうがスマート

若干ポエム寄りな話。 環境 $ ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin18] ドキュメント曰く 自身がゼロの時、trueを返します。そうでない場合は false を返します。 - instance method Numeric#zero? (Ruby 2.6.0) 使う利点 if a …

ActiveSupportにはdate型に対してその日の範囲を作るall_dayというメソッドがある

前にまとめたけど、こんなんのもあるのかというメモ 環境 $ bin/rails --version Rails 5.2.2 やり方 all_dayメソッドを使うだけ date = "2019-08-17".to_date # => Sat, 17 Aug 2019 date.all_day # => Sat, 17 Aug 2019 00:00:00 UTC +00:00..Sat, 17 Aug …

使い捨てのスクリプトの置き場の名前のはoneshotがよさそう

よく名付けに困るので情報的にありがたい話、ruby-jpよりの備忘メモ。 話のはじまり 『Railsのワンオフなスクリプトを置く場合の置き場はどこか』 出てきた意見 lib/tasks/oneshot/nanika.rake bin/【使い捨てであることが分かる名前】/ script/【使い捨てで…

Railsで with_indifferent_access を使うときは一呼吸おいて考えて欲しい

ただのコラム (この話を題材にする)環境 $ bin/rails -v Rails 5.2.2 TL;DR with_indifferent_accessは対象のハッシュのキーをシンボルでも文字列でも対応できるようにするもの ただし、両方使えるようにすると懸念が増えるので、 deep_symbolize_keys も…

コードレビューにおいてテストコードを添えるという手法

ruby-jpで知見を得たのでメモっておく ruby-jpでは jobboard チャンネルもあったり、freelance チャンネルもあって、いろいろな情報交換もできます。bookではおすすめの技術書を紹介したりなど。興味ある方はぜひどうぞ〜(ogpを設定したのでお試し投稿)htt…

開発チームにおけるHRTとは何かざっくりまとめる

ざっくりまとめるコーナー HRTとは Team Geek ―Googleのギークたちはいかにしてチームを作るのか作者: Brian W. Fitzpatrick,Ben Collins-Sussman,及川卓也,角征典出版社/メーカー: オライリージャパン発売日: 2013/07/20メディア: 単行本(ソフトカバー)こ…

ブログにおける書籍引用の書き方を考える

最近書籍から言葉を拝借することも増えたのでベターな書き方をネットの海からピックアップしてみた。 そもそも引用とは 著作物に関して、権利を持つ者からの許可を得ずに、副次的に加えたり紹介すること。 引用と著作権法 では引用の際に引用元の書き方のレ…

ActiveRecordなどのoption類で複数の対象に同一のものをつけたいときはwith_optionsというものがある

こういうまとめかたもあるとは知らなかったのでメモ、原理は参考リンク参照 環境 $ bin/rails -v Rails 5.2.2 やり方 with_options で囲む 例 下記のようなモデルがあったとする # == Schema Information # # Table name: messages # # id :bigint(8) not nu…

RailsのActiveRecordのhas_manyにはorderで順番の指定できる

え、こんなコトできるの?っていうやつ。 環境 $ bin/rails -v Rails 5.2.2 やり方 has_manyのあとにorderをあしらう has_many :対象モデル, -> { order("order by のあとのSQL文章") } 例 今回のモデル # == Schema Information # # Table name: users # # …

MacにてUnityHubに対応していないバージョンのUnityを同じPCで使えるようにする

UnityHubができたので過去のバージョン切り替えがらくちんになったけど、それUnity5以前のやり方。実はこの手法Xcodeもこのやり方ができる。 参考 公式にやり方が書いてある Unity - マニュアル: Unityを複数バージョンインストール 実例 やることとしては同…

トランザクション、という言葉がコンテキストによって変わるので指すものとしてありえそうなものをざっと書く

喋っていると「あれ?」みたいな感じになるのでざっと候補を書く 様々なトランザクション トランザクション処理としてのトランザクション これが一番一般的に使われる言葉で、一連の処理の塊をトランザクション処理という。Wikipediaの記述が簡潔にまとまっ…

Railsのenvでステージング用の値は増やせるがあんまり増やさない方がいいという話

ただの雑記です。 Railsの環境(env) 通常用意されているenvは 開発環境向けの development テストコードを走らせるための test 本番環境用の production がデフォルトで用意されている。 主には 開発/テストの用途でしか使わないgemの使い分け 再起動の簡略…

FactoryBotのtraitでリレーション先のModelのtraitを使って設定することができる

他のクラスのtraitって使えるんだネタ 環境 factory_bot (5.0.2) activesupport (>= 4.2.0) factory_bot_rails (5.0.2) factory_bot (~> 5.0.2) railties (>= 4.2.0) 使い方 関連のあるモデルに 例 userとhas_manyの関係にあるmessagesがあるとする。そのと…

Rubyにはいずれかが真になるかを調べる one? というメソッドがある

なるほどこういうのも有るのかというやつ、昨日の投稿とセットでお楽しみください。 環境 $ ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin18] 使い方 ブロックを用いない場合 いずれかが真だったらtrueを返す [true,false,false].one? #…

Rubyのおいて判定などに用いる「偽」はnilとfalse、それ以外が「真」となる。

特にPHPから来た人には頭に入れておいたほうがいいやつ。 環境 $ ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin18] どういうことか FalseClassであるfalseと何もない nil のみが偽を表すもので、それ以外は全て真になる。 ドキュメント…

Linux/Unixで環境変数の一覧が見たいときはprintenvコマンドを使う

知名度が低い、というか場面によるのかもだけどメモ 環境 macOS mojave ※諸事情によりローカルのみの確認だがCentOS系も普通にあるコマンド やり方 シンプルに $ printenv と打つだけ 例 $ export HUGA=100 $ export HUGAHUGA=200 $ printenv | grep "HUGA" …

異なる環境間で現在時間を受け渡して判定するときに気をつけること

端末時間とサーバー時間に関して色々思うことがあったので、考えをアウトプットするだけの雑記です。 今回考えるシチュエーション 異なる環境から時間情報を受け渡すということを考える。登場人物としては「送信元」と「送信先」があるが、例としては以下の…

RubyのExceptionにはbacktraceというデバッグ用の情報が引き出せるメソッドがある

いつもメソッド名を忘れるのでメモ 環境 $ ruby -v ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux] リファレンス instance method Exception#backtrace (Ruby 2.6.0) 使い方例 Railsなどだと途中で拾って握り潰す場合などに使ったりする def err…

『すえなみチャンス暑気払い』に行ってきたよメモ

すえなみチャンス暑気払いに行ってきたのでメモ 各発表の感想 ※資料スライドは見つけたら貼ります。 僕がアーキテクチャを考える時の考え方 昨日の #すえなみチャンス暑気払い の資料はあまり公開するつもりがありません。資料だけだと伝わらなかったり、誤…

Rubyで特定の文字コードにて変換できない文字を消したいときは encodeでオプションを駆使すると消せる

明示的に歯抜けにさせるというコマンドはないが、あわせ技でできる 環境 $ ruby -v ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18] やり方 encode メソッドにはオプションとして未定義なものはリプレースする :undef => :replace …