OmniAICreator/Qiita-1.07M huggingface dataset:
@taka84u9 に教えてもらったVimiumというChrome版vimperatorの拡張が便利．デザインがシンプルかつキーバインドが設定しやすい．? でヘルプがぱっと見れるのもよい

@taka84u9 に教えてもらったVimiumというChrome版vimperatorの拡張が便利．デザインがシンプルかつキーバインドが設定しやすい．? でヘルプがぱっと見れるのもよい
Rubyでは Object#send で指定された名前のメソッドを呼び出せるけれど、これはRubyのすべてのメソッド呼び出しが Object#send のシンタックススイートてことになるのだろうか。それとも両者はまったく別のものなのかなあ。

Rubyでは Object#send で指定された名前のメソッドを呼び出せるけれど、これはRubyのすべてのメソッド呼び出しが Object#send のシンタックススイートてことになるのだろうか。それとも両者はまったく別のものなのかなあ。
nginx + PHP を動かす際に、spawn-fcgiを使うのと、使わずにSysV系init(init.d)でphp-cgiを直接起動するのとでは、一体何が違うのでしょうか？ 何らかのパフォーマンス的な違いがあるのでしょうか？

nginx + PHP を動かす際に、spawn-fcgiを使うのと、使わずにSysV系init(init.d)でphp-cgiを直接起動するのとでは、一体何が違うのでしょうか？ 何らかのパフォーマンス的な違いがあるのでしょうか？
はてなスター対応してみたお

http://s.hatena.ne.jp/siteconfig?host=qiita.com

```js
path: '^/',
entryNodes: {
  '.item-box': {
    container: '.item-box-center-header .user',
    uri: '.item-post-time a',
    title: '.item-box-content'
  }
}
```
久しぶりにFizz-Buzz書いてみましたが、結構微妙でした・・・



```php
<?
$f="Fizz";$b="Buzz";$a[]=0;
for($i=0;$i<100;$i+=15)$a=array_merge($a,array($i+1,$i+2,$f,$i+4,$b,$f,$i+7,$i+8,$f,$b,$i+11,$f,$i+13,$i+14,"$f $b"));
echo implode(",",array_slice($a,1,100));
?>

```
http://www5c.biglobe.ne.jp/~ecb/java/12_05.html の「Runnable r = new MyRunnable();」の意味がわかりません. Runnableクラスというのがあるんですか? 他のサイトも見てみましたが(この例だと)「MyRunnable r = new MyRunnable();」のようになってました. どういうことなのか教えて下さい. 



```java
/*    これはコピペです, すみません.     */

// 独自のクラス
class MyRunnable implements Runnable{
    // このrunメソッドがスレッド本体
    public void run(){
        System.out.println("MyRunnable Start!");

        // 10回500ミリ秒毎に"Hello"と表示する
        for(int i = 0 ; i < 10 ; i++ ){
            System.out.println("Hello");
            try{
                // sleepメソッドはThreadクラスの静的メソッドで、
                // nミリ秒(この場合500ミリ秒)待つ(待機状態になる)メソッド。
                // 例外を投げる可能性があるので、キャッチしないといけない
                Thread.sleep(500);
            }catch(Exception e){}
        }

        System.out.println("MyRunnable End!");
    }
}

public class Test{
    public static void main(String args[]){
        // 独自のスレッドクラスのインスタンスを作成
        Runnable r = new MyRunnable(); /* ここがわからない　*/
        Thread t = new Thread(r);

        // スレッドを開始
        t.start();

        // 1秒毎に"Hi!"と10回表示する
        for(int i = 0 ; i < 10 ; i++ ){
            System.out.println("Hi!");
            try{
                Thread.sleep(1000);
            }catch(Exception e){}
        }
    }
}

```
XML/SOAPのAPIでWSDLファイルが無い場合ってどうすればいいんでしょう？ Ruby1.9.2／Rails3.0.3(わりと切実に困ってます。。)

XML/SOAPのAPIでWSDLファイルが無い場合ってどうすればいいんでしょう？ Ruby1.9.2／Rails3.0.3(わりと切実に困ってます。。)
Djangoのcontrib/auth/utils.py

( https://github.com/django/django/blob/master/django/contrib/auth/utils.py )
っぽい何かをNode.js向けに書いてみました。

```js
var crypto = require('crypto');


exports.getSalt = function (n) {
  var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#%^&*()_+'
    , salt = '';
  for (var i = 0; i < n; i++) {
    salt = salt + chars.charAt(Math.floor(Math.random() * chars.length));
  }
  return salt;
};

exports.getHexdigest = function (algorithm, salt, rawPassword) {
  var hash = (salt || '') + (rawPassword || '');
  for (var i = 0; i < 100; i++) {
    hash = crypto.createHmac(algorithm, hash).digest('hex');
  }
  return hash;
};

exports.getPassword = function (algorithm, rawPassword) {
  var salt = exports.getSalt(10)
    , hexdigest = exports.getHexdigest(algorithm, salt, rawPassword);
  return algorithm + '$' + salt + '$' + hexdigest;
};

exports.checkPassword = function (rawPassword, password) {
  var ary = password.split('$');
  return ary[2] === exports.getHexdigest(ary[0], ary[1], rawPassword);
};
```
Qiitaではstockとflowを明確に分けたってことか。flow的なコミュニケーションを、すっぱり切り捨てたStackOverflowと違って、交流しつつ、良いものが出てきたらstockへ、という感じかしら

Qiitaではstockとflowを明確に分けたってことか。flow的なコミュニケーションを、すっぱり切り捨てたStackOverflowと違って、交流しつつ、良いものが出てきたらstockへ、という感じかしら
.｡oO(UIの不整合が多いんじゃないかしら。tagが検索できないとか、OAuthしてない人のGitHubあるいはTwitterリンクがおかしいとか、投稿からしかユーザをお気に入りにできないとか。Operaで見れないとか。投稿でtagを追加する時に、補完を使うとゴミtagがくっつくとか。)

.｡oO(UIの不整合が多いんじゃないかしら。tagが検索できないとか、OAuthしてない人のGitHubあるいはTwitterリンクがおかしいとか、投稿からしかユーザをお気に入りにできないとか。Operaで見れないとか。投稿でtagを追加する時に、補完を使うとゴミtagがくっつくとか。)
FacebookのGraph APIで特定のURLを渡して、そのshare数をJSONで取ることができますが、これの呼び出し回数の上限ってあるんでしょうか。叩きまくってOK？ どうもよく分からない。

FacebookのGraph APIで特定のURLを渡して、そのshare数をJSONで取ることができますが、これの呼び出し回数の上限ってあるんでしょうか。叩きまくってOK？ どうもよく分からない。
CRubyでFizzBuzzを書いてみた。JRubyでは動かない



```ruby
require 'fileutils'

File.open("./numeric.c", "r") do |klass|
  File.open("./numeric.tmp", "w") do |tmpfile|
    while line = klass.gets
      tmpfile.write line
      if line =~ /fix_to_s\(int argc, VALUE \*argv, VALUE x\)/
        2.times {tmpfile.write klass.readline}
        tmpfile.write <<PATCH
    int val;
    val = FIX2INT(x);
    if (val % 15 == 0) return rb_str_new2("FizzBuzz");
    if (val %  3 == 0) return rb_str_new2("Fizz");
    if (val %  5 == 0) return rb_str_new2("Buzz");
PATCH
      end
    end
  end
end

FileUtils.mv("numeric.tmp", "numeric.c")

system('make')
system('./ruby -ve "(1..100).each{|i| puts i}"')

```
JavaScript で new Regexp("[\s\S]*?") などとしてハマっていた．正しくは new Regexp("[\\s\\S]*?")

JavaScript で `new Regexp("[\s\S]*?")` などとしてハマっていた．正しくは `new Regexp("[\\s\\S]*?")`

[](THIS IS COMMENT TERM
strongly recommended
`/[\s\S]*?/`
)
XCodeのプロジェクトに他のプロジェクトを静的ライブラリとして混ぜる方法。ARCを使っているコードとそうじゃないコードを混ぜる時とかに必須。http://blog.carbonfive.com/2011/04/04/using-open-source-static-libraries-in-xcode-4/

XCodeのプロジェクトに他のプロジェクトを静的ライブラリとして混ぜる方法。ARCを使っているコードとそうじゃないコードを混ぜる時とかに必須。http://blog.carbonfive.com/2011/04/04/using-open-source-static-libraries-in-xcode-4/
最近使ってるObjective-Cの便利ライブラリ。クロージャを使ってCocoaを拡張する。LLライクな感じでリスト操作できたりするようになったりして便利。 https://github.com/zwaldowski/BlocksKit

最近使ってるObjective-Cの便利ライブラリ。クロージャを使ってCocoaを拡張する。LLライクな感じでリスト操作できたりするようになったりして便利。 https://github.com/zwaldowski/BlocksKit
CoreTextを使ってNSAttributedStringを描画する



```objc
#import "NSAttributedString+DrawInRect.h"
#import <CoreText/CoreText.h>
@implementation NSAttributedString (DrawInRect)

-(void)drawInRect:(CGRect)rect {
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextSaveGState(ctx);
    CGContextTranslateCTM(ctx, 0.0f, rect.size.height + rect.origin.y * 2);
    CGContextScaleCTM(ctx, 1.0f, -1.0f);    
    CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)self);
    CGPathRef path = [[UIBezierPath bezierPathWithRect:rect] CGPath];    
    CTFrameRef textFrame = CTFramesetterCreateFrame(framesetter,CFRangeMake(0,0), path, NULL);
    CGPathRelease(path);
    CFRelease(framesetter);
    CTFrameDraw(textFrame, ctx);    
    CGContextRestoreGState(ctx);
}

@end

```
UINavigationController から自分自身を外して別のViewController を表示させるの、これであってる?



```objc
// pop して push
[self.navigationController popViewControllerAnimated:NO];
[self.navigationController pushViewController:viewController animated:NO];

// これだとEXEC BAD ACCESS になるよ
// 適切なタイミングでrelease されなくなるっぽい
self.navigationController.viewControllers = [NSArray arrayWithObject: viewController];

//これでもだめだった
[[self.navigationController.viewControllers retaion] autorelease];
self.navigationController.viewControllers = [NSArray arrayWithObject: viewController];
```
句読点を切り替えるのを書きました．



```ruby
#! /usr/bin/env ruby
# -*- coding: utf-8 -*-
input = ARGF.read

if input =~ /、|。/
  puts input.gsub(/、/, '，').gsub(/。/, '．')
else
  puts input.gsub(/，/, '、').gsub(/．/, '。')
end

```
RubyでFizzBuzz



```ruby
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

def fizzbuzz(n)
  if n % 3 == 0
    print "Fizz"
  end
  if n % 5 == 0
    print "Buzz"
  end
  if n % 3 * n % 5 != 0
    print n
  end
  puts
end

(0..100).each do |i|
  fizzbuzz(i)
end

```
HTTP::Request -> AnyEvent::HTTP -> HTTP::Response



```perl
sub anyevent_request_cv {
    my ($req, @args) = @_;

    my $cv = AE::cv;
    http_request(
        $req->method,
        $req->uri,
        body => $req->content,
        headers => {
            map { ( $_ => $req->header($_) ) } $req->header_field_names
        },
        @args,
        sub {
            my ($body, $headers) = @_;
            my ($code, $msg) = ( delete $headers->{Status}, delete $headers->{Reason} );
            my $res = HTTP::Response->new($code, $msg, [ %$headers ], $body);
            $cv->send($res);
        }
    );
    return $cv;
}
```
http://qiita.com/items/239/chunk の string= 使う case 云々をサクッと実装してみた。

実装終わってから名前の不味さに気付いた。これじゃあまるで大文字小文字の操作関数だ。

それはそうと、これは使い道があまり無いね。
元の話題のような、本当の書き捨てなら cond で string= を手書きした方が早い。
それなりの規模のコードで本格的に使いたいなら、特定の述語に特化したマクロを単品で使うよりも適切なライブラリを探してきた方が良い。

```cl
(defmacro string-case (key-string &rest clauses)
  (unless (stringp key-string)
    (error "~&not string key specified: ~a" key-string) )
  (with-gensyms (#+clisp "" key)
    `(let ((,key ,key-string))
       (cond ,@(string-case-clause-expander key t clauses)) )))

