ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

覚え書き

JavaScriptのクリックイベントを発火させる方法

最近噂のCookieClickerというゲームがあります。 Cookie Clicker ゲーム内容はクッキーをクリックしたりクッキーを消費して様々なユニットやアップグレードアイテムを購入したりして、ひたすらクッキーを生産し続けるというゲームなのかもはやよくわからない…

メールが送れているか確認したいけど自分の持っているメールアドレスに向けて送るのは…という方向けのGem「MailCatcher」

メールを送る動作をするときの確認ってどうしてますか? アカウントを持っているどこかのメールサーバーを使って送ったりしていませんか?私もそうしてました。 でもそれだと、 正しく送れているはずなのにメールが来ない と思ったら迷惑メールフォルダーに…

楽したいんですよ、綺麗にコードかけるし、書かなくていいかもしれないですし

昨日はもう出歩きたくないようなひどい雨風でしたが、今日は打って変わっていい天気です。涼しくなってきて夏も終わりが近いと感じます。 さて、今回は「多対多の関連を持つデータをRailsでうまく保存したく」なりました。 データを表示する段階の問題 newや…

借り受けたMacBook Airでもお仕事できるようにした

とりあえず必要最低限のものはアメリカに行く前にインストールしてありましたが、あらためてメモ書きです。でもその前に。 癖になるトラックパッドの操作 なれるとなかなかいいですねこれ。今の所こういう感じにしています。 2本指で 左右にドラッグするとペ…

なんかスタイルシートのある色をデータベースに保存しておいて、管理者が自由に色を変えられるようにしたいよね、みたいな話があったので

Railsだと「アセットパイプライン」なるものでやれるそうです。 今までお手伝いしてきたアプリでは、何の気無しにJavaScriptをCoffeeScriptで、CSSをSCSSで書いてきたのですが、どうやらこれもアセットパイプラインを暗に使っていたようです。 今回はSCSSの…

Deviseでこれをやってておくれそうになったはなし

たとえば管理者と一般ユーザーを使い分けたいときってよくありますよね。今回それに出くわしまして、Deviseで何とかしてみました。 まずはDeviseを使った管理者と一般ユーザーのモデルを作ります。 rails g devise users rails g devise admin みたいな感じ…

404ページ、500ページのつくりかた

いくつかやりかたがあります。 1. 静的ファイルで十分な場合 public/404.html、public/500.htmlというファイルを置くだけです。ね、かんたんでしょ? 2. レイアウトを使いまわしたい場合 まずはconfig/routes.rbを修正します。 MyApplication::Application.r…

明後日出発です。 ほか

明後日出発です。 いよいよあさって出発となりますが、まったくまだあまり準備ができてません。とりあえず明後日までのタスクは 服を買っておく(1日足りない) 旅券申請しておく お金おろす おみやげ買っておく の4つ。サブタスクがいくつかありますが、いま…

アレが好きな方におすすめ!なダミー画像生成サービス

http://t.co/BH6B1nMCmz あるものが好きな方におすすめの斬新なダミー画像生成サービスを見つけた— ゆうなんとか@23~26東京 (@yuu_hara) 2013, 8月 17URLで察しがつくかもしれませんが*1、なかなかおもしろいダミー画像生成サービスを見つけました。 API 正…

いや、べつにTwitterの真似事がしたいわけではないんですけれど

今度は「ログインするときにTwitterみたいにユーザー名とメールアドレス両方受け付けたいよね」みたいな話が持ち上がったので対応してみたいと思います。 ちょうどDeviseのWikiにやりかたが載っていたので、この通りやってみたいと思います。 大体の流れは、…

Rakefile書いてみた

Rakefileってなに? rake hoge で実行できるタスクをつらつらと書いたものです*1。その実態はRuby+タスク定義用のAPIといった感じです。 で、書き方は? task :create do #rake create で実行したいタスク end task :delete do #こちらは rake delete end ta…

Grapeというのを触る機会があったので

もちろんグレープといっても これではありませんし、 こちらでもありません。APIを作るのに特化したフレームワークで、例によってGemfileに gem 'grape' って書いたあと bundle で使えるようになります*1。 文法とかそのへん なんかSinatraとRailsのroutes.r…

「ここの調子がおかしいようなのですが…」「ああ、キャッシュがおかしかったようですね。これでどうですか?」「あ、いけました!ありがとうございます!」

これがあるからキャッシュは… 今回はRailsでキャッシュを使ったり消したりする機会があったのでメモです。 キャッシュする、読み込む Rails.cache.write(key, value) と Rails.cache.read(key) のペアであれこれしてもいいのですが、 Rails.cache.fetch(key)…

Ruby 2.0 と 1.9 を共存させたい

今の私、いい加減Ruby 2.0を触ってみたいけど、ちょっとわけあってRuby 1.9も使い続けたい、といった感じになってます*1。さて、どうしたものかと調べていたら、「rbenv」なるものがありました。まあ誰しも考えるんでしょうね。 インストールしてみる ssteph…

Ruby on Rails をインストールしたらついてくるActiveSupportとかいうライブラリについて

