スカイダイビングしてきた

1月1日に前からやってみたかったスカイダイビングをしてきました!! 素人なので、後ろにプロのスカイダイバーさんについてもらって飛びました! 落ちるというより、下からすごい風圧を感じながら飛んでいるようでした。(千と千尋の神隠しのラストで千尋とハ…

3ヶ月の振り返り

今の職場に来て3ヶ月がたちました。 なので個人的な振り返りKPTをしようと思います! K 楽しい 居心地よい とても手厚いサポート&フォローもらえる環境 最低限のSQL読み書き出来るようになった API開発ちょっとずつ慣れてきた エラーハンドリング考えられる…

updated_atだけ更新

find_or_create_byを使う際、すでにレコードがあるときはupdated_atだけ更新して欲しいと思う状況がありました。 User.find_or_create_by(name: “Hayashi”) これだと既にHayashiさんが存在する場合、updated_atは更新されません。 なので以下のようにfind_or…

文字列を配列に入ったハッシュに変換

文字列を配列に入ったハッシュにしたい状況がありました。 具体的には以下のような変換をしたいと思っておりました。 "[{{day: '2019/12/22', value: '5000'},{{day: '2019/12/22', value: '5000'}]" => [{:day=>"2019/12/22", :value=>"5000"}, {:day=>"201…

TokyoGirls.rb Meetup vol.2へ参加した

本日TokyoGirls.rb Meetup vol.2へ参加しました!去年の第一回目に参加して楽しかったし、各セッション面白そうなものばかりだったので以前から気になっておりました!とってもよかったので記憶が薄れないうちに各セッションを聞いて感じたことや気づいたこ…

日本語のtypoチェックツール

日本語のtypoチェックツールを探しておりました。 一番最初に以下のツールを見つけたので試してみました!! enno.jp どうやらこちらはRubyで作られているようです! 試してみる 試してみたのですが、日本語はなかなか難しいようで以下の例はtypoを検出して…

RipperとRubyParser

今日とあるプルリク上でrubyで書かれたコードをパースする話が出てきました。 気になったので調べてみました。 Rubyで書かれたコードをパースする方法はいくつかあるようです。 RubyParserを使う gem install ruby_parser を実行してruby_parserをローカルに…

ナンバーパラメータ

昨日ruby2.7から入る新機能の1つとして紹介があったナンバーパラメータについて、試せていなかったので試しました! ナンバーパラメータとは ブロックの仮引数を宣言しなくても_1、_2、_3、、、というように`_引数の番号`で参照できる機能です。 最初は`@引…

Ruby Hack Challenge Holiday #9 Ruby 2.7 + 年末LT大会へ参加した

本日はRuby Hack Challenge Hpliday #9 Ruby 2.7 + 年末LT大会へ参加しました!以下がイベントリンクです。https://rhc.connpass.com/event/155899/ まずruby2.7の新機能について紹介していただき、その後各自作業を進めました。やっと自分もruby 2.7.0から…

rails5系以降はtimestampがデフォルトてNOT NULLだった

タイトル通りなのですが、rails5系以降はtimestampがデフォルトてNOT NULLだということを今日知りました。 4系まではnull: falseをつけないとNOT NULL制約を付けることができなかったようですが挙動が変わっていたようです。 こちらの記事に詳しく書かれて…

CloudFrontのキャッシュ削除

今までCloudFrontのキャッシュ削除をしてくれるコマンドに頼っておりましたが、なぜか変更が反映されない現象が起きました。 そこでAWSのマネジメント画面から削除したのでその手順についてかいておきます! やり方 1. AWSコンソールからCloudFrontのサービ…

業務エラーとシステムエラー

エラーハンドリングするにあたって、まずは業務エラーとシステムエラーを分けて考える必要がありました。 両者の違いについてメモしておこうと思います! 業務エラー バリデーションに引っかかるような、正しい値に直せば対応できるエラー。 システムエラー …

DBで設定できる制約

DBで設定できる制約について調べてみました〜 unique制約 同じ値は登録できない制約です。 not null制約 nullを登録できない制約です。 primary key制約 主キーを設定する制約です。 null、同じ値が保存できなくなります。 railsだとidにデフォルトでprimary…

t.referencesとforeign_key: true

テーブルを作成する際、外部キー周りの設定でt.referencesとforeign_key: trueが何をしてくれるのか・してくれないのか曖昧だったので調べました。 t.references 参照モデル名_idというカラム名で参照モデルのidと紐付けてくれる これだけだと参照にないidで…

where.not

アクティブレコードのwhere.notを使った実装を考えていたのですが、 where.notが変換されるSQL(WHERE ~ NOT IN)にはINの引数にNILLである値が含まれていると何も取得できないという注意点があるようなので、where.notでもそうなの?!と思い試してみました。…

外部キー制約

外部キー制について考える機会があったのでメモしておきます〜 外部キー制約とは 外部キーは関連づけているテーブル間のデータの整合性を保つために存在する制約です。 外部キー制約を設定しておくと、存在しないidで外部キーを保存する事ができなくなります…

横スワイプで画面が戻らないようにする

ブラウザで横スワイプで画面が戻ってしまうのが不便だと感じておりました。 ただ横にスクロールして見えてない部分を確認しているだけなのに、横にスワイプとみなされて戻ってしまう事が結構ストレスでした。 (特にGitHubのコメント欄でコードが横長になって…

&、-、select、reject

今日使ったArrayクラスのメソッドについてメモしておきます。 何回も使ったことあるのにいつも記憶が曖昧で調べている気がしますw & 複数の配列を比較して重複してる値を返してくれます。 [1,2,3,4,5,] & [2,3,4,7] => [2,3,4] - 2つの配列を比較し、前者の…

文字集合と符号化方式

文字コードの構成要素には、文字集合、符号化方式の2つがある事を昨日知りました。なので今日は文字集合、符号化方式について調べました。 文字集合とは 表現できる文字の集合です。 符号化方式とは 文字をコンピュータ上でどういった数値で表現するかを定…

文字コード

今日は文字コードについて少し調べました〜 文字コードとは 文字に数値を当てはめたものです。 文字コードの種類 ASCII アルファベット、数字、その他記号を表現できる。7ビットで1文字を表現できる。 Shift_JIS 1文字2バイトで表現されます。 ASCIIで表現で…

アクティブレコードでのトランザクション

昨日はSQLでのトランザクションについて書いたので、 今日はアクティブレコードでのトランザクションについて調べてみました! 書き方 以下のように書くことができます。 ① モデル.transaction do ② DBに変更を加える(updateやdeleteなど)③ end④ 上手くいっ…

トランザクション

トランザクションが何かということは書籍や記事を読んで知っていたのですが、先日初めて業務で使う機会があったのでメモしておこうと思います! トランザクションとは 一連のまとまった処理のことです。 処理の途中までしか実行されなかったらまずい処理など…

HTMLで入れ子のリスト

マークダウンでよくあるような入れ子のリストをHTMLで作りたかったのですが、以下のやり方では上手くいきませんでした。 <ul> <li>リスト</li> <ul> <li>入れ子リスト</li> <li>入れ子リスト</li> </ul></ul> 調べてみたところ、以下のように親となるリストの閉じタグを入れ子リストの後に書かなくてはいけ…

サブクエリとJOIN

サブクエリとJOINどちらでもデータ取得できることあるよな、比べてみよう、と思い比較してみました。 以下はどちらもeventsテーブルのidが1であるものと関連するpetsレコードを取得しています。 JOIN select * from pets join events on pets.name=events.na…

AS句

SQLを調べていると度々出てくるAS句について、なんとなくの理解だったので今回調べることにしました。 AS句とは カラムに対して別の名前をつけることができる句です。 元々テーブルにあるカラム対しても、計算結果を表すカラムに対しても名前を付けることが…

サブクエリ

以前から気になっていたサブクエリについて調べました〜 サブクエリとは SELECT文の引数にまたSELECT文が渡されるようなクエリのことです。 例 SELECT * FROM events WHERE id in (1,3,5,7); このようにin句で絞り込むSELECT文があるとします。 このidの配列…

cloud watchからログを検索する

cloud watchの存在ははなんとなく知っておりましたがあまり触れたことがありませんでした。 本日cloud watchからログを検索する作業をしたのでその手順をメモしておく&cloud watchが何なのか調べることにしました。 cloud watchとは awsが提供してくれている…

quick time playerでPCの音のみを録音する

quick time playerでPCの音のみを録音したかったのですが、内臓マイクしか選択できず、外部の音も拾われてしまい困っておりました。 quick time playerでPCの音のみを拾わせる方法についてメモしておきます! 方法 sound flowerという仮想オーディオデバイス…

SQLの実行される順番

先日、HAVING構文について調べた時、条件を指定するのはWHEREと同じですが、実行される順番が違うと知りました。 そこでSQLの実行される順番について興味が湧いたので調べてみました! SQLの実行される順番 FROM(テーブルを指定) ON(テーブル結合の条件を指…

アイビスペイント

なんのお絵かきツールがいいかといくつか試したり調べたりしていたところ、アイビスペイントがいいと聞いたので使ってみております! 噂通り、ものすごく多機能で良さそうなのですが、ツールが多くまだ触ったことのないものも多数あります。 そこで公式の使…