プログラムの最近のブログ記事

Permission denied (publickey).

| | コメント(2) | トラックバック(0)

sshでPermission denied (publickey).が出る場合、パーミッションとかの問題の可能性もあるけど、キーファイルの改行コードが間違ってる場合でもこのエラーになる。

win -> macでファイルもってったら再現。
(win環境だとCRLFでもいけるけど、macはLFのみ)

@edo_m18さんのセミナーを見て思ったこと

| | コメント(0) | トラックバック(0)

iPhoneから投稿できなかった&ハッシュタグ無いのでブログに書く

・WebStrageのcookieに対する優位点
WebStrageでサーバに情報が送られないのはcookieに対する優位点としてあげていいと思う。
リクエスト時の転送量が減るのと「転送する情報はcookie」、「転送しない情報はWebStrage」って使い分けを出来るので。

・Application Cacheはhtml5の中では既存のライブラリでサポートできない部分
videoとかaudioとかでさえPluginでなんとかできたけど、Application Cacheは代替技術無いからもっとちゃんと使えばおもしろいんじゃないか。
ただ、もうちょっと拡張子考えてくれればサーバの設定無しで実装できたのに。。。

・html5で意味づけのあるタグが増えたことに関して
これで喜んでるのでMEよりPGだと思う。
特にJSerはいちいち意味を推測しなくていいから楽になる。

mixiの新しいAPIで出来ること一覧

| | コメント(0) | トラックバック(0)

友人一覧の取得
グループ一覧の取得
特定グループの友人一覧の取得
メールアドレスからプロフィール情報の取得
最近の「ボイス、日記、カレンダー、レビュー、動画、mixiアプリ、フォト、プロフィール情報変更、ミクコレ変更」の一覧
友人の上記内容一覧

ユーザのつぶやき一覧、友人のつぶやき一覧の取得
あるつぶやきにイイネ!をしたユーザの一覧取得
あるつぶやきのコメント一覧の取得

つぶやき投稿、削除
あるつぶやきにイイネ!投稿、削除
あるつぶやきにコメント投稿、削除

つぶやきの投稿、日記の投稿、メッセージの送信、予定の作成、マイリストへの追加、マイミクシィ申請

MTで関連記事を出す

| | コメント(0) | トラックバック(0)

いま読んでる記事自体は含めない

<MTSetVarBlock name="RelatedEntry"><$MTEntryCategory$></MTSetVarBlock>
<MTSetVarBlock name="BaseEntryID"><$MTEntryID$></MTSetVarBlock>
<MTSetVar name="count" value="3">
<MTEntries lastn="4" category="$RelatedEntry">
<MTSetVarBlock name="EntryID"><$MTEntryID$></MTSetVarBlock>
<MTIf name="count" ne="0">
<MTIf name="EntryID" ne="$BaseEntryID">
<MTSetVar name="count" value="1" op="-">
<a href="<$MTEntryLink$>"><$MTEntryTitle$></a>
<a href="http://b.hatena.ne.jp/entry/<$MTEntryLink$>"><img src="http://b.hatena.ne.jp/entry/image/<$MTEntryLink$>" alt="はてなブックマーク - <$MTEntryTitle$>" title="はてなブックマーク - <$MTEntryTitle$>" /></a>
</MTIf>
</MTIf>
</MTEntries>

「HTML5: W3C Widget とその応用を考える会」に行ってき来たのでレポート

| | コメント(1) | トラックバック(0)

http://docs.google.com/View?id=dfwmsc7v_132gnp58vhp

W3C Widgetとは?
Operaが中心となって策定しているもので、Google Gadget、Yahoo Widget、Vista Sidebar Gadget、Dashboard Widget等の統合的なもの。
そもそもgadget系は過去に実装経験があるので、W3C Widgetに関して技術的に目新しいものは多くなかったかも。

興味深かった点

・iPad、iPhoneでW3C Widgetの仕様が動く。
JSが動くのはもちろん、W3C Widgetの仕様を実装したアプリがあるので、その上なら通常公開されているW3C Widgetが動く。

・iPhone、iPadはcanvasよりCSS3アニメーションが早い。
ただし、単純に置き換えは出来ないので置き換えられる場所は限定的かも。
どの程度のことが出来るか把握した方がいいかも。

・iPadならBox2Dがそこそこ動く。
http://d.hatena.ne.jp/technohippy/20100528#1275061401

