React v16.3 の Context と Fragment

よく使いそうな Context と Fragment についてメモ。 Context そもそも、 Context はあらゆる階層のコンポーネント間で、データを共有する機能を持ちます。 しかし、v16.3 以前の React における Context には以下の注意書きがありました。 If you want your…

React Component で作る window.confirm 代替品

window.confirm はESLint でエラーが出るし、UI が良くない。なので似たような API で扱うことの出来る window.confirm の代用品を作ってみた。 参考: http://reactkungfu.com/2015/08/beautiful-confirm-window-with-react/ 環境: React (16.1.1), React-Bo…

僕らは JavaScript を知らない - レキシカルスコープとクロージャとガベージコレクション Lexical Scope, Closure and Garbage Collection

参考: https://github.com/getify/You-Dont-Know-JS/blob/master/scope%20%26%20closures/ch2.md https://anond.hatelabo.jp/20070622101313 https://developer.mozilla.org/ja/docs/Web/JavaScript/Closures https://developer.mozilla.org/ja/docs/Web/Jav…

僕らは JavaScript を知らない - データ型と参照 Data Type and Reference

参考 https://github.com/getify/You-Dont-Know-JS/blob/master/types%20%26%20grammar/ch2.md#value-vs-reference https://www.webprofessional.jp/how-javascript-references-work/ https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Globa…

僕らは JavaScript を知らない - 巻き上げ Hoisting

参考: https://developer.mozilla.org/en-US/docs/Glossary/Hoisting JavaScript において、変数を宣言するには var、 let、 const を利用します。これらのうち、 var let では、初期値を指定せずに宣言した場合すべて undefined になります。 var a; let b;…

僕らは JavaScript を知らない - シンボル Symbol

初めてプログラミングを触って、それからずっと2年くらい JavaScript 使ってますが、なかなか初心者から抜け出せないなあという思いがあり、恥を忍んで JavaScript の勉強記事を書くことにしました。たぶん何回か続きます。 参考: You Don't Know JS 改訂新…

Amazon ECS Scheduled Tasks によるコマンドの定期実行

使い方 CMDに実行したいコマンドをカンマ区切りで入力し、Task Definition を作成。その他環境変数とかも 作成した Task Definition を Cluster の scheduled task にて設定。Cronかインターバルかを選択できる。 CloudWatch でログも見れるので便利

ActiveRecord IN clause

環境 $ rails -v Rails 5.1.2 基本形 where(カラム: [要素]) Model.where(id: [1,3,5]) enumのSymbolもそのままいける Model.where(status: [:active, :inactive]) 参考: Active Record Query Interface — Ruby on Rails Guides

【SQL】今週の日曜日・今週の土曜日を求める

SQL

メモ: CURRENT_DATE - interval (DAYOFWEEK(CURRENT_DATE) - 1) day AS THIS_SUNDAY 日曜日始まりとする。 今日の曜日インデックス(DAYOFWEEK(CURRENT_DATE))から日曜日の曜日インデックスを引くと、今日が日曜日から何日目かが分かる。 CURRENT_DATE + inte…

Alpineでパッケージをインストールしようとしたらエラーがでたので解消する

メモ ERROR: unsatisfiable constraints: py-pip (missing): required by: world[py-pip] ERROR: Service 'web' failed to build: The command '/bin/sh -c apk add py-pip' returned a non-zero code: 1 インストール可能なパッケージ一覧(インデックス)の…

Macでファイル内の文字列を再帰的に置換するコマンド

カレントディレクトリ以下すべてのファイル内のHOGEという文字列をFUGAに置換する find ./ -type f | xargs sed -i '' 's/HOGE/FUGA/g' xargs … 標準入力から受け取ったデータを、任意のコマンドに引数として与えるコマンド sed … StreamEditor. 入力ストリ…

Re:dash SQLクエリ内で変数を使う方法

メモ。クエリが複数になるとエラーになるっぽい SELECT id, (SELECT @date := huga) AS date, FROM hoge

Warning: Material-UI: The white color was not parsed correctly, because it has an unsupported format (color name or RGB %). This may cause issues in component rendering.

const muiTheme = getMuiTheme({ raisedButton: { textColor: 'white', color: purple900, } }); こんな感じにMaterial-UIの色を変えて遊んでたらエラーが出た: Warning: Material-UI: The white color was not parsed correctly, because it has an unsuppo…

Rails5 FactoryGirlでコールバックをスキップする方法

Rails4では使えたFoo.skip_callback(:create, :after, :bar)がRails5では使えない。 ArgumentError: After create callback :do_something has not been defined 対策として、次のようにFGにおいてメソッドを上書きする: class User < ActiveRecord::Base af…

first_nameカラム、last_nameカラムからフルネーム検索するメソッド

Controller: class ProfilesController < ApplicationController def search @profiles = Profile.search_by_full_name(search_params[:name]) end private def search_params params.require(:search_profile).permit(:name) end end Model: class Profile …

Webpack v1からv2へのマイグレーションメモ

