<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Javaとrubyと男と女</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/" />
    <link rel="self" type="application/atom+xml" href="http://blog.mufu.jp/atom.xml" />
    <id>tag:blog.mufu.jp,2008-07-04://1</id>
    <updated>2010-01-13T03:48:22Z</updated>
    <subtitle>Javaやrubyなどの言語やSEO等、WEBに関わるメモ</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.13</generator>

<entry>
    <title>Slicehostかも</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2010/01/slicehost.html" />
    <id>tag:blog.mufu.jp,2010://1.293</id>

    <published>2010-01-13T03:20:05Z</published>
    <updated>2010-01-13T03:48:22Z</updated>

    <summary>いやー、全然更新してなかった。。さて、EC2を散々持ち上げてきた僕ですが、やっぱ...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="UNIX/LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[いやー、全然更新してなかった。。<br /><br />さて、EC2を散々持ち上げてきた僕ですが、やっぱり1ヶ月まるまる使うぜ！となるとそこそこお高いんですよね。。<br /><br />もうちょっと安くならないかなあと思ったらいいのがありました。<br /><br />]]>
        <![CDATA[それがSlicehostです。<br /><a href="http://www.slicehost.com/">http://www.slicehost.com/</a><br /><br />VPSサービスなんだけどサービスの柔軟性や価格的にすごくマッチしている気がしてます。<br />詳細は、いろんな人が言及しているのでそちらで。<br />
<br />英語さえクリアできれば、ドキュメントや各種コミュニティ内の情報も充実しているようなのでトライしてみようと思います。<br /><br />「英語さえ」というところについても、たぶんEC２含め、rootがとれることを前提としたホスティングサービスを探しているような人は、まず高確率でエンジニアの人だと思うんです。<br />だったら英語を避けてては伸びが見込めません。英語を理由に避けずにいい機会だと思ってぜひチャレンジしてみてください。<br /><br />かしこ。<br /><br /><br /><br /><br /><br />]]>
    </content>
</entry>

<entry>
    <title>携帯キャリアの受信拒否ボーダーなど</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/11/post-5.html" />
    <id>tag:blog.mufu.jp,2009://1.292</id>

    <published>2009-11-12T06:26:02Z</published>
    <updated>2009-11-13T03:58:28Z</updated>

    <summary>携帯キャリアへの(大量）メール送信は一定のルールを守らないと、キャリア側から受信...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="モバイル" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[携帯キャリアへの(大量）メール送信は一定のルールを守らないと、キャリア側から受信拒否を食らいまふ。<br />]]>
        <![CDATA[受信拒否を食らうトリガーとなる原因でよく知られているのは主に２つ<br /><ul><li>送信先にあて先不明などのエラーメールになるメールが多い場合</li><li>単純に一定時間の間に一定量以上のメールを送った場合</li></ul><br />さて、これらのボーダーはどこにあるのだろうか。<br />エラーメールについては、5%がボーダーらしい。これは<a href="http://www.plusmb.jp/2009/06/12/3727.html">ここ</a>にも書いてあるし、某情報筋からも同じ数字を聞かされたことがある。なんの5%かはわからないけど。<br /><br />次に「一定時間の間に一定量以上のメールを送った場合」なんだけど、これはもう「あーそーですかー」という感じなんだけど、アタリがつけられそうなデータがあるのでちょっと調べてみた。<br /><br />Softbank<br />これが一番辛い。10分頭5000件あたりが怪しい。<br />でもSoftbankは受信拒否くらっても、解除が早い。<br /><br />AU<br />10分頭30000件くらいが怪しい。<br />AUは受信拒否くらうと長い。<br /><br />docomo<br />王者の貫禄か、10分頭45000件を超えてもぜんぜん大丈夫。<br />これ以上のデータがないので怪しいボーダーはわかんない。<br /><br />上記はグローバルIPが1つの場合です。<br />当然まったく保障なし。それぞれのボーダー越えるときは超えているし。<br />上記は10分頭で書いているけど、実際は基準点は違うところにあるようです。<br /><br />]]>
    </content>
</entry>

<entry>
    <title>IEでCSVファイルのダウンロードができない</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/10/iecsv.html" />
    <id>tag:blog.mufu.jp,2009://1.291</id>

    <published>2009-10-14T07:37:44Z</published>
    <updated>2009-10-14T07:40:03Z</updated>

    <summary>たぶんCSVファイルに限ったことじゃないと思う。 ...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        たぶんCSVファイルに限ったことじゃないと思う。 
        <![CDATA[原因はリクエストヘッダにno-cacheが入っていることにあるらしい。<br /><br />で、実際に自分のコードを見てみたら<br /><br />$this-&gt;getResponse()-&gt;setHeader('cache-control', 'no-cache');<br /><br />ってやってたので、これをコメントアウトしたらできた。<br />なんでだろう。<br /><br />ちなみに自分のローカルwindows（XAMPP)環境では発症しなかった。<br />Linuxで発症。<br />なんでだろう。<br /><br /><br /><br />]]>
    </content>
