読者です 読者をやめる 読者になる 読者になる

あんパン

こしあん以外は認めない

axiosでHTMLを取得してきてappendChildで埋め込む

普段axiosを使うときはレスポンスがJSONなAPIを叩くことが多いが、HTMLを取得して挿入することもあると思う。innerHTMLで直接挿入することもできるが、responseTypeをdocumentにすることでappendChildで要素を挿入することができる。 import axios from 'axi…

Windows 10とUbuntu 16.10 on LVM on LUKSを1つのマシンに同居させる

これの続き。 前回はrootとswapを別のパーティションに作成したため、起動時にパスワードを2回入れる必要があった。まあこれでも良いのだが、煩雑なので1回で済ませられるようにしたい。そこで、LVM on LUKSを試してみることにした。暗号化した1つのパーティ…

Windowsが入っているマシンにパーティションを暗号化した上でUbuntuを同居させる

新型MacBook Proのキーボードをヨドバシ店頭で触ったところ2秒でやっていけないことに気づいたのでThinkPad X260を購入した。ThinkPad EdgeやX201を使っていたこともありX260自体にはなんの不満もなく、安価でそこそこのスペックの製品を買うことができてよ…

エンジニア立ち居振舞い:サービスを使い倒す

ひとでくんさんが お題「エンジニア立ち居振舞い」 を作っていたので参加します。 toBなサービスを開発しているとなかなか難しいかもしれません。幸いなことに今自分が携わっているプロダクトはどちらかというとtoC寄りなので成り立っています。 サービスを…

Dropboxで静的コンテンツ配信ができなくなったのでS3で代替する

Dropboxで静的コンテンツの配信ができなくなるという話を聞いた。みんなの元にはメールが来ているけど、なぜかぼくの元にはメールがきていない。 www.dropbox.com 2016 年 10 月 3 日より、ウェブ ブラウザで HTML コンテンツをレンダリングする共有リンクの…

ISUCON6予選やった

Iikanji Speed Up CONtestというのが毎年あって、それの第6回の予選に出た。2日目日曜日の方。去年も出ていたのだけど、全く意味わからなかった。今年は少しマトモで、決勝こそでられなかったもののそこそこのスコアになったので満足といった感じ。これくら…

YAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa ネット担当を支える技術

7/2, 7/3は YAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa でした。ぼくはネット担当(Twitter担当)としてスタッフをしていました。 本日この3人で本Twitterアカウントを運用します。よろしくお願いします!!!! #yapc8oji pic.twitter.com/wo5ChGis…

git diffで差分のあるファイルを一瞬で開くやつ

