マイナンバー交付申請書の住所と現住所が違ってる時の申請方法

こないだマイナンバーカードの交付申請をしたのですが意外と申請方法を見つけるのに時間がかかったのでメモしておきます 結論からいうと普通に無くした人と同様に郵送で申し込めばOKです どんな状況だったか? マイナンバーの通知カード自体は持ってる 交付…

CSRFとは

Cross-Site Request Forgeries (CSRF)とはweb アプリケーションの脆弱性 通常のフローとしてサイトAからサイトBへのGET Requestが送信されるとする 攻撃者はサイトAからサイトBへGET Requestを送信するURLを掲示板などに貼り付ける ex. GET http://example.c…

workerとは

うちの会社はRailsでプロダクトを書いているのですが仕事中の会話の中で出てきて、 workerとresqueって違うのか?と思ったので調べました 結論からいうとまあ一緒です workerとはapplicationのリクエストサイクルの外で実行されるプロセスのことを言います r…

Rackとは

ついこの間まで「名前は聞いたことあるけど結局Rackってなんなんだろう」状態だった自分 最近仕事で触らなきゃいけなくなったので重い腰を上げてきちんと調べてみました Rackってなんだ? Rackってなんだ?と聞かれてめっちゃシンプルに答えるなら、RackはRu…

server side rendering (SSR)とは

React + railsなどでウェブサイトを作成する場合、サーバーがブラウザにHTMLとJavaScriptを返し、JavaScriptがajaxでサーバーからコンテンツを受け取りウェブページを描画する server side renderingは、サーバーがブラウザにレスポンスを返す際に、サーバー…

Active Recordで任意のカラムがnilでないものを取得する

あれ、どうやるんだって思ったんですが蓋を開けてみればまあそうだよねって感じ # fooがnilのレコードを取得 User.where(foo: nil) # fooがnilでないレコードを取得 User.where.not(foo: nil) そのまんまでした

APIの開発とメンテを簡単にしてくれるSwaggerとは

tl;dr Web APIを公開しているサービスでは、開発者向けにドキュメントも公開する必要がある サービスが進化するのに合わせてAPIにも変更を加え、その都度ドキュメントも改修する必要があるが手作業でメンテナンスを行うのはコストがかかるし漏れが生じる可能…

Web API: The Good Partsの読書感想文

Web API: The Good Partsを読んだので概要と感想を書きます 読んだのは下のリンクの本です www.oreilly.co.jp 概要 全6章から構成されています 1章 Web APIとは何か 「Web API」というと定義が曖昧だが、この本で言うところのWeb APIとは 「HTTPプロトコル…

JSONPとは

JSONPとはJSONをブラウザに渡す方法の1つです ”JSON with padding”の略で、通常は以下のようにJSONにそれをラップするJavaScriptを付け加えたもののことを指します # JSONP callback({"id": 1, "name": "Taro"}) 何に使うか XMLHTTPRequestは同一生成元ポリ…

ORマッパーとは

RailsのActive RecordとかORマッパーだと思うんですが名前は知ってるけど実際よくわからないなと思って調べました オブジェクト関係マッピング(英: Object-relational mapping、O/RM、ORM)とは、データベースとオブジェクト指向プログラミング言語の間の非…

Real World HTTP の読書感想文

tl;dr オライリーのReal World HTTPを読みました 全11章で構成されていて、HTTPの歴史に沿ってHTTPの機能やwebの世界でよく使われる技術 (暗号化、レスポンシブデザインなど)を紹介しています HTTP/1.0のメインの機能とHTTP/1.1、HTTTP/2.0に変わる際に何が…

エンジニア1年目、2019年ふりかえり

未経験からのエンジニア1年目が3/4終わりました 年の節目なのでこの9ヶ月出やってよかったことと、今後やっていくべきと考えていることを書いていきます やってよかったこと 自分には出来ないかも、と思うタスクから積極的に取っていった 僕のいる開発チーム…

電子証明書と電子署名

最近まで結構混同しがちで、違いがよくわかってなかったのでまとめました 電子証明書 証明書なので、サーバーの身元を証明してくれます >電子証明書は、インターネットや電子の世界で持ち主の情報を正しく証明する、現実世界におけるパスポートや印鑑証明書…

rspecでモックする

社内のrailsサービスの中で、社内オリジナルgem経由で別サービスのデータを取得してくる場所がありました #hoge_controller.rb user = User.first name = other_service_data.name other_service_dataは別サービスから取得しています rspecを実行するとこの…

公式ドキュメントアレルギーの直し方

エンジニアとして働き出してだいたい8ヶ月経ちました 最近ようやく技術的な部分で分からないことがあるとQiitaとかよりも先に公式ドキュメントを見るようになったと思います 入社直後の研修から「公式ドキュメントを読みましょう」みたいなことは言われてたん…

TCPとUDPとは

