Hatena::ブログ(Diary)

kissrobberの日記 RSSフィード

できるだけ技術ネタを、テキトーに頑張って書いていきます。
ここはサブブログです。公開したサービス等はこちらのメインブログで公開していきます。

2011-12-20

androidのブラウザのzoomを無効にするには

アンドロイドのbrowserで右下にズームボタンが表示されないようにするには、

viewportにuser-scalable=noじゃなくて

<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0"/>

2011-12-09

RubyでいっぱいProcを渡しても、スレッドをつくりすぎないようにちょっとずつ並列実行してくれるヤツ

2011/12/10昼ごろ追記

つか、これじゃダメっぽい。実行されずに終わるスレッドがたまにある。joinの実装?

2011/12/10 18:45 join修正した

2011/12/10 20:40 callのところに例外処理

2011/12/12 Procじゃなくてblockに変更してみた


名前がイケてない

class ThreadCommander
  require 'thread'

  def initialize size = 50
    @q = SizedQueue.new size
    @ts = {}
  end

  def push &block
    @q.push block.object_id
    t = Thread.start do
     begin
      yield
     rescue Exception => e
       #なんか例外処理
     end
     @q.pop
    end
    @ts[:t.object_id] = t
  end
  
  def join
    while !@q.empty?
      @ts.each do |k, v|
        v.join
        @ts.delete(k)
      end
      Thread.pass
    end
  end

end

tq = ThreadCommander.new 10
puts "start."
(1..100).to_a.each do |i|
  tq.push {sleep rand; puts i}
  puts "."
end
puts "running."
tq.join
puts "end."

2011-09-09

FacebookのJavaScript SDKの下品なコメントが格好良すぎて惚れた件

https://github.com/facebook/connect-js/blob/master/src/core/content.js#L113

// Dear IE, screw you. Only works with the magical incantations.
// Dear FF, screw you too. Needs src _after_ DOM insertion.
// Dear Webkit, you're okay. Works either way.
var guid = FB.guid(),

…続く

親愛なるIEへ、 死ね。 謎の呪文を使わないと動かない…

親愛なるFFへ、 お前も死ね。 DOM挿入後にsrc設定必要

親愛なるWebkitへ、 お前はいいだろう。 どっちでも動く。

Rails3.1でRDBMS(active_record)を使わない場合

application.rbのrails/allを読み込んでいるところを修正します。

#require 'rails/all'
%w(
  action_controller
  action_mailer
  active_resource
  rails/test_unit
  sprockets
).each do |framework|
  begin
    require "#{framework}/railtie"
  rescue LoadError
  end
end

active_recordを外しますが、

Rails3.1からsprocketsが追加になっているので注意(3.0までは無かった)

これが無いとassets pipelineが動いてくれません

2011-08-07

jQueryのアニメーションとか勉強しました。Google+のサークルっぽくリストを表示できるjQueryプラグイン作ったよ。

深刻なjavascript力不足から徐々に抜け出せつつあるような気がしている今日この頃ですが、

jQueryプラグインというものを初めてリリースしてみました。


CircleList jQuery Plugin

http://kissrobber.appspot.com/circlelist_jquery_plugin/


↑のデモのような感じで、htmlのリストをGoogle+のサークルっぽい感じで表示する事ができるプラグインです。


最初はプラグインとかじゃなくて普通にGoogle+っぽくアイコンをうごかすページを作ってたんですが、

jQuery UIの機能(draggableとかselectableとか)と連携したくなった時にプラグインのルールにしたがって作っといた方が連携しやすい事に気がついて、

作り直して、

あ、これ公開できるじゃんって感じで公開してみました。


いろいろ学んだ事はあるんですが、

プラグインの作り方については、

http://www.ibm.com/developerworks/jp/web/library/wa-aj-jquery6/index.html

とか読んどけば十分


コード圧縮する事を考えてセミコロンを忘れないように付けろってやつは大変だった。

最近Rubyもやっているせいか、無意識にセミコロン抜けまくってて。

セミコロン忘れを簡単にチェックできる方法って無いのかな?


アニメーションとかは、

まぁ、テキトーにググったりすればいろいろ出てきます.

IEが言うこと聞かなかったりする事は相変わらずですのでこれはもう気合です。


CSS3のスタイルを使ったアニメーションは

  • moz-transformじゃなくてMozTransformとか注意です。

↓を参考に、

http://yurubu.org/transform/592

んだけど、CSS3のスタイルを使った場合はうまくいかないところがあったので、今回のプラグインからは結局外しましたが。


あと、今回のような変な動きをさせる場合は、

animateに渡すstep関数を自作するんですが、

どっちにしても第一引数には何かを渡す必要があって、今回はダミーで値を変化しないz-indexを指定しました。

IEの場合はautoの扱いに注意です。

他、書くと長くなるので省略しますが、いろいろめんどくさかったっす。


jQueryプラグイン登録について

ちゃんと登録できているのかもよく分かってないですが、

やたらと、読みにくい画像の文字を入力させるやつが出てきてウザかったです。

どんだけ人を疑ってんだよ。


ほか、なんか色々あったんですが、

忘れました。

とりあえず、個人的に一番学んだことはこれかな