</entry>

<entry>
    <title>AUでformをsubmitすると「戻る」</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/09/auformsubmit.html" />
    <id>tag:blog.mufu.jp,2009://1.290</id>

    <published>2009-09-15T04:30:30Z</published>
    <updated>2009-09-15T04:33:59Z</updated>

    <summary>AUの実機でとあるフォームのサブミットボタンを押したら、「クリア」ボタンとか十字...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="XHTML+CSS" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="モバイル" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[AUの実機でとあるフォームのサブミットボタンを押したら、「クリア」ボタンとか十字キーの左を押したときのように、前画面に戻ってしまう、という現象が発生した。<br /><br />]]>
        <![CDATA[いやー、原因はなんてことなくってformタグの掛け違いだった。<br /><br /><blockquote>＜form＞<br />＜div＞<br />＜/form＞<br />＜/div＞<br /></blockquote><br />みたいなやつですね。<br />いやー世知辛い。<br /><br />]]>
    </content>
</entry>

<entry>
    <title>XAMPPの過去のバージョン</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/08/xampp.html" />
    <id>tag:blog.mufu.jp,2009://1.289</id>

    <published>2009-08-27T09:17:57Z</published>
    <updated>2009-08-27T09:21:15Z</updated>

    <summary>PHP4.xの開発環境が必要になったときなど、過去のXAMPPが欲しいときがあり...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="windows" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[PHP4.xの開発環境が必要になったときなど、過去のXAMPPが欲しいときがあります。<br /> ]]>
        <![CDATA[その場合は<br /><br /><a href="http://cl.pocari.org/2007-11-04-1.html">http://cl.pocari.org/2007-11-04-1.html</a>で必要なバージョンを探して<br /><a href="http://sourceforge.jp/projects/xampp/releases/?package_id=8457">http://sourceforge.jp/projects/xampp/releases/?package_id=8457</a>でダウンロードすればOK。<br /><br />]]>
    </content>
</entry>

<entry>
    <title>Zend_Service_Amazonが動かなくなった</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/08/zend-service-amazon.html" />
    <id>tag:blog.mufu.jp,2009://1.288</id>

    <published>2009-08-19T06:30:50Z</published>
    <updated>2009-08-19T06:33:52Z</updated>

    <summary>Amazonが仕様を変えたからだね。 ...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[Amazonが仕様を変えたからだね。<br /><br /> ]]>
        <![CDATA[Zend_Service_Amazonを使っていれば、わずか２つの手順で新APIサービスに移行完了だ！<br /><br />１．ZFを1.9にバージョンアップする<br /><br />２．Zend_Service_Amazonをnewするところの第３引数にSecret Access Keyを付与する<br /><br />Before<br /><blockquote>$amazon = new Zend_Service_Amazon($config-&gt;service-&gt;amazon-&gt;apikey, 'JP');<br /></blockquote><br />After<br /><blockquote>$amazon = new Zend_Service_Amazon($config-&gt;service-&gt;amazon-&gt;apikey, 'JP', $config-&gt;service-&gt;amazon-&gt;secret_key);<br /></blockquote><br />※実際のKeyはconfigファイルに記載<br /><br />いやー、使っててよかったZend Framework！<br /><br /><br />]]>
    </content>
</entry>

<entry>
    <title>Zend_Dateがdocomoでうまく動かない罠</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/08/zend-datedocomo.html" />
    <id>tag:blog.mufu.jp,2009://1.283</id>

    <published>2009-08-10T15:35:33Z</published>
    <updated>2009-08-10T15:51:17Z</updated>

    <summary>ローカル環境でも問題なく、本番環境にのっけて各キャリアでチェックしたときにこの衝...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[ローカル環境でも問題なく、本番環境にのっけて各キャリアでチェックしたときにこの衝撃は起こる。<br /><br />docomoだとZend_Dateを使っているところがうまく動かないのだ。<br /><br /><br />]]>
        <![CDATA[原因は<br /><ul><li>Zend_DateはロケールをAccept-Language見て決める</li><li>docomoはAccept-Languageを返さない</li></ul>この2点のコンボだ。<br /><br />解決には<a href="http://meisterofcode.blog120.fc2.com/blog-entry-154.html">「Zend_Dateのlocalがenになる</a>」のようなやり方もあるだろうが、今コレ見ている人はケータイサイト作ってる人だろうから<a href="http://framework.zend.com/manual/ja/zend.locale.html#zend.locale.selection.automatic">Zend_Locale</a>を使う方法がオススメ。<br /><br />具体的には、Zend_Dateが使われる前かつ必ず通る場所に<br /><blockquote>Zend_Locale::setDefault('ja_JP');<br /></blockquote>を書くだけ。<br /><br />これでケーオツだ！<br /><br />ケータイサイトに限らず、日本人対象なサイトだったら何はともあれ入れとくのもありかも。<br /><br />K治さんありがとう！<br /><br />

<br />]]>
    </content>
