rssの本文中にformをくっつけて、そこからコメントを投稿!
という話をid:Voluntasの兄貴がしていたので作ってみた。
が! livedoor ReaderとかGoogle Readerとかformなんて消しちまいますぜ!
いやー、残念。 面白いアイディアだとは思ったんだけどねぇ。
]]>いってきた。
11時スタート。
懇親会終了23時。
12時間てw
楽しかった。
デスマは怖かぁ
]]>よくよく考えたら、募集つったって常駐してもらわなきゃ困るわけじゃない。
良く知らない世界だから、デザイナってまとめて言っちゃったのも実際になんちゃらデザイナの人には「で、なにを?」だと思った。
これは人に「仕事何してるの?」って聞かれた時に「システムエンジニア」って答える事が多いんだけど(phpやってるとか、java
やってるじゃ通じないから)、その後に「じゃあパソコン詳しいんだ」っていわれて「いやいやいや」と思うのと同じだなと。
大概の場合、「じゃあパソコン詳しいんだ」=パソコンが関わる事なら何でも知ってるとなっている。
実際はエクセルなんて分からないし、ワードなんか触ってもないし、DTMの事聞かれても???だし、写真編集の事聞かれてもiPhotoとしか言えない。
はては、パソコン=秋葉原になったりもしてメイド喫茶の事きかれても分かんないし、コスプレの事聞かれても分からない。
確かに、そんなものがある事は知っているし、どういう物かもなんとなくは知っている。
けど、「教えて」「手伝って」と言われても困る。
同じようにデザイナの人募集って言われたところで、何を募集しているのか分からないよなと。
なので、ちょっと整理。
rhaco.orgで募集しているのは以下をやってくれる人です。
ただ、募集といっても常駐してくださいとかってわけでは無くって「こんなのどう?」とか「こんなの作ってみた」とか軽いノリで求めています。
仕事としてやってるわけではないので、人生かけられても困りますw
ロゴデザインをしてくれる人(絵を描いてくれる人)
バナーデザインをしてくれる人(絵を描いてくれる人)
DB管理画面とかsetup画面とかのインタフェースデザインをしてくれる人 (JavaScript & CSS & HTMLで制作しれくれる人)
※もちろん、全部ができる人しかダメってわけじゃないです。
とにもかくにも、rhacoに興味のある人は http://twitter.com/rhaco とか http://www.lingr.com/room/rhaco とかで声かけてみてください。
追記:
http://ingoodlight.co.jp/netshop/
こういうセンスが好き。 Tシャツの柄とかステキ。
]]>serialize -> serialization http://jp2.php.net/manual/ja/function.serialize.php
unserialize -> deserialization http://jp2.php.net/manual/ja/function.unserialize.php
un?
]]>スパム親分の野望通りrhacoの話はDjango勉強会の話として記憶されたw
http://d.hatena.ne.jp/shrkw/20070804
rhaco Django勉強会が8/25にあるらしいので、行けたら行きたい]]>
ITProの記事からのアクセスがそこそこあった。
あぁITProって見てる人多いんだなぁ。 と。
http://itpro.nikkeibp.co.jp/article/NEWS/20070806/279163/?P=5&ST=oss
いらっしゃい。
LL:まだまだ言語,フレームワーク,セキュリティ ... ... 露木誠は国産PHPフレームワーク「rhaco」
露木誠氏の発表は歯切れが悪かったけど時間切れではありません。
]]>先日のLL魂でLTでの発表もあったrhacoのmixinですが、次のリリースで仕様変更を行います。
現在のもの(1.2.1)は前方優先でしたので、メソッドのオーバーライドができませんでした。
さらに変数の扱いも、いまいちでしたので参照を行うように修正しました。
以下、修正Diffです。 これから使ってみようという方はアップデートお願いします。
Index: Variable.php
===================================================================
--- Variable.php (.../tags/1_2_1/lang/Variable.php) (revision 1602)
+++ Variable.php (.../trunk/lang/Variable.php) (revision 1602)
@@ -367,17 +367,13 @@
* @return object
*/
function mixin(){
- $objects = func_get_args();
- $methods = array();
- $funcs = array();
- $vars = array();
- $classses = array();
- $first = "";
- $name = "MIXINCLASS_";
- $obj = null;
-
- if(empty($objects) || !is_object($objects[0])) return false;
+ $objects = func_get_args();
+ $classses = $methods = $funcs = $vars = $classvar = array();
+ $obj = null;
+ $name = "";
+ if(is_string($objects[0])) $name = array_shift($objects);
+ if(empty($objects) || !is_object($objects[0])) return false;
krsort($objects);
foreach($objects as $key => $object){
if(is_object($object)){
@@ -382,15 +378,18 @@
foreach($objects as $key => $object){
if(is_object($object)){
if(!is_object($object)) return false;
-
- $class = get_class($object);
- $classses[$class] = $class;
- $first = $class;
- $name .= "__".$class;
-
- foreach(get_class_methods($object) as $method) $methods[$method] = $class;
- foreach(get_object_vars($object) as $key => $value) $vars[$key] = $class;
- }else{
+
+ $classname = get_class($object);
+ $classses[] = $classname;
+
+ foreach(get_class_methods($object) as $method){
+ if(!isset($methods[$method])) $methods[$method] = $classname;
+ }
+ foreach(get_object_vars($object) as $key => $value){
+ $vars[$key] = $classname;
+ $classvar[$key][] = $classname;
+ }
+ }else if(is_array($object)){
$object = Variable::arrays($object,0,3,true);
if(!empty($object[0])){
if(empty($object[2])) $object[2] = $object[1];
@@ -399,10 +398,15 @@
unset($objects[$key]);
}
}
+
+ krsort($classses);
+ if(empty($name)) $name = implode("__",$classses);
+
if(!class_exists($name)){
if(isset($methods["istype"])) unset($methods["istype"]);
- if(isset($vars["CLASS"])) unset($vars["CLASS"]);
-
+ if(isset($vars["CLASS"])) unset($vars["CLASS"]);
+ $first = Variable::implode($classses,"",0,1);
+
$value = "class ".$name." extends ".$first."{\n";
$value .= "var \$CLASS = array();\n";
foreach($vars as $var => $class) if($first != $class) $value .= "var \$".$var.";\n";
@@ -409,16 +413,21 @@
$value .= "function ".$name."(){\n";
foreach($classses as $class) if($first != $class) $value .= "\$this->CLASS['".$class."'] = new ".$class."();\n";
- foreach($vars as $key => $class) if($first != $class) $value .= "\$this->".$key." = &\$this->CLASS['".$class."']->".$key.";\n";
+ foreach($vars as $key => $class){
+ if($first != $class) $value .= "\$this->".$key." = &\$this->CLASS['".$class."']->".$key.";\n";
+ foreach($classvar[$key] as $classname){
+ if($classname != $class) $value .= "\$this->CLASS['".$classname."']->".$key."=&\$this->".$key.";\n";
+ }
+ }
$value .= "}\n";
-
+
foreach($methods as $method => $class){
if($first != $class){
- $value .= "function ".$method."(){\n";
- $value .= "\$args = func_get_args();\n";
- $value .= "\$obj = &\$this->CLASS['".$class."'];\n";
- $value .= "return \$obj->".$method."(\$args);\n";
- $value .= "}\n";
+ $value .= "function ".$method."(){\n".
+ "\$args = func_get_args();\n".
+ "\$obj = &\$this->CLASS['".$class."'];\n".
+ "return call_user_func_array(array(\$obj,\"".$method."\"),\$args);\n".
+ "}\n";
}
}
foreach($funcs as $funcname => $func) $value .= "function ".$funcname."(".$func[0]."){\n".$func[1]."\n}\n";
@@ -423,12 +432,11 @@
}
foreach($funcs as $funcname => $func) $value .= "function ".$funcname."(".$func[0]."){\n".$func[1]."\n}\n";
- $value .= "function istype(\$class){\n";
- $value .= "if(Variable::istype(\$class,\$this)) return true;\n";
- $value .= "foreach(\$this->CLASS as \$obj) if(Variable::istype(\$class,\$obj)) return true;\n";
- $value .= "return false;\n";
- $value .= "}\n";
-
+ $value .= "function istype(\$class){\n".
+ "if(Variable::istype(\$class,\$this)) return true;\n".
+ "foreach(\$this->CLASS as \$obj) if(Variable::istype(\$class,\$obj)) return true;\n".
+ "return false;\n".
+ "}\n";
$value .= "}\n";
eval($value);
}
@@ -434,9 +442,7 @@
}
if(class_exists($name)){
$obj = new $name();
- foreach($objects as $object){
- $obj = Variable::copyProperties($object,$obj,true);
- }
+ foreach($objects as $object) $obj = Variable::copyProperties($object,$obj,true);
}
return $obj;
}
]]>