Gemfile の 「group :test, :development do」ブロックに書いている 個人的に最強な設定 を晒したいと思います。(2013/10/24 現在) 作業環境 Ruby 2.0.0p247 Rails 4.0.0 Gemfileに設定している内容 ※ コメントに随時変更したものを追記しますー group :test, :development do gem 'pry-rails' gem 'pry-doc' gem 'pry-stack_explorer' if RUBY_VERSION >= '2.0.0' gem 'pry-byebug' else # 以下はRuby1.9の時のみ使う(pry-byebugの代わりに) # debuggerは1.9以下でしか動作しない, remote は byebug で使えないようになった gem 'pry-debugger
はじめに Vim7以降限定ですがVimにはスペルチェック機能がついてます。 これは、~/.vimrc辺りでset spell`しとくと有功になります。 こんな塩梅で、間違ったスペルに下線を引いてくれます。 ただしちょっと欠点があります。といいますのは・・・ 日本語が全部スペルミス扱いになって残念なことになります。 あとは、ソースをコメントアウトした時もやっぱり残念なことになります。まあそんな英単語ないですからね。 解決方法 ということで、こんな感じで~/.vimrc辺りに書いておくと幸せになれるかも知れません。 アスキーコード以外で書かれている単語と、キャメルケース、スネークケースのようなプログラムソースっぽい単語をスペルチェックの対象から外します。 (追記:10/20/2013 19:00ごろ) シンタックスハイライトが崩れることがあったので修正。 あと、やっぱりソースコードに訂正線を入
どうも初めまして2012年度入社の社内ニート予備軍editnukiです。 普段は引きこもって WebSocketで監視もリアルタイムに を書いた社内ニートさんの下でコミュニティサービスのインフラをやっております。 運用面以外ではrpmパッケージ作ったりしています。 さて、本題ですがコミュニティサービスでもredisを利用したいという声が最近多くなりいくつかのサービスではredisを導入しているのですがマスターとなるredisが死ぬと更新系が一切できなくなるため、マスターが死んだ時はアプリの向き先をスレーブに変更しなければなりません。 今までのredisの構成としては下図の様な構成でした。 redisの2.6系がリリースされた時に「sentinel」というフェイルオーバーの機能が追加されました。 詳細は公式ドキュメントをご参照ください。 フェイルオーバーしたとしてもアプリ側にマスターが切り替
こんばんは。社内ニートの佐野と申します。所属はいちおAmebaのインフラチームです。Twitterもやっていますがフォローする価値はないです。つぶやいているのはメシと酒の話と下ネタだけです。 最近、組織改編とかもろもろありましてこのたびは雑用からニートになりました:(;゙゚'ω゚'): あまり目立たないように生きてたんですが、何気にこのブログへの登場は3回目になります...。前回は2012年12月に「QCon San Francisco 2012の参加レポ」を書かせていただきました。その前は2012年5月に「Virident FlashMAXの検証」として名前だけ登場しました。なんか、ニートだけど会社に貢献してる気がしてきた(^ρ^) そんなわけで以前WebSocketを使った監視ツールもどきを作ったので、それについての簡単な説明と、各種技術要素(Python, Jolokia)のTips
斎藤です。こんにちは。 RedHat Enterprise Linux 7(RHEL7)リリースの足音が聞こえる今日この頃ですが、皆様いかがでしょうか。予習として、Fedora 19を利用されている方もいらっしゃるかと思います。 その中で、大きな変化の1つとして、 systemd(※1) の採用があります。systemdは、SysVinitやUpstartに変わる、プロセス管理の仕組みです。そうです、起動スクリプトの書き方や、プロセスの確認方法が大きく変わる事になるのです!そうなれば、構築や運用に関わる知識や手順を覚え直す必要が出てきます。 しかし、systemdに関する資料は、それほど多くありません。そこで、簡単ですが記事執筆時点(2013-10-24)での情報源をまとめてみました。検証の際の情報収集時、お役に立てば幸いです。 ※私が社内Wikiにまとめた情報をBlog用に整理し、公開し
bandersnatchはnode製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。 世の中なんでもMarkdownの流れがありますね。今回はプレゼンテーション用のスライドを生成してくれるbandersnatchを紹介します。プレゼンテーションエンジンにReveal.jsを使って格好いいスライドに仕上げてくれます。 元のMarkdownファイル。 HTMLになったスライド。 左右の矢印キーでスライド切り替え。 Escキーでスライド一覧に移動します。 bandersnatchはGruntを使ってMarkdownファイルの更新を監視し、Pandocを使ってHTMLファイルに変換します。後はどんどんMarkdownファイルを編集していけば良いだけです。ある程度決まったフォーマットはありますが、すぐに使いこなせるでしょう。 bandersnatchの面白いとこ
maman/JVFloat.js GitHub HTML5のプレースホルダをもっと良くする「JVFloat.js」。 inputの中にグレーで入力するもののヒントを表示できるプレースホルダですが、入力しちゃうと、あれ、これなんだっけ?となる場合がありそうです。 入力数が多くて、曖昧な入力が多いと、使い勝手が悪くなってしまうかも。というわけで、プレースホルダはそのまま表示しつつ、テキストを入力すると、入力したものの上にラベルでヒントを表示してくれるようにするJSライブラリです。 内容を入力すると、ヒントが小さくなって入力したものの上に表示されて分かりやすい また一歩、フォームが進化したかもしれないと思いました。 関連エントリ フィールドへの適切な入力文字数を分かりやすく教えてくれるjQueryプラグイン「wChar」 次世代のクレジット番号入力を提供するプライスレスなJS「Skeuocard
GmailとGoogle Docsで日本語などの手書き文字入力が出来るように2013.10.24 11:007,404 難しかったり、読み方が分からない漢字を入力する時って面倒ですよね。それ専用のツールを立ち上げるのも億劫だし...。 2013年10月22日、Googleがメールアプリの「Gmail」とオフィスアプリの「Google Docs」の両サービスに「手書き入力機能」を追加しました。Gmailでは50言語以上、Google Docsでは20言語以上に対応します。 事前にちょこっと設定する必要があるので、以下でGmailでの場合の設定方法を説明したいと思います。 ステップ1:設定する まずGmailの画面を開き、画面右上の「歯車のアイコン」をクリックして「設定」を開きます。 「全般」タブの一番上にある「言語」セクションの「すべての言語オプションを表示」をクリック。すると「入力ツールを
洋画のセリフをスピーキングしてGoogle音声認識によって採点するWEBアプリを公開しました。登録など必要なく手軽に遊べますが、PCのChromeブラウザ専用です。→ぼっち英会話 英語の勉強はリーディング・ヒアリング・スピーキングとありますが、英語を話す機会ってあまりないので、よい練習になるかなと。映画のセリフは耳にする機会も多く、会話で使えばジョークにもなるので、覚えても面白いと思います。 たとえば、スターウォーズの May the Force be with you.フォースと共にあらんことを。 とか、アポロ13の Houston, we have a problem.ヒューストン、トラブル発生。 とか、ターミネーターの Hasta la vista, baby.地獄で会おうぜベイビー。 なんかが入っており、役者気分も味わえます。 Hasta la vistaはスペイン語ですがちゃんと
mecabっていう日本語構文解析プログラムがあります。 今日は、それを使って「日本語を自動解析して用語を抜き出し、コピペ文を自動生成するスクリプト」の作り方を学習します。 必要なもの・root権限で動かせるlinux/unixなマシン。 ターミナルで動作します。面倒くさいGUIなんか作りません。シェルスクリプト万歳! ・yumかapt mecabをインストールするのに必要になります。 レポジトリとかは知らんけど、yum install mecabとかapt-get install mecabとかしてmecabを入れてください。 1. mecabを使って日本語から固有名詞っぽいものを抜き出す1行シェルスクリプト。超簡単です。コピペでも動く多分。 これをmecab_extract.shって名前で保存して実行属性を付けよう。 #! /bin/bash cat /dev/stdin |mecab|
何となく動いてるっぽいので、ざっと公開してみる。 以下は、Ruby 1.8.7 のみにて動作確認してます。 markov.rb class Markov NONWORD = "\n" attr_reader :markov_chain def initialize(file, chain_length = 2) @file = file @state = [] @chain_length = chain_length make_chain end def make_chain @markov_chain = {} init_state @file.each do |line| line.each_char do |c| next if c =~ /\r|\n/ push_chain(c) next_state(c) end end push_chain(NONWORD) end def p
何となく"マルコフ連鎖"という単語に魅かれて、ちょっとやってみました。 →mecab でマルコフ連鎖をためしてみる。 - コードを舐める日々 まずスクレイピング まぁ、当然(?)、PHPでやる訳ですが、まずスクレイピングをどうしようかなと思ったんですが、HTMLScrapingという素晴らしいPHPクラスがあるので、ありがたく使わせて頂く事にしました。 →http://www.rcdtokyo.com/ucb/contents/i000851.php <?php try { $hs = new HTMLScraping(); $url = 'http://www.asahi.com'; $xml = $hs->getXmlObject($url); $li = $xml->xpath('//div[@id="HeadLine"]/ul[@class="Lnk FstMod"]/li[1]/
■ワードサラダ?? みなさんはワードサラダってご存知でしょうか。サンプルとしてこのBlogを上げておきます。なんだか、日本語が変じゃありませんか?ところどころ読めるけど、なんだか変なような…。 着目すべきは、「核抑止力」を「強化」するという表現である。。 これについては核武装大腸がんの予防論を参照。。 核武装大腸がん???なんじゃそら。 こういった、ぱっと見日本語に見えるんだけど、ちゃんと読むと意味不明、という文章を「ワードサラダ」と呼びます。†1スパマーがプログラムで自動生成して、スパム広告用のBlogに利用しているみたいです。†2 さて、こんな文章どうやれば作れるんでしょう?ワードサラダの作り方を書いてあるサイトは結構あるんですが、ちゃんと動くソースコードが貼ってあるサイトはなかなかないんで、実際にやってみましょう。 ■実際にRubyで作ってみよう ソースコードは「[痛デバドラ] /d
D3.js は「ビジュアライズ用のライブラリー」だと紹介されがちなんだけども、意外にも D3.js にはグラフを描画する機能がない。 D3.js のトップページには次のように書いてある。 D3.js はデータからドキュメントを生成するためのライブラリーです。D3 は HTML, SVG, CSS を使ってデータに命を吹き込みます。Web 標準を重要視しているので、独占的なフレームワークに縛られません。強力なビジュアライズ用のコンポーネントと data-driven な DOM 操作手順を組み合わすことで、モダン ブラウザーの能力を最大限に活用できます。 D3.js is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG
WEBデザイナーの仕事をしてまして、職業柄様々な拡張子の画像を扱いますので使い分けについて分かってるのですが、ブログをやってる方はそこまで気を使ってない人が多いように見受けられます。 特にJPGとPNGは全然違ったフォーマットなので、画像の性質に合わせて使うべきです。
Git 1.8.5から、HEADと書くかわりに@が使えるようになったようです。 Instead of typing four capital letters "HEAD", you can say "@" now, e.g. "git log @". https://github.com/git/git/blob/master/Documentation/RelNotes/1.8.5.txt 試してみた git log $ git log -1 @ commit db9bdfbeb044f73a01f6325f4ad61413666a2ce0 Author: Junio C Hamano <gitster@*****.***> Date: Fri Oct 18 13:53:05 2013 -0700 Update draft release notes to 1.8.5 Signed-of
幅780pxで表示 CircleTypeの使い方 Step 1: 外部ファイル jquery.jsと当スクリプト、Lettering.jsを外部ファイルとして記述します。 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript" src="js/lettering.js"></script> <script type="text/javascript" src="js/circletype.min.js"></script> FitText.jsを併用すると、表示サイズに合わせてテキストのサイズを変更することもできます。 Step 2: HTML HTMLはシンプル
Why SVG (and Snap)? SVG is an excellent way to create interactive, resolution-independent vector graphics that will look great on any size screen. And the Snap.svg JavaScript library makes working with your SVG assets as easy as jQuery makes working with the DOM. Modern features for modern browsers Snap.svg is designed for modern browsers and therefore supports the newest SVG features like masking
JavaScript Garden はJavaScriptというプログラム言語の一番奇妙な部分についてのドキュメント集です。 このドキュメントはJavaScriptという言語に慣れていないプログラマーがこの言語について深く知ろうとする際に遭遇する、良くある間違い・小さなバグ・パフォーマンスの問題・悪い習慣などを避ける為のアドバイスを与えます。 JavaScript GardenはJavaScriptを教える事を目的にしていません。このガイドの項目を理解する為には、この言語に対する前提知識がある事を推奨します。この言語の基礎部分についてはMozilla Developer Networkのガイド がオススメです。 著者 このガイドは愛すべきStack Overflowの2人のユーザーIvo Wetzel (執筆)とZhang Yi Jiang (デザイン)によって作られました。 貢献者 貢献
A beautiful demo is worth a thousand words: Typography Formulas Magazine What is pdf2htmlEX? pdf2htmlEX renders PDF files in HTML, utilizing modern Web technologies, aims to provide an accuracy rendering, while keeping optimized for Web display. Text, fonts and formats are natively preserved in HTML, math formulas, figures and images are also supported. pdf2htmlEX is also a publishing tool, almost
openresty(ngx_openresty) として配布されてる tarボールを使うと 手っ取り早く Nginx で Lua +α する環境が作れます。超便利。 一例: OSXの場合 事前に homebrew も入れておいてね brew install prce wget http://agentzh.org/misc/nginx/ngx_openresty-1.0.11.28.tar.gz tar xvfz ngx_openresty-1.0.11.28.tar.gz cd ngx_openresty-1.0.11.28 ./configure --with-luajit \ --prefix=~/ngx_openresty-1.0.11.28 \ --with-cc-opt="-I/usr/local/Cellar/pcre/8.21/include" \ --with-ld-op
Nginxのエラーログに以下の様なログが大量に吐かれていた。 2012/12/18 02:35:51 [warn] 1770#0: *1467277 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/7/00/0000002007 while reading upstream, client: ....." 2012/12/18 02:42:20 [warn] 1770#0: *1467895 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/8/00/0000002008 while reading upstream, client:....." 2012/12/18
railsをunicornでrackupする際、よくunixsocket経由でnginxをフロントに使う。 で、それをバックエンドにしてさらにNginxでロードシェアする時の設定。 バックエンドのunicornが健在の時はフロントバック間のレスポンスは上図のようになり、適当にロードシェアされます。 nginxのデフォルト設定ではバックエンドがunicornの状態に応じて502を返す際にも、フロントは気にしません。 上図の状態になってもupstream対象を調整せずに、200, 502, 200, 502 とレスポンスを返します。 そりゃ困るということでドキュメントを参照、 HttpProxyModuleのproxy_next_upstream を使ってupstreamのポリシーを指定すればOKです。 デフォルトだとこうなっているので、 “proxy_next_upstream e
よくあるcgiサイトにある 訪問カウンターをnginx + lua-nginx-moduleを利用して 作成したいと思います。 こんな感じなの。 レッツPHPさんのサンプルにあるナンカイメカウンターのようなものです。 昔良く見たアレです。ユーザーが全体で何回そのサイトにアクセスしたか、 を記録する奴。 というのをnginxとlua-nginx-moduleで実装したいと思います。 nginx及びlua-nginx-moduleの環境構築はこちらを参照してください。 動作環境ですが、 MacOS X 10.8 nginx 1.4.0 lua-nginx-module v0.8.1 となります。 訪問カウンターの仕様 1) 特定の人をIPアドレス+UAで切り分けして判別する 2) incrementするのは1日1回かぎり 以上 2点が満足できれば目的を達成できるはず。 特定の人をIPアドレス+
こんにちは。オガリア開発チームの粂です。 常識かもしれないのですが、つい最近知ったこと。 fileコマンドを使えばUTF-8のBOMの有無や改行コードがCRLFどうかがチェックできます。 例えばこんな感じでfileコマンドを実行すると、 find . -type f -name "*.json" | xargs file ./aaa.json: UTF-8 Unicode ./bbb.json: UTF-8 Unicode (with BOM) text ./ccc.json: UTF-8 Unicode (with BOM) text, with CRLF line terminators BOMがついてたら、 (with BOM) text と表示され、 改行コードがCRLFなら、with CRLF line terminators と表示されます。 これは便利ですね。 ちなみにBOM
Motivation Ruby1.8.7で作った大量のバッチがある。 それを1.9(さらには2.0)に移行していきたいんだけど、 一気に移行するまで待ってると時間がかかるので、 少しずつ移行したい。また、同じサーバ内で並行運用したい。 そこで、rbenvで複数のRuby環境を用意し、切り替えて運用したい。 バッチは全てcronで動いているので、cron環境でのPATHをうまく設定すればいけるはず。 環境 CentOS6.4 事前準備 gitをインストール 1 yum install git epelをインストール 後で必要になるライブラリを入れるため、EPELを追加しておきます。 1 2 3 cd /usr/local/src wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-rel
2013年03月26日09:39 カテゴリtool iOSの究極テストツール:Calabash-iOSを使いこなすぞ!(1) こんにちは、genesixで働いているiOSのエンジニアTonnyです。 Calabash-iOSって何?まず、このツールを聞いたことが無い方に簡単に紹介します。Googleでcalabash-iosを検索すると一番のリンクをクリックすると、Calabash-iOSのHPに飛んでいきます。 原文を使って、簡単に説明すると Calabash is an automated testing technology for Android and iOS native and hybrid applications 重要なポイントは全部太字にしました。よく見たら、すごいと思わないですね。このようなツールは世の中にすでにいっぱいありますよ。 既存のテストライブラリ・ツールKI
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く