・JSでアニメーションするならcanvasへのアクセスを最低限にして、毎回canvas全体を書き直した方が早い。
http://ss-o.net/test/game2d/particle2.html
(200*200でiPhone 3Gで完走)

・iPhoneの処理能力はPCの約10/1
http://ss-o.net/test/game2d/d3d.html
(PC10000pixel、iPhone1000pixel)

・canvasをブロックごとに区切って必要な場所のみ書き換えると高速化。
http://ss-o.net/test/game2d/starmine.html

ソーシャルアプリとクラウド

| | コメント(0) | トラックバック(0)

結局ソーシャルアプリとクラウドが相性良い理由って、
ソーシャルアプリが新しいプラットフォームだから負荷予測が困難(企画的にも、技術的にも)って理由だけなんだよなぁと思った。
このへんある程度ノウハウあるなら最初から必要なだけサーバ確保すれば良いだけだし。
(今のところ普通のレンタルサーバの方がクラウドよりランコストが安い)

コンテナ側もファーストインパクトを回避する方向に向かってるから、
今までみたいに「ソーシャルアプリならとりあえずクラウド」ってのも
だんだん言われなくなるのかも。
そう考えると今「ソーシャルアプリにおすすめ」って売り出してるクラウドベンダーは
半年くらいたったら別の売り方に変えるのかな。

でも、今の時点だとランコストは固定サーバの安いって言われてるけど、
これからさらにクラウドが安くなればランコストで固定サーバを抜く
(もしくは初期コストをペイするまでの期間が長くなっていく)か
これまでEC2は遅延がって話があったけど、それも解消されるから
来年あたりからは普通に固定サーバよりクラウドの方がいいって話になるかなー

あとは、値下げ競争のためにクラウド間の互換性が上がればおもしろくなるなー
「今日は負荷少ないから安いベンダー使う」とか、
「公開日は重くなりそうなので高いベンダー使う」とか。
そうなるとスケールアウトするためのボトルネックがDNSとかになりそうだ。

Re: githubで複数のリポジトリを管理するときにはまったこと

| | コメント(0) | トラックバック(0)

http://d.hatena.ne.jp/voidy21/20091207/1260201278

こんな感じのエラーが延々出続けてちょうはまった。。。

ERROR: Permission to kyo-ago/jQuery.keyscroll denied to kyo-ago/mist.js.
fatal: The remote end hung up unexpectedly

結局kyo-ago/mist.jsのDeploy Keysが設定されているのに気づかなかったことが原因。

Deploy Keys削除後、同じ内容をAccount SettingsのPublic Keysに設定したら両方とも通るようになった。

MTで検索結果の次を表示する

| | コメント(1) | トラックバック(0)

MTLoop使ってみた。標準では出来なかったと思ったけど、もしかしたらもっと簡単な方法あるかも。

<mt:SearchResults>
<MTSetVarBlock name="entry_id"><$MTEntryID$></MTSetVarBlock>
<MTSetVarBlock name="search_entrys" key="$entry_id"><$mt:Include module="ブログ記事の概要" hide_counts="1"$></MTSetVarBlock>
<MTSetVarBlock name="search_entry_id" function="push"><$MTEntryID$></MTSetVarBlock>
</mt:SearchResults>

<MTSetVar name="entry_number" value="0">
<MTLoop name="search_entry_id">
<MTGetVar name="search_entrys" key="$__value__">

<MTSetVarBlock name="entry_number_prev"><MTGetVar name="entry_number"></MTSetVarBlock>
<MTSetVarBlock name="entry_number_next"><MTGetVar name="entry_number"></MTSetVarBlock>

<MTSetVarBlock name="entry_number_prev" op="--"></MTSetVarBlock>
<MTSetVarBlock name="entry_number_next" op="++"></MTSetVarBlock>

<MTIf name="search_entry_id[$entry_number_next]"><a href="#entry-<MTVar name="search_entry_id[$entry_number_next]">">前</a></MTIf>
<MTIf name="search_entry_id[$entry_number_prev]"><a href="#entry-<MTVar name="search_entry_id[$entry_number_prev]">" title="">次</a></MTIf>

<MTSetVar name="entry_number" op="++">
</MTLoop>

MTでタグ毎にグループ化する方法

| | コメント(0) | トラックバック(0)