</entry>

<entry>
    <title>GDで画像のリサイズ</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/07/gd.html" />
    <id>tag:blog.mufu.jp,2009://1.282</id>

    <published>2009-07-22T10:41:56Z</published>
    <updated>2009-07-22T10:45:27Z</updated>

    <summary>ImageMagikを使おうと思ったら、運用環境に入ってなかったのでGDでリサイ...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[ImageMagikを使おうと思ったら、運用環境に入ってなかったのでGDでリサイズのfunctionを書いた。<br />といってもあまりオリジナリティはないですけど。<br />]]>
        <![CDATA[<blockquote>&nbsp;&nbsp;&nbsp; public static function resizeImage($srcPath, $distPath, $maxwidth=240, $maxheight=240){<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; list($width, $height) = getimagesize($srcPath);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $percent1 = $maxwidth / $width;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $percent2 = $maxheight / $height;<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $percent = ( $percent1 &gt; $percent2 ? $percent2 : $percent1 );<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // 新規サイズを取得します<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $newwidth = $width * $percent;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $newheight = $height * $percent;<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // 読み込み<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $newFile = imagecreatetruecolor($newwidth, $newheight);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $source = imagecreatefromjpeg($srcPath);<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // リサイズ<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; imagecopyresized($newFile, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; imagejpeg($newFile, $distPath);<br />&nbsp;&nbsp;&nbsp; }<br /></blockquote>というわけで、$srcPathに元画像が置いてあるファイル名までのpath、$distPathがリサイズ後のファイルを置く、ファイル名までのパス、$maxwidthと$maxheightは元画像の大きいほうの側が指定したサイズに縦横比を保ったままリサイズします。<br /><br /><br />]]>
    </content>
</entry>

<entry>
    <title>Zend Frameworkで読み込むviewを変更したいときの方法</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/07/zend-frameworkview.html" />
    <id>tag:blog.mufu.jp,2009://1.281</id>

    <published>2009-07-10T06:18:34Z</published>
    <updated>2009-07-10T06:36:37Z</updated>

    <summary>おつかれさまです。/hogeにアクセスするとHogeコントローラのindexAc...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[おつかれさまです。<br /><br />/hogeにアクセスするとHogeコントローラのindexActionに飛んで<br />/hoge/index.tplとかがレンダリングされるノリかと思います。<br /><br />このとき、読み込むviewファイルをindex.tplじゃなくてfuga.tplにしたいというときの話です。<br />]]>
        <![CDATA[読み込むviewだけ変えるというのならけっこう方法があって<br />ざっとわかるだけでも以下があります。<br /><br /><blockquote>$this-&gt;_helper-&gt;viewRenderer-&gt;setScriptAction('fuga')<br />$this-&gt;_helper-&gt;viewRenderer('fuga');<br />$this-&gt;_helper-&gt;viewRenderer-&gt;setRender('fuga');<br /><br />$this-&gt;render('fuga');<br /></blockquote>このうち、上３つは同じ動きをするようですが、最後の１つは違います。<br /><br />上３つは実際の描画はpostDispatchの後です。<br />一方$this-&gt;render('');は即時描画なので、postDispatchはその後に動きます。<br /><br />なので、例えば、postDispatchで変数のアサインとかをしていると<br />$this-&gt;renderの場合は、その変数はアサインされないので気をつけましょう。<br /><br />あと、上３つは同じっていいましたが、このお話の内容に限っての話で<br />どっか別のところで違うところはあるかもしれません。。<br /><br /><br />]]>
    </content>
</entry>

<entry>
    <title>Zend Frameworkでファイルをファイル名を変えながらアップロード</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/06/zend-framework-3.html" />
    <id>tag:blog.mufu.jp,2009://1.280</id>

    <published>2009-06-21T03:44:43Z</published>
    <updated>2009-06-21T13:59:02Z</updated>

    <summary>ZF使い始めてだいぶ経つけど、HTMLフォームからファイルをアップロードってのを...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        ZF使い始めてだいぶ経つけど、HTMLフォームからファイルをアップロードってのをやったことがなかった。たまたま。
        <![CDATA[HTML側にフォームをフツーに作っていただければ、サーバサイドはコントローラこんな感じに書けばアップできます。<br /><br /><blockquote>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $adapter = new Zend_File_Transfer_Adapter_Http();<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $adapter-&gt;setDestination('D:\tmp');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $adapter-&gt;addFilter('Rename', 'D:\tmp\1.jpg');<br /><br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!$adapter-&gt;receive()) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $messages = $adapter-&gt;getMessages();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo implode("\n", $messages);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br /></blockquote><br />このコードはZFのリファレンスガイドに掲載されてたものとほぼ同じなので、実際はvalidationとかかけないとダメです。<br /><br />名前変更は$adapter-&gt;addFilter('Rename', 'D:\tmp\1.jpg');でフィルタでやるわけです。<br />詳しくはやはり<a href="http://framework.zend.com/manual/ja/zend.file.transfer.filters.html">リファレンスガイド</a>を参照すべし、ということで。<br /><br />追記：<br />画像を上書きで保存したい場合は、以下のような感じで。<br /><blockquote>$adapter-&gt;addFilter('Rename', array('target' =&gt; 'D:\tmp\1.jpg', 'overwrite' =&gt; true));<br /></blockquote><br /><br />]]>
    </content>
</entry>

<entry>
    <title>ただでSubversionが使えるんだね-フリーのSVNサービス</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/06/subversionsvn.html" />
    <id>tag:blog.mufu.jp,2009://1.279</id>

    <published>2009-06-16T16:10:29Z</published>
    <updated>2009-06-16T17:02:19Z</updated>

    <summary>個人プロジェクトを開始しまして、ちょこちょこ開発を進めているんですがバージョン管...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="日記" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[個人プロジェクトを開始しまして、ちょこちょこ開発を進めているんですがバージョン管理をどーしようかってくらいの状況になってまいりました。<br /><br />インフラですらクラウドな世の中の昨今、自分でSVNリポジトリを組むのも組む場所を探すのもめんどくさいなあ、グーグルのやつはみんなに見られちゃうんだよねそれは恥ずかしいなあ、という訳でフリーかつ誰にも見られない、そーゆーサービスがないかと探してみたんですけど、あるものなんですね。<br /><br /> ]]>
        <![CDATA[いくつかあったんですが、なんとなくここを選んでみました。<br /><a href="http://www.xp-dev.com/">http://www.xp-dev.com/</a><br /><br />500MBまで使えるし。<br />よくわからないトラッキングシステムも使えるみたいだし（日本語OKも問題ないっぽい）。<br />リポジトリのdumpもダウンロードできるみたいだし。<br />
英語サイトだけど別にって感じだし。<br />SSLは有料オプションぽいけど、別にいらないし。<br /><br />トラッキングシステムはもったりしてるけど、SVNはさくさく動きましたよ。<br />これは個人プロジェクトにはもってこいだなぁと思いました。<br /><br /><br /><br />]]>
    </content>