これなに? タイトル通り、gem install rails と打ち込んだらRailsもろともインストールされる数多のGemのうちのひとつです。この子は何なのかというと、かゆいところに手が届くようなメソッドを集めたものらしいです。ちなみに、Railsを使ったプログラムで…

JavaScriptのapplyの黒い使い方

JavaScriptプログラミング、zipもないし(Haskell的な)concatもないし辛い…と思ったらこれの2つ目の奴が魔法っぽくてやばい http://t.co/s1CFkyQyGZ [Sombrero]— ぽこつん@ (@ponkotuy) 2013, 7月 18 うそだーと思ったら本当になりました。 Haskell的なconc…

これイマイチDRYじゃないなーと思ったら

DRYとは アルファベットをひと文字ずつ、または英単語のdryと同じ読み方をしますが、「乾かせ」ではなく、「Don't Repeat Yourself」の頭文字です。早い話が「重複を避けよ」ということで、データやプログラムに重複箇所があると、そこに修正をかけたいとき…

消したはずのブランチをチェックアウト

リモートリポジトリにpushしたけどローカルでマージしてないブランチを消すとこうなります。 ( ・ω・)っ git branch -d unmerged warning: deleting branch 'unmerged' that has been merged to 'refs/remotes/origin/unmerged', but not yet merged to HEAD. …

Railsで直接SQLを実行していい感じに値を得る

ActiveRecordでSQLのクエリーを構築していくのは手軽でいいのですが、ちょっと特殊なことをしたいときはなかなかそれだけでは難しいかできない、ということがまれによくあります。 私もここ数日あれこれ試行錯誤した結果諦めたものがあります。どんなものか…

ワードバスケットの戦術について

ちょっと私の回りではやってるので。 ワードバスケットのルールについて ざっくり説明するとしりとり×カードゲーム×スピードといったところです。 プレイ動画はこちら。 ワードバスケット大会決勝1 - YouTube ルールはこちらでご確認ください。 [http://jaga…

しまった!git rebaseをミスった!というときの解決法

今日はrebaseをミスってしまったのでやり直す方法をメモ。 すぐにためそう git reset --hard ORIG_HEAD コミットやマージをしてなければこれで大丈夫のはず。もうしてしまった?でもまだ諦めないで。 まだ大丈夫。 まず次のコマンドを打ちます。 git reflog …

Pull Requestを処理してみた

今までは送る側だったのですが、今回はうける側をやってみようと思います。 うまくいったときの流れ PullRequestを送ると、送られた側のリポジトリにはこういう感じのissueが追加されます。 「Merge Pull Request」というボタンを押すとテキストボックスが表…

Railsでソートする

RailsというよりかはActiveRecordの話かもしれませんが。今回もちょっとハマったのでメモです。 基本 ひとつのテーブル内でソートを完結させる場合は特に難しいことはありません。 Model.order("column_name asc") これでテーブルmodelsにあるレコードすべて…

動的にメソッドを追加して動的に呼び出す

動的型付けの言語だと、動的にメソッドを追加するとかいうのができます。 Ruby Module#define_methodで定義できます。 define_method("foo") { puts "fooo!" } 動的に呼び出すときはObject#send(メソッド名, 引数)呼び出せますが、privateなメンバーやメソッ…

Sinatra×RSpecでテストの書き方

調べたけどやっぱりまだよくわからないのでアレですが。 とりあえずRSpecでSinatraのテストを書いているコードを読んでみよう ここにSinatraでHello Worldしたものをテストしているリポジトリがあったので読んでみました。とりあえずこういう構造で書いて行…

JavaScriptでシャッフルしようとしてハマったおはなし

忙しい人のための結論 collection = []; //中身を適当に埋める作業がここに入る sortedCollection = collection.sort(function(){ return Math.random() - 0.5; }); 最初はこう書いていた collection = []; //中身を適当に埋める作業がここに入る sortedColl…

CSSのグラデーションと背景画像に関する小ネタ

まずは基本から CSSでグラデーションを設定する方法ですが、たとえば背景に使いたいときは background: linear-gradient(#fff, #aaa); というふうにします。なお、上では省いていますが、実際にはベンダープレフィックスをつける必要があります。とはいって…

Media Queriesの使い方とスマートデバイスの画面サイズ

両方とも並行して使うのに別々の記事になってることが多いので(両方共それだけで数十KBのテキストを書くことができるので当たり前といえば当たり前)、まとめておきます。 Media Queriesの概要とか 簡単なつかい方 @media screen and (max-width:640px) { /…

CSSでテキストを多段組みする

今回は見ての通りテキストを多段組みする方法のご紹介です。CSS3で新しく追加されたcolumn-countとかcolumn-width、column-gapを使います。まとめると column-count:段組みの数 column-width:段組みの幅 column-gap:段組み間の幅 となっています。column-cou…

そうそう、テスト書くのをサボってたよ ほか

そうそう、テスト書くのサボってたよ この前の合宿でもちゃんと書いてなかったし…というわけで久々にちゃんと書いてみたところ、 どんなに時間をかけてもなかなかかけなかったコードが1割ほどの時間でかけてしまいました。 すでに書いたコードをコピペして再…