(defmacro string-ecase (key-string &rest clauses)
  (unless (stringp key-string)
    (error "~&not string key specified: ~a" key-string) )
  (with-gensyms (#+clisp "" key)
    `(let ((,key ,key-string))
       (cond ,@(string-case-clause-expander key nil clauses)
             (t (error "the value of ~s must be one of case conditions"
                       ,key-string )) ))))

(defun string-case-clause-expander (key accept-otherwise clauses)
  (mapcar (lambda (clause)
            (string-case-clause-condition-expander
              key accept-otherwise clause ))
          clauses ))

(defun string-case-clause-condition-expander (key accept-otherwise clause)
  (destructuring-bind (condition &body body) clause
    `(,(cond ((null condition) nil)
             ((stringp condition) `(string= ,condition ,key))
             ((listp condition)
              `(or ,@(mapcar (lambda (elm) `(string= ,elm ,key)) condition)) )
             ((and accept-otherwise
                   (symbolp condition)
                   (string= (symbol-name condition) "otherwise") )
              t )
             (t (error "~a: invalid case condition: ~a"
                       (if accept-otherwise 'string-case 'string-ecase)
                       condition )) )
      ,@body )))
```
さておき、#.とかload-time-valueは（割とあやしい）使いでがありそうで良いですよね。Hunchentootのサンプルコードでfaviconを事前にロードしてコンパイルしてたのをはじめて見たときは、「CLすげー」とか感動した覚えが。Cで配列の中で#includeしてるのを見たとき以上に。

さておき、#.とかload-time-valueは（割とあやしい）使いでがありそうで良いですよね。Hunchentootのサンプルコードでfaviconを事前にロードしてコンパイルしてたのをはじめて見たときは、「CLすげー」とか感動した覚えが。Cで配列の中で#includeしてるのを見たとき以上に。
Rubyで文字列strのn番目(nは0オリジン)から後ろの部分文字列を取り出したいときに、次のコードより簡潔な方法はありませんか？ str[n..str.length]

Rubyで文字列strのn番目(nは0オリジン)から後ろの部分文字列を取り出したいときに、次のコードより簡潔な方法はありませんか？ str[n..str.length]
Google+で自動的に投稿するスクリプト_elementはポスト全体を指定



```js
//関数：自動ポスト（ボタン一覧でのみ使用可能）
	function autopost(_element, _text){
		scrolllockstop = 1;
		try{
			var a = _element.parentNode.parentNode;
			var b = _element;	//ポスト全体
			while(1){
				a = a.nextSibling;
				try{
					if(a.getAttribute("role")=="button"){
						var c = document.createEvent("MouseEvents");
						c.initEvent("click", true, false);
						a.dispatchEvent(c);
						setTimeout(function(){
							var d = b.getElementsByTagName("div");
							var e = d.length;
							for (var f=0; f < e; f++) {
								if(d[f].id.match(reg_e)){
									try{
										var g = document.createEvent("TextEvent");
										g.initTextEvent ('textInput', true, true, null, _text);
										d[f].firstChild.firstChild.dispatchEvent(g);
										var g = document.createEvent("KeyboardEvent");
										g.initKeyboardEvent("keypress", true, false, window, 13, false, false, false, "", false);
										d[f].firstChild.firstChild.dispatchEvent(g);
									}catch( _error ){
										d[f].firstChild.firstChild.firstChild.contentDocument.body.innerHTML = _text+"<br>";
										var g = document.createEvent("KeyboardEvent");
										g.initKeyEvent ("keypress", true, true, window, false, false, false, false, 0, 13);
										d[f].firstChild.firstChild.firstChild.contentDocument.body.dispatchEvent(g);
										
									}
									
									var c = document.createEvent("MouseEvents");
									c.initEvent("mousedown", true, true);
									d[f].nextSibling.dispatchEvent(c);
									
									var c = document.createEvent("MouseEvents");
									c.initEvent("mouseup", true, true);
									d[f].nextSibling.dispatchEvent(c);
									break;
								}
							}
						}, 150);
						return;
					}
				}catch( _error ){
				}
			}
		}catch( _error ){
		}
	}
```
Helpメニューを開くとtouchesMovedWithEventが来なくなって困ってます。最小化とかするとなおるからどこかでリセットしないといけないのかな。BeganとEndedはくるんですがMovedだけ来ない。OS X 10.7です。誰かわかる方おられませんか？

Helpメニューを開くとtouchesMovedWithEventが来なくなって困ってます。最小化とかするとなおるからどこかでリセットしないといけないのかな。BeganとEndedはくるんですがMovedだけ来ない。OS X 10.7です。誰かわかる方おられませんか？
Arrayクラスを拡張したコードを幾つか書いているけれど、Arrayインスタンスに格納されているオブジェクトによっては正しく動作しないので駄目なコード。どう対処するのがベストなんだろう。

Arrayクラスを拡張したコードを幾つか書いているけれど、Arrayインスタンスに格納されているオブジェクトによっては正しく動作しないので駄目なコード。どう対処するのがベストなんだろう。
スリープソートをRubyで汎用的に書いてみる。

参考： http://niku.name/20110520.html

```ruby

class Array
    def sleep_sort(&block)
	result = Array.new
	self.map {|n|
	    Thread.start {
		sleep n.to_i
		yield n if block_given?
		result << n
	    }
	}.each(&:join)
	result
    end
end

ARGV.sleep_sort {|n| puts "*#{n}*" }

```
ECMAScript5 (ES5, js) で、末尾呼び出し最適化が標準規定に成ったとか成ってないとかは、覚え違いだったかな……。

ECMAScript5 (ES5, js) で、末尾呼び出し最適化が標準規定に成ったとか成ってないとかは、覚え違いだったかな……。
フィボナッチ数列演習js



```js
(function (scope) {

var _memo = [1, 1];

function fib(n) {
    var i;

    if (!_memo[n - 1]) {
        for (i = _memo.length; i < n; i += 1) {
            _memo[i] = _memo[i - 2] + _memo[i - 1];
        }
    }
    return _memo[n - 1];
}

scope.fib = fib;

}(this));
```
PHP 5.4.0alpha3 に, いくつかの SPL クラスを継承したクラスを定義できない問題があったけど, 5.4.0beta1 で修正されたみたいです.

5.4.0alpha3 では, 例えば以下のようなコードが動きませんでした.

```php
<?php
class Foo extends SplFileInfo {}
new Foo(__FILE__);
```
Arduinoで電子工作するときはIDEを使ってプログラミング→マイコンに書き込みが普通だけど、世の中にはコマンドラインでなんでもやりたがる人種がおり、Arduinoにおいてもそれは例外ではない。

http://mjo.tc/atelier/2009/02/arduino-cli.html
たぶんLinux前提？で、make一発でコンパイル→マイコンに書き込みまでやってくれるMakefileを公開している人がいる。どうやら最新のArduino Unoにも対応しているらしい。
http://qiita.com/tags/firefox のアイコン間違えちゃったけど修正できない……アイコンの再アップロードのルーチンバグってませんか＞＜

http://qiita.com/tags/firefox のアイコン間違えちゃったけど修正できない……アイコンの再アップロードのルーチンバグってませんか＞＜
RedHat系のLinuxで"yum search"コマンドを発行したときに出てくるソフトウェアのバージョンを調べるにはどうしたらいいのでしょうか?  例えば"yum search zsh"と打って"zsh.x86_64 : A powerful interactive shell"と返ってくるとき、"yum install zsh.x86_64"と打ったらどのバージョンのzshがインストールされるのかを知りたいです。

RedHat系のLinuxで"yum search"コマンドを発行したときに出てくるソフトウェアのバージョンを調べるにはどうしたらいいのでしょうか?  例えば"yum search zsh"と打って"zsh.x86_64 : A powerful interactive shell"と返ってくるとき、"yum install zsh.x86_64"と打ったらどのバージョンのzshがインストールされるのかを知りたいです。
世の中で非同期IOとノンブロッキングIOの使い分けがうまくなされていない気がする。

非同期IO→遅延の大きいディスクとかに非同期にIO投げまくる。POSIX AIOやlibaioなど
ノンブロッキングIO→大量のソケット等でデータが届く度に捌いていく。epollやkqueueなど
http://prepan.org/ のオレンジ色のボタンは背景色のグラデーションとbox-shadowをかけまくってつくったりしています。



```css
a.orange-button {
  display:block;
  margin:17px;
  padding:11px;
  background:#cc5c00;
  background:-moz-linear-gradient(top, rgb(240,146,0), rgb(162,30,0));
  background:-webkit-gradient(linear, left top, left bottom, from(rgb(240,146,0)), to(rgb(162,30,0)));
  line-height:1;
  color:#fff;
  font-weight:bold;
  border-radius:5px;
  text-shadow:0 -1px 1px rgba(0,0,0,0.7);
  -webkit-text-shadow:0 -1px 1px rgba(0,0,0,0.7);
  -moz-text-shadow:0 -1px 1px rgba(0,0,0,0.7);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.7),inset 0 -1px 1px rgba(0,0,0,0.7),inset 0 0 8px rgb(131,22,0),0 -1px 3px rgb(0,0,0),0 0 6px rgb(0,0,0),0 1px 0 rgba(255,255,255,0.4);
  -webkit-box-shadow:inset 0 1px 1px rgba(255,255,255,0.7),inset 0 -1px 1px rgba(0,0,0,0.7),inset 0 0 8px rgb(131,22,0),0 -1px 3px rgb(0,0,0),0 0 6px rgb(0,0,0),0 1px 0 rgba(255,255,255,0.4);
  -moz-box-shadow:inset 0 1px 1px rgba(255,255,255,0.7),inset 0 -1px 1px rgba(0,0,0,0.7),inset 0 0 8px rgb(131,22,0),0 -1px 3px rgb(0,0,0),0 0 6px rgb(0,0,0),0 1px 0 rgba(255,255,255,0.4);
}
a.orange-button:active {
  color:#ddd;
  box-shadow:inset 0 1px 2px rgba(0,0,0,0.6),inset 0 0 20px rgba(0,0,0,0.4),inset 0 1px 1px rgba(255,255,255,0.7),inset 0 -1px 1px rgba(0,0,0,0.7),inset 0 0 8px rgb(131,22,0),0 -1px 3px rgb(0,0,0),0 0 6px rgb(0,0,0),0 1px 0 rgba(255,255,255,0.4);
  -webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.6),inset 0 0 20px rgba(0,0,0,0.4),inset 0 1px 1px rgba(255,255,255,0.7),inset 0 -1px 1px rgba(0,0,0,0.7),inset 0 0 8px rgb(131,22,0),0 -1px 3px rgb(0,0,0),0 0 6px rgb(0,0,0),0 1px 0 rgba(255,255,255,0.4);
  -moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.6),inset 0 0 20px rgba(0,0,0,0.4),inset 0 1px 1px rgba(255,255,255,0.7),inset 0 -1px 1px rgba(0,0,0,0.7),inset 0 0 8px rgb(131,22,0),0 -1px 3px rgb(0,0,0),0 0 6px rgb(0,0,0),0 1px 0 rgba(255,255,255,0.4);
}
```
Rubyにはブロックを取って同期的に処理するAPI(例：File.open{...})と、ブロックを取らず非同期的に処理できるAPI(例：f = File.open())がある。


非同期→同期への変換は、まあ慣れたRubyistなら普通に書けるはず。
同期→非同期への変換は、普通にはできないんだけど、Ruby 1.9のFiberを使うと無理矢理行うことができる。
/#public の more が動かない〜。yaotti レベルなら TDD でサービス作った方が速いんじゃないかなぁ。rspec + capybara-webkit での javascript も実行できるエンドツーエンドテストオススメですよ。

 /#public の more が動かない〜。yaotti レベルなら TDD でサービス作った方が速いんじゃないかなぁ。rspec + capybara-webkit での javascript も実行できるエンドツーエンドテストオススメですよ。
Ruby on Rails 3.1で、フォームに入力された文字列からSQL Injectionにつながりそうな文字を弾く手軽な方法orライブラリがあれば知りたいです！

Ruby on Rails 3.1で、フォームに入力された文字列からSQL Injectionにつながりそうな文字を弾く手軽な方法orライブラリがあれば知りたいです！
vimのindent guidesの設定方法がよく分からないまま時が過ぎている。http://nathanaelkane.imgur.com/indent_guides#7tMBl こんなふうにシャレオツな感じにするにはどーしたらいいのかしら。そこに書いてあるとおりに.vimrcに書いてみてもうまくいかないんだよなあー

vimのindent guidesの設定方法がよく分からないまま時が過ぎている。http://nathanaelkane.imgur.com/indent_guides#7tMBl こんなふうにシャレオツな感じにするにはどーしたらいいのかしら。そこに書いてあるとおりに.vimrcに書いてみてもうまくいかないんだよなあー
外部の広告を読み込んでて、その広告配信サーバーの遅延によりサイト全体の表示が遅くなる場合があるのですが、一般的にはどう対処しているのでしょうか？

一定時間レスポンスが無ければ読み込み中止、または広告読み込みは最後に持ってくるとか？
今書いてるのがめちゃくちゃ汚いコードっていうのは認識できるけど、どうやってリファクタリングしていいか分からない。。

今書いてるのがめちゃくちゃ汚いコードっていうのは認識できるけど、どうやってリファクタリングしていいか分からない。。
事故解決。CakePHPとなんにも関係なかったｗ。バージョン管理システム（というかWindows）がファイル名大文字小文字を追跡できなくてファイル名の変更がリポジトリに乗っかってなかった！

事故解決。CakePHPとなんにも関係なかったｗ。バージョン管理システム（というかWindows）がファイル名大文字小文字を追跡できなくてファイル名の変更がリポジトリに乗っかってなかった！
@kony_t chatworksのイベント通知で幅が取られるのをましにするJS



```js
// Clean up chatwork's posts of task events
// https://www.chatwork.com/

(function() {
    function cleanPost($target) {
        var child = $target.children();
        $target.text($target.text().split("\n")[0]);
        $target.append(child);
    }

    function main() {
        $.each($('.dev_info'), function(i, target) {
            cleanPost($(target));
        });
        
        $(document).bind('DOMNodeInserted', function(ev){
            if (!$(ev.target).hasClass('ui_chat')) return;
            cleanPost($(ev.target).find('.dev_info'));
        });
    }

    main();
})();

```
jQueryのdocument.readyが一部のページでDOM設置前に動作する事が起きる・・・。発生ブラウザはWebkit系＋Firefox。これどういうバグ？

jQueryのdocument.readyが一部のページでDOM設置前に動作する事が起きる・・・。発生ブラウザはWebkit系＋Firefox。これどういうバグ？
「Vimで、選択範囲のバッファをcmdの標準入力に流し込み、代わりにcmdの出力で置換する」方法について、いろんな解説サイトで

:'<,'>!cmd
とすればよいと書かれているけれど、これだと僕の環境では、選択範囲でなくカーソル行すべてが標準入力に渡されて置換されてしまう。やり方が間違っているのかな？
複数人で利用しているサーバ管理用のアカウントの authorized_keys に、新しい公開鍵を追加するときに、サーバが複数あると手作業で入れていくのが時間がかかってしまってつらいです。

以下のようなのを複数サーバに向けて走らせると良いと思うのですが、どうもスマートではない気がします。
皆さんはどのようにして自動化されているのでしょうか。

```sh
cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> .ssh/authorized_keys'
```
Google+で見かけたコメントに，「Pythonでリストの何番目の要素が最大/最小か求める簡単な方法は？」というのがあった．真っ先に思いついたのが1行目のコードなのだけれど，2行目の方がより良いかな？



```py
max(xrange(len(x)), key=lambda i: x[i])
max(enumerate(x), key=lambda x: x[1])[0]
```
(1)「最近投稿されたアイテム」がタグによっては上部の緑の線より下が何も表示されません。

例:
http://qiita.com/tags/Ruby/items
http://qiita.com/tags/common-lisp/items

(2) 各タグの、最近の投稿に限らない全item一覧を見る方法が無いように見えます。
urlを見る限りだと「最近投稿されたアイテム」が全item一覧風味ですが…
地震速報コード



```sh
#!/bin/sh
rm yamashiro; wget http://twitter.com/yamashiro/
cat "yamashiro" | while read line
do
	case $line in
   *おっぱい* | *おっぱお*) echo "（（地震が来たかも））落ち着いて机の下へ！" ;;
esac
done;
```
Objective-Cのクラスの実装のなかで 以下の変数xはどういう扱いになるんでしょうか...



```objc
@interface Hoge : NSObject {}
@end

@implementation Hoge

int x = 0; // こいつはどういう扱いになる?

- (id)init {
    self = [super init];
    if (self) {
    }
    return self;
}

@end
```
before_save や before_create のhookを使うと作成/更新系がすっきり書ける 

http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

```ruby
# syntax highlighting
class Item < ActiveRecord::Base
  before_save do |record|
    unless record.raw_code.empty?
      record.processed_code = Albino.colorize(record.raw_code,
                                              record.code_lang)
    end
  end
end
```
最近インデントをオールマンスタイルで記述するようにしているのですが、クロージャや無名関数の場合どう書くのがキレイなのかわからなくて悩んでいます。



```php
// こんなかんじ
function pp()
{
  call_user_func_array("var_dump", func_get_args());
}

// 無名関数の場合はどうすれば・・・
spl_autoload_register(function($name) {
  if (!if_require_once(dirname(__FILE__) . "/controllers/" . Inflector::underscore($name) . ".php"))
    throw new ControllerNotFoundException("File not found for " . $name);
});

```
WebDriverでページの読み込み処理や、Ajaxなどの非同期処理を待機するために必要。これをWebDriverクラスのインスタンスに対して1度行なっておけばOKらしい。まだ少ししかためしていないけれど。



```csharp
abstract public class WebDriverTestBasic
{
    private IWebDriver _webDriver;
    private string _url;

    public WebDriverTestBasic(IWebDriver webDriver, string url)
    {
        this.WebDriver = webDriver;
        this.Url = url;
    }

    public IWebDriver WebDriver
    {
        set
        {
            this._webDriver = value;
            this.WebDriver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 30));
        }
        get { return this._webDriver; }
    }

    public string Url
    {
        set { this._url = value; }
        get { return this._url; }
    }
}
```
Rails 3.1にしてからasset pipelineまわりのログが邪魔なのでgrepで弾くようにした．

config.assets.logger = nil
で消せるようになるらしいけど，Rails 3.1.1ではまだ実装されてない様子.
https://github.com/rails/rails/issues/2639

```sh
powder applog | grep -vE "(^\s*$|asset)"
```
Webアプリで動画のアップロードシステムを作ったとき、動画をそのままアップするのではなく、ファイル形式の変換などを自動で行なってから公開するように、するにはどういうアプローチが考えられるでしょうか？

Webアプリで動画のアップロードシステムを作ったとき、動画をそのままアップするのではなく、ファイル形式の変換などを自動で行なってから公開するように、するにはどういうアプローチが考えられるでしょうか？
Backbone.jsはあるビューに関連するイベントハンドラを一箇所にまとめて記述できるのがよい．



```js
Qiita.View.Item = Backbone.View.extend({
    events: {
        "click .reply-button": "replyToItem",
        "click .komatta-alert.reply": "replyToItem",
        "click .like-button": "toggleLike",
        "click .delete-button": "deleteItem",
        "click .favorite-user-button": "favoriteUser",
        "click .change-solve": "solveItem"
    },
    // 上で記述したreplyToItemなどのメソッドを書いていく
};
```
quickrunで実行したRSpecに色をつけられるようにしてみた。

正規表現テキトーなので直してくれる人いたら嬉しいです。

```vim
let g:quickrun_config = {}

augroup QrunRSpec
  autocmd!
  autocmd BufWinEnter,BufNewFile *_spec.rb set filetype=ruby.rspec
augroup END 

let rspec_outputter = quickrun#outputter#buffer#new()
function! rspec_outputter.init(session)
  call call(quickrun#outputter#buffer#new().init,  [a:session],  self)
endfunction

function! rspec_outputter.finish(session)
  highlight default RSpecGreen ctermfg = Green cterm = none
  highlight default RSpecRed    ctermfg = Red   cterm = none
  highlight default RSpecComment ctermfg = Cyan  cterm = none
  highlight default RSpecNormal  ctermfg = White cterm = none
  call matchadd("RSpecGreen", "^[\.F]*\.[\.F]*$")
  call matchadd("RSpecGreen", "^.*, 0 failures$")
  call matchadd("RSpecRed", "F")
  call matchadd("RSpecRed", "^.*, [1-9]* failures.*$")
  call matchadd("RSpecRed", "^.*, 1 failure.*$")
  call matchadd("RSpecRed", "^ *(.*$")
  call matchadd("RSpecRed", "^ *expected.*$")
  call matchadd("RSpecRed", "^ *got.*$")
  call matchadd("RSpecRed", "^ *Failure/Error:.*$")
  call matchadd("RSpecRed", "^.*(FAILED - [0-9]*)$")
  call matchadd("RSpecRed", "^rspec .*:.*$")
  call matchadd("RSpecComment", " # .*$")
  call matchadd("RSpecNormal", "^Failures:")
  call matchadd("RSpecNormal", "^Finished")
  call matchadd("RSpecNormal", "^Failed")

  call call(quickrun#outputter#buffer#new().finish,  [a:session], self)
endfunction

call quickrun#register_outputter("rspec_outputter", rspec_outputter)
let g:quickrun_config['ruby.rspec'] = { 
      \ 'command': 'rspec',
      \ 'outputter': 'rspec_outputter',
      \ }
```
eclipse でコンソール Java アプリを書いて eclipse 上でデバッグするときに、標準入力をファイルから読み込む方法は無いものか・・・。java Hoge < in > out 的なことをやりたいんですが、こんな基本的なことができないわけがないと思いつつ > out はできても < in をする方法が分からない。


仕方なしに main の頭で System.setIn(new FileInputStream(...)) してますが、自作ソフトならまだしも他人の作ったソフトをデバッグするときとかにはオプションのパーサーに手を入れないといけなかったりして全然実用的じゃない。
MySQL 5.5.14の稼働しているサーバで、何とかrails 1.2.6で作られたアプリを動かしたい。

rubyのmysql 2.7はエラーで入れられなくて、mysql 2.8.1でないと入らなくて、それだと、「仮想タイマが終了しました」[ http://d.hatena.ne.jp/donbulinux/20100312/1268383905 ]となる。

できればサーバ環境は変えたくない。ソースをいじらなくていいなら、railsをアップデートしたいが、そういうわけにもいかなさそう…。

MySQL 5.5環境でrails 1.2.6アプリを動かす方法か、rails 1.2.6アプリをMySQL5.5対応のrailsバージョンまでアップデートする方法が知りたいです。
ふと思い出したけど、どなたかがCLでRubyみたいなノリでclass method/class slotを使いたいと模索していたような。

MOPでちょっと試してみた。
とりあえず陽にmake-instanceしなくてもclass slot(?)にアクセスできます。

ここで作ったmetaclassのslotは、allocationにより使用目的が異なることに注意。

特定classにdedicateなmetaclassとして使うことを前提とする場合は:allocation :classとして、任意の「使いたいclass slot」を定義すれば良い。

一般化して「class slotのあるmetaclass」として使うことを前提とする場合は、:allocation :instanceとして定義すればよい。
(この場合は、foo-class よりも class-slot-stadard-class 等のより適切な名前が欲しいところ)
ただし、metaclassに定義されたclass slotを拡張するにはさらにmetaclassを継承するなり、サンプルコードのようにplistやhashtableで擬似スロットを作る類の工夫が必要となる。

```cl

(eval-when (:load-toplevel :compile-toplevel :execute)
  #+sbcl (use-package :sb-mop) )

(defclass foo-class (standard-class)
  ((class-slot :initform nil :initarg :class-slot
               :accessor class-slot
               :documentation "general class slot" )
   (foo-slot1 :allocation :class :initform nil :initarg :foo-slot1
              :accessor slot1
              :documentation "maybe dedicate slot for class foo" )))

(defmethod validate-superclass ((class foo-class) (super standard-class))
  t )

(defclass foo () () (:metaclass foo-class))
(defclass bar () () (:metaclass foo-class))

(defparameter foo (find-class 'foo))
(defparameter bar (find-class 'bar))

(defmethod slot2 ((class foo-class))
  (getf (class-slot class) :slot2) )

(defmethod (setf slot2) (newval (class foo-class))
  (setf (getf (class-slot class) :slot2) newval) )

(class-slot foo)        ; => NIL
(slot1 foo)             ; => NIL
(slot1 bar)             ; => NIL
(slot2 foo)             ; => NIL
(slot2 bar)             ; => NIL
(setf (slot1 foo) 100)  ; => 100
(setf (slot2 foo) 200)  ; => 200
(slot1 foo)             ; => 100
(slot1 bar)             ; => 100
(slot2 foo)             ; => 200
(slot2 bar)             ; => NIL
(class-slot foo)        ; => (:SLOT2 200)
(class-slot bar)        ; => NIL

```
ImageMagick-6.7.3からは、libtool-ltdl-1.5.22-7.el5_4だと、makeでこけるっぽい。ImageMagick-6.7.2ならいけた。 @ CentOS5.7

ImageMagick-6.7.3からは、libtool-ltdl-1.5.22-7.el5_4だと、makeでこけるっぽい。ImageMagick-6.7.2ならいけた。 @ CentOS5.7
XenのDom-U（というか国産クラウドサービス…EC2とかではない）のCentOS5.7でタイムゾーンが設定できない

XenのDom-U（というか国産クラウドサービス…EC2とかではない）のCentOS5.7でタイムゾーンが設定できない…。/etc/sysconfig/clock を直接編集しても、timeconfigでJSTに設定しても、再起動してもEDTのまま。ファイルが戻ってるというわけではなく、EDTになっていても、ファイル内容はJSTになってる。そしてなぜか、/usr/share/zoneinfo/Asia/Tokyo 、/usr/share/zoneinfo/America/New_York のファイルが同一…
Rubyで文字列をFloatに変換したいとき、文字列が数値を表していない場合にはエラーを出したいときは Float(str) でいける



```ruby
uby-1.9.2-p290 :001 > "hoge".to_f
 => 0.0 
ruby-1.9.2-p290 :002 > Float("hoge")
ArgumentError: invalid value for Float(): "hoge"
```
Emacsで他人のソースをほぼ丸写しでも問題ないかについてなんですが、

bitbucketにあるEmacsLispファイルが自分のやりたいことをまさにやっていて、とにかく自分の作りたいものを作るためにコピペをして作るか、自分の中でコードを理解してから真似る方がいいのか。自分はどうしたらいいのでしょうか。

"all usages/modifications/distributions/whatever."
とあったのですが、丸パクリは気が引けるのでどうしたらいいのか•••。 

https://bitbucket.org/phromo/darkroom-mode/src
「 "15Fizz".to_i # => 15 」なんですね。知らなかった。「 "FizzBuzz".to_i # => 0 」や「 "0.1Buzz".to_i # => 0 」も使って項番がない行を削除してみた。



```ruby
# coding: UTF-8

puts DATA.lines.map{ |line| line * ( line.to_i <=> 0 )}.grep(/\w+/){ |e| e.strip }

__END__
    1 Ruby哲学
    2 実装
        公式な実装
        その他の実装
    3 競合言語
    4 例
        コレクション
        制御構造
        ブロック付きメソッド呼び出し
            繰り返し処理
            後処理の省力化
            本処理を後から指定
            クロージャ
        クラス
        例外処理
    5 Rubyの周辺技術
    6 Rubyで開発されたアプリケーション
    7 Rubyを組み込んだアプリケーション
    8 エピソード
    9 参考文献
    10 関連項目
    11 脚注
        00.1 注釈
        00.2 出典
    12 外部リンク

```
String#*の引数を｢0｣にすると｢""｣になる（ 例："foobar" * 0 # => "" ）ので遊んでみた。



```ruby
# coding: UTF-8

# １．nth毎の項目を｢""｣に変換する
# 例１：DATAから｢"----------"｣の行（３行毎に存在）を削除する
# 結果：
# => あいうえお
# => かきくけこ
# => さしすせそ
# => たちつてと
# => なにぬねの
# => はひふへほ
# => まみむめも
# => や　ゆ　よ
# => らりるれろ
# => わ　　　を
# => ん　　　　

nth = 3
puts data = DATA.lines.map.with_index(1){ |e,i| e * ( i%nth <=> 0 ) }.reject(&:empty?)

# ２．nth毎以外の項目を｢""｣に変換する
# 例２：例１の結果からひらがなポスターを作る
# 結果：
# => んわらやまはなたさかあ
# => 　　り　みひにちしきい
# => 　　るゆむふぬつすくう
# => 　　れ　めへねてせけえ
# => 　をろよもほのとそこお

data = data.map(&:chomp).join.chars

nth = 5
puts 1.upto(nth).map { |n|
  data.map.with_index(n){ |e,i| e * ( ( 0 <=> i%nth ) + 1 )}.reverse.join
}.reverse

__END__
あいうえお
かきくけこ
----------
さしすせそ
たちつてと
----------
なにぬねの
はひふへほ
----------
まみむめも
や　ゆ　よ
----------
らりるれろ
わ　　　を
----------
ん　　　　

```
WindowsでRGhost-Railsを使ってPNG画像を作成すると画像が壊れる。

バイナリで処理していないため[\x0D]や[\x0D\x0A]が[\x0A]に変換されてしまうからっぽい。

... \gems\rghost_rails-0.3.3\lib\rghost_rails.rbの44行目を修正して対処。

data = output.readlines.join
↓
data = File.binread(output)

RGhost-Rails [https://github.com/shairontoledo/RGhost-Rails]

```ruby
require 'rghost'

RGhost::Document.class_eval do
  alias_method :grid, :rails_grid
end

class ActionController::Base
  def rghost_render(format, options)
    report = options.delete(:report)

    template = case report
    when Hash
      File.join(report[:controller] || controller_name, report[:action].to_s)
    when String, Symbol
      File.join(controller_path, report.to_s)
    when NilClass
      File.join(controller_path, action_name)
    end
    template_file = begin
      template = view_paths.find_template(template, "rghost.rb", false)
      template.filename
    rescue NoMethodError 
      fname = "#{template}.rghost.rb"
      template_dir = view_paths.detect do |path|
        File.exists? File.join(path.to_s,fname)
      end
      File.join(template_dir.to_s,fname)
    end
    
    ActionView::Helpers.included_modules.each do |m|
      extend m
    end
    lines = File.readlines(template_file.to_s)
    
    doc = eval(lines.join)

    filename = options.delete(:filename)
    disposition=options.delete(:disposition) || 'attachment'
    rghost = doc.render(format, options)
    output = rghost.output

    raise "RGhost::Error #{rghost.errors} - #{output}" if rghost.error?

#    data = output.readlines.join
    data = File.binread(output)

    rghost.clear_output

    send_data(data, :filename => filename, :disposition => disposition, :type => Mime::Type.lookup_by_extension(format.to_s))
  end
end

```
lazyにするとrewindは無効？



```ruby
require 'enumerable/lazy'

pr = lambda{|e| e.tap{|e|p e.count}.tap{|e|p e.count}.tap{|e|e.rewind}.tap{|e|p e.count}}

# non-lazy
nl = File.open("/WINDOWS/system/setup.inf").lines; pr[nl]
#=> 1497
#=> 0
#=> 1497

# lazy
l = File.open("/WINDOWS/system/setup.inf").lines.lazy; pr[l]
#=> 1497
#=> 0
#=> 0

```
Dom-0 が CentOS 5.5 + Xen 3.4.2 で稼働しているシステム（物理マシンはHP BL460c G6）のある Dom-U だけを、yum update で 5.5 -> 5.7 にしたら、起動時に以下のようなエラーが出るようになって、eth0、eh1ともに設定が無効化された。

（ただし、ifconfig -a ではデバイスが表示されて、設定ファイルも ifcfg-eth0.bak/ifcfg-eth1.bak でバックアップされてた）

```text
iSCSI daemon: WARNING: Error inserting libiscsi2 (/lib/modules/2.6.18-274.3.1.el5.centos.plusxen/kernel/drivers/scsi/libiscsi2.ko): Unknown symbol in module, or unknown parameter (see dmesg)
FATAL: Error inserting bnx2i (/lib/modules/2.6.18-274.3.1.el5.centos.plusxen/kernel/drivers/scsi/bnx2i/bnx2i.ko): Unknown symbol in module, or unknown parameter (see dmesg)
```
Rubyのプロジェクトはgithubにつっこめば、Travis CIで簡単に継続的インテグレーションできる。

Rubyのバージョンやら、DBMSの種類やらの組み合わせを網羅的に自動でテストしてくれるので便利。
最近書いてるRailsアプリもTravis CIにいれてる http://travis-ci.org/#!/hayamiz/volvox
ジェネリック関数からyeild文で1つ1つ値を返すようなコード書いたんだけど、その後でsortするならひょっとして無意味…？

ジェネリック関数からyeild文で1つ1つ値を返すようなコード書いたんだけど、その後でsortするならひょっとして無意味…？
Rspecで"実装していないから落ちるテスト"を記述するときは，it "should ..." にブロックを渡さないでおく．シンプル． 



```ruby
describe User do
  it "should get following tag's items"
end

### execution and its outputs
# $ bundle exec spec spec/models/user_spec.rb
# ..*
#
# Pending:
#   User should do xxx
#     # Not Yet Implemented
#     # ./spec/models/user_spec.rb:27
#
# Finished in 0.78909 seconds
# 3 examples, 0 failures, 1 pending

```
@iphone_dev_jp @econa77 簡単な処理なら

UIImageViewのサブクラスで以下をオーバーライドとか

```objc
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    //imageView をドラッグするサンプル
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint location = [touch locationInView:[touch.view superview]];
    self.center = location;
}
```
recentf-save-list から呼ばれる write-region のメッセージを出力させない方法は？


"Wrote <filename>" とミニバッファに表示されるのがウザいので、以下
の方法を試しました。write-region 自体が呼ばれないようで、うまくい
きません。どこが間違っているのでしょうか？

```scm
;;;
;;; 方法１
;;;

(require 'cl)

(fset 'original-write-region (symbol-function 'write-region))

(defadvice recentf-save-list
  (around no-message activate)
  (flet ((write-region (start end filename &optional append visit lockname mustbenew)
	 	       (original-write-region start end filename append 'nomsg lockname mustbenew)))
    ad-do-it))

;;;
;;; 方法２
;;;

(fset 'original-write-region (symbol-function 'write-region))

(defun my-write-region-nomsg (start end filename &optional append
                                             visit lockname mustbenew)
  (original-write-region start end filename append 'nomsg lockname mustbenew))

(defadvice recentf-save-list
  (around no-message activate)
  (unwind-protect
      (progn
	(fset 'write-region (symbol-function 'my-write-region-nomsg))
	ad-do-it)
    (fset 'write-region (symbol-function 'original-write-region))))

```
SymfonyでPhakeを使う



```text
# vendor/phake にインストール
$ git clone https://github.com/jaz303/phake.git vendor/phake

# app/bootsrap_test.php をつくる
---------------------------------------------------------
<?php
require_once __DIR__.'/bootstrap.php.cache';
require_once __DIR__.'/../vendor/phake/tests/bootstrap.php';
---------------------------------------------------------

# app/phpunit.xml.dist に bootstrap_test.php を指定する
---------------------------------------------------------
<phpunit
    ...
    bootstrap                   = "bootstrap_test.php" >
---------------------------------------------------------

# Phakeを使ってテストを書く
---------------------------------------------------------
<?php
namespace AppBundle\Tests;
use AppBundle\Foo;
use Phake;
class FooTest extends \PHPUnit_Framework_TestCase
{
    public function testFoo()
    {
        $foo = new Foo();

        $bar = Phake::mock('AppBundle\Bar');

        $foo->executeBar($bar);

        Phake::verify($bar)->mustBeCalled();
    }
}
---------------------------------------------------------
```
SymfonyのFormで、任意のフィールドにマッピングする

property_pathオプションを使う。falseでマッピングしない。

```php
<?php

namespace AppBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class UserRegistrationType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            // usernameフィールドをemailプロパティにマッピング
            ->add('username', null, array('property_path' => 'email'))

            // 何も指定しないと同じ名前のプロパティにマッピング
            ->add('password', 'password')

            // falseを指定するとマッピングしない
            ->add('agreement', 'checkbox', array('property_path' => false))
        ;
    }
}
```
Smartyのforeachなどのループでbreak

…って、できない、あるいは `{php}break;{/php}` なんかで無理やりにやるとかの情報が多かったけれど、Smarty 3.0.0-RC4の01/10/2010付改訂で `{break}` や `{continue}` が実装されている…。
> 01/10/2010
> - added {break} and {continue} tags for flow control of {foreach},{section},{for} and {while} loops
> [smarty/change_log.txt at master · smarty-php/smarty](https://github.com/smarty-php/smarty/blob/master/change_log.txt)

かなり前の変更になるのに、[日本語ヘルプ](http://www.smarty.net/docs/ja/language.function.foreach.tpl)には記載がない…ただし、英語ヘルプには記載がある。

- [Example 7.41. {break} example | Chapter 7. Built-in Functions {foreach},{foreachelse} | Smarty](http://www.smarty.net/docs/en/language.function.foreach.tpl#foreach.construct.break)
コード/設定ファイルの「添付内容」ですが、「シェルスクリプト, Shell Script」が「Shell Script, シェルスクリプト」だとキーボードでよいかんじに選択できて嬉しそうです。

コード/設定ファイルの「添付内容」ですが、「シェルスクリプト, Shell Script」が「Shell Script, シェルスクリプト」だとキーボードでよいかんじに選択できて嬉しそうです。
Gyazo.appなどにLSUIElementにtrueを指定するとべんり


Gyazo.appはDockにアイコンが表示されてフォーカスも奪うけど不便なことしかない。
LSUIElementという設定値を真値にすると、独立したUI要素を持たず、Dockやアプリケーション・スイッチャにアイコンが表示されない、いわゆるバックグラウンド・アプリケーションになる。
Gyazo.appやHardwareGrowler.appなどはフォアグラウンドで起動しても嬉しくないので、この設定値を変えてあげる。

```bash
defaults write /Applications/Gyazo.app/Contents/Info LSUIElement -bool true
```

<ins>
https://twitter.com/uiureo/status/398413597316890625
> Gyazo本体にマージされたので次のバージョンで対応されそう 

https://github.com/gyazo/Gyazo/pull/5

めでたい!!!
</ins>
schemeでfizzbuzz久しぶりに書いてみた

書き方も忘れてるし関数を知らなさすぎてヤバい

```scm
(define (range n m)
  (if (<= n m)
    (cons n (range (+ 1 n) m))
    (quote ())))

(define (my-map lst proc)
  (if (null? lst)
    (quote ())
    (cons (proc (car lst))
          (my-map (cdr lst) proc))))

(define (rest n m)
  (if (>= n m)
    (rest (- n m) m)
    n))

(define (fizzbuzz n)
  (cond
    ((= (rest n 15) 0) "fizzbuzz")
    ((= (rest n 3) 0) "fizz")
    ((= (rest n 5) 0) "buzz")
    (else n)))

(print (my-map (range 1 100) fizzbuzz))
```
今いるディレクトリのフルパスをクリップボードにコピーするzshの関数


これでコピーして、screenの他のウィンドウでペーストしたりして使う。

```sh
function pwd-clip() {
    local copyToClipboard

    if which pbcopy >/dev/null 2>&1 ; then
        # Mac
        copyToClipboard='pbcopy'
    elif which xsel >/dev/null 2>&1 ; then
        # Linux
        copyToClipboard='xsel --input --clipboard'
    elif which putclip >/dev/null 2>&1 ; then
        # Cygwin
        copyToClipboard='putclip'
    else
        copyToClipboard='cat'
    fi

    # ${=VAR} enables SH_WORD_SPLIT option
    # so ${=VAR] is splited in words, for example "a" "b" "c"
    echo -n $PWD | ${=copyToClipboard}
}

```
zshの便利機能の1つ，グローバルエイリアス

GやL，... は多用する．
たとえば
$ tail -f some.log G error
みたいな使い方をよくする

```sh
# global alias
alias -g TELLME="&& say succeeded || say failed"
alias -g G="| grep"
alias -g H='| head'
alias -g L="| less -R"
alias -g W='| wc'
alias -g T='| tail'
alias -g ...='../..'
alias -g ....='../../..'

```
zsh promot と git の連携。vcs_info は rvm とつかうと svn のディレクトリに入ったときにセグるので、enable git だけしておく。



```sh
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:*' actionformats ' %F{3}@%F{4}%b%F{3} !!%F{1}%a%f'
zstyle ':vcs_info:*' formats       ' %F{3}@%F{4}%b%f'
RPROMPT="%F{5}[%F{2}%3~\${vcs_info_msg_0_}%F{5}]%f"
```
python-memcachedではadd()の失敗時(既にキーが存在している)にはFalseが返り、サーバがそもそも応答しない(コネクションが切断されたなど)場合には0が返るのですが、(False == 0) => Trueなこの言語でその2つをどう切り分けて処理したら良いのでしょう？

python-memcachedではadd()の失敗時(既にキーが存在している)にはFalseが返り、サーバがそもそも応答しない(コネクションが切断されたなど)場合には0が返るのですが、(False == 0) => Trueなこの言語でその2つをどう切り分けて処理したら良いのでしょう？
Macでの開発を便利にするアプリ，Spark

コードを書いているとエディタ，ブラウザ，ターミナル，Twitterクライアント間の移動が多発するけど，いちいちcmd+tab連打したくない．
sparkというアプリを入れるとアプリケーションの起動やapplescript実行などにホットキーを割り当てられる．
http://www.shadowlab.org/Software/spark.php


ぼくは以下のように設定してます．たとえばctrl+1を押すとiTermに，ctrl+2でEmacsに移れる．

```text
ctrl+..
1: iTerm
2: Emacs
3: Google Chrome
4: Things (TODO管理アプリ)
7: Dictionary
8: iTunes
9: YoruFukurou
-: Propane (チャットサービスCampfireのアプリ)
=: Evernote

```
リポジトリに入ってるファイルを git rm じゃなくてふつうに rm しちゃったときにその対象のファイルを git rm --cached まとめてやるときにそれはそれで面倒だから alias な gitconfig。


追記: git add -u でいけた

```sh
# ほかのalias省略
# これで git rm-deleted できる。

[alias]
    rm-deleted = "!f() { git status -s | grep '^ D' | cut -d' ' -f3 ; }; git rm --cached `f`"

```
http://validator.w3.org/check?uri=http%3A%2F%2Fqiita.com%2F&charset=%28detect+automatically%29&doctype=Inline&group=0&ss=1&st=1&outline=1&No200=1&verbose=1

http://validator.w3.org/check?uri=http%3A%2F%2Fqiita.com%2F&charset=%28detect+automatically%29&doctype=Inline&group=0&ss=1&st=1&outline=1&No200=1&verbose=1
[memo] ファイルのサイズ操作 #Ruby



```ruby
# サイズを指定してファイル作成
ruby -e "1.upto(9){ |n| @f=%{ #{n}k.txt }; %x{ del #@f }; %x{ fsutil file createnew #@f #{n*1024} } }"

# ファイルのサイズを0にする
ruby -e "Dir[ %{./*.txt} ].map{ |e| File.truncate(e, 0) }"

```
論理インデックスを用いて行列の条件を満たす行(列）を取り出す。

matrixの一列目がindex1, 二列目がindex2の値をとる行を取り出したいとき。

一行でもかけます。

```matlab
logIndex1 = (matrix(:,1) == index1) & (matrix(:,2) == index2);
%論理インデックスの種を作る。

logIndex2 = repmat(logIndex1, 1, size(matrix,2)) 
% ここで一行の論理インデックスをmatrixのサイズと合わせる。

row = matrix(logIndex2);
%最後に1の部分だけを抽出。
```
HubotをMacで試してみる

Macでちょっと試すだけならかなり簡単．
https://github.com/github/hubot

```sh
# node.js
brew install node.js
# npm
curl http://npmjs.org/install.sh | sh
wget --no-check-certificate https://github.com/downloads/github/hubot/hubot-1.0.3.tar.gz
tar zxvf hubot-1.0.3.tar.gz
cd hubot
# 依存ライブラリのインストール
npm install
# 実行．hubot shellに入る
./bin/hubot
> hubot help
# Twitterから特定単語の検索結果を1件取得
> hubot qiita tweet 

```
hubotをherokuで動かす

hubot: GitHubで使われているCampfire用のbot．IRCやTwilloなどのインターフェースもある． 
https://github.com/github/hubot
HubotをGitHubがどう使っているかは以下のリンク参照
http://www.slideshare.net/rubymeetup/inside-github-with-chris-wanstrath
http://speakerdeck.com/u/schacon/p/robots-beer-and-maslow
http://speakerdeck.com/u/holman/p/how-github-uses-github-to-build-github

```sh
mkdir ~/hubot
cd ~/hubot
wget --no-check-certificate https://github.com/downloads/github/hubot/hubot-1.0.3.tar.gz
tar zxvf hubot-1.0.3.tar.gz
cd hubot
git init
git add .
git commit -m 'initial commit'
heroku create --stack cedar
git push heroku master
heroku ps:scale app=1
# redis用サーバーを追加するにはherokuアカウントのverificationが必要
heroku addons:add redistogo:nano

# IRCbotとして動かす場合
heroku config:add HUBOT_IRC_SERVER="irc.freenode.net"
# 参加させるチャンネルを comma区切りで指定
heroku config:add HUBOT_IRC_ROOMS="#github,#node.js"
heroku config:add HUBOT_IRC_NICK="I_AM_HUBOT"
```
メールアプリを起動して送信するプログラムを書いてみた



```java
public  void sendMail(Context ct,String mail,String subject, String content){
	Uri uri=Uri.parse("mailto:" + mail); 
	Intent intent=new Intent(Intent.ACTION_SENDTO,uri); 
	intent.putExtra(Intent.EXTRA_SUBJECT,subject);
	intent.putExtra(Intent.EXTRA_TEXT,content);
	intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
	ct.startActivity(intent);
}
```
unite.vimの事始め。

キーバインド一つ作るだけで :e と vimfilerを使わなくなった( ´ ▽ ` )ﾉ

```text
let g:unite_enable_start_insert=1                                                   
nnoremap <C-j> :<C-u>Unite buffer file_mru file_rec<CR>
```
複数の範囲を BETWEEN で抽出する時、こんなベタなテクニックが必要ですか？


Hoge モデルから find する時、複数の範囲を BETWEEN で抽出したい時が
あります。サンプルを添付します。

しかし、PHP の連想配列としてみると、'Hoge.time BETWEEN ? AND ?' は
複数存在することになるため、一方が削られます。そのため私はいつも上
のように、後者の最後にスペースを入れて削られないようにしています。
他に良い方法はありますか？

```php
$condition = array("OR" => array(
                     'Hoge.time BETWEEN ? AND ?' => array(8888, 9999),
                     'Hoge.time BETWEEN ? AND ? ' => array(0000, 1111)));
$this->Hoge->find('all', array('conditions' => $condition));

```
markdown をコマンドラインでプレビュー

w3m と markdown が必要。
-dump とるとインタラクティブ。

```sh
function markdown_preview(){
    if [ $# -ne 1 ]
    then
        echo "error: invalid arguments"
        echo "usage: $0 markdown_file"
        return 1
    fi

    if [ ! -f "$1" ]
    then
        echo "error: $1 dose not exists"
        return 2
    fi

    (echo '<html><head><meta charset="UTF-8" /></head><body>';
        markdown $1; echo '</body></html>')\
        | w3m -T text/html -dump

    # screen で縦割りしたときにズレる問題解決
    if [ $STY ]
    then
        sleep 0.2
        screen -X redisplay
    fi
}

```
jQueryでホバーハイライト付きストライプテーブル（クロスブラウザ対応）



```html
<html>
  <head>
	<meta http-equiv="Content-Style-Type" content="text/css">
	<style type="text/css">
	  <!--
		  table {background: #777777 }
		  #title th{ background: #222222; color: white; }
		  th,td { padding:5px;}
		  .odd { background:#aaaaaa; }
		  .even { background:#f2f2f2 }
		  .hover { background: #b2d8ff; }
	  -->
	</style>
	<script type="text/javascript" src="http://www.google.com/jsapi"></script>
	<script type="text/javascript">google.load("jquery", "1.6");</script>
	<script type="text/javascript">
	  $(function(){
	      $("tr:nth-child(odd)").addClass("odd");
	      $("tr:nth-child(even)").addClass("even");
	      $("tr:not(:first-child").mouseover(function(){
	          $(this).addClass("hover");
          }).mouseout(function(){
	          $(this).removeClass("hover");
	      });
	  });
	</script>
  </head>
  <body>
	<h1>CSS Members Table:</h1>
	<table>
	  <tr id="title">
		<th>name</th>
		<th>age</th>
		<th>skill</th>
		<th>local</th>
		<th>voice</th>
	  </tr>
	  <!-- members-->
	  <tr>
		<th>hamhei</th>
		<th>24</th>
		<th>sports</th>
		<th>yamanashi</th>
		<th>kushi kushi</th>
	  </tr>
	  <tr>
		<th>monja</th>
		<th>23</th>
		<th>design</th>
		<th>kagawa</th>
		<th>poyu</th>
	  </tr>
	  <tr>
		<th>daichi</th>
		<th>20(will)</th>
		<th>hadaka</th>
		<th>kagawa</th>
		<th>mokyu</th>
	  </tr>
	  <tr>
		<th>koni_T</th>
		<th>?</th>
		<th>develop?</th>
		<th>?</th>
		<th>koni koni</th>
	  </tr>
	  <tr>
		<th>btomihisa</th>
		<th>35</th>
		<th>interview</th>
		<th>tokyu</th>
		<th>marry me</th>
	  </tr>
	  <tr>
		<th>tomomi</th>
		<th>17</th>
		<th>love</th>
		<th>tokyu</th>
		<th>I love you</th>
	  </tr>
	</table>
  <body>
</html>

```
FacebookのPHP SDKからアプリケーションのアクセストークンを取得する



```php
<?php
$facebook = new \Facebook(array('appId' => 'xxx', 'secret' => 'xxx'));

$reflClass = new \ReflectionObject($facebook);
$method = $reflClass->getMethod('getApplicationAccessToken');
$method->setAccessible(true);
$accessToken = $method->invoke($facebook);
```
ちょっとしたJavaScriptライブラリ作ってみた

https://sites.google.com/site/timelinkjs/timelinkjs_jp

```js
//copyright:@Meaue 2011.4.28

function executeTimeLink(){
  var timeLinkList = getTimeLinkList();
  for(var i=0; i<timeLinkList.length; i++){
    //timetag is not necessarily class...
    var timetag = timeLinkList(i).id;
    if( timetag != null){
      var content=timetag.split("timelink");
      //supposing... id="timelink_start:2002.12.31_end:2004.12.12"
      if(content[0]=="" && content[1]!=null){
        var limits = content[1].split("_");
        for(var m=0; m<limits.length; m++){
          if(limits[m].match(/./)){
            var methodAndTime = limits[m].split(":");
            var now = new Date();
            //Further extension is possible.
            alert(methodAndTime[0]);
            if(methodAndTime[0]=="start" && isValidTimeLink(methodAndTime[1])){
              //dissapear if date is before start
              if(now-toDate(methodAndTime[1])< 0){
                dissapear(timeLinkList(i));
              }
            }
            if(methodAndTime[0]=="end" && isValidTimeLink(methodAndTime[1])){
              //disappear if date is after end
              if(now-toDate(methodAndTime[1])>0){
                disappear(timeLinkList(i));
              }
            }
          }
        }
      }
    }
  }
}

function getTimeLinkList(){
  var elemList = document.getElementsByTagName("div");
  return elemList;
}

function disappear(timeLink){
  //make the tag empty
  document.getElementById(timeLink.id).innerHTML = "";
}

function toDate(time){
  var contents = time.split(".");
  return new Date(contents[0], contents[1]+1, contents[2]);
}

function isValidTimeLink(str){
  //leap year should be concerned...
  if(str.match(/./)){
    var contents = str.split(".");
    if(contents.length == 3){
      return true;
    }
  }
  return false;
}

window.onload=executeTimeLink;
```
あるサーバ(CentOS 5.6；さくらのVPS)のエントロピープールが枯渇してきたので、以下を参照して、rngdを稼働させた。

http://d.hatena.ne.jp/fet/20101218/1292644497
http://backslash.ddo.jp/wordpress/archives/620
すると、無事エントロピープールが増加した。

それはいいんだけど、同じサービスで利用している各サーバも同様の現象が起きていたのに、そちらではrngdを稼働させてないにも関わらず、同じようにエントロピープールが増加してる…。

しかも、さくらのVPSだから、同じネットワークですらないものもあるというのに。

謎だ…。
削除されたremoteブランチがローカルのRepoに残っていて、それを削除する方法 

複数人で作業しているとき、自分以外の誰かがremoteブランチを削除したのが自分のローカル環境に反映されないことがあると思うんですが、下のコマンドを実行してやればキレイにできます。

```sh
# remoteブランチを単純参照
git remote show origin

# remoteブランチでは削除されているが、ローカルに参照が残っているブランチを表示
git remote prune --dry-run origin

# すでに削除されているremoteブランチのローカル参照を削除してきれいにする
git remote prune origin
```
Resque：Redisをバックエンドとしたタスクキューシステム

GitHubで開発，利用されている https://github.com/resque/resque 
組込まれているwebビューが見やすく，失敗したタスクのリトライや削除もできるようになっている．
Resqueを使ってTwitterに投稿するのは以下のように書く

```ruby
# tweet.rb
require 'twitter'
class Tweet
  @queue = :post_to_twitter

  def self.perform(oauth_id, msg)
    oauth = Oauth.find(oauth_id)
    Twitter.configure do |config|
      config.consumer_key       = CONSUMER_KEY
      config.consumer_secret    = CONSUMER_SECRET
      config.oauth_token        = oauth.token
      config.oauth_token_secret = oauth.secret
    end
    twitter_client = Twitter::Client.new
    twitter_client.update(msg)
  end
end

# enqueue
Resque.enqueue(Tweet, oauth_id, msg)
```
(1) タグ一覧でのタグ検索が前方一致のようですが、部分一致にしてください。

たとえば"script", ".js", "lisp"等で引っかかりません。

(2) 乱立したタグのマージはできませんか？
common-lispタグがそこそこ機能していたのにCommonLispタグが出来ていました。