<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1936471507307109898</id><updated>2011-07-31T16:11:01.882+09:00</updated><category term='Zend Framework'/><category term='PHP'/><category term='ExtJS'/><title type='text'>An sysadmin lost in Tokyo</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sysadintokyo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1936471507307109898/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sysadintokyo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Olivier</name><uri>http://www.blogger.com/profile/14136911540218395418</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_XfubZnSxy68/SSoRDFq9xzI/AAAAAAAAC7s/JXcUUlQHlkU/S220/olivier_face4.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1936471507307109898.post-3495840423284669954</id><published>2009-08-18T17:31:00.011+09:00</published><updated>2009-08-18T18:09:31.400+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ExtJS'/><title type='text'>Ext JS and the magic designer or .... not</title><content type='html'>&lt;p&gt;I was just reading &lt;a href="http://extjs.com/blog/2009/08/10/ext-js-30-be-outstanding/"&gt;this&lt;/a&gt; on ExtJS blog and I particulary disliked the part about the designer ....&lt;/p&gt; 

&lt;blockquote&gt;&lt;p&gt;Constructing your interfaces in code will be a thing of the past. We are releasing a  Designer Preview that will allow you to experiment with the designer interface and to explore how configs affect your layout. Soon, you will be able to build your application components using base Ext components and Certified User Extensions.&lt;/p&gt;

&lt;p&gt;Code generation is currently not available. Our intentions are to charge a fee for this service and to enable our community to create and sell their creations on our marketplace. Our goals are lofty. We want to be the iTunes of Web App Development.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I really love ExtJS and have been using extensively at work since the version 2.x. I must say I was really disappointed when I read the part about having the designer been available for a "fee". I was waiting for that designer for a long time and seems it would never happen.&lt;/p&gt; 

&lt;p&gt;ExtJS is pretty well documented but is still not easily accessible to new programmer, I would have loved giving that tool to my boss, for him to make interface so we can design interfaces easily, the whole RAD designer would have give a century of advance to ExtJS on Dojo/JQuery.&lt;/p&gt; 

&lt;p&gt;I am not really surprised about that move, few month after the whole License crisis .... but I must say the Ext Team really wants to make money and starting to piss me off even if I really like what they are doing.&lt;/p&gt; 

&lt;p&gt;My last comment would be, I am not sure who gonna sell/buy already made interfaces on an ExtJS component store. ExtJS normally require only few hours to build your own component .... so kind of weird business plan ...&lt;/p&gt; 

&lt;p&gt;Anyway let's see how the community like to pay to publish interfaces ....&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1936471507307109898-3495840423284669954?l=sysadintokyo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sysadintokyo.blogspot.com/feeds/3495840423284669954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1936471507307109898&amp;postID=3495840423284669954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1936471507307109898/posts/default/3495840423284669954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1936471507307109898/posts/default/3495840423284669954'/><link rel='alternate' type='text/html' href='http://sysadintokyo.blogspot.com/2009/08/ext-js-and-magic-designer-or-not.html' title='Ext JS and the magic designer or .... not'/><author><name>Olivier</name><uri>http://www.blogger.com/profile/14136911540218395418</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_XfubZnSxy68/SSoRDFq9xzI/AAAAAAAAC7s/JXcUUlQHlkU/S220/olivier_face4.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1936471507307109898.post-9011241552210089628</id><published>2009-06-28T17:08:00.012+09:00</published><updated>2009-06-28T22:56:36.162+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zend Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>highlight not validated fields with a decorator</title><content type='html'>&lt;p&gt;I started using the Zend Framework few weeks ago, finally finished my first project using it at work last week. I am quiet happy with the framework and really enjoyed coding this application, I have made bunch of class that I found missing in the framework.&lt;/p&gt;

&lt;p&gt;One of them was to be able to add a specific class when some fields in a form doesn't validate, I use to highlight fields when the user forgot to input them in my previous projects.&lt;/p&gt;

&lt;p&gt;He wasn't so easy to code that decorator because in the framework decorator doesn't seem to be able to add some attributes to the field. Normal decorators can append of prepend some content but not change options of the fields. Here the hack I have been doing to achieve my goal.&lt;/p&gt;

&lt;pre class="brush: php;"&gt;

require_once 'Zend/Form/Decorator/Abstract.php';
/**
* This decorator add a decorator which add a custom class to the input
*
* @author olivier
*/

class Trust_Form_Decorator_ClassErrors extends Zend_Form_Decorator_Abstract{

