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 まずはプロジェクトを作成します $…

Rails5: データベースがrakeタスクからdropできない時の対処法

問題点 Rails5になってrakeタスクのdrop動作に大きな変更があったらしく, Rails4からアップデートして初めての rake db:drop がエラーを吐いてしまう. $ bundle exec rake db:drop Mysql2::Error: Error dropping database (can't rmdir './db_name', errno:…

hatena-blog-and-fotolife v4.2.0 をリリース: エントリーリストとエントリーの取得ができるようになりました

hatena-blog-and-fotolife v4.2.0 をリリースしました。 以下の機能を追加しています。 エントリーリストの取得 コマンド: ⌥⌘I エントリーリストからエントリーの取得

Atomエディタからはてなブログエントリーの削除ができるようになりました

かねてより開発していたAtomパッケージ hatena-blog-entry-postをアップデートし、エントリーの削除機能を追加しました。 デモ このパッケージを使って、はてなブログにエントリーを投稿すると、次のようなコメントがファイルに挿入されます。 このコメント…

"Array values in the parameter are deprecated" エラー

問題と原因 Railsのサーバーやコンソール実行時次のような警告が出る場合: $ rails server Array values in the parameter are deprecated. Please use a String or nil. An Array was passed in from bin/rails:3:in `load' . . . この場合原因はbin/spring…

direnv使い始め

direnv direnvとは cdのようなシェルスクリプトをフックとしてディレクトリごとに環境変数を自動で設定してくれるツール ディレクトリをぬけ出すと環境変数はリセットされる インストールとセットアップ brewを使ってインストール: $ brew install direnv $ …

Error response from daemon: client is newer than server (client API version: 1.23, server API version: 1.22)

Dockerに関するエラー: $ docker ps Error response from daemon: client is newer than server (client API version: 1.23, server API version: 1.22) Machineの更新が必要なので、次のコマンドを打つ: $ docker-machine upgrade [machine名] 再度チャレン…

はじめてのUnity (C#)

参考: http://catlikecoding.com/unity/tutorials/clock/ シンプルな時計を作る 完成品はこちら: まずはプロジェクトの作成: プロジェクトの作成が完了したら、Create > Create Emptyから新しく"Clock"という名でゲームオブジェクトを作成する。また、Create…

はじめてのAurelia

http://aurelia.io Aureliaとは次世代UIフレームワーク。AngularJS、Reactに比べて影が薄い。どうなっていくんだろうか?チュートリアルをやってみた感想としては、HTTPリクエストとルーティング周りがクリーンで素敵。 以下、チュートリアルの適当な和訳。 …

Atomエディタから、はてなブログのエントリーを編集できるようになりました

以前から開発していた、Atomからはてなブログにエントリーを投稿できるようにするパッケージ hatena-blog-entry-post にプルリクエストをもらって、エントリーが編集できるようになりました。 ついでに日本語ドキュメントも作成しました。 パッケージはapm i…

Processingでカレンダーを作る

カレンダーを作ってみたが、長いし読み解きにくいコードになってしまった。input areaみたいなのは作れないのかな? int defaultYear = 2015; int defaultMonth = 5; int rectRX, rectRY; int rectLX, rectLY; int rectSize = 20; boolean leftButtonOver = …

最近読んだ論文まとめ(随時更新)

最近読んだ論文の要約。Google Scholarで論文検索やGoogle検索すれば読めるものも。 カレンダー 大橋亮人, et al. "イベント履歴を用いたスケジュール推薦カレンダーシステム." 情報処理学会第 73 回全国大会 2 (2011): 4. Mynatt, Elizabeth, and Joe Tulli…

20分で作るFacebookメッセンジャーボット(hubot)

20分で作るFacebookメッセンジャーボット(hubot) すごーく簡単にFacebookメッセンジャーボットが作成できました。後のためにその手順を分かりやすくメモしておきます。 別にhubotでなくともボットは作成できますが、今回は使い方に慣れているhubotを使用しま…

人工知能/機械学習: ベイジアンフィルタによるテクスト分類

人工知能/機械学習: ベイジアンフィルタによるテクスト分類 機械学習には多種ありますが、今回は自然言語処理、その中でも特に、ベイジアンフィルタについて扱ってみたいと思います。 このエントリを書くにあたって、下記の書籍がかなり参考になりました。機…

HubotからGithubのissueを扱う

HubotからGithubのissueを扱う http://shokai.org/blog/archives/9560 こちらコードに少し手を加えて、HubotからGtihub issueを扱えるようにしてみた。 create, list up, close github issues via hubot 使い方 Githubのトークンが必要: $ curl -i https://a…

Processing のエディタとして Atom を使う

Processing のコーディングを快適にするために、Atom を使ってみる。 Processing とは ビジュアルアートを学ぶためのオープンソースのプログラミング言語であり、開発環境。Java でビルドされており、その構文は Java をシンプルにしたもの。 エディタも備わ…

Atomのマークダウンプレビュー内で数式を扱う

Atomのマークダウンプレビュー内で数式を扱う まずは必要な以下のパッケージをインストール $ apm install markdown-preview-plus mathjax-wrapper 必要なパッケージ markdown-preview-plus マークダウンプレビューを可能にするパッケージ mathjax-wrapper M…

webpack, React Hot Loader + Browsersync でクロスブラウジング+ホットリロード開発

React Hot Loader + Browsersync React Hot Loader を使えば、エディタを保存した時点で、React コンポーネントの変更が検知され、ブラウザの更新が自動で行われます。さらに、React Hot Loader はHotModuleReplacementPlugin(HMR) を使用しているため、更新…

npmのバージョン管理まとめ

たまにしか活用しないから忘れるのでメモ 参考: semver | npm Documentation バージョン管理 npmでは、「セマンティックバージョニング」と呼ばれるバージョン管理法によって、依存パッケージやリリース物のバージョンを定義している。 npmにあるプロジェク…

ブラウザでマルコフ連鎖を用いた文章を要約できる要約器を作った

ブラウザでマルコフ連鎖を用いた文章を要約できる要約器を作った 作ったもの ブラウザでマルコフ連鎖(Website) hubotでマルコフ連鎖(Twitter) hubotはこんな感じのことを10分毎にツイートしている。 使用したもの 今回、要約器や要約スクリプトを作成するに…

Hubotでビットコインbotを作る

参考: http://qiita.com/hkusu/items/36ce56f3df4e7a0937cb 今回作ったもの 自然言語処理 bot (@hubot_uraway) | Twitter 必要なもの Herokuのアカウントと基礎知識 TwitterのBot用アカウント NPM 基本方針 Herokuにデプロイ(無料枠だと24時間のうち6時間ス…

SSH keyを作成してGithubに登録する

メモがてら残しておく。 新しくSSH keyを作成する $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 保存パス Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] パスフレーズの設定(任意) Enter passphrase (empty …

Babelを使うとアロー関数内のthisがundefinedになる

ややこしい問題に直面したので、メモしておく。 問題 次のように、jQueryでコールバック関数にアロー関数を用いたスクリプトを記述する。 $("item > title").each(() => { let title = $(this).text(); console.log(title); }); このES6の構文ををBabelでES5…

Atomエディターからはてなブログに投稿できるようになりました。

Atomエディターからはてなブログに投稿できるようになりました はてなブログからのお知らせ風に。 以前から開発していたAtomパッケージ、hatena-blog-entry-postを更新しました。 ダウンロード数がほぼないので継続して開発するモチベーションはありませんが…

Reduxのテストファースト開発(第七回 サーバー・アプリケーションとの接続)

前回 uraway.hatenablog.com Setting Up The Socket.io Client クライアントのReduxアプリと、サーバーのReduxアプリをどのようにつなげるのか。 サーバーはすでにsocket接続を受信し、voting stateを放出する準備がある。他方、クライアントはRedux storeを…

文系大学生がプログラミングを始めて四ヶ月経って思うこと

ライブラリ作ったりエディター作ったり、インプットよりアウトプットのほうが多い一ヶ月間だった。Reactしかビューライブラリを学習していないので、実際のところReactの何が良いのか実感していない。時間があれば他のビューライブラリもやっておこう。 ライ…

Reduxのテストファースト開発(第六回 クライアントサイドのRedux)

前回 uraway.hatenablog.com Introducing A Client-Side Redux Store Reduxはサーバーアプリケーションですでに使用し、その素晴らしさを確認した。次に、ReduxがReactアプリケーションとどのように作用するのかを見よう。 サーバーの時と同じように、アプリ…

Reduxのテストファースト開発(第五回 クライアント・アプリケーション)

前回 uraway.hatenablog.com The Client Application クライアントアプリケーションでもReudxを使用する。Redux自体がどのように働くかはすでに見た。Reduxは、Reactとどのように合わさるのか、Reactアプリのデザインにどのように影響するのか見ていこう。 C…

Reduxのテストファースト開発(第四回 Socket.io サーバーのセットアップ)

前回 uraway.hatenablog.com Setting Up a Socket.io Server このアプリケーションは別のブラウザアプリのサーバーとして働く。そのため、クライアントがサーバーと相互通信する方法が必要となる。 自身のあるいは他人のアクションがすぐに反映されるのを見…

Reduxのテストファースト開発(第三回 Reduxの導入)

前回 uraway.hatenablog.com Introducing Actions and Reducers アプリのコア関数はあるが、Reduxではこれらの関数を直接呼び出すことはしない。関数と外側の世界の中間層となるのが Action だ。 Action はstateの変化を描写するシンプルなデータ構造である…

Reduxのテストファースト開発(第二回 投票アプリケーションのロジック)

前回 uraway.hatenablog.com Writing The Application Logic With Pure Functions アプリケーションロジックに移ろう。アプリのコアは、木構造と新しい木構造を生み出す一連の関数から成り立つ。 Loading Entries まずはじめに、このアプリケーションは投票…