tl;dr TCPとUDPはどちらもトランスポート層のプロトコルの一種です TCPはデータを確実に届けるためのプロトコルでwebやメールなどで使用されます UDPはデータを速く届けるためのプロトコルでインターネット通話サービスや動画など、途中のデータが欠けても速…

未経験エンジニアの自分が質問するべきタイミングはいつなのか

この間社内kibelaに記事を書いたんですがこちらにも残しておきます 質問するべき状況がわかってる? 夏頃に先輩に「質問するべき状況がわかっていないんじゃないか」という話をしてもらいました チームの人と仲良くなって質問がしやすくなるにつれ、自分の中…

3way ハンドシェイクとは

3way ハンドシェイクとはHTTPの下のレイヤーのプロトコルであるTCP/IPで用いられる通信開始前の情報交換です 名前の通り、クライアントとサーバーとの間で3回の通信が発生します 通信開始時 step1. クライアントからサーバーへ通信を開始することを伝える ま…

ルート認証局とは

今日も短め https通信にはSSL証明書必要が必要です ブラウザは今から通信をしようとしているサーバーからSSL証明書を取得します SSL証明書は認証局がその信頼性を保証するもので、認証局が発行します SSL証明書には発行者のデジタル署名がついており、ブラウ…

オレオレ証明書とは

短めです TLS通信を勉強した時にオレオレ証明書という言葉が出てきて、前にも聞いたことがあるけどよくわからんなと思ったので調べました センスを感じるネーミングだ オレオレ証明書とは自分で署名したSSL証明書のこと 普通証明書を作成する場合は以下の3st…

(おそらく)日本初のVSCode MeetUpに参加してきた!

12/18に株式会社オプティムで開催されたVS Code Meetup #1に参加してきました 最後に撮った全体写真、すごい人数だ 今までありそうでなかったVS CodeのMeetup VSCodeの変遷や基本機能を教えてもらえるSessionや、各々の使いこなし方を紹介するLTまで盛りだく…

HTTPとHTTPS

「http https 違い」とググると解説しているサイトがごまんと出てきますが自分の言葉で説明する為に書いておきます tl;dr httpではサーバーとブラウザの通信が暗号化されている。第三者から見える httpsではサーバーとブラウザの通信が暗号化されている。第…

Reactでstyleをinlineで書くときの注意点

tl;dr Reactでinlineでstyleを書く時 font-sizeなどpropertyの名前に - が含まれる場合 style={ font-size: "16px" } ↑は動きません style={ fontSize: "16px" } ↑は動きます 困っていたこと Reactで要素の中に直接styleを定義しようとしていました Titleと…

Faradayのmultipartの書き方

困っていたこと Faradayを使ってサーバーへfileをpostとしようとしていました ちなみにrequestを二回していているのはparameterがmultipart/form-dataで送信するものでなければ、application/x-www-form-urlencodedで送ってねという意味です This request mi…

VSCodeの基本機能全然使えてなかった

VSCodeをかなりなあなあで使ってました 普段開発ではVSCodeを使ってるんですが、会社のコードが基本的にはrailsなのでRuby mineが欲しいなあと思いました ただその前におれ全然VSCode使いこなせてる気がしないからきちんと勉強するかと思って基礎の基礎を勉…

JAWS-UG東京 マイベストモーメント re:Invent 2019に参加してきた

12/11に目黒のAWSのオフィスで開催されたJAWS-UG東京支部のイベントに参加してきました メインはもちろん先週まで開催されていたre:inventで発表されたアップデートの話です 印象に残った話を書いていきます Amazon RDS Proxy aws.amazon.com 今まではLambda…

RubyのTempfileの使い方、newとcreate

困ってたこと 下のコードでTempfileを作ろうとしていた readメソッドで読むと'bar'という文字列が入っていて欲しかったがファイルの中を見ると空になっていた file = Temfile.new('foo') do |f| f << 'bar' end file # => #<File:/var/folders//foo20191210-a8gjzw> file.read # => '' fileは存在し</file:/var/folders//foo20191210-a8gjzw>…

railsのpath名の決まり方

結論から言え! railsでroute.rbにresourcesを使ってrouteを生やすときにcollectもしくはmemberを使う場合、 path名にcreate new show update destroyのどれかを使うとpathの名前が狂う 困ったこと かなーりレアケースなのですがこの間、resourcesで定義して…

railsのparams permitすると変更できなくなる

結論から言え! railsのstrong parameterでpermitしたhashは変更できない railsのstrong parameter railsにはstrong parameterと言う機能があります 簡単に説明すると、明示的に許可したparameterのみobjectに渡す仕組みです railsを書いたことある方なら誰…

rubyで定数を扱うならfreezeメソッドを使うべき

tl;dr rubyでfreezeメソッドを使うとオブジェクトを変更不可な状態にできる 定数を扱う時はfreezeをつけておくといい rubyのfreezeメソッド rubyではfreezeと言うメソッドが定義されています ref.xaio.jp freezeメソッドを使うとオブジェクトを変更できない…