</entry>

<entry>
    <title>jqueryで$.ajax使ったときにsuccessに処理がきてくれなくてcompleteに行ってしまう</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/05/jqueryajaxsuccesscomplete.html" />
    <id>tag:blog.mufu.jp,2009://1.278</id>

    <published>2009-05-15T08:51:17Z</published>
    <updated>2009-05-15T08:53:46Z</updated>

    <summary>という経験はないですか？1回目にはまった挙句、なーんだ、こういう理由か、と思った...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="Ajax" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[という経験はないですか？<br /><br />1回目にはまった挙句、なーんだ、こういう理由か、と思ったのに2回目はまって原因が思い出せなかったのできっと3回目にはまるであろう未来の自分へメモ。<br /> ]]>
        <![CDATA[それは、返却されるXMLの構文がおかしいのだ！<br />タグ構成を見直せ！<br /><br /><br />]]>
    </content>
</entry>

<entry>
    <title>jqueryでドラッグアンドドロップ</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/05/jquery.html" />
    <id>tag:blog.mufu.jp,2009://1.277</id>

    <published>2009-05-08T03:44:40Z</published>
    <updated>2009-05-08T04:04:52Z</updated>

    <summary>最近忙しい。ので、雑にメモ。これからはドラッグアンドドロップが流行る。もう流行っ...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="Ajax" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[最近忙しい。ので、雑にメモ。<br /><br />これからはドラッグアンドドロップが流行る。もう流行っているかもしれないけど。<br />だからドラッグアンドドロップを組んでみたのでそのメモ。<br /><br />これから初めて組むぞー、という人は、もっと親切な説明サイトがたくさんあるのでそちらを見たほうがいいですよ。<br />このエントリーが役立つのは僕と、僕と同じ状況に陥ったごくわずかな一部の人です。<br /><br /> ]]>
        <![CDATA[まず、<a href="http://jqueryui.com/">jqueryui</a>からjsをダウンロードします。<br />uiとdraggableとdroppableだけでいいです。今回は。<br /><br />ドラッグ対象にクラスをつけます。今回はhoge。画像です。<br /><br /><blockquote>&lt;img id="hoge1" class="hoge" src="hoge1.jpg"&nbsp; width="86" height="108" /&gt;<br /></blockquote><br />この画像はリスト的にだーっと並んでいて、idがhoge1・・・nと言うようにつけられています。<br /><br />ドロップするブロックにもクラスをつけます。今回はfuga。<br />ドロップする場所は、わかりやすくするために枠をとってます。<br /><br /><blockquote>&lt;div&nbsp; class="fuga" style="border: 1px solid red; width: 96%; height: 100px; float: left;"&gt;&lt;/div&gt;<br /></blockquote><br />で、ロード時に読み込まれる場所に初期設定を書いておきます。<br />関数に切り出しているのは、今作っているアプリは、動的にドロップする場所が増減するので、増減させたタイミングで初期化するためです。<br /><blockquote>function init(){<br />&nbsp;&nbsp;&nbsp; j$('.hoge').draggable({helper: 'clone'});<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; j$('.fuga').droppable({<br />&nbsp;&nbsp;&nbsp; &nbsp; accept: '.hoge',<br />&nbsp;&nbsp;&nbsp; &nbsp; activeClass: 'active',<br />&nbsp;&nbsp;&nbsp; &nbsp; drop:&nbsp;&nbsp; function(ev, ui) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(!isExist(ev)){<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ui.draggable.clone().appendTo(this);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; });<br />}<br /></blockquote><br />ui.draggable.clone().appendTo(this);というのは、ドロップしたときにドロップした場所にオブジェクトをコピーするって感じで、colne()をとると、コピーじゃなくて移動する感じになります。<br /><br />コピーということで、同じオブジェクトを同じドロップ場所に何回もコピーできちゃいます。<br />それが困る状況だったのでisExist()という重複チェックをする関数をかましています。<br /><blockquote>function isExist(ev){<br />&nbsp;&nbsp;&nbsp; $target = ev.target;<br />&nbsp;&nbsp;&nbsp; var bool = false;<br />&nbsp;&nbsp;&nbsp; j$(".hoge", $target).each(function(){<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(this.id == ev.originalTarget.id){<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; bool = true;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; return bool;<br />}<br /></blockquote><br />これだけで、特定のものを特定の場所に重複なくドロップすることができますスゲー。<br />自分用なんで、この辺でカンベンしてください。<br /><br />]]>
    </content>
</entry>

<entry>
    <title>Zend Frameworkで現在日付の週始めと週末の日付を取得する</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/04/zend-framework-2.html" />
    <id>tag:blog.mufu.jp,2009://1.276</id>

    <published>2009-04-14T05:49:25Z</published>
    <updated>2009-04-14T06:02:02Z</updated>

    <summary>例えば今日が4月14日（火）なので、週始め＝4月13日（月）と週末＝4月19日（...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[例えば今日が4月14日（火）なので、週始め＝4月13日（月）と週末＝4月19日（日）を取得したいというケース。<br /><br />ググっみても、見つかるのはタイムスタンプを利用してなんちゃらとかグレゴリ暦がなんちゃらとか理屈はわかるけどコードを見ても「ややこしいなー」というものばかりだったので、1から考えることに。<br /><br /><br /> ]]>
        <![CDATA[さすがZend Framework。Zend_Dateを利用すればスッキリさわやかなコードがかける。<br /><br /><blockquote>&nbsp;&nbsp;&nbsp; public static function getWeekStartDate(){<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $date = new Zend_Date(null, 'yyyy.MM.dd', new Zend_Locale('ja'));<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $day = $date-&gt;get(Zend_Date::WEEKDAY_8601);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if($day != 1){<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $date-&gt;subDay($day - 1);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return $date;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public static function getWeekEndDate(){<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $date = new Zend_Date(null, 'yyyy.MM.dd', new Zend_Locale('ja'));<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $day = $date-&gt;get(Zend_Date::WEEKDAY_8601);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if($day != 7){<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $date-&gt;addDay(7 - $day);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return $date;<br />&nbsp;&nbsp;&nbsp; }<br /></blockquote>今回はロケールは日本決めうちにさせていただきましたので、あらかじめご了承ください。<br /><br /><br />]]>
    </content>
</entry>

<entry>
    <title>Resource temporarily unavailable: setuid: unable to change to uid:</title>
    <link rel="alternate" type="text/html" href="http://blog.mufu.jp/2009/04/resource-temporarily-unavailab.html" />
    <id>tag:blog.mufu.jp,2009://1.275</id>

    <published>2009-04-02T04:14:08Z</published>
    <updated>2009-04-02T06:11:02Z</updated>

    <summary>ちょびっとのアクセスでやたらapacheが落ちるという現象が起きていた。/usr...</summary>
    <author>
        <name>ぴろし</name>
        
    </author>
    
        <category term="UNIX/LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.mufu.jp/">
        <![CDATA[ちょびっとのアクセスでやたらapacheが落ちるという現象が起きていた。<br />/usr/local/apache2/logs/error_logをみてみるとこんなログが・・・<br /><blockquote>[alert] (11)Resource temporarily unavailable: setuid: unable to change to uid: 48<br />[alert] Child 26688 returned a Fatal error... Apache is exiting!<br />[alert] (11)Resource temporarily unavailable: setuid: unable to change to uid: 48<br />[emerg] (43)Identifier removed: couldn't grab the accept mutex<br />[emerg] (43)Identifier removed: couldn't grab the accept mutex<br />[emerg] (43)Identifier removed: couldn't grab the accept mutex<br />[emerg] (22)Invalid argument: couldn't grab the accept mutex<br />[emerg] (22)Invalid argument: couldn't grab the accept mutex<br />[emerg] (22)Invalid argument: couldn't release the accept mutex<br />[emerg] (22)Invalid argument: couldn't grab the accept mutex<br />[emerg] (22)Invalid argument: couldn't grab the accept mutex<br />[emerg] (22)Invalid argument: couldn't grab the accept mutex<br />[emerg] (22)Invalid argument: couldn't grab the accept mutex<br /></blockquote>さー調べるか・・・<br /> ]]>
        <![CDATA[結論からいうとサーバーのOS（CentOS）のmax user processesがなんと20と異常な低さだったことが原因だった。<br /><br />これはデフォルトでも２０００なんぼとか４０００なんぼのはずなんだけど・・・。<br /><br />とりあえず<br /><blockquote>ulimit -u 2048<br />ulimit -a<br />~前略~<br />max user processes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-u) 2048<br />~後略~<br /></blockquote><br />これで今まで確実に落ちていた量の負荷を再度かけたがぜんぜん平気だった。<br /><br />謎。<br /><br /><font color="#ffffff"><code></code></font><font color="#ffffff"><code></code></font>]]>
    </content>
</entry>

</feed>