編集してまだgit addしてないやつをもう一度開きたいとき,いちいち探るの面倒なので作った.多分この世に既にごまんとあると思う. gitのサブコマンドとして作るならこんな感じ FILE_PATH=$(git diff --name-only | peco) if [ ${#FILE_PATH} -ne 0 ]; then…

ISBNから書名と著者名とるやつシュッと作った

調べながら30分くらいでシュッと書いた.あとでもうちょい綺麗にする. 検索には国立国会図書館サーチのAPIを使った. require 'rexml/document' require 'csv' require 'rest-client' # usage: # bundle exec ruby search.rb source.csv > result.csv table…

iTunes音楽同期事情を知りたい

いま業務と私物でPCが分かれてる.曲は私物PCに入ってるので,会社に行く時に毎日持ち歩いてる.iPhoneで聴くこともできるけど,選曲の度にiPhoneを開くのが苦痛なので,PCで聴いている.業務PCと私物PCで曲を同期できれば私物PCを持ち歩かなくて済む. 特に…

Googleスプレッドシートで支出管理

社会人になったのでさすがに家計簿みたいなのをつけるかとなった.帳簿につける上での要求は以下の通り. PCでシュッとつけられる 支出管理のみを行う 収入は基本一定なので,一定金額以上使わない目安にしたい 上限を多少厳格に定めて運用する.残りは貯蓄…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記 ↑毎年恒例のやつです こんにちは,id:masawadaです.本日付で株式会社はてなに入社しました.職種はWebアプリケーションエンジニアで,東京オフィス勤務です. 自分は2014年の…

case-insensitiveなファイルシステムにおいてGitで間違えてコミットしたcaseを修正する

TL;DR git mv を使いましょう 何を言っているのか OSXのファイルシステムはデフォルトでcase-insensitiveとなっている.OSを入れなおすことでcase-sensitiveにできたり,case-sensitiveなfsのパーティションを切ることもできる.なお,Linuxではたいていのフ…

zshでghq管理ディレクトリ以下にいるときはPROMPTのpwdを省略して表示する

motemen/ghq使い始めた.ghqはGitのリポジトリ管理ツールみたいな感じ. ghq自体かなり便利なのだけど,PROMPTにpwdを表示しているとこれが長くなって大変なことになる. というわけで,ghq管理ディレクトリ以下にいるときは省略しようというのが今回の試み…

pecoでgit-checkoutするやつ便利だった

qiita.com めちゃ便利.git-copみたいな名前で保存してPATHの通るところに置いて実行権限つけるとより便利.

brewでいれたreadlineとかopensslとかを含めてrbenv+ruby-buildでRubyをインストールするalias

.zshrcに alias ruby-install='RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install' っていうの書いてて ruby-install 2.3.0 みたいにすると一瞬で入って便利

iTunesで再生している曲をTwitterに投稿するNodeアプリケーション作った

github.com インストール方法 npmには上がってないので $ npm i -g masawada/tweet-nowplaying とするとGitHubからインストールできる. ホームディレクトリに設定用のJSON置いて $ tweet-nowplaying とするとツイートできる. Now Playing: "silky heart" f…

別ブランチの特定のファイルをvimで開く

$ git show branch_name:/path/to/file すると別のブランチのファイルを標準出力にだすことができる(知らなかった). $ git show branch_name:/path/to/file | vim - するとVimで開けて便利.lessとかに出すのも良さそう.branch_nameはコミットのハッシュで…

UMLシーケンス図を手軽に書いてTeXに貼る

卒論でUMLのシーケンス図をTeXに貼る必要が生まれた.Illustratorとかでちまちま描いても良いのだけど,面倒なのでテキストでなんとかしたい. 便利なツールあって,これ使うとテキストでシーケンス図を描くことができる. js-sequence-diagrams by bramp SV…

ActiveRecordでSTIとrelationを組み合わせる

Rails(ActiveRecord)にはSTI(単一継承テーブル)があって,テーブルは1つだけどtypeというカラムでモデルを出し分けることができる.例えば,アンケートの項目には単一/複数選択があり,これらを保存する先のテーブルは1つにまとめたいがプログラム上では別の…

Ridgepoleでfk設定するときはnameが必要

Railsで $ rails g model Hoge fuga:references $ rake db:migrate $ rm -rf db/migrate みたいな感じでモデル新規作成時だけ一旦マイグレーションファイル作ってからRidgepoleのSchemafileにdumpして… みたいな運用してたら詰まった. ActiveRecordのrefere…

RailsでPOSTリクエストのbodyをJSONで受け取る

application/jsonを受け取りたい場合 def params @params ||= JSON.parse(request.body.read, {:symbolize_names => true}) end 書いとくとapplication/x-www-form-urlencodedの場合と同じ感じでparamsを受け取ることができる.APIつくるときに便利. skip_b…

今年のFirefox OS活動

これは Firefox OS Advent Calendar 2015 21日目の記事です。 去年も一昨年も21日に書いていたので今年も21日、と思って今日書きます。 本当はちゃんと開発記事を書こうかと思っていたのですが、卒論その他で余裕がなく今年やったFirefox OS関連の活動とか感…

高専カンファでScratchXの話をしました

昨日、高専カンファの複数トラック発表でScratchXの話をしました。 長引く体調不良と睡眠不足によりスライドが雑なのはご容赦ください。 ScratchXの開発環境の話が雑に終わってしまったので、新しく記事を書きました。この話を期待していた人は以下をご覧い…

ScratchXのExtensionsをES2015で開発できるテンプレートを作りました

これは Scratch Advent Calendar 21日目の記事です。 こんにちは、id:masawadaともうします。普段は京都クリエイティブワークショップというところでScratchなどを扱ったワークショップの企画運営を行なっている人間です。 ScratchXとは ScratchXはScratch 2…

オブジェクトストレージ Minioで遊ぶ

これはKMC Advent Calendar 2015 15日目の記事です。 昨日は id:jf712 さんの @uiureo さん誕生日おめでとうございます - 霊安日記 でした。 目次 目次 はじめに Minioとは Minioの使い方 サーバを起動する サーバを叩く Node.jsから叩く Rubyから叩く Amazo…

RTX1100初期設定

これはmasawada Advent Calendar 2015 4日目の記事です。 初期化 RTX1100の後方にinitボタンがあるので、押しながら起動すれば初期化できる。 DHCPサーバの設定まで telnetする RTX1100はデフォルトでIPv4のDHCPサーバとなっていないのでなにもできない。IPv…

高専カンファ100で発表します

高専生ではないのですが、スタッフに高専生じゃない人もいるということで、高専カンファレンス100 in 東京で発表させていただくことになりました。 まだタイムテーブルなどは出ていないのですが、そのうち出るような気がします。高専カンファ100自体は12/19…

dokku上で動作する係り受け解析APIサーバの作り方

係り受け解析はあくまで例なので、これに関して詳しく知りたい人は他をあたってください。本稿はdokku(Bashスクリプトで作られたHerokuライクなオンプレミスPaaS環境)上でCaboChaを用いて係り受け解析をする簡単なAPIを作成する、というシナリオで、システム…

Android版Firefoxでは文字選択後にtouchendが発火しない

というかマジかこれ Android版Firefoxで文字選択をすると、まずselectionchangeが発火しない。これ自体は標準でそうなっているので仕方ないという感じがする。 Event reference | MDN 571294 – Add selection events 詳細はここらへんを見るとわかる気がする…

AndroidではCSSの:activeが使いづらい話

割と一般的なのかもしれないけどつい最近知ったネタなので共有します。 CSSには:activeという擬似セレクタがあって、要素をクリックしている間だけ特定のスタイルを有効にすることができます。スマートフォンのブラウザにも当然この:activeは存在しており、…

iOSのSafariはselection.removeAllRangesの挙動がおかしい

selectionはwindow.getSelection()で取得することができます。 通常のウェブブラウザだとselection.removeAllRanges()を実行すると選択範囲が解除されます。iOSのSafariではこれが解除されずに残ります。 また、selectionはrangeCountという選択範囲の数を保…

jQueryでtext-overflow: ellipsisの中抜きみたいなことをする

CSSでボックスに収まりきらないテキストを三点リーダとかで省略するやつあって、文字列の先頭か末尾しか省略できない。真ん中を省略したかったのでjQueryのプラグインとして書いた。 masawada/jquery-shorten-textgithub.com 割と雑で、なんとなくコード読ん…

dokku環境を作ってStartSSLでhttps化するまで

Heroku使ってますか。Heroku便利なんですけど、最近無料版だとコンテナを24時間upし続けることができなくなりました。 まぁたいていの実験的なWebAppならなんとかなるんですけど、Twitterのupdate-name(なんかのツイートをトリガーに自分の名前変えるやつ)と…

GitLabをOmnibusからmanual installに移行する

サーバまるごと移行する話です。 社のサーバでGitLabを運用しているのですが、GitLabとGitLab CI以外にもSlackのロガーやwiki等のサービスが走りまくっており常にスワップが発生する状態でした。加えてGitLab CIの機能の少なさ、障害が発生した時にGitLab Om…

VimとSyntasticでECMAScript 6の構文チェックをする

Syntasticを使うと良い感じに構文チェックをしてくれる。JavaScriptの構文をチェックするのにいままでjshint使ってたんだけど、いろいろ調べてたらeslintの方が良いのではないかという気持ちになってきたので乗り換えた。(jshintでもES6対応それなりにされて…

iOSとAndroidのブラウザにおけるタッチイベントの発火タイミング

事前説明 iOS 8.4 Android 4.4.4 TL;DR iOSは妥当な動きをする Androidはタップ操作のときtouchendの後に何故かselectionchangeが発火する Android標準ブラウザには不具合があって、touchmoveが走るとtouchendが発火しない 修正方法: http://qiita.com/ooyab…

父親のブログをWordPressからはてなブログに移行した

staff.hatenablog.com ↑いいの出たので画像を移行したくてこのページをご覧になった方はこの機能をご利用ください!!!! 結構前から父親のブログをWordPressでやっていて、最近ずっとメンテがだるいと思っていた。 staff.hatenablog.com この前はてなブログがW…

はてなフォトライフにAtomAPIから画像をアップロードする

はてなフォトライフははてなの画像アップローダ。はてなブログの画像もフォトライフに溜まっていく。先日無料版ユーザの月間アップロード制限がいい感じに緩くなって最高。 「写真を投稿」機能を改善し、画像サイズを大きく、位置情報を削除するようにしまし…

pecoでいい感じにgit addするやつ作った

git addするときに階層深いといろいろだるい。peco使うとインタラクティブにaddできる。 gist19c360bf83a2b66a39a0 このシェルスクリプトを実行権限つけて適当なところにgit-paddみたいな名前で放り込むとgit paddで使えるようになる。もちろんpecoがインス…

夜フクロウからpic.twitter.comとかGyazoに写真をアップロードするやつ作った

今日のGyaPC::Asia Tokyo 2015のLTネタです。 YoruFukurouからpic.twitter.comに投稿したりとか、Gyazoに投稿したりとかが現状ではできないのでプロキシを作って、いい感じにアップロードしようみたいな勢いです。 YoruFukurouには画像投稿先をカスタムする…

GyaPC::Asia Tokyo 2015に参加します

明日の晩に行われるGyaPC::Asia Tokyo 2015に参加します。 GyaPC::Asia Tokyo 2015 (2015/06/26 19:00〜)nota.connpass.com GyaPCは全世界で使われているGyazoというスクリーンショットアップローダサービスのカンファレンスで、中でもGyaPC::Asia Tokyoは世…

SOCKS使って電通大の学内コンテンツを参照する

いままでssh hostname -Xみたいな感じで学内の端末につないでX転送してたんだけど、SOCKS使うとこれが要らなくなる。ということを教えていただいた。 @masawada X転送よりは-DオプションでSOCKSプロキシにして手元のブラウザを使うほうがスマートかも— ろま…

Rails 4.2からのActiveJobでSidekiqをバックエンドにバックグラウンド実行する

Sidekiqとかdelayed_jobとかResqueとかいろいろあって、いままではそれぞれ書き方が違ったけどRails 4.2からできたActiveJobを使うと全て共通の書き方になりアダプタを変更するだけでバックエンドを変更できる。 だいたいここ通りにやれば動く。 Sidekiq を…

VPSとかに一発でWordPress建てられるやつ作った

masawada/itamae-wordpressgithub.com Debian/Ubuntu専用。Ubuntuでは試していない。specもない。 Itamaeで一気にnginxとphp5-fpmとMySQLとWordPressをインストールする。conf類をがっつり置き換えるのでクリーンな環境で実行すると良い。 nodes/node.jsonを…

Android(Chrome)とiOS(Safari)でe.touchesの挙動が違う

touchstart等のtouchイベントの引数eにe.touchesが含まれていて、その中にタッチしている指の情報が順次入る。 指Aを押下 指Bを押下 指Aを離す 指Aを押下 以上の操作をするとiOSでは [指A] [指A, 指B] [指B] [指B, 指A] と情報が入るのに対してAndroidは [指…

ブラウザ上でJavaScript実行するやつ作った

ブラウザ上でJavaScript実行するやつ雑に作った。お前は何を言ってるんだって感じだと思うけど、Developer Toolsの複数行版みたいな感じを想像してもらえば分かるかと。 Developer Toolsで複数行書けるけどミスって履歴のコードに置き換わったりタブが使えな…

BGM for Firefox OS作った

ひとでくんさんが作ったbgm.rbが便利なのでFirefox OSアプリ化して便利になった。 ターミナルから簡単に曲を聞けるbgm.rbというのを作った - hitode909の日記hitode909.hatenablog.com 昨日 Firefox OS大喜利ハッカソン #2 : ATND があって5時間くらいの制約…

Apple Watchはもう古い

AppleWatchは古い— Masayoshi Wada (@masawada) 2015, 4月 10 4/10からApple Watchの予約が始まったが、もちろんぼくは予約していない。シュッと買うには高い。Apple Watchは古くて時代はPebble。4/10にPebbleが届いた。 AppleWatch試着しています pic.twitt…

JavaScriptの~で数値を丸める

あまり知られていないような気がするがJavaScriptには~という単項演算子がある*1。 仕様書によれば Let expr be the result of evaluating UnaryExpression. Let oldValue be ToInt32(GetValue(expr)). Return the result of applying bitwise complement to…