自分が使っていたところだけを簡単に。詳しくはhttps://webpack.js.org/guides/migrating 以下、webpack.config.jsの変更点: resolve.extenstions 空の文字列は必要なくなったので削除する。ちなみにデフォルトでは.js、.jsonがresolveされている。 // v1 re…

bitcoin保管方法まとめ

自分用にまとめ。随時更新 免責事項: 筆者は、あなたに対して何も保証しません。筆者は、あなたに対して一切責任を負いません。すべての作業は自己責任で行って下さい。 所感 セキュリティ ペーパーウォレット>物理デバイス>>>デスクトップウォレット>>モバ…

Amazon Dash Buttonをハックする

ウィルキンソン Dash Buttonをハックしたときの備忘録。 Amazon Dash Buttonのセットアップ まずはAmazon iOS/Androidアプリを使って、Amazon Dash Buttonのセットアップ。商品選択でキャンセルしておくことに注意。 MACアドレスの取得 使用するのはdash-but…

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

nokogiriがインストールできない Gem::Ext::BuildError: ERROR: Failed to build gem native extension. An error occurred while installing nokogiri (1.6.8.1), and Bundler cannot continue. Make sure that `gem install nokogiri -v '1.6.8.1'` succee…

2000名以上の日本人英語学習者のデータからあなたに必要な学習時間を計算してくれるWebアプリ、作りました

エンジニアインターン生として働いているサウスピークにて、新たにWebアプリを作成しました。公開できるものとしては初のアプリですね。 どんなものか 英語学習時間シミュレーター 目標の英語力と現在の英語力から必要な英語時間を算出するWebアプリです。 …

npmに代わるNodeパッケージマネージャーyarn

yarn https://yarnpkg.com/ FacebookとExponent, Google, Tildeとの共同チームによって生まれた新しいパッケージマネージャー Yarn pulls packages from registry.yarnpkg.com, which allows them to run experiments with the Yarn client. This is a proxy…

Git Large File Storage

git

参考 https://git-lfs.github.com/ https://github.com/github/git-lfs Git Large File Storage (Git LFS) とは、大容量ファイルを扱うためのGit拡張。オーディオ・ビデオ・データセット・グラフィクスといったファイルをリモートサーバーに格納し、テクスト…

単語をベクトル化するword2vec(gensim)を使い、指定した二単語間の関連度を算出する

word2vec 2014年から2015年辺りに流行った、単語をベクトル化して評価する手法。 有名なのは、 king – man + woman = queen 学習データとなるコーパスを準備する 無料かつ簡単に手に入るWikipediaのdumpファイルから持ってきます。 https://dumps.wikimedia.…

Atom linter-rubocop でのエラー

linter-rubocop 0.5.0 Error: /Users/uraway/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/rubygems.rb:270:in `find_spec_for_exe': can't find gem rubocop (>= 0.a) (Gem::GemNotFoundException) from /Users/uraway/.rvm/rubies/ruby-2.3.1/lib/rub…

"KeyError: key not found"

問題 Railsにて、新たに設定した環境変数が機能しない: myproject/config/initializers/constants.rb:13:in `fetch': key not found: "CONSTANT" (KeyError) 原因 RailsのPreloaderであるspringを入れていたため、環境変数が更新されていなかった。 解決法 $…

Python: プロジェクト別に依存モジュールの管理

requirements.txtのみで管理するのは複雑すぎて無理。 pip-toolsを使って楽に管理しよう。 pip-tools インストール $ pip install --upgrade pip $ pip install pip-tools pip-compile requirements.inにプロジェクトに使用するモジュールのリストを作る: ge…

UNIX系OSでの .gz ファイルの展開コマンド

たまに使おうとすると忘れていたりするのでメモ .gz ファイルの展開 $ gunzip file.gz $ gzip -d file.gz もともファイルを保持しつつ展開 $ gunzip -k file.gz $ gzip -dk file.gz .gz ファイルを展開せずに標準出力 $ gzip -dc file.gz $ gzcat file.gz

プログラミングを学び始めて10ヶ月経ったけど、フィリピンでWebエンジニアやってます

要約 フィリピンでエンジニアするワケ 新人でも仕事を任せてもらえるから 新興国で働くこと魅力 ブログ プログラミングに初めて触ったのが去年の10月終わりごろでした。ブログも同時期に勉強の記録として始めたので、 その頃の記事も残っていますが、見直し…

Word Cloud + kuromoji + Processing で日本語文章をビジュアライズ

完成品: Word Cloud 文章中で出現頻度に重みを付け、その重みに応じた大きさで単語群を図示する手法。 Processing で行うには WordCram が手っ取り早く、デザインも良い。 いかにして日本語文章中の単語を抜き出すか WordCram に何の手も加えていない日本語…

Rails5 API + devise でユーザーの認証と作成機能を実装した API を作成する

2017/04/26 curl部分に間違いがあったので修正、ついでにログインの必要な動作を追記 目標 Rails v5.0.0 から追加されたapiオプションを使い、ユーザーの作成と認証機能を実装したベーシックな Rails API を作る rails new まずはプロジェクトを作成します $…