Note

3年後の自分のために書いています

2019-01-01から1年間の記事一覧

【コードメモ】JS で Object を forEach する方法

$ node > let obj = { hoge: "hogehoge", fuga: "fugafuga" } > Object.keys(obj).forEach(key => console.log(key, obj[key])) hoge hogehoge fuga fugafuga 参考 How to loop through a plain JavaScript object with the objects as members? - Stack Ove…

【コードメモ】FizzBuzz 別バージョン

1から100までの数字を標準出力に改行つきで出力するプログラムを作ってください。 3の倍数と3がつく数字の時だけ、数字のあとに!をつけてください。 出力例: 1 2 3! 4 5 6! 7 8 9! 10 11 12! 13! 14 ...以下100まで続く コンソールで実行しやすいようにワン…

ActiveRecord で create_xx, build_xx 系のメソッドが作られるのは has_one した時だけ

表題の通りですが、 has_many した時も create_xxs 的なメソッドが自動生成されると勘違いしていたのでメモ。 ActiveRecord::Associations::ClassMethods class Project < ActiveRecord::Base has_one :project_manager has_many :milestones end Project#cr…

高階関数とカリー化をそろそろ理解したい with JavaScript

あとでサンプルコード追加するかも。 早く Haskell やれやって話なんですけどね。 この記事のシリーズがだいぶ分かりやすかった。 tech.recruit-mp.co.jp 高階関数 関数を『引数』もしくは『返り値』として扱う関数のこと。 カリー化 期待される数より少ない…

JavaScript のスプレッド構文とレスト構文がややこしいので Ruby の配列展開と splat パラメータで理解する

細かい仕様の違いはあるかもしれないが、大体以下の感じで理解している。 スプレッド構文 Array に関しては Ruby でいう配列の展開(*)とほぼ同じかな。 スプレッド構文を使うと、関数呼び出しでは 0 個以上の引数として、Array リテラルでは 0 個以上の要…

個人開発で使えそうな API まとめ

完全に自分用のメモ。 軽い調査結果も残しておく。 求人検索 Google Job Search API (Cloud Talent Solution) GCP アカウント必要、アカウント作ると12ヶ月3万円無料期間始まるので開発直前に始めた方がいい Cloud Talent Solution documentation | Job Sear…

VSCode x TypeScript x ESLint で自動整形する

2019/12/23 Update この記事の内容は不要になったっぽい。 Revisions of "VSCodeでESLint+@typescript-eslint+Prettierを導入する(v2.0.0修正版)" - Qiita 以下、元記事。 JS のプロジェクトを TS に変更したら ESLint の整形が効かなくなったのでメモ。 V…

Haskell を亀のようなスピードで学び始めている私のための Stack による環境構築メモ

React x Flow or TypeScript の開発をやるにあたり、関数型言語と型システムの知識がないことがボトルネックになってきたと感じるので、ずっと積んでいた『すごいH本』を亀のようなスピードで進めている。 すごいHaskellたのしく学ぼう!作者:Miran Lipovača…

GraphQL のエラーハンドリングについていろいろ調べた