<MTTags>
<MTSetVarBlock name="tag_name"><$mt:TagName$></MTSetVarBlock>
<MTIf name="tag_name" like="^(グループ化したいものを「|」で区切って羅列)$">
<MTSetVarBlock name="hoge_tag" append="1"><$mt:TagRank max="5"$> <a href="<$mt:TagSearchLink$>"><$mt:TagName$><span>[<$mt:TagCount$>]</span></a></MTSetVarBlock>
<MTElseIf like="^(グループ化したいものを「|」で区切って羅列)$"><MTSetVarBlock name="fuga_tag" append="1"><$mt:TagRank max="5"$> <a href="<$mt:TagSearchLink$>"><$mt:TagName$><span>[<$mt:TagCount$>]</span></a></MTSetVarBlock>
// .....以下続く
</MTTags>
hoge_tag = <MTGetVar name="hoge_tag">
fuga_tag = <MTGetVar name="fuga_tag">

MTはループ出来るようになると使いどころ増えるなー

mixiの「run_appli.pl (canvas) の表示サイズ変更について」

| | コメント(0) | トラックバック(0)

run_appli.pl (canvas) の表示サイズ変更について

・一応現在公開済みのアプリに関しては10/1まで今のままで動作保証。
(「2010年10月1日以降も、既存のアプリを945pxにて提供を続けることは可能ですが、事情により、サポートを終了する場合がございますので、ご了承ください」)

・760pxは5/12から選択可能。
(ただし、広告費が払われるのは7/1以降)

・945pxは9/31以降広告費を支払わない。

・945px -> 760pxへは管理画面から変更可能。
(ただし、7/1以降は一度760pxへ変更したら戻せません)

その他詳細は本家参照してください。

SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation

| | コメント(0) | トラックバック(0)

mysqlは作成したときの文字コードと違う文字コードの内容でSQL流すとタイトルのエラーが出る。
一応alter databasesしてもだめだったので全部のテーブルにalter tableで文字コード変えないといけないかも。

RT: 語り尽くされたことを改めてブログに書くことの意義。その2

| | コメント(0) | トラックバック(0)

語り尽くされたことを改めてブログに書くことの意義。その2

もっと記事書こうと思った。

個人的にはよくある情報でも2カ所以上で確認することもあるので、同じ情報をネット上に別ソースとして撒いておくのは有意義だと思ってる。

BPStudy#28 java-ja.jsの方々が、javascriptについて語ります。

| | コメント(0) | トラックバック(0)

http://d.hatena.ne.jp/monjudoh/20091218/1261131821
・jQueryのlive eventとspecial eventの話

1.4 Alphaではliveの改良があり、ようやくまともに使えるようになった。
(Fxで右クリックにも反応するバグ対応済み)
changeもいけるようになった。
他にもより普通のイベントっぽく使えるようになってる。
1.4 Alphaを見る限り1.3系から大きな非互換性はなさそう。

他にspecial eventも改良されてた。
(けど、こっちは使い道思いつかなかったので割愛。詳細はURLをどうぞ)

・ExtJSとCouchDBに関して
>ExtJS
Q.「デザインの自由ってどの程度ききますか?」
A.「あんまりきかないです。ExtJSっぽさをなくすのは至難」
Q.「テストの部分も公開されてますか?」
A.「金だしてSVN見ればあるかも。SVN見れるライセンスじゃないので不明」
>CouchDB
ホスティングがあるとのことですが、
CouchDB自体どう使っていいかわからないのでスルー

・JSのテストに関して
(演者)「JSのテスト書いてる人~」(会場)「し~ん」
やっぱりどこも書いてないっぽい。
(ちなみに、タイトルは「JSのテストは書くな」)
sweets.jsはやっぱり名前も挙がらず。懇親会でも誰も知らなかった。
JSでJS解析するタイプはまだ数が少ないので、
今後多少望みはあるかもしれない。
少なくとも今のままで普通に外部からテストするタイプは
JSの感覚に合わない気がする。
JS書いてる人の感覚を変えるか、JSのテストツール変えるかなら
プログラムが人間に合わせるのが正しい方向性な気がする。

若手IT勉強会に参加して$.liveとJSDeferredを読んできました。

| | コメント(0) | トラックバック(0)

document objectへのclick eventは右クリックも拾ってしまうことが判明。
(他のhtml elementは左クリックしか拾わない)
event objectのbutton propertyを見て0が左クリック、
2が右クリックなのでそれで判断するのがいいかも。
JSDeferredは普段使ってないのであまりぴんとこず。。。
でもとりあえずコードは頭に入った。
正直コード的にはどうかと思う記述も多い。
function objectにcallってmethodはないと思う。。。

