JavaScriptによる画像のペースト

f:id:koyamay:20150511061806p:plain

HipchatやSlackのWebアプリ版で便利な機能の一つとして、画像のペースト機能があります。 クリップボードに保持されている画像をテキスト入力欄でペーストし、アップロードすることができます。

JavaScriptでこの画像のペーストをどのようにやっているのか、その詳細について調べてみました。

tl;dr

  • Clipboard API
  • Hipchat, Slackにおけるペースト機能
  • paste.jsによるFirefoxの対応
続きを読む

Kobitoのエントリーを一度にエクスポートするワンライナー

Kobitoのエントリー全てを.mdファイルとして一度にエクスポートするワンライナーです。

Kobitoのエントリーを複数PCで共有したい機会がありました。OSXの場合はQiitaで紹介されているKobito.db等を共有する方法で問題ないのですが、自分の場合OSXWindowsマシンで共有したいという。しょうがないのでMarkdownファイルをDropboxに書き出す方法を選択しました。

現在Kobito for Windowsが開発中とのことです。リリースされたらOSXと同じ方法で共有できるかも。楽しみです。

続きを読む

Katana + log4netによるWeb APIのロギング

ASP.NET MVCRails::Rack::Loggerみたいなことできないかなという話。Katana + log4netでの実装とtipsについて以下述べていきます。

tl;dr

  • Katanaを使ってログ用のカスタムミドルウェアを作る
  • リクエストからの一連の処理を一意に識別するためにGUIDを使う

ASP.NETミドルウェア

ASP.NETRubyでいうRackのようなものであるOwinが搭載されました。

OWINは Open Web Interface for .Netの略で、 Webサーバに依存しないWebアプリを実現するための規格のようです。 この規格を満した開発を実現するため、Microsoft複数コンポーネントを提供しています。 このコンポーネント群をKatana Projectと呼んでいます。

(via yamamotoさん@社内Advent Calendar)

Owin&KatanaによりASP.NETでもRackミドルウェアのようなものが差し込め、認証やロギング周りの実装がいい感じにできるようになりました。

続きを読む

社内アドベントカレンダーradventについて

社内用アドベントカレンダーradventを作ってから色んなことが起きたのでまとめておきます。

tl;dr

  • きっかけは社内SNSから
  • 実際に作って運営してみてわかったこと
  • 軽く発表した
  • 紹介された

radventとは

f:id:koyamay:20150116100819j:plain

nanonanomachine/radvent · GitHub

Qiita様のアドベントカレンダーを社内のイントラネットでできるようにしたRuby on Rails製のアプリです。markdown形式で記事を投稿することができ、リアルタイムプレビューや画像アップロード機能などがあります。Qiita様と違い、日付が過ぎると登録記事が自動公開されます。

続きを読む

RailsのparamsはString

備忘録として。

はまった、というか初めて気づきました。タイトル通りRailsparamsStringなんですね。

事の経緯

以下のようなコントローラーがあったとします。

class ItemsController < ApplicationController
    def new
        @date = params[:date]
    end
end

それに対するspecが以下

require 'rails_helper'

RSpec.describe ItemsController, :type => :controller do
    describe "GET #new" do
        it "assigns the requsted date to @date" do
            get :new, date: 1
            expect(assigns(:date)).to eq 1
        end
    end
end

結果がこちら

f:id:koyamay:20150104212617p:plain

ナンデString!?

そういうもんだった

つまり、

  1. params[:hoge]は文字列で帰ってくる
  2. findメソッドは文字列でも指定することができる

ので普段あまり気づかなかったのですね。rspec書き始めて初めて気づきました。勉強になりました。

Herokuでnpmのキャッシュにはまった

先週末Heroku + Node.jsではまったのでメモしておきます。

tl;dr

  • npmのdependenciesにgitレポジトリを指定したらHerokuのキャッシュではまった
  • heroku/heroku-repoいれたら快適Heroku生活できるようになった
続きを読む