前提 GraphQL のレスポンスのフォーマットに関するベストプラクティスとして、レスポンスの HTTP ステータスコードは 200 で統一、レスポンスの errors キーにエラーの詳細な情報を持たせる というのがある(公式な仕様ではないが、Apollo Client も graphql…

rails, rack, unicorn or puma, nginx の関係についてちゃんと理解したい

だいぶメモ書きです。 表題の件、まだ曖昧にしか理解できてない。 ググっても浅い情報しか出てこないし、各ライブラリのソースコードを読んでみたけどどう繋がってるか、それぞれどんな役割を担っているか把握するのムズいなぁ…。 結論 色々調べてここまで分…

【Rails 5.2 版】スマートな rails new コマンドの叩き方

自分はいつもプライベートの開発ではこんな感じで rails new やってます、というのを備忘録もかねて載せておきます。 基本的に使うか分からないライブラリのファイルは生成しないようにしています。後から genarate コマンドで簡単に追加できるので。 通常の…

React Native × Firebase Authentication での自動ログイン機能に AsyncStorage は使わなくていい

タイトルのまんまですが、 Web に落ちてる記事の中にはわざわざログイン状態を React Native の AsyncStorage を使って保存してる実装のものもあったので、勘違いしないようにメモ。 Firebase Authentication では デフォルトで 明示的にログアウトするまで…

Expo で "This version of the Expo app is out of date. Uninstall the app and run again to upgrade." のエラーが出た時の対処法

iOS Simulator にインストールされている Expo アプリのバージョンが古いとのこと。 iOS Simulator の Hardware > Erase All Content and Settings してから再度 $ expo start -i すれば最新版の Expo アプリが install されます。 参考 javascript - expo i…

React Native にゆかりのあるスタートアップが集う会#5 に行ってきた

普段は Rails でアプリケーション開発してる自分ですが、プライベートで以前から触っていた React Native のイベントに行ってきました。 r-n.connpass.com 詳細なレポートは以下がとてもよくまとまってると思います。 【第5回】 「ReactNativeにゆかりのある…

VSCode の One Dark Pro のサイドバーの色を調整する

デフォルトだと選択されているファイルやフォーカスされているファイルが見づらすぎてキツイので。 // settings.json { "workbench.colorCustomizations": { // 現在選択されている(開かれている)ファイルの背景 "list.activeSelectionBackground": "#777"…

初めての OSS コントリビュート

内容は超ショボいんですが、一応初めての記念として。 自分自身が普段使っている vim-snippets の React の部分を直したいなーと思って、 PR を送りました。 英語力をもっとつけなれけば、と強く思いました…。 github.com

Amazon や Wikipedia の URL を短縮する方法

URL を共有する時にとても便利なやつ。 ちなみに自分は Amazon に関しては必ずこの方法で、 Wikipedia に関しては余裕があればこの方法で URL 共有してます。(メールや Slack で長い URL が来るとウッ、、ってなるので) 詳細は 参考 で挙げたページに書い…

zsh のリダイレクトによる上書き with prezto

zsh

おや、 > で上書きできない? $ zsh --version zsh 5.7.1 (x86_64-apple-darwin18.2.0) $ echo foo > bar.txt $ cat bar.txt foo $ echo baz >> bar.txt $ cat bar.txt foo baz $ echo hoge > bar.txt zsh: file exists: bar.txt $ echo hoge >| bar.txt $ c…

シェルの環境変数にいい感じにクレデンシャルを渡す方法

zsh

例えば CLI アプリケーションを実行するのに何らかのクレデンシャルが必要な時、アプリケーション側で環境変数に対応してくれている場合はこんな感じでやるといいよと職場の方に教えてもらった。 自分は zsh を使ってるので、その前提で話を進めますがどのシ…

neovim でステータスラインのメッセージを英語にしたい

neovim にしたらステータスラインのメッセージが「挿入」とか日本語になってつらいと思って、 vim のドキュメント 見ながら let $LANG='en' を init.vim に追加したらヤンクがバグって複数行のヤンクができなくなった。 let $LANG='en_US.UTF-8' と書いたら…

vim のインデントがおかしい時は filetype をチェックしよう

vim

自動インデントも改行時のインデントもおかしい、、という時は :filetype indent on になっているか確認しましょう。 vim で適当なファイルを開いて :filetype コマンドで確認できます。 # こんな感じで表示される filetype detection:ON plugin:OFF indent:…

RubyKaigi 2019 レポート & 所感

はじめに RubyKaigi 2019 に参加してきました。自分の聞いた発表のレポートや所感を書いていきます。(現時点で Twitter でスライドが公開されているものは載せておきます) 自分の理解・関心の度合いによって、文量に差が出ていますがご容赦ください。 間違…

ActiveRecord の `#all`, `#find_each`, `#find_in_batches`, `#in_batches` の違いについて

表題の件、ずっと曖昧に理解していた。 1.2 複数のオブジェクトをバッチで取り出す - Active Record クエリインターフェイス - Rails ガイド Rails のコードも読みながら ↑ の内容にプラスα してまとめる。 結論 処理するレコードが 1000 件以下なら何使って…

実装から学ぶ HTTP 通信 〜 Ruby 標準ライブラリ編〜

社内勉強会のコピペ。 HTTP とは HTML など をやり取りする時の決まりごと Web は URL で指定した HTML など を HTTP という決まりごとに沿ってやり取りしている 詳しくは Webを支える技術 という本に書いてあります 今日話すこと Ruby の標準ライブラリで H…

graphql-ruby の lib/graphql/schema.rb のコードに興奮した

GraphQL はほとんど関係なく Ruby の話です。 GraphQL Ruby を実行する時はだいたいこんな感じで使う。 # app/graphql/my_schema.rb class MySchema < GraphQL::Schema # ... end # app/controllers/graphql_controller.rb result = MySchema.execute( param…

Ruby の Array#each で空の配列をレシーバに取るとブロック内は実行されない

タイトルのまんまですが。 nil が回ったりするのかなと勝手に思ってました。 # レシーバが空の配列だとブロック内は実行されない [].each { puts 'hoge'} #=> [] [].each { |i| puts i } #=> [] # Hash#each も同じく {}.each { puts 'hoge'} #=> {} {}.each…

Git で既存のリポジトリを複製して別名のリポジトリとして始める方法

最短かつスマートな方法を考えた結果こうなった。 ## あらかじめ GitHub で hoge リポジトリを新規作成しておく $ git clone {複製元リポジトリのURL}.git hoge $ cd hoge $ git remote set-url origin https://github.com/{user_name}/hoge.git $ git push …