$.liveは本家のBTS見て見る
結構数報告されてて追い切れなかった。。。
(「重複してるのでこっち」みたいなのが多くてどれが主かわからない)
とりあえずeventのbutton見ればいいんじゃね?ってチケットはあったので
そのうち直ると思う。

セキュリティ系記事まとめ

| | コメント(0) | トラックバック(0)

社内に送ったメールの転記
//----------------------------
お勧め記事。@ITは結構いい記事あります。

軽く全体的に知りたい方。

・もいちどイチから! HTTP基礎訓練中 連載インデックス - @IT
http://www.atmarkit.co.jp/fsecurity/index/index_httpbasic.html
かなり軽め。興味ある項目だけどうぞ。

・星野君のWebアプリほのぼの改造計画 連載インデックス - @IT
http://www.atmarkit.co.jp/fsecurity/index/index_hoshino.html
何気に結構深い。3、4以降くらいからは必見。
私もここで知った攻撃方法とかあります。

割とまじめに知りたい方。

@IT:Webアプリケーションに潜むセキュリティホール(1)
http://www.atmarkit.co.jp/fsecurity/rensai/webhole01/webhole01.html

深く知りたい方。

・教科書に載らないWebアプリケーションセキュリティ - @IT
http://www.atmarkit.co.jp/fcoding/index/webapp.html

・連載:本当は怖い文字コードの話|gihyo.jp ... 技術評論社
http://gihyo.jp/admin/serial/01/charcode
はせがわようすけさんの話。XSS中心。
この人の文字コードの話はマジでやばい。
http://utf-8.jp/

若手IT勉強会 #11に参加させていただきました

| | コメント(0) | トラックバック(0)

第11回勉強会 ‎(若手IT勉強会)‎に行ってきました。
2回目にしてまとめ記事が一気に適当になった気がしますが気にしない。
第一回まとめ

・jQueryはnative event呼ぶ機能無い
$0.addEventListener('click', function () { console.log(1) }, false);
$($0).click();
>>> consoleには1が表示されない

・独自イベントは処理の切り出しには便利だけど、どう切り出すかが微妙に難しいのでちょっと使いにくいかも
イベント伝播中心で組むのはどこにどの処理が割り当てられてるかわかりにくいので後々不要な処理が残りやすい気がする
(イベントが階層化できないので)

・sizzleは本家もほとんどコメント無いなぁ。。。
最近複雑な正規表現書くときはこんな感じにしてる。

mosix = function () {
var result = '';
$.each(Array.prototype.slice.call(arguments), function () {
result += this.test ? (this + '').replace(/^\/|\/\w*$/mg, '') : this;
});
return new RegExp(result);
};
mosix(
// schema
'^http://',
// domain
/\w+\.\w+\.\w+/,
// path
'/$'
).test(location.href);

まだそんなに試してないけど、それなりにいける気がする。


・elementsにsetInterval定義してevents貼り付けるとその要素はwindowとして解釈される
$0.setInterval = true;$($0).click(function () { console.log(1) });
>>> どこクリックしても1が表示される
まあ、そんなことしないと思うけど。

・event handlerに同じファンクションを2回設定しても1回しか呼び出されない。
function hoge () { console.log(1); };
$($0).click(hoge).click(hoge).click(hoge).click();
>>> 1しか表示されない
この場合、hoge.guidをdeleteすれば再度呼び出される。

・namespaceは複数設定可能
$('a').bind('click.hoge.huga')とか

・namespace指定でtrigger可能 ただし、triggerはevent名を省略できない
($('a').trigger('click.hoge')はOK $('a').trigger('.hoge')はNG)

・Array().slice().sort()はArray().concat().sort()と一緒
日破壊的なsortをしたいとき用。
concatで書いてくれればわかったのに。。。

・live eventのbindを使った貼り付け方。もちろんこっちからやるのは非推奨だと思う。
jQuery(document).bind('live.click.a', function () { alert(1) })
// 'live.event name.selector'。selectorは.を`にスペースを|に置き換える。

・こんな感じでそのイベント全体の初期化処理を挟める(イベント貼る毎に呼び出される?)
jQuery.event.special['click'] = { 'setup' : function () { console.log('setup'); } };
$($0).click(function () { console.log('click'); });
>>> setup
//'setup'のほかに'teardown'ってのも定義できるらしいけど、こっちはいつ呼ばれるのか不明
//(unbindしても呼ばれなかった。コードを読む分には呼ばれそうだけど。。。)

・safariのデバッガーはfirebugよりいいかも。
慣れてるからfirebug使うけど、safariも使っていいかも

