ンンンパ

ふとしです

移転しました

`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…

Discourseにみる権限管理。

権限管理に興味があって、ちょろちょろ読んでいます。 qiita.com Spreeを読む前はDiscourseを読んでいました。Discourseでは権限管理にこれといったGemは用いず、独自の権限管理機能を実装しています。 Guardianというクラスです。 ただの感想みたいになった…

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

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

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

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

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

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

ActionCableで遊んでたらなんかリロード毎につながったりつながらなくなったりすんですけど?って時。

あたらしいもの好きなのでActionCableをいじっています。WebSocketは別に新しくない?おかたいことを言わないで。 ところでこの解決策は推測でしかないんですが、とりあえず解決したので暫定メモ的なアレですが、困ってる人はどうですか。 Redisががんばった…

ぐぐりんぐしてなんとなく使う、という癖を治すためにとりあえず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(…

WatchifyとBabelifyでES2015とReactをする。(no Gulp)

BabelがわりにTypeScriptを使うという雑なことを続けていましたが、Babelでも作業できるようにします。 ├ public/ │ ├ js/ │ │ └ build.js # 書きだされたjs │ └ index.html │ └ src/ ├ js/ │ └ index.js # ES2015のjs ├ out # ../public/jsへのシンボリッ…

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 こんな感じかな。未実装。 運動後にやってみる。

JavaScriptで確実にmouseupをつかんでblur()する。

Marker Workbook PDF.jsとReactでブラウザ上で完結する暗記帳的なものをつくった。 - Qiita ではキーボード・ショートカットでスペースを使うのですが、ボタン押下後にスペースを押すと、そのボタンにフォーカスが残っていて再度押下されてつらいということ…

Reduxは欧米人用。

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

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

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

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

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

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

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

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

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

アイデアとわ〜

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

あっ

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

歯医者大好き

食事が大好きなので、食事を妨害する虫歯による痛みは世界最大の敵です。 それを倒してくれる、好きにならないはずがない。 好きすぎて間接マーケティングします。 イメージ 治療が痛い、想像を絶するほど。 そういうイメージが刷り込まれてる。特にギャグ風…

質問のしやすいグループウェアとはどんなのなのか〜?

とか考えながらモックをつくってました。動いてる。 おしえてください mmmpa/askable 反応をボタンひとつで返せるようにしたかった ただ知らないだけでも、その反応がわかるようにしたかった、という感じです。 メーリングリストで質問を投げた時の問題点は…

ボーンズをシーズン1から観てるんだけど

ほんとに脚本チーム変わったんじゃないかっていうぐらい豹変するドラマってあるよな。 ボーンズはDisc4から本当におもしろくなった。感情に訴えかけてくる。 クリミナルマインドも最初おもしろくて、2-4辺りはめちゃくちゃつまらなくて、シーズン5ぐらいでま…