ンンンパ

ふとしです

無職日記

Access-Control-Allow-Originが設定されてないWeb APIを叩くために中継サーバー書いた。

大げさなタイトルみがありますがただのRailsです。 github.com うすうす実装なのでさがせばあるんでしょうけど、人が書いたもの使いたくない場合ってあるじゃないですか。 起動 $ TARGET=http://you-want-to-ajax.server.com ALLOW=http://your-local-js.ser…

vue-routerのroutesを全部出すやつ

だいたい見れる。 log(dig(router)) function digState (state, path = []) { state.nextStates.forEach((nextState) => { if (nextState.handlers) { nextState.handlers.forEach((handler) => path.push(handler)) } if (nextState.charSpec.validChars) {…

ActiveAdmin辺りでCircular dependency detected while autoloading constant Fooが出る場合の措置。

Rails 4.2.7、ActiveAdmin 1.0.0.pre4で発生しました。 普通にやってる分には出ないんですけど、下の記事みたいに外からRails.application.require_environment!すると、models関連でCircular dependency detected while autoloading constant Fooが出ます。…

ベーシック認証が必要なサイトにアクセスするテストで、ダイアログをシカトするためにNginxでProxyする。

Phantomjsじゃ動いてくれないJavaScriptライブラリがありまして(よくある)、Selenium + Firefoxでスクリーンショットおじさんになっています。 nginx.conf 実際はRubyではないのでこのようなコードではないんですけど、概念的にこんな感じです。 server { li…

Rails開発でリポジトリには入れたくないんだけどローカルではやっておきたいテストがある場合の取りあつかい

自明だったり、すごく重かったり、細かすぎるテストたちがいます。 重いテストは短期的にも長期的にもコストになり、細かすぎるテストは実装変更時のコストが必要以上に高く、よくありません。 しかし、たまにやっときたいんですよというテストがありますの…

Authlogicに関するメモ

認証機能再発明するべからずは有名な鉄則ですが、まるで知らないままというのもマズイので実装を読むことでお茶を濁していきたい。 saltやSCryptの運用、persistence_tokenの更新などで比較的安全にいけるのでは。 パスワード salt Authlogic::Random.friend…

AWS Lambdaで使う関数をローカルでテストするサーバーを建てる。

AWS Lambda + AWS Api Gateway + AWS DynamoDBでなにかをつくることにはまっています。 AWS Lambdaで使う関数自体はmochaなどでテストできますが、実際にブラウザから叩くテストをローカルでしたいと思いました。 そこでNode.jsで簡単なサーバーを建てます。…

`Regexp`などActiveRecordでメソッドが用意されていない標準SQLの演算子を清く正しく使う。

清く正しくとは、生SQL文字列を書かない程度の意味です。 下の方の長いやつはRails 4までの話です REGEXPはRails 5もしくはArel 7からmatches_regexpとしてメソッドが用意されました。 Writer.where(Writer.arel_table[:email].matches_regexp('.*@gmail.com…

AWS Lambdaを使って、ブラウザ側とサーバー側で同じバリデーションをするということをやった。

日記です。今日の日記コードはこれ。 github.com qiitaにはさすがにもうAWS Lambdaでフォームなんていう記事は山盛りあったのでこっちで。 日記 Node.jsはサーバーとして動かせるので、ブラウザ側とサーバー側で同じスクリプトを用いることが可能です。(アイ…

HerokuにSymbolic Link入りを投げるとき気をつけること

リソースを再利用しようとしました。 そこでディレクトリに対してln -sで作成しますが、例えば同ディレクトリ内の何がしかへ張る場合、 $ ln -s development staging とする必要があり $ ln -s ./development staging これだと辿れなくなります。 セキュリテ…

レールズにプルリクエストがマージされてハッピーだった

ので、思いつく限りのSNSやブログに書いています。 ここにも書きます。 どれ 以下の記事のやつを作ってる時に「バグかしら?」と思ってモンキーパッチで回避してて、せっかくだからとpull requestを飛ばしてみたら忘れた頃にマージされたという話です。 qiit…

rails-erdでRails Engineベースのアプリケーション(Spree、Solidusなど)のER図を得る。

たっぷりとしたコードを含むRails Engineは上から読んでいくにはつらいものです。 いくつかのgemに分割されているSpreeのようなアプリケーションを読むにはインストールして起動しつつ、その上で読んでいくのが楽ですが、手がかりがないのはつらい。というこ…

通販で自転車を買った思い出

いままで直近3台全部が通販で購入した自転車だった。 次は店頭でロードを買いたい。仕事がみつかったらね……。 Be.BIKE 16STREET 38,000円 楽天で見つけたミニベロで、アルミ製、サスあり。黒くてカッコ良かった。 届いてわーいと乗り出したところ、ブレーキ…

Windowsをメインで使っている時にRails開発環境を作った話

(具体的な方法や手順についての話はありません) 現在わたしはデスクトップ機でDebianを使用していますが、もともとWindowsユーザーでした。 なにしろ前職に転職したきっかけがFlashでしたし、前々職はホームページ屋さん勤務でしたから、開発はWindowsでや…

ぐぐりんぐしてなんとなく使う、という癖を治すためにとりあえずRails 5.0.0.rc1のドキュメントを入手する。

最初はドキュメントを頭からケツまで読んだほうが良いと思うんですよ。その時使わないポイントも頭に入れておくと、それが使えるタイミングが来たら、あれ、見たことあるぞ?となると思うんです。 歳を取ってくると結構実感するレベルで記憶力が弱ってきて、…

2016年なのでgulpfile.coffeeをgulpfile.jsに書きなおした。

1ファイルとかだとdecaf onlineでやり直してチョロチョロ書きなおすだけでよくて楽でした。 ところで最初に用意したのは1年前ぐらいだったのですが、バージョンが進んでいたりdeprecatedが発生していたりで、ライブラリの刷新が必要になりました。 Node.js 6…

ブラウザの拡大率を取得できたことにより生まれそうな邪悪さ

ブラウザの拡大率、ズームレベルを取得した。 - Qiitaという半分冗談みたいなエントリーを投稿しました。 zoomer.mmmpa.netで試せますが、Firefox+Flashが動く環境でしか動作せず、被弾環境が少なすぎるので「冗談」です。 ところでなつかしの文字サイズ固定…

自分じゃないReact.Componentから上がってくるドラッグイベントを処理する。

のはつらい。 同一Component内で処理するのは楽 Marker Workbookではそのようにやりました。簡便に書くと以下。 startDrag(e){ e.preventDefault(); let div = e.currentTarget; let store = []; let startPosition = {x: e.pageX, y: e.pageY}; store.push(…

TypeScriptでmixinした時に型情報が見れないのをある程度なんとかする。

わたしが使っているのはこういうやつで、"Real" Mixins with JavaScript Classes由来のやつです。 gist.github.com このようにインします。 export default class Mixed extends (mix(BaseClass).mix( Mix1, Mix2, Mix3 ) as typeof BaseClass) { // class }…

ES6のDestructuring assignment(分割代入)でさらに便利記法

分割代入 - JavaScript | MDN 分割代入というのは let {a, b} = {a: 'a', b: 'b'}; console.log(a, b); // a b というオブジェクトのキーをもとに変数に展開できる、これだけでも十分便利なものですが、さらに便利にする記法もあります。 変数に別名をつけら…

TypeScriptのコード規約をIntelliJのデフォルト設定任せにしていたので、TSLintでちゃんとやる。

*lintは自分で、あるいは社で作成された一定の規約に従ったコードを書かないと怒られシステムです。 人の目とか感覚ではなく、機械が機械的に怒ってくれるので感情が沸かないのが良いですね。 TypeScriptにはTSLintがある 現在JavaScriptを書くにあたっては…

Reactで右クリックを扱う

ReactにはonContextMenuが用意されているので楽です。 render() { let onClick = (e, isRight?)=> { e.preventDefault(); if(isRight){ // 右クリック }else{ // 左クリック } }; return <div onClick={(e)=> onClick(e)} onContextMenu={(e)=> onClick(e, true)}> 何か </div> } ただ…

アンドゥリドゥの案メモ

実装 gist.github.com テストも書いてまぁ動いたのでこれで。 gist.github.com 最初のメモ gist.github.com こんな感じかな。未実装。 運動後にやってみる。

Reduxは欧米人用。

ないから生まれるんだ。 中国人は道徳心が無いから儒教が生まれた。 日本人は勇気がないから武士道が生まれた。 アングロサクソンはずるいからフェアプレーの精神が生まれた。 あのめんどくささの極致みたいなファイルの多さは欧米人の我の強さ、自分主義、…

auから0simにかえて困ったこと

simロックフリー機器を所有していないことを失念していたので連絡手段がなくなった。 <おわり>

リボ払い計算機に暗黒時代の消費者金融の金利を追加した。

リボルビング払いのコワさを知るために簡単な計算機つくった - ンンンパ 出始めの頃で、ほんときっつい金利だった時代のです。 それでもアコムとかは最大の金利は課してなかったらしくてへぇ〜みたいな感じだったんですけど、大してかわらんぞい。 昔のみん…

ダークソウル3をクリアしたおもいで

攻略サイトなし、友達なし、ソロプレイという特殊性癖が前提ですが、とにかくボス戦がおもしろくなくてつらかった。 ファンネルっぽい遅延攻撃がうざい ボス戦のこっちのモーションに合わせた攻撃がうざい ということで、なんというかうざいタイプの難易度の…

リボルビング払いのコワさを知るために簡単な計算機つくった

久しぶりに借金に関して調べてたけど世のリボ払い利息計算機はなんでこんなに使いづらくつくってあるんだ。— おふくろさま(♂) (@o296sm) 2016年4月9日 銀行が提供しているシミュレーターはやたらと入力項目が多かったり小さかったりでアレだったので、ただ…

アイデアとわ〜

みたいたことをジョンダニエルさんを飲みながら考えていたんだけど、あっ、これ作ろうってわたしが思うのって結局、実務とか自分がやるときのつらさが起因なんだよな。 だから、なんか天才が突然思いついた!みたいなのはまったく縁がなくて、とにかく目の前…

あっ

CSIを英語で見ると「フラッシュドライブ」と言ってるのを字幕でも吹き替えでも「ユーエスビー」と言っているのが許せなかったんです。 USBメモリならまだわかるんですよ。「ユーエスビー」という呼称は、浸透したとはいえ1人でイラッとしてたんです。 しかし…