・Fxのevent.originalEvent.timeStampはかなりむちゃくちゃな時間を返す。
$($0).click(function (e) { console.log(e.timeStamp, e.originalEvent.timeStamp) })
>>> 1252824662619 87914218
ブラウザ起動後の時間?PC起動後とかかも

・$('a:first').bind('click.abcaaaa.def', function () { alert(1) }).trigger('click.abc.def');
=>alert(1)
jQueryのバグっぽい(1.3.2)
2679行がおかしい。joinの正規表現を".*\\."ではなく、"\\..*\\."にして、handler.type.split(/\./).join('._.')みたいなコードを挟むと直る気がする
ただし、これが発生するのは複数ネームスペース指定してて、呼び出し時にソートして左側に来るイベントに余計な名前がくる場合だけ
2週間前に報告済みだった。http://dev.jquery.com/ticket/5138
ただ、この解決方法は微妙すぎるので、本家で華麗に修正されるのを待とう。
('._.')('._.')('._.')('._.')('._.')


その他

・遅刻しました。すいません。でもちょうどよかったです。

・懇親会でいろいろ聞けて楽しかった。

・勉強会自体はもうちょっと先まで読みたかったかも。結局remove周りは読めなかったので。。。

・javascript ninjaは結構読んで見たい。

・大根おいしかった。

MTに延々はまる

| | コメント(0) | トラックバック(0)

ブログの新規登録画面でカテゴリが追加できない。
(カテゴリの一覧が出てこない)

img.offset(Width || Height)はIEで正しい値を返す

| | コメント(0) | トラックバック(0)

img自体にwidth,heightが指定されていなくても、画像の大きさになる。
sisso.jsの制約がひとつ減った。

mod_proxy環境下でリダイレクトするとサーバのローカルIPになる

| | コメント(2) | トラックバック(0)

困った

oncfontsizehangeがほしいなぁ。。。

| | コメント(0) | トラックバック(0)

setintervalじゃなくてちゃんとイベントのやつ
onpropertychangeはうまくいかなかった。
setexpressionはうまくいったけど

今日もMT

| | コメント(0) | トラックバック(0)

MTテンプレート内にSQLを直書きできるらしい。
これとphpとJSがあれば何でもできそう。
http://bizcaz.com/archives/2008/02/03-195241.php

jQueryネタ

| | コメント(0) | トラックバック(0)

$.paramは引数のobject内にfunctionがあれば
全部引数なしで呼び出してその返り値を使ってくれる。

JSの高速化=jQueryを使わない

jQueryネタ

| | コメント(0) | トラックバック(0)

ul.css('left');
はIEでautoが返る可能性がある。
(Fxでは0pxが返る)

parseInt(ul.css('left'));
でNaNになるので注意。

parseInt(ul.css('left')) || 0;
とかが安全。

pipesでrequest too largeと言われてもYQL経由ならとれる

| | コメント(0) | トラックバック(0)

YQLでざっくり切り出して、pipesの他のmoduleで切り出すといい感じ。
pipes内にYQL builderみたいなのあればいいのに。
(String Builderとかしかない)

40個くらいpipes作った

| | コメント(0) | トラックバック(0)

だいぶなれた。
20個超えたくらいからPublishするのにcapchaを要求されるようになった。
上限はないっぽいけど、yahooのcapcha難しい。。。

画像の置き換えが重い

| | コメント(0) | トラックバック(0)

この辺参考にして軽くしてみたい。
http://d.hatena.ne.jp/Yuichirou/20081127#1227721849

NoScriptを入れてみた

| | コメント(0) | トラックバック(0)

各ページのJSとかが動かなくて早くなったかも。
ただ、サイトに使ってるJSに気づかないのでJS使いとしては間違った選択かもしれない。

内部システムからMTへのデータ移行にselenium使用

| | コメント(0) | トラックバック(0)

まずっても後で同じようにやり直せるからいいなぁ
時間かかるけど

postgresからmysqlの移行に悩む

| | コメント(0) | トラックバック(0)

pg_hba.confの書式とかすっかり忘れてた。
でも、やっぱりpostgresの方がすき。
mysqlははまりどころが多すぎる

今日はMTと格闘

| | コメント(0) | トラックバック(0)

apache2+mod_perl2化と、mod_proxy環境下での構築に詰まるも無事完成。
次はテンプレート。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちプログラムカテゴリに属しているものが含まれています。

次のカテゴリは日記です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.1