 public function render($content)
 {
     $element = $this-&gt;getElement();
 
     if(!$element instanceof Zend_Form_Element_Password &amp;amp;&amp;amp;
        !$element instanceof Zend_Form_Element_Text &amp;amp;&amp;amp;
        !$element instanceof Zend_Form_Element_Textarea &amp;amp;&amp;amp;
        !$element instanceof Trust_Form_Element_Telephone ){
         return $content;   
     }
 
     $view    = $element-&gt;getView();
     if (null === $view) {
         return $content;
     }
 
     $attribs   = $element-&gt;getAttribs();
 
     $errors = $element-&gt;getMessages();
     if (empty($errors)) {
         return $content;
     }

     if(isset($this-&gt;_options['class'])){
         $errorClass = $this-&gt;getOption('class');
     } else {
         $errorClass = 'customError';
     }
     if($element instanceof Zend_Form_Element_Password ||
        $element instanceof Zend_Form_Element_Text ||
        $element instanceof Trust_Form_Element_Telephone ){
            $tag = 'input';
     } else {
         $tag = 'textarea';
     }
 
     if(isset($attribs['class'])){
         $content = preg_replace('/&lt;'.$tag.'([^&gt;]*)class="[^"]*"([^&gt;]*)&gt;/', '&lt;'.$tag.' class="' . $errorClass . ' ' . $attribs['class'] . '"$1 $2&gt;', $content);
     } else {
         $content = preg_replace('/&lt;'.$tag.'([^&gt;]*)([^&gt;]*)&gt;/', '&lt;'.$tag.' class="' . $errorClass .'"$1&gt;', $content);
     }
  
     return $content;
 }
}
&lt;/pre&gt;

&lt;p&gt;This code add a class "customError" (or any name you specified in option) to the field if it didn't validate&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1936471507307109898-9011241552210089628?l=sysadintokyo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sysadintokyo.blogspot.com/feeds/9011241552210089628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1936471507307109898&amp;postID=9011241552210089628' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1936471507307109898/posts/default/9011241552210089628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1936471507307109898/posts/default/9011241552210089628'/><link rel='alternate' type='text/html' href='http://sysadintokyo.blogspot.com/2009/06/highlight-not-validated-fields-with.html' title='highlight not validated fields with a decorator'/><author><name>Olivier</name><uri>http://www.blogger.com/profile/14136911540218395418</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_XfubZnSxy68/SSoRDFq9xzI/AAAAAAAAC7s/JXcUUlQHlkU/S220/olivier_face4.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1936471507307109898.post-1965959648231694977</id><published>2008-11-24T11:46:00.004+09:00</published><updated>2008-11-24T12:02:18.639+09:00</updated><title type='text'>introduction ....</title><content type='html'>Let's say the hello world of the blog is always the post to present yourself and tell everyone what you think you are going to do with this blog .... So since I am not original at all, I will start by introducing myself.
&lt;blockquote&gt;
So I am Vanessa, I am a French 20 years old hot chick, 1'70, 90 cup D and I am looking desperately for a man!&lt;/blockquote&gt; The last line was an attempt of SEO .... just to get some page view. No without joking, I am a French male of 27 years old. I live and work in Japan since 2,5 years. I am a system administrator, nothing really funny but I enjoy it. I am also doing some web development, mainly some PHP/MYSQL. I won't talk about my work in this blog since I am not working for google or IBM making the new genuis piece of software. My company is an usual company with usual IT needs so I don't make huge systems only Content Mananagement things ...

Some of you might wonder why I am not blogging in French after all wouldn't be more easy? The quick answer is my written french is really poor so I feel more confident about my English. I know that's a bit weird.

Last but not least, what all this blog is about ????
Basically, my geeky comments like gaming/programming/OS/bullshit and the more interesting part for non geeky my comment about Japan and how my life is down here.

I hope you are going to love it! maybe!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1936471507307109898-1965959648231694977?l=sysadintokyo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sysadintokyo.blogspot.com/feeds/1965959648231694977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1936471507307109898&amp;postID=1965959648231694977' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1936471507307109898/posts/default/1965959648231694977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1936471507307109898/posts/default/1965959648231694977'/><link rel='alternate' type='text/html' href='http://sysadintokyo.blogspot.com/2008/11/introduction.html' title='introduction ....'/><author><name>Olivier</name><uri>http://www.blogger.com/profile/14136911540218395418</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_XfubZnSxy68/SSoRDFq9xzI/AAAAAAAAC7s/JXcUUlQHlkU/S220/olivier_face4.png'/></author><thr:total>1</thr